1700416972
1700416973
1700416974
1700416975
可用于实现公开密钥加密技术的算法有若干种,这里介绍目前广泛用于因特网中的RSA算法。RSA这个名字是由三位发明者Ronald Rivest、Adi Shamir和Leonard Adleman姓氏的首字母。美国的RSA信息安全公司对RSA的专利权一起持有到2000年9月20日,使用RSA创建公钥和私钥的步骤如图10.8所示。
1700416976
1700416977
图10.8 创建公钥和私钥的步骤
1700416978
1700416979
1700416980
1700416981
1700416982
无论是公钥还是私钥都包含两个数值,组成的数对儿才是一个完整的密钥。
1700416983
1700416984
由图10.8的步骤可以提出:323和11是公钥,323和131是私钥,的确是两个值者不相同的密钥。在使用这对密钥进行加密和解密时,需要对每个字符执行如图10.9所示的运算
1700416985
1700416986
图10.9 用公钥加密,用私钥解密
1700416987
1700416988
1700416989
1700416990
1700416991
这里参与运算的对象是字母N(字符编码为78)。用公钥对N进行加密得到224,用私钥对224解密可使其还原为78
1700416992
1700416993
是不是以为只要了解RSA算法,就可以通过公钥c=323,e=11推算出私钥c=323,f=131了呢?但为了求解私钥中的f,就不得不对c进行因子分解,分解为两个素数a,b,在本例中c的位数很短,而在实际应用公开密钥加密时,建议将c的位数(用二进制数表示时)扩充为1024位(相当于128字节)。要把这样的天文数字分解为两个素数,就算计算机的速度再快,也还是要花费不可估量的时间,时间可能长到不和不放弃破解的程度。
1700416994
1700416995
1700416996
1700416997
1700416999
计算机是怎样跑起来的 10.5 数字签名可以证明数据的发送者是谁
1700417000
1700417001
本章最后,先介绍一种公开密钥加密技术的实际应用–数字签名。在日本商界有盖章的习惯,在欧美则是签名。印章和签名都可以证明一个事实:那就是某个人承认 了文件的内容是完整有效的。而在通过网络传输的文件中,数字签名可发挥出与印章和签名同样的证明效果。通常可以按下面的步骤生成数字签名。步骤中所提及的“消息摘要”(Message Digest)可以理解为一个数值,通过对构成明文的所有字符的编码进行某种运算得到的数值。
1700417002
1700417003
[文本数据的发送者]
1700417004
1700417005
(1)选取一段明文
1700417006
1700417007
例:NIKKEI
1700417008
1700417009
(2)计算出明文内容的消息摘要
1700417010
1700417011
例:(78+73+75+75+69+73)/100,结果的余数=43
1700417012
1700417013
(3)用私钥对计算出的消息摘要进行加密
1700417014
1700417015
例:43→66(字母B的编码)
1700417016
1700417017
(4)把步骤(3)得出的值附加到明文后面再发送给接收者
1700417018
1700417019
例:NIKKEIB
1700417020
1700417021
[文本数据的接收者]
[
上一页 ]
[ :1.700416972e+09 ]
[
下一页 ]