Poly1305 - Poly1305
![]() | tento článek příliš spoléhá na Reference na primární zdroje.Říjen 2013) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Poly1305 je kryptografický ověřovací kód zprávy (MAC) vytvořil Daniel J. Bernstein. Lze jej použít k ověření integrita dat a autentičnost a zpráva. Varianta Bernsteinovy Poly1305, která nevyžaduje AES, byla standardizována Pracovní skupina pro internetové inženýrství v RFC 8439.
Popis
Původní návrh Poly1305-AES, který používá AES (vpřed) funkce šifrování jako a zdroj pseudonáhodnosti, vypočítá 128bitový (16 bajtů) autentizátor zprávy s proměnnou délkou. Kromě zprávy vyžaduje 128bitový klíč AES, 128bitový další klíč r (se 106 efektivními bitovými klíči) a 128bitový nonce který musí být jedinečný u všech zpráv ověřených stejným klíčem. Zpráva je rozdělena na 16bajtové bloky, které se stávají koeficienty polynomu vyhodnoceného na r, modulo the prvočíslo 2130-5. Ověřovací kód je součtem tohoto polynomiálního vyhodnocení plus pseudonáhodná hodnota vypočítaná průchodem nonce blokovou šifrou AES. Název Poly1305-AES je odvozen od jeho použití polynomiálního vyhodnocení, 2130−5 modul a AES. v NaCl, Poly1305 se používá s Salsa20 místo AES a v TLS a SSH se používá s ChaCha20 varianta stejného.
Google vybrala Poly1305 spolu s Bernsteinovou ChaCha20 symetrická šifra jako náhrada za RC4 v TLS / SSL, který se používá pro zabezpečení internetu. Při zabezpečení se používá počáteční implementace Google https (TLS / SSL ) provoz mezi Prohlížeč Chrome na Android telefony a webové stránky Google.[1] Použití ChaCha20 / Poly1305 bylo standardizováno v RFC 7905.
Krátce po přijetí Googlem pro použití v TLS byla přidána podpora ChaCha20 i Poly1305 OpenSSH přes [email protected] ověřená šifrovací šifra.[2][3] To následně umožnilo OpenSSH odstranit závislost na OpenSSL prostřednictvím možnosti kompilace.[4]
Bezpečnostní
Zabezpečení Poly1305-AES je velmi blízké základnímu algoritmu blokové šifry AES. Jediným způsobem, jak může útočník rozbít Poly1305-AES, je tedy rozbít AES.
- Například za předpokladu, že zprávy jsou pakety do 1024 bajtů; že útočník vidí 264 zprávy ověřené pod klíčem Poly1305-AES; že se útočník pokusí o neuvěřitelné 275 padělky; a že útočník nemůže rozbít AES s pravděpodobností nad δ; pak s pravděpodobností alespoň 0,999999-δ, všechny 275 jsou odmítnuty.[5]
Rychlost
Poly1305-AES lze vypočítat vysokou rychlostí v různých CPU: pro n-bajtová zpráva, není potřeba více než 3,1 n + 780 Athlon cyklů,[5] například Autor vydal optimalizované zdrojový kód pro Athlon, Pentium Pro / II / III / M, PowerPC, a UltraSPARC, kromě neoptimalizovaných referenční implementace v C a C ++ tak jako software pro veřejné domény.[6]
Implementace
Níže je uveden seznam kryptografických knihoven, které podporují Poly1305:
- Botan
- Skákací hrad
- Crypto ++
- Libgcrypt
- libsodium
- Kopřiva
- OpenSSL
- LibreSSL
- vlčí krypta
- GnuTLS
- mbed TLS
- MatrixSSL
Reference
- ^ Google vyměňuje kryptografické šifry v OpenSSL, InfoSecurity, 24. dubna 2014
- ^ Miller, Damien (02.12.2013). „ssh / PROTOCOL.chacha20poly1305“. Křížový odkaz BSD, OpenBSD src / usr.bin /. Citováno 2014-12-26.
- ^ Murenin, Constantine A. (2013-12-11). Neznámý Lamer (ed.). „OpenSSH má novou šifru - Chacha20-poly1305 - od D.J. Bernsteina“. Slashdot. Citováno 2014-12-26.
- ^ Murenin, Constantine A. (2014-04-30). Soulskill (ed.). „OpenSSH již nemusí záviset na OpenSSL“. Slashdot. Citováno 2014-12-26.
- ^ A b Bernstein, Daniel J. (2005). "Kód pro ověření zprávy Poly1305-AES". Rychlé softwarové šifrování. Přednášky z informatiky. 3557. s. 32–49. doi:10.1007/11502760_3. ISBN 978-3-540-26541-2.
- ^ Nejmodernější ověřovací kód zprávy na cr.yp.to
externí odkazy
- Poly1305-AES reference a optimalizovaná implementace autorem D. J. Bernsteinem
- Rychlá implementace Poly1305 v C na github.com