公钥和私钥
对称加密:解密和加密使用相同秘钥
非对称加密:公钥加密的内容使用私钥解密。私钥加密的内容使用公钥解密。
数字签名
公钥是公开的,私钥自己保留。当自己(A)要发出一段明文给B时,将其用私钥加密,若B能正确将其解密,则说明该段明文是由A发出,从而达到签名效果。
进化版:明文内容可能太多,因此将明文使用hash算法计算出摘要,例如SHA1是一种哈希算法,是一种单向函数,可将任何大小的输入转换为固定长度的输出(在这种情况下为160位),A对摘要进行加密得到签名,将签名连同明文一起发送给B,B收到后再将明文进行hash运算得出摘要1,将签名用公钥解密得出摘要2,摘要1和摘要2对比相等则说明签名正确。
数字证书
若C将B持有的公钥篡改,此时会出现问题。
解决:找一个受信任的机构,我们叫其CA,A将公钥和A的个人信息打包找CA使用CA的私钥进行加密,这样就形成了一个数字证书,将数字证书和要发送的内容一起发送给B,B再使用CA的公钥解密得到A的公钥和A的信息。
我的疑问1:若C偷了A的数字证书怎么办?
不用担心,数字证书里是A的公钥,若C用C的私钥加密,用公钥A是解密不了的