1.非对称密钥密码体制的基本思想
美国斯坦福大学的两名学者Whitfield Diffie和Martin Hellman(见图6-6)于1976年在IEEE Trans.On Information杂志上发表的文章《New Directions in Cryptography》中,首次提出了“公开密钥密码体制”的概念,开创了密码学研究的新方向,奠定了公开密钥密码编码学。由于创建了知名的迪菲—赫尔曼(Diffie—Hellman)密钥交换算法,两人共同获得了2015年的图灵奖。公开密钥密码体制的产生主要有两个方面的原因:一是对称密钥密码体制的密钥分配问题,二是对数字签名的需求。
图6-6 RSA算法流程
与对称密钥加密方法不同,公开密钥密码系统采用两个不同的密钥来对信息进行加密和解密,也称为“非对称式加密方法”。由于加密密钥与解密密钥不同,且其中一个不容易得到另一个,往往其中一个密钥是公开的,另一个是保密的,因此我们将这种密钥体制称为公开密钥密码体制。如图6-7所示,与对称密钥的加密和解密秘钥是一样的不同,在这种密码系统中,加密密钥是公开的,解密密钥是保密的,加密和解密算法都是公开的。每个用户有一个对外公开的加密密钥(称为公钥)和对外保密的解密密钥(称为私钥)。
图6-7 非对称秘钥
虽然理论上解密密钥可由加密密钥推算出来,但这种算法设计在实际中是不可能的;或者虽然能够由加密密钥推算出解密密钥,但要花费很长的时间,因此不可行,所以,将加密密钥公开也不会危害密钥的安全。公开密钥加密算法和解密算法都是公开的。虽然保密密钥是由公开密钥决定的,但却不能由公开密钥计算出来。
公钥密码的优点是可以适应网络的开放性要求,且密钥管理问题也较为简单,尤其可方便地实现数字签名和验证,但其算法复杂,加密数据的速率较低。尽管如此,随着电子技术和密码技术的发展,公钥密码算法将是一种很有前途的网络安全加密体制。
2.RSA算法
目前,最著名、应用最广泛的非对称密钥密码算法是RSA,它是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。如图6-8所示,RSA就是他们三人姓氏开头字母拼在一起组成的,2002年,三人因RSA算法获图灵奖。RSA是非对称密钥系统最具有典型意义的算法,它能抵抗到目前为止所知的所有密码攻击。这种算法的运算非常复杂,速度也很慢,主要是利用了数学上很难分解两大素数乘积的原理。(www.xing528.com)
图6-8 RSA公共密钥加密算法发明者
在此不介绍RSA的理论基础(复杂的数学分析和理论推导),只简单介绍其密钥的选取和加密、解密的实现过程。假设用户A在系统中要进行数据加密解密,则可根据图6-4步骤选择密钥和进行密码变换。
3.RSA算法的特点和应用
RSA算法具有密钥管理简单(网上每个用户仅需保密一个密钥,且不需配送密钥)、便于数字签名、可靠性较高(取决于分解大素数的难易程度)等优点,但也具有算法复杂、加密/解密速度慢、难于用硬件实现等缺点。因此,非对称密钥密码体制通常被用来加密关键性的、核心的、少量的机密信息,而对于大量要加密的数据通常采用对称密钥密码体制。
RSA算法的安全性建立在难以对大整数提取因子的基础上,已知的证据都表明大整数因式分解问题是一个极其困难的问题,但是随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,要求作为RSA加密/解密安全保障的大整数越来越大。
RSA算法的保密性取决于对大素数因式分解的时间。假定用106次/秒的计算机进行运算,用最快的公式分解n=100位十进制数要用74年,分解200位数要用3.8×109年。可见,当n足够大时(p和q各为100位时,n为200位),对其进行分解是很困难的。可以说,RSA的保密强度等价于分解n的难易程度。
RSA算法为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对RSA密钥,其中一个是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。