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