关于设计,摄影和文学湿货ios

公钥和私钥

2015-03-18  本文已影响924人  Xue_Season

公钥和私钥的原理

一般私钥方要想和其他人进行通信,会自己保留一份私钥,然后发给他人公钥。

 +------------+                                  +---------------+
 | Public key |                                  | Private key   |
 +------------+                                  +---------------+
 
 +--------------+                                +---------------+
 | Message      |            send                | Message       |
 | encrypt by   |>------------------------------>| decrypt by    |
 | public key   |                                | private key   |
 +--------------+                                +---------------+

此时,只要私钥不泄漏,这段信息就是安全的,即使被第三方拦截,依旧无法解密。

   +------------+                               +---------------+ 
   | Public key |                               | Private key   |
   +------------+                               +---------------+
   
   +-------------+                               +---------------+
+->| Signature   |                               | Message       |
|  | decrtypt by |                               +---------------+
|  | public key  |                                       v
|  +-------------+                                       |
|        v                                              Hash
|        |                                               |
|        v                                               v
|  +-------------+                               +---------------+
|  | Digest      | (Is same digest?)             | Digest        |
|  +-------------+                               +---------------+
|        ^                                               v
|        |                                               |
|        ^                                      Encrypt by priave key
|  +------------+                                        |
|  | Message    |                                        v
|  | decrypt by |<-+                             +---------------+
|  | hash       |  |                             | Signature     |---+
|  +------------+  |                             +---------------+   |
|                  |                                                 |
|  +------------+  |                             +---------------+   |
|  | Message    |--+                             | Message       |   |
|  |    +       |<------------------------------<|    +          |   |                                  
+--| Signature  |                                | Signature     |<--+
   +------------+                                +---------------+

这个时候,第三者出现。持有公钥方的公钥被第三者的公钥偷偷替换。
第三者用自己的私钥做成数字签名,和公钥方进行通信。
此时,持有公钥方完全不知情,以为自己仍然持有原有公钥和私钥方通信。
实际上却是使用第三者的公钥与第三者进行通信。

当公钥方无法确定自己的公钥是否属于私钥方的时候,此时可以寻求私钥方的证书中心(Certifiacte Authority, CA),为公钥做认证。
证书中心用自己的私钥,对私钥方的公钥和一些信息一起加密,生成数字证书(Digital Certificate)。

得到数字证书之后,私钥方以后再和公钥方通信的时候,只要在签名后再附上数字证书
公钥方收到信息后,用CA解开数字证书,就可以获得私钥方真实的公钥,随后就可以证明数字签名是否真的是私钥方的。

HTTPS中的应用

https协议主要用于网页加密。

参考链接:

Season'neko https://xnix.me/gong-yao-he-si-yao/

上一篇下一篇

猜你喜欢

热点阅读