Скачиваний:
82
Добавлен:
15.06.2014
Размер:
699.64 Кб
Скачать

ключей двух пользователей. В противном случае возможны неверные вычисления.

Действительно, пусть nA = 8387 7499 = 62894113, eA = 5; dA = =37726937; nB = 55465219, eB = 5, dB = 44360237; nA > nB. Предположим, что x = =1368797.

Тогда секретная подпись вычисляется как

s = xd A modnA =136879737726937 mod62894113 =59847900;

c = seB modnB =598479005 mod55465219 = 38842235.

Проверка дает:

s= cdB mod nB = 3884223544360237 mod 55465219 = 4382681;

x= seA mod nA = 43826815 mod 62894113 = 54383568, x x€.

Неверный результат вызван тем, что величина s больше модуля nB.

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

Открытая электронная подпись. Открытый алгоритм передачи пользователем A сообщения x и подписи пользователю B имеет вид:

-открытым ключом для всех пользователей U является алгоритм Eu;

-секретным - алгоритм Du;

-используется система RSA;

-A передает B сообщение x путем преобразования DA(x) = с;

-пользователь B вычисляет EA(с) = x.

Если требуется передать сообщение x и подпись в зашифрованном виде, то достаточно:

-использовать структуру ключей и вид криптосистемы открытого алгоритма;

-выполнить преобразование EB( DA( x ) ) = с для шифрования пользователем A сообщения x и передачи его пользователю В;

-вычислить DB(EA(с)) = x при приеме и расшифровании пользователем B полученного сообщения.

Пример

Формирование ключей. Пользователь А выбирает простые числа p= 7027, q = = 6997 и вычисляет n = p q = 55465219, а также функцию Эйлера φ =7926×6996= = 55450296. Выбирает открытый ключ e =5 и решает уравнение

e d = 5 d 1 mod 55450296.

Откуда получает d = 44360237.

Открытый ключ имеет вид (n = 55465219, e =5); закрытым ключом пользователя А является число d = 44360237.

61

Вычисление электронной подписи s. Пусть сообщение x = 31229978.

Вычисляется ЭЦП

s = xd mod n = 3122997844360237 mod 55465219 = 30729435,

которая передается пользователю В.

Проверка подписи. Пользователь В проверяет ЭЦП, пользуясь открытым ключом пользователя А:

x = se mod n = 307294355 mod 55465219 = 31229978.

Алгоритм цифровой подписи ЭльГамаля. ЭльГамаль рандомизировал алгоритм формирования электронной подписи. Схема позволяет работать с бинарными сообщениями произвольной длины и требует наличия специальной хэш-функции h:{0,1}Zp, где p –большое простое число.

Алгоритм формирования ключей (осуществляется каждым пользователем):

1)генерируется большое случайное простое число p и порождающий элемент α мультипликативной группы Zp*;

2)выбирается случайное число σ, 1 ≤ σ ≤ p-2;

3)вычисляется η = α σ mod n;

4)открытый ключ – (p, α, η).

Формирование подписи. Пользователь А:

1)выбирает случайное число k, 1k p - 2, причем НОД(k, p-1) = 1;

2)вычисляет r = α k mod p.;

3)вычисляет обратное число k –1 mod(p - 1) (например, с помощью алгоритма Евклида);

4)вычисляет подпись s = k -1 [h( x ) - σ r] mod (p - 1);

5)посылает пользователю В пару (r, s), ассоциируемую с сообщением x.

Проверка подписи. Пользователь В:

1)определяет по справочника открытый ключ пользователя А – (p, α, η);

2)проверяет размерность 1 r p - 1; если размерность не удовлетворяет требованию неравенства, то подпись уничтожается;

3)вычисляет v1 = η r r s mod p;

4)вычисляет хэш-функцию h( x ) и v2 = α h(x) mod p;

5)принимает подпись, если v1 = v2.

