Interested Article - Криптосистема Миччанчо

Криптосистема Миччанчо криптосистема , основанная на схеме шифрования GGH , была предложена в 2001 году профессором Университета Калифорнии в Сан-Диего Даниелем Миччанчо.

Схему шифрования GGH опирается на криптографию на решётках , которая считается перспективной для использования в постквантовых системах (поскольку криптосистемы, использующие факторизацию целых чисел , дискретное логарифмирование , дискретное логарифмирование на эллиптических кривых могут быть эффективно взломаны квантовым компьютером при применении алгоритмом Шора ). Криптосистема Миччанчо, по факту, является улучшением схемы шифрования GGH , с уменьшением требований к размеру ключа и шифротекста в N {\displaystyle N} раз без ухудшения безопасности системы, где N {\displaystyle N} размерность решётки. Для типичных криптосистем составляет несколько сотен. В 2004 году Кристоф Людвиг эмпирически показал, что для безопасного использования требуется N 782 {\textstyle N\geq 782} , к тому же, создание ключа и его дешифровка занимает непозволительно много времени, а сам размер ключа должен быть больше 1 МБ . По этой причине данная криптосистема не может быть использована на практике .

Основные понятия и обозначения

Пусть B = { b 1 , . . . , b N } {\displaystyle \mathrm {B} =\{\mathbf {b} _{1},...,\mathbf {b} _{N}\}} , где b i R M , i = 1 , N ¯ {\displaystyle \mathbf {b} _{i}\in \mathbb {R} ^{M},i={\overline {1,N}}} — набор из N {\displaystyle N} линейно независимых векторов и компоненты каждого из векторов представляют собой целые числа, а B {\displaystyle B} — матрица из этих векторов размера M × N {\displaystyle M\times N} . Далее, теория строится для M = N {\displaystyle M=N} . Решёткой будем называть множество L ( B ) = { B x x Z M } {\displaystyle {\mathcal {L}}(\mathrm {B})=\{\mathrm {B} x\mid x\in \mathbb {Z} ^{M}\}} .

В силу того, что базис B {\displaystyle \mathrm {B} } может быть не уникальным, принято выбирать в качестве базиса эрмитову нормальную форму , которая для каждой отдельно взятой решётки уникальна. Это значит, что матрица, составленная из векторов базиса, есть верхняя треугольная , все диагональные элементы строго положительны, а остальные элементы удовлетворяют 0 b i j < b i i {\displaystyle 0\leq b_{ij}<b_{ii}} . Данный вид матриц обладает следующими полезными свойствами. Во-первых, через ортогонализацию Грама — Шмидта такая матрица приводится к диагональному виду с элементами b i i {\displaystyle b_{ii}} на диагонали. Во-вторых, детерминант такой матрицы равен произведению её диагональных элементов, то есть det ( B ) = i = 1 n b i i {\textstyle \det(\mathrm {B})=\prod _{i=1}^{n}b_{ii}} .

Из последнего также следует важное свойство целочисленных решёток:

Пусть произвольные вектора v {\displaystyle v} и w {\displaystyle w} таковы, что v i w i mod det ( B ) {\displaystyle v_{i}\equiv w_{i}\ \mod \det(\mathrm {B})} . В этом случае v L ( B ) {\displaystyle v\in {\mathcal {L}}(\mathrm {B})} тогда и только тогда, когда w L ( B ) {\displaystyle w\in {\mathcal {L}}(\mathrm {B})} .

