1700508962
这种加/解密按大类通常可分为对称加密和非对称加密。比较成熟的对称加密算法有DES、3DES、TDEA、Blowfish、RC5、IDEA等;比较成熟的非对称加密算法有RSA、ElGamal等。从安全性上来说,非对称算法要比对称算法更为安全。
1700508963
1700508964
1.对称加密
1700508965
1700508966
DES是1972年美国IBM公司研制的对称密码体制加密算法,该算法有3个参数。
1700508967
1700508968
1700508969
1700508970
1700508971
其中,key是一个64位的密钥,其中有56位参与加/解密运算,另外8位作为校验码;data是要进行加/解密的数据串;mod e是工作模式,有“Encrypt”(加密模式)和“Decrypt”(解密模式)两种。
1700508972
1700508973
如果密钥没有泄露,在信道上截获密文时,只能使用穷举法来破解。如果要全部穷举这些数据,假设每秒验算100万次,需要大约2285年才能完成。不过,现在大规模计算集群越来越普及,这种密码的可靠性实际上每年都在降低。因为密钥的副本不仅在服务器端有,在终端也要保存,所以,如果密钥在终端直接泄露,那就完全谈不上安全了。
1700508974
1700508975
2.非对称加密
1700508976
1700508977
相比之下,RSA比DES要安全许多。RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的,于1987年首次公布。当时他们都在麻省理工学院工作,“RSA”就是由他们三人姓氏的首字母组成的。
1700508978
1700508979
与DES不同,RSA每次会同时生成一对密钥,即一个公钥(Public Key)和一个私钥(Private Key)。公钥是可以公开的,而私钥由生成方保存。RSA加密的步骤如下。
1700508980
1700508981
(1)随意选择两个大的质数p和q,p不等于q,然后计算N=pq。
1700508982
1700508983
(2)令r=(p-1)(q-1)。
1700508984
1700508985
(3)选择一个整数e,满足e<r,使e与r互质。再求d,使ed mod r=1。
1700508986
1700508987
(4)销毁p和q。
1700508988
1700508989
这时得到的(N, e)就是公钥,(N, d)就是私钥。
1700508990
1700508991
如果要加密,可以把每个字符的unicode码u做以下变换:
1700508992
1700508993
1700508994
1700508995
1700508996
然后,把每个c都传给解密方。
1700508997
1700508998
解密方得到c,要想得到u,则有
1700508999
1700509000
1700509001
1700509002
1700509003
由于这些都是正整数,所以对只会做加法的电子计算机来说,还是能比较容易地得到解。
1700509004
1700509005
但是,要在破解公钥(本来就是公开的)的情况下拿到密文c来破解u,就只能根据
1700509006
1700509007
1700509008
1700509009
1700509010
来计算,也就是通过截获的N来分解质因数,得到p和q。
1700509011
[
上一页 ]
[ :1.700508962e+09 ]
[
下一页 ]