A.2. 公钥加密

公钥加密是一种由很多加密算法和加密系统采用的加密方法,其与众不同之处在于使用不对称密钥算法,而不是使用,或者另外使用对称密钥算法。使用公钥-私钥密钥技术已经让很多之前未知的保护通讯或者验证信息的方法变为现实。它们不要求使用对称密钥算法时需要的一个或者多个保密密钥的安全初始交换。它还可用于创建数字签名。[9]
公钥加密法是世界广泛使用的基础技术,是类似传输层安全性(TLS,SSL 的后续)、PGP 和 GPG 等互联网标准基础的加密方法。[10]
在公钥加密法中使用的特别技术是不对称密钥算法,这个算法中用来加密信息的密钥与解密信息的密钥不是同一个。每个用户都有一对加密密钥 — 一个公钥和一个私钥。私钥是秘密保存,而公钥则会广泛传播。信息是使由接收方到公钥加密,且该信息只能使用对应的私钥解密。两个密钥间是数学计算关系,但很难在例如具体情况或者项目实践中使用公钥演算出私钥。这个算法的发现对从二十世纪七十年代开始使用的加密法实践有革命性影响。[11]
相比而言,对称密钥算法及其变体已经使用了几千年,该方法由发送者和接受者共享一个保密密钥(该密钥还必须保密,因此还要考虑常用术语带来的争议),此保密秘钥同时用于加密和解密。要使用对称加密方案,发送者和接受者必须事先安全地共享保密密钥。[12]
因为对称密钥算法所需计算量最小,通常可使用密钥交换算法互换密钥,并使用那个密钥和对称密钥算法传送数据。例如: PGP 和 SSL/ TLS 产品线可这样做,结果是可生成混合的密码系统。[13]

A.2.1. Diffie-Hellman

Diffie-Hellman 密钥交换(D-H)是可让事先彼此不了解的双方通过不稳定的通讯频道联合建立共享保密密钥的加密协议。可使用这个密钥加密以后使用对称密钥密码的通讯。[14]

A.2.1.1. Diffie-Hellman 历史

该方案是由 Whit输入栏 Diffie 和 Martin Hellman 于 1976 年首次发布,虽然它晚于 GCHQ (英国信号情报机构)的 Malcolm J. Williamson 发明,但英国一直将该发明列为机密。2002 年,Hellman 建议将该算法改名为 Diffie–Hellman–Merkle 密钥交换以纪念 Ralph Merkle's 对发明公钥加密法的贡献(Hellman 2002)[15]
虽然 Diffie–Hellman 密钥协议本身是匿名(非认证)密钥合约协议,但它为各种认证协议提供了基础,并用来在传输层安全性的短期模式中提供最佳转发保密(根据密码组件可以时 EDH 或者 DHE)。[16]
现在已经过期的美国专利 4,200,770 论述了这个算法,并给予作为发明者的 Hellman、Diffie 和 Merkle 很高评价。[17]

A.2.2. RSA

在密码学中,RSA(代表着首次公开描述它的 Rivest 李威斯特、Shamir 沙米尔和 Adleman 阿德尔曼)是一个对于公钥加密的计算法则。这个法则是第一个被认作适合和加密一样适合认证的计算法则,并且是在公钥密码学中第一个最大的进步之一。RSA 在电子商务协议中被广泛使用,并且因为足够长的钥匙以及及时的安装启动而被认为很安全。

A.2.3. DSA

DSA (数字签名算法)是数字签名的标准,即美国联邦政府用于数字签名的标准。DSA 只可用于签名,且不是加密算法。[18]

A.2.4. SSL/TLS

传输层安全性(TLS)及其之前的产品安全套接字层(SSL)都是可为通过网络(比如互联网)进行的通讯提供安全性的加密法协议。TLS 和 SSL 在传输层端到端加密网络链接片段。
很多版本的协议被应用程序广泛使用,如,网页浏览、电子邮件、互联网传真、即时短信以及 VoIP (IP语音呼叫)。[19]

A.2.5. Cramer-Shoup 加密系统

Cramer–Shoup 系统是一个非对称秘钥加密算法,而且被证实是第一个针对适应性选择米文攻击所采用的标准加密猜想所用的安全有效的项目。其安全性是基于决定性Diffie–Hellman猜想的计算难解性(广泛接受,但未被证实)的计算难解性的。由 Ronald Cramer (罗纳德·克莱默)和 Victor Shoup (维克多·苏伯)于1998年研发,是 ElGamal 加密系统的延伸。与 ElGamal 相反,它具有很强的延展性,Cramer–Shoup 添加了另外的成分来确保甚至是遭受广泛的攻击时保证其非延展性。这一非延展性是通过使用抗撞击哈希函数和额外的计算而取得的,导致了密文是 ElGamal 的两倍大。[20]

A.2.6. EIGamal 加密

在密码学中,ElGamal加密体系基于Diffie-Hellman加密协议的公钥加密的非对称秘钥加密算法。有Tahel ElGamal在1985年描述。ElGamal 加密被用于免费的GNU隐私保护软件、PGP 近期的版本和其他密码系统中。[21]


[9] "公钥加密" 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Public-key_cryptography
[10] "公钥加密" 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Public-key_cryptography
[11] "公钥加密" 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Public-key_cryptography
[12] "公钥加密" 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Public-key_cryptography
[13] "公钥加密" 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Public-key_cryptography
[14] "Diffie-Hellman." 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Diffie-Hellman
[15] "Diffie-Hellman." 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Diffie-Hellman
[16] "Diffie-Hellman." 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Diffie-Hellman
[17] "Diffie-Hellman." 维基百科。 2009 年 11 月 14 日 http://en.wikipedia.org/wiki/Diffie-Hellman
[18] "DSA." 维基百科。 2010 年 2 月 24 日http://en.wikipedia.org/wiki/Digital_Signature_Algorithm
[19] "TLS/SSL。" 维基百科。 2010 年 2 月 24 日 http://en.wikipedia.org/wiki/Transport_Layer_Security
[20] "Cramer-Shoup cryptosystem。" 维基百科。 2010 年 2 月 24 日 http://en.wikipedia.org/wiki/Cramer–Shoup_cryptosystem
[21] "ElGamal encryption" 维基百科。 2010 年 2 月 24 日 http://en.wikipedia.org/wiki/ElGamal_encryption