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

Инф. безопасность

.pdf
Скачиваний:
39
Добавлен:
18.03.2015
Размер:
2.7 Mб
Скачать

множества V’.

В конфликтной ситуации В посылает С сообщение m, идентификационный номер idm и множество ключей K’, которое В объявляет сигнатурой m. Тогда посредник С так же, как и В, будет способен проверить сигнатуру. Вероятность раскрытия двух сообщений с одним и тем же значением функции f должна быть очень мала. Чтобы гарантировать это, число n должно быть достаточно большим, а число р должно быть больше 1, но меньше n.

Ряд недостатков этой модели очевиден:

9 должно быть третье лицо - посредник, которому доверяют как получатель, так и отправитель;

9 получатель, отправитель и посредник должны обменяться существенным объемом информации, прежде чем будет передано реальное сообщение;

9 передача этой информации должна осуществляться в закрытом виде;

9 эта информация используется крайне неэффективно, поскольку множества K, V, V’ используются только один раз.

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

7Цифровая подпись

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

91

открытым ключом поддерживают цифровую подпись, но не поддерживают шифрование.

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

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

92

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

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

7.1.1Система RSA

В 1978 г. Р.Ривест, А.Шамир и Л.Адлеман создали первую криптосистему с открытым ключом для шифрования и цифровой подписи, получившую название RSA (по первым буквам фамилий авторов). Система описывается в терминах элементарной теории чисел. Ее надежность обуславливается практической неразрешимостью задачи разложения большого натурального числа на простые множители. Современное состояние алгоритмов факторизации (разложения на множители) позволяет решать эту задачу для чисел длиной до 430 бит; исходя из этого, ключ длиной в 512 бит считается надежным для защиты данных на срок до 10 лет, а в 1024 бита - безусловно надежным. Длина подписи в системе RSA совпадает с длиной ключа.

Несмотря на то, что отсутствует математически доказанное сведение задачи раскрытия RSA к задаче разложения на множители, а также задачи разложения на множители к классу NP-полных задач, система выдержала испытание практикой и является признанным стандартом de-facto в промышленной криптографии, а также официальным стандартом ряда международных организаций. С другой стороны, свободное

93

распространение программного обеспечения, основанного на RSA, ограничено тем, что алгоритм RSA защищен в США рядом патентов.

7.1.2Проект DSS

