update crypto content

This commit is contained in:
yjjnls 2018-07-08 14:54:35 +08:00
parent 3a7a4023fc
commit 7d3c937c79

View File

@ -55,9 +55,14 @@
A把要加密的内容用hash函数生成摘要digest再用自己的私钥对digest加密生成数字签名signature。连同加密的内容一起发给B。
B收到后对**摘要用A的公钥解密**和**内容(用自己的私钥解密)** 都解密再对内容使用相同hash看得到的digest是否相同相同说明发送的内容没有被修改。
B收到后对**摘要digest用A的公钥解密**和**内容(用自己的私钥解密)** 都解密再对内容使用相同hash看得到的digest是否相同相同说明发送的内容没有被修改。
>但是如果这里用B的公钥来加密摘要digestB收到后用自己的私钥解密这不是也可以验证内容是否被篡改么
如果仅仅从防篡改的角度来讲确实可以,但是这样无法验证这些内容是谁发来的!**所以用A的私钥来加密摘要digest相当于A用自己的私钥给这个摘要digest进行签名B收到后用A的公钥对digest进行解密还能验证这是不是A发来的内容**。
但是这里有个`潜在的问题`
同时用A的公钥对digest进行解密还能验证这是不是A发来的内容但是这里有个潜在的问题。
>**如果B存储的A的公钥被C替换成了C的公钥那么C就可以冒充A和B进行通信而B却完全不知道。**
## 数字证书
@ -72,7 +77,7 @@ B可以每次都到CA的网站上或者什么别的官方途径获得CA的
1. 确认该信息确实是A所发
2. 确认A发出的信息是完整的。
* **公钥防泄漏,私钥防篡改**
* **公钥防泄漏,私钥防篡改、防假冒**
* B收到后只有用B自己的私钥才能解密内容别人是无法解密的。`防泄漏`
* 再用上述数字证书来验证数字签名是否来自A发送内容有没有被篡改。`防篡改`
数字证书一般挂靠在可信任的机构,无法篡改和伪造。