ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
№13 ПРИЛОЖЕНИЕ Сентябрь 2020
Секция 3
МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ
УДК 511.48 DOI 10.17223/2226308X/13/14
ПРОЕКТ СТАНДАРТИЗАЦИИ ПОСТКВАНТОВОЙ ЦИФРОВОЙ ПОДПИСИ
Е. А. Киршанова, Н. С. Колесников, Е. С. Малыгина, С. А. Новоселов
Предлагается цифровая подпись, безопасность которой основана на задачах MLWR и MSIS в алгебраических решётках. Конструкция подписи основана на парадигме Фиата — Шамира. Доказывается безопасность схемы в квантовой модели безопасности и описываются конкретные параметры, при которых схема достигает уровня безопасности в 100 бит. Благодаря модульной структуре решёток, уровень безопасности легко изменить в большую или меньшую стороны. Наше предложение может служить основой проекта по стандартизации постквантовых примитивов на решётках.
Ключевые слова: цифровая подпись, криптография на решётках, постквантовая криптография, парадигма Фиато — Шамира.
Введение
Криптографические примитивы на решётках — одно из самых обещающих направлений современной криптографии не только ввиду стойкости этих примитивов к атакам на квантовом компьютере, но и вследствие большого спектра конструкций (гомоморфное шифрование, электронные голосования, различные типы подписей), а также их надёжности по отношению к классическим атакам. Криптографические конструкции на решётках не только элегантны в теории, но и значимы на практике, поэтому в достаточно скором будущем будут стандартизированы. Пробные версии обмена ключами New Hope уже тестированы в TLS-соединениях для браузера Google Chrome [1]. Процесс стандартизации постквантовых схем доступен по адресу https://csrc.nist.gov/projects/post-quantum-cryptography.
В этой работе мы предлагаем схему цифровой подписи, основанную на алгебраических решётках, конструкция которой удовлетворяет следующими основным свойствам:
1) безопасность схемы основана на задачах «в среднем», а именно на задачах LWR (Learning With Rounding) и SIS (Shortest Integer Solution) — классических трудных задачах на решётках, определения которых даны в п. 1);
2) для эффективности схемы используется так называемый модульный вариант задач, а именно module-LWR, module-SIS [2], что не только позволяет уменьшить размеры параметров схемы и время операций, но и даёт возможность легко варьировать уровни безопасности схемы;
3) стойкость схемы доказана в квантовой модели QROM (Quantum Random Oracle Model) для «сильного» атакующего, а именно для атаки вида UF — sCMA; доказательство можно найти в [3];
4) в процессе генерации ключей и подписи вместо нормального распределения используется равномерное распределение из интервала, что уменьшает риск сторонних атак;
5) предлагается конкретный набор параметров схемы с битовой оценкой сложности атак на предложенные параметры (см. п. 3).
Представленная здесь схема основана на парадигме Фиата — Шамира [4, 5] и по идеологии продолжает серию работ, предлагающих конкретные схемы подписи [6-8]. Основное отличие нашей схемы от ранее предложенных заключается в том, что безопасность ключей основана на задаче LWR (а не на задаче LWE (Learning With Errors)). Мы считаем, что такой подход упрощает описание и потенциально ускоряет вычисления.
1. Предварительные сведения 1.1. Обозначения
Будем обозначать Z/qZ кольцо целых по чётному модулю q, результат z mod q представляем в интервале {0,... , q — 1}; R, Rq и Rp — кольца многочленов Z[x]/(xn+1), Z/qZ[x]/(xn+1) и Z/pZ[x]/(xn+1) соответственно. Векторы будем обозначать жирными строчными буквами (например, x), матрицы — прописными (например, A), константы — обычными строчными; I — единичная матрица. Элементы кольца Z[x]/(xn+1) будем понимать как векторы-коэффициенты многочленов. Векторы по умолчанию являются вектор-столбцами. Евклидова (или ¿2) норма вектора x определяется как
||x|| = ||x||2 = fYh х2, а -норма — как ||x|| = max |xj|.
V i i
Многочленам из кольца R ставим в соответствие векторы-коэффициенты длины n, поэтому произведение векторов x • y надо понимать как произведение соответствующих многочленов. Элементу a Е Rq ставим в соответствие матрицу rot(a) Е (Z/qZ)raxra, i-я строка которой — коэффициенты многочлена xi-1 • a. Такая матрица задаёт произведение любого элемента из Rq на многочлен a.
Для конечного множества S запись s ^ S обозначает, что s выбрано в соответствии со случайным равномерным распределением на S. Через S^ обозначим множество векторов длины каждый коэффициент которого взят в соответствии с равномерным распределением из множества {—в,..., в} .
Для любого х Е Q запись Round(х) Е Z означает взятие ближайшего целого, где 1/2 округляется до 1. Для целого х функция MSB(x, d) (соответственно LSB(x, d)) означает взятие d старших (соответственно младших) бит. Все операции распространяются на векторы и матрицы покоэффициентно.
В нашей схеме мы будет использовать два модуля: q = 2V и p = 2м. «Конвертирование» элемента х Е Z/qZ в х' Е Z/pZ происходит по правилу х' = Round(х • p/q). Так как модули — степени двойки, этот же результат можно получить, добавив к х константу h = 2V-M-1 и взяв ^ старших бит: х' = MSB(x + h,^). Такое представление операции Round использовано, например, в [9]. Вектор, каждая координата которого равна h, обозначим h. Для всякого целого w > 0 положим Bw = {x Е R : ||x|| = 1, ||x|| = Vw} С R.
1.2. Синтаксис и модели безопасности цифровых подписей
Определение 1. Цифровая подпись — примитив, состоящий из трёх алгоритмов:
— вероятностный алгоритм генерации ключевой пары KeyGen(par), возвращающий
секретный ключ sk и ключ верификации vk;
— вероятностный алгоритм генерации подписи Sign(sk,m), который для сообщения m G M возвращает подпись а;
— детерминированный алгоритм Verify(m, a, vk), который возвращает либо «Accept» (подпись а корректна для (m,vk)), либо «Reject» (подпись а не корректна для (m, vk)).
Цифровая подпись корректна с долей ошибки е, если для всех пар (sk, vk) G G KeyGen(par) и всех сообщений m G M имеем
P [Verify(m, Sign(sk, m), vk) = «Accept»] ^ 1 — е.
1.3. Сложные задачи на решётках Безопасность нашей подписи основывается на двух «сложных в среднем» задачах. Первая — задача Обучения с Округлением (Learning With Rounding (LWR)) [10] — детерминированная версия задачи Обучения с Ошибками (Learning With Errors (LWE)) [11]. В основе безопасности ключей подписи лежит трудность этой модульной версии задачи над фактор-кольцом Rq [2]. Все вычисления производятся в фактор-кольце Rq, матрица A формируется как блочная матрица из k • t элементов из Rq, где каждый блок — матрица rot(a).
Для предлагаемой схемы, в отличие от классических задач LWR и LWE, где матрица A берётся случайным образом из R^^, будем требовать, чтобы хотя бы один
из k • t многочленов был обратим в Rq. Будем обозначать такую матрицу через A. Это требование не влияет на безопасность схемы, поскольку, как минимум, константное число многочленов обратимы в Rq 1. Значит, если атакующий имеет непренебрежимо малую вероятность успеха для A, этот же атакующий имеет непренебрежимо малую вероятность успеха для A ^ Rq.
Определение 2 (задача обучения с округлением (MLWR)). Пусть q ^ p ^ 1, k,t ^ 1 —целые числа. MLWR-распределение для вектора s ^ Rfq есть множество пар
вида ^A, Round ^ -q • A • s^, где A ^ R^. Задача поиска : для заданного произвольным образом большого числа выборок из MLWR-распределения для вектора s ^ Rfq восстановить s. Задача различения распределений : для заданного произвольным обра-
■kxl ^ тук q х Rp
ыми для вектора s ^ Rq.
Обе версии задачи эквивалентны (то есть, имея оракул, решающий одну задачу, можно решить другую за полиномиальное от n время) [12]. В доказательстве безопасности схемы подписи нам понадобится вторая версия. Безопасность подписи основана на задаче нахождения Короткого Целочисленного Решения (Short Integer Solution (SIS) problem) [13]. Нам потребуется модульная версия этой задачи.
Определение 3 (задача нахождения Короткого Целочисленного Решения (MSIS)) Зафиксируем b G N и пусть A ^ R^. Модульная задача нахождения короткого целочисленного решения, параметризованная посредством b > 0, заключается в нахождении «короткого» ненулевого прообраза y ^ Rk+ в решётке, определяемой A, т. е.
_У = 0, [I|A] • y = 0 и ||у||те ^ b.
1 Вероятность обратимости случайного многочлена в Rq, где q — степень двойки, не столь тривиальна (и не столь велика), как в случае простого q. Случайный многочлен a g Rq обратим тогда и только тогда, когда rot(a) —обратимая матрица в Z/qZnxn, что, в свою очередь, верно тогда и только тогда, когда det(rot(a)) —обратимый элемент в Z/qZ. В случае q = 2V имеем |Z*| = 2V-1, а значит, случайный элемент из Z/qZ обратим с вероятностью |Z*|/q = 1/2.
зом большого числа выборок из х Д^ определить, являются ли они равномерно распределёнными или МЬШИ,-рашределёнными для вектора б ^ Д^.
Для доказательства безопасности схемы потребуется вариант задачи SIS, так называемый SelfTargetSIS, предложенный в [14]. В этой же работе описана редукция от SIS к SelfTargetSIS.
Определение 4 (задача SelfTargetSIS). Пусть H : {0,1}* ^ Bw — криптографическая хэш-функция. Зададим случайным образом A ^ R*1 и доступ к квантовому случайному оракулу H(-). Для исходного сообщения M G {0,1}* задача SelfTargetSIS сводится к нахождению
y =[r, c]T, где 0 ^ ||у||те ^ y, H([A|I] ■ y, M) = c.
2. Описание схемы
Цифровая подпись (алгоритмы 1-3) зависит от следующих параметров: q = 2V, p = 2м, v > Используется криптографическая хэш-функция H : {0,1}* ^ Bw [7]. Параметры отвечают за размерности ключей; s, y задают интервалы для коэффициентов многочленов в процессе генерации ключей или подписи; d, в отвечают за корректность и безопасность схемы. Подпись формируется для сообщений M G {0,1}*. Конкретные значения параметров заданы в п. 3.
Алгоритм 1. Генерация ключей
Вход: £ > k > 1, q>p, s. Выход: A, t. 1: A ^ Rj**; 2: s ^ Sf;
3: t := Round ^p ■ As^J . // ||t - As||œ ^ 2V-M
4: Вернуть sk = s, vk = (A, t).
Алгоритм 2. Генерация подписи
Вход: q = 2V, p = 2м, t > 1, M, A, t, s, d, H, в, Y, w. Выход: (z, c). 1: У ^ SY-i;
2: c := H (MSB(A • y,d),M);
3: z := y + sc;
4: w := Az — t • 2V-M • c;
5: Если (||LSB(w, v — d)||^ ^ 2v-d — w • 2V-м+1) или (||z||^ ^ y — в), то
restart. 6: Вернуть (z, c).
Алгоритм 3. Проверка подписи
Вход: M, z, c, A, t, d, H, в, 7-
Выход: «Accept» или «Reject».
w := Az - t ■ 2V-M ■ c;
c' := H(MSB(w,d)),M);
Если c' = c и ||z||^ ^ 7 — в, то
Вернуть «Accept», иначе
Вернуть «Reject».
2.1. Корректность Поскольку w = А ■ z — 1 ■ ■ с, z = у + б ■ с и 1 = Роып^ — ■ Аб ), то
V? )
w = А ■ (у + б ■ с) — с ■ ■ Роып^— ■ А^ = Ау + Абс — с ■ 2^ ■ Роып^— ■ Аб
Согласно введённым обозначениям, Роып^ — ■ Аб ) = МБВ(Аб + Ь, где Ь — вектор,
)
каждая координата которого равна к = 2^ м 1. Тогда
w = Ау + Абс — с ■ 2^ ■ МБВ(Аб + Ь,^,) = Ау + Абс — с (Аб + Ь + ЬБВ(Аб + Ь, V — .
Раскрывая скобки, окончательно получаем
w = Ау — с (Ь + 1_БВ(Аб + Ь, V — , (1)
где ||с (Ь + 1_БВ(Аб + Ь, V — < , поскольку с е Бт и ||LSB(AБ,v — <
< Рассматривая LSB(w,v — d) в алгоритме 2 на шаге 5 и учитывая ошибку
с (Ь + LSB(AБ + Ь, V — ^)), получаем, что при — d)||те > 2У-Л — ад ■ 2^+1
алгоритм отклоняет значение w.
Так как с (Ь + LSB(AБ + Ь, V — —малый вектор ошибки, то из равенства (1) очевидно, что MSB(w,d) = MSB(Ay,d). Следовательно, вычисление с' на шаге 2 алгоритма 3 совпадает со значением вектора с на шаге 2 алгоритма 2.
2.2. О числе итераций в процедуре Б^п В процессе вычисления подписи алгоритм 2 на шаге 5 проверяет, попадают ли коэффициенты вектора z в интервал { — (7 — в — 1),... ,7 — в — 1}. Для фиксированного ключа б вероятность этого события зависит от ||у^, выбранного на шаге 1. Вычислим эту вероятность.
Пусть z = у + V такой, что z е £^-/3-1. Обозначим в = ||сб|^. Так как ||б|^ ^ в и с е , то в < ^з. Отсюда ^ в. Для каждого коэффициента vi вектора V
соответствующий коэффициент zi лежит в интервале { — (7 — в — 1),... ,7 — в — 1}. Поскольку у = z — V, то у е Б^ -1 и соответствующий коэффициент у г лежит в интер-
вале { — (y — 1),..., 7 — 1}. Следовательно,
Ve-1
sY-e-iL/27—2в—nв У ( впА
pi= ONL <Y—Ч1 — и ex4—VJ
Алгоритм 2 на шаге 5 также проверяет, когда коэффициенты вектора ЬБВ^, V — не попадают в интервал { — (2^-Л—т•2^-м+1 — 1),... , 2и-Л—— 1}. Вероятность этого события, очевидно, зависит от малого вектора ошибки с (Ь + 1БВ(Ав + Ь, V — который возникает при упрощении выражения w = А • ъ — 1 • • с на шаге 4. Вычислим эту вероятность.
Как показано выше, каждый коэффициент вектора ошибки с (Ь + 1БВ(Ав+Ь, V— лежит в интервале { — (т • 2и-^+1 — 1),... , т • 2^-м+1 — 1}. Для каждого такого коэффициента соответствующий коэффициент вектора ЬБВ^, V — попадает в интервал { —(2^-Л — 1),... , 21,-Л — 1}. Учитывая (эвристически) равномерный характер распределений, в итоге получаем
Р2 = [I LSB(w, V — ^ < — т • -+1] = -^-] =
1 — 7^+1-7 ~ ехР —
2v—d+1 _ 1 / V 2^-d+l — 1
Таким образом, ожидаемое число повторений функции Sign алгоритма 2 равно
Е[#итераций] = (pi ■ p2)-1.
3. Атаки и выбор параметров
Безопасность нашей схемы подписи основана на двух классических задачах на решётках— MLWR и MSIS. Будем определять конкретные параметры схемы, основываясь на сложности атак на эти задачи.
Мы работаем с модульными решётками, определёнными над кольцом целых цик-лотомического расширения, а именно R = Z[x]/(x256 + 1), то есть выбираем n = 256. Такое n позволяет осуществлять быструю арифметику в R. Основные параметры, определяющие сложность задач MLWR и MSIS, — это k (задаёт ранг решёток) и i (задаёт размер секретного вектора s).
Решение задачи MLWR сводится к нахождению короткого вектора в q-арной решётке ранга d
Лmlwr = {x е Zd : [rot(A) 1111] x = 0 mod q},
где d ^ n(i + k) + 1. Мы используем знак так как оптимальная атака может не использовать некоторые строки матрицы [rot(A) 1111]. Нужный вектор x е ЛмLWR — это Xshort = [rot(s)| - 1iow| - 1], где tiow = As - 1 и ||1iow|^ ^ 2V-M. Это «короткий» вектор в решётке ЛмLWE, так как он значительно короче \fdq1/nk — границы Минковского для
^LWR.
Это классическая «примальная» атака на LWR, сложность которой зависит от времени работы алгоритма BKZ для нахождения вектора длины ||xshort||. Оценить конкретное время работы BKZ — нетривиальная задача. Для получения значения 104 в таблице — консервативной оценки времени работы BKZ для решения задачи LWR — мы опирались на работу [15] и программный код [16]. Мы не приводим оценку для так называемой «дуальной» атаки на LWR, так как «примальный» метод для наших параметров оказался значительно эффективнее.
Рассмотрим теперь сложность задачи MSIS (так как задача SelfTargetSIS сводится к MSIS и для наших параметров атаки именно на MSIS работают эффективнее, определяющим фактором является сложность MSIS). Наиболее эффективная из всех известных атак на MSIS — нахождение короткого вектора в решётке
Лмж = {x е Zd : [rot(A) 11] x = 0 mod q}.
В отличие от атаки на MLWR, оптимальный алгоритм для задачи MSIS может опустить некоторые столбцы матрицы [rot(A) 11]. Решением задачи MSIS считается короткий вектор x G Лмэш с нормой ||х||те ^ max{2v-d+1,2(7 — в)}. Для параметров, приведённых в таблице, эти два значения примерно совпадают. Для получения конкретной сложности атаки MSIS мы пользовались стратегией [7, Appendix C]; скрипт, с помощью которого можно получить таблицу, доступен по ссылке https: //crypto-kantiana.com/elena.kirshanova/\#research.
Предлагаемые параметры цифровой подписи и их уровень безопасности
n k e V s d Y Е[#итераций] MSIS (BKZ-b) MLWR (BKZ-b)
256 3 4 23 19 4 3 1048096 8 93 (320) 104 (357)
В таблице последние два параметра — 93 (соотв. 104) — соответствуют битовой сложности атаки на MSIS с оптимальным размером блока в алгоритме BKZ, равному 320 (соотв. MLWR с оптимальным размером блока 357). В обоих вычислениях полагаем (консервативно), что сложность нахождения короткого вектора в решётке размерности d равна 20'292d, что асимптотически соответствует сложности алгоритма просеивания.
ЛИТЕРАТУРА
1. AlkimE., Ducas L., Poppelmann T., and Schwabe P. Post-quantum key exchange: A new hope // USENIX Conf. Security Symposium. 2016. P. 327-343.
2. Adeline L. and Stehle S. Worst-case to average-case reductions for module lattices // Des. Codes Cryptography. 2015. V.75. No.3. P. 565-599.
3. Kirshanova E., Kolesnikov N., Malygina E., and Novoselov S. Проект стандартизации постквантовой цифровой подписи (полная версия). https://crypto-kantiana.com/main_ papers/main_Signature.pdf.
4. Fiat A. and Shamir A. How to prove yourself: Practical solutions to identification and signature problems // CRYPTO'86. LNCS. 1987. V.263. P. 186-194.
5. Lyubashevsky V. Fiat — Shamir with aborts: Applications to lattice and factoring-based signatures // ASIACRYPT'2009. LNCS. 2009. V. 5912. P. 598-616.
6. Bai S. and Galbraith S. D. An improved compression technique for signatures based on learning with errors // Topics in Cryptology — CT-RSA 2014. LNCS. 2014. V. 8366. P. 28-47.
7. Ducas L., Kiltz E., Lepoint T., et al. CRYSTALS-Dilithium: A lattice-based digital signature scheme // IACR Trans. Cryptographic Hardware and Embedded Systems. 2018. No. 1. P. 238268.
8. Alkim E., Bindel N., Buchmann J., et al. Revisiting TESLA in the quantum random oracle model // PQCrypto 2017. LNCS. 2017. V. 10346. P. 143-162.
9. D'Anvers J.-P., Karmakar A., Roy S.S., and Vercauteren F. Saber: Module-LWR based key exchange, CPA-secure encryption and CCA-secure KEM // Progress in Cryptology — AFRICACRYPT 2018. Springer, 2018. P. 282-305.
10. Banerjee A, Peikert C., and Rosen A. Pseudorandom functions and lattices // Ann. Intern. Conf. Theory and Appl. of Cryptographic Techniques. Springer, 2012. P. 719-737.
11. Regev O. On lattices, learning with errors, random linear codes, and cryptography //J. ACM. 2005. V. 56. No. 6. P. 84-93.
12. Bogdanov A., Guo S., Masny D., et al. On the hardness of learning with rounding over small modulus // Theory of Cryptography. LNCS. 2016. V.9562. P. 209-224.
13. Ajtai M. Generating hard instances of lattice problems (extended abstract) // Proc. 28th Ann. ACM Symp. Theory Computing. 1996. P. 99-108.
14. Kiltz E., Lyubashevsky V., and Schaffner C., A concrete treatment of Fiat — Shamir signatures in the quantum random-oracle model // Adv. Cryptology — EUROCRYPT 2018. Springer, 2018. P. 552-586.
15. Albrecht M. R., Gopfert F., Virdia F., and Wunderer T. Revisiting the expected cost of solving uSVP and applications to LWE // ASIACRYPT 2017. LNCS. 2017. V. 10624. P. 297-322.
16. Albrecht M. R., Curtis B. R., Deo A., et al. Estimate all the {LWE, NTRU} schemes! // SCN 2018. LNCS. 2018. V. 11035. P. 351-367.
УДК 512.64, 519.21, 519.72 DOI 10.17223/2226308X/13/15
КОНСТРУКЦИИ НЕЭНДОМОРФНЫХ СОВЕРШЕННЫХ ШИФРОВ
Н. В. Медведева, С. С. Титов
Исследуются совершенные по Шеннону (абсолютно стойкие к атаке по шифр-тексту) шифры. Получены достаточные условия того, что таблицы зашифрования неэндоморфных (эндоморфных) совершенных шифров не содержат латинских прямоугольников (квадратов). Приведён пример таких конструкций.
Ключевые слова: совершенные шифры, эндоморфные шифры, неэндоморфные шифры.
Рассмотрим вероятностную модель Sb шифра [1]. Пусть X, Y — конечные множества соответственно шифрвеличин и шифробозначений, с которыми оперирует некоторый шифр замены, K — множество ключей, причём |X| = A, |Y| = |K| = п, где А > 1, ^ ^ A. Это означает, что открытые и шифрованные тексты представляются словами (¿-граммами, t ^ 1) в алфавитах X и Y соответственно. Согласно [2, 3], под шифром Sb будем понимать совокупность множеств правил зашифрования и правил расшифрования с заданными распределениями вероятностей на множествах открытых текстов и ключей. Шифры, для которых апостериорные вероятности открытых текстов совпадают с их априорными вероятностями, называются совершенными.
Описание эндоморфных (А = с минимально возможным числом ключей (|K| = = |Y|) совершенных шифров даёт теорема Шеннона, таблица зашифрования таких шифров — это латинский квадрат из равновероятных подстановок зашифрования [1].
Для неэндоморфных (А < минимальных совершенных шифров характерно большое многообразие таблиц зашифрования: они не сводятся только к латинским прямоугольникам размера ^ х А [4]. Для А = 2, например, таблицы зашифрования могут быть составлены и из неравновероятных инъекций. Однако если все ключи равновероятны, то данный совершенный шифр является выпуклой оболочкой латинских прямоугольников, содержащихся в его таблице зашифрования, согласно аналогу теоремы Биркгофа [5]. Если А > 2, то, даже для равновероятных инъекций зашифрования, неэндоморфный совершенный шифр может не содержать в своей таблице зашифрования латинских прямоугольников ^ х А [6].
Таким образом, при ^ > А возникает естественная задача описания минимальных по включению (т. е. шифров, содержащих минимально возможное множество ключей зашифрования с ненулевыми вероятностями) совершенных шифров, не сводящихся к латинским прямоугольникам размера ^ х А, которые можно рассматривать как непосредственное обобщение теоремы Шеннона. Данную задачу можно трактовать как задачу описания выпуклого полиэдра, соответствующего совершенным шифрам, через нахождение его вершин [5].