Криптографія на ґратках

Криптогра́фія на ґра́тках — підхід до побудови алгоритмів асиметричного шифрування з використанням задач теорії ґраток, тобто задач оптимізації на дискретних адитивних підгрупах, заданих на множині .

Поряд з іншими методами постквантової криптографії вважається перспективним завдяки можливостям квантового комп'ютера зламувати широко використовувані асиметричні системи шифрування, засновані на двох типах задач теорії чисел: задачах факторизації цілих чисел і задачах дискретного логарифмування. Складність зламування алгоритмів, побудованих на ґратках, дуже велика, найкращі алгоритми ледь можуть розв'язати цю задачу за експоненційний час. Станом на середину 2010-х років невідомо жодного квантового алгоритму, здатного впоратися краще від звичайного комп'ютера.

Передумови створення

[ред. | ред. код]

1995 року Пітер Шор продемонстрував поліноміальний алгоритм для зламування криптографічних систем з відкритим ключем при використанні квантового комп'ютера, визначивши тим самим період існування цих систем до виникнення квантових обчислювачів достатньої розмірності.

У 1996 році Лов Грувер[en] продемонстрував загальний метод пошуку в базі даних, що дозволяє розшифровувати симетричні алгоритми шифрування, еквівалентну зменшенню ключа шифру вдвічі.

2001 року група фахівців IBM продемонструвала виконання алгоритму факторизації Шора. Число 15 розклали на множники 3 і 5 за допомогою квантового комп'ютера з 7 кубітами, побудованого з 1810 молекул, що складаються з п'яти атомів фтору та двох атомів вуглецю, із записом інформації за допомогою радіосигналів та зчитування методами ядерного магнітного резонансу[1].

Починаючи від другої половини 1990-х років виникла необхідність пошуку криптостійких до квантових комп'ютерів задач для постквантової епохи шифрування, як один з підходів запропоновано використовувати ґратки в  — дискретні підгрупи дійсного векторного простору, лінійні оболонки яких збігаються з ним:

Обчислювально складні задачі

[ред. | ред. код]
Синьою крапкою позначено найкоротший вектор

Задача пошуку найкоротшого вектора (SVP, англ. Shortest Vector Problem) — знайти в заданому базисі решітки ненульовий вектор за відношенням до певної нормалі[2].

Задачу пошуку (приблизно) ідеального найкоротшого вектора (ISVP, англ. (approximate) ideal shortest vector problem) не вважають NP-складною. Проте, немає відомих ґраток, заснованих на методі редукції, значно ефективніших на ідеальних структурах, ніж на загальних[3].

Ще одна задача — пошук (приблизно) найкоротшого незалежного вектора (SIVP, англ. (approximate) shortest independent vectors problem), в якій дано базис ґратки і потрібно знайти лінійно незалежних векторів[4].

Синя крапка — знайдений вектор, червона крапка — заданий вектор

Задача пошуку найближчого вектора (CVP, англ. Closest Vector Problem) — знаходження вектора в ґратці за заданим базисом і деяким вектором, що не належить ґратці, при цьому якомога ближчого за довжиною до заданого вектора.

LLL-алгоритм

[ред. | ред. код]
Приклад роботи алгоритму LLL. Червоним зображено новий базис.

Всі ці задачі можна розв'язати за поліноміальний час за допомогою відомого LLL-алгоритму, який винайшли 1982 року Ар'єн Ленстра[ru], Хендрик Ленстра[ru] і Ласло Ловас[5].

У заданому базисі , з n -вимірними цілими координатами, у ґратці з , де , LLL-алгоритм знаходить коротший (промірно[уточнити]) ортогональний базис за час:

,

де  — найбільша довжина вектора в цьому просторі.

Основні криптографічні конструкції та їх стійкість

[ред. | ред. код]

Шифрування

[ред. | ред. код]

GGH — криптосистема заснована на CVP, а саме на односторонній функції з таємним входом, що спирається на складність редукції ґратки. Опубліковано 1997 року. Знаючи базис, можна згенерувати вектор близький до заданої точки, але щоб за відомим цим вектором знайти початкову точку, потрібен початковий базис. Алгоритм перевірено 1999 року.

Реалізація GGH

[ред. | ред. код]

GGH складається з відкритого та секретного ключів.

Секретний ключ — це базис ґратки та унімодулярна матриця .

Відкритий ключ — деякий базис у ґратці у вигляді .

Для деякого , простір повідомлення складається з вектора , де .

Шифрування
[ред. | ред. код]

Задано повідомлення , спотворення , відкритий ключ :

У матричному вигляді:

.

складається із цілих значень, точка ґратки, і також точка ґратки. Тоді шифротекст:

Розшифрування
[ред. | ред. код]

Для розшифрування необхідно обчислити:

Частина забирається, з міркувань наближення. Повідомлення:

Приклад
[ред. | ред. код]

Виберемо ґратку із базисом :

and

де

і

В результаті:

Нехай повідомлення та вектор помилки . Тоді шифротекст:

.

Для розшифрування необхідно обчислити:

.

Округлення дає , відновимо повідомлення:

.

NTRUEncrypt[ru] — криптосистема, заснована на SVP, альтернатива для RSA та ECC. В обчисленні використовується кільце многочленів.

Підпис

[ред. | ред. код]

Схему підпису GGH, засновану на складності знаходження найближчого вектора, вперше запропонував 1995 року і опублікував 1997 року Голдріх. Ідея полягала у використанні ґраток, для яких «поганий» базис (вектори довгі і майже паралельні) є відкритим і «хороший» базис із короткими та майже ортогональними векторами є закритим. За цим методом, повідомлення необхідно хешувати в простір, натягнутий на ґратку, а підпис для цього хеша в цьому просторі є найближчим вузлом ґратки. Схема не мала формального доведення безпечності, і її базовий варіант 1999 року зламав Нгуен (Nguyen). 2006 року модифіковану версію знову зламали Нгуен і Реґев[en].

NTRUSign — спеціальна, ефективніша версія підпису GGH, що відрізняється меншим ключем та розміром підпису. Вона використовує тільки ґратки підмножини множини всіх ґраток, пов'язаних з деякими поліноміальними кільцями. NTRUSign запропоновано на розгляд як стандарт IEEE P1363.1.

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Vandersypen, Lieven M. K.; Steffen, Matthias; Breyta, Gregory; Yannoni, Costantino S.; Sherwood, Mark H. & Chuang, Isaac L. (2001), Experimental realization of Shor's quantum factoring algorithm using nuclear magnetic resonance (PDF), Nature, 414 (6866): 883—887, arXiv:quant-ph/0112176, Bibcode:2001Natur.414..883V, doi:10.1038/414883a, PMID 11780055, архів оригіналу (PDF) за 29 березня 2017, процитовано 14 липня 2022
  2. Factoring polynomials with rational coefficients (PDF), архів оригіналу (PDF) за 27 вересня 2022, процитовано 14 липня 2022
  3. Generalized compact knapsacks are collision resistant. In:International colloquium on automata, languages and programming (PDF)
  4. Complexity of lattice problems: a cryptographic perspective. The Kluwer international series in engineering and computer science, архів оригіналу (BIB) за 29 травня 2015, процитовано 14 липня 2022
  5. Lenstra, A. K.[en]; Lenstra, H. W., Jr.[en]; Lovász, L. Factoring polynomials with rational coefficients // Mathematische Annalen. — 1982. — Т. 261, № 4. — С. 515—534. — DOI:10.1007/BF01457454. — hdl:1887/3810.