Poly1305是由丹尼尔·J·伯恩斯坦设计的密码学訊息鑑別碼(MAC)。它可用于验证数据完整性和訊息真伪。不依赖AES的Poly1305变种已由互联网工程任务组在中标准化。
概述
在原始提案中,Poly1305使用AES分组密码来扩展密钥(Poly1305-AES)。在中,Poly1305使用Salsa20替代AES,在TLS和SSH中,它与ChaCha20密钥流一起使用。
Google选择了伯恩斯坦设计的,带Poly1305訊息鑑別碼的ChaCha20,作为OpenSSL中RC4的替代品,用以完成互联网的安全通信。Google最初实现了HTTPS (TLS/SSL)流量在Chrome浏览器(Android手机版)与Google网站之间的通信。
不久之后,Google在TLS中采用它,ChaCha20和Poly1305算法也以 [email protected] 成为OpenSSH中的一个新密码套件。后来,通过编译时选项避免它依赖于OpenSSL也成为可能。ChaCha20-Poly1305的使用已在中标准化。
实现
以下是支持Poly1305的加密库列表:
*
*
- Crypto++
*
*
*
- OpenSSL
- GnuTLS
- LibreSSL
- mbedTLS
- wolfCrypt
参考文献
外部链接
- [https://cr.yp.to/mac.html Poly1305-AES] reference and optimized implementation by author D. J. Bernstein
- [https://github.com/floodyberry/poly1305-donna Fast Poly1305 implementation in C] on github.com
评论 (0)