Jump to content

ЧаЧа20-Поли1305

ChaCha20-Poly1305 — это алгоритм аутентифицированного шифрования с дополнительными данными (AEAD) , который сочетает в себе поточный шифр ChaCha20 с кодом аутентификации сообщения Poly1305 . Его использование в протоколах IETF стандартизировано в RFC 8439. [1] Он имеет высокую производительность программного обеспечения и без аппаратного ускорения обычно быстрее, чем AES-GCM. [2]

История [ править ]

Два строительных блока конструкции, алгоритмы Poly1305 и ChaCha20, были независимо разработаны в 2005 и 2008 годах Дэниелом Дж. Бернштейном . [3] [4]

В 2013–2014 годах вариант исходного алгоритма ChaCha20 (с использованием 32-битного счетчика и 96-битного одноразового номера) и вариант исходного алгоритма Poly1305 (аутентификация двух строк) были объединены в проект IETF. [5] [6] для использования в TLS и DTLS , [7] и выбран Google по соображениям безопасности и производительности в качестве нового поддерживаемого шифра. [8] Вскоре после принятия Google TLS, ChaCha20, Poly1305 и комбинированный режим AEAD добавляются в OpenSSH через [email protected] аутентифицированный шифр шифрования [9] [10] но сохранил исходный 64-битный счетчик и 64-битный одноразовый номер для алгоритма ChaCha20.

В 2015 году алгоритм AEAD стандартизирован в RFC 7539. [11] и RFC 7905 [12] будет использоваться в TLS 1.2 и DTLS 1.2 и в RFC 7634. [13] для использования в IPsec. В том же году он был интегрирован Cloudflare в качестве альтернативного набора шифров. [14]

В июне 2018 года RFC 7539 был обновлен и заменен на RFC 8439. [1]

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

Алгоритм ChaCha20-Poly1305, описанный в RFC 8439. [1] принимает на вход 256-битный ключ и 96-битный одноразовый номер для шифрования открытого текста с расширением зашифрованного текста на 128 бит (размер тега). В конструкции ChaCha20-Poly1305 ChaCha20 используется в режиме счетчика для получения потока ключей, который подвергается операции XOR с открытым текстом. Зашифрованный текст и связанные с ним данные затем аутентифицируются с использованием варианта Poly1305, который сначала кодирует две строки в одну. Способ объединения шифра и одноразового аутентификатора точно идентичен конструкции AES-GCM в том, как первый блок используется для заполнения аутентификатора и как затем аутентифицируется зашифрованный текст с помощью 16-байтового тега.

Основным внешним отличием ChaCha20 является размер блока 64 байта (512 бит) по сравнению с 16 байтами (128 бит) как у AES-128, так и у AES-256. Больший размер блока обеспечивает более высокую производительность современных процессоров и позволяет обрабатывать более крупные потоки до переполнения 32-битного счетчика.

Шифрование ChaCha20-Poly1305
ChaCha20-Poly1305 Encryption

Варианты [ править ]

XChaCha20-Poly1305 — расширенный вариант nonce [ править ]

Конструкция XChaCha20-Poly1305 представляет собой расширенный 192-битный вариант nonce конструкции ChaCha20-Poly1305, в котором используется XChaCha20 вместо ChaCha20 . При случайном выборе одноразовых номеров конструкция XChaCha20-Poly1305 обеспечивает лучшую безопасность, чем исходная конструкция. Срок действия проекта попытки стандартизировать строительство истек в июле 2020 года. [15]

Salsa20-Poly1305 и XSalsa20-Poly1305 [ править ]

Salsa20-Poly1305 и XSalsa20-Poly1305 являются вариантами алгоритмов ChaCha20-Poly1305 и XChaCha20-Poly1305 , используются Salsa20 и XSalsa20 в которых вместо ChaCha20 и XChaCha20 . Они реализованы в NaCl. [16] и либнатрий [17] но не стандартизировано. На практике предпочтительны варианты с использованием ЧаЧа, поскольку они обеспечивают лучшую диффузию за раунд, чем Сальса. [3]

Варианты с уменьшенным раундом [ править ]

ChaCha20 можно заменить вариантами с уменьшенным количеством раундов ChaCha12 и ChaCha8, что дает ChaCha12-Poly1305 и ChaCha8-Poly1305. Эту же модификацию можно применить и к XChaCha20-Poly1305. Они реализованы командой RustCrypto и не стандартизированы. [18]

Используйте [ править ]

