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

Иванов Криптографические методы засчиты информации в компютерных 2012

.pdf
Скачиваний:
32
Добавлен:
12.11.2022
Размер:
3.19 Mб
Скачать

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

cEB DA m

ипередает шифротекст c абоненту B. Получатель сообщения,

используя сначала свой секретный ключ, а затем открытый

ключ абонента А, восстанавливает исходный текст, вычисляя m DB EA c .

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

рить равенство

DA m DB c .

В случае его выполнения он убеждается, что никто, кроме А, отправить сообщение не мог, и принимает решение в пользу В. Приведенный протокол заставляет быть честным и абонента В. Для того чтобы исказить принятое сообщение m на m', ему не-

обходимо изменить и подпись s DA m на s' DA m' . Но для

этой операции необходим секретный ключ абонента А, которого у В нет.

Приведенная последовательность применения функций DA и EB единственна возможна. Если абонент А попытается по-

слать В «подписанное» сообщение вида c DA EB m ,

противник W, перехватив это сообщение, используя открытый ключ абонента А, сможет вычислить EA c EB m , а затем, используя свой закрытый ключ, послать якобы подписанное им

сообщение

cχ DW EB m .

Тогда В, вычислив

DB EW cχ m,

161

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

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

5.5. Криптосистема, основанная на задаче об укладке рюкзака

Создание данной системы шифрования и ее модификаций чаще всего связывают с именами Р. Меркля и М. Хеллмана. Прототипом трудной математической задачи, лежащей в ее основе, является следующая ситуация.

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

Простая задача об укладке рюкзака

Представить число 55 в виде суммы некоторых из чисел

{3, 8, 12, 2, 32, 59}.

Ответ: 55 = 3 + 8 + 12 + 32.

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

решить обратную задачу: если известна последовательность (111010), можно восстановить число 55, суммируя первое, второе, третье и пятое числа из заданного списка. Таким образом, на основе списка чисел можно построить примитивную систему шифрования, как показано на рис. 5.2.

162

Абонент А

 

Абонент В

(отправитель)

 

(получатель)

 

 

 

 

 

 

111010

 

 

 

111010

 

 

 

 

 

 

 

 

 

Ek

 

Dk

 

 

55

 

 

 

 

 

 

 

 

 

 

Рис. 5.2. Примитивная система шифрования, в которой отправителю и получателю известен список чисел {3, 8, 12, 2, 32, 59}

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

Очень простая задача об укладке рюкзака

Представить число 26 в виде суммы различных чисел из списка {32, 16, 8, 4, 2, 1}.

Ответ: 26 = 16 + 8 + 2 или 26 λ 011010 .

По сути, решение задачи сводится к переводу заданного десятичного числа в двоичную систему счисления, обратная же задача суть перевод заданного двоичного числа в десятичную систему счисления.

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

1)составляется трудная задача T, не решаемая за полиномиальное время;

2)из T выделяется легкая подзадача Teasy , имеющая поли-

номиальный или даже более простой алгоритм решения;

3)путем «взбивания» легкая задача Teasy превращается в труднорешаемую задачу Tshuffle, не имеющую никакого сходства с Teasy ;

163

4)на основе Tshuffle определяется открытая функция зашифрования; процедура получения Teasy из Tshuffle держится в секрете;

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

дачу Teasy .

Предположим, что список an-1, ..., a2 , a1`состоит из ста 40-значных чисел, т.е. t = 100, и c – 42-значное число.

Трудная задача T об укладке рюкзака

Дан список чисел an-1, ..., ai , ..., a1, a0`.

Представить число c в виде суммы некоторых чисел ai из списка.

Если числа в списке выбраны случайным образом, для ответа на вопрос, какие из них в сумме дают c, необходимо пере-

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

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

зака, для чего выбираем числа

