加密算法
对称加密
:加密和解密使用的同一套密钥
非对称加密
:RSA算法 ,两个密钥,一个公钥,一个私钥。用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的数据,只有对应的私钥才能解密。
非对称加密速度慢
非对称加密+对称加密
利用非对称加密传输对称加密使用的密钥,随后的通信通过对称加密实现,提升速度。
中间人劫持
你到底是谁(证书,授信,数字签名
将公钥和个人信息用Hash算法生成一个消息摘要,hash算法的优势是,输入数据变动一些,输出的消息摘要就会发生巨大变动。
这个情况(没有办法修改公钥,如果中间人想要将整个原始信息替换,生成一个消息摘要,是否还是无法辩别了?
上面的情况,使用具有公信力的认证中心(CA)
用私钥对消息摘要加密,形成签名、
同时,将原始数据和数据签名合并,形成一个全新的东西:数字证书
当发送者将证书发送给接受者,接受者用相同的Hash算法再次生成消息摘要,再用CA的公钥对数字签名解密,得到CA创建的消息摘要,两者一对比,就知道有没有被人篡改。
HTTPS
一个简化版本(没有Pre-Master Secret)的HTTPS流程如下图,(Pre Master Secret -pre-master-secret由client产生,在产生该secret之前,client和server已经交换了client_random和server_random。然后client和server会使用一个PRF(Pseudo-Random Function)来产生master-secret。
master_secret **=** PRF(pre_master_secret, "master secret", ClientHello.random **+** ServerHello.random)
参考
[1^][码农翻身:用故事给技术加点料]
[2^]浅谈常见的七种加密算法及实现