Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1205

.pdf
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
868.29 Кб
Скачать

Покажем, что отображение D является левым обратным к E, т.е. для всякого ссобщения s выполняется равенство D(E(s)) = s. Имеем

D(E(s)) == D(s^e) == (s^e)^d == s^(e*d) (mod m)

Так как e*d == 1 (mod phi(m)), имеем

e*d = 1 + h * phi(m)

По следствию 4,

s^(e*d) = s^(1 + h*phi(m)) == s (mod m)

Итак, DE = 1. Аналогично доказывается, что ED = 1. Суммируем все вышесказанное.

Рассматривается множество сообщений Zm, где m -- произведение двух больших простых чисел: m = p*q. Число m является открытым, но его разложение на множители -- секретным.

Знание разложения позволяет вычислить функцию Эйлера phi(m) = (p-1)*(q-1). Случайным образом выбирается обратимый элемент e в кольце вычетов по модулю phi(m). Для него вычисляется (с помощью расширенного алгоритма Евклида) обратный элемент d в кольце вычетов по модулю phi(m). Отображение E задается парой (m, e) и состоит в возведении в степень e по модулю m:

E(s) = s^e (mod m).

Отображение D задается парой (m, d) и состоит в возведении в степень d по модулю m:

D(t) = t^d (mod m).

Эти два отображения взаимно обратны. Пара (m, e) является открытым ключом (public key), пара (m, d) является секретным ключом (private key).

Пример. Рассмотрим пример с небольшими числами, чтобы только проиллюстрировать схему RSA. В реальных приложениях используют большие целые числа, порядка 200-400 десятичных цифр.

Пусть m = 11*13 = 143. Вычислим функцию Эйлера phi(m) = 10*12 = 120. Выберем e = 113, тогда d = 17 -- обратный к e

элемент в кольце Z120. Действительно,

113 * 17 = 1921 = 120 * 16 + 1.

50

Пара (143, 113) составляет открытый ключ, пара (143, 17) -- секретный ключ. Отображение E состоит в возведении в степень 113 по модулю 143, отображение D -- в степень 17 по модулю 143. Рассмотрим произвольное сообщение s = 123. Тогда

E(123) == 123^113 (mod 143) == 41.

Таким образом, 41 -- это закодированное сообщение. Применим к нему декодирующую процедуру:

D(41) == 41^17 (mod 143) == 123.

Мы получили исходное сообщение.

6.4. Алгоритмические задачи, связанные со схемой RSA

В связи со схемой RSA возникает ряд алгоритмических задач.

1.Для генерации ключей нам надо уметь генерировать большие простые числа. Близкой задачей является проверка простоты целого числа.

2.Для взламывания ключа в RSA нужно уметь раскладывать целое число на множители (или, что практически то же самое, уметь вычислять функцию Эйлера). Взлом ключа может интересовать только преступников, но, с другой стороны, те, кто пытаются защитить информацию, должны быть уверены, что задача разложения на множители достаточно сложна.

7.ШИФР ЭЛЬ-ГАМАЛЯ

7.1. Общая идея метода

Основная идея ElGamal состоит в том, что не существует эффективных методов решения сравнения ax == b (mod p) Обозначения. Через Z(n) обозначим вычеты по модулю n, через Z*(n) - мультипликативную группу обратимых элементов в Z(n). Через ab (mod n) будем обозначать возведение a в степень b в кольце Z(n). Hапоминаем, что если p - простое число, то группа Z*(p) изоморфна Z(p-1).

51

-x = v0

Пусть числа p и 2p+1 - простые, p>2,v и w - образующие мультипликативных групп Z*(p) и Z*(2p+1) соответственно. Лемма. Если v - образующая Z*(p), то v0 = (p + (p+1)v)(mod 2p) - образующая мультипликативной группы Z*(2p). (Эта группа, очевидно, изоморфна Z*(p) ).

Числа p, 2p+1, v, v0, w фиксируются при выборе алгоритма.

7.2. Пароли

СЕКРЕТHЫЙ пароль - число x из Z*(p). ОТКРЫТЫЙ пароль (y) вычисляем в два шага.

1.Сначала находим z=v0x (mod 2p), z принадлежит группе

Z*(2p).

2.Hаконец вычисляем сам открытый пароль y = wz (mod 2p+1), y принадлежит группе Z*(2p+1).

Теорема. При любом выборе секретного пароля (x) открытый пароль (y) будет являться образующей мультипликативной группы Z*(2p+1). Другими словами, сравнение ya = b (mod 2p+1) разрешимо относительно a при любом b. Доказательство. Число w^z будет образующей группы Z*(2p+1) iff числа z и 2p взаимно просты. Hо z = v0x (mod 2p), где v0 - образующая группы Z*(2p).

7.3. Электронная подпись

Пусть s - число (информация), к которому надо найти электронную подпись, s принадлежит группе Z(2p). Для этого выбираем случайное число r из группы Z*(2p), изоморфной Z*(p), и в качестве подписи выдаем пару чисел (a,b), где

a = a(r,s) = z-1*r*s = v0(-x)*r*s (mod 2p); b = b(r,s) = wr (mod 2p+1).