Пусть P ( B ) = { i x i b i | 0 x i < 1 } {\textstyle {\mathcal {P}}(\mathrm {B} ^{*})=\{\sum _{i}x_{i}\mathbf {b_{i}^{*}} \ |\ 0\leq x_{i}<1\}} прямой параллелепипед , где x i {\displaystyle x_{i}} — целочисленные координаты , b i {\displaystyle \mathbf {b_{i}^{*}} } — ортогонализованные по процессу Грама — Шмидта базисные векторы, i = 1 , N ¯ {\displaystyle i={\overline {1,N}}} . Пространство R N {\displaystyle \mathbb {R} ^{N}} может быть замощено такими параллелепипедами. Тогда для любого v Z N {\displaystyle v\in \mathbb {Z} ^{N}} существует уникальный вектор w P ( B ) {\displaystyle w\in {\mathcal {P}}(\mathrm {B} ^{*})} . Такой вектор называется редуцированным для вектора v Z N {\displaystyle v\in \mathbb {Z} ^{N}} по модулю B {\displaystyle \mathrm {B} } . Он получается нахождением относительной позиции v {\displaystyle v} в z + P ( B ) {\displaystyle z+{\mathcal {P}}(\mathrm {B} ^{*})} , где z L ( B ) {\displaystyle z\in {\mathcal {L}}(\mathrm {B})} .

Данный вектор может быть найден по следующему алгоритму :

  1. Найти α i = v , b i b i , b i {\textstyle \alpha _{i}={\frac {\langle v,b_{i}^{*}\rangle }{\langle b_{i}^{*},b_{i}^{*}\rangle }}}
  2. Вычислить искомый вектор по формуле w = v α i b i P ( B ) {\displaystyle w=v-\lfloor \alpha _{i}\rfloor \mathbf {b_{i}} \in {\mathcal {P}}(\mathrm {B} ^{*})} .

Методология

В криптосистемах на решётках ключами являются базисы . Пусть B {\displaystyle \mathrm {B} } и R {\displaystyle \mathrm {R} } — публичный и приватный базисы одной и той же решётки L = L ( B ) = L ( R ) {\displaystyle {\mathcal {L}}={\mathcal {L}}(\mathrm {B})={\mathcal {L}}\mathrm {(} R)} . Отличие данной криптосистемы от системы шифрования GGH заключается в более оптимальном выборе односторонней функции . Важная особенность функции в криптосистеме Миччанчо — детерминированность . В следующем разделе строится общий класс функций вида GGH.

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

Для схемы шифрования GGH односторонняя функция принимает вид c = B x + ϵ {\displaystyle c=\mathrm {B} x+\epsilon } , где c {\displaystyle c} шифротекст , x {\displaystyle x} — целочисленный вектор и ϵ {\displaystyle \epsilon } — вектор ошибки длиной не более ρ {\displaystyle \rho } , 1 2 min i ( b i ) ρ = 1 2 min i ( r i ) {\displaystyle {\frac {1}{2}}\min _{i}(\mathbf {b_{i}^{*}})\ll \rho ={\frac {1}{2}}\min _{i}(\mathbf {r_{i}^{*}})} . Последнее необходимо для того, чтобы ошибка не создавала сильных искажений при вычислении с приватным базисом и, наоборот, для вычислений с публичным. Предполагается, что сообщение m {\displaystyle m} кодируется в ϵ {\displaystyle \epsilon } , а x {\displaystyle x} выбирается случайно .

Семейство односторонних функций GGH-вида f β , γ {\displaystyle f_{\beta ,\gamma }} , параметризованное алгоритмами γ {\displaystyle \gamma } и β {\displaystyle \beta } , удовлетворяет:

  1. β {\displaystyle \beta } принимает на вход приватный базис R {\displaystyle \mathrm {R} } , а выводит публичный базис B {\displaystyle \mathrm {B} } для той же решётки.
  2. γ {\displaystyle \gamma } получает B {\displaystyle \mathrm {B} } и ϵ {\displaystyle \epsilon } , а возвращает коэффициенты точки решётки x {\displaystyle x}
  3. Тогда f β , γ {\displaystyle f_{\beta ,\gamma }} отображает множество векторов короче ρ {\displaystyle \rho } следующим образом: f β , γ ( ϵ ) = β ( R ) γ ( R , ϵ ) + ϵ {\displaystyle f_{\beta ,\gamma }(\epsilon)=\beta ({\mathsf {R}})\gamma ({\mathsf {R}},\epsilon)+\epsilon }