an-1, ..., ai , ..., a1, a0`,

содержащие в десятичной записи степени двойки.

Схема соответствующей системы шифрования на основе списка

164

a0 020105, a1 220209, a2 260405, a3 120802, a4 031608

показана на рис. 5.3. Второй и третий разряды каждого числа ai

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

«Взбивание» задачи Teasy и получение Tshuffle можно выполнить с помощью операции модульного умножения. Выберем два больших взаимно простых числа r и s и найдем такое число t, чтобы выполнялось условие st { 1 modr . Уничтожим список

an-1, ..., ai , ..., a1, a0`

и число s, предварительно получив новый список

bn-1, ..., bi , ..., b1, b0`,

каждый элемент которого суть результат умножения соответствующего число из первоначального списка на s по модулю r:

bi sai modr , i 0, n 1 .

Числа из нового списка будут казаться случайными числами из интервала >0; r 1 , и все, кто не знает принцип их получе-

ния, примут соответствующую задачу Tshuffle за трудную задачу об укладке рюкзака. Именно она будет применяться при зашифровании информации, поэтому список

bn-1, ..., bi , ..., b1, b0`,

сообщается всем заинтересованным лицам. Числа t и r держатся в секрете. Таким образом, получим следующую систему шифрования.

165

Абонент А

 

Абонент В

(отправитель)

 

(получатель)

 

 

 

 

 

 

 

 

 

 

 

11001

 

 

 

 

 

 

 

 

 

 

 

 

11001

 

 

 

Ek

 

 

Dk

020105

 

 

172515

+ 120802

 

 

 

 

 

 

031608

 

25

 

(11001)

172515

 

 

 

 

 

 

 

 

172515

Рис. 5.3. Примитивная система шифрования на основе легкой задачи об укладке рюкзака

Криптосистема на основе задачи об укладке рюкзака

Открытый ключ зашифрования: список

