Это не официальный сайт wikipedia.org 01.01.2023

Многомерная криптография — Википедия

Многомерная криптография

Многомерная криптография или многомерная криптография открытого ключа  — это общий термин, описывающий асимметричные криптографические схемы, построенные на решениях уравнений, основанных на многомерных полиномах над конечным полем F .

Безопасность многомерной криптографии основывается на предположении, что решения системы квадратичных многочленов над конечным полем F , в общем случае, является NP-полной задачей в сильном смысле или просто NP-полной. Вот почему эти схемы часто считаются хорошими кандидатами для постквантовой криптографии. [1]

История созданияПравить

Первая попытка построения криптографической схемы на основе многомерных квадратичных полиномов была сделана Онгом, Шнором и Шамиром [2], где они предлагали схему подписи, основанную на сложности решения уравнения:
s 1 2 + k s 2 2 = m ( mod n )  ;

Однако безопасность этой схемы по-прежнему основана на сложности факторизации n = p q   и поэтому эта схема неустойчива к атакам при помощи квантовых компьютеров. Разработка многомерных криптографических схем в современном смысле началась в 1988 году со схемы С* Системы Матцумото-Имаи[3].

Мацумото и Имаи использовали биективное отображение F   над степенью n   полем расширения E   из G F ( 2 )   формы: F : E E , F ( X ) = X 2 θ + 1  .
Чтобы убедиться, что это преобразование обратимо, необходимо выбрать θ   таким образом, что НОД ( 2 θ + 1 , 2 n 1 ) = 1  . Уравнение выше даёт, благодаря каноническому изоморфизму между G F ( 2 n )   и векторным пространством G F ( 2 ) n   систему многомерных квадратичных уравнений F   на полем G F ( 2 )  , объясняется это Эндоморфизмом Фробениуса. Для того чтобы спрятать структуру F   Мацумото и Имай использовали два аффинных преобразования S   и T  . Таким образом, они представили открытый ключ в форме: P = S F T  .

Эта конструкция называемая биполярной. Она по-прежнему является стандартным методом построения многомерных криптосистем с открытым ключом. [4]

Многомерная криптография была активной областью исследований, однако, до сих пор отсутствуют многомерные схемы, такие как: протоколы обмена ключами и схемы подписи со специальными свойствами[5].

Актуальность и перспективы развитияПравить

Большинство криптосистем с открытым ключом, используемых на практике, основаны на целочисленной факторизации или дискретных логарифмах конечных полях или эллиптических кривых). [6] Однако, эти системы страдают от двух недостатков.

  1. Достижения в области теории чисел привели к снижению эффективности вычислений, поэтому размеры параметров должны быть увеличены в соответствии с требованиями безопасности.[1]
  2. Если можно построить достаточно большие квантовые компьютеры, алгоритм Шора сделает текущие системы полностью небезопасными. Поэтому важно искать альтернативные системы, которые способствуют эффективной и безопасной связи.[1]

Многомерная криптография с открытым ключом — одна из возможных альтернатив нынешних реализаций алгоритмов шифрования с открытым ключом. В 2003 году система подписи Sflash стала окончательным выбором проекта NESSIE (Новые европейские схемы подписи, целостности и шифрования) [7]. Первая книга о многомерной криптографии, написанная Дингом, Гауэром и Шмидтом, была опубликована в 2006 году [5]. Существует также международный воркшоп, PQCrypto, который посвящен вопросам постквантовой криптографии, в том числе многомерной криптографии.[8]

Основной алгоритм работыПравить

Основной идеей стандартного построения многомерной криптографии является выбор системы F : F m F n   (центральное преобразование) из m   многомерных квадратичных многочленов от n   переменных, которые могут быть легко инвертированы. [9] После этого выбираются два случайных аффинных обратимых преобразования S : F m F m   и T : F n F m   для того, чтобы скрыть структуру центрального преобразования F   в открытом ключе. [10]

Открытый ключ криптосистемы — составное квадратичное преобразование P = S F T  , которое, как предполагается, вряд ли отличается от случайного и поэтому его трудно инвертировать.

Закрытый ключ состоит из S  , F  , T   и следовательно, это позволяет инвертировать P  .

