公钥与私钥、加密与签名
我
发送给你的 数据
必须 加密
,在数据的 传输过程中
不能被别人看到。
- 必须保证是
我
发送的 数据
,不是别人冒充我的。
数据 |
私钥 |
传输 |
公钥 |
|
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 |
虚拟专有网络 |
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于