Poly1305

Poly1305是由丹尼尔·J·伯恩斯坦设计的密码学訊息鑑別碼（MAC）。它可用于验证数据完整性和訊息真伪。不依赖AES的Poly1305变种已由互联网工程任务组在中标准化。

 概述 
在原始提案中，Poly1305使用AES分组密码来扩展密钥（Poly1305-AES）。在中，Poly1305使用Salsa20替代AES，在TLS和SSH中，它与ChaCha20密钥流一起使用。

Google选择了伯恩斯坦设计的，带Poly1305訊息鑑別碼的ChaCha20，作为OpenSSL中RC4的替代品，用以完成互联网的安全通信。draft-ietf-tls-chacha20-poly1305 The ChaCha20-Poly1305 AEAD Cipher for Transport Layer SecurityGoogle最初实现了HTTPS (TLS/SSL)流量在Chrome浏览器（Android手机版）与Google网站之间的通信。Google Swaps Out Crypto Ciphers in OpenSSL , InfoSecurity, April 24, 2014

不久之后，Google在TLS中采用它，ChaCha20和Poly1305算法也以 chacha20-poly1305@openssh.com 成为OpenSSH中的一个新密码套件。后来，通过编译时选项避免它依赖于OpenSSL也成为可能。ChaCha20-Poly1305的使用已在中标准化。

 实现 
以下是支持Poly1305的加密库列表：


 Crypto++



 OpenSSL
 GnuTLS
 LibreSSL
 mbedTLS
 wolfCrypt

 参考文献 

 外部链接 
 Poly1305-AES reference and optimized implementation by author D. J. Bernstein
 Fast Poly1305 implementation in C on github.com

Category:高级加密标准
Category:互联网标准
Category:訊息鑑別碼
Category:带有源代码的公共领域软件