公钥密码,又称非对称密钥密码或双密钥密码。运用陷门单向函数原理编制的加密密钥公开,解密
密钥保密的密码。又称非对称密钥密码或双密钥密码。
加密密钥是公开的,解密密钥是秘密的,从公开密钥推算出秘密密钥在计算上是不可行的。公钥密码的安全性理论基础是
计算复杂性理论。公钥密码的安全性指计算安全性,通常是基于特定数学难题的计算困难性而设计的,主要有大整数因子分解的困难性,有限域上离散对数的难解性,椭圆曲线加法群上离散对数的难解性等。公钥密码是在20世纪70年代提出的,主要是为了解决密钥分配问题。第一个比较完善的公钥密码算法是RSA公钥密码算法,它的安全性基础是大整数因子分解的困难性。公钥密码算法的设计中一般要使用大素数,素数的产生有两类算法:一类是确定性算法,即该算法判定结果是素数的一定是素数;另一类是概率算法,即不能确保通过算法检验的数一定是素数,只以很大的概率保证通过概率算法的数是素数。常用的概率检测算法有索洛韦-斯成森检验算法、拉宾-米勒检验算法等。公钥密码一般不直接用于加密信息,通信双方通常是利用公钥密码进行密钥分配,然后再以分配的密钥利用序列密码或分组密码对信息进行加(解)密。公钥密码的另一个主要应用是进行数字签名,在网络安全技术中常使用公钥密码进行消息认证或身份认证。公钥密码的发展趋势是高速性、标准化。