anancds / document

MIT License
1 stars 0 forks source link

先签名后加密 #73

Open anancds opened 4 years ago

anancds commented 4 years ago

1) 签名

发送方通过私钥来进行数字签名,接收方通过发送方发布的公钥进行数字签名的解密,用于验证发送方的身份。

2) 加密

发送方通过接收方发布的公钥来对数据进行加密,接收方使用私钥来进行解密,用于保护信息不被非法窃取。

3) 公钥和私钥到底哪个才是用来加密和哪个用来解密?

既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。

4)为什么要先签名后加密? 参考:http://jian0487.iteye.com/blog/444273 具体步骤如下: Alice与Bob互换公钥。 Alice用自己的私钥对TXT文件进行数字签名。 Alice用Bob的公钥对TXT文件进行加密。 Alice把经过数字签名和加密的文件TXT,通过邮件或其他传输途径,如QQ、MSN等)传给Bob。 Bob在收到签名并加密的邮件后首先用Bob自己的私钥进行加密文件的解密,然后再用Alice的公钥进行数字签名解密。 同样,在这个过程中Cinda也可以获取Bob、Alice的公钥和签名并加密的标书文件TXT。同时因无Bob的私钥而无法打开邮件。同时由于Alice在发送文件前已用自己的私钥进行了数字签名,所以当Bob在收到邮件后完全可以证实自己收到的就是Alice发来的邮件,而不可能是其他用户的。试想如果Cinda非法用户想要改变邮件,冒充Alice向Bob发送邮件,因Cinda没有Alice的私钥,所以在用其他用户的私钥进行数字签名时就不可能再以Alice的公钥来解密数字签名了。

在这里要注意文件加密和数字签名的先后顺序,一定是先签名再加密,这样加密技术就可以同时保证邮件中的数字签名了。如果先加密,而后签名,非法用户在得到邮件后就可通过获取的公钥破解数字签名了,因为公钥是可以公开的,很容易被一些别有用心的人得到。数字签名破解后很可能签名被替换。当然邮件中的内容在没有收件人私钥的情况下还是无法打开的。