基本原理原理
对称加密
加密和解密用的同一套算法,比如
原文 “abc”, 加密 “所有字母序号+1”
密文 “bcd”, 解密 “所有字母序号-1”
非对称个加密
基于大数的分解困难,加密解密用不同的文件
原文 “abc…”, 加密 “私钥”
密文 “…bcd”, 解密 “公钥”
加密传输
A 保有私钥
,将公钥
发给 B
A:原文
加密成密文
, 取原文的hash
发出的消息为密文
+ hash
B:将密文解密成原文1
, 取原文1
的hash1
如果hash
===hash1
,则原文
是从 A 发出的,并且原文
=== 原文1
没有被更改过
证书
在于如何将公钥
发给 B?
或者说如何证明给 B 发消息的是 A?
和加密传输类似,需要向一些可信任的机构申请证书
CE 的私钥, A 取得 CE 的公钥, 浏览器也有 CE 的公钥
A: A的信息
中包含自己的信息,比如域名,
将其发送给CE
CE: CE
将 A的信息
用私钥加密,并将A的信息
取hash
,加在一起就成了 A 的证书
浏览器(用户 B
): 与 A 通信系时先取得A的证书
,用 CE 的公钥解密验证 hash
,即可取得A的信息
这个信息是经过CE
认证的,浏览器预先信任了CE
,所以也就信任了A的信息
也就证明了这个证书确实是A
的, 浏览器确实在与 A
通信