Из Википедии, бесплатной энциклопедии
  (Перенаправлено с Poly1305-AES )
Перейти к навигации Перейти к поиску

Poly1305 - это криптографический код аутентификации сообщений (MAC), созданный Дэниелом Дж. Бернстайном . Его можно использовать для проверки целостности данных и подлинности сообщения . Вариант Poly1305 Бернштейна, не требующий AES, был стандартизирован Инженерной группой Интернета в RFC 8439 .

Описание [ править ]

Исходное предложение, Poly1305-AES, которое использует функцию шифрования AES (прямого) в качестве источника псевдослучайности , вычисляет 128-битный (16 байт) аутентификатор сообщения переменной длины. В дополнение к сообщению, для этого требуется 128-битный ключ AES, 128-битный дополнительный ключ r (со 106 эффективными битами ключа) и 128-битный одноразовый номер, который должен быть уникальным среди всех сообщений, аутентифицированных с помощью одного и того же ключа. Сообщение разбивается на 16-байтовых куски , которые становятся коэффициентами полинома , измеренным при г , по модулю простого числа 2 130−5. Код аутентификации представляет собой сумму этой полиномиальной оценки плюс псевдослучайное значение, вычисленное путем передачи одноразового номера через блочный шифр AES. Имя Poly1305-AES является производным от его использования полиномиальной оценки, 2 130 -5 модуля упругости и AES. В NaCl Poly1305 используется с Salsa20 вместо AES, а в TLS и SSH он используется с его вариантом ChaCha20 .

Google выбрал Poly1305 вместе с симметричным шифром Bernstein ChaCha20 в качестве замены RC4 в TLS / SSL , который используется для безопасности в Интернете. Первоначальная реализация Google используется для защиты трафика https ( TLS / SSL ) между браузером Chrome на телефонах Android и веб-сайтами Google. [1] Использование ChaCha20 / Poly1305 стандартизировано в RFC 7905 .

Вскоре после принятия Google для использования в TLS в OpenSSH была добавлена ​​поддержка ChaCha20 и Poly1305 с помощью аутентифицированного шифра шифрования [email protected] . [2] [3] Впоследствии это позволило OpenSSH удалить свою зависимость от OpenSSL с помощью параметра времени компиляции. [4]

Безопасность [ править ]

Безопасность Poly1305-AES очень близка к лежащему в основе алгоритму блочного шифрования AES. Следовательно, единственный способ взломать Poly1305-AES для злоумышленника - это взломать AES.

Например, если предположить, что сообщения представляют собой пакеты размером до 1024 байтов; что злоумышленник видит 2 64 сообщения, аутентифицированных с использованием ключа Poly1305-AES; что злоумышленник пытается совершить 2 75 подделок; и что злоумышленник не может взломать AES с вероятностью выше δ; тогда с вероятностью не менее 0,999999-δ все 2 75 будут отклонены . [5]

Скорость [ править ]

Poly1305-AES может быть вычислен на высокой скорости в различных процессорах: например, для n- байтового сообщения требуется не более 3,1n + 780 циклов Athlon [5] . Автор выпустил оптимизированный исходный код для Athlon , Pentium Pro / II / III / M, PowerPC и UltraSPARC , в дополнение к неоптимизированным эталонным реализациям на C и C ++ как общедоступное программное обеспечение . [6]

Реализации [ править ]

Ниже приведен список библиотек криптографии, поддерживающих Poly1305:

  • Ботан
  • Надувной Замок
  • Крипто ++
  • Libgcrypt
  • libsodium
  • Крапива
  • OpenSSL
  • LibreSSL
  • волк
  • GnuTLS
  • mbed TLS
  • MatrixSSL

Ссылки [ править ]

  1. ^ Google Swaps Out Crypto Ciphers в OpenSSL , InfoSecurity, 24 апреля 2014 г.
  2. ^ Миллер, Дэмиен (2013-12-02). "ssh / PROTOCOL.chacha20poly1305" . Перекрестная ссылка BSD, OpenBSD src / usr.bin / . Проверено 26 декабря 2014 .
  3. ^ Муренин, Константин А. (2013-12-11). Неизвестный Ламер (ред.). "OpenSSH имеет новый шифр - Chacha20-poly1305 - от DJ Bernstein" . Slashdot . Проверено 26 декабря 2014 .
  4. ^ Муренин, Константин А. (2014-04-30). Soulskill (ред.). «OpenSSH больше не должен зависеть от OpenSSL» . Slashdot . Проверено 26 декабря 2014 .
  5. ^ a b Бернштейн, Дэниел Дж. (2005). «Код аутентификации сообщений Poly1305-AES». Быстрое программное шифрование . Конспект лекций по информатике. 3557 . С. 32–49. DOI : 10.1007 / 11502760_3 . ISBN 978-3-540-26541-2.
  6. ^ Современный код аутентификации сообщений на cr.yp.to

Внешние ссылки [ править ]

  • Справочник по Poly1305-AES и оптимизированная реализация автора DJ Bernstein
  • Реализация Fast Poly1305 на C на github.com