公钥加密和数字签名

       20世纪70年代,一个数学上的突破震惊了世界密码学家和谍报人员,这就是公开密钥加密 (PKE)技术。与传统的加密方法不同,它使用两把钥匙:一把公开钥匙和一把秘密钥匙,前者用于加密,后者用于解密。它也称为“非对称式”加密方法。公开密钥加密技术解决了传统加密方法的根本性问题,极大简化了钥匙分发过程。它着与传统加密方法相结合,可以进一步增强传统加密方法的可靠性。此外,还可能利用公开密钥加密技术来进行数字签字。
(1) 什么是公开密钥加密系统
        使用公开密钥加密系统时,收信人首先生成在数学上相关联、但又不相同的两把钥匙,一把公开钥匙用于加密,另一把秘密钥匙用于解密,这一过程称为密钥配制。收信人将唯一的一把秘密钥匙自己掌握和保存起来,把公开钥匙通过各种方式公布出去,让想与收信人通信的人都能够得到。这个过程称为公开密钥的分发。
        发信人使用收信人的公开密钥对通信文件进行加密。加密后的密文发信人再也无法解开。收信人在收到密文以后,用自己的秘密钥匙解开密文获得信息。由于公开密钥和秘密钥匙是一对一地相匹配,唯一的一把秘密钥匙掌握在收信人手里,除他之外,可以确信无人能够获取通信内容。

(2) 公开密钥加密系统的优点
       应用于保密通信方面,公开密钥加密系统比传统加密系统有明显优越之处。
       首先,用户可以把用于加密的钥匙,公开地分发给任何人。谁都可以用这把公开的加密钥匙与用户进行秘密通信。除了持有解密钥匙的收件人外,无人能够解开密文。这样,传统加密方法中令人头痛的密钥分发问题就转变为一个性质完全不同的“公开钥匙分发”问题。
       其次,公开密钥加密系统允许用户事先把公开钥匙发表或刊登出来。比如,用户可以把它和电话一起刊登在电话簿上,让任何人都可以查找到,或者把它印刷在自己的名片上;与电话号码、电子邮件地址等列写在一起。这样,素不相识的人都可以给用户发出保密的通信。不像传统加密系统,双方必须事先绚定统一密钥。
       最后,公开密钥加密不仅改进了传统加密方法,还提供了传统加密方法不具备的应用,这就是数字签字的公开鉴定系统。


(3) 使用公开密钥加密系统的数字签字技术
       与加密不同,数字签字系统的目的是保证信息的完整性和真实性。和使用手签字和印章的文件相似,数字签字系统也试图保证以下两点:(1)文件内容没有被改动;(2)文件出自签字人之手或经过签字人批准(即签字没有被改动)。
       数字签字系统是公开密钥加密技术与报文分解函数(MDF) 相结合的产物。报文分解函数是能把信息集合提炼为一个数字串的单向不可逆数学函数。首先,用报文分解函数把要签署的文件内容提炼为一个很长的数字,称为报文分解函数的值。签字人用公开密钥加密系统中的秘密钥匙来加密这个报文分解函数值,生成所谓的“数字签字”。该过程表示如下图所示。


* 数字签字的原理
       收件人在收到经数字签字的文件以后,对此数字签字进行鉴定。用签字人的公开钥匙来解开。数字签字",获得报文分解函数值;重新计算文件的报文分解函数,比较其结果。如果完全相符,文件内容的完整性、正确性和签字的真实性都得到了保障。因为如果文件被改动,或者有人在没有秘密钥匙的情况下冒充签字,都将使数字签字的鉴定过程失败。

* 鉴定数字签字的原理
       在某种意义上,数字签字系统比手签字或印章更为有效。一份10 余页的手签文件很难保证每页的内容均不会被改动或替换,但数字签字却能保证文件的每一字符都未经过任何改动。目前,美国国家标准局和国家安全局正在建立数字签字标准DSS(Digital Signature Standard);以用于政府和商业文件签字。通过后的 DSS标准将使得数字签字与手签字具有同样的法律效力。PGP系统就支持类似的数字签字。

(4)与传统加密方法的结合
       公开密钥加密技术保证了文件加密和传输的可靠性,十分便于普通用户使用。与传统加密方法相比,它有许多优越的地方,但是它并不能完全取代前者。实际上,这两种似乎矛盾的加密形式是相辅相承的。如果它们结合在一起,构成所谓的混合式系统,会有更加明显的优势。
       当应用干仅一人知道密钥的文件加密时,传统加密方法是十分适合的,而公开密钥加密技术的优越性反倒显示不出来。因此;有的加密系统,如PGP系统,还为此专门保留了使用传统加密技术的“文件加密”功能。
       同时,目前已知的公开密钥加密系统的加密算法运算量都较大;与可比的传统加密算法在速度上有显著差距。所以,许多加密系统,多采用公开密钥加密技术和传统加密方法结合的方式。如使用一把会话钥匙和传统加密方法来加密较长的报文内容,再用公开赛钥技术来加密较短小的会话钥匙。PGP系统和Netscape 2.0等就是采用这种方法。
       公开密钥加密技术还能够拯救一些“年迈”的传统加密方法,使它们能继续发挥作用。DES就是一个很好的例子。自从DES被确定为加密标准后,已经广泛地应用于许多领域。这20多年来技术的进步,它开始显得单薄起来。在公开密钥加密技术出现以前,由于统一密钥的不便于分发和使用,许多使用者长时间地使用同一把密钥,造成通信的极不安全。
       公开密钥加密技术出现以后,可以用来加密会话密钥;通信双方就可以经常更换会话密钥,极大地提高了通信的保密能力。
       公开密钥加密技术并不是完美无缺的,它也存在某些有待解决的问题。例如,公开钥匙的分发问题需要解决。虽然用户不必担心公开钥匙泄密,但却需要考虑有人冒名顶替公布假的公开钥匙。所以应当尽可能地广泛地公布正确的公开钥匙,以防假冒。就像将电话号码在电话簿上公开出来一样,公布面越广,号码的正确性就越能够经多方面核实而得到保证。当然,即使这样也仍然不能完全保障它们都是正确的和真实的。


       目前已知的公开密钥加密方法运算量较大,加密和解密的速度较慢。比如,RSA Data Security公司(RSA算法专利版权的发行机构)的技术资料表明,RSA的软件实现比DES的软件实现慢100倍左右;而RSA的硬件实现则比 DES的硬件实现慢1000到10000倍。随着加密技术的商业化和技术的进步,这个差距可能会进一步缩短。但目前,速度差异的存在还是许多加密系统宁可采用混合式加密算法的主要原因。

本人博客已搬家,新地址为:http://yidao620c.github.io/

猜你喜欢

转载自yidao620c.iteye.com/blog/1138285