公钥密码体制(又称为公开密钥密码体制)的概念是由斯坦福大学的研究人员Diffie与Hellman于1976年提出的[DIFF76]。公钥密码体制使用不同的加密密钥与解密密钥。
公钥密码体制的产生主要是因为两个方面的原因,一是由于对称密钥密码体制的密钥分配问题,二是由于对数字签名的需求。
在对称密钥密码体制中,加解密的双方使用的是相同的密钥,但怎样才能做到这一点呢?
一种是事先约定,另一种是用信使来传送,在高度自动化的大型计算机网络中,用信使来传送密钥显然是不合适的,如果事先约定密钥,就会给密钥的管理和更换都带来了极大的不便,若使用高度安全的密钥分配中心KDC(Key Distribution Center),也会使得网络成本增加。
对数字签名的强烈需要也是产生公钥密码体制的一个原因,在许多应用中,人们对纯数字的电子信息进行签名,表明该信息确实是某个特定的人产生的。
公钥密码体制提出不久,人们就找到了三种公钥密码体制,目前最著名的是由美国三位科学家Rivest,Shamir和Adleman于1976年提出并在1978年正式发表的RSA体制,它是一种基于数论中的大数分解问题的体制[RIVE78]。
在公钥密码体制中,加密密钥PK(public key,即公钥)是向公众公开的,而解密密钥SK(secret key,即私钥或秘钥)则是需要保密的,加密算法E和解密算法D也都是公开的。
公钥密码制的加密和解密过程有如下特点:
1.密钥对产生器产生出接收者B的一对密钥:加密密钥PKB和解密密钥SKB。发送者A所用的加密密钥PKB就是接收者B的公钥,它向公众公开。而B所用的解密密钥SKB就是接收者B的私钥,对其他人都保密。
2.发送者A用B人公钥PKB通过E算对明文X加密,得出密文Y,发送给B,B用自己的私钥SKB通过D运算进行解密,恢复出明文。
3.虽在计算机上可以容易地产生成对的PKB和SKB,但从已知PKB实际上不可能推导出SKB,即从PKB到SKB是“计算上不可能的。”
4.虽然公钥可用来加密,但却不能用来解密。
5.先后对X进行D运算和E运算或进行E运算和D运算,结果都是一样的。
请注意,任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量,而不是简单地取决于加密的体制(公钥密码体制或传统加密体制),还有一点是,公钥密码体制并没有使传统密码体制成为陈旧的,因为目前公钥加密算法的开销较大,在可见的将来还看不出要放弃传统的加密方法。
深圳 · 龙岗 · 大运软件小镇22栋201
电话:400 182 8580
邮箱:szhulian@qq.com