Доказательство работоспособности схемы. Если подпись была сформирована пользователем А, то s = k -1[ h( x ) - σr ] mod (p-1). Умножим данное выражение слева и справа на k и получим k s = [h(x) - σr] mod (p-1). После простой перестановки получаем (k s + σr) = h(x) mod (p-1), что позволяет записать αh(x) = α s + σ r = [( ασ )r r s] mod p. Следовательно, v1=v2.

Пример. Пусть p = 2357 и α = 2, образуя группу Z2357*. Выбираем секретный ключ σ = 1751 и вычисляем η = ασ mod p = 21751 mod 2357 = 1185.

Открытый ключ пользователя А (p = 2357, α =2, η = 1185).

62

Для простоты положим, что хэш-функция тривиальна и равна сообщению h(x) =x = 1463. Выберем случайное число k = 1529 и вычислим r = αk mod p = =21529 mod 2357 = 1490 и [k - 1 mod( p-1 )] = 245. Далее пользователь А вычисляет s = 245[1463 – 1751 1490] mod 2357 = 1777. Подписью пользователя

А для сообщения x = 1463 будет пара( r = 1490, s = 1777).

Пользователь В проверяет подпись, вычисляя v1 = 11851490 14901777 mod 2357=1072, h( x ) = 1463 и v2 = 21463 mod 2357 = 1072. Подпись принимается,

поскольку v1 = v2.

4.2. Цифровая сигнатура с процедурой арбитража

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

Цифровая сигнатура - это строка символов, зависящая как от идентификатора отправителя, так и содержания сообщения. Никто кроме подписанта, не может вычислить цифровую сигнатуру для конкретного сообщения. Никто, даже сам подписант, не может изменить посланное сообщение так, чтобы сигнатура осталась неизменной. Получатель, со своей стороны, должен иметь возможность проверить (верифицировать), является ли цифровая сигнатура сообщения подлинной. Конфликтная ситуация (спор между отправителем и получателем) разрешается при участии посредника или третьей доверенной стороны (ТДС), которые играют роль: арбитра, нотариуса, или жюри.

Цифровые сигнатуры с верификацией и процедурой арбитража используют как симметричные, так и асимметричные криптосистемы. Рассмотрим структуру первого варианта. Пусть EK ={EKi ; Ki K}- функция

симметричного шифрования и f – однонаправленная функция отображения некоторого множества сообщений на подмножество мощности р из последовательности {1, ..., n}.

Например, р = 3 и n = 9. Если x - сообщение, то в качестве f можно взять функцию f ( x ) = {2, 5, 7}.

Отправитель сообщения А, а также получатель В выбирают случайные секретные ключи КA и KB из ключевого пространства K и посылают их по защищенному каналу связи ТДС.

Отправитель сообщения А формирует цифровую сигнатуру следующим образом:

1)вычисляет функцию f ( x );

2)шифрует её u = EK{ f( x ); KA};

3)отправляет результат шифрования и свой идентификационный номер IA третьей доверенной стороне;

4)ТДС расшифровывает полученное сообщение u = E-1 K{ f( x ); KA};

63

5) ТДС вычисляет сигнатуру s, для чего зашифровывает s = EK{ u IA; KT} с помощью своего секретного ключа KT конкатенацию (u IA ) и отправляет результат пользователю В.

Процесс верификации осуществляется в следующем порядке:

1)пользователь В вычисляет v = EK{s ; KB};

2)пользователь В посылает v и свой идентификационный номер IB ТДС;

3)ТДС вычисляет E-1 K{v; KB} = s;

4)ТДС вычисляет E-1 K{s; KT}= u IA;

5)ТДС вычисляет w = EK{u IA; KB} и посылает w пользователю В;

6)пользователь В вычисляет E-1 K{w; KB}= u IA;

7)пользователь В вычисляет u` = f (x) для сообщения x;

8)пользователь В принимает сигнатуру только в том случае, если

u` = u.

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

4.3. Криптографическая хэш-функция

Использование цифровой электронной подписи часто предполагает использование вместо сообщения некоторой так называемой криптографической хэш-функции шифрования h(x). Это является следствием необходимости подписывать сообщения различных длин и объемов. Более удобно и экономно подписывать не само сообщение, а некий его цифровой образ небольшого размера, полученный по специальным криптографическим процедурам.

