mirror of
https://github.com/yjjnls/awesome-blockchain.git
synced 2025-02-25 08:51:32 -05:00
update crypto content
This commit is contained in:
parent
3a7a4023fc
commit
7d3c937c79
@ -55,9 +55,14 @@
|
||||
|
||||
A把要加密的内容用hash函数生成摘要digest,再用自己的私钥对digest加密,生成数字签名signature。连同加密的内容一起发给B。
|
||||
|
||||
B收到后,对**摘要(用A的公钥解密)**和**内容(用自己的私钥解密)** 都解密,再对内容使用相同hash,看得到的digest是否相同,相同,说明发送的内容没有被修改。
|
||||
B收到后,对**摘要digest(用A的公钥解密)**和**内容(用自己的私钥解密)** 都解密,再对内容使用相同hash,看得到的digest是否相同,相同,说明发送的内容没有被修改。
|
||||
|
||||
>但是如果这里用B的公钥来加密摘要digest,B收到后用自己的私钥解密,这不是也可以验证内容是否被篡改么?
|
||||
|
||||
如果仅仅从防篡改的角度来讲确实可以,但是这样无法验证这些内容是谁发来的!**所以用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,发送内容有没有被篡改。`防篡改`
|
||||
数字证书一般挂靠在可信任的机构,无法篡改和伪造。
|
||||
|
Loading…
x
Reference in New Issue
Block a user