Poly1305
Poly1305 je v kryptografii MAC funkce, tedy funkce určená k ověření integrity dat a autentizaci zprávy. Návrh funkce představil její autor Daniel J. Bernstein v roce 2004[1], finální podobu zveřejnil v roce 2005[2] a v roce 2015 ji standardizovala IRTF ve dvojici s šifrou ChaCha20 v rámci RFC 7539[3].
Popis
Jméno je odvozeno od použitého prvočísla a od skutečnosti, že jádrem algoritmu je vyhodnocení polynomu, jehož koeficienty tvoří šestnáctibajtové bloky zprávy, ve zvoleném bodě .
Interně může být pro vytváření pomocných nepředvídatelných jednorázových hodnot použita symetrická šifra. Původní návrh počítal s použitím šifry AES a byl proto označován za Poly1305/AES.
Implementace a využití
Sám autor D. J. Bernstein nabídl jako volné dílo vlastní implementaci funkce v optimalizacích mimo jiné pro AMD Athlon, Pentium, PowerPC a UltraSPARC.
Implementace funkce je také součástí autorem vytvářené knihovny NaCl (kde je v ní používána bloková šifra Salsa20).
Kromě RFC 7539[3] obecně standardizujícího podobu funkce dále funkci zmiňuje RFC 7905,[4] které ji v kombinaci s ChaCha20 standardizuje jako sestavu pro autentizované šifrování v TLS. V této podobě ji už od roku 2014 používá společnost Google místo starší šifry RC4 pro ochranu HTTPS komunikace mezi jí provozovanými servery a uživateli používajícími její webový prohlížeč Chrome na její platformě Android.[5]
Od roku 2013 používá kombinaci ChaCha20 a Poly1305 program OpenSSH,[6] který se díky tomu následně zbavil povinné závislosti na knihovně OpenSSL.[7] RFC 7634 standardizuje použití ChaCha20 a Poly1305 v protokolech IKE a IPSec.[8]
Odkazy
Reference
V tomto článku byl použit překlad textu z článku Poly1305 na anglické Wikipedii.
- ↑ BERNSTEIN, Daniel J. The Poly1305-AES message-authentication code. [s.l.]: [s.n.], 2004. Dostupné online. (anglicky)
- ↑ BERNSTEIN, Daniel J. The Poly1305-AES Message-Authentication Code. In: GILBERT, Henri; HANDSCHUH, Helena. Proceedings of Fast Software Encryption 2005. [s.l.]: Springer, 2005. Dostupné online. ISBN 978-3-540-31669-5. (anglicky)
- ↑ a b NIR, Yoav; LANGLEY, Adam. ChaCha20 and Poly1305 for IETF Protocols. Request for Comments [online]. Květen 2015. Čís. 7539. Dostupné online. ISSN 2070-1721. (anglicky)
- ↑ LANGLEY, Adam; CHANG, Weh-Teh; MAVROGIANNOPOULOS, Nikos; STROMBERGSON, Joachim; JOSEFSSON, Simon. ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS). Request for Comments [online]. Červen 2016. Čís. 7905. Dostupné online. ISSN 2070-1721. (anglicky)
- ↑ Google Swaps Out Crypto Ciphers in OpenSSL. infosecurity-magazine.com [online]. 2014-04-25. Dostupné online.
- ↑ Encryption Communications Open Source OpenSSH Has a New Cipher — ChaCha20-poly1305 — from D.J. Bernstein. Slashdot.org [online]. 2013-12-11. Dostupné online.
- ↑ OpenSSH No Longer Has To Depend On OpenSSL. Slashdot.org [online]. 2014-04-30. Dostupné online.
- ↑ NIV, Yoav. ChaCha20, Poly1305, and Their Use in the Internet Key Exchange Protocol (IKE) and IPsec. Request for Comments [online]. Srpen 2015. Čís. 7634. Dostupné online. ISSN 2070-1721. (anglicky)
Externí odkazy
- Poly1305 na stránce autora
- Optimalizované implementace na GitHubu