对称加密
通信的两端, 使用用一个秘钥对数据进行加密和解密操作, 常用的方法有AES, DES, 加密解密, 因为采用的对位的操作, 对位的异或和移位操作, 执行的过程中, 速度会很快
非对称加密
通信的两端, 生成公私秘钥, 任何一方加密的, 只能用另一方进行解密.(公加密, 私解密. 或 私加密, 公解密), 常用的算法有RSA.
非对称加密, 使用的是c^e mod N的计算方法, 会比对称加密的直接移位效率会差很多, 而且特别体现在解密的时候, 解密的时候, 会非常的耗费费时间
数字签名
通过计算hash, 对正文P, 计算哈希, 得到H, 然后用私有秘钥加密生成S, 此时的S便是数字签名.
对方收到后, 用自己的公钥, 对报文解密得到H’(如果能得到), 得到了H’, 就验证了传输的真实性, 传输过程数据未被修改
对端对收到的P, 用同样的方法计算一次hash, 如果得到一个H’’, H"和H’一样, 就说明这段数据的完整性可以保证.
数字证书
- 数字证书, 必须由权威机构, 和浏览器的开发商合作, 在浏览器一开始的阶段, 就将对应的web server的数字证书颁布机构的公钥嵌入到浏览器中.
- 之后当访问web server时, web server先向颁布机构申请数字证书, 携带着一些列的web server数据, 交给证书机构, 证书机构根据web server提供的数据, 用证书机构的私钥, 生成数字签名, 之后返回给web server, web server获得授权之后, 就将数字签名发送给客户端
- 客户端可以用浏览器内已经内置的证书机构颁布的公钥, 验证证书的真实性和完整性.如果可以解密, 保证证书的验证通过, 数据未被修改, 完成了一次验证.
- 之后, 就可以使用web server的一些数据, 比如web server的公钥, 加密一个客户端生成的对称加密的秘钥, 然后发送给web server, w
eb server就可以私钥解密获得对称加密的秘钥, 后续安全通信.