打字猴:1.700416998e+09
1700416998 计算机是怎样跑起来的 [:1700412729]
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 [文本数据的接收者]
1700417022
1700417023 (1)用发送者的公钥对消息摘要进行解密
1700417024
1700417025 例:B=66→43
1700417026
1700417027 (2)计算出明文部分的信息摘要
1700417028
1700417029 例:(78+73+75+75+69+73)/100,结果的余数=43
1700417030
1700417031 (3)比较在步骤(1)和(2)中求得的值,二者相同证明接收到的消息有效
1700417032
1700417033 例:因为43=43,所以消息有效
1700417034
1700417035 请注意,这里是使用私钥进行加密,使用公钥进行解密,这与之前的用法刚好相反(如图10.10所示)
1700417036
1700417037 图10.10 创建数字签名的步骤
1700417038
1700417039
1700417040
1700417041
1700417042 而且这里所使用的消息发送者(图10.10中的A小姐)的密钥对,而之前所使用的则是消息接收者(B先生)的密钥对
1700417043
1700417044 本例中消息摘要的算法是把明文中所有字母的编码加起来,然后取总和的最后两位。而在实际中计算数字签名时,使用的是通过更加复杂的公式计算得出的,被称为MD5(Message Digest5)的消息摘要。由于MD5经过精心设计,所以使得两段明文即便只有略微的差异,计算后也能得出不同的消息摘要。
1700417045
1700417046 也许会认为把文件发送者的名字,比如“矢泽久雄”这个字符串用私钥加密,然后让对方用公钥解密也能代替印章或签名,但如果这样做就不算是数字签名了,因为印章或签名有两层约束:(1)是发送者承认文件的内容是完整有效的;(2)文件确实是由发送者本人发送的。发送者用构成文件的所有字符的编码生成了消息摘要,就证明发送者从头到尾检查了文件并承认其内容完整有效。如果接收者重新算出的消息摘要和经过发送者加密的消息摘要匹配,就证明文件在传输过程中没有被篡改,并且的确是发送者本人发送的。正因为数据是用发送者的私钥加密的,接收者才能用发送者的公钥进行解密。
1700417047
[ 上一页 ]  [ :1.700416998e+09 ]  [ 下一页 ]