Так как

Z*(2p) = Z*(p)+Z*(2) = Z*(p) = Z(p-1),

то

1/z = z-1 = v0 (p-1-x).

52

Таким образом, для составления подписи требуется знать секретный пароль (x), точнее говоря z=v0x.

Для проверки подлинности подписи можно воспользоваться

равенством

ya = bs (mod 2p+1).

В самом деле,

ya = (wz)^(z-1*r*s) = w^(z*z-1*r*s) = wrs = (wr)^s = bs (mod 2p+1)

Следовательно, для проверки подлинности подписи достаточно знать только открытый пароль (y).

При вычислении подписи число s(файл) находится с помощью однонаправленной хэш-функции (аналог MD4, но другое).

7.4. Итог

Обозначения.

p, 2p+1 - простые числа,

v, w - образующие групп Z*(p) и Z*(2p+1) соответсвенно,

v0 = p + (p+1)v - образующая Z*(2p),

x- секретный пароль, число из Z(p-1),

z- промежуточное выражение из Z(2p),

y- открытий пароль, число из Z*(2p+1),

s - информационное число,

r - случайное число из Z(2p),

(a,b) - электронная подпись,

a из Z(2p),

b из Z*(2p+1),

53

(c,d) - зашифрованное сообщение, c из Z*(2p+1),

d из Z*(2p+1),

e - промежуточное выражение из Z*(2p+1). Hахождение открытого ключа по секретному. x =>y

1.v0 = p + (p+1)*v (mod 2p)

2.z = v0x (mod 2p)

3.y = wz (mod 2p+1)

Электронная подпись x, s, r =>a, b (r - случайное)

1.v0 = p + (p+1)*v (mod 2p)

2.a = v0(p-1-x)*r*s (mod 2p)

3.b = ws (mod 2p+1)

Проверка подписи y, s, a, b =>y/n

1. ya == bs (mod 2p+1)

Шифрование y, s, r =>c, d

1.e = yr (mod 2p+1)

2.c = wr (mod 2p+1)

3.d = s*e (mod 2p+1)

Расшифровка x, c, d =>s

1.v0 = p + (p+1)*v (mod 2p)

2.z = v0x (mod 2p)

3.1/e = c2p-z (mod 2p+1)

4.s = d/e (mod 2p+1)

8.КОНТРОЛЬ НЕИЗМЕННОСТИ МАССИВОВ ДАННЫХ

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

– компьютеры – являются одним из символов нашей цивилизации. Информация, представленная в самых различных формах, подобно другим товарам производится, хранится, транс-

54

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

Так как информация имеет нематериальный характер, массивы данных не несут на себе никаких отпечатков, по которым можно было бы судить об их прошлом – о том, кто является автором, о времени создания, о фактах, времени и авторах вносимых изменений. Модификация информационного массива не оставляет осязаемых следов на нем и не может быть обнаружена обычными методами. «Следы модификации» в той или иной форме могут присутствовать только на материальных носителях информации – так, специальная экспертиза вполне способна установить, что сектор X на некоей дискете был записан позже всех остальных секторов с данными на этой же дорожке дискеты, и эта запись производилась на другом дисководе. Указанный факт, будучи установленным, может, например, означать, что в данные, хранимые на дискете, были внесены изменения. Но после того, как эти данные будут переписаны на другой носитель, их копии уже не будут содержать никаких следов модификации. Реальные компьютерные данные за время своей жизни многократно меняют физическую основу представления и постоянно кочуют с носителя на носитель, в силу чего их не обнаружимое искажение не представляет серьезных проблем. Поскольку создание и использование информационных массивов практически всегда разделены во времени и/или в пространстве, у потребителя всегда могут возникнуть обоснованные сомнения в том, что полученный им массив данных создан нужным источником и притом в точности таким, каким он дошел до него.

Таким образом, в системах обработки информации помимо обеспечения ее секретности важно гарантировать следующие свойства для каждого обрабатываемого массива данных:

55

подлинность – он пришел к потребителю именно таким, каким был создан источником и не претерпел на своем жизненном пути несанкционированных изменений;

авторство – он был создан именно тем источником, каким предполагает потребитель.

Обеспечение системой обработки этих двух качеств массивов информации и составляет задачу их аутентификации, а соответствующая способность системы обеспечить надежную аутентификацию данных называется ее аутентично-

стью.

8.1. Задача аутентификации данных

На первый взгляд может показаться, что данная задача решается простым шифрованием. Действительно, если массив данных зашифрован с использованием стойкого шифра, такого, например, как ГОСТ 28147–89, то для него практически всегда будет справедливо следующее:

в него трудно внести изменения осмысленным образом, поскольку со степенью вероятности, незначительно отличающейся от единицы, факты модификации зашифрованных массивов данных становятся очевидными после их расшифрования – эта очевидность выражается в том, что такие данные перестают быть корректными для их интерпретатора: вместо текста на русском языке появляется белиберда, архиваторы сообщают, что целостность архива нарушена и т.д.;

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

56