ChaCha20-Poly1305 используется в IPsec , [2] СШ , [19] ТЛС 1.2 , ДТЛС 1.2, ТЛС 1.3 , [12] [19] ВайрГард , [20] S/MIME 4.0 , [21] ОТР v4 [22] и множество других протоколов, реализованных в OpenSSL и libsodium . Кроме того, алгоритм используется в программе резервного копирования Borg. [23] для обеспечения стандартного шифрования данных и в копирования при записи файловой системе Bcachefs с целью дополнительного шифрования всей файловой системы. [24]

Производительность [ править ]

ChaCha20-Poly1305 обычно обеспечивает более высокую производительность, чем более распространенный AES - GCM, алгоритм даже в системах, где процессоры имеют расширение набора команд AES-NI . [ не удалось пройти проверку ] [2] Скорость шифрования и дешифрования в программных реализациях уже превышает 1 ГБ/с, если выполняется на одном ядре, и увеличивается почти линейно, если параллельно используется больше ядер. AES-NI достигает примерно такой же скорости на одном ядре, но не так хорошо масштабируется для нескольких процессоров, и без расширения набора команд его трудно реализовать эффективно. В результате ChaCha20-Poly1305 иногда предпочтительнее AES-GCM из-за схожего уровня безопасности и в некоторых случаях использования с мобильными устройствами , которые в основном используют процессоры на базе ARM . Поскольку у ChaCha20-Poly1305 меньше накладных расходов, чем у AES-GCM, ChaCha20-Poly1305 на мобильных устройствах может потреблять меньше энергии, чем AES-GCM.

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

Конструкция ChaCha20-Poly1305, как правило, безопасна в стандартной модели и в идеальной модели перестановки для однопользовательской и многопользовательской настройки. [25] Однако, как и в случае с GCM , безопасность основана на выборе уникального nonce для каждого зашифрованного сообщения. По сравнению с AES-GCM реализации ChaCha20-Poly1305 менее уязвимы к атакам по времени .

Следует отметить, что когда протокол SSH использует ChaCha20-Poly1305 в качестве базового примитива, он уязвим для атаки Terrapin .