Если вектор ошибки имеет длину меньше ρ {\displaystyle \rho } , тогда приватный базис R {\displaystyle \mathrm {R} } может быть использован для нахождения точки B x {\displaystyle \mathrm {B} x} , ближайшей к f β , γ ( ϵ ) {\displaystyle f_{\beta ,\gamma }(\epsilon)} , и, соответственно, восстановления ϵ {\displaystyle \epsilon } ( задача нахождения ближайшего вектора ) .

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

Пусть известен «хороший» приватный базис R {\displaystyle \mathrm {R} } , то есть с помощью него возможно решить проблему задачу нахождения ближайшего вектора в L ( R ) {\displaystyle {\mathcal {L}}\mathrm {(} R)} , что то же самое — расшифровать шифротекст . Задача — сгенерировать из R {\displaystyle \mathrm {R} } такой публичный базис B {\displaystyle \mathrm {B} } , чтобы минимизировать в нём информацию об R {\displaystyle \mathrm {R} } . В обычной схеме шифрования GGH для нахождения B {\displaystyle \mathrm {B} } применяется набор случайных преобразований к R {\displaystyle \mathrm {R} } . Криптосистема Миччанчо использует в качестве публичного базиса B {\displaystyle \mathrm {B} } эрмитову нормальную форму, то есть B = H N F ( R ) {\displaystyle \mathrm {B} =HNF(\mathrm {R})} (HNF — Hermite Normal Form). Она уникальна для конкретно заданной решётки, как уже говорилось выше . Это ведёт к тому, что если есть какой-то другой базис для данной решётки B {\displaystyle \mathrm {B} '} , то B = H N F ( R ) = H N F ( B ) {\displaystyle \mathrm {B} =HNF(\mathrm {R})=HNF(\mathrm {\mathrm {B} '})} . Значит, B {\displaystyle \mathrm {B} } содержит об R {\displaystyle \mathrm {R} } не больше информации, чем о B {\displaystyle \mathrm {B} '} , на чём и базируется безопасность данной криптосистемы .

Прибавление «случайной» точки решётки

Далее, требуется сымитировать прибавление случайной точки решётки B x {\displaystyle \mathrm {B} x} . В идеале, эта точка должна выбираться равномерно произвольно среди всех точек решётки. Однако это невозможно ни с практической, ни с теоретической точки зрения. Почти такой же результат получается при использовании редуцированного вектора . Вектор ошибки ϵ {\displaystyle \epsilon } уменьшается по модулю публичного базиса B {\displaystyle \mathrm {B} } , чтобы получить шифротекст c P ( B ) {\displaystyle c\in {\mathcal {P}}(\mathrm {B} ^{*})} , вместо прибавления случайного вектора . В итоге односторонняя функция задаётся как f ( ϵ ) = ϵ ( mod B ) {\displaystyle f(\epsilon)=\epsilon {\pmod {\mathrm {B} }}} , где B = H N F ( R ) {\displaystyle \mathrm {B} =HNF(\mathrm {R})} . Благодаря верхней треугольной формы матрицы B {\displaystyle \mathrm {B} } данная функция очень проста с вычислительной точки зрения. Применяя рассуждения для вычисления редуцированного вектора, может быть найдена формула x i = ϵ i j > i b i j x j b i i {\displaystyle x_{i}=\lfloor {\frac {\epsilon _{i}-\sum _{j>i}b_{ij}x_{j}}{b_{ii}}}\rfloor } , начиная с x N {\displaystyle x_{N}} , что даёт уникальную точку в параллелепипеде P ( B ) {\displaystyle {\mathcal {P}}(\mathrm {B} ^{*})} .

Резюме

Пусть R {\displaystyle \mathrm {R} } — приватный базис, причём ρ = 1 2 min i ( r i ) {\displaystyle \rho ={\frac {1}{2}}\min _{i}(\mathbf {r_{i}^{*}})} является относительно большим, B {\displaystyle \mathrm {B} } — публичный базис и B = H N F ( R ) {\displaystyle \mathrm {B} =HNF(\mathrm {R})} . Базис B {\displaystyle \mathrm {B} } порождает функцию f ( ϵ ) = ϵ ( mod B ) {\displaystyle f(\epsilon)=\epsilon {\pmod {\mathrm {B} }}} , которая переводит вектора длины меньше ρ {\displaystyle \rho } в соответствующий B {\displaystyle \mathrm {B} } прямой параллелепипед P ( B ) {\displaystyle {\mathcal {P}}(\mathrm {B} ^{*})} . Ключевые моменты:

  1. Даже если изначально f ( ϵ ) {\displaystyle f(\epsilon)} близка к точке ϵ {\displaystyle \epsilon } , после операции редукции получается вектор, близкий к другим точкам решётки.
  2. Чтобы восстановить ϵ {\displaystyle \epsilon } по f ( ϵ ) {\displaystyle f(\epsilon)} , необходимо решить задачу задачу нахождения ближайшего вектора , для которой доказана NP-сложность. Поэтому восстановить ϵ {\displaystyle \epsilon } , имея только B {\displaystyle \mathrm {B} } , почти невозможно, даже для квантовых компьютеров. Однако она эффективно решается, если известен базис R {\displaystyle \mathrm {R} } .
  3. Ближайшая точка к f ( ϵ ) {\displaystyle f(\epsilon)} — центр параллелепипеда, в котором содержится f ( ϵ ) {\displaystyle f(\epsilon)} , а он находится легко, зная базис R {\displaystyle \mathrm {R} } .

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

Безопасность

Новая функция данной криптосистемы настолько же безопасна, насколько функция в схеме шифрования GGH . Следующая теорема утверждает, что определённая выше функция, как минимум не хуже любой другой GGH-вида функции .

Имеет место следующее утверждение: для любых функций β , γ {\displaystyle \beta ,\gamma } и для любого алгоритма, который для f ( ϵ ) {\displaystyle f(\epsilon)} находит об ϵ {\displaystyle \epsilon } какую-то частичную информацию с ненулевой вероятностью, существует эффективный алгоритм со входом f β , γ ( ϵ ) {\displaystyle f_{\beta ,\gamma }(\epsilon)} способный восстановить такую же информацию с такой же вероятностью успеха .

Доказательство: пусть A {\displaystyle A} — алгоритм способный взломать f {\displaystyle f} . Даны публичный базис B {\displaystyle \mathrm {B} } = β ( ϵ ) {\displaystyle \beta (\epsilon)} и шифротекст c = B γ + ϵ {\displaystyle c=\mathrm {B} \gamma +\epsilon } . Алгоритма взлома должен попытаться найти какую-нибудь информацию об ϵ {\displaystyle \epsilon } . Во-первых, B = H N F ( B ) {\displaystyle \mathrm {B} '=HNF(\mathrm {B})} и c = c ( mod B ) {\displaystyle c'=c{\pmod {B'}}} . Из теоретических результатов в предыдущем разделе следует, что B = H N F ( R ) {\displaystyle \mathrm {B} '=HNF(\mathrm {R})} и c = B γ + ϵ ( mod B ) = ϵ ( mod B ) {\displaystyle c'=\mathrm {B} \gamma +\epsilon {\pmod {B'}}=\epsilon {\pmod {B'}}} . Поэтому B {\displaystyle B'} и c {\displaystyle c'} имеют правильное распределение. Применяя к ним алгоритм A {\displaystyle A} , получается утверждение теоремы .

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

Пусть для приватного ключа выполняется | r i j | < p o l y ( N ) {\displaystyle |r_{ij}|<poly(N)} , тогда размер, занимаемый ключом, оценивается O ( N 2 lg N 2 ) {\displaystyle O(N^{2}\ \lg N^{2})} . Используя неравенство Адамара , а также то, что для публичного базиса и шифротекста GGH системы выполняются оценки O ( N 2 lg ( det ( L ) ) ) = O ( N 2 lg ( N ) ) {\displaystyle O(N^{2}\ \lg(\det({\mathcal {L}})))=O(N^{2}\ \lg(N))} и O ( N lg ( det ( L ) ) ) = O ( N lg ( N ) ) {\displaystyle O(N\ \lg(\det({\mathcal {L}})))=O(N\ \lg(N))} , следует, что оценки на публичный базис и шифротекст нашей системы O ( N 2 lg ( N ) ) {\displaystyle O(N^{2}\ \lg(N))} и O ( N lg ( N ) ) {\displaystyle O(N\ \lg(N))} .

Асимптотические оценки времени исполнения

Теоретически, ожидается ускорение работы алгоритма по сравнению с GGH по двум причинам (эмпирические результаты приведены ниже). Во-первых, время шифрования для GGH систем сильно зависит от размера публичного ключа. Теоретические оценки на занимаемую ключом память указывают на её уменьшение, а следовательно и на ускорение шифрования . При этом время работы GGH сравнимо со временем работы схемы RSA . Во-вторых, для генерации ключа исходный алгоритм применяет алгоритм Ленстры — Ленстры — Ловаса к матрицам большой размерности с большими значения элементов, в то время как система Миччанчо использует достаточно простой алгоритм нахождения эрмитовой нормальной формы. Для дешифровки используется алгоритм Бабая , с некоторыми потерями по памяти и точности, но улучшением по времени его можно заменить на более простой алгоритм округления , однако в данной части ускорения по времени исполнения не ожидается.

Эмпирическая оценка безопасности системы

На практике для безопасности данной системы требуется N 782 {\displaystyle N\geq 782} . При предположении, что улучшение времени достигает максимальных асимптотических оценок , минимальное необходимое N {\displaystyle N} должно быть больше 2093 {\displaystyle 2093} . Далее было показано, что публичный ключ должен быть не менее 1MB. Более того, время генерации ключа занимает порядка дня. Процедура шифрования, действительно довольно быстра. Однако дешифровка нестабильна из-за . Это можно преодолеть, но тогда она будет занимать 73 минуты для N = 800 {\displaystyle N=800} , не включая ортогонализацию . Если выполнить этот шаг заранее, то к расходам на память прибавляется 4.8 MB для той же размерности. Из этих результатов следует, что криптосистема Миччанчо неприменима на практике .

Примечания

  1. Christoph Ludwig. (англ.) // IACR Cryptology : Article. — 2004.
  2. T. Plantard, M. Rose, W. Susilo. Improvement of Lattice-Based Cryptography Using CRT. — Quantum Communication and Quantum Networking: First International Conference. — 2009. — С. 275—282. — ISBN 9783642117305 .
  3. M. Rose, T. Plantard, F. Susilo. . — Information Security Practice and Experience: 7th International Conference. — 2011. — С. 152—167. — ISBN 9783642210303 . 22 февраля 2019 года.
  4. Thomas Richard Rond. (неопр.) . Master Thesis (2016).
  5. Daniele Micciancio. (англ.) // International Cryptography and Lattices Conference. — 2001. — С. 126—145 . — doi : . 20 июля 2020 года.
  6. Steven Galbraith. (англ.) // Cambridge University Press : Paper. — 2012. 12 февраля 2020 года.
  7. Oded Goldreich, Shafi Goldwasser and Shai Halevi. (англ.) // Advances in Cryptology - CRYPTO. — 1997. 16 июля 2019 года.
  8. Oded Regev. (англ.) : Lattices in Computer Science. — 2004. 1 ноября 2020 года.
  9. Noah Stephens-Davidowitz. (англ.) : NYU, Lattices mini-course. — 2016. 29 октября 2019 года.

Литература

  • Daniele Micciancio, Oded Regev // Post Quantum Cryptography. — 2009.
  • Daniele Micciancio // Lecture notes in Сomputer Science. — 2001.
  • Christoph Ludwig // IACR Cryptology. — 2004.

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