数字摘要、数字签名和加密算法
1、加密算法:对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码
- 对称加密:加密和解密使用同一个密钥
- 非对称加密:加密和解密所使用的不是同一个密钥,通常称为“公钥”和“私钥”,公钥和私钥可以互相解密
- 签名时,使用私钥加密,公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改.但是不用来保证内容不被他人获得,保证了数据的唯一性。
- 加密时,用公钥加密,私钥解密,用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得,保证了数据的安全性。
2、数字签名: 非对称加密算法与数字摘要技术的应用
非对称密钥加密: RSA 、ECC等,依赖密钥长度来提高安全性,
数字摘要:将任意长度的消息变成固定长度的短消息, 常用的加密算法包括 HASH (MD5 、SHA1 、SHA256)、HMAC(HmacMD5/HmacSHA1/HmacSHA256)等,安全性按颜色区分红色安全性高,绿色安全性高
3、一般使用过程:
环境:A 的 公钥公开,私钥保密 ,同理B一样 ,A 和 B都使用同样的摘要算法 HASH
- A 给 B 发送一段数据 data ,首先 A 使用 HASH 算法生成 data 的数字摘要 digestA ,然后利用 A 的私钥对数字摘要 digestA 进行加密生成 digestEncodeA ,然后将 data 和 digestEncodeA 一起发送给 B
- B 收到 A 发过来的 data 和 digestEncodeA 以后,首先使用 HASH 算法生成 data 的数字摘要 digestB ,然后用 A的公钥对 digestEncodeA 进行解密得到数字摘要 digestDecodeB,然后如果 digestB = digestDecodeB ,那么标明data 是由A发送过来的 ,否则不是
同理,B 如果要发送回执,就在循环执行上面的步骤即可
4、总结: 数字摘要验证了原文是否被篡改、公钥私钥保证了数字摘要的安全性,两者配合使用安全性高,速度快