公钥与私钥、加密与签名
我 发送给你的 数据 必须 加密,在数据的 传输过程中 不能被别人看到。
- 必须保证是
我 发送的 数据,不是别人冒充我的。
| 数据 |
私钥 |
传输 |
公钥 |
|
| 010011 |
---> 签章 |
---> 传输---> |
验章 |
|
| 010011 |
<--- 解密 |
<---传输 <--- |
加密 |
|
- 用
公钥 加密的内容只能用 私钥 解密
- 用
私钥 签章的内容只能用 公钥 验章
假设 A 需要向 B 发送一份数据
- 公私钥对生成
A 生成公私钥对,rsa_public_a 和 rsa_private_a
B 生成公私钥对,rsa_public_b 和 rsa_private_b
- 公钥分发或者获取
A 获取 B 的公钥 rsa_public_b
B 获取 A 的公钥 rsa_public_a
- 数据发送
A 准备把一份数据加密传给 B
A 使用 B 的公钥 rsa_public_b 对 数据 进行加密,保证数据只能 B 解密
A 使用 A 的私钥 rsa_private_a 对 加密的数据 进行签章,保证数据是 A 发送的
A 把签章后的数据通过特定传输协议发送到 B 端
- 数据接收
B 收到一份来自 A 的报文数据
B 使用 A 的公钥 rsa_public_a 对数据进行验章,确认数据是 A 发送的
B 使用 B 的私钥 rsa_private_b 对数据进行解密
B 获得了解密后的 A 发送的原始数据
/* ---- 参考文件 ----
http://blog.csdn.net/it_man/article/details/24698093
*/
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
1\. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2\. 必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。
私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章.首先就Key的所有权来说,私钥只有个人拥有。
公钥与私钥的作用是:
用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。
比如说,我要给你发送一个加密的邮件。
首先,我必须拥有你的公钥,你也必须拥有我的公钥。
然后,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。
你收到邮件后,用你的私钥就可以解密,就能看到内容。
其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。
验证方面则是使用签 验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。
缩略语
| 缩略语 |
英文全名 |
中文解释 |
| AES |
Advanced Encryption Standard |
高级加密标准 |
| CA |
Certificate Authority |
证书机构 |
| DES |
Data Encryption Standard |
数据加密标准 |
| HTTPS |
Hypertext Transfer Protocol Secure |
安全超文本传输协议 |
| MAC |
Message Authentication Code |
消息验证码 |
| MD5 |
Message Digest 5 |
消息摘要算法 5 |
| PKI |
Public Key Infrastructure |
公钥基础设施 |
| RSA |
Rivest Shamir and Adleman |
非对称密钥算法的一种 |
| SHA |
Secure Hash Algorithm |
安全散列算法 |
| SSL |
Secure Sockets Layer |
安全套接层 |
| VPN |
Virtual Private Network |
虚拟专有网络 |
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于