通讯条件
我有两把锁和两把对应的钥匙:
私钥A、私锁B
公锁A、公钥B
私钥A可以开公锁A,公钥B可以开公锁B
公锁A和公钥B放到了门外,所有人都可以拿
私钥A和私锁B,我自己藏着不让人知道
你也有两把锁和两把对应的钥匙:
私钥C、私锁D
公锁C、公钥D
公锁C和公钥D放到了门外,所有人都可以拿
私钥C和私锁D,你自己藏着不让人知道
通讯过程
为了给你传递消息,我拿了你的公锁C来锁住我的消息,这时只有你能用私钥C来打开查看消息。为了让你知道这个消息是我发的,而不是别人发的,我拿了自己的私锁B,又在外面加了锁。
消息到你那以后,你先拿我的公钥B打开了我的私锁B,然后就看到了用你的公锁C锁住的消息,因为只有你自己有私钥C,所以只有你才能看到里面的消息。
轮到你给我发消息了,你先拿我的公锁A锁住了消息,保证只有我能看到消息,然后为了证明消息是你发的,你就拿了你的私锁D在外面又加了一把锁,这把锁大家可用你的私钥D来开。
我收到消息后,去拿你的公钥D开了你外面的私锁D,然后用我的私钥A开了里面的公锁A,然后我就可以看到里面的消息了。
上面的例子对应于私钥公钥加密体制的公钥、私钥如下:
我的公钥:公锁A和公钥B
我的私钥:私钥A和私锁B
你的公钥:公锁C和公钥D
你的私钥:私钥C和私锁D
事实上每人都有两把锁和对应的钥匙。
分类:
网络通信
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2018-05-28 读:刘未鹏|我在南大的七年
2018-05-28 分布式之redis复习精讲
2018-05-28 JAVA多线程17个问题