bn-1, ..., bi , ..., b1, b0`.

Закрытый ключ расшифрования: пара чисел t ; r . Алгоритм зашифрования двоичного сообщения

m mt-1, ..., mi , ..., m1, m0 :

Ek m n¦1bi mi c .

i 0

Алгоритм расшифрования закрытого сообщения c: 1) составляем произведение

n 1

n 1

tc ¦tbimi modr

¦aimi modr ;

i 0

i 0

2) решая легкую задачу об укладке рюкзака, находим m mn-1, ..., mi , ..., m1, m0 .

Пример шифрования по приведенной схеме показан на рис. 5.4.

166

Легкая задача

Трудная задача

 

 

 

 

об укладке

об укладке

 

 

Расшифрованное

Исходное

рюкзака

рюкзака

 

Зашифрованное

сообщение

 

. 14 mod 265

 

 

сообщение

сообщение

 

a5 = 101

b5 = 089

Ek

Dk

 

1

 

444

.19 =

1

0

a4

= 002

b4 = 028

089

0

444

1

a3

= 104

b3

= 131

+ 131

= 221 mod 265

1

0

a2

= 008

b2

= 112

224

 

 

0

1

a1

= 016

b1

= 224

____

21

(10101)

1

444

 

 

 

 

 

 

 

 

 

 

Рис. 5.4. Пример рюкзачной криптосистемы

 

К сожалению, некоторые варианты этой оригинальной и красивой криптосистемы были раскрыты вскоре после своего создания.

5.6. Криптосистема RSA

Система RSA, название которой происходит от первых букв фамилий авторов – Р. Ривеста, А. Шамира и Л. Адлемана

(R. Rivest, A. Shamir, L. Adleman), является наиболее распро-

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

Рассмотрим некоторые математические факты, на которых основан алгоритм. Согласно малой теореме Ферма, если p – простое число, то для любого x, взаимно простого с p, справедливо

x p 1 { 1 mod p ;

для любого x, справедливо

167

xp { x mod p .

Функция Μ n натурального аргумента n, равная количеству

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

дующие соотношения:

Μ 1 1 ;

Μ pr pr 1 p 1 ;

Μ ab Μ a Μ b ,

где p – простое, r, a и b – натуральные, a, b 1. Эти свойства позволяют легко вычислять Μ n , когда известно разложение n на простые множители. Если натуральное число e удовлетворяет условию e, Μ n 1, то существует единственное натураль-

ное число d Μ n , для которого справедливо de { 1 modΜ n .

Пусть n pq, где p и q – два больших различных простых числа, и x, Μ n 1 . Тогда согласно теореме Эйлера для любого натурального x выполняется сравнение

xed { x modn

и, следовательно,

xed modn x

при условии x n .

Итак, выберем два больших различных простых числа p и q и число e, взаимно-простое с числом p 1 q 1 . Вычислим

n pq и найдем такое d, что

de {1 mod p 1 q 1 .

Тогда рассматриваемая криптосистема выглядит следующим образом.

168

Криптосистема RSA

Открытый ключ зашифрования: числа n и e. Закрытый ключ расшифрования: числа p, q и d. Алгоритм зашифрования сообщения m:

Ek m me modn c .

Алгоритм расшифрования закрытого сообщения с:

D c

cd modn

m .

k

 

 

Примечание. Необходимым условием является уничтожение чисел p и q после вычисления ключей e и d.

Единственный способ найти алгоритм расшифрования Dk

при известных e и n состоит в том, чтобы разложить на простые множители число n, найти p и q, а следовательно, и d. Правильный выбор разрядности чисел p и q (первоначально авторы RSA предлагали в качестве p и q использовать не менее чем 40-разрядные десятичные числа) делает задачу факторизации n практически неосуществимой.

Пример шифрования по приведенной схеме показан на рис. 5.5.

Абонент А

 

Абонент В

(отправитель)

 

(получатель)

 

 

 

 

 

 

 

 

0101

 

 

 

 

0101

 

Ek

 

Dk

57 mod 33 =

 

143 mod 33 =

= 78125 mod 33 =

 

= 2744 mod 33 = 5

= 14

 

 

 

 

 

 

 

14

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.5. Пример шифрования по схеме RSA

Авторы RSA при описании принципов функционирования своей системы выбрали в качестве исходного текста фразу

«ITS ALL GREEC TO ME»

(«Для меня все это совершенно непонятно»).

Для того чтобы преобразовать этот текст в одно большое число, закодировали пробел между словами 0, букву А – 1, бук-

169

ву В – 2, букву С – 3, ... , букву Z – 26. На представление каждого символа выделили пять двоичных разрядов. В результате приведенной фразе стало соответствовать число

m = 09201900011212000718050511002015001305.

Для шифрования авторы выбрали e = 9007 и n = 11438162575788886766923577997614661201021829672124236 25626518429357069352457338978305971235639587050589890 75147599290026879543541.

После зашифрования получили число c me modn

19993513149780510045231712274026064742320401705839146

31037037174062597160894892750439920962672582675012893

554461353823769748026.

Число n было произведением 64-значного и 65-значного простых чисел p и q, выбранных случайным образом.

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

При разработке криптосистемы сначала выбираются два различных простых числа p и q. Для этого произвольно выбирается нечетное число r подходящего размера (например, сторазрядное) и проверяется на простоту. В случае, если тест дает отрицательный результат, проверяется число r + 2 и т.д. Существует при-

 

100

 

99

 

близительно

10

 

10

100-разрядных простых чисел.

100

99

 

ln10

ln10

Учитывая, что всего существует 10100 1099 2 100-разрядных

нечетных чисел, вероятность успеха одного конкретного теста равна приблизительно 0,00868. После того как p и q выбраны, кандидаты на e проверяются с помощью алгоритма Евклида. Когда e удовлетворяет условию e, Μ n 1, цепочка равенств, по-

лучаемых в результате применения алгоритма Евклида, дает нам и значение d. Процедура шифрования суть модульное возведение в степень, данную операцию следует осуществлять методом

170

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]