Хэш-функция должна обладать как минимум следующими двумя общими свойствами: сжатия (расширения) информации (отображать входную информацию произвольной длины в код фиксированной длины) и простого вычисления. Поскольку хэш-функция сжимает входные значения, то возможна так называемая коллизия, когда пара значений x и x’ приводит к одной хэшфункции h(x) = h(x’).

Хэш-функции по функциональному применению можно разбить на два вида:

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

хэш-функции не использующие параметризацию с помощью секретного ключа;

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

Функции, обнаружившие модификацию должны противостоять:

- угадыванию, иными словами должна складываться ситуация, когда вычислительно неосуществимо нахождение такого сообщения x', что хэшфункция h(x’) = y, где y - заданное значение функции;

64

- двойному угадыванию – вычислительно неосуществимо найти второе сообщение x’, которое имеет такое же значение хэш-функции h(x’)= = h(x), как заданное сообщение x x’;

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

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

Например, функция g(x) = x2 mod n является однонаправленной для случайно выбранных простых чисел p и q, n = p q, а факторизация (разложение на множители) n неизвестна. Для данной функции процесс угадывания эквивалентен, с вычислительной точки зрения, факторизации числа n. Однако функция не противостоит двойному угадыванию и коллизиям (тривиальные значения x и –x дают коллизию) и, следовательно, не является противостоящей коллизиям хэш-функцией.

Однонаправленную функцию можно получить с помощью блочного шифра (например, DES) по следующему правилу: f(x) = Ek(x) x, для любого фиксированного ключа k. Действительно, если блочный шифр осуществляет случайное перемешивание и рассеивание входного сообщения, то для любого выбранного y достаточно трудно найти такое x (и ключ k), чтобы [Ek(x) x] = y. Для любого выбранного x преобразования Ek(x) и [Ek(x) x] случайны и сложность определения требуемого значения y эквивалентна сложности чисто случайного угадывания. Аналогичные рассуждения справедливы и для вычисления обратной функции [E-1(x y)]=x. Однако блочный шифр требует фиксированной длины сообщения и для генерирования хэш-функции необходимо преобразовывать сообщение произвольной длины в блоки заданной длины.

Алгоритм кода для аутентификации сообщений позволяет сформировать семейство хэш-функций hk, параметрически зависящих от секретного ключа k и отвечающим следующим требованиям:

-простота вычисления;

-сжатие информации, выражающееся в возможности отображать последовательность произвольной длины в код фиксированного размера;

-вычислительная сложность априорной неопределенности, которая определяет, что для любого фиксированного значения сообщения x и при условии отсутствия предварительных сведений о значении x должна отсутствовать возможность вычислительным путем найти пару (x, hk(x)), даже при наличии

знаний о значениях пар (xi, hk( xi )), для любого нового сообщения xi x. Хэш-функции строятся, как правило, на основе итерационного алгоритма,

который аналитически записывается как

Hi = h(Hi-1, xi), i = 0,1,…,

65

где H0- начальное значение, h –легко вычисляемая функция шифрования, xi - текущий блок сообщения. Сообщение x представляется в виде конкатенации (присоединения) n блоков одинакового размера.

Структурные схемы, поясняющие принцип формирования неключевых хэш-функции показаны на рис. 19 – 22.

Из определения следует, что для любой хэш-функции есть текстыблизнецы, имеющие одинаковое значение хэш-функции, так как мощность множества аргументов неограниченно больше мощности множества значений. Такой факт получил название «парадокс дней рождения» и состоит в ответе на следующий вопрос: «Какой должна быть численность группы случайно выбранных людей, чтобы с вероятностью 0,5 в этой группе нашлись два человека, у которых дни рождения совпадают?” Оказалось, что численность этой группы должна составлять примерно 19 человек. Учет этого явления позволяет обосновать выбор длины хэш-функции, равной 128 битам.

Наиболее известные из хэш-функций – MD2, MD4, MD5 и SHA.