См. также [ править ]

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

  • RFC 8439 : ChaCha20 и Poly1305 для протоколов IETF.
  • RFC 7634 : ChaCha20, Poly1305 и их использование в протоколе обмена ключами в Интернете (IKE) и IPsec.
  • RFC 7905 : Наборы шифров ChaCha20-Poly1305 для безопасности транспортного уровня (TLS)
  • RFC 8103 : Использование шифрования с проверкой подлинности ChaCha20-Poly1305 в синтаксисе криптографических сообщений (CMS)

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

  1. Перейти обратно: Перейти обратно: а б с Нир, Йоав; Лэнгли, Адам (июнь 2018 г.). ChaCha20 и Poly1305 для протоколов IETF . дои : 10.17487/RFC8439 . RFC 8439 .
  2. Перейти обратно: Перейти обратно: а б с Нир, Йоав; Лэнгли, Адам (июнь 2018 г.). «Измерения производительности ChaCha20» . ChaCha20 и Poly1305 для протоколов IETF . сек. Б. дои : 10.17487/RFC8439 . RFC 8439 .
  3. Перейти обратно: Перейти обратно: а б Бернштейн, диджей (январь 2008 г.). ЧаЧа, вариант Salsa20 (PDF) . Современное состояние потоковых шифров. Том. 8. С. 3–5.
  4. ^ Бернштейн, Дэниел Дж. (2005), «Код аутентификации сообщения Poly1305-AES», Быстрое программное шифрование , Конспекты лекций по информатике, том. 3557, Берлин, Гейдельберг: Springer Berlin Heidelberg, стр. 32–49, doi : 10.1007/11502760_3 , ISBN  978-3-540-26541-2
  5. ^ Лэнгли, Адам (сентябрь 2013 г.). Наборы шифров на основе ChaCha20 и Poly1305 для TLS . Идентификатор проекта-agl-tls-chacha20poly1305-00.
  6. ^ Нир, Йоав (27 января 2014 г.). ChaCha20 и Poly1305 для протоколов IETF . Идентификатор проекта-nir-cfrg-chacha20-poly1305-00.
  7. ^ Лэнгли, Адам; Чанг, Ван-Те; Маврояннопулос, Никос; Стромбергсон, Иоахим; Йозефссон, Саймон (24 января 2014 г.). Потоковый шифр ChaCha для безопасности транспортного уровня . Идентификатор проекта-mavrogiannopoulos-chacha-tls-01.
  8. ^ Бурштейн, Эли (24 апреля 2014 г.). «Ускорение и усиление HTTPS-соединений для Chrome на Android» . Блог Google по онлайн-безопасности . Архивировано из оригинала 28 сентября 2016 г. Проверено 27 декабря 2021 г.
  9. ^ Миллер, Дэмиен. «Перекрестная ссылка BSD суперпользователя: /OpenBSD/usr.bin/ssh/PROTOCOL.chacha20poly1305» . bxr.su. Архивировано из оригинала 13 декабря 2013 г. Проверено 28 декабря 2021 г.
  10. ^ Миллер, Дэмиен (29 ноября 2013 г.). «ChaCha20 и Poly1305 в OpenSSH» . Архивировано из оригинала 13 декабря 2013 г. Проверено 28 декабря 2021 г.
  11. ^ Нир, Йоав; Лэнгли, Адам (май 2015 г.). ChaCha20 и Poly1305 для протоколов IETF . дои : 10.17487/RFC7539 . РФК 7539 .
  12. Перейти обратно: Перейти обратно: а б Лэнгли, Адам; Чанг, Ван-Те; Маврояннопулос, Никос; Стромбергсон, Иоахим; Йозефссон, Саймон (июнь 2016 г.). ChaCha20-Poly1305 Наборы шифров для безопасности транспортного уровня (TLS) . дои : 10.17487/RFC7905 . РФК 7905 .
  13. ^ Нир, Йоав (август 2015 г.). ChaCha20, Poly1305 и их использование в протоколе обмена ключами в Интернете (IKE) и IPsec . дои : 10.17487/RFC7634 . РФК 7634 .
  14. ^ «Сделайте ChaCha: лучшая производительность мобильных устройств с помощью криптографии» . Блог Cloudflare . 23 февраля 2015 г. Проверено 28 декабря 2021 г.
  15. ^ Арчишевски, Скотт (10 января 2020 г.). XChaCha: ChaCha с расширенным одноразовым номером и AEAD_XChaCha20_Poly1305 . Идентификатор проекта-irtf-cfrg-xchacha.
  16. ^ «NaCl: библиотека сетей и криптографии — шифрование с аутентификацией секретным ключом» . Архивировано из оригинала 30 июня 2009 г.
  17. ^ «libsodium — шифрование с аутентификацией» . Архивировано из оригинала 4 августа 2020 г.
  18. ^ «chacha20poly1305 — Ржавчина» . docs.rs. ChaCha8Poly1305 / ChaCha12Poly1305 - нестандартные варианты с уменьшенным раундом (закрыты под функцию груза с уменьшенным раундом). Дополнительную информацию и обоснование того, когда можно использовать эти конструкции, см. в документе Too Much Crypto. Если сомневаетесь, отдайте предпочтение ChaCha20Poly1305. XChaCha8Poly1305/XChaCha12Poly1305 — то же, что и выше, но с расширенным 192-битным (24-байтовым) nonce.
  19. Перейти обратно: Перейти обратно: а б Томсон, Мартин; Тернер (май 2021 г.). Использование TLS для защиты QUIC . дои : 10.17487/RFC9001 . РФК 9001 .
  20. ^ Доненфельд, Джейсон А. «Протокол и криптография — WireGuard» . www.wireguard.com . Проверено 28 декабря 2021 г.
  21. ^ Хаусли, Расс (февраль 2017 г.). Использование шифрования с проверкой подлинности ChaCha20-Poly1305 в синтаксисе криптографических сообщений (CMS) . дои : 10.17487/RFC8103 . RFC 8103 .
  22. ^ OTRv4 , OTRv4, 25 декабря 2021 г. , получено 28 декабря 2021 г.
  23. ^ borg rcreate , borgbackup, 3 августа 2022 г. , получено 28 января 2023 г.
  24. ^ Оверстрит, Кент (11 сентября 2024 г.). «Шифрование» . bcachefs . Архивировано из оригинала 26 мая 2024 года . Проверено 8 июня 2024 г.
  25. ^ Дегабриэль, Жан Поль; Говинден, Жером; Гюнтер, Феликс; Патерсон, Кеннет Г. (12 ноября 2021 г.), «Безопасность ChaCha20-Poly1305 в многопользовательской среде» , Материалы конференции ACM SIGSAC 2021 года по компьютерной и коммуникационной безопасности , Нью-Йорк, штат Нью-Йорк, США: Ассоциация по Вычислительная техника, стр. 1981–2003, doi : 10.1145/3460120.3484814 , ISBN.  978-1-4503-8454-4 , S2CID   244077782 , получено 27 декабря 2021 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2bc6766a5eb02343473fb1a02f92389c__1717896120
URL1:https://arc.ask3.ru/arc/aa/2b/9c/2bc6766a5eb02343473fb1a02f92389c.html
Заголовок, (Title) документа по адресу, URL1:
ChaCha20-Poly1305 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)