■ ИСПОЛЬЗОВАНИЕ ОРТОГОНАЛИЗАЦИИ ГРАМА-ШМИДТА В АЛГОРИТМЕ ПРИВЕДЕНИЯ БАЗИСА РЕШЕТКИ ДЛЯ ПРОТОКОЛОВ БЕЗОПАСНОСТИ
Пискова А.В.Менщиков А.А.2, Коробейников А.Г.3
Информационные технологии в современном мире имеют огромное значение и широко применяются в различных областях. Информация, обрабатывающаяся в компьютерных сетях, должна быть хорошо защищена от широкого множества угроз. Это требует непрерывного совершенствования механизмов защиты информации. Согласно алгоритму Шора, с наступлением эры квантовых компьютеров, их огромная вычислительная мощность может вызвать сбой и компрометацию многих, используемых сегодня криптографических схем. Возникает актуальность поиска методов, устойчивых к квантовому криптоанализу. Одним из альтернативных подходов для решения данной проблемы является построение схем на основе сложности определенных свойств решеток, которые, как предполагается, будут неразрешимыми для квантовых компьютеров. Благодаря выдающимся научным достижениями в последние годы схемы на основе теории решеток уже стали использоваться на практике и рассматриваются как очень жизнеспособная альтернатива теоретико-числовой криптографии. В данной статье изучаются практические реализации алгоритмов решеток, которые используются при построении пост-квантовых протоколов безопасности. Проведен подробный анализ процесса ортогонализации Гоама-Шмидта, являющегося одним из базовых и наиболее важных составляющих алгоритмов на решетках, примеры расчетов и вычислений, а также приводится его программная реализация. Дополнительно рассматривается алгоритм Ленстра-Ленстра-Ловаса приведения базиса решетки и его программная реализация, изучается его эффективность, точностные характеристики данного метода при решении задачи нахождения базиса, режимы и скорость работы в зависимости от размерности решетки, а также ключевые сферы и его практическое применение в современных протоколах безопасности.
Ключевые слова: теория решеток, постквантовая криптография, целочисленные решетки, приведение базиса решетки, алгоритм Ленстра-Ленстра-Ловаса, LLL приведение решетки, квантовый компьютер, QR-разложение, ортогонализация, алгоритм Грама-Шмидта, схема NTRUEncrypt, шифрование.
Введение
Почти все популярные на сегодняшний день криптографические схемы основываются на сложности классических трудных задач (факторизации, дискретного логарифмирования) [1], стойкость которых может быть серьезно ослаблена в случае достижений в классической криптоаналитике или прогресса в развитии квантовых компьютеров. Также многие криптографические алгоритмы уязвимы к атаке «человек посередине». Алгоритмы теории решеток с использованием базисов гораздо более устойчивы к атакам с помощью квантовых компьютеров, вследствие чего являются достойной заменой современным алгоритмам асимметричной криптографии.
Экспоненциальную точность у = в привидении базиса решетки к (5 — ЬЫУре-дуцированному базису дает алгоритм Ленстра-Ленстра-Ловаса (ЬЬЬ), являющийся полиноми-
альным по временной сложности [2, с.120]. Этот алгоритм был впервые представлен в работе [3] в 1982 году учеными А. Ленстрой, Х. Ленстрой и Л. Ловасом. Далее рассмотрим его реализацию и зависимость времени его выполнения от размерности N решетки Ь.
Приведение базиса решетки
Введем некоторые определения.
Определение 1. Решетка - это совокупность точек в п-мерном пространстве с периодической структурой [4]. Более точно решетку Ь можно определить, как абелеву подгруппу, заданную в пространстве Ят.
Пусть базис решетки В = {Ь±,... Ьп} задан линейно независимыми векторами, тогда под решеткой будем понимать множество целочисленных линейных комбинаций этих векторов
1 Пискова Антонина Владиславовна, Университет ИТМО, Санкт-Петербург, [email protected].
2 Менщиков Александр Алексеевич, Университет ИТМО, Санкт-Петербург, [email protected].
3 Коробейников Анатолий Григорьевич, доктор технических наук, профессор, Университет ИТМО, Санкт-Петербург, [email protected].
фх........Ьп) = {ЕГ=1а£Ь£: ...а^ег»} (1)
Если ранг решетки (п) и размерность (т) равны, то решетка будет называться полноранговой.
Определение 2. Матрицей Грама называется матрица
(ЬМ (ЬМ......{ЬМ^
_ ) 0>М (ЪМ......(ЪМ
г =
(2)
<0>П> <М Ь2)......(ь„, Ьп) у
Определение 3. Определителем решетки на-
зывается число
= Л/ГСЬ1......Ьп) ,
(3)
равное объему фундаментального параллелепипеда, натянутого на векторы (Ьх......Ьп) [2]
(см. рис. 1).
X X х х X XX X X X X X X X X X
х х X х X X X X X X X
X X X X
у/^
X
Рис. 1. Фундаментальный параллелепипед, образованный базисом
Заметим, что если т = п, то ёе! Ь= ёе^, . . . , Ь„), где (Ьь . . . , Ьд) — матрица, составленная из координат векторов Ъ1, ... , Ъп в некотором ортонорми-рованном базисе. Базис решетки не единственен, но легко видеть, что матрица перехода от одного базиса решетки к произвольному другому унимо-дулярна, т. е. ее определитель равен ±1, поэтому ёе! Л не зависит от выбора базиса [5].
Ортогонализация Грама-Шмидта
Процесс ортогонализации является ключевой частью процесса приведения базиса решетки. В алгоритме Ш ОР-разложение матрицы происходит с помощью рекуррентного алгоритма Грама-Шмидта. Напомним основные этапы этого процесса (см. рис.2).
Пусть Ъ1,... , Ъп линейно независимые векторы в Ят . Если векторы Ъ1, ... , Ъп определяются соотношениями
{Ъ1Ъ}) = {ЬЩ)
где 14] =
_ (ЪрЪр
(ь),ь]) '
1<}<Ь<п
(4)
(5)
(6)
тогда = 0 для всех ] < I, то есть векторы
Ь1.....Ь^ попарно ортогональны.
Далее приведен числовой пример работы процесса ортогонализации Грама-Шмидта:
1. Дана решетка с базисами Ъ1 = (5, 8, 11) и Ъ2 = (13, 9, 6), Ъз = (3, 14, 1).
— Ь\ Ь2
Рис. 2. Процесс ортогонализации Грама-Шмидта
/5 13 3 \ А = 8 9 14 \11 6 1 / 2. Вычислим длину векторов Ь1 , Ь2 и Ь3 по формуле ||ЬП|| = Vх2 + У2 + г2 (7)
\\Ь1\\= Т^Тё^Л!2 « 14,49,
\\Ь2\\= Vl32 + 92 + 62 « 16,91,
||Ь31| = 732 + 142 + I2 « 14,35.
Примем Ь^ = Ь±.
Вычислим коэффициенты ^ по формуле (6):
_ (Ь2, Щ) _ <13 * 5 + 9 * 8 + 6 * 11) _ {203) М21 ~ (ь;,ь;) ~ <5*5 + 8*8 + 11*11) ~ <210);
<Ь3, Ъ*г) _ <3 * 5 + 14 * 8 + 1 * 11) _ <138) {Ъ1,Ъ1) ~ <5 * 5 + 8 * 8 + 11 * 11) ~ <210)'
<Ь3, Ь*2) _ <3 * 13 + 14 * 9 + 1 * 6) _ <171) (Ь*2,Ь*2) ~ <13*13 + 9*9 + 6*6) ~ <286)
Вычислим базисы Ъ2 и Ь3 по формуле (5):
/ 203 203 203 ч
¿2 = Ь2 - = (13 - —— * 5; 9- —- * 8; 6- —- * 11) = 2 2 1 V 210 210 210 7
М31 =
М 32 =
/343 133 V4T' 105'
973ч 210/
(8.1667; 1.2667; -4.6334);
I 138 171 343 = h~ feA* - ^32^2=^3 _ ^Yo * 5_ 286 * 12"
171 343
14 ■
138 171 133 138 171 9734 _
_210*8_ 286 * 105'1_210*11_ 286 *_2Т0/ "
434595 47961 41541
84084 ' 6006 ' 120127 (-5.1685; 7.9855; -3.4583).
Вычислим длину векторов Ь2 и й3 по формуле (7):
||bil| = V52 + 82 + ll2 « 14,4914,
iwil-J© +(-S) -w«.
11*84 - - ад«"-
Можно видеть, что векторы Ь2 и й3 оказались короче исходных векторов. Ниже приведен исходный код на языке Python для выполнения расчетов процесса ортогонализации Грама-Шмидта. Данный алгоритм позволяет ортогонализовать вектора матрицы размера n*n в зависимости от исходного параметра N и количества координат базисных векторов b.
import math
from itertools import combinations N = 3
b = [ [5, 8, 11], [13, 9, 6], [3, 14, 1] ] assert len(b) == N def vector length(v):
11 11 11
Return vector length
11 11 11
return math.sqrt(sum([v[i]**2 for i in range(N)])) def vector string(v):
11 11 11
Print vector components
11 11 11
return ', '.join(map(lambda x: "%0.4f" % x, v)) if name == " main ":
for i, v in enumerate(b):
print "Vector #%d length: %0.4f" % (i + 1, vector_length(v))
m = {}
for i in range(N):
for j in range(i):
vector i = b[i] vector_j = b[ j ]
v = sum([c[0]*c[1] for c in zip(vector i, vector j)]) u = sum([c[0]*c[1] for c in zip(vector j, vector j)]) m[(i, j)] = v*1.0/u
print "Coefficient (%d,%d) = %d/%d = %0.4f" % (i+1, j+1, v, u, v*1.0/u)
b_new = [b[0]]
print "b_1* = b_1 = (%s)" % (vector_string(b[0])) for i in range(1, N):
print "b_%d* = b_%d" % (i+1, i+1), s = ""
for j in range(i):
s += "- m_%d%d * b_%d* " % (i+1, j+1, j+1)
vector new = [b[i][a] for a in range(N)] for a in range(N):
for j in range(i):
vector new[a] -= m[(i, j)] * b new[j][a] b new.append(vector new)
print "%s = (%s)" % (s, vector string(vector new))
for i, v in enumerate(b new):
print "New vector #%d length: %0.4f" % (i + 1, vector_length(v))
Результат выполнения программы
Vector #1 length: 14.4914
Vector #2 length: 16.9115
Vector #3 length: 14.3527
Coefficient (2,1) = 203/210 = 0.9667
Coefficient (3,1) = 138/210 = 0.6571
Coefficient (3,2) = 171/286 = 0.5979
b_1* = b_1 = (5.0000, 8.0000, 11.0000)
b_2* = b_2 - m_21 * b_1* = (8.1667, 1.2667, -4.6333)
b_3* = b_3 - m_31 * b_1* - m_32 * b_2* = (-5.1686, 7.9855, -3.4583)
New vector #1 length: 14.4914
New vector #2 length: 9.4745
New vector #3 length: 10.1214
Как можно видеть, результаты обоих вычислений совпадают. Время, затраченное на выполнение данного расчета - 0.0000350 сек. Этот показатель велик по сравнению с теми, что будут освещены в следующем разделе, поскольку реализация алгоритма Грама-Шмидта выполнена непосредственно на языке Python, в то время как алгоритм LLL реализован с использованием пред-компилированных модулей из библиотеки NumPy, которые выполняются существенно быстрее.
Алгоритм Ленстра-Ленстра-Ловаса
Алгоритм Ленстра-Ленстра-Ловаса приведения базиса решетки является довольно популярным на сегодняшний день и в открытом доступе можно найти некоторые его модификации. В данной работе использована реализация, основанная на открытых математических библиотеках из проектов [6] и [7].
Для оценки зависимости времени выполнения алгоритма от размерности решетки N (См. Рис. 3) были взяты матрицы размерностью от 1
до 100 с шагом 1 при стократной точности вычислений. В расчет были взяты матрицы, состоящие из случайных рациональных значений в диапазонах от -100 до 0, от -100 до 100, от 0 до 100, а также матрицы рациональных чисел в диапазоне от -0.0000001 до 0.0000001 округлением до 7 знаков после запятой. Все вычисления проводились на персонал ьном компьютере с процессором Intel Core ¡5-3317U.
Из графика видно, что время, затраченное на выполнение алгоритма полиномиально зависит от размерности решетки. Следует также отметить, что с ростом размерности решетки, рост необходимой точности представления чисел с плавающей запятой невысок для ансамблей случайных решеток.
Таким образом, современные реализации алгоритма являются достаточно эффективными по времени, использованию памяти и процессорных ресурсов. Скорость выполнения вычислений позволяет считать матрицы больших размерностей в широким наборе рациональных значений.
Применение алгоритма LLL
Первоначально авторы работы [3] А. Ленстра, Х. Ленстра и Л. Ловас использовали LLL-алгоритм для факторизации многочленов с целыми коэффициентами. Также алгоритм был взят в основу для построения схемы NTRUEncrypt, которая, в свою очередь, была создана как альтернатива системам, основанным на задачах факторизации, дискретного логарифмирования и дискретного логарифмирования на эллиптических кривых [8]. Кроме того, различные реализации LLL-алгоритма были использованы в технологии MIMO, в крос-сплатформенных системах компьютерной алгебры GAP, Magma, Maple, Sage и других.
Выводы
Таким образом, в работе был выполнен анализ алгоритма Ленстра-Ленстра-Ловаса приведения базиса решетки, произведен расчет процесса ортогонализации Грама-Шмидта и выполнена соответствующая программная реализация. Приведены точностные характеристики метода при решении задачи нахождения базиса в целочисленной решетке. Рассмотрены сферы применения данного алгоритма. Результаты, полученные в ходе работы, могут найти важное практическое применение в сферах информационного обмена в постквантовом мире.
Литература:
1. Пискова А.В. Разработка алгоритма электронной цифровой подписи, основанного на задачах факторизации и дискретного логарифмирования на эллиптических кривых // В сборнике: Сборник трудов IV Всероссийского конгресса молодых ученых Университет ИТМО, 2015. С. 319-322.
2. Усатюк В.С. Реализация параллельных алгоритмов ортогонализации в задаче поиска кратчайшего базиса целочисленных решеток // Прикладная дискретная математика. Приложение. 2012. № 5. С. 120-122.
3. Lenstra A. K., Lenstra H.W., Lov'asz L. Factoring Polynomials with Rational Coefficients // Math. Annalen, 1982, vol. 261, pp. 515-534.
4. Howe, J., Poppelmann, T., O'Neill, M., O'Sullivan, E., Guneysu, T.: Practical Lattice - based Digital Signature Schemes. ACM Transactions on Embedded Computing Systems (ACM T EMBED COMPUT S). 14(3), 1-24 (2015)
5. Кузьмин О.В., Усатюк В.С. Параллельные алгоритмы вычисления локальных минимумов целочисленных решеток // Программные продукты и системы. 2015. № 1 (109). С. 55-62.
6. NumPy, URL: http://www.numpy.org (дата обращения: 25.01.16).
7. Kwant Project, URL: http://kwant-project.org (дата обращения: 25.01.16).
8. Пискова А.В. Разработка комбинированной схемы аутентификации информации, основанной на задачах факторизации и дискретного логарифмирования на эллиптических кривых. Аннотированный сборник научно-исследовательских выпускных квалификационных работ специалистов Университета ИТМО / Главный редактор Проректор по НР д.т.н., профессор В.О. Никифоров. - СПб: Университет ИТМО, 2015. - C.39-42.
Рецензент: Исмагилов Валерий Сарварович, кандидат физико-математических наук, [email protected]
USE OF GRAM-SHMIDT ORTHOGONALIZATION IN THE LATTICE BASIS REDUCTION ALGORITHM
FOR SECURITY PROTOCOLS
Piskova A.V.4, Menshchikov A.A.5, Korobeynikov A.G.6
Information technologies have significant value in the modern world and are widely applied in various areas. Information which is processed in computer networks has to be well protected against wide varity of threats. This requires a constant improvement of the data protection's system. According to Shor's algorithm, with approach of a quantum computer era, the huge computing power can cause failure and compromise of many cryptographic schemes used today. There is a need to find methods that are resistant to quantum crypt-analysis. One of the alternative approaches for this problem solution is the creation of schemes based on the certain lattice complexity characteristics. These characteristics are supported to be unsolved for quantum computers. Due to the recent considerable scientific achievements, lattice schemes have already begun to be used in practice and seem to be a very viable alternative to the number-theoretic cryptography. In this article we provide practical implementations of the lattice algorithms which are used during the construction of a post-quantum security protocol. We carry out the detailed analysis of Gram-Schmidt orthogonalization process, which is one of the basic and most important part of the lattice algorithms, equations examples and its programming implementation. Additionally we consider the LLL lattice reduction algorithm analysis and its programming implementation, its efficiency, performance characteristics during the basis resolution process, modes and performance depending on a lattice dimension as well as the main scopes of the algorithm and the practical application in security protocols.
Keywords: theory of lattices, post-quantum cryptography, integer lattices, lattice basis reduction, Lenstra-Lenstra-Lovasz algorith, lLl reduction, quantum computer, QR decomposition, orthogonalization, Gram-Schmidt algorithm, NTRUEncrypt, encryption
References:
1. Piskova A.V. Razrabotka algoritma elektronnoy tsifrovoy podpisi, osnovannogo na zadachakh faktorizatsii i diskretnogo logarifmirovaniya na ellipticheskikh krivykh, V sbornike: Sbornik trudov IV Vserossiyskogo kongressa molodykh uchenykh Universitet ITMO, 2015, pp. 319-322.
2. Usatyuk V.S. Realizatsiya parallel'nykh algoritmov ortogonalizatsii v zadache poiska kratchayshego bazisa tselochislennykh reshetok, Prikladnaya diskretnaya matematika. Prilozhenie. 2012. No 5, pp. 120-122.
3. Lenstra A. K., Lenstra H.W., Lov'asz L. Factoring Polynomials with Rational Coefficients, Math. Annalen, 1982, vol. 261, pp. 515-534.
4. Howe, J., Poppelmann, T., O'Neill, M., O'Sullivan, E., Guneysu, T.: Practical Lattice - based Digital Signature Schemes. ACM Transactions on Embedded Computing Systems (ACM T EMBED COMPUT S). 14(3), 1-24 (2015)
5. Kuz'min O.V., Usatyuk V.S. Parallel'nye algoritmy vychisleniya lokal'nykh minimumov tselochislennykh reshetok, Programmnye produkty i sistemy. 2015. No 1 (109), pp. 55-62.
6. NumPy, URL: http://www.numpy.org (data obrashcheniya: 25.01.16).
7. Kwant Project, URL: http://kwant-project.org (data obrashcheniya: 25.01.16).
8. Piskova A.V. Razrabotka kombinirovannoy skhemy autentifikatsii informatsii, osnovannoy na zadachakh faktorizatsii i diskretnogo logarifmirovaniya na ellipticheskikh krivykh, Annotirovannyy sbornik nauchno-issledovatel'skikh vypusknykh kvalifikatsionnykh rabot spetsialistov Universiteta ITMO / Glavnyy redaktor Prorektor po NR d.t.n., professor V.O. Nikiforov. - SPb: Universitet ITMO, 2015, - pp.39-42.
4 Antonina Piskova, St. Petersburg National Research University of Information Technologies, St. Petersburg, [email protected];
5 Aleksandr Menshchikov, St. Petersburg National Research University of Information Technologies, St. Petersburg, [email protected];
6 Anatoly Korobeynikov, Dr.Sc., Professor, St. Petersburg National Research University of Information Technologies, St. Petersburg, [email protected]