Построение публичного ключаПравить

Пусть F   — конечное поле. Публичный ключ алгоритмов многомерной криптографии — это полиномиальное отображение P : F n F m  

P ( x 1 , , x n ) = ( f 1 ( x 1 , , x n ) f m ( x 1 , , x n ) )  ; где f i F [ x 1 , , x n ]   — многочлен второй степени.

Для шифрования и дешифрования считаем, что m n  , для электронной подписи: m n  . [1]

ШифрованиеПравить

Чтобы зашифровать сообщение z F n   или ( x 1 , , x n ) F n   необходимо вычислить h = P ( z )  . Шифротекст полученного сообщения z   есть h F m   или ( y 1 , , y m ) = P ( x 1 , , x n )  . [6]

РасшифрованиеПравить

Что бы расшифровать шифротекст h F m   рекурсивно вычисляется: x = S 1 ( h )  , y = F 1 ( x )   и z = T 1 ( y )  .

z F n   — это открытый текст шифротекста h  . Так как m n  , то отображение из z   в F  , а следовательно, и результирующий открытый текст являются уникальными. [6]

Или другими словами, если дан шифротекст ( y 1 , , y m ) F m  , необходимо найти ( x 1 , , x n ) F n   такой, что P ( x 1 , , x n ) = ( y 1 , , y m )  . Обычно P   является инъекцией в криптографических системах, поэтому дешифровка выполняется при помощи вычисления P 1 ( y 1 , , y n )  .

Цифровая подписьПравить

Для того, что бы подписать документ d  , используется хеш-функция H : { 0 , 1 } F m   для вычисления значения h = H ( d ) F m  .
Затем необходимо вычислить x = S 1 ( h )  , y = F 1 ( x )   и z = T 1 ( y )  . Здесь F 1 ( x )   означает один, возможно, много прообраз x   для центрального отображения F  . Так как n m  , то такое отображение существует. Таким образом каждое сообщение может быть подписано. [6]

Проверка цифровой подписиПравить

Чтобы проверить подлинность документа, необходимо просто вычислить h , = P ( z )   и значение хеш-функции h = H ( d )   от документа. Если h , = h  , то подпись принимается, в противном случае отклоняется. [6]

БезопасностьПравить

Безопасность алгоритмов многомерной криптографии опирается на следующее:

Дана система P = ( p 1 , , p m )   из m   нелинейных полиномиальных уравнений с переменными x 1 , , x n  . Необходимо найти значения x 1 , , x n   такие, что p 1 ( x 1 , , x n ) = = p m ( x 1 , , x n )  .

Решение случайной многомерной квадратичной системы над конечным полем является NP-полной задачей в сильном смысле или просто NP-полной. Сложность решения этой задачи препятствует злоумышленику вычислить закрытый ключ, зная открытый ключ. [11]

  • Изоморфизм многочленов.[12]

Патарин и соавторы показали, что трудность решения этой проблемы по крайней мере такая же, как и изоморфизм графов [13]

Преимущества систем, построенных на алгоритмах многомерной криптографииПравить

  • Скорость

Системы, построенные на алгоритмах многомерной криптографии достаточно быстры, особенно для подписи документов. Есть много предпосылок, что они могут быть быстрее, чем классические криптографические схемы с открытыми ключами, например RSA. [14][15]

  • Скромные требования к вычислительным ресурсам

Математические операции, выполняемые многомерными схемами, обычно очень просты: большинству схем требуется только сложение и умножение по небольшим конечным полям. Поэтому многомерные схемы требуют скромных вычислительных ресурсов, что делает их привлекательными для использования на недорогих устройствах, таких как RFID чипы и смарт-карты, без необходимости наличия криптографического сопроцессора. Вариант схемы С*, называемый SFLASH, был предложен Европейской комиссией в качестве стандарта для схем подписи на недорогих устройствах. [16][17]

