公开密钥加密

维基百科,自由的百科全书
跳转至: 导航搜索

公开密钥加密英语public-key cryptography,又譯為公開金鑰加密),也称为非对称加密(asymmetric cryptography),一種密碼學演算法類型,在這種密碼學方法中,需要一對金鑰,一是個私人金鑰,另一個則是公開金鑰。这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。

该思想最早由瑞夫·墨克Ralph C. Merkle)在1974年提出[1],之后在1976年。惠特菲爾德·迪菲Whitfield Diffie)與馬丁·赫爾曼Martin Hellman)兩位學者以單向函數單向暗門函數為基礎,為發訊與收訊的兩方建立金鑰。

如果加密密钥是公开的,这用于客户给私钥所有者上传加密的数据,这被称作为公开密钥加密(狭义)。例如,网络银行的客户发给银行网站的账户操作的加密数据。

如果解密密钥是公开的,用私钥加密的信息,可以用公钥对其解密,用于客户验证持有私钥一方发布的数据或文件是完整准确的,接收者由此可知这条信息确实来自于拥有私钥的某人,这被称作数字签名,公钥的形式就是数字证书。例如,从网上下载的安装程序,一般都带有程序制作者的数字签名,可以证明该程序的确是该作者(公司)发布的而不是第三方伪造的且未被篡改过(身份认证/验证)。

常见的公钥加密算法有: RSAElGamal背包算法Rabin(RSA的特例)、迪菲-赫尔曼密钥交换协议中的公钥加密算法、椭圆曲线加密算法英语Elliptic Curve Cryptography, ECC)。使用最广泛的是RSA算法(由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来)是著名的公开金钥加密算法,ElGamal是另一种常用的非对称加密算法。

优点[编辑]

对称密钥加密相比,优点在于无需共享的通用密钥,解密的私钥不发往任何用户。即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密,所截获的公钥是没有任何用处的。

过程[编辑]

假设两个用户A向B发送信息。B的公钥为c,对应私钥(也是属于B的)为d,明文为x.

  1. A用公钥对明文进行加密形成密文c(x),然后传输密文;
  2. B收到密文,用私钥对密文进行解密d(c(x)),得到要通信的明文x。

B向A发送信息反之。

公钥密码学[编辑]

密码学中,公开钥匙密码学,简称公钥密码学,又称非对称密码学,是使用一对公钥和私钥的密码学,与只用一个钥匙的密钥密码学相对应。通常,我们所说的公钥密码学包括公钥加密算法数字签名算法。有些公钥加密算法可以很容易被改造成一个数字签名算法(如RSA),而有些则需要经过较大改动。

参考文献[编辑]

  1. ^ Publishing a new idea. Merkle個人網站. [2010-12-08].