首页 百科知识 公开密钥加密技术简介

公开密钥加密技术简介

时间:2023-10-01 百科知识 版权反馈
【摘要】:其中,加密密钥是公开的,任何人都可以使用该密钥对明文进行加密形成密文,而解密密钥是私有的,因此,只有拥有解密密钥的人才能解密密文。当Alice公布公钥之后,显然,任何向与Alice通信的人都可以使用该公开密钥来加密信息。但由于加密函数是一个单向函数,很难根据公钥和加密算法来找出解密函数。因此,不适合于对文件加密而只适用于对少量数据进行加密,主要用于对会话密钥的加密过程。

在传统密码和分组密码加密系统中,Alice和Bob需要一个秘密通道来分发密钥,这通常由Alice和Bob直接或者借助第三方的物理传输完成Alice和Bob之间的密钥传递。但是,如果考虑到网络中的通信情况,假设网络中有N个主机,每一对用户使用一个密钥,则需要的密钥总数为N(N−1)/2,每个用户需存储N−1个密钥。而Internet上用户如此之多,因此,如何分发和存储这些密钥将会变成是一个很大的问题。

减少密钥数目的一个可行的办法就是建立密钥分发中心KDC(Key Distribution Centre),每个主机有一个主密钥,则总共只需分发N个密钥。当主机i与主机j通信时,KDC基于请求发送一个会话密钥给i和j。因为KDC已知主机的主密钥,会话密钥就可以用i和j的主密钥进行加密。当i和j收到加密的会话密钥后,就可以解密,再将会话密钥作为他们的共享密钥。不过这种方式仍然需要通过秘密通道分发N个密钥,且KDC也不满足保密要求。事实上,在很多情况下都没有采用KDC的机制,这就带来一个问题:是否可以创建一个加密系统而不需要分发密钥?这就是人们开发公开密钥加密(Public Key Encryption)的原因。

在公开密钥加密系统PKS(Public Key Encryption System)中,加密密钥和解密密钥是不同的。其中,加密密钥是公开的,任何人都可以使用该密钥对明文进行加密形成密文,而解密密钥是私有的,因此,只有拥有解密密钥的人才能解密密文。PKS的基本思想为加密函数eK(x)是单向的,也就是说,从eK(x)很难找出它的逆函数dK(x)=(x)。

例如,在PKS中,由于Alice拥有两个密钥:一个公钥(Public Key)和一个私钥(Private Key)。当Alice公布公钥(和加密算法)之后,显然,任何向与Alice通信的人都可以使用该公开密钥来加密信息。但由于加密函数是一个单向函数,很难根据公钥和加密算法来找出解密函数。但是,当知道私钥时,解密函数就很容易求出了。因此,只有Alice能够解密密文。

公钥密码加密体制的算法中最著名的代表是RSA系统与EIGamal系统,此外还有背包密码、McEliece密码、Diffe_Hellman、Rabin、零知识证明、椭圆曲线系统等。公钥加密系统不存在对称加密系统中密钥的分配和保存问题,对于具有n个用户的网络,仅需要2n个密钥。公钥密钥的密钥管理比较简单,并且可以方便地实现数字签名和验证。但算法复杂,加密数据的速率较低。因此,不适合于对文件加密而只适用于对少量数据进行加密,主要用于对会话密钥的加密过程。使用公开密钥对文件进行加密传输的实际过程一般包括以下四个步骤:

(1)发送方生成一个会话密钥(对称密钥)并用接收方的公开密钥对会话密钥进行加密,然后通过网络传输到接收方。

(2)发送方对需要传输的文件用会话密钥进行加密,然后通过网络把加密后的文件传输到接收方。

(3)接收方用自己的私有密钥进行解密后得到会话密钥。

(4)接收方用会话密钥对文件进行解密得到文件的明文形式。

因为只有接收方才拥有自己的私有密钥,所以即使其他人得到了经过加密的会话密钥,也因为无法进行解密而保证了会话密钥的安全性,从而也保证了传输文件的安全性。实际上,上述在文件传输过程中实现了两个加密解密过程:文件本身的加密解密与会话密钥的加密解密,这分别通过对称加密解密和非对称加密解密来实现。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