Эллиптическая кривая Диффи – Хеллмана
Эллиптическая кривая Диффи-Хеллмана ( ECDH ) — это протокол соглашения о ключах , который позволяет двум сторонам, каждая из которых имеет пару открытого и закрытого ключей с эллиптической кривой , установить общий секрет по незащищенному каналу . [1] [2] [3] Этот общий секрет можно использовать непосредственно в качестве ключа или для получения другого ключа . Ключ или производный ключ затем можно использовать для шифрования последующих сообщений с использованием шифра с симметричным ключом . Это вариант протокола Диффи-Хеллмана, использующий криптографию на основе эллиптических кривых .
Протокол установления ключа
[ редактировать ]В следующем примере показано, как устанавливается общий ключ. Предположим, Алиса хочет установить общий ключ с Бобом , но единственный доступный им канал может быть подслушан третьей стороной. Первоначально параметры домена (т. е. в простом случае или в бинарном случае) должны быть согласованы. Кроме того, каждая сторона должна иметь пару ключей, подходящую для криптографии на эллиптических кривых, состоящую из закрытого ключа. (случайно выбранное целое число в интервале ) и открытый ключ, представленный точкой (где , то есть результат сложения самому себе раз). Пусть ключевая пара Алисы будет и пара ключей Боба будет . Каждая сторона должна знать открытый ключ другой стороны до выполнения протокола.
Алиса вычисляет точку . Боб вычисляет точку . Общий секрет – это ( координата x точки). Большинство стандартизированных протоколов, основанных на ECDH, получают симметричный ключ из используя некоторую функцию получения ключа на основе хеша.
Общий секрет, рассчитанный обеими сторонами, одинаков, потому что .
Единственная информация о своем ключе, которую изначально раскрывает Алиса, — это ее открытый ключ. Таким образом, ни одна сторона, кроме Алисы, не может определить закрытый ключ Алисы (Алиса, конечно, знает его, выбрав его), если только эта сторона не может решить задачу дискретного логарифмирования эллиптической кривой . Закрытый ключ Боба также безопасен. Ни одна сторона, кроме Алисы или Боба, не может вычислить общий секрет, если только эта сторона не может решить проблему Диффи-Хеллмана для эллиптической кривой .
Открытые ключи являются либо статическими (и заслуживают доверия, например, посредством сертификата), либо эфемерными (также известными как ECDHE , где последняя буква «E» означает «эфемерный»). Эфемерные ключи являются временными и не обязательно проходят проверку подлинности, поэтому, если требуется аутентификация, гарантии подлинности должны быть получены другими способами. Аутентификация необходима, чтобы избежать атак «человек посередине» . Если один из открытых ключей Алисы или Боба является статическим, то атаки «человек посередине» предотвращаются. Статические открытые ключи не обеспечивают ни прямой секретности , ни устойчивости к компрометации ключей, а также других расширенных свойств безопасности. Владельцы статических закрытых ключей должны проверить другой открытый ключ и применить функцию получения безопасного ключа к необработанному общему секрету Диффи-Хеллмана, чтобы избежать утечки информации о статическом закрытом ключе. Схемы с другими свойствами безопасности см. в MQV .
Если Алиса злонамеренно выбирает недопустимые точки кривой для своего ключа, а Боб не подтверждает, что точки Алисы являются частью выбранной группы, она может собрать достаточно остатков ключа Боба, чтобы получить его закрытый ключ. Было обнаружено, что несколько библиотек TLS уязвимы для этой атаки. [4]
Общий секрет равномерно распределен по подмножеству размера . По этой причине секрет не следует использовать непосредственно в качестве симметричного ключа, но его можно использовать в качестве энтропии для функции получения ключа.
Ключевое соглашение Диффи-Хеллмана о кривых Монтгомери
[ редактировать ]Позволять такой, что . Форма Монтгомери эллиптическая кривая это совокупность всех удовлетворяющее уравнению вместе с точкой на бесконечности, обозначаемой как . Это называется аффинной формой кривой. Набор всего -рациональные точки зрения , обозначенный как это совокупность всех удовлетворяющий вместе с . При правильно определенной операции сложения это группа с как элемент идентичности. Известно, что порядок этой группы кратен 4. На самом деле обычно можно получить и такой, что порядок является для простого . Далее можно последовать более обширному обсуждению кривых Монтгомери и их арифметики. [5] [6] [7]
Для эффективности вычислений предпочтительнее работать с проективными координатами. Проективная форма кривой Монтгомери является . Для точки на , -координатная карта следующее: [7] если и если . Бернштейн [8] [9] представил карту следующее: который определен для всех значений и в . Вслед за Миллером [10] Монтгомери [5] и Бернштейн, [9] ключевое соглашение Диффи-Хеллмана можно реализовать на кривой Монтгомери следующим образом. Позволять быть генератором подгруппы простого порядка . Алиса выбирает секретный ключ и имеет открытый ключ ; Боб выбирает секретный ключ и имеет открытый ключ . Общий секретный ключ Алисы и Боба: . Использование классических компьютеров, самый известный метод получения от и требуется около время с использованием алгоритма Ро Полларда. [11]
Самый известный пример кривой Монтгомери — Curve25519 , предложенный Бернштейном. [9] Для Кривой25519, и .Другая кривая Монтгомери, являющаяся частью TLS 1.3, — это Curve448 , которая была представленапо Гамбургу. [12] Для Кривой448, и . пара кривых Монтгомери с названиями M[4698] и M[4058], конкурирующих с Curve25519 и Curve448 соответственно. В статье была предложена [13] Для М[4698] и для M[4058] . На 256-битном уровне безопасности были предложены три кривые Монтгомери с именами M[996558], M[952902] и M[1504058]. [14] Для М[996558] , для M[952902], и для M[1504058], соответственно. Помимо этих двух, другие предложения кривых Монтгомери можно найти по адресу. [15]
Программное обеспечение
[ редактировать ]- Curve25519 — популярный набор параметров эллиптических кривых и эталонная реализация Дэниела Дж. Бернштейна на C. языке привязки и альтернативные реализации. Также доступны
- Приложение LINE Messenger использует протокол ECDH для сквозного шифрования всех сообщений, отправляемых через это приложение, с октября 2015 года. [16]
- Протокол Signal использует ECDH для обеспечения безопасности после компрометации. Реализации этого протокола встречаются в Signal , WhatsApp , Facebook Messenger и Skype .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ NIST, Специальная публикация 800-56A, Рекомендации по схемам установления парных ключей с использованием криптографии дискретного логарифма , март 2006 г.
- ^ Certicom Research, Стандарты эффективной криптографии, SEC 1: Криптография с эллиптическими кривыми , версия 2.0, 21 мая 2009 г.
- ^ Криптография NSA Suite B, Руководство по внедрению Suite B для NIST SP 800-56A . Архивировано 6 марта 2016 г. на Wayback Machine , 28 июля 2009 г.
- ^ Тибор Ягер; Йорг Швенк; Юрай Соморовский (04 сентября 2015 г.). «Практические атаки на TLS-ECDH с использованием недействительных кривых» (PDF) . Европейский симпозиум по исследованиям в области компьютерной безопасности (ESORICS'15) .
- ↑ Перейти обратно: Перейти обратно: а б Монтгомери, Питер Л. «Ускорение методов факторизации Полларда и эллиптических кривых» (PDF) . Математика вычислений, 48 (177): 243–264, 1987.
- ^ Бернштейн, Дэниел Дж.; Ланге, Таня. «Кривые Монтгомери и лестница Монтгомери» . В книге Джоппе В. Боса и Арьена К. Ленстры, редакторов, «Темы вычислительной теории чисел», вдохновленные Питером Л. Монтгомери, страницы 82–115. Издательство Кембриджского университета, 2017.
- ↑ Перейти обратно: Перейти обратно: а б Костелло, Крейг; Смит, Бенджамин. «Кривые Монтгомери и их арифметика — случай больших характеристических полей» . Дж. Криптографическая инженерия, 8 (3): 227–240, 2018.
- ^ Бернштейн, Дэниел Дж. «Можем ли мы избежать проверки нуля в быстрой арифметике с эллиптическими кривыми?» (PDF) .
- ↑ Перейти обратно: Перейти обратно: а б с Бернштейн, Дэниел Дж. «Curve25519: Новые рекорды скорости Диффи-Хеллмана» . В: Юнг М., Додис Ю., Киайас А., Малкин Т. (ред.) Криптография с открытым ключом - PKC 2006. Конспект лекций по информатике, том 3958. Springer, Берлин, Гейдельберг.
- ^ Миллер, Виктор С. «Использование эллиптических кривых в криптографии» . В журнале «Достижения в криптологии - CRYPTO'85», Санта-Барбара, Калифорния, США, 18–22 августа 1985 г., Труды, страницы 417–426. Шпрингер Берлин Гейдельберг, 1985.
- ^ Поллард, Джон М. «Методы Монте-Карло для вычисления индекса по модулю p» (PDF) . Математика вычислений, 32:918–924, 1978.
- ^ Гамбург, Майк. «Ed448-Златовласка, новая эллиптическая кривая» . Архив электронной печати ACR Cryptology, 2015: 625, 2015.
- ^ Нат, Кошик; Саркар, Палаш. «Компромисс безопасности и эффективности для эллиптической кривой Диффи-Хеллмана на 128- и 224-битных уровнях безопасности» . J Cryptogr Eng 12, 107–121 (2022). , Код доступен по адресу https://github.com/kn-cs/x25519.
- ^ Нат, Кошик; Саркар, Палаш. «Эффективное вычисление Диффи-Хеллмана по эллиптической кривой на 256-битном уровне безопасности» . Информационная безопасность IET, 14(6):633640, 2020. Код доступен по адресу https://github.com/kn-cs/mont256-dh и https://github.com/kn-cs/mont256-vec.
- ^ Бернштейн, Дэниел Дж.; Ланге, Таня. «Безопасные кривые: выбор безопасных кривых для криптографии с эллиптическими кривыми» . Проверено 15 апреля 2024 г.
- ^ СО (13 октября 2015 г.). «Новое поколение безопасных сообщений: «Запечатывание писем» » . Блог инженеров LINE . Компания ЛАЙН. Архивировано из оригинала 1 февраля 2019 года . Проверено 5 февраля 2018 г.