公钥和私钥

公钥和私钥的原理

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

 +------------+                                  +---------------+
 | 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     |<--+
   +------------+                                +---------------+
  • 持有私钥方,采用数字签名,发送信息。
  • 首先要Hash函数将信息生成摘要。
  • 然后用私钥对这个摘要加密,生成数字签名
  • 最后将生成的数字签名附在信息下一并发送。
  • 持有公钥方收到内容后,用公钥解密数字签名,获得摘要。由此证明私钥方的身份。
  • 接着再对信息本身使用Hash函数,同样得到一份摘要。
  • 将这两份摘要进行对比,验证是否一致,证明信息未被修改。

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

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

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

HTTPS中的应用

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

  • 首先,客户端想服务端发送加密请求。
  • 服务端用自己的私钥加密网页后,连同本身的数字证书,一并发送给客户端。
  • 客户端的证书管理器中会有受信任的根证书颁发机构列表。客户端根据这张表,查看解开数字证书的公钥是否在列表中。
  • 如果数字证书记载的网址和你正在浏览的网址不一致,就说明这张证书可能被冒用,客户端发出警告。
  • 如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。
  • 如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥对信息进行加密,然后与服务器交换信息。

参考链接:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容