폴리1305
Poly1305Poly1305는 Daniel J. Bernstein이 작성한 암호 메시지 인증 코드(MAC)입니다.이 명령을 사용하여 메시지의 데이터 무결성 및 신뢰성을 확인할 수 있습니다.AES를 필요로 하지 않는 Bernstein의 Poly1305의 변형은 인터넷 엔지니어링 태스크포스(Internet Engineering Task Force)에 의해 표준화되어 있습니다. RFC8439.
묘사
최초 제안 Poly1305-AES는 AES(전송) 암호화 기능을 의사 난수의 소스로 사용하여 가변 길이 메시지의 128비트(16바이트) 오센티케이터를 계산합니다.메시지와 더불어 128비트 AES 키, 128비트 추가 키 r(106개의 유효 키 비트 포함) 및 128비트 난스가 필요합니다.이러한 키는 같은 키로 인증된 모든 메시지에서 한결같아야 합니다.메시지는 16바이트 청크로 분할되어 소수 2-5의130 r, modulo에서 평가된 다항식의 계수가 됩니다.인증코드는 이 다항식 평가의 합계에 난스를 AES 블록암호 경유로 전달함으로써 계산된 의사랜덤 값을 더한 것입니다.Poly1305-AES라는 이름은 다항식 평가, 2-5130 계수 및 AES를 사용했기 때문에 유래되었습니다.NaCl에서는 AES 대신 Poly1305가 Salsa20과 함께 사용되며 TLS 및 SSH에서는 동일한 ChaCha20 변종과 함께 사용됩니다.
구글은 인터넷 보안에 사용되는 TLS/SSL의 RC4를 대체할 Poly1305를 번스타인의 ChaCha20 대칭 암호와 함께 선정했다.Google의 초기 구현은 Android 폰의 Chrome 브라우저와 Google [1]웹사이트 사이의 https(TLS/SSL) 트래픽을 보호하는 데 사용됩니다.ChaCha20/Poly1305의 사용은 RFC 7905로 표준화되어 있습니다.
구글이 TLS에서 사용하기 위해 채택된 직후 ChaCha20과 Poly1305 지원이 Open에 추가되었습니다.경유 SSHchacha20-poly1305@openssh.com 인증 [2][3]암호화 암호그 후 OpenSSH는 컴파일 시간 [4]옵션을 통해 OpenSSL에 대한 의존성을 제거할 수 있게 되었습니다.
보안.
Poly1305-AES의 보안은 기본 AES 블록 암호 알고리즘에 매우 가깝습니다.따라서 공격자가 Poly1305-AES를 파괴하는 유일한 방법은 AES를 파괴하는 것입니다.
예를 들어, 메시지가 최대 1024 바이트의 패킷, 공격자가 Poly1305-AES 키로 인증된2개의 메시지를 확인했을64 경우, 공격자가 엄청난2개의75 위조를 시도했을 경우, 공격자가 AES를 파괴할 수 없을 경우, 적어도 0.999999 - "의 확률로 AES를 파괴할 수 없을 경우, 2개의75 메시지는 모두 거부됩니다.
--
속도
Poly1305-AES는 다양한 CPU에서 고속으로 계산할 수 있습니다.예를 들어, n바이트 메시지의 [5]경우 3.1n + 780 Athlon 사이클이 필요 없습니다.저자는 Athlon, Pentium Pro/II/II/M, PowerPC 및 UltraSPARC에 최적화된 소스 코드를 공개했습니다.또, 퍼블릭 도메인 [6]소프트웨어로서 C와 C++에 최적화되지 않은 레퍼런스 실장에도 대응하고 있습니다.
실장
다음은 Poly1305를 지원하는 암호화 라이브러리 목록입니다.
「 」를 참조해 주세요.
- ChaCha20-Poly1305 – 스트림 암호 ChaCha20과 Poly1305의 배리언트를 조합한AED 스킴
레퍼런스
- ^ OpenSSL, InfoSecurity, 2014년 4월 24일 암호 암호 스왑아웃
- ^ Miller, Damien (2013-12-02). "ssh/PROTOCOL.chacha20poly1305". BSD Cross Reference, OpenBSD src/usr.bin/. Retrieved 2014-12-26.
- ^ Murenin, Constantine A. (2013-12-11). Unknown Lamer (ed.). "OpenSSH Has a New Cipher — Chacha20-poly1305 — from D.J. Bernstein". Slashdot. Retrieved 2014-12-26.
- ^ Murenin, Constantine A. (2014-04-30). Soulskill (ed.). "OpenSSH No Longer Has To Depend On OpenSSL". Slashdot. Retrieved 2014-12-26.
- ^ a b Bernstein, Daniel J. (2005). "The Poly1305-AES Message-Authentication Code". Fast Software Encryption. Lecture Notes in Computer Science. Vol. 3557. pp. 32–49. doi:10.1007/11502760_3. ISBN 978-3-540-26541-2.
- ^ cr.yp.to의 최첨단 메시지 인증 코드
외부 링크
- 저자 D. J. Bernstein의 Poly1305-AES 참조 및 구현 최적화
- github.com의 C에서 Fast Poly1305 구현