<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Электронный научно-практический журнал «Современные научные исследования и инновации» &#187; криптосистемы</title>
	<atom:link href="http://web.snauka.ru/issues/tag/kriptosistemyi/feed" rel="self" type="application/rss+xml" />
	<link>https://web.snauka.ru</link>
	<description></description>
	<lastBuildDate>Fri, 17 Apr 2026 07:29:22 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Проблемы создания собственных криптосистем</title>
		<link>https://web.snauka.ru/issues/2014/04/33150</link>
		<comments>https://web.snauka.ru/issues/2014/04/33150#comments</comments>
		<pubDate>Thu, 17 Apr 2014 11:59:02 +0000</pubDate>
		<dc:creator>Явич Максим Павлович</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[криптосистемы]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=33150</guid>
		<description><![CDATA[В данной работе мы показываем, что создание собственных криптосистем или попытка их улучшить связаны с большими трудностями. Желательно изпользовать только стандартные, уже проверенные большим числом экспертов. Несмотря на то, что криптография успешно применяется для  защиты информации [1], имеется ряд ограничений. Отметим некоторые из них: Криптография становится бесполезной, если она осуществлена некорректно. Криптография не является решением [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;" align="center">В данной работе мы показываем, что создание собственных криптосистем или попытка их улучшить связаны с большими трудностями. Желательно изпользовать только стандартные, уже проверенные большим числом экспертов.</p>
<p>Несмотря на то, что криптография успешно применяется для  защиты информации [1], имеется ряд ограничений. Отметим некоторые из них:</p>
<ul>
<li>Криптография становится бесполезной, если она осуществлена некорректно.</li>
<li>Криптография не является решением всех проблем безопастности</li>
<li>Криптографию нельзя создавать самому.</li>
</ul>
<p>В данной работе остановимся на третьем пункте. Криптография включает в себя множество криптосистем. Криптосистема должна быть надежной. Надежность криптосистемы может быть нарушена в основном из–за ошибок в реализации криптоалгоритмов или из-за неправильного их применения. Для подтверждения вышесказанного приведем несколько видов атак. Рассмотрим пластиковую карту для платежей, использующую блочные шифры. Данная карта имеет пароль, необходимый для обналичивания денег в терминале. Злоумышленник, завладевший этой картой, может выяснить количество времени, неообходимого для шифрования и расшивровки пароля. Если время зависит от количества битов пароля, то после некоторого числа попыток злоумышленник сможет полностью  раскрыть пароль. Также возможно подключение карты к аппарату, измеряющему ее мощность во время операций. Нарисовав график зависимости тока от времени, возможно прочитать ключ по  битам, наблюдая необходимую мощность карты для проделывания разных операций. [2]</p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2014/04/Untitled.jpg"><img class="size-full wp-image-33218 aligncenter" src="https://web.snauka.ru/wp-content/uploads/2014/04/Untitled.jpg" alt="" width="469" height="155" /></a></p>
<p>В картах, где данная иформация маскируется, воможно использование атаки под названием «дифференциальный анализ питания». Т.е. измеряется мощность, которую карта затрачивает на проведение большого количества алгоритмов шифрования. После нахождения минимальной зависимости тока от битов пароля возможна расшифровка пароля целиком. Эта же проблема касается многоядерных процессоров, где шифрование идет на одном ядре, а код злоумышленника &#8211; на другом. С помощью промахов кеш памяти алгоритма шифрования возможно определение пароля. Кредитную карту злоумышленник может испортить, т.е. разогнать ее или разогреть. Если кредитная карта будет работать некорректно, то получится неправильный шифр, что достаточно для обнаружения ключа. Выход в том, что перед тем , как выдавать ответ алгоритма, необходимо проверить корректность вычисления. Это довольно трудно.</p>
<p>Рассмотрим линейные атаки:</p>
<p>Pr[  m[l<sub>1</sub>] XOR ⋯ XOR m[l<sub>r</sub>]  XOR  c[n<sub>j</sub>] XOR⋯XOR c[n<sub>v</sub>]  =  k[i<sub>1</sub>] XOR ⋯ XOR k[i<sub>u</sub>]  ] = ½ + ε, т.е. наблюдается минимальная зависимость между шифром, сообщением и ключом (c,m,k). В случае DES, ε = 1/2<sup>21</sup>, возможно полностью раскрыть ключ приблизительно за 2<sup>43 </sup>попыток, что намного меньше, чем в случае поиска с перебором.  Т.е. желательно не создавать свои блочные шифры, а использовать готовые библиотеки.</p>
<p>Рассмотрим основные атаки на MAC. Часть кода в Python из библиотеки Keyczar имеет следующий вид:</p>
<p><strong><strong>            </strong>def Verify(key, msg, sig_bytes):</strong></p>
<p><strong><strong>            </strong>return HMAC(key, msg) == sig_bytes</strong></p>
<p>Верификация работает следующим образом: с помощью этого кода повторно вычисляется HMAC сообщения и сравнивается с верным. Проблема в том,что сравнение происходит побайтно и при первом несоответствии выдает сообщение о неравенстве строк. Это приводит к серьезной «временной» атаке на данную библиотеку.</p>
<p>Есть несколько способов защиты от этой атаки, мы приведем один из них:</p>
<p><strong><strong>            </strong>return false if  sig_bytes  </strong><strong>имеет</strong><strong> </strong><strong>неправильную</strong><strong> </strong><strong>длину</strong></p>
<p><strong>            result = 0        </strong></p>
<p><strong>            for x, y in zip( HMAC(key,msg) , sig_bytes):</strong></p>
<p><strong>            result |= ord(x) ^ ord(y)</strong></p>
<p><strong>            returnresult</strong><strong> == 0</strong></p>
<p>Здесь код написан так, чтобы любые 2 строки сравнивались в продолжении одних и тех же промежутков времени вне зависимости от результата.</p>
<p>Обратим внимание на ошибку, который допустил Apple в iOS. Из-за лишней строчки <strong>goto fail;</strong> происходит переход в конец алгоритма и верификация подписи не будет работать правильно, т.к. обусловливает возможность не верного вывода о том, что что операция обовления SHA1 прошла успешно. Т.е. в данном случае лишняя строчка кода приводит к атаке. [3].</p>
<p>Исходя из приведенных данных,возможен взлом стандартных криптосистем, проверенных множеством экспертов, не говоря уже о собственных.</p>
<p>Существуют определенные проблемы, связанные с попытками улучшения стандартных криптосистем, например, улучшения производительности RSA (шифрование или расшифровка):</p>
<p>Ускорим расшифровку RSA с помощью маленького privatekeyd (d ≈ 2<sup>128</sup>); c<sup>d</sup> = m  (mod N)</p>
<p>Wiener’87: если   d&lt;N<sup>0.25</sup>, то RSA небезопасно. BD’98: если d&lt;N<sup>0.292</sup>,то RSA небезопасно</p>
<p>Считается, что небезопасно, если d&lt;N<sup>0.5</sup>. За последние 14 лет не было обоснований</p>
<p>того, что N<sup>0.5 </sup>является минимальным возможным размером. Никому не удавалось превзойти результат N<sup>0.292</sup>.</p>
<p>Практически все попытки улучшить RSA, как правило, приводили к катастрофе, что позволяет сделать вывод о проблемах при отклонении от стандартных схем его использования.</p>
<p>Исходя из выше сказанного, создание или усовершенствования существующих криптосистем требует серьезной экспертной оценки. На сегодняшний день создаются новые гибридные криптосистемы[4], которые используют комбинацию стандартных криптосистем, поэтому вероятность того, что они безопастны, выше. Несмотря на это, исходя из нашего анализа, большинство этих систем являются уязвимыми к атаке “man in the middle”.</p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2014/04/33150/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Пост-квантовые криптосистемы</title>
		<link>https://web.snauka.ru/issues/2016/05/67264</link>
		<comments>https://web.snauka.ru/issues/2016/05/67264#comments</comments>
		<pubDate>Wed, 11 May 2016 09:45:28 +0000</pubDate>
		<dc:creator>Явич Максим Павлович</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[криптография]]></category>
		<category><![CDATA[криптосистемы]]></category>
		<category><![CDATA[пост-квантовые криптосистемы]]></category>
		<category><![CDATA[цифровая подпись]]></category>
		<category><![CDATA[шифрование]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=67264</guid>
		<description><![CDATA[В настоящее время многие ведущие ученые и эксперты активно работают над созданием квантовых компьютеров. Недавно была опубликована статья о том, что корпорация GOOGLE, совместно с NASA и ассоциацией USRA (Universities Space Research Association), подписали контракт о производстве квантовых процессоров с компанией D-Wave. D-Wave 2X &#8211; это новейший квантовый процессор, который содержит 2048 физических кубитов.  Для [...]]]></description>
			<content:encoded><![CDATA[<p>В настоящее время многие ведущие ученые и эксперты активно работают над созданием квантовых компьютеров. Недавно была опубликована статья о том, что корпорация GOOGLE, совместно с NASA и ассоциацией USRA (Universities Space Research Association), подписали контракт о производстве квантовых процессоров с компанией D-Wave. D-Wave 2X &#8211; это новейший квантовый процессор, который содержит 2048 физических кубитов.  Для выполнения вычислений в данном процессоре используются 1152 кубита.</p>
<p>Каждый дополнительный кубит в два раза увеличивает площадь поиска данных, следовательно, значительно повышается и скорость их вычисления. Исходя из вышесказанного, квантовые компьютеры вероятно смогут разрушить большую часть, если не абсолютно все традиционные криптосистемы, которые широко используются в практике. Конкретно, системы, основанные на задаче факторизации целых чисел (например, RSA). Некоторые криптосистемы, как система RSA с четырех тысячными битными ключами, считаются полезными для защиты классических больших компьютеров от атак, но вероятно являются абсолютно бесполезными против атак на большие квантовые компьютеры.</p>
<p>Криптосистема RSA  используется в разных продуктах, на разных платформах и в различных сферах. На сегодняшний день данная криптосистема интегрируется во многие коммерческие продукты, количество которых растет с каждым днем. Также система RSA активно используется в операционных системах от Microsoft, Apple, Sun и Novell. В аппаратном исполнении RSA алгоритм используется в защищенных телефонах, Ethernet, сетевых платах, смарт картах, а также широко используется в криптографическом аппаратном обеспечении. Вместе с этим, данный алгоритм является частью основных протоколов защищенных коммуникаций Internet, в том числе S/MIME, SSL и S/WAN, и также используется во многих организациях, например, в правительственных, в банках, в большинстве корпораций, в государственных лабораториях и университетах.</p>
<p>Технология шифрации RSA BSAFE используется приблизительно 500 миллионами пользователей во всем мире. Так как в основном, в технологиях шифрования используется RSA алгоритм, то его можно считать одной из самых распространённых криптосистем открытого (public) ключа с тенденцией развития вместе с развитием Internet.</p>
<p>Исходя из этого, разрушение RSA повлечет за собой легкий взлом большинства продуктов, что может перерасти в полный хаос.</p>
<p>Разработаны различные “устойчивые к квантовым атакам” альтернативы системы RSA. Но на сегодняшний день на данные системы зафиксирован целый ряд успешно проведенных атак.</p>
<p>Одной из альтернатив являются схемы цифровой подписи, основанные на хешировании (Hash-based Digital Signature Schemes). Безопасность этих системы зависит от безопасности криптографической хеш-функции. Была предложена одноразовая схема подписи Лэмфорта “Lamport One-Time Signature Scheme “[1].</p>
<p>В данной схеме, чтобы подписать сообщение M = (0,1)<sup>n</sup> , нужно выбрать 2n случайных чисел X<sub>ij</sub><sub>, </sub>где 1≤i≤n, а j = {0, 1}. Для всех  i и j высчитывается Y<sub>ij</sub> = h(X<sub>ij</sub>), где  h &#8211; это хеш-функция: h:{0,1}<sup>*</sup> -&gt;{0,1}<sup>s</sup>   Y<sub>ij</sub> – это открытый ключ, X<sub>ij</sub> – закрытый ключ.  Для сообщения M = m<sub>1</sub>,m<sub>2</sub>, &#8230;,m<sub>n</sub>, где m<sub>i</sub> ∈ {0, 1}, если m<sub>i</sub> =  0 , то sig<sub>i</sub> = X<sub>i</sub><sub>0</sub>, в другом случае sig<sub>i</sub> = X<sub>i</sub><sub>1.</sub> Подпись sig &#8211; это объединение все sig<sub>i</sub>; sig = (sig<sub>1</sub>||sig<sub>2</sub>||&#8230;||sig<sub>n</sub>), в случае верификации подписи, если h(m<sub>i</sub>) = 0, то h(sig<sub>i</sub>) должно быть равно Y<sub>i</sub><sub>0, </sub>в другом случае h(sig<sub>i</sub>) должно быть равно Y<sub>i</sub><sub>1</sub>.</p>
<p>Основной и серезный недостаток этой схемы – это большой размер ключей. Для того, чтобы достичь безопасность O(2<sup>80</sup>), общий размер открытого и закрытого ключей должен быть 160∗2∗160 bits = 51200 bits, что в 51200/1024=50 раз больше, чем в случае RSA. Также стоит отметить, что размер подписи в данной схеме также намного больше, чем в случае RSA.</p>
<p>Для уменьшения размера подписи была предложена одноразовая схема подписи Винтерница ( Winternitz One-time Signature Scheme). В данной схеме мы выбираем параметр w ∈ N, и вычисляется r = [s/w]+[([log2 [s/w]] + 1 + w)/w]. Выбираем r случайных чисел X<sub>1, </sub>X<sub>2, … </sub>X<sub>r</sub> ∈{0,1}<sup>s</sup>, объединение которых X является закрытым ключом. Высчитываются Y<sub>i</sub> = h<sup>2</sup><sup>w</sup><sup>−</sup><sup>1</sup>(X<sub>i</sub>), открытым ключом является Y = h(Y<sub>1</sub>||&#8230;||Y<sub>r</sub>). Сообщение M разделено на s/w блоков b<sub>1</sub>, …, b<sub>s</sub><sub>/</sub><sub>w</sub> длиной w, если нужно, слева добавляются нули.</p>
<p><a href="https://web.snauka.ru/issues/2016/05/67264/statia1" rel="attachment wp-att-67265"><img class="alignnone size-full wp-image-67265 aligncenter" src="https://web.snauka.ru/wp-content/uploads/2016/05/statia1.jpg" alt="" width="766" height="572" /></a></p>
<p>Бинарное представление C разбивается на [([log2 [s/w]] + 1 + w)/w] блоков, b<sub>s</sub><sub>/</sub><sub>w</sub><sub>+1</sub>, &#8230;, b<sub>r </sub>длины w. Вычисляется  sig<sub>i</sub>= h<sup>b</sup><sup>i</sup>(X<sub>i</sub>) для i = 1, &#8230;, r, подпись письма &#8211; это sig = (sig<sub>1</sub>||&#8230;||sig<sub>r</sub>). Для верификации подписи высчитываются: b<sub>1</sub>, &#8230;, b<sub>r</sub><sub>. </sub>Для i = 1, &#8230;, r вычисляется signew<sub>i</sub>= h<sup>2</sup><sup>w</sup><sup>−</sup><sup>1</sup><sup>−</sup><sup>b</sup><sup>i</sup>(sig<sub>i</sub>) = h<sup>2</sup><sup>w</sup><sup>−</sup><sup>1</sup><sup>−</sup><sup>b</sup><sup>i</sup>(h<sup>b</sup><sup>i</sup> (X<sub>i</sub>)) = h<sup>2</sup><sup>w</sup><sup>−</sup><sup>1</sup>(Xi) = Y<sub>i</sub>, если h(signew<sub>1, …, </sub>signew<sub>r</sub>)=Y, то подпись верна.</p>
<p>Самая большая проблема одноразовых схем подписей — это передача открытого ключа. Необходимо удостовериться в том, что открытый ключ не был изменен, поэтому нужно использовать как можно меньше открытых ключей и сделать их покороче. Меркл предложил криптосистему, где один открытый ключ можно использовать для множества сообщений. В данной криптосистеме открытый ключ K используется для подписи конкретного числа сообщений. Число сообщений должно быть степенью двойки, т.е. N=2<sup>n</sup>. В первую очередь, нужно сгенерировать ключи X<sub>i</sub> и Y<sub>i</sub>для N записей и вычислить h<sub>i</sub>=h(Y<sub>i</sub>), с помощью этих данных строится дерево- Merkle Tree, рисунок 2.</p>
<p><a href="https://web.snauka.ru/issues/2016/05/67264/statia2" rel="attachment wp-att-67266"><img class="alignnone size-full wp-image-67266 aligncenter" src="https://web.snauka.ru/wp-content/uploads/2016/05/statia2.jpg" alt="" width="628" height="491" /></a></p>
<p>a<sub>ij</sub><sub> – </sub>это узел дерева.h<sub>i</sub>– это листья  дерева. Узлы дерева являются объединением своих детей: a<sub>1,0 </sub>= h(a<sub>0,0</sub>|| a<sub>0,1</sub>);  мы строим дерево с 2<sup>n</sup> листами и  2<sup>n</sup><sup>+1</sup>-1 узлами. Корень дерева a<sub>n</sub><sub>,0 </sub>является открытым ключом &#8211; public.</p>
<p>Сообщение M подписывается одноразовой системой подписи, используя пару ключей X<sub>i</sub> и Y<sub>i</sub>, в результате мы получаем signew. a<sub>0</sub><sub>,</sub><sub>i</sub>= H(Y<sub>i</sub>) – лист хеш-дерева.  Путь от a<sub>0,</sub><sub>i</sub> до корня назовем P, состоящий из n+1 узлов, P<sub>0</sub>= a<sub>0</sub><sub>,</sub><sub>i</sub>, а P<sub>n</sub>= a<sub>n</sub><sub>,0 </sub>= public. Для вычисления этого пути нам нужны все дети узлов P<sub>0</sub>, …, P<sub>n</sub><sub>.  </sub>P<sub>n</sub><sub>+1 = </sub>h(P<sub>i</sub>||auth<sub>i</sub>), где auth<sub>i</sub><sub>  - </sub>братский узел Pi. Подпись письма будет: sig = (signew ||auth<sub>0</sub>||auth<sub>1</sub>||&#8230;||auth<sub>n</sub><sub>−</sub><sub>1</sub>). При верификации записи проверяется signew сообщения M, если она верна, вычисляются P<sub>0</sub>, …, P<sub>n</sub>, если  P<sub>n</sub> равен открытому ключу  public, то подпись верна.</p>
<p>Последние годы ученые работают над улучшением схемы Меркле (Merkle Signature Scheme), достигнуты хорошие результаты по времени подписи и верификации сообщения [2,3], но несмотря на это, размер подписи является очень большим по сравнению с схемами подписи DSA и RSA.</p>
<p>Также одной из решений проблем, связанных с пост-квантовой криптографией, представляют McEliece – систему с открытыми ключами, которая в свою очередь основана на теории алгебраического кодирования. Разработана данная система в 1978 году Робертом Мак-Элисом. Данная система является первой системой шифрования с использованием процесса рандомизации. Несмотря на то, что алгоритм не получил широкого признания в класической криптографии, он является кандидатом для использования в постквантовой криптографии.</p>
<p>В данной системе открытый ключ – (G<sub>new</sub>, t), а закрытый ключ– (S, G, P), где G- это k x n порождающая матрица (generator matrix) для кода C. C &#8211; это случайный двоичный (n, k)-линейный код, способный исправить t ошибок. N- это количество  кодовых слов, k – размерность C. S – случайная k x k двоичная невырожденная матрица.  P – случайная n x n двоичная матрица перестановок. G<sub>new</sub><sub>  = </sub>S * G * P; k x n матрица. Для шифрования сообщения нужно сообщение m зашифровать как двоичную строку длины k; cyp = m x G<sub>new</sub><sub>; </sub> генерируется случайный n-битовый вектор ошибки v<em> </em>весом t. Шифр вычисляется как: c= cyp+v. Для расшифровки вычисляется cyp = c*P<sup>-1</sup> ; С помощью алгоритма расшифровки C вычисляется m<sub>new</sub>= m*S =&gt; m= m<sub>new</sub>*S<sup>-1</sup></p>
<p>На сегодняшний день уже выявлены успешные атаки на данную криптоситему.</p>
<p>Докторант Дублинского университета (DCU) Неил Костиган (Neill Costigan) при поддержке Irish Research Council for Science, Engineering and Technology (IRCSET), а также профессора Майкла Скотта (Michael Scott), члена Science Foundation Ireland (SFI) успешно смогли провести атаку на данный алгоритм. Для этого им понадобилось 8000 часов процессорного времени. В атаке принимали участие представители еще четырех стран. Ученые выяснили, что начальная длинна ключа в данном алгоритме недостаточна, и должна быть увеличена.</p>
<p>Также эту систему нельзя использовать для шифровки одного и того же сообщения два раза и для шифровки сообщения, когда известна его связь с другим сообщением [4].</p>
<p>Из вышесказанного видно, что на сегодняшний день мы не готовы для перевода криптосистем в пост-квантовую эпоху. В ближайшем будущем мы не можем быть уверены в надежности представленных систем.</p>
<p>Необходимо отметить важность спектра эффективности. На сегодняшний день эксперты достигли довольно хороших результатов в скорости выполнения алгоритма. По результатам исследования становится ясно, что предложенные пост-квантовые криптосистемы сравнительно мало эффективны, алгоритмы реализации требуют намного больше времени для их выполнения и верификации.</p>
<p>Неэффективная криптография наверное может быть приемлемой для обычного пользователя, но она не может быть таковой для интернета серверов, которые обрабатывают тысячи клиентов в секунду. У Google на сегодняшний день существуют проблемы с текущей криптографией. Несложно представить, что будет, когда на реализацию крипто алгоритмов будет уходить больше времени.</p>
<p>На развитие и улучшение современных криптосистем уйдут годы. К тому же, на них все время фиксируются успешные атаки. Когда определяется функция шифрования, и она становится стандартом, ей нужна реализация соответствующего программного, а в большинстве случаев, и аппаратного обеспечения.</p>
<p>Во время реализации необходимо обеспечить не только корректную работу функции и скорость ее эффективности, но также и избежание любого вида утечек. Недавно зафиксированы успешные «cache-timing» атаки на системы RSA и AES, вследствие чего компания Intel добавила AES инструкции в свои процессоры.</p>
<p>Система McEliece является уязвимой к атакам, связанным с утечками (side channel attacks). Была показана удачная атака по времени (timing attack) на алгоритм Паттерсона [5]. Данная атака не выявляет ключ, но выявляет вектор ошибки, что позволяет успешно расшифровать шифр сообщения.</p>
<p>Как мы видим, для создания и реализации безопасных и эффективных пост-квантовых криптосистем необходимо провести довольно большую работу.</p>
<p>&nbsp;</p>
<p>РАБОТА ВЫПОЛНЕНА В РАМКАХ НАУЧНОГО ГРАНТА «НАЦИОНАЛЬНОГО НАУЧНОГО ФОНДА  ШОТА РУСТАВЕЛИ» [№ YS15_2.1.2_9].</p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2016/05/67264/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Пост-квантовые криптосистемы, основанные на решетках</title>
		<link>https://web.snauka.ru/issues/2016/10/72575</link>
		<comments>https://web.snauka.ru/issues/2016/10/72575#comments</comments>
		<pubDate>Wed, 19 Oct 2016 12:01:37 +0000</pubDate>
		<dc:creator>Явич Максим Павлович</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[атаки]]></category>
		<category><![CDATA[безопастность]]></category>
		<category><![CDATA[криптосистемы]]></category>
		<category><![CDATA[пост-квантовые]]></category>
		<category><![CDATA[решетки]]></category>
		<category><![CDATA[шифрование]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=72575</guid>
		<description><![CDATA[Квантовые компьютеры способны разрушить большую часть, если не абсолютно все традиционные криптосистемы, которые широко используются в практике. Конкретно, системы, основанные на задаче факторизации целых чисел (например, RSA). Некоторые криптосистемы, как система RSA с четырех тысячными битными ключами, считаются полезными для защиты классических больших компьютеров от атак, но, вероятно являются абсолютно бесполезными против атак на большие [...]]]></description>
			<content:encoded><![CDATA[<p>Квантовые компьютеры способны разрушить большую часть, если не абсолютно все традиционные криптосистемы, которые широко используются в практике. Конкретно, системы, основанные на задаче факторизации целых чисел (например, RSA). Некоторые криптосистемы, как система RSA с четырех тысячными битными ключами, считаются полезными для защиты классических больших компьютеров от атак, но, вероятно являются абсолютно бесполезными против атак на большие квантовые компьютеры.</p>
<p>Одной из альтернатив пост-квантовых систем являются системы, основанные на решетках (lattice based). Данные системы известны высоким уровнем безопастности, основанной на «наихудших случаях» (worst-case hardness). Они основаны на сложности проблем решеток, основной из которых является проблема кратчайшего вектора (SVP).</p>
<p>На самом деле, мы рассматриваем приближенный вариант, когда мы находим вектор решетки, длина которого в α(n) раз больше кратчайшего ненулевого вектора. α(n) -коефициент апроксимация, n- размер решетки. Самый известный алгоритм проблем решеток – это LLL algorithm. [1]</p>
<p>Данный алгоритм протекает в полиномиальное время с коэффициентом аппроксимации 2<sup>O</sup><sup>(</sup><sup>n</sup><sup>)</sup>.</p>
<p>В 1987 году Шнор расширил LLL алгоритм и этим улучшил коэффициент аппроксимации, но при этом увеличил время исполнения алгоритма [2]. Шнор заменил ядро алгоритма LLL, блоками большего размера.</p>
<p>Были предложены стойкие к колизиям хеш функции, основанные на решетках. Аджтай (Ajtai) предложил семейство односторонних функций [3], безопасность которых основана на наихудшем случае, SVP с коэффициентом аппроксимации n<sup>c</sup>, где n &#8211; константа. Позже Гольдреих (Goldreich) показал, что данные функции стойки к колизиям. Для построения данного семейства хеш функций используются параметры, целые числа: n, m, q и d.</p>
<p>Выбор параметра n определяет безопастность хеш функции. Ключ к хеш функции задается матрицей M, выбранной равномерно из Z<sub>q</sub><sup>n</sup><sup>×</sup><sup>m</sup>. Хеш функция</p>
<p>f<sub>M</sub> : {0, . . . , d−1}<sup>m</sup> → Z<sub>q</sub><sup>n</sup>. Функция сопоставляет mlogd битам  nlogq бит,  для компрессии ввода, m &gt;  log q/ log d. Данную хеш функцию очень легко реализовать, т.к. мы используем только сложение и умножение по модулю q, размер которого O(log n). Но нужно отметить проблему эффективности этих функций, размер их ключа растет квадратично в n, поэтому данные функции являются неэффективными. Из-за атак на данные функции комбинаторным методом [4,5], для получения безопасности 100 бит, нужно использовать ключ размером 500000 бит.</p>
<p>Чтобы увеличить эффективность, можно заменить матрицу M блоковой матрицей, каждый блок которой является циркулянтной матрицей:</p>
<p>M = [M<sup>(1)</sup> | . . . | M<sup>(</sup><sup>m</sup><sup>/</sup><sup>n</sup><sup>)</sup>].</p>
<p>Данная структура блока уменьшает размер, нужный для хранения ключа, с nm до m элементов и также уменьшает время исполнения алгоритма, нужное для вычисления произведения матрицы на вектор My mod q.</p>
<p>Изменение структуры матрицы  привело к нахождению коллизии. При умножении каждого блока на постоянный вектор v<sub>i</sub> *1 = (v<sub>i</sub>, . . . , v<sub>i</sub>), вывод функции f<sub>M</sub>тоже будет постоянным вектором  c * 1. Т.к. c может принимать q разных значений, то коллизия может быть найдена за полиномиальное время q или даже O(√q).  Данная проблема была решена с помощью Peikert-а и Rosen-а и с помощью Lyubashevsky и Micciancio, используя идеальные матрицы.</p>
<p>Для построения данного семейства хеш  функций используются параметры, целые числа: n, m, q, d и вектор f ∈ Z<sub>n</sub>. В качестве ключа берется m/n векторов a<sub>1</sub>, . . . ,a<sub>m</sub><sub>/</sub><sub>n</sub> выбранных равномерно из Z<sup>n</sup><sub>q</sub> . Хеширование происходит следующим образом:</p>
<p>f<sub>M</sub> : {0, . . . , d − 1}<sup>m</sup> → Z<sub>q</sub><sup>n</sup> , где  f<sub>M</sub> (y) = [F∗a<sub>1</sub> | . . . | F∗a<sub>m/n</sub>]y mod q.</p>
<p>В качестве M берется блочная матрица с структурированными блоками M<sup>(</sup><sup>i</sup><sup>)</sup> = F∗a<sup>(</sup><sup>i</sup><sup>)</sup> .</p>
<p>Для безопасности, основанной на «наихудших случаях», ветор f должен удовлетворять следующим условиям:</p>
<ol>
<li>для двух единичных векторов u<sub>1</sub>, u<sub>2</sub> вектор [F∗ u<sub>1</sub>] u<sub>2</sub> должен иметь маленькую норму</li>
<li>Многочлен f(x) = x<sup>n</sup> + f<sub>n</sub>x<sup>n</sup><sup>−1</sup> + · · · + f<sub>1</sub> ∈ Z[x] должен быть не сократим на целые числа</li>
</ol>
<p>В [6] были предложены значания ветора f, удовлетворяющие обоим условиям:</p>
<p>f = (1, . . . , 1) ∈ Z<sub>n</sub><sub>,</sub> где n + 1 простое число<br />
f = (1, 0, . . . , 0) ∈ Zn, где n степень двойки.</p>
<p>Семейство хеш функций SWIFFT представляет оптимизированный вариант хеш функции, описанной выше, и является довольно эффективным благодаря использованию  FFT в Z<sub>q</sub>. Вектор f = (1, 0, . . . , 0) ∈ Zn, где n степень двойки.</p>
<p>Для построения данного семейства хеш функций используются параметры, целые числа: n, m, d и параметр q &#8211; простое число, такое, что 2n делит q-1.</p>
<p>В качестве ключа берется m/n векторов b<sub>1</sub>, . . . ,b<sub>m</sub><sub>/</sub><sub>n</sub> выбранных равномерно из Z<sup>n</sup><sub>q</sub> .</p>
<p>Принимаются m/n векторов : y<sub>1</sub>,  . . . , y<sub>m/n </sub>∈ {0, . . . , d − 1}<sup>n</sup></p>
<p>На выходе мы получаем вектор: ∑<sub>i</sub><sub>=1</sub><sup>m</sup><sup>/</sup><sup>n</sup>b<sup>(</sup><sup>i</sup><sup>) </sup>◦ Wy<sup>(</sup><sup>i</sup><sup>)</sup> ∈ Z<sub>n</sub> <sup>q</sup>; ◦ &#8211; покомпонентное векторное произведение. W ∈ Z<sup>n</sup><sup>×</sup><sup>n</sup><sub>q</sub>, обратимая матрица в Z<sub>q</sub>.</p>
<p>Функция хеширования переводит ключ и ввод функции в W*f<sub>M</sub>(y) mod q,</p>
<p>где M = F∗a<sub>1</sub> | . . . | F∗a<sub>m/n</sub>]; a<sup>(i)</sup>= W<sup>-1</sup> b<sup>(i)</sup></p>
<p>Мультипликативная группа целых чисел по модулю q, Z<sub>q</sub><sup>*</sup> имеет элемент w порядка 2n. За W возьмем матрицу Вандермонда (Vandermonde) с элементами:</p>
<p>w, w<sup>3</sup>,w<sup>5</sup>, … , w<sup>2</sup><sup>n</sup><sup>-1</sup>; W = [w<sup>(2</sup><sup>i</sup><sup>-1)(</sup><sup>j</sup><sup>-1)</sup>]<sup>n</sup><sup>,</sup><sup>n</sup> <sub>i</sub><sub>=1,</sub><sub>j</sub><sub>=1.</sub></p>
<p>Для избежания атак комбинаторным методом и атак, основанных на решетках, рекомендуются следующие параметры: n= 64; q= 257; m= 254; d= 2; w= 42; размер ключа – 8192 бит; размер ввода – 1024 бит ; размер вывода – 513 бит.</p>
<p>Были предложены схемы шифрования с открытым ключом, основанные на решетках. Голдреих, Голдвассер и Халеви предложили криптосистему: GGH, являющуюся аналогом криптосистемы McEliece, основанной на теории алгебраического кодирования [7].</p>
<p>Закрытым ключом является секретная матрица S, чьи столбцы формируют базис решетки L, данный базис состоит из коротких, почти ортогональных векторов.</p>
<p>Открытым ключом является открытая матрица B, формирующая плохой базис той же матрицы. Микианчио (Micciancio) предложил использовать  HNF (Hermite Normal Form) матрицы S.</p>
<p>Для шифрования сообщения, мы шифруем его как вектор m случайным образом, генерируем вектор ошибки v и высчитываем шифр: c = Bm + v</p>
<p>v сгенерировано из {-p,p}<sup>n</sup>. p- параметр безопасности.</p>
<p>Для расшифровки вычисляем: m = B<sup>−</sup><sup>1</sup>S[S<sup>-1</sup>c].</p>
<p>В 1999 году, Nguyen опубликовал атаку на GGH,способную взломать систему для размеров матрицы до 350. Эта атака успешна из-за двух уязвимостей системы:</p>
<p>Первая заключается в том, что векторы ошибок всегда очень коротки по сравнению с векторами решетки. Это приводит к тому, что проблему CVP, т.е. проблему самого близкого вектора, становится легче решить.</p>
<p>Вторая уязвимость заключается в выборе вектора ошибки. Nguyen предложил несколько вариантов исправления второй уязвимости, но все они приводят к увеличению первой.</p>
<p>Из-за данной атаки приходится увеличивать размер матрицы, что делает систему неэффективной.</p>
<p>Также надо отметить, что данная система не является семантически безопасной.</p>
<p>В 1996 году Хофштейн, Пифер и Силверман предложили криптосистему NTRU.</p>
<p>NTRU обычно описывается как кольцевая криптосистема многочленов. Тем не менее, связь между открытым и закрытым ключами определяет решетку, которая называется решеткой NTRU. Базис для этой решетки может быть получен из открытого ключа. Кроме того, закрытый ключ криптосистемы соответствует определенным коротким векторам в этой решетке. Таким образом, естественная атака на эту систему &#8211; это попытка решить проблему кратчайшего вектора в данной решетке. Тем не менее, не обязательно использовать решетки во время шифрования и дешифрования.</p>
<p>Закрытым ключом является короткий вектор (f , g) ∈ Z<sup>2</sup><sup>n</sup>. Открытый ключ &#8211;  h = p[R*f ]<sup>-</sup><sup>1</sup>g mod q, где p – это маленький модуль, R это циклический поворот, переводящий вектор  (x<sub>1</sub>, x<sub>2</sub>, … , x<sub>n</sub>)<sup>T</sup> в (x<sub>n</sub>, x<sub>1</sub>, … , x<sub>n</sub><sub>-</sub><sub>1</sub>)<sup>T</sup>, p – это большой модуль.</p>
<p>Шифрование происходит следующим образом: сообщение шифруется как вектор m ∈ {1,0,-1}<sup>n</sup>, для случайности используется вектор r ∈ {1,0,-1}<sup>n</sup>, содержащий</p>
<p>d<sub>r</sub> записей -1, а всех остальных – 0. d<sub>r</sub> –граница целого числа для r.</p>
<p>Шифр высчитывается: c = m + [R∗h]r mod q</p>
<p>Для расшифровки:</p>
<p>red = [R*f ]c (mod q);  все коеффиценты red должны лежать в интервале: [-q/2;q/2].</p>
<p>Сообщение высчитываем: m = [R*f ]<sub>p</sub><sup>-1</sup>red (mod p);</p>
<p>Коперсмит и Шамир (Coppersmith, Shamir) осуществили атаку на закрытый ключ системы. Целью атаки является обнаружить векторы f и g или векторы, близкие к ним, которые можно использовать для расшивровки шифра. Вектор (f, g) и его попарные вращения представляют собой векторы в решетке NTRU. Евклидова норма этого вектора равна (2d<sub>f</sub> − 1 + 2d<sub>g</sub>)<sup>1/2</sup>. Объем решетки NTRU задается как Det (L) = q<sup>n</sup> и размерность решетки 2n. Ожидается, что кратчайший вектор имеет длину приблизительно det(L) <sup>1/2</sup><sup>n</sup> = q<sup>1/2</sup></p>
<p>Т.к. (2d<sub>f</sub> − 1 + 2d<sub>g</sub>)<sup>1/2</sup>&lt;&lt; q<sup>1/2</sup>, с большой вероятностью вектор (f, g) является кратчайшим вектором решетки, значит, его попарные вращения являются также кандидатами ны самый короткий вектор. Также эти векторы можно использовать для расшифровки шифра.</p>
<p>Коперсмит и Шамир показали, что в случае, если полученный вектор больше, чем (f, g) на какую-то постоянную величину, можно скомбинировать несколько таких векторов и этим расшифровать шифр.</p>
<p>При использовании современных алгоритмов сокращения решетки коеффициент апроксимации кратчайшей векторной задачи все равно экспоненциален в n.</p>
<p>Howgrave-Graham показал, что возможно улучшить эту атаку, если скомбинировать ее с комбинаторной атакой. Чтобы противостоять данной атаке, надо увеличить параметры системы.</p>
<p>Открытый ключ системы имеет размер n log<sub>2</sub>(q) . Время выполнения алгоритма зависит от n и от  границ целых чисел. Для увеличения эффективности системы в роли закрытого ключа можно брать f= u+pf<sub>r</sub>, где u &#8211; это первый единичный вектор, а записи f<sub>r</sub>случайно выбраны из (1, 0, −1) в зависимости от d<sub>f</sub>. Этим мы увеличиваем эффективность, так как мы избавляемся от шага умножения.</p>
<p>Криптосистема NTRU является намного более эффективной чем GGH и AD.</p>
<p>AD криптосистема была предложена Ajtai-Dwork-ом в 1997 году. Данная система определяется в евклидовой настройке векторного пространства, используя стандартную евклидову норму. Параметр безопасности n определяет размерность векторного пространства.</p>
<p>Закрытый ключем выбираится вектор u случайным образом из шара B размера n, с радиусом n<sup>-</sup><sup>c</sup>, для целого c&gt;0. На n размерном кубе C определено распеределение U следующим образом:</p>
<p>берется x из {x ∈ C:, &lt;x,u&gt; ∈ Z } случайным образом, рисуются n векторов ошибки e<sub>1</sub>,e<sub>2</sub>,…,e<sub>n</sub>из шара B тоже случайным образом. Выдается v = x + ∑<sup>n</sup><sub>i</sub><sub>=1</sub>e<sub>i</sub>.</p>
<p>Для выбора открытого ключа из U случайным образом берутся векторы w<sub>1</sub>, w<sub>2</sub>, … , w<sub>n</sub> и  v<sub>1</sub>,v<sub>2</sub>, … , v<sub>m</sub>. w<sub>i</sub> должны бать выбраны таким образом, чтобы параллелепипед, который они образуют, не был бы очень плоским, если это не так, то генерируется новый ключ. Шифрование выполняется на один бит за один раз. Для шифрования бита 0 берутся</p>
<p>b<sub>1</sub>,b<sub>2</sub>, … , b<sub>m</sub><sub>  </sub>случайным образом из {0,1} и уменьшается на ∑<sub>i</sub>b<sub>i</sub>v<sub>i</sub>по модулю параллелепипед, который образуют w<sub>i</sub>. Для шифрования бита 1 случайным образом выбирается n размерный вектор из параллелепипеда, и он используется как шифр.</p>
<p>Для расшифровки высчитывается внутреннее произведение векторов c и u. Если расстояние (&lt;c,u&gt;, Z) &lt;= n<sup>-1</sup>, тогда c расшифровывается как 0, в  другом случае как 1.</p>
<p>Нгюен и Штерн (Nguyen , Stern) показали возможную атаку на данную криптосистему. Они свели различия между нулем и единицей к аппроксимации SVP в пределах коэффициента n<sup>0.5-</sup><sup>eps</sup> или CVP в пределах коэффициента n<sup>1.33</sup>. Как показали Голдреих и Голдваисер (Goldreich , Goldwasser), аппроксимация CVP с таким коэффициентом не является NP трудной.</p>
<p>Для расшифровки с CVP, Нгюен и Штерн строят решетку размерности n+m в R<sup>2</sup><sup>n</sup><sup>+</sup><sup>m</sup><sub>, </sub>которая включает такие w<sub>i</sub>и v<sub>i</sub>,что шифрование нулей находится близко от решетки.</p>
<p>Позже Нгюен и Штерн осуществили атаку на закрытый ключ системы с помощью построения решетки в R<sup>n</sup><sup>+</sup><sup>m</sup>, зависящей только от v<sub>i</sub>и потом с помощью приближения внутреннего произведения v<sub>i</sub>и u, с помощью умного использования коротких векторов в решетке. При достаточном количестве этих приближений, секретный вектор u может быть в достаточной степени приближен для взлома системы.</p>
<p>Регев (Regev) предложил криптосистему LWE[8], данная криптосистема считается самой эффективной системой, основанной на решетках.</p>
<p>Закрытым ключом системы является матрица S ∈ Zq <sup>nxl</sup>, выбранная случайным образом. q,n и l целые числа.</p>
<p>Открытым ключом является (A,P = AS+E) ∈ Z<sub>q </sub><sup>mxn </sup>x Z<sub>q </sub><sup>mxl</sup>, где A ∈ Z<sub>q </sub><sup>mxn</sup>, выбранная случайным образом. E ∈ Z<sub>q </sub><sup>mxl</sup>, где данные выбираются согласно распределению Ψ<sub>α</sub>, над Z<sub>q</sub>, полученному путем выборки обычной переменной со средним значением 0 и отклонением αq/(2π)<sup>1/2</sup>, округлением результата до ближайшего целого числа и уменьшением его по модулю q.</p>
<p>Шифрование происходит следующим образом: дается элемент из пространства сообщения e ∈ Z<sub>t</sub><sup>l</sup><sub> </sub> и открытый ключ (A,P), выбирается вектор v ∈ {-d, -d+1, … , d}<sup>m</sup> случайным образом, d – целое число, и выдается шифр: (u = A<sup>T</sup>v,c = P<sup>T</sup>v + f(e)) ∈ Z<sub>q</sub><sup>n</sup><sub> </sub>x Z<sub>q</sub><sup>l</sup>.<sub> </sub></p>
<p>Расшифровка происходит следующим образом: Дается шифр (u,c) Z<sub>q</sub><sup>n</sup><sub> </sub>x Z<sub>q</sub><sup>l</sup> и закрытый ключ: S ∈ Zq <sup>nxl</sup> и выдается: f<sup>-1</sup>(C-S<sup>T</sup>u)</p>
<p><a href="https://web.snauka.ru/issues/2016/10/72575/1-558" rel="attachment wp-att-72577"><img class="size-full wp-image-72577 aligncenter" src="https://web.snauka.ru/wp-content/uploads/2016/10/11.png" alt="" width="891" height="378" /></a></p>
<p align="center">Рис. 1 Криптосистема LWE</p>
<p>Данную систему довольно легко реализовать, используя только сложение и умножение по модулю q. Для оптимизации времени выполнения можно t установить степенью двойки и если откладывать операции сокращения по модулю.</p>
<p>Данная система обладает следующими свойствами:</p>
<p>Размер открытого ключа:  nl log q</p>
<p>Размер закрытого ключа:  m(n+l) log q</p>
<p>Размер сообщения: l log t</p>
<p>Размер шифра: (n+l) log q</p>
<p>Фактор увеличения шифрования: (1+n/l)loq/logt</p>
<p>Операции, нужные для шифрования одного бита: O(m(1+n/l))</p>
<p>Операции, нужные для расшифровки одного бита: O(n)</p>
<p>Также были предложены системы электронной подписи, основанные на решетках.</p>
<p>Были предложены системы электронной подписи GGH и NTRUSign[9].</p>
<p>Закрытым ключом является секретная матрица S, чьи столбца формируют базис решетки L, данный базис состоит из коротких, почти ортогалнальных векторов.</p>
<p>Открытым ключом является открытая матрица B, формирующая плохой базис той же матрицы.  Лучше всего использовать  HNF (Hermite Normal Form) матрицы S.</p>
<p>Для шифрования сообщения мы отображаем его в точку m ∈ R<sup>n</sup>, используя секретный базис, затем мы округляем m до рядом находящейся точке n ∈ L(S), используя секретный базис. Это происходит с  помощью процедуры округления Бабая (Babai’s)</p>
<p>n = S[S<sup>-1</sup>m].</p>
<p>Для верификации  пары подписи и сообщения (m,n) нужно проверить, что</p>
<p>n ∈ L(B) = L(S), используя открытый ключ B, и что расстояние от n до m маленькое.</p>
<p>&nbsp;</p>
<p>Джентри и Шидло (Gentry ,Szydlo) заметили, что каждая подпись дает утечку информации о секретном ключе. Через несколько лет Нгюен и Регев (Nguyen, Regev) показали, что данная утечка ведет к атаке на сектретный ключ.</p>
<p>Основная идея атаки в том, что разница m-n распределена равномерно. Следовательно, учитывая достаточное количество таких пар, мы в конечном итоге приходим к алгоритмической проблеме &#8211; так называемой скрытой проблеме параллелепипеда (рис 2).</p>
<p><a href="https://web.snauka.ru/issues/2016/10/72575/2-350" rel="attachment wp-att-72578"><img class="size-full wp-image-72578 aligncenter" src="https://web.snauka.ru/wp-content/uploads/2016/10/22.png" alt="" width="667" height="402" /></a></p>
<p align="center">Рис 2. Скрытая проблема параллелепипеда</p>
<p>Решение данной проблемы приводит к данной атаке. Для защиты от данных атак наиболее эффективными мерами являются методы искажения. Скрытый параллелепипед заменяется более сложными фигурами, что помогает предотвратить данные атаки. Данные методы защиты замедляют генерацию подписи и увеличивают размер закрытого ключа.</p>
<p>Джентри, Пейкерт и Вайкунтанатан (Gentry, Peikert, Vaikuntanathan) определили схему под названием «preimage sampleable trapdoor functions» и показали как построить ее на основе «наихудших случаев» проблем решетки. Данная конструкция может быть использоваться как вариант GGH с доказательством безопасности. Также данная схема не дает утечек информации о секретном базисе. Это достигнуто с помощью замены процедуры округления Бабая, процедурой отбора Гаусса. Система имеет квадратичную сложность, как в случае размера ключа, так в случае времени верификации.</p>
<p>Любашевский и Микианчио предложили схему электронной подписи (Lyubashevsky, Micciancio) с безопастностью, основанной на «наихудших случаях» проблем решетки, схема является асимптотически эффективной, как в случае размера ключа, так в случае времени верификации имеет линейную сложность[10]. Данная система использует новую одноразовую систему подписи, основанную на хешировании. Такого типа схемы могут быть преобразованы в полноценные схемы подписи с использованием стандартных конструкций дерева только с логаритмической потерей эффективности. Одноразовая схема подписи основана на хеш функции, резистентной к колизиям, основанной на идеальных решетках. Хэш-функция h, может быть выбрана в процессе генерации ключа, или быть фиксированным параметром. Вводимые данные функции -это векторы v<sub>1</sub>, … v<sub>m</sub><sub>/</sub><sub>n</sub>∈Zq<sup>n</sup>. Закрытым ключем функции является случайно выбранная пара x<sub>1</sub>, … x<sub>m</sub><sub>/</sub><sub>n</sub>∈Zq<sup>n</sup>и v<sub>1</sub>, … v<sub>m</sub><sub>/</sub><sub>n</sub>∈Zq<sup>n</sup>, выбранная в соответствии с соответствующим распределением, которое генерирует короткие векторы с высокой вероятностью. Открытым ключом является образ данных двух значений ввода: X = h (x<sub>1</sub>, … x<sub>m</sub><sub>/</sub><sub>n</sub>) и V= h (v<sub>1</sub>, … v<sub>m</sub><sub>/</sub><sub>n</sub>). Сообщения представлены в виде коротких векторов: m ∈Zq<sup>n</sup>. Подпись высчитывается так:</p>
<p>sig = (sig<sub>1</sub>, … x<sub>m/n</sub>) = ([F*m]x<sub>1 + </sub>v<sub>1</sub>, … [F*m]x<sub>m/n + </sub>v<sub>m/n</sub>) mod q.</p>
<p>Для верификации подписи проверяется, является ли sig последовательностью коротких векторов, которая хешируется в [F*m]X + V mod q.</p>
<p>Безопасность схемы опирается на то, что даже после того, как злоумышленник увидит подпись, значение секретного ключа скрыто от него.</p>
<p>Как мы видим, несмотря на то, что предложены криптосистемы для пост-квантовой эпохи, основанные на решетках, на них фиксируются атаки и они являются не эффективными. Таким образом для создания и реализации безопасных и эффективных пост-квантовых криптосистем, основанных на решетках, необходимо провести довольно большую работу.</p>
<p>РАБОТА ВЫПОЛНЕНА В РАМКАХ НАУЧНОГО ГРАНТА «НАЦИОНАЛЬНОГО НАУЧНОГО ФОНДА  ШОТА РУСТАВЕЛИ» [№ YS15_2.1.2_9].</p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2016/10/72575/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