В системе SFLASH [1] используется конечное поле F = Z 2 [ 2 ] x 7 + x + 1   также определяется отображение P : F 67 F 56  . Обозначение P   указывает, что 11   уравнений были удалены из функции P  , которая построена следующим образом: P = L 1 f L 2  . Здесь L 1   и L 2   — два обратимых линейных преобразования. Функция f   имеет вид: f ( X ) = X 1 + 128 33  . Таким образом, открытый ключ состоит из 56   квадратичных полиномов c 67   переменными коэффициентами в F  . Каждый квадратичный полином будет иметь 67 34 + 67 + 1   коэффициентов. Для этого требуется 128 , 3   КБ памяти, если каждый коэффициент хранится в одном байте, также его можно уменьшить до 112 , 3   КБ, если использовать только 7   бит для каждого коэффициента

Атаки на системы многомерной криптографииПравить

Повторная линеаризацияПравить

Атака релинеризации направлена на решение переопределенных систем многомерных квадратичных уравнений. Пусть P   - система из m   квадратичных уравнений по n   переменным x 1 , , x n  . Основная идея заключается в введении новой переменной x i j   для каждого квадратичного одночлена x i x j  . Таким образом, получается система линейных уравнений, если число уравнений достаточно велико, можно использовать метод Гаусса. Нужно удостовериться, действительно ли полученное таким образом решение является решением квадратичного система, при условии, что x i j = x i x j i , j { 1 , , n }  . Для решения системы квадратичных уравнений по n   переменным этим методом необходимо m ( n + 1 ) ( n + 2 ) 2 1   уравнений. Таким образом атака методом повторной линеаризации позволяет уменьшить количество неизвестных переменных в закрытом ключе т.е уменьшить его размерность. [18]

XL алгоритмПравить

Пусть T D n   — множество всех многочленов из F [ x 1 , , x n ]   степени D  .

XL-алгоритм:
Входные данные: множество квадратичных многочленов F = { f ( 1 ) , , f ( m ) }  .
Выходные данные: вектор x = ( x 1 , , x n )   такой, что f ( 1 ) ( x ) = = f ( m ) ( x )  .

  • for i = 1   to n   do
    • Фиксируется целое число D > 2  .
    • Формируются все многочлены: h f ( j )  , где h T D 2 n   и j = 1 , , m  .
    • Необходимо воспользоваться методом Гауса для уравнений, полученных на предыдущем шаге, чтобы сгенерировать одно уравнение, содержащее только x i  .
    • Если на предыдущем шаге получился, по крайней мере один одномерный многочлен от x i  , то его необходимо решить, например при помощи алгоритма Берлекэмпа.
    • Необходимо упростить уравнения f ( 1 ) , , f ( m )   путем замены значения x i  .
  • end for x = ( x 1 , , x n )  
  • return x = ( x 1 , , x n )  

Атака при помощи XL-алгритма позволяет уменьшить размерность закрытого ключа при помощи сведения системы уравнений к инварианту в некоторой переменной. Таким образом при помощи XL-алгоритма возможно проводить атаку на открытый ключ. [4]

Примеры многомерных криптосистемПравить

  1. Треугольные криптосистемы [19].
  2. Системы Матцумото-Имаи [20].
  3. Минус-Плюс обобщения системы Мацумото-Имаи [21].
  4. Скрытые уравнения поля
  5. Unbalanced Oil and Vinegar

