Главная страница

Криптография 2е издание Протоколы, алгоритмы и исходные тексты на языке С


Скачать 3.25 Mb.
НазваниеКриптография 2е издание Протоколы, алгоритмы и исходные тексты на языке С
Дата29.04.2022
Размер3.25 Mb.
Формат файлаpdf
Имя файлаShnayer_Prikladnaya-kriptografiya.352928.pdf
ТипПротокол
#504484
страница47 из 78
1   ...   43   44   45   46   47   48   49   50   ...   78
q = простое число - множитель p-1, длиной от 254 до 256 битов.
a = любое число, меньшее p-1, для которого a q
mod p = 1.
x = число, меньшее q.
y = a x
mod p.
Этот алгоритм также использует однонаправленную хэш-функцию : H(x). Стандарт определяет использова- ние хэш-функции ГОСТ Р 34.1 1-94 (см. раздел 18.1 1), основанной на симметричном алгоритме ГОСТ (см.
раздел 14.1) [657].
Первые три параметра, p, q и a, открыты и могут использоваться совместно пользователями сети . Закрытым ключом служит x, а открытым - y. Чтобы подписать сообщение m
(1)
Алиса генерирует случайное число k, меньшее q
(2)
Алиса генерирует I = (a* mod p) mod q s = (ct + k(H(m))) mod q r = (a k
mod p) mod q s = (xr + k(H(m))) mod q
Если H(m) mod q =0, то значение хэш-функции устанавливается равным 1. Если r =0, то выберите другое значение k и начните снова. Подписью служат два числа: r mod 2 256
и s mod 2 256
, Алиса посылает их Бобу.
(3)
Боб проверяет подпись, вычисляя v = H(m)
q-2
mod q
z
1
= (sv) mod q z
2
= ((q-r)*v) mod q u = ((
a y
z z
1 2
*
) mod p) mod q
Если u = r, то подпись правильна.
Различие между этой схемой и DSA в том, что в DSA s = (k
-1
(H(m) + xr)) mod q, что дает другое уравне- ние проверки. Любопытно, однако, что длина q равна 256 битам. Большинству западных криптографов кажется достаточным q примерно 160 битов длиной. Может быть это просто следствие русской привычки играть в сверхбезопасность.
Стандарт используется с начала 1995 года и не закрыт грифом "Для служебного пользования", что бы это не значило.
20.4 Схемы цифровой подписи с использованием дискретных логарифмов
Схемы подписи ElGamal, Schnorr (см. раздел 21.3) и DSA очень похожи. По сути, все они являются тремя примерами общей схемы цифровой подписи, использующей проблему дискретных логарифмов . Вместе с тыся- чами других схем подписей они являются частью одного и того же семейства [740, 741, 699, 1184].
Выберем p, большое простое число, и q, равное либо p-1, либо большому простому множителю p-1. Затем выберем g, число между 1 и p, для которого g q
? 1 (mod p). Все эти числа открыты, и могут быть совместно ис- пользованы группой пользователей. Закрытым ключом является x, меньшее q. Открытым ключом служит y =g x mod q.
Чтобы подписать сообщение m, сначала выберем случайное значение k, меньшее q и взаимно простое с ним.
Если q тоже простое число, то будет работать любое k, меньшее q. Сначала вычислим r = g k
mod p
Обобщенное уравнение подписи примет вид ak = b + cx mod q
Коэффициенты a, b и c могут принимать различные значения. Каждая строка 16th предоставляет шесть воз- можностей. Проверяя подпись, получатель должен убедиться, что r
a
= g b
y c
mod p
Это уравнение называется уравнением проверки.
Табл. 20-4.
Возможные перестановки a, b и c
(r'= r mod q)
± r
± s m
± r m
± s
1
± r m
± ms
1
± m r
± r s
1
± ms
± r s
1
В 15th перечислены возможные варианты подписи и проверки, полученные только из первой строки воз- можных значений a, b и c без учета эффектов ±.
Табл. 20-5.
Схемы цифровой подписи с использованием дискретных логарифмов
Уравнение подписи
Уравнение проверки
(1) r'k=s+mx mod q r
r'
=g s
y m mod p
(2) r'k=m+sx mod q r
r'
=g m
y s mod p
(3) sk= r'+mx mod q r
s
=g r'
y m mod p

(4) sk= m+ r'x mod q r
s
=g m
y r' mod p
(5) mk= s+ r'x mod q r
m
=g s
y r' mod p
(6) mk= r'+sx mod q r
m
=g r'
y s mod p
Это шесть различных схем цифровых подписей . Добавление минуса увеличивает их количество до 24. При использовании всех возможных значения a, b и c число схем доходит 120.
EIGamal [518, 519] и DSA [1154] по существу основаны на уравнении (4). Другие схемы - на уравнении (2)
[24, 1629]. Schnorr [1396, 1397], как и другая схема [1183], тесно связан с уравнением (5). А уравнение (1) мож- но изменить так, чтобы получить схему, предложенную в [1630]. Оставшиеся уравнения - новые.
Далее. Любую из этих схем можно сделать более DSA-подобной, определив r как r = (g k
mod p) mod q
Используйте то же уравнение подписи и сделайте уравнением проверки u
1
= a
-1
b mod q u
2
= a
-1
c mod q v = ((
g y
u u
1 2
*
) mod p) mod q
(r mod q)
a
= g b
y c
mod p
Существуют и две другие возможности подобных преобразований [740, 741]. Такие операции можно проде- лать с каждой из 120 схем, доведя общее число схем цифровой подписи, использующих дискретные логарифмы,
до 480.
Но и это еще не все. Дополнительные обобщения и изменения приводят более, чем к 13000 вариантам (не все из них достаточно эффективны) [740, 741].
Одной из приятных сторон использования RSA для цифровой подписи является свойство, называемое вос- становлением сообщения. Когда вы проверяете подпись RSA, вы вычисляете m. Затем вычисленное m сравни- вается с сообщением и проверяется, правильна ли подпись сообщения . В предыдущих схемах восстановить m при вычислении подписи невозможно, вам потребуется вероятное m, которое и используется в уравнении про- верки. Но, оказывается, можно построить вариант с восстановлением сообщения для всех вышеприведенных схем. Для подписи сначала вычислим r = mg k
mod p и заменим m единицей в уравнении подписи. Затем можно восстановит уравнение проверки так, чтобы m могло быть вычислено непосредственно. То же самое можно предпринять для DSA-подобных схем:
r = (mg k
mod p) mod q
Безопасность всех вариантов одинакова, поэтому имеет смысл выбирать схему по сложности вычисления .
Большинство схем замедляет необходимость вычислять обратные значения . Как оказывается, одна из этих схем позволяет вычислять и уравнение подписи, и уравнение проверки без использования обратных значений, при этом еще и восстанавливая сообщение. Она называется схемой p-NEW [1184].
r = mg
-k mod p s = k - r'x mod q m восстанавливается (и проверяется подпись) с помощью вычисления m = g s
y r'
r mod p
В ряде вариантов одновременно подписывается по два-три блока сообщения [740], другие варианты можно использовать для слепых подписей [741].
Это значительная область для изучения. Все различные схемы цифровой подписи с использованием ди с- кретных логарифмов были объединены логическим каркасом. Лично я считаю, что это окончательно положит конец спорам между Schnorr [1398] и DSA [897]: DSA не является ни производной Schnorr, равно как и EIGa- mal. Все три алгоритма являются частными случаями описанной общей схемы, и эта общая схема незапатент о- вана.

20.5 ONG-SCHNORR-SHAMIR
Эта схема подписи использует многочлены по модулю n [1219, 1220]. Выбирается большое целое число
(знать разложение n на множители не обязательно). Затем выбирается случайное число k, взаимно простое с n, и вычисляется h, равное h = -k
-2
mod n = -(k
-1
)
2
mod n
Открытым ключом служат h и n; а закрытым - k.
Чтобы подписать сообщение M, сначала генерируется случайное число r, взаимно простое с n. Затем вычис- ляется:
S
1
= 1/2 (M/H +r) mod n
S
2
= 1/2 (M/H -r) mod n
Пара чисел S
1 и S
2
представляет собой подпись. Проверяя подпись, убеждаются, что
S
1 2
+ h*S
2 2
? M (mod n)
Описанный здесь вариант схемы основан на квадратичных многочленах . При его опубликовании в [1217] за успешный криптоанализ было предложено вознаграждение в $100. Небезопасность схемы была доказана [1255,
18], но это не остановило ее авторов. Они предложили модификацию алгоритма, основанную на кубических многочленах, также оказавшуюся небезопасной [1255]. Авторы предложили версию на базе многочленов че т- вертой степени, но была взломана и она [524, 1255]. Вариант, решающий эти проблемы, описан в [1134].
20.6 ESIGN
ESICN -это схема цифровой подписи, разработанная NTT Japan [1205, 583]. Утверждалось, что она не менее безопасна, чем RSA или DSA, и намного быстрее при тех же размерах ключа и подписи . Закрытым ключом служит пара больших простых чисел p и q. Открытым ключом является n, для которого n = p
2
*q
H - это хэш-функция, применяемая к сообщению m, причем значение H(m) находится в пределах от 0 до n-1.
Используется также параметр безопасности k, который будет вкратце рассмотрен.
(1)
Алиса выбирает случайное число x, меньшее pq.
(2)
Алиса вычисляет:
w, наименьшее целое, которое больше или равно
(H(m) - x k
mod n)/pq s = x + ((w/kx k-1
mod p) pq
(3)
Алиса посылает s Бобу.
(4)
Для проверки подписи Боб вычисляет s k
mod n. Кроме этого, он вычисляет a, наименьшее целое, которое больше или равно удвоенному числу битов n, деленному на 3. Если H(m) меньше или равна s k
mod n, и ес- ли s k
mod n меньше H(m)+2
a
, то подпись считается правильной.
Выполнив ряд предварительных вычислений, этот алгоритм можно ускорить . Эти вычисления могут быть выполнены в произвольный момент времени и никак не связаны с подписываемым сообщением . Выбрав x,
Алиса может разбить этап (2) на два подэтапа. Сначала.
(2a) Алиса вычисляет:
u = x k
mod n v = l/(kx k-1
) mod p
(2b) Алиса вычисляет:
w= наименьшее целое, которое больше или равно
(H(m) - u)/pq s = x + ((wv mod p) pq
Для обычно используемых размеров чисел предварительные вычисления ускоряют процесс подписи на п о- рядок. Почти вся трудная работа выполняется именно на стадии предварительных вычислений . Обсуждение действий модульной арифметики, выполняемых при ускорении ESIGN, можно найти в [1625, 1624]. Этот алго-
ритм можно расширить для работы с эллиптическими кривыми [1206].
Безопасность ESIGN
Когда этот алгоритм был впервые предложен , k было выбрано равным 2 [1215]. Такая схема быстро была взломана Эрни Брикеллом (Ernie Brickell) и Джоном ДеЛаурентисом [261], которые распространили свое вскрытие и на случай k = 3. Модифицированная версия этого алгоритма [1203] была взломана Шамиром [1204].
Вариант, предложенный в [1204], был взломан в [1553]. ESIGN - это сегодняшняя реинкарнация алгоритмов из этого семейства. Попытка вскрыть ESIGN [963] оказалась безрезультатной.
В настоящее время авторы рекомендуют использовать следующие значения k: 8, 16, 32, 64, 128, 256, 512 и
1024. Они также рекомендуют, чтобы p и q были не меньше 192 битов каждое, образуя n не менее, чем 576 би- тов в длину. (Я думаю, что n должно быть еще в два раза больше.) Авторы считают, что с такими значениями параметров, безопасность ESIGN равна безопасности RSA или Rabin. И выполненный ими анализ показывает,
что скорость ESIGN намного выше, чем у RSA, EIGamal и DSA [582].
Патенты
ESICN запатентован в Соединенных Штатах [1208], Канаде, Англии, Франции, Германии и Италии. Любой,
кто хочет получить лицензию на алгоритм, должен обратиться в Отдел интеллектуальной собственности NTT
(Intellectual Property Department, NTT, 1-6Uchisaiwai-cho, 1-chome, Chiyada-ku, 100 Japan).
20.7 Клеточные автоматы
Совершенно новая идея, изученная Папуа Гуамом ( Papua Guam) [665], состоит в использовании в криптоси- стемах с открытыми ключами клеточных автоматов. Эта система все еще слишком нова и не прошла через тща- тельное изучение, но предварительное исследование показало, что у нее может быть такое же криптографически слабое место, как и у других систем [562]. Тем не менее, это многообещающая область исследований . Свойст- вом клеточных автоматов является то, что даже если они инвертируемы, невозможно вычислить предка прои з- вольного состояния, инвертировав правило нахождения потомка . Это выглядит очень похоже на однонапра в- ленную хэш-функцию с лазейкой.
20.8 Другие алгоритмы с открытым ключом
За эти годы было предложено и вскрыто множество других алгоритмов с открытыми ключами. Алгоритм
Matsumoto-lmai [1021] был вскрыт в [450]. Алгоритм Cade был впервые предложен в 1985 году, взломан в 1986
[774], и затем доработан в том же году [286]. Помимо этих вскрытий, существуют общие вскрытия, расклады- вающие многочлены над конечными полями [605]. К любому алгоритму, безопасность которого определяется композицией многочленов над конечными полями, нужно относиться со скептицизмом, если не с откровенным подозрением.
Алгоритм Yagisawa объединяет возведение в степень mod p с арифметикой mod p-1 [1623], он был взломан в
[256]. Другой алгоритм с открытым ключом, Tsujii-Kurosawa-Itoh-Fujioka-Matsumoto [1548] , также оказался небезопасным [948]. Небезопасной [717] была и третья система, Luccio-Mazzone [993]. Схема подписи на базе birational перестановок [1425] была взломана на следующий день после ее представления [381]. Несколько схем подписей предложил Тацуаки Окамото (Tatsuaki Okamoto): было доказано, что одна из них так же безопасна,
как проблема дискретного логарифма, а другая - как проблема дискретного логарифма и проблема разложения на множители [1206]. Аналогичные схемы представлены в [709].
Густавус Симмонс (Gustavus Simmons) предложил использовать в качестве основы алгоритмов с открытыми ключами J-алгебру [1455, 145]. От этой идеи пришлось отказаться после изобретения эффективных методов разложения многочленов на множители [951]. Также были изучены и специальные полугруппы многочленов
[1619, 962], но и это ничего не дало. Харальд Нидеррейтер (Harald Niederreiter) предложил алгоритм с откры- тым ключом на базе последовательностей сдвиговых регистров [1166]. Другой алгоритм использовал слова
Линдона (Lyndon) [1476], а третий - prepositional исчисление [817]. Безопасность одного из недавних алгорит- мов с открытыми ключами основывалась на проблеме matrix cover [82]. Тацуаки Окамото и Казуо Ота (Kazuo
Ohta) провели сравнение ряда схем цифровой подписи в [1212].
Перспективы создания радикально новых и различных алгоритмов с открытыми ключами неясны . В 1988
году Уитфилд Диффи отметил, что большинство алгоритмов с открытыми ключами основаны на одной из трех трудных проблем [492, 494]:
1. Рюкзак: Дано множество уникальных чисел, найти подмножество, сумма которого равна N.
2. Дискретный логарифм: Если p - простое число, а g и M - целые, найти x, для которого выполняется g
x
?M (mod p).

3. Разложение на множители: Если N - произведение двух простых чисел, то лиьо
(a) разложить N на множители,
(b) для заданных целых чисел M и C найти d, для которого M
d
? C (mod N),
(c) для заданных целых чисел e и C найти M, для которого M
e
? C (mod N),
(d) для заданного целого числа x определить, существует ли целое число y, для которого x ? y
2
(mod N).
Согласно Диффи [492, 494], проблема дискретных логарифмов была предложена Дж. Гиллом ( J. Gill), про- блема разложения на множители - Кнутом , а проблема рюкзака - самим Диффи.
Эта узость математических основ криптографии с открытыми ключами немного беспокоит . Прорыв в реше- нии либо проблемы дискретных логарифмов, либо проблемы разложения на множители сделает небезопасными целые классы алгоритмов с открытыми ключами. Диффи показал [492, 494], что подобный риск смягчается двумя факторами:
1. Все операции, на которые сейчас опирается криптография с открытыми ключами - умножение, возведение в степень и разложение на множители - представляют собой фундаментальные арифметические явления . Веками они были предметом интенсивного математического изучения, и рост внимания к ним, вызванный применением в криптосистемах с открытыми ключами, увеличил, а не уменьшил наше доверие.
2. Наша возможность выполнять большие арифметические вычисления растет равномерно и сейчас позволяет нам реал и- зовывать системы с числами такого размера, чтобы эти системы были чувствительны только к действительно радикальным прорывам в разложении на множители, дискретных логарифмах или извлечении корней .
Как мы уже видели, не все алгоритмы с открытыми ключами, основанные на этих проблемах, безопасны .
Сила любого алгоритма с открытым ключом зависит не только от вычислительной сложности проблемы, леж а- щей в основе алгоритма. Трудная проблема необязательно реализуется в сильном алгоритме . Ади Шамир объ- ясняет это тремя причинами [1415]:
1. Теория сложности обычно связана с отдельными частными случаями проблемы. Криптоаналитик же часто получает большой набор статистически связанных проблем - различные шифротексты, заши ф- рованные одним и тем же ключом.
2. Вычислительная сложность проблемы обычно измеряется для худшего или среднего случаев . Чтобы быть эффективной в качестве способа шифрования, проблема должна быть трудной для решения по ч- ти во всех случаях.
3. Произвольную сложную проблему необязательно можно преобразовать в криптосистему, к тому же проблема должна позволить встроить в нее лазейку, знание которой и только оно делает возможным простое решение проблемы.

Глава 21
Схемы идентификации
21.1 FEIGE-FIAT-SHAMIR
Схема цифровой подписи и проверки подлинности, разработанная Амосом Фиатом ( Amos Fiat) и Ади Ша- миром (Adi Shamir), рассматривается в [566, 567]. Уриель Фейге (Uriel Feige), Фиат и Шамир модифицировали алгоритм, превратив его в доказательство подлинности с нулевым знанием [544, 545]. Это лучшее доказатель- ство подлинности с нулевым знанием.
9 июля 1986 года три автора подали заявку на получение патента США [1427]. Из-за возможного военного применения заявка была рассмотрена военными . Время от времени результатом работы Патентное бюро явл я- ется не выдача патента, а нечто, называемое секретным распоряжением . 6 января 1987 года, за три дня до исте- чения шестимесячного периода, по просьбе армии Патентное бюро издало такое распоряжение . Заявило, что "
. . . раскрытие или публикация предмета заявки . . . может причинить ущерб национальной безопасности . . ."
Авторам было приказано уведомить всех граждан США, которые по тем или иным причинам узнали о пров о- димых исследованиях, что несанкционированное раскрытие информации может закончиться двумя годами т ю- ремного заключения, штрафом $10,000 или тем и другим одновременно. Более того, авторы должны были со- общить Уполномоченному по патентам и торговым знакам обо всех иностранных гражданах, которые получили доступ к этой информации.
Это было нелепо. В течение второй половины 1986 года авторы представляли свою работу на конференциях в Израиле, Европе и Соединенных Штатах . Они даже не были американским гражданами, и вся работа была выполнена в Институте Вейцмана (Weizmann) в Израиле.
1   ...   43   44   45   46   47   48   49   50   ...   78


написать администратору сайта