joyfully_flower 发表于 2011-12-22 08:53

数字签名过程

<DIV>
<P>1,用户A将明文通过hash运算(散列)生成<SPAN style="COLOR: #ff0000">数字摘要1</SPAN>,用户A用自己的私钥对摘要进行加密生成<SPAN style="COLOR: #ff0000">数字签名1.</SPAN></P>
<P><SPAN style="COLOR: #000000">2,用户A将明文+<SPAN style="COLOR: #ff0000">数字签名1</SPAN>+A用户的公钥(证书),准备将这些信息发到B用户,但是这个过程中,用户A明文是不安全的是可见的,我们需要对这三个文件进行加密。</SPAN></P>
<P>3,用户A通过一个“对称加密”(对称加密速度很快,知道密钥就可以解密)对其进行加密将其生成<SPAN style="COLOR: #ff0000">秘文1</SPAN>,要想这次加密成功关键就是要保护这个<SPAN style="COLOR: #ff0000">对称加密的密钥1</SPAN>。</P>
<P>4,为了保证上面的加密安全,使用用户B的公钥对“<SPAN style="COLOR: #ff0000">对称加密的密钥1</SPAN>”进行了一次加密处理,生成一个<SPAN style="COLOR: #ff0000">数字信封1</SPAN>,此时这个<SPAN style="COLOR: #ff0000">数字信封1</SPAN>+<SPAN style="COLOR: #ff0000">秘文1</SPAN><SPAN style="COLOR: #000000">打包装入就可以发送给用B了。</SPAN></P>
<P>5,用户B接收到信,看到<SPAN style="COLOR: #ff0000">数字信封1<SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #ff0000">秘文1</SPAN></SPAN><SPAN style="COLOR: #000000">,用户B用私钥解密</SPAN><SPAN style="COLOR: #ff0000">数字信封1</SPAN><SPAN style="COLOR: #000000">,得到了“<SPAN style="COLOR: #ff0000">对称加密的密钥1</SPAN>”,通过这个对称加密密钥对<SPAN style="COLOR: #ff0000">秘文1</SPAN>解密,就可以解开密文。</SPAN></P>
<P>6,解开<SPAN style="COLOR: #ff0000">秘文1</SPAN><SPAN style="COLOR: #000000">解则看到了A的明文+<SPAN style="COLOR: #ff0000">数字签名1</SPAN>+A用户的公钥(证书),这三个文件,这个时候已经可以确认是用户A发的信息了,但是还要验证文件在传输过程中是否被篡改。</SPAN></P>
<P>7,用户B将明文通过hash运算(散列)生成<SPAN style="COLOR: #ff0000">数字摘要2</SPAN><SPAN style="COLOR: #000000">,同时用得到的A用户的公钥(证书)对</SPAN><SPAN style="COLOR: #ff0000">数字签名1</SPAN><SPAN style="COLOR: #000000">进行解密生成原来的</SPAN><SPAN style="COLOR: #ff0000">数字摘要1</SPAN><SPAN style="COLOR: #000000">,如果此时的</SPAN><SPAN style="COLOR: #ff0000">数字摘要1<SPAN style="COLOR: #000000">同</SPAN>数字摘要2</SPAN><SPAN style="COLOR: #000000">相同那么说明整个过程是安全而有效的。</SPAN></P>
<P><SPAN style="COLOR: #000000"></SPAN>&nbsp;</P>
<P><SPAN style="COLOR: #000000"></SPAN>&nbsp;</P>
<P><SPAN style="COLOR: #000000"><IMG src="http://blog.chinaunix.net/blog/image/editor/hou/12.gif">晕啊</SPAN></P></DIV>
页: [1]
查看完整版本: 数字签名过程