1. 背景
文中所列出的推荐算法皆已经过全世界密码学家验证和各国际标准化组织认证, 并在市场中广泛应用, 有望在未来足够长的时间内保证安全性和实现性能。
2. 密码学家的工具箱
2.1 散列算法
散列算法是密码学算法中非常重要的一个分支, 通过对所有数据提取指纹信息以实现数据签名、 数据完整性校验等功能。用于消息唯一性和数据完整性验证的散列函数, 其安全性依赖于函数本身的属性和对抗碰撞的抵抗, 因此散列函数的选择至关重要。
- MD 系列函数已宣告破解, 可被轻易伪造, 不能作为安全散列函数使用。
- SHA 安全加密标准是至今世界上使用最广泛的散列算法之一。SHA1 已宣告破解。考虑性能消耗与安全性的平衡, SHA2 系列算法得到了广泛的认可及应用。SHA3 作为下一代安全加密标准, 将会在未来发挥重要的作用。
- RIPEMD 是为了弥补 MD 系列算法的缺陷而由提出的算法, 比特币生成地址过程中使用了 RIPEMD160, 虽然 RIPEMD160 还未宣告破解, 但已被证明密码强度较弱, 不推荐使用
- Tiger 算法号称最快的 Hash 算法, 专门针对 64 为机器做优化了。
- Whirlpool 算法被列入 iso 标准。与 AES 加密标准使用了相同的转化技术, 极大提高了安全性, 被称为最安全的摘要算法。