对称加密
使用密钥和加密算法对数据进行加密,得到密文。再使用密钥和解密算法对密文解密得到原数据。
对称加密.png
缺点:
密钥有泄漏的风险。
非对称加密
使用公钥和加密算法对数据进行加密,得到密文。在使用私钥和加密算法对密文解密得到原数据。
非对称加密.png
数字签名
使用私钥和加密算法进行加密,得到密文。再使用公钥和加密算法得到原数据。
数字签名.png
使用私钥对数据进行加密,这样确保了数据不是伪造数据,就是想要的数据。
因为接收方解密之后不知道是不是就是原数据所以发送的时候也需要把原数据和签名数据一起发送给接受方:
数字签名衍化.png
这样解密之后的数据和原数据进行比较一样的话,就是原数据。
但是由于原数据一起发送,导致有可能原数据被中间人获取到,所以上面发送的原数据可以使用非对称加密对原数据进行加密,得到密文,这样就能保证原数据不能被偷窥,下面的数据保证了不能被伪造:
数字签名密文.png
又因为签名数据可以根据公钥得到原数据,这样又不能保证数据安全,这样也会造成传输数据很大,所以我们可以对签名数据做一次hash得到摘要做签名,然后接受方获取到原数据后对原数据进行hash,再进行hash对比就能知道是不是原数据了:
完整数字签名.png