Обмен ключами Диффи–Хеллмана с суперсингулярной изогенией ( SIDH или SIKE ) — это небезопасное предложение для постквантового криптографического алгоритма для установления секретного ключа между двумя сторонами по недоверенному каналу связи. Он аналогичен обмену ключами Диффи–Хеллмана , но основан на обходах в графе суперсингулярной изогении и был разработан для сопротивления криптоаналитической атаке со стороны противника, владеющего квантовым компьютером . До того, как он был взломан, SIDH мог похвастаться одним из самых маленьких размеров ключа среди всех постквантовых обменов ключами; со сжатием SIDH использовал 2688-битные [1] открытые ключи на 128-битном квантовом уровне безопасности . SIDH также отличается [ оспаривается — обсудить ] от подобных систем, таких как NTRU и Ring-LWE [ требуется цитата ] поддержкой совершенной прямой секретности , свойства, которое не позволяет скомпрометированным долгосрочным ключам скомпрометировать конфиденциальность старых сеансов связи. Эти свойства, казалось, делают SIDH естественным кандидатом на замену Диффи–Хеллмана (DHE) и эллиптической кривой Диффи–Хеллмана (ECDHE), которые широко используются в интернет-коммуникациях. Однако SIDH уязвим для разрушительной атаки восстановления ключа, опубликованной в июле 2022 года, и поэтому небезопасен. Для этой атаки не требуется квантовый компьютер. [2] [3]
Для некоторых классов задач алгоритмы, работающие на квантовых компьютерах , естественным образом способны достигать меньшей временной сложности , чем на классических компьютерах. То есть квантовые алгоритмы могут решать определенные задачи быстрее, чем наиболее эффективный алгоритм, работающий на традиционном компьютере. Например, алгоритм Шора может факторизовать целое число N за полиномиальное время , в то время как самый известный классический алгоритм факторизации, общее решето числового поля , работает за субэкспоненциальное время . Это важно для криптографии с открытым ключом , поскольку безопасность RSA зависит от невозможности факторизации целых чисел, проблемы факторизации целых чисел . Алгоритм Шора также может эффективно решать задачу дискретного логарифмирования , которая является основой безопасности Диффи–Хеллмана , эллиптической кривой Диффи–Хеллмана , эллиптической кривой DSA , Curve25519 , ed25519 и Эль-Гамаля . Хотя квантовые компьютеры в настоящее время находятся в зачаточном состоянии, продолжающееся развитие квантовых компьютеров и их теоретическая способность взламывать современные криптографические протоколы (такие как TLS/SSL ) подтолкнули к развитию постквантовой криптографии. [4]
SIDH был создан в 2011 году Де Фео, Джао и Плутом. [5] Он использует обычные операции эллиптических кривых и не запатентован. SIDH обеспечивает совершенную прямую секретность и, таким образом, не полагается на безопасность долгосрочных закрытых ключей. Прямая секретность улучшает долгосрочную безопасность зашифрованных сообщений, помогает защититься от массового наблюдения и снижает влияние уязвимостей, таких как Heartbleed . [6] [7]
J -инвариант эллиптической кривой, заданной уравнением Вейерштрасса, определяется формулой:
Изоморфные кривые имеют один и тот же j-инвариант; над алгебраически замкнутым полем две кривые с одним и тем же j-инвариантом являются изоморфными.
Суперсингулярный изогенический протокол Диффи-Хеллмана (SIDH) работает с графом, вершинами которого являются (классы изоморфизма) суперсингулярные эллиптические кривые , а рёбра — изогении между этими кривыми. Изогения между эллиптическими кривыми и является рациональным отображением , которое также является групповым гомоморфизмом. Если сепарабельно , определяется своим ядром с точностью до изоморфизма целевой кривой .
Настройка для SIDH представляет собой простое число вида , для различных (малых) простых чисел и , (больших) показателей степеней и , и малого кофактора , вместе с суперсингулярной эллиптической кривой, определенной над . Такая кривая имеет две большие подгруппы кручения и , которые назначены Алисе и Бобу соответственно, как указано нижними индексами. Каждая сторона начинает протокол, выбирая (секретную) случайную циклическую подгруппу своей соответствующей подгруппы кручения и вычисляя соответствующую (секретную) изогению. Затем они публикуют или иным образом предоставляют другой стороне уравнение для целевой кривой своей изогении вместе с информацией об изображении подгруппы кручения другой стороны при этой изогении. Это позволяет им обоим в частном порядке вычислять новые изогении, ядра которых совместно генерируются двумя секретными циклическими подгруппами. Поскольку ядра этих двух новых изогений совпадают, их целевые кривые изоморфны. Общий j-инвариант этих целевых кривых может затем быть принят в качестве требуемого общего секрета.
Поскольку безопасность схемы зависит от меньшей торсионной подгруппы, рекомендуется выбирать .
Прекрасным источником информации по этой теме является статья Де Фео «Математика криптографии, основанной на изогении». [8]
Самый простой способ атаки на SIDH — решить задачу поиска изогении между двумя суперсингулярными эллиптическими кривыми с одинаковым числом точек. На момент первоначальной публикации Де Фео, Джао и Плюта лучшая известная атака против SIDH была основана на решении связанной задачи поиска когтей , что приводило к сложности O(p 1/4 ) для классических компьютеров и O(p 1/6 ) для квантовых компьютеров . Это предполагало, что SIDH с 768-битным простым числом (p) будет иметь 128-битный уровень безопасности. [5] Исследование проблемы изогении, проведенное в 2014 году Дельфсом и Гэлбрейтом, подтвердило анализ безопасности O(p 1/4 ) для классических компьютеров. [9] Классическая безопасность O(p 1/4 ) осталась незатронутой связанной криптоаналитической работой Биасса, Джао и Санкара, а также Гэлбрейта, Пети, Шани и Яна. [10] [11]
Более сложная стратегия атаки основана на использовании вспомогательных точек эллиптической кривой, присутствующих в открытых ключах SIDH, которые в принципе раскрывают много дополнительной информации о секретных изогениях, но эта информация поначалу не казалась вычислительно полезной для злоумышленников. В 2017 году Пети впервые продемонстрировал технику, использующую эти точки для атаки на некоторые довольно своеобразные варианты SIDH. [12] Несмотря на последующую работу по расширению атаки на гораздо более реалистичные экземпляры SIDH, стратегия атаки все еще не смогла взломать «стандартный» SIDH, используемый в представлении NIST PQC SIKE.
В июле 2022 года Кастрик и Декру опубликовали эффективную атаку восстановления ключа на SIKE, которая использует вспомогательные точки. Используя одноядерный компьютер, SIKEp434 был взломан примерно за час, SIKEp503 — примерно за 2 часа, SIKEp610 — примерно за 8 часов и SIKEp751 — примерно за 21 час. [2] [13] Атака основана на склеивании нескольких эллиптических кривых, появляющихся в конструкции SIDH, что дает абелеву поверхность (в более общем смысле — абелево многообразие ) и вычислении специально созданной изогении, определяемой заданными вспомогательными точками на этом многомерном объекте.
Следует подчеркнуть, что атака в значительной степени опирается на вспомогательные точки, заданные в SIDH, и не существует известного способа применения подобных методов к общей проблеме изогении.
Во время обмена ключами сущности A и B будут передавать информацию из 2 коэффициентов по модулю p 2 ), определяющих эллиптическую кривую и 2 точки эллиптической кривой. Каждый коэффициент эллиптической кривой требует битов. Каждая точка эллиптической кривой может быть передана в битах; следовательно, передача составляет биты. Это 6144 бита для 768-битного модуля p (128-битная безопасность). Однако это можно сократить более чем вдвое до 2640 бит (330 байтов) с помощью методов сжатия ключей, последний из которых представлен в недавней работе авторов Костелло, Джао, Лонги, Наерига, Ренеса и Урбаника. [14] Благодаря этим методам сжатия SIDH имеет схожие требования к полосе пропускания с традиционными 3072-битными подписями RSA или обменами ключами Диффи-Хеллмана. Это небольшое требование к пространству делает SIDH применимым к контексту, который имеет строгие требования к пространству, такому как Bitcoin или Tor . Ячейки данных Tor должны быть меньше 517 байт в длину, чтобы они могли содержать 330-байтовые ключи SIDH. Напротив, NTRUEncrypt должен обмениваться примерно 600 байтами для достижения 128-битной безопасности и не может использоваться в Tor без увеличения размера ячейки. [15]
В 2014 году исследователи из Университета Ватерлоо разработали программную реализацию SIDH. Они запустили свой частично оптимизированный код на процессоре x86-64, работающем на частоте 2,4 ГГц. Для 768-битного модуля они смогли завершить вычисления обмена ключами за 200 миллисекунд, тем самым продемонстрировав, что SIDH является вычислительно практичным. [16]
В 2016 году исследователи из Microsoft опубликовали программное обеспечение для SIDH, которое работает в постоянном времени (тем самым защищая от атак по времени) и является наиболее эффективной реализацией на сегодняшний день. Они пишут: «Размер открытых ключей составляет всего 564 байта, что значительно меньше, чем у большинства популярных альтернатив постквантового обмена ключами. В конечном счете, размер и скорость нашего программного обеспечения иллюстрируют большой потенциал SIDH как кандидата на постквантовый обмен ключами, и мы надеемся, что эти результаты поощрят более широкие криптоаналитические усилия». [17] Код имеет открытый исходный код (MIT) и доступен на GitHub: https://github.com/microsoft/PQCrypto-SIDH.
В 2016 году исследователи из Флоридского Атлантического университета разработали эффективные реализации SIDH на базе ARM и провели сравнение аффинных и проективных координат. [18] [19] В 2017 году исследователи из Флоридского Атлантического университета разработали первые реализации SIDH на базе FPGA. [20]
Хотя несколько этапов SIDH включают сложные изогенические вычисления, общий поток SIDH для сторон A и B прост для тех, кто знаком с обменом ключами Диффи-Хеллмана или его вариантом на основе эллиптической кривой.
Это общедоступные параметры, которые могут быть доступны всем участникам сети, или они могут быть согласованы сторонами A и B в начале сеанса.
При обмене ключами стороны A и B создадут изогению из общей эллиптической кривой E. Каждая из них сделает это, создав случайную точку в том, что будет ядром их изогении. Ядро их изогении будет охватываться и соответственно. Различные используемые пары точек гарантируют, что стороны A и B создадут различные, некоммутирующие, изогении. Случайная точка ( , или ) в ядре изогений создается как случайная линейная комбинация точек , и , .
Используя , или , стороны A и B затем используют формулы Велю для создания изогений и соответственно. Из этого они вычисляют изображение пар точек , или , под изогениями и соответственно.
В результате у A и B теперь будет две пары точек , и , соответственно. Теперь A и B обмениваются этими парами точек по каналу связи.
Теперь A и B используют пару точек, которые они получают, как основу для ядра новой изогении. Они используют те же линейные коэффициенты, которые они использовали выше с точками, которые они получили, чтобы сформировать точку в ядре изогении, которую они создадут. Каждый из них вычисляет точки и использует формулы Велю для построения новых изогений.
Для завершения обмена ключами A и B вычисляют коэффициенты двух новых эллиптических кривых под этими двумя новыми изогениями. Затем они вычисляют j-инвариант этих кривых. Если только не было ошибок при передаче, j-инвариант кривой, созданной A, будет равен j-инварианту кривой, созданной B.
Обозначим обмен ключами SIDH между сторонами A и B следующим образом:
1A. A генерирует два случайных целых числа
2А. А генерирует
3А. А использует точку для создания изогенического отображения и кривой , изогенной
4А. А применяется к и для образования двух точек на и
5А. А посылает в Б , и
1B - 4B: То же, что и A1 - A4, но индексы A и B поменяны местами.
5B. B отправляет A , и
6А. А имеет , и и формы
7А. Использование для создания изогенического отображения .
8А. А использует для создания эллиптической кривой , изогенной .
9А. Вычисляет кривую .
6Б. Аналогично, В имеет , и и формы .
7B. B использует для создания изогенического отображения .
8B. B использует для создания эллиптической кривой , изогенной .
9Б. Б вычисляет кривую .
Кривые и гарантированно имеют один и тот же j-инвариант. Функция используется как общий ключ. [5]
В качестве примера Де Фео и др. взяли следующие параметры: [5]
p = простое число для обмена ключами с w A = 2, w B = 3, e A = 63, e B = 41 и f = 11. Таким образом, p = (2 63 ·3 41 ·11) - 1.
E 0 = базовая (начальная) кривая для обмена ключами = y 2 = x 3 + x
Лука Де Фео, один из авторов статьи, определяющей обмен ключами, опубликовал программное обеспечение, реализующее обмен ключами для этих и других параметров. [21]
Предшественник SIDH был опубликован в 2006 году Ростовцевым и Столбуновым. Они создали первую замену Диффи-Хеллмана на основе изогений эллиптических кривых. В отличие от метода Де Фео, Джао и Плута, метод Ростовцева и Столбунова использовал обычные эллиптические кривые [22] и, как было обнаружено, имел субэкспоненциальную квантовую атаку. [23]
В марте 2014 года исследователи из Китайской государственной ключевой лаборатории для сетей комплексных услуг и Университета Сидиан расширили безопасность SIDH до формы цифровой подписи с назначенным верификатором. [24] В октябре 2014 года Джао и Сухарев из Университета Ватерлоо представили альтернативный метод создания неоспоримых подписей с назначенным верификатором с использованием изогений эллиптических кривых. [25] [ важность? ]
{{cite conference}}
: CS1 maint: location (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link)