В 1991 г. в США был опубликован проект федерального стандарта цифровой подписи — DSS (Digital Signature Standard,

описывающий систему цифровой подписи DSA (Digital Signature Algorithm). Одним из основных критериев при создании проекта была его патентная чистота.

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

Функции DSA ограничены только цифровой подписью, система принципиально не предназначена для шифрования данных. По быстродействию система DSA сравнима с RSA при формировании подписи, но существенно (в 10-40 раз) уступает ей при проверке подписи.

Вместе с проектом DSS опубликован проект стандарта SHS (Secure Hash Standard), описывающий однонаправленную хэшфункцию SHA (Secure Hash Algorithm), рекомендованную для использования вместе с DSA. Хэш-функция SHA является модификацией алгоритма MD4.

7.1.3АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ (DIGITAL SIGNATURE ALGORITM, DSA).

Алгоритм использует следующие параметры:

p – простое число длиной L битов, где L принимает значение, кратное 64, в диапазоне от 512 до 1024.

q – простое 160 – битовое число – множитель (р-1).

94

g = h(p1)/ q mod p , где h – любое число, меньшее p-1, для

которого h(p1)/ q mod p больше 1. x = число, меньшее q

y = g x mod p

В алгоритме также используется однонаправленная хэш – функция H(m). Стандарт определяет использование SHA.

Первые три параметра, p,q и g, открыты и могут общими для пользователей сети. Закрытым ключом является x, а открытым – y.

Чтобы подписать сообщение , m:

Отправитель генерирует случайное число k, меньшее q. Отправитель генерирует :

r = (g k mod p)mod q s = (k 1 (H (m) + x r))mod q

Его подписью служат параметры r и s, он посылает их получателю.

Получатель проверяет подпись, вычисляя w = (s1 )mod q

u1 = (H (m) + w)mod q

u2 = (r w)mod q

v = ((gu1 yu2 )mod p)mod q

Если v = r, то подпись правильна.

7.1.4Российский стандарт цифровой подписи

В 1993 г. в России были изданы два государственных стандарта “Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма” и “Функция хэширования”, под общим заголовком “Информационная технология. Криптографическая защита информации”.

Стандарт “Процедуры выработки и проверки электронной цифровой подписи...” во многом схож со своим американским аналогом DSS. Для формирования и проверки цифровой подписи в нем используется тот же алгоритм, что и в DSS, с незначительными модификациями. Имеется две альтернативных

95

длины ключа, 512 и 1024 бит; длина подписи составляет 512 бит. Для генерации ключей предложен ряд новых алгоритмов.

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

Как и DSS, российский стандарт определяет только алгоритм цифровой подписи, но не шифрования. Быстродействие обоих алгоритмов приблизительно совпадает.

Стандарт “Функция хэширования” предназначен для использования вместе со стандартом “Процедуры выработки и проверки цифровой подписи” и представляет собой оригинальный алгоритм, основанный на методе шифрования с симметричным ключом ГОСТ 28147. Стандарт не содержит криптографического обоснования выбранного алгоритма и не корректирует ГОСТ 28147 в части заполнения узлов замены.

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

АЛГОРИТМ ЦИФРОВОЙ ПОДПИСИ ГОСТ.

Это русский стандарт цифровой подписи, официально называемый

ГОСТ Р 34.10.-94. Алгоритм очень похож на DSA, и использует следующие параметры:

р = простое число, длина которого либо между 509 и 512 битами, либо между 1020 и 1024 битами.

q = простое число – множитель (р-1), длиной от 254 до 256 битов.

а= любое число, меньшее (р-1), для которого aq mod p =1 .

x= число, меньшее q.

y = a x mod p

Этот алгоритм также использует однонаправленную хэш – функцию H(x). Стандарт определяет использование хэш –

96

функции ГОСТ Р 34.1 1-94, основанной на симметричном алгоритме ГОСТ.

Первые три параметра, h,q и a открыты и могут использоваться совместно пользователями сети. Закрытым ключом служит x, а открытым – y.

Чтобы подписать сообщение m:

Отправитель генерирует случайное число k, меньшее q. Отправитель генерирует

r = (a x mod p)mod q s = (x r + k(H (m)))mod q

Если H(m) mod q = 0, то значение хэш – функции устанавливается равным 1.

Если r = 0, то выберите другое значение k и начните снова.

Подписью служат два числа:

r mod 2256 и

s mod 2256 .

Отправитель посылает их получателю.

 

Получатель

проверяет

подпись,

вычисляя

v = H (m)q2 mod q

 

 

 

z1 = (s v)mod q

z2 = ((q r ) v)mod q

u = ((a z1 y z2 )mod p)mod q

Если u = r, то подпись правильна.

Различие между этой схемой и DSA в том, что в DSA s = (k 1 (H (m) + x r))mod q , что дает другое уравнение проверки.

7.1.5Использование алгоритмов с открытым ключом

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

Вот пример, использующий RSA. Если М - это хэшируемое сообщение, п - произведение двух простых чисел р и q, а е - другое большое число, взаимно простое с (р - 1)(q - 1), то хэш-

97

функция, Н(М), будет равна

Н(М) = Me mod n

Еще проще использовать одно сильное простое число в

качестве модуля р. Тогда:

Н(М) = Me mod p

Вскрытие этой проблемы возможно не легче, чем поиск дискретного логарифма е. Проблема этого алгоритма состоит в том, что он намного медленнее, чем другие обсуждаемые алгоритмы.

8 Задания для самостоятельной работы

1. Буквы русского алфавита занумерованы в соответствии с таблицей:

А Б

В

Г

Д

Е

Ж З

И К

Л

М Н О

П

1

2

3

4

5

6

7

8

9

10

11

12 13 14

15

Р

С Т

У Ф Х Ц Ч Ш Щ Ь

Ы Э Ю Я

16

17

18

19

20

21

22

23

24 25

26

27 28 29

30

Для зашифрования сообщения, состоящего из n букв, выбирается ключ K — некоторая последовательность из n букв приведенного выше алфавита. Зашифрование каждой буквы сообщения состоит в сложении ее номера в таблице с номером соответствующей буквы ключевой последовательности и замене полученной суммы на букву алфавита, номер которой имеет тот же остаток от деления на 30, что и эта сумма.

Прочтите шифрованное сообщение: РБЬНРТСИТСРРЕЗОХ, если известно, что шифрующая последовательность не содержала никаких букв, кроме А, Б и В.

2. Сообщение было построчно записано в таблицу, имеющую 20 столбцов. При этом в каждую клетку таблицы записывалось по одной букве сообщения, пробелы между словами были опущены, а знаки препинания заменены на условные комбинации: точка — ТЧК, запятая — ЗПТ. Затем столбцы таблицы были некоторым образом переставлены, в результате чего был получен текст:

98

Я Н Л В К Р А Д О Е Т Е Р Г О М И З Я Е Й Л Т А Л Ф Ы И П Е У И О О Г Е Д Б О Р Ч Р Д Ч И Е С М О Н Д К Х И Н Т И К Е О Н У Л А Е Р Е Б Ы Ы Е Е З И О Н Н Ы Ч Д Ы Т Д О Е М П П Т Щ В А Н И П Т Я З С Л И К С И - Т Ч Н О - - Е - Л У Л - Т - Ж Прочтите исходное сообщение.

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

Найдите исходное цифровое сообщение по шифрованному сообщению:

4 2 3 4 6 1 4 0 5 3 1 3

4. Сообщение, записанное в алфавите АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЭЮЯ

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

Восстановите два исходных сообщения, каждое из которых содержит слово КОРАБЛИ, если результат их зашифрования при помощи одной и той же шифрующей последовательности известен:

99

ЮПТЦАРГШАЛЖЖЕВЦЩЫРВУУ и ЮПЯТБНЩМСДТЛЖГПСГХСЦЦ

5. Сообщение, зашифрованное в пункте А шифром простой замены в алфавите из букв русского языка и знака пробела (- ) между словами, передается в пункт Б отрезками по 12 символов. При передаче очередного отрезка сначала передаются символы, стоящие на четных местах в порядке возрастания их номеров, начиная со второго, а затем символы, стоящие на нечетных местах (также в порядке возрастания их номеров), начиная с первого. В пункте B полученное шифрованное сообщение дополнительно шифруется с помощью некоторого другого шифра простой замены в том же алфавите, а затем таким же образом, как и из пункта А, передается в пункт В. По перехваченным в пункте В отрезкам:

С О - Г Ж Т П Н Б Л Ж О Р С Т К Д К С П Х Е У Б - Е - П Ф П У Б - Ю О Б С П - Е О К Ж У У Л Ж Л С М Ц Х Б Э К Г О Щ П Ы У Л К Л - И К Н Т Л Ж Г

восстановите исходное сообщение, зная, что в одном из переданных отрезков зашифровано слово КРИПТОГРАФИЯ.

6. Текст М И М О П Р А С Т Е Т И Р А С И С П Д

И С А Ф Е И И Б О Е Т К Ж Р Г Л Е О Л О И Ш И С А Н Н С Й С А О О Л Т Л Е Я Т У И Ц В Ы И П И Я Д П И Щ П Ь П С Е Ю Я Я

получен из исходного сообщения перестановкой его букв. Текст

У Щ Ф М Ш П Д Р Е Ц Ч Е Ш Ю Ш Ч Д А К Е

100