Три алгоритма серии MD разработаны Ривестом в 1989-м, 90-м и 91-м годах. Все они преобразуют текст произвольной длины в 128-битную функцию.

Алгоритм MD2 предполагает:

-дополнение текста до длины, кратной 128 битам;

-вычисление 16-битной контрольной суммы (старшие разряды отбрасываются);

-добавление контрольной суммы к тексту;

-повторное вычисление контрольной суммы.

-

Алгоритм MD4 предусматривает:

-дополнение текста до длины, равной 448 бит по модулю 512;

-увеличение избыточности текста до 512 бит ;

-шифрование 512-битных блоков в трех разных циклах.

В алгоритме MD5 каждый блок участвует не в трех, а в четырех различных

циклах.

66

Hi-1

xi

 

xi

 

 

 

 

 

Hi-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g

 

Ek

 

 

 

g

 

Ek

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hi

 

 

 

Hi

 

 

Рис. 19

 

 

 

 

Рис. 20

xi

Hi-1

g Ek

 

 

 

 

 

 

 

 

Hi

 

 

 

 

 

 

 

X1

 

 

X2

 

 

X3

 

 

 

 

Xt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H1

 

 

 

H2

 

 

 

H3 Ht-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E

 

 

 

E

 

 

E

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

k

 

 

 

 

k’

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

k’k

 

 

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H

Рис. 21

0

67

4.4. Обеспечение целостности данных

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

Техническая реализация механизма защиты может быть выполнена с помощью кодов обнаруживающих модификацию (MDC или, более узко, MICкод, имитовставка) и кодов для аутентификации (MAC) сообщений [4]. В основе кодирования лежат алгоритмы вычисления хэш-функции или избыточных кодов.

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

Эффективность процесса контроля целостности можно оценить с помощью тройки параметров <P1, P2, P3> при заданных стоимостных, энергетических, временных и вычислительных ресурсах.

Здесь

P1- вероятность того, что алгоритм корректно решает поставленную задачу;

P2 – вероятность необнаруживаемой ошибки;

P3- вероятность обнаруживаемого искажения.

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

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

Контрольные вопросы и задачи

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

68

2.Что является необходимым условием существования ЭЦП, стойкой против экзистенциальной подделки на основе атаки с выбором подписанных сообщений?

3.Напишите алгоритм верификации (проверки) ЭЦП ЭльГамаля при использовании хэш-функции, полученной на основе симметричных блочных криптоалгоритмов.

4.Сформируйте на основе алгоритма RSA секретную и открытую электронную подпись сообщения “DATA”.

5.Сформируйте на основе алгоритма ЭльГамаль секретную и открытую электронную подпись сообщения “DATA”.

6.Сравните характеристики алгоритмов, выполненных в пп.5, 6.

7.Поясните, как с помощью электронной подписи можно контролировать целостность сообщения и проводить аутентификацию пользователя?

8.В чем различие кодов MDC и MAC?

9.Определите назначение хэш-функции – можно ли с помощью её проводить аутентификацию и контролировать целостность сообщения?

10.Почему размер хэш-функции не должен быть меньше 128 бит?

69

5. УПРАВЛЕНИЕ КЛЮЧАМИ

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

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

Достаточно сложная радиоэлектронная система может иметь много различных каналов связи и работать с большим объемом ключевой информации. Управление ключами в таких системах возлагается на базовые службы генерации, регистрации, сертификации, распространения, установки, хранения, создания производных ключей, архивирования, отмены регистрации и уничтожения. За безопасность управления отвечает так называемый «администратор системы безопасности». Его задача заключается в защите ключей от раскрытия, изменения, несанкционированного удаления или повторного или неправильного использования. В качестве механизмов защиты используются криптографические, не криптографическими (временные метки), а также физические и организационные методы.

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

5.1. Методы распределения ключей

Распределение ключей - самый ответственный и сложный процесс в управлении ключами. Это определяется природой средств связи, отношениями доверия сторон и используемыми методами.

Распределение ключей между пользователями реализуются двумя разными подходами:

1. Путем создания одного или нескольких центров распределения ключей.

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

70