ПримечанияПравить

  1. 1 2 3 4 5 JINTAI DING, DIETER SCHMIDT. Reuleaux Triangle (англ.). MULTIVARIABLE PUBLIC–KEY CRYPTOSYSTEMS. Дата обращения: 18 декабря 2017. Архивировано 9 августа 2016 года.
  2. H. Ong, C.-P. Schnorr and A. Shamir Efficient signature schemes based on polynomial equations. In CRYPTO, volume 196 of Lecture Notes in Computer Science // Springer : journal. — 1984, pages 37–46.
  3. T. Matsumoto and H. Imai EPublic quadratic polynomial-tuples for efficient signature verifi- cation and message-encryption. In EUROCRYPT, volume 330 of Lecture Notes in Computer Science // Springer : journal. — 1988, pages 419–553
  4. 1 2 Albrecht Petzoldt. Selecting and Reducing Key Sizes for Multivariate Cryptography (англ.). Дата обращения: 21 декабря 2017. Архивировано 8 августа 2017 года.
  5. 1 2 Jintai Ding, Jason Gower, and Deiter Schmidt Multivariate Public Key Cryptosystems // Springer : journal. — 2006.
  6. 1 2 3 4 5 Jintai Ding and Bo-Yin Yang. Multivariate Public Key Cryptography (англ.). Дата обращения: 4 декабря 2017. Архивировано 5 декабря 2017 года.
  7. NESSIE. Reuleaux Triangle (англ.). NESSIE: New European Schemes for Signatures, Integrity, and Encryption. NESSIE project announces final selection of crypto algorithms. Information Society Technologies Programme of the European Commission (IST-1999-12324). Дата обращения: 3 декабря 2017. Архивировано 12 июня 2018 года.
  8. Introduction  (неопр.). Дата обращения: 16 декабря 2017. Архивировано 14 декабря 2017 года.
  9. Shuaiting Qiao, Wenbao Han, Yifa Li, and Luyao Jiao. Construction of Extended Multivariate Public Key Cryptosystems (англ.). Дата обращения: 21 декабря 2017. Архивировано 22 декабря 2017 года.
  10. Lih-Chung Wang, Bo-Yin Yang, Yu-Hua Hu, and Feipei Lai. A Medium-Field Multivariate Public-Key Encryption Scheme (англ.). Дата обращения: 18 декабря 2017. Архивировано 5 июля 2017 года.
  11. Jacques Patarin, Louis Goubin, and Nicolas Courtois. Reuleaux Triangle (англ.). Improved Algorithms for Isomorphisms of Polynomials (1998). Springer. Дата обращения: 21 декабря 2017. Архивировано 16 июля 2017 года.
  12. Jacques Patarin. IHidden Field Equations (HFE) and Isomorphisms of Polynomials (IP): two new Families of Asymmetric Algorithms (англ.). Дата обращения: 21 декабря 2017. Архивировано 15 декабря 2017 года.
  13. Takanori Yasuda, Xavier Dahan, Yun-Ju Huang, Tsuyoshi Takagi and Kouichi Sakurai1. MQ Challenge (англ.). MQ Challenge: Hardness Evaluation of Solving Multivariate Quadratic Problems. Дата обращения: 3 декабря 2017. Архивировано 4 декабря 2017 года.
  14. I.-T. Chen, M.-S. Chen, T.-R. Chen, C.-M. Cheng, J. Ding, E. L.-H. Kuo, F. Y.-S. Lee and B.-Y. Yang SSE implementation of multivariate PKCs on modern x86 CPUs. In CHES, volume 5747 of Lecture Notes in Computer Science // Springer : journal. — 2009, pages 33–48
  15. A. Bogdanov, T. Eisenbarth, A. Rupp and C. Wolf Time-area optimized public-key engines: MQ-cryptosystems as replacement for elliptic curves? // Springer : CHES, volume 5154 of Lecture Notes in Computer Science. — 2008, pages 45–61
  16. J. Patarin, N. Courtois and L. Goubin Flash, a fast multivariate signature algorithm // Springer : In CT-RSA, volume 2020 of Lecture Notes in Computer Science. — 2001, pages 298–307
  17. B. Preneel The NESSIE project: Towards new cryptographic algorithms // Swww.cryptonessie.org — 2000
  18. Raymond Heindl. New Directions in Multivariate Public Key Cryptography (англ.). Дата обращения: 18 декабря 2017. Архивировано 26 декабря 2017 года.
  19. Harriet Fell and Whitfield Diffie Analysis of a public key approach based on polynomial substitution. In Advances in cryptology—CRYPTO ’85 (Santa Barbara, Calif.) // Springer : journal. — 1986. — volume 218, pages 340–349.
  20. T. Matsumoto and H. Imai Public quadratic polynomial-tuples for efficient signature verification and message encryption. In C. G. Guenther, editor, Advances in cryptology – EUROCRYPT ’88 // Springer : journal. — 1988. — volume 330, pages 419–453.
  21. Jacques Patarin, Louis Goubin, and Nicolas Courtois C∗−+ and HM: variations around two schemes of T. Matsumoto and H. Imai. In K. Ohta and D. Pei,editors, ASIACRYPT’98 // Springer : journal. — 1998. — volume 1514, pages 35–50.

СсылкиПравить

  1. [1] Multivariate Public Key Cryptography