Криптосистема Міччанчо

Матеріал з testwiki
Версія від 02:16, 13 жовтня 2023, створена imported>TohaomgBot (Згруповано однакові примітки)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Криптосистема Міччанчо — криптографічна система, заснована на схемі шифрування GGH, запропонована 2001 року професором Університету Каліфорнії в Сан-Дієго Данієлем Міччанчо.

Схема шифрування GGH спирається на криптографію на ґратках, яку вважають перспективною для використання в постквантових системах (оскільки криптосистеми, що використовують факторизацію цілих чисел, дискретне логарифмування, дискретне логарифмування на еліптичних кривих можуть бути ефективно зламані квантовим комп'ютером). Криптосистема Міччанчо, фактично, є покращенням схеми шифрування GGH, зі зменшенням вимог до розміру ключа та шифротексту в N разів без погіршення безпеки системи, де N — розмірність ґратки (для типових криптосистем становить кілька сотень). 2004 року Крістоф Людвіг емпірично показав, що для безпечного використання потрібно N782, до того ж, створення ключа і його дешифрування займає багато часу, а сам розмір ключа має бути більшим від 1 МБ. Тому ця криптосистема не може бути використана на практиці[1][2][3][4].

Основні поняття та позначення

Нехай B={𝐛1,...,𝐛N}, де 𝐛iM,i=1,N — набір з N лінійно незалежних векторів, і компоненти кожного з векторів є цілими числами, а B — матриця з цих векторів розміру M×N. Далі теорія будується для M=N. Ґраткою будемо називати множину (B)={BxxM}[5].

Через те, що базис B може бути не унікальним, прийнято вибирати як базис ермітову нормальну форму, яка для кожної окремо взятої решітки унікальна. Це означає, що матриця, складена з векторів базису, є верхня трикутна, всі діагональні елементи строго додатні, інші елементи задовольняють 0bij<bii. Цей вид матриць має такі корисні властивості. По-перше, через ортогоналізацію Грама — Шмідта така матриця зводиться до діагонального вигляду з елементами bii на діагоналі. По-друге, визначник такої матриці дорівнює добутку її діагональних елементів, тобто det(B)=i=1nbii[5].

З останнього також випливає важлива властивість цілих ґраток:

Нехай довільні вектори v і w такі, що viwi moddet(B). В цьому випадку v(B) тоді й лише тоді, коли w(B).

Нехай 𝒫(B*)={ixib𝐢* | 0xi<1} — прямий паралелепіпед, де xi — цілочисельні координати, b𝐢* — ортогоналізовані за процесом Грама — Шмідта базисні вектори, i=1,N. Простір N можна замостити такими паралелепіпедами. Тоді для будь-якого vN існує унікальний вектор w𝒫(B*). Такий вектор називають редукованим для вектора vN за модулем B. Його отримують знаходженням відносної позиції v в z+𝒫(B*), де z(B)[5].

Цей вектор можна знайти за таким алгоритмом:

  1. Знайти αi=v,bi*bi*,bi*
  2. Обчислити вектор за формулою w=vαi𝐛𝐢𝒫(B*)[6].

Методологія

У криптосистемах на ґратках ключами є базиси. Нехай B і R — публічний і приватний базиси однієї й тієї ж ґратки =(B)=(R). Відмінність цієї криптосистеми від системи шифрування GGH полягає в оптимальному виборі односторонньої функції. Важливою особливістю функції в криптосистемі Міччанчо є детермінованість. У цьому розділі будується загальний клас функцій вигляду GGH[7].

Клас односторонніх функцій вигляду GGH

Для схеми шифрування GGH одностороння функція набуває вигляду c=Bx+ϵ, де c — шифротекст, x — цілочисельний вектор і ϵ — вектор помилки, завдовжки не більше ρ, 12mini(b𝐢*)ρ=12mini(r𝐢*). Останнє необхідне для того, щоб помилка не створювала сильних спотворень під час обчислення з приватним базисом і, навпаки, для обчислень із публічним. Тут повідомлення m кодується в ϵ, а x вибирається випадково[5].

Сімейство односторонніх функцій GGH-виду fβ,γ, параметризоване алгоритмами γ і β, задовольняє:

  1. β приймає на вхід приватний базис R, а виводить публічний базис B для тієї ж ґратки.
  2. γ отримує B і ϵ, а повертає коефіцієнти точки ґратки x
  3. Тоді fβ,γ відображає множину векторів, коротших від ρ так: fβ,γ(ϵ)=β(𝖱)γ(𝖱,ϵ)+ϵ[5].

Якщо вектор помилки має довжину менше ρ тоді приватний базис R можна використати для знаходження точки Bx, найближчою до fβ,γ(ϵ), і, відповідно, відновлення ϵ (задача знаходження найближчого вектора)[5].

Вибір публічного базису

Нехай відомий «хороший» приватний базис R, тобто за допомогою нього можна розв'язати задачу знаходження найближчого вектора в (R), що те саме — розшифрувати шифротекст. Задача — згенерувати з R такий публічний базис B, щоб мінімізувати в ньому інформацію про R. У звичайній схемі шифрування GGH для знаходження B застосовують набір випадкових перетворень до R. Криптосистема Міччанчо використовує як публічний базис B ермітову нормальну форму, тобто B=HNF(R) (HNF — Hermite Normal Form). Вона унікальна для конкретно заданої ґратки, як сказано вище. Це веде до того, що якщо є якийсь інший базис для цієї ґратки B, то B=HNF(R)=HNF(B). Отже, B містить про R не більше інформації, ніж про B, на чому й ґрунтується безпека цієї криптосистеми[5].

Додання «випадкової» точки ґратки

Далі, потрібно зімітувати додання випадкової точки ґратки Bx. В ідеалі, ця точка повинна вибиратися рівномірно довільно серед усіх точок ґратки. Однак це неможливо ні з практичної, ні з теоретичної точки зору. Майже такий самий результат виходить при використанні редукованого вектора. Вектор помилки ϵ зменшується за модулем публічного базису B, щоб отримати шифротекст c𝒫(B*), замість додавання випадкового вектора. В результаті одностороння функція задається як f(ϵ)=ϵ(modB), де B=HNF(R). Завдяки верхній трикутній формі матриці B ця функція дуже проста з обчислювальної точки зору. Застосовуючи міркування для обчислення редукованого вектора можна знайти формулу xi=ϵij>ibijxjbii, починаючи з xN, що дає унікальну точку в паралелепіпеді 𝒫(B*)[5].

Резюме

Нехай R — приватний базис, причому ρ=12mini(r𝐢*) є відносно великим, B — публічний базис і B=HNF(R). Базис B породжує функцію f(ϵ)=ϵ(modB), яка переводить вектор довжини менше ρ у відповідний B прямий паралелепіпед 𝒫(B*). Ключові моменти:

  1. Навіть якщо спочатку f(ϵ) близька до точки ϵ, після операції редукції виходить вектор, близький до інших точок ґратки.
  2. Щоб відновити ϵ за f(ϵ), необхідно розв'язати задачу знаходження найближчого вектора, для якої доведено NP-складність. Тому відновити ϵ, маючи тільки B, майже неможливо, навіть для квантових комп'ютерів. Однак вона ефективно розв'язується, якщо відомий базис R.
  3. Найближча точка до f(ϵ) — центр паралелепіпеда, в якому міститься f(ϵ), а його знайти легко, знаючи базис R[5].

Теоретичний аналіз

Безпека

Нова функція цієї криптосистеми настільки ж безпечна, як функція в схемі шифрування GGH. Така теорема стверджує, що наведена вище функція, як мінімум, не гірша від будь-якої іншої функції вигляду GGH[5]:

Для будь-яких функцій

β,γ

і для будь-якого алгоритму, який для

f(ϵ)

знаходить про

ϵ

якусь часткову інформацію з ненульовою ймовірністю, існує ефективний алгоритм зі входом

fβ,γ(ϵ)

, здатний відновити таку ж інформацію з такою ж імовірністю успіху[5].

Доведення: нехай

A

 — алгоритм здатний зламати

f

. Дано публічний базис

B

=

β(ϵ)

та шифротекст

c=Bγ+ϵ

. Алгоритм злому повинен спробувати знайти якусь інформацію про

ϵ

. По перше,

B=HNF(B)

і

c=c(modB)

. З теоретичних результатів у попередньому розділі випливає, що

B=HNF(R)

і

c=Bγ+ϵ(modB)=ϵ(modB)

. Тому

B

і

c

мають правильний розподіл. Застосовуючи до них алгоритм

A

, отримуємо твердження теореми[5].

Асимптотичні оцінки пам'яті

Нехай для приватного ключа виконується |rij|<poly(N), тоді розмір, займаний ключем, оцінюється O(N2 lgN2). Використовуючи нерівність Адамара, а також те, що для публічного базису та шифротексту GGH системи виконуються оцінки O(N2 lg(det()))=O(N2 lg(N)) і O(N lg(det()))=O(N lg(N)), випливає, що оцінки для публічного базису й шифротексту нашої системи O(N2 lg(N)) і O(N lg(N))[5][7].

Асимптотичні оцінки часу виконання

Теоретично, очікується прискорення роботи алгоритму порівняно з GGH із двох причин (емпіричні результати наведено нижче). По-перше, час шифрування для GGH систем залежить від розміру публічного ключа. Теоретичні оцінки на займану ключем пам'ять свідчать про її зменшення, отже й про прискорення шифрування. При цьому час роботи GGH можна порівняти з часом роботи схеми RSA. По-друге, для генерування ключа початковий алгоритм застосовує алгоритм Ленстри — Ленстри — Ловаса до матриць великої розмірності з великими значеннями елементів, тоді як система Міччанчо використовує досить простий алгоритм знаходження ермітової нормальної форми. Для дешифрування використовується алгоритм Бабая[8], з деякими втратами пам'яті та точності, але поліпшенням за часом його можна замінити простішим алгоритмом округлення[9], проте в цій частині прискорення за часом виконання не очікується.

Емпірична оцінка безпеки системи

На практиці для безпеки цієї системи потрібно N782. За припущення, що покращення часу досягає максимальних асимптотичних оцінок, найменше необхідне N має бути більше 2093. Далі було показано, що публічний ключ має бути не менше ніж 1 МБ. Більш того, час створення ключа займає порядку доби. Процедура шифрування справді досить швидка. Однак дешифрування нестабільне через алгоритм Бабая[8]. Це можна подолати, але тоді вона займатиме 73 хвилини для N=800 не включаючи ортогоналізації. Якщо виконати цей крок заздалегідь, то до витрат пам'яті додається 4.8 МБ для тієї ж розмірності. З цих результатів випливає, що криптосистема Міччанчо незастосовна на практиці[1][2][3][4].

Примітки

Шаблон:Примітки

Література