Криптография на основе эллиптических кривых ( ECC ) — это подход к криптографии с открытым ключом , основанный на алгебраической структуре эллиптических кривых над конечными полями . ECC позволяет использовать меньшие ключи для обеспечения эквивалентной безопасности по сравнению с криптосистемами, основанными на модульном возведении в степень в полях Галуа , такими как криптосистема RSA и криптосистема Эль-Гамаля . [1]
Эллиптические кривые применимы для согласования ключей , цифровых подписей , псевдослучайных генераторов и других задач. Косвенно их можно использовать для шифрования, комбинируя согласование ключей с симметричной схемой шифрования . Они также используются в нескольких алгоритмах факторизации целых чисел , которые имеют приложения в криптографии, например, факторизация на эллиптических кривых Ленстры .
Использование эллиптических кривых в криптографии было предложено независимо друг от друга Нилом Коблицем [2] и Виктором С. Миллером [3] в 1985 году. Алгоритмы криптографии на основе эллиптических кривых стали широко использоваться в 2004–2005 годах.
В 1999 году NIST рекомендовал пятнадцать эллиптических кривых. В частности, FIPS 186-4 [4] рекомендует десять конечных полей:
Рекомендация NIST, таким образом, содержит в общей сложности пять простых кривых и десять бинарных кривых. Кривые были выбраны для оптимальной безопасности и эффективности внедрения. [5]
На конференции RSA 2005 года Агентство национальной безопасности (NSA) анонсировало Suite B , который использует исключительно ECC для генерации цифровой подписи и обмена ключами. Этот пакет предназначен для защиты как секретных, так и несекретных систем и информации национальной безопасности. [1] Национальный институт стандартов и технологий (NIST) одобрил криптографию на основе эллиптических кривых в своем наборе рекомендуемых алгоритмов Suite B , в частности алгоритм Диффи-Хеллмана на эллиптических кривых (ECDH) для обмена ключами и алгоритм цифровой подписи на эллиптических кривых (ECDSA) для цифровой подписи. АНБ разрешает их использование для защиты информации, классифицированной вплоть до совершенно секретной, с 384-битными ключами. [6]
Недавно [ когда? ] было введено большое количество криптографических примитивов, основанных на билинейных отображениях на различных группах эллиптических кривых, таких как пары Вейля и Тейта . Схемы, основанные на этих примитивах, обеспечивают эффективное шифрование на основе идентификации , а также подписи на основе пар, шифрование подписей , согласование ключей и повторное шифрование прокси . [ нужна цитата ]
Криптография на основе эллиптических кривых успешно используется во многих популярных протоколах, таких как Transport Layer Security и Bitcoin .
В 2013 году The New York Times заявила, что Dual Elliptic Curve Deterministic Random Bit Generation (или Dual_EC_DRBG) был включен в качестве национального стандарта NIST из-за влияния Агентства национальной безопасности , которое включило преднамеренную слабость в алгоритм и рекомендуемую эллиптическую кривую. [7] В сентябре 2013 года RSA Security выпустила рекомендацию, в которой рекомендовала своим клиентам прекратить использование любого программного обеспечения на основе Dual_EC_DRBG. [8] [9] После разоблачения Dual_EC_DRBG как «тайной операции Агентства национальной безопасности» эксперты по криптографии также выразили обеспокоенность по поводу безопасности рекомендуемых NIST эллиптических кривых, [10] предложив вернуться к шифрованию на основе групп, не являющихся эллиптическими кривыми.
Кроме того, в августе 2015 года АНБ объявило, что планирует заменить Suite B новым набором шифров из-за опасений по поводу атак на ECC с помощью квантовых вычислений . [11] [12]
Хотя патент RSA истек в 2000 году, могут существовать действующие патенты, охватывающие определенные аспекты технологии ECC, включая по крайней мере одну схему ECC ( ECMQV ). Однако RSA Laboratories [13] и Daniel J. Bernstein [14] утверждают, что стандарт цифровой подписи правительства США на основе эллиптических кривых (ECDSA; NIST FIPS 186-3) и некоторые практические схемы обмена ключами на основе ECC (включая ECDH) могут быть реализованы без нарушения этих патентов.
В данной статье эллиптическая кривая — это плоская кривая над конечным полем (а не действительными числами), состоящая из точек, удовлетворяющих уравнению:
вместе с выделенной точкой на бесконечности , обозначенной ∞. Координаты здесь должны быть выбраны из фиксированного конечного поля характеристики , не равной 2 или 3, иначе уравнение кривой было бы несколько сложнее.
Этот набор точек, вместе с групповой операцией эллиптических кривых , является абелевой группой , с точкой на бесконечности в качестве единичного элемента. Структура группы наследуется от группы делителей базового алгебраического многообразия :
Криптография с открытым ключом основана на неразрешимости некоторых математических задач . Ранние системы с открытым ключом, такие как патент RSA 1983 года, основывали свою безопасность на предположении, что трудно разложить большое целое число, состоящее из двух или более больших простых множителей, которые находятся далеко друг от друга. Для более поздних протоколов на основе эллиптических кривых базовым предположением является то, что нахождение дискретного логарифма случайного элемента эллиптической кривой относительно публично известной базовой точки невыполнимо ( вычислительное предположение Диффи–Хеллмана ): это «задача дискретного логарифма эллиптической кривой» (ECDLP). Безопасность криптографии на эллиптических кривых зависит от способности вычислять точечное умножение и невозможности вычислять множимое, учитывая исходную точку и точку произведения. Размер эллиптической кривой, измеряемый общим числом пар дискретных целых чисел, удовлетворяющих уравнению кривой, определяет сложность задачи.
Основным преимуществом эллиптической кривой по сравнению с альтернативами, такими как RSA, является меньший размер ключа , что снижает требования к хранению и передаче. [1] Например, 256-битный открытый ключ эллиптической кривой должен обеспечивать сопоставимую безопасность с 3072-битным открытым ключом RSA.
Несколько протоколов на основе дискретного логарифма были адаптированы к эллиптическим кривым, заменив группу эллиптической кривой:
Некоторые общие соображения по реализации включают в себя:
Чтобы использовать ECC, все стороны должны договориться обо всех элементах, определяющих эллиптическую кривую, то есть о параметрах домена схемы. Размер используемого поля обычно либо простой (и обозначается как p), либо является степенью двойки ( ); последний случай называется двоичным случаем , и этот случай требует выбора вспомогательной кривой, обозначаемой как f . Таким образом, поле определяется как p в простом случае и как пара m и f в двоичном случае. Эллиптическая кривая определяется константами a и b, используемыми в ее определяющем уравнении. Наконец, циклическая подгруппа определяется ее генератором (он же базовая точка ) G . Для криптографического применения порядок G , то есть наименьшее положительное число n такое, что ( точка на бесконечности кривой и элемент идентичности ), обычно является простым. Поскольку n является размером подгруппы , из теоремы Лагранжа следует , что число является целым числом. В криптографических приложениях это число h , называемое кофактором , должно быть малым ( ) и, желательно, . Подводя итог: в простом случае параметры домена равны ; в двоичном случае они равны .
Если нет уверенности в том, что параметры домена были сгенерированы стороной, доверенной в отношении их использования, параметры домена должны быть проверены перед использованием.
Генерация параметров домена обычно не выполняется каждым участником, поскольку это включает в себя вычисление количества точек на кривой , что требует много времени и является сложным для реализации. В результате несколько органов стандартизации опубликовали параметры домена эллиптических кривых для нескольких распространенных размеров полей. Такие параметры домена обычно известны как «стандартные кривые» или «именованные кривые»; на именованную кривую можно ссылаться либо по имени, либо по уникальному идентификатору объекта , определенному в стандартных документах:
Также доступны тестовые векторы SECG. [17] NIST одобрил множество кривых SECG, поэтому существует значительное совпадение между спецификациями, опубликованными NIST и SECG. Параметры домена EC могут быть указаны либо по значению, либо по имени.
Если, несмотря на предыдущее предостережение, кто-то решает построить собственные параметры домена, он должен выбрать базовое поле, а затем использовать одну из следующих стратегий, чтобы найти кривую с подходящим (т.е. близким к простому) числом точек, используя один из следующих методов:
Некоторые классы кривых являются слабыми и их следует избегать:
Поскольку все самые быстрые известные алгоритмы, позволяющие решить ECDLP ( baby-step giant-step , Pollard's rho и т. д.), требуют шагов, из этого следует, что размер базового поля должен быть примерно вдвое больше параметра безопасности. Например, для 128-битной безопасности нужна кривая над , где . Это можно противопоставить криптографии с конечным полем (например, DSA ), которая требует [27] 3072-битных открытых ключей и 256-битных закрытых ключей, и криптографии с целочисленной факторизацией (например, RSA ), которая требует 3072-битного значения n , где закрытый ключ должен быть таким же большим. Однако открытый ключ может быть меньше для обеспечения эффективного шифрования, особенно когда вычислительная мощность ограничена (например, в Африке).
Самая сложная схема ECC (публично) взломанная на сегодняшний день [ когда? ] имела 112-битный ключ для случая простого поля и 109-битный ключ для случая двоичного поля. Для случая простого поля это было взломано в июле 2009 года с использованием кластера из более чем 200 игровых консолей PlayStation 3 и могло быть завершено за 3,5 месяца с использованием этого кластера при непрерывной работе. [28] Случай двоичного поля был взломан в апреле 2004 года с использованием 2600 компьютеров в течение 17 месяцев. [29]
Текущий проект направлен на преодоление проблемы ECC2K-130 от Certicom, используя широкий спектр различного оборудования: центральные процессоры, графические процессоры, ПЛИС. [30]
Тщательное изучение правил сложения показывает, что для сложения двух точек необходимо не только несколько сложений и умножений, но и операция инверсии . Инверсия (для заданного find такого, что ) на один-два порядка медленнее [31] , чем умножение. Однако точки на кривой можно представить в разных системах координат, которые не требуют операции инверсии для сложения двух точек. Было предложено несколько таких систем: в проективной системе каждая точка представлена тремя координатами с использованием следующего соотношения: , ; в якобианской системе точка также представлена тремя координатами , но используется другое соотношение: , ; в системе Лопеса–Дахаба соотношение равно , ; в модифицированной якобианской системе используются те же соотношения, но для вычислений хранятся и используются четыре координаты ; а в якобианской системе Чудновского используются пять координат . Обратите внимание, что могут быть разные соглашения об именах, например, стандарт IEEE P1363 -2000 использует «проективные координаты» для обозначения того, что обычно называют якобианскими координатами. Дополнительное ускорение возможно, если используются смешанные координаты. [32]
Редукция по модулю p (которая необходима для сложения и умножения) может быть выполнена намного быстрее, если простое число p является псевдопростым числом Мерсенна , то есть ; например, или По сравнению с редукцией Барретта , может быть ускорение на порядок. [33] Ускорение здесь является скорее практическим, чем теоретическим, и вытекает из того факта, что модули чисел по числам, близким к степеням двойки, могут быть эффективно выполнены компьютерами, работающими с двоичными числами с побитовыми операциями .
Кривые с псевдомерсенновским p рекомендуются NIST. Еще одним преимуществом кривых NIST является то, что они используют a = −3, что улучшает сложение в якобианских координатах.
По словам Бернстайна и Ланге, многие решения, связанные с эффективностью в NIST FIPS 186-2, являются неоптимальными. Другие кривые более безопасны и работают так же быстро. [34]
В отличие от большинства других систем DLP (где можно использовать одну и ту же процедуру для возведения в квадрат и умножения), сложение EC существенно отличается для удвоения ( P = Q ) и общего сложения ( P ≠ Q ) в зависимости от используемой системы координат. Следовательно, важно противодействовать атакам по побочным каналам (например, атакам по времени или простому/дифференциальному анализу мощности ), используя, например, методы фиксированного окна шаблона (также известного как гребенка) [ необходимо разъяснение ] [35] (обратите внимание, что это не увеличивает время вычислений). В качестве альтернативы можно использовать кривую Эдвардса ; это особое семейство эллиптических кривых, для которых удвоение и сложение могут быть выполнены с помощью одной и той же операции. [36] Еще одной проблемой для систем ECC является опасность атак с ошибками , особенно при работе на смарт-картах . [37]
Эксперты по криптографии выразили обеспокоенность тем, что Агентство национальной безопасности вставило клептографический бэкдор по крайней мере в один псевдослучайный генератор на основе эллиптических кривых. [38] Внутренние меморандумы, обнародованные бывшим подрядчиком АНБ Эдвардом Сноуденом, предполагают, что АНБ вставило бэкдор в стандарт Dual EC DRBG . [39] Один из анализов возможного бэкдора пришел к выводу, что злоумышленник, обладающий секретным ключом алгоритма, может получить ключи шифрования, имея только 32 байта выходных данных PRNG. [40]
Проект SafeCurves был запущен с целью каталогизации кривых, которые легко реализовать безопасно и которые разработаны полностью публично проверяемым способом, чтобы свести к минимуму вероятность бэкдора. [41]
Алгоритм Шора может быть использован для взлома криптографии эллиптических кривых путем вычисления дискретных логарифмов на гипотетическом квантовом компьютере . Последние оценки квантовых ресурсов для взлома кривой с 256-битным модулем (уровень безопасности 128 бит) составляют 2330 кубитов и 126 миллиардов вентилей Тоффоли . [42] Для случая двоичной эллиптической кривой необходимо 906 кубитов (для взлома 128 бит безопасности). [43] Для сравнения, использование алгоритма Шора для взлома алгоритма RSA требует 4098 кубитов и 5,2 триллиона вентилей Тоффоли для 2048-битного ключа RSA, что говорит о том, что ECC является более легкой целью для квантовых компьютеров, чем RSA. Все эти цифры значительно превышают любой квантовый компьютер, который когда-либо был построен, и оценки относят создание таких компьютеров к десятилетию или более. [ необходима цитата ] [44]
Суперсингулярный изогенный обмен ключами Диффи–Хеллмана , как утверждается, обеспечивает постквантовую безопасную форму эллиптической кривой криптографии, используя изогении для реализации обмена ключами Диффи–Хеллмана . Этот обмен ключами использует большую часть той же арифметики полей, что и существующая эллиптическая кривая криптография, и требует вычислительных и передающих накладных расходов, аналогичных многим в настоящее время используемым системам открытого ключа. [45] Однако новые классические атаки подорвали безопасность этого протокола. [46]
В августе 2015 года АНБ объявило, что планирует перейти «в недалеком будущем» на новый набор шифров, устойчивый к квантовым атакам. «К сожалению, рост использования эллиптических кривых столкнулся с фактом продолжающегося прогресса в исследованиях квантовых вычислений, что требует переоценки нашей криптографической стратегии». [11]
Когда ECC используется в виртуальных машинах , злоумышленник может использовать недействительную кривую, чтобы получить полный закрытый ключ PDH. [47]
Альтернативные представления эллиптических кривых включают в себя:
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )эллиптической кривой (ECC) SEV оказалась уязвимой для атаки с недопустимой кривой. При команде launch-start злоумышленник может отправить точки ECC малого порядка, не находящиеся на официальных кривых NIST, и заставить прошивку SEV умножить точку малого порядка на частный скаляр DH прошивки.