Тем не менее, использование шифрования в системах обработки данных само по себе неспособно обеспечить их аутентичности по следующим причинам:

1.Изменения, внесенные в зашифрованные данные, становятся очевидными после расшифрования только в случае большой избыточности исходных данных. Эта избыточность имеет место, например, если массив информации является текстом на каком-либо человеческом языке. Однако в общем случае это требование может не выполняться – если случайная модификация данных не делает их недопустимым для интерпретации со сколько-нибудь значительной долей вероятности, то шифрование массива не обеспечивает его подлинности. Говоря языком криптологии, аутентич-

ность и секретность суть различные свойства криптосистем. Или, более просто: свойства систем обработки информации обеспечивать секретность и подлинность обрабатываемых данных в общем случае могут не совпадать.

2.Факт успешного (в смысле предыдущего пункта) расшифрования зашифрованных на секретном ключе данных может подтвердить их авторство только в глазах самого получателя. Третья сторона не сможет сделать на основании этого однозначного вывода об авторстве массива информации, так как его автором может быть любой из обладателей секретного ключа, а их как минимум два – отправитель и получатель. Поэтому в данном случае споры об авторстве сообщения не могут быть разрешены независимым арбитражем. Это важно для тех систем, где между участниками нет взаимного доверия, что весьма характерно для банковских систем, связанных с управлением значительными ценностями.

Таким образом, существование проблемы подтверждения

подлинности и авторства массивов данных, отдельной от задачи обеспечения их секретности, не вызывает сомнения. В последующих разделах настоящей статьи излагаются подходы к ее решению, базирующиеся на использовании классических блочных шифров. В разделе 2 рассматриваются подходы к

57

решению задачи подтверждения подлинности данных, а в разделе 3 – к задаче подтверждения их авторства. В принципе, для решения указанных задач может быть использован любой традиционный блочный криптографический алгоритм. В компьютерных кодах, прилагаемых к настоящей статье, автор использует наиболее знакомый и близкий ему шифр – криптоалгоритм ГОСТ 28147–89.

8.2. Задача имитозащиты данных

Под имитозащитой данных в системах их обработки понимают защиту от навязывания ложных данных. Как мы уже выяснили, практически всегда на некоторых этапах своего жизненного цикла информация оказывается вне зоны непосредственного контроля за ней. Это случается, например, при передаче данных по каналам связи или при их хранении на магнитных носителях ЭВМ, физический доступ к которым посторонних лиц исключить почти никогда не представляется возможным. Только если целиком заключить линию связи в кожух из твердого металла, внутрь кожуха закачать газ под давлением и высылать роту автоматчиков прочесывать местность каждый раз, когда в секции такой системы будут зафиксированы малейшие изменения давления, как это, по слухам, делают Российские спецслужбы, ответственные за правительственную связь, будет хоть какая-то гарантия неприкосновенности передаваемых данных, не всегда, впрочем, достаточная. Но подобный подход многократно удорожает стоимость каналов связи, ведь стоимость кожуха, защищенных помещений для обработки сигнала и услуг вооруженных людей на много порядков превышает стоимость проложенной витой пары проводов. И как в этом случае быть с электромагнитным сигналом? – ведь не до всех мест можно дотянуть провод, а такой сигнал, даже если это узконаправленный лазерный пучок, не говоря об обычном радиосигнале, не спрячешь в кожух.

Таким образом, физически предотвратить внесение несанкционированных изменений в данные в подавляющем

58

большинстве реальных систем их обработки, передачи и хранения не представляется возможным. Поэтому крайне важно своевременно обнаружить сам факт таких изменений – если подобные случайные или преднамеренные искажения будут вовремя выявлены, потери пользователей системы будут минимальны и ограничатся лишь стоимостью «пустой» передачи или хранения ложных данных, что, конечно, во всех реальных ситуациях неизмеримо меньше возможного ущерба от их использования. Целью злоумышленника, навязывающего системе ложную информацию, является выдача ее за подлинную, а это возможно только в том случае, если сам факт такого навязывания не будет вовремя обнаружен, поэтому простая фиксация этого факта сводит на нет все усилия злоумышленника. Подведем итог – под защитой данных от несанкционированных изменений в криптографии понимают не исключение самой возможности таких изменений, а набор методов, позволяющих надежно зафиксировать их факты, если они имели место.

Попытаемся найти универсальные подходы к построению такой защиты. Прежде всего, в распоряжении получателя информации должна быть процедура проверки или аутентификации A(T), позволяющая проверить подлинность полученного массива данных T. На выходе указанная процедура должна выдавать одно из двух возможных булевых значений – массив данных опознается как подлинный, либо как ложный: A(T) {0,1} для любого допустимого T. Условимся, что значение 1 соответствует подлинному массиву данных, а значение 0 – ложному. Процедура аутентификации должна обладать следующими свойствами, ограничивающими возможность злоумышленника подобрать массив данных T1, отличающийся от подлинного массива T (T T1), который бы тем не менее был бы этой процедурой опознан как подлинный

(A(T1) = 1):

у злоумышленника не должно быть возможности найти такое сообщение иначе как путем перебора по мно-

59