Подкрутка25519 - Curve25519

В криптография, Подкрутка25519 является эллиптическая кривая предлагая 128 бит безопасности (256 бит размер ключа ) и предназначен для использования с эллиптическая кривая Диффи – Хеллмана (ECDH) схема согласования ключей. Это одна из самых быстрых кривых ECC и не защищена никакими известными патентами.[1] В эталонная реализация является программное обеспечение общественного достояния.[2][3]

В оригинальной статье Curve25519 он определялся как Диффи – Хеллмана (DH) функция. Дэниел Дж. Бернштейн с тех пор предложил использовать имя Curve25519 для базовой кривой, а имя X25519 для функции DH.[4]

Математические свойства

Используемая кривая , а Кривая Монтгомери, над основное поле определяется простое число , и он использует базовую точку . Эта точка порождает циклическую подгруппу, порядок это премьер и имеет индекс . Использование подгруппы простого порядка предотвращает установку Алгоритм Полига – Хеллмана атака.[5]

Протокол использует сжатую эллиптическую точку (только Икс координаты), что позволяет эффективно использовать Лестница Монтгомери для ECDH, используя только XZ координаты.[6]

Curve25519 построен так, что позволяет избежать многих потенциальных ошибок при реализации.[7] По своей конструкции он невосприимчив к атакам по времени и принимает любую 32-байтовую строку в качестве действительного открытого ключа и не требует подтверждения того, что данная точка принадлежит кривой или генерируется базовой точкой.

Кривая бирационально эквивалентный к искривленная кривая Эдвардса используется в Ed25519[8][9] схема подписи.[10]

История

В 2005 году Curve25519 был впервые выпущен Дэниел Дж. Бернштейн.[5]

В 2013 году интерес начал значительно расти, когда было обнаружено, что АНБ потенциально внедрил бэкдор в Dual_EC_DRBG.[11] Хотя напрямую не связаны,[12] Подозрительные аспекты констант кривой P NIST[13] привел к проблемам[14] что АНБ выбрало значения, которые дали им преимущество при взломе шифрования.[15][16]

«Я больше не доверяю константам. Я считаю, что АНБ манипулировало ими через свои отношения с промышленностью».

— Брюс Шнайер, АНБ взламывает большинство шифрования в Интернете (2013)

С 2013 года Curve25519 стал де-факто альтернатива P-256, которая используется в большом количестве приложений.[17] Начиная с 2014 года, OpenSSH[18] по умолчанию на основе Curve25519 ECDH. Поведение для общего протокола SSH все еще стандартизируется по состоянию на 2018 год.[19]

В 2017 году NIST объявил, что Curve25519 и Подкрутка448 будет добавлен в специальную публикацию 800-186, в которой указаны утвержденные эллиптические кривые для использования федеральным правительством США.[20] Оба описаны в "RFC 7748 ".[21] Проект стандарта FIPS 186-5 от 2019 года подтверждает это утверждение.[22]

В 2018 г. DKIM спецификация была изменена, чтобы позволить подписи с этим алгоритмом.[23]

Также в 2018 г. RFC 8446 был опубликован как новый Безопасность транспортного уровня v1.3 стандарт. Требуется обязательная поддержка X25519, Ed25519, X448, и Ed448 алгоритмы.[24]

Библиотеки

Протоколы

Приложения

Заметки

  1. ^ Начиная с Windows 10 (1607), Windows Server 2016
  2. ^ а б c Через OMEMO протокол
  3. ^ Только в «секретных разговорах»
  4. ^ а б c d Через Сигнальный протокол
  5. ^ Только в «режиме инкогнито»
  6. ^ Используется для подписи выпусков и пакетов[48][49]
  7. ^ Эксклюзивный обмен ключами в OpenSSH 6.7 при компиляции без OpenSSL.[50][51]

