搜狐首页 科技 催眠师

手机搜狐

SOHU.COM

非对称密码之RSA

对称密码算法要求通信双方通过交换密钥实现使用同一个密钥,这在密钥管理、发布和安全性方面存在很多问题,而非对称密码算法解决了这个问题。

非对称密码算法是指一个加密系统的加密密钥和解密密钥是不相同,或者说不能从其中一个推导出另一个。在非对称密码算法的两个密钥中,一个是用于加密的密钥,它是可以公开的称为公钥;另一个是用于解密的密钥,是保密的,称为私钥。非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学的最重要的发明和进展。

RSA密码体制是目前为止最为成功的非对称密码算法,是在1977年由Rivest、Shamir和Adleman提出的第一个比较完善的非对称密码算法。它的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,即将两个大素数相乘在计算上容易实现,而将该乘积分解为两个大素数因子的计算量相当大。虽然的安全性还未能得到理论证明,但经过20多年的密码分析和攻击,迄今仍然被实践证明是安全的。

RSA算法描述如下:

1.公钥

选择两个互异的大素数p和q,n是二者的乘积,即n = pq,使Φ(n)=(p-1)(q-1),Φ(n)为欧拉函数。随机选取正整数e,使其满足gcd (e, Φ(n))=1,即e和Φ(n)互质,则将(n,e)作为公钥。

2.私钥

求出正数d,使其满足e×d=1 modΦ(n),则将(n,d)作为私钥。

3.加密算法

对于明文M,由C=Me mod n ,得到密文C。

4.解密算法

对于密文C,由M=Cd mod n,得到明文M。

如果窃密者获得了n,e和密文C,为了破解密文他必须计算出私钥d,为此需要先分解n为p和q。为了提高破解难度,达到更高的安全性,一般商业应用要求n的长度不小于1024bit,更重要的场合不小于2048bit。

点击目标主机上的目录“d:\tools\BUPT1022B”。如图所示:

点击打开“RSATool”,出现如下界面。如图所示:

单击“Start”按钮,然后随意移动鼠标直到提示信息框出现,以获取一个随机数种子

在“Keysize”中输入你想要的密钥的长度,从32到4096,位数越多安全性也高,但运算速度越慢,一般选择1024位足够了,单击“Generate”按钮生成。

单击“Test”按钮测试,在“Message to encrypt”编辑框中随意输入一段文本,然后单击“Encrypt”按钮加密,再单击“Decrypt”按钮解密,看解密后的结果是否和所输入的一致,如果一致表示所生成的RSA密钥可用,否则需要重新生成,如图所示:

精选