использованная литература

  1. ^ Бернштейн. "Неактуальные патенты на криптографию с эллиптическими кривыми". cr.yp.to. Получено 2016-02-08.
  2. ^ Современная функция Диффи-Хеллмана от Дэниел Дж. Бернштейн«Моя библиотека curve25519 вычисляет функцию Curve25519 с очень высокой скоростью. Библиотека находится в открытом доступе».
  3. ^ «X25519». Крипто ++. 5 марта 2019. Архивировано с оригинал 29 августа 2020 г.. Получено 29 августа 2020.
  4. ^ "[Cfrg] 25519 именование". Получено 2016-02-25.
  5. ^ а б Бернштейн, Дэниел Дж. (2006). Юнг, Моти; Додис, Евгений; Киаиас, Аггелос; и другие. (ред.). Curve25519: новые рекорды скорости Диффи-Хеллмана (PDF). Криптография с открытым ключом. Конспект лекций по информатике. 3958. Нью-Йорк: Спрингер. С. 207–228. Дои:10.1007/11745853_14. ISBN  978-3-540-33851-2. Г-Н  2423191.
  6. ^ Ланге, Таня. «Координаты EFD / Genus-1 с большой характеристикой / XZ для кривых Монтгомери». EFD / База данных явных формул. Получено 8 февраля 2016.
  7. ^ «SafeCurves: Введение». safecurves.cr.yp.to. Получено 2016-02-08.
  8. ^ Даниэль Дж. Бернштейн, Нильс Дуиф, Таня Ланге, Питер Швабе, Бо-Инь Ян (22.01.2017). «Ed25519: высокоскоростные сигнатуры с высокой степенью защиты». Получено 2019-11-09.CS1 maint: несколько имен: список авторов (ссылка на сайт)
  9. ^ Даниэль Дж. Бернштейн, Нильс Дуиф, Таня Ланге, Питер Швабе, Бо-Инь Ян (26 сентября 2011 г.). «Высокоскоростные высоконадежные подписи» (PDF). Получено 2019-11-09.CS1 maint: несколько имен: список авторов (ссылка на сайт)
  10. ^ Бернштейн, Дэниел Дж.; Ланге, Таня (2007). Куросава, Каору (ред.). Более быстрое сложение и удвоение эллиптических кривых. Достижения в криптологии - ASIACRYPT. Конспект лекций по информатике. 4833. Берлин: Springer. С. 29–50. Дои:10.1007/978-3-540-76900-2_3. ISBN  978-3-540-76899-9. Г-Н  2565722.
  11. ^ Келси, Джон (май 2014 г.). «Dual EC в X9.82 и SP 800-90» (PDF). Национальный институт стандартов в области технологий. Получено 2018-12-02.
  12. ^ Грин, Мэтью (2015-01-14). «Несколько мыслей о криптографической инженерии: множество недостатков Dual_EC_DRBG». blog.cryptographyengineering.com. Получено 2015-05-20.
  13. ^ https://safecurves.cr.yp.to/
  14. ^ Максвелл, Грегори (2013-09-08). "[tor-talk] NIST одобрил криптовалюту в Tor?". Получено 2015-05-20.
  15. ^ «SafeCurves: жесткость». safecurves.cr.yp.to. Получено 2015-05-20.
  16. ^ «АНБ больше всего взламывает шифрование в Интернете - Шнайер о безопасности». www.schneier.com. Получено 2015-05-20.
  17. ^ "Вещи, использующие Curve25519". Получено 2015-12-23.
  18. ^ а б Адамантиадис, Арис (2013-11-03). «OpenSSH представляет систему обмена ключами [email protected]. libssh.org. Получено 2014-12-27.
  19. ^ А. Адамантиадис; libssh; С. Йозефссон; SJD AB; М. Баушке; Juniper Networks, Inc. (26.06.2018). Метод обмена ключами Secure Shell (SSH) с использованием Curve25519 и Curve448. I-D draft-ietf-curdle-ssh-curve-08.
  20. ^ Отдел компьютерной безопасности, Лаборатория информационных технологий (2017-10-31). «Планы перехода для ключевых схем создания | CSRC». CSRC | NIST. Получено 2019-09-04.
  21. ^ RFC 7748. Полученное из https://tools.ietf.org/html/rfc7748.
  22. ^ FIPS 186-5. Полученное из https://csrc.nist.gov/publications/detail/fips/186/5/draft.
  23. ^ Джон Левин (сентябрь 2018 г.). Новый метод криптографической подписи для почты с идентификацией ключей домена (DKIM). IETF. Дои:10.17487 / RFC8463. RFC 8463.
  24. ^ E Rescorla (сентябрь 2018 г.). Протокол безопасности транспортного уровня (TLS) версии 1.3. IETF. Дои:10.17487 / RFC8446. RFC 8446.
  25. ^ Вернер Кох (15 апреля 2016 г.). "Объявление о выпуске Libgcrypt 1.7.0". Получено 22 апреля 2016.
  26. ^ а б c d е ж г Сравнение реализации SSH. «Сравнение методов обмена ключами». Получено 2016-02-25.
  27. ^ "Введение". yp.to. Получено 11 декабря 2014.
  28. ^ "nettle: curve25519.h Ссылка на файл - документация doxygen | Fossies Dox". fossies.org. Архивировано из оригинал на 2015-05-20. Получено 2015-05-19.
  29. ^ Limited, ARM. «Выпущен PolarSSL 1.3.3 - Технические обновления - mbed TLS (ранее PolarSSL)». tls.mbed.org. Получено 2015-05-19.
  30. ^ "Встроенная библиотека SSL / TLS wolfSSL - продукты wolfSSL".
  31. ^ "Botan: src / lib / pubkey / curve25519 / curve25519.cpp Исходный файл". botan.randombit.net.
  32. ^ Джастинья. «TLS (Schannel SSP)». docs.microsoft.com. Получено 2017-09-15.
  33. ^ Денис, Фрэнк. «Введение · libsodium». libsodium.org.
  34. ^ Inc., OpenSSL Foundation. "OpenSSL". www.openssl.org. Получено 2016-06-24.
  35. ^ "Добавить поддержку ECDHE в X25519. · Openbsd / src @ 0ad90c3". GitHub.
  36. ^ "Tclers Wiki - NaCl для Tcl".
  37. ^ «Примечания к выпуску NSS 3.28». Получено 25 июля 2017.
  38. ^ Штрауб, Андреас (25 октября 2015 г.). «Шифрование OMEMO». chatations.im.
  39. ^ «Криптокат - Безопасность». crypto.cat. Архивировано из оригинал на 2016-04-07. Получено 2016-05-24.
  40. ^ Фрэнк Денис. «Спецификация протокола DNSCrypt версии 2». Архивировано из оригинал на 2015-08-13. Получено 2016-03-03.
  41. ^ Мэтт Джонстон. «Dropbear SSH - Изменения». Получено 2016-02-25.
  42. ^ Бахтияр Гадимов; и другие. "Плагин Gajim для OMEMO Multi-End Message и Object Encryption". Получено 2016-10-01.
  43. ^ "GNUnet 0.10.0". gnunet.org. Получено 11 декабря 2014.
  44. ^ zzz (20 сентября 2014 г.). «Релиз 0.9.15 - Блог». Получено 20 декабря 2014.
  45. ^ "go-ipfs_keystore.go у мастера". Github.com.
  46. ^ «Руководство по безопасности iOS» (PDF).
  47. ^ «MRL-0003 - Monero не так уж и загадочна» (PDF). getmonero.com. Архивировано из оригинал (PDF) на 2019-05-01. Получено 2018-06-05.
  48. ^ Муренин, Константин А. (19 января 2014 г.). Soulskill (ред.). «OpenBSD движется к подписанным пакетам - на основе криптографии Д. Дж. Бернштейна». Slashdot. Получено 2014-12-27.
  49. ^ Муренин, Константин А. (01.05.2014). Тимоти (ред.). «Выпущен OpenBSD 5.5». Slashdot. Получено 2014-12-27.
  50. ^ Фридл, Маркус (29 апреля 2014 г.). "ssh / kex.c # kexalgs". Перекрестная ссылка BSD, OpenBSD src / usr.bin /. Получено 2014-12-27.
  51. ^ Муренин, Константин А. (30.04.2014). Soulskill (ред.). «OpenSSH больше не должен зависеть от OpenSSL». Slashdot. Получено 2014-12-26.
  52. ^ «Как Peerio реализует сквозное шифрование?». Peerio.
  53. ^ «ProtonMail теперь предлагает криптографию на основе эллиптических кривых для повышенной безопасности и более высоких скоростей».
  54. ^ "Журнал изменений PuTTY". www.chiark.greenend.org.uk.
  55. ^ Стив Гибсон (декабрь 2019 г.). "Технический документ по криптографии SQRL" (PDF).
  56. ^ «Технический документ по криптографии Threema» (PDF).
  57. ^ Роджер Дингледин и Ник Мэтьюсон. «Спецификации протокола Tor - Блог». Получено 20 декабря 2014.
  58. ^ «Обзор шифрования Viber». Viber. 3 мая 2016. Получено 24 сентября 2016.
  59. ^ Нидхи Растоги, Джеймс Хендлер (24 января 2017 г.). «Безопасность WhatsApp и роль метаданных в сохранении конфиденциальности». arXiv:1701.06817. Bibcode:2017arXiv170106817R. Цитировать журнал требует | журнал = (Помогите)

внешние ссылки