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

Математические основы криптологии и криптографические методы и средс

..pdf
Скачиваний:
49
Добавлен:
15.11.2022
Размер:
14.26 Mб
Скачать

2.В посылает А свой открытый ключ. С перехватывает его и по­ сылает^ свой собственный открытый ключ.

3.Когда А посылает сообщение В, зашифрованное на его от­ крытом ключе, С перехватывает его. Поскольку сообщение в дейст­ вительности зашифровано на открытом ключе С, он расшифровывает его, снова зашифровывает его на открытом ключе В и посылает В,

4.Когда В посылает сообщение А , зашифрованное на его от­ крытом ключе, С перехватывает его. Поскольку сообщение в дейст­ вительности зашифровано на открытом ключе С, он расшифровывает его, снова зашифровывает его на открытом ключе А и посылает А.

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

2.4.9. Протокол аутентификации

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

Пусть р и q - простые числа, причем q делитр - 1. Пусть g^GF(p) такое, что g* = l(mod p \ g £ 1. Далее, пусть keGF(q) и.у=#"*(mod р). Таким образом, опять возникла задача дискретного логарифмирования, т.е. по заданному значению у и при известных p ,q n g необходимо най­ ти к. Тогда алгоритм аутентификации будет состоять в следующем.

1. Абонент А выбирает случайное число а из множества {1,..., q - 1}, вычисляет г = £e(mod р) и посылает его абоненту В . (Величина г мо­

жет быть вычислена заранее.)

2.Абонент В выбирает случайное число е из множества {1,.. It - 1}, где t - некоторый параметр, и посылает его абоненту А.

3.Абонент А вычисляет s = a + *e(mod q) и посылает его або_

центу В.

4. Абонент В проверяет соотношение г = g^^m od р) и, если оц0 выполняется, принимает доказательство, иначе отвергает.

Пример 57. Пусть абонент!? решил проверить полномочия або_ нента А. Для этого они с абонентом В выбрали числа q = 984 563 р= 11 814 757 и g = 10 112 979. Затем абонент А выбирает секретный

ключ * =

729 417

и

вычисляет

открытый

ключ

^ = 5r"*(mod

р)= 10 112

979_7294l7(mod

11 814 757) = 3 767 753.

Затем

абонент 4

выбирает

случайное

число а = 519 231, и вычисляет

г = £e(mod

/0 = ю 112

979

(mod

11 814 757)

7 848 734,

и

посылэст сг'о

абоненту В. Абонент В

выбирает случайное число

£=76 314 858

и посылает его абоненту А. Абонент Л,

получив это число, вычисляет

s = a + ke(mod ?) = (519 231 + 729417

76 314 858)(mod 984 563)=,

= 471 575 и посылает его абоненту В. Абонент В, получив это число, вычисляет //( m o d р)= 10 112 9794715753 767 7537бз14858(ш°й 11 814

757)= 7 848 734.

Существуют также и другие схемы. Рассмотрим из них схему

аутентификации Фейге - Фиата - Шамира (идея этой схемы была уже описана выше).

Пусть п - произведение двух больших простых чисел. Для гене­ рации открытых и закрытых ключей абонент А выбирает к различ­ ных чисел X)Д 2>... X*, каждое из которых является квадратичным вы­ четом по модулю я. Строка X] , Х2,... Ха служит открытым ключом. Затем вычисляются наименьшие значения pi, р2,... Ра, для которых

Р/= д/ху1 (mod я). Строка рь р2 ,... Ра служит секретным ключом.

Далее выполняется следующий протокол.

1. Абонент А выбирает случайное число а из множества {1,...,

я- 1}, и вычисляет г = a2(mod я), и посылает его абоненту В.

2.Абонент В посылает/! строку из к случайных битов - си с2)... са.

3. Абонент/! вычисляет у = а (рр Pj2 •...p£*)(mod я) и посылает

его абоненту В.

4.Абонент В проверяет, что г =у2 (x.'j1• Щ ■...Xе/ )(mod и).

Абоненты А п В повторяют этот протокол t раз, пока В не убедится, что А знает Pi , Рг >• • • Р* • Шанс, что А обманет В t раз, равен 1из 2к‘

Пример 75. Рассмотрим работу этого алгоритма сначала на

примере небольших чисел. Пусть и = 11*13 = 143. Тогда возможными квадратичными остатками являются числа:

1.

1/дс2 = 1

(mod

143) имеет решения х = 1,12, 131,142.

2.

3/х2= 1

(mod

143) имеет решения JC= 17, 61, 82,126.

3. 4/JC2

=

1

(mod

143) имеет решения х = 2,24, 119,141.

4.

9/дс2

=

1

(mod

143) имеет решениях: = 3,36, 107,140.

5.12/х*= 1 (mod143) имеет решениях: = 21, 34, 109, 122.

6.14/хс2 = 1 (mod143) имеет решениях: = 27, 38, 105, 116.

7. 16/х^= 1 (mod 143) имеет решения х = 4, 48, 95, 139.

8.22/дс2 = 1 (mod143) имеет решения JC = 55, 88.

9.23/дс2 = 1 (mod143) имеет решения JC = 32, 45, 98, 111.

10. 25/JC2 = 1 (mod 143) имеет решения JC = 5, 60, 83, 138.

11.26/JC2= 1 (mod 143) имеет решения JC = 13, 130.

12.27/х2= 1 (mod 143) имеет решения х = 40, 51, 92, 103.

13.36/х2 = 1 (mod 143) имеет решения х = 6, 71, 72, 137.

14.38/JC2 = 1 (mod 143) имеет решения х = 18, 70, 73, 125.

15.42/JC2 = 1 (mod 143) имеет решения JC = 31, 57, 86, 112.

16.48/JC2s 1 (mod 143) имеет решениях: = 42, 68, 75, 101.

17. 4 9 / JC 2 = 1 (mod 143) имеет решения х = 7, 59, 84, 136.

18.53/х2 = 1 (mod 143) имеет решения JC = 14, 25, 118, 129.

19.55/дс2 = 1 (mod 143) имеет решения х = 22, 121.

20.56/х2 = 1 (mod 143) имеет решения JC = 54, 67, 76, 89.

21.64/JC2s 1 (mod 143) имеет решениях: = 8, 47, 96, 135.

22.

662 =

1

(m o d

143)

и м ее т р еш ен и я х =

6 6 ,

77.

23 .

69/JC2^

1

(m o d

143)

и м ее т р еш ен и я JC =

2 8 ,

5 0 , 93, 115.

24.75/JC2= 1 (mod 143) имеет решения JC = 19, 58, 85, 124.

25.77/х2= 1 (mod 143) имеет решения JC = 44, 99.

26.7&/х2= 1 (mod 143) имеет решения JC = 65, 78.

27. 81/JC2 = 1 (mod 143) и м е е т р еш ен и я JC = 9, 3 5 , 108, 134.

28.82/д^= 1 (mod 143) имеет решения х = 15, 37, 106,128.

29.8 8 /JC2= 1 (mod 143) имеет решения х = 33, 110.

30.91/д:2= 1 (mod 143) имеет решения х = 39, 104.

31.92/х2 = 1 (mod 143) имеет решения л: = 53, 64, 79, 90.

32.10 0 :2 = 1 (mod 143) имеет решения JC= 10, 23, 120, 133.

33.103/дс2 = 1 (mod 143) имеет решения х = 31, 57, 8 6 , 112.

34.104/JC2= 1 (mod 143) имеет решения дс = 26,117.

35.1 08/JC2 = 1 (mod143) имеет решения х = 41, 63, 80, 102.

36.113/дс2= 1 (mod143) имеет решения х = 16, 49, 94, 127.

37.1 14/JC2 = 1 (mod143) имеет решения х = 20, 46, 97, 123.

38.121/JC2= 1 (mod143) имеет решения х = 11, 132.

39.126/JC2= 1 (mod 143) имеет решения х = 29, 62, 81, 114.

40.130/JC2= 1 (mod 143) имеет решения х = 52, 91.

41.133/jc2 = 1 (mod 143) имеет решения х = 43, 56, 87, 100. Обратными значениями (по mod 143) и их квадратными корня­

ми являются следующие числа:

XX' 1р= f i r *

1 . 1 1 1

2. 3 48 42

3.4 36 6

4.9 16 4

5. 12 12 21

6 . 14 92 53

7. 16 9 3

8. 22

9.23 56 54

10.25 103 31

12 . 27 53 14

13.364 2

14.38 64 8

15.42126 29

16. 48 3 17

17.49 108 41

18.53 27 40

19.55

20.56 23 32

21.6438 18

22. 66

23.69114 20

24.75 82 15

25.77

26.78

27.81 113 16

28.82 75 19

29.88

30.91

31.92 14 27

32.100 133 43

33.103 25 5

34.104

35.108 49 7

36.113 81 9

37.114 69 28

38.121

39.126 42 30

40.130

41.133 100 10

Видим, что у чисел 22, 26, 55, 6 6 , 77, 78, 8 8 , 91, 104, 121 и 130 нет обратных значений. Это объясняется тем, что они не взаимно просты с числом 143. Кроме того, должно быть ровно (11-1) (13—1)/4 = 30 квадратичных остатков по mod 143. Выбираем число к = 27. Таким образом, абонент А получает открытый ключ, состоя­ щий из 27 значений, например Х = (9, 12, 14, 16, 23, 25, 27, 36, 38, 42, 48, 49, 53, 56, 64, 69, 75, 81, 82, 92, 100, 103, 108, 113, 114, 126, 133). Соответственно, секретным ключом является р = (4, 2 1 , 53, 3, 54, 31, 14, 2, 8 , 29, 17, 41, 40, 32, 18, 20, 15, 16, 19, 27, 43, 5, 7, 9, 28, 30,10).

Дальше выполняется протокол.

1. Абонент А выбирает случайным образом число а = 113 мень­ ше л и вычисляет г = a2(mod л) = 1132(mod 143) = 42.

2 . Абонент В посылает А строку из к случайных битов (сь с2,...

с* ) - ( 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 1 0 1).

3. Абонент Л вычисляет у = a (j3f‘ • fic22 - ...p^)(mod л) = 70 и по­

сылает его абоненту В.

4. Абонент В вычисляет .у2 (а,? • Ас2г • ...A,** )(mod я) = 42 и убеж­

дается, что это значение совпадает с г.

5. Абонент А и В повторяют этот протокол столько раз, пока В не убедится, что А знает секретный ключ.

2.4.10. Протокол электронной цифровой подписи

Криптосистема «открытый ключ» неудобна в том смысле, что получатель сообщения не знает, кто является отправителем сообще­ ния. Э т о г о недостатка лишены протоколы «электронной подписи». Рассмотрим два из них. Первый - на базе RSA, а второй на основе алгоритма Эль-Гамапя.

Пусть имеется банкир А и несколько вкладчиков - В и В2, Вь Банкир и каждый из вкладчиков независимо друг от друга выбирают два больших простых числа и держат их в секрете. Пусть Р и Q - простые числа банкира, р, и <7, - простые числа вкладчика Д, / = 1 , 2 ,

3, Пусть далее R = PQ, /*,- = qph i = 1, 2, 3,

И пусть банкир вы­

бирает случайно целое число S с условиями

0 < S < ср(/?), (S, ср

(/?)) = 1 , а каждый из вкладчиков также случайно и независимо друг

от друга выбирает число s,- с условиями 0 < $,• < ср (rf), (s,-, <р (/7)) = 1, /= 1, 2, 3, После этого публикуется всем доступная телефонная книга:

A :R ,S В\. г,, si Д>: гг, 52

Далее каждый из них, и банкир, и вкладчики, находит свои сек­ ретные Т, Ьключи из условий:

S l(mod <р (if)), О < Т< ф (if),

Siti= 1(mod ф (г,)), 0 < и < ф(г,), I = 1, 2, 3,

Пусть вкладчик Вксобирается дать распоряжение m банкиру А, и пусть 0 <rk <R.

Последнее неравенство существенно для дальнейшего. Поло­ жим для удобства записи В = Вк, г = г*, t = tk, s = sk. Будем считать m < г и (JU, г) = 1. Вкладчик В шифрует распоряжение /я сначала своим секретным ключом:

nti = tfi'(mod г), 0 < Ш\ < г,

а потом открытым ключом банкира:

л»2 = Hii5(mod R), 0 < тг < R.

Банкир А, получив шифрованную телеграмму т2, расшифровы­ вает ее, пользуясь сначала своим секретным ключом Т:

Я13 = Hi2r(mod R), 0 < Я13 < R.

а потом открытым ключом s вкладчика:

Я14 = « /(m o d г), 0 < Я14 < г,

и получает я»4 = т.

Действительно, поскольку я»3= Hi2r(mod R), а /я2 = #Hi5(mod R),

то шз= //fi^m od R), где ST = l(mod ф (if)). Если (mi, R) = 1, то по теореме Ферма - Эйлера т™= mt(mod R), т.е. я»3= mt(mod R). Но 0 <

< т3 < R, 0 < nti < г <R, следовательно, m3 =mi. Имеем т4=/я / s т\ =

= ms'(mod г), st - l(mod ф (г)) и (я»,г) = 1, а значит, m4 = m(mod г), но каждое из них меньше г и больше 0. Следовательно, эти числа равны, т.е. я»4 = mt. Таким образом, банкир А получит распоряжение т от вкладчика В.

Пример 58. Пусть банкир А выбирает простые числа 10 243 и 57 037. Вкладчик В выбирает простые числа 175 261 и 817 549. Таким образом,

if = 10 243-57 037 = 584 229 991 и г = 175 261-817 549 = 143 284 455 289. Пусть 381 259 693 и 3 387 425 143-открытые ключи банкира

и вкладчика соответственно.

Находим секретный ключ банкира из условия:

ST= l(mod ф (if)) = 381 259 693 Г= l(mod ф (584 229 991)), О < Т< 584 162 712.

Откуда Т = 182 938 789.

Далее находим секретные ключи вкладчика из условия:

st = l(mod ф (г)) = 3 387 425 143 х

х t з l(mod ф (143 284 455 289)), 0 < t < 143 283 462 480.

Откуда *= 111 788 667 367.

Тогда открытая телефонная книга имеет вид А: 584 229 991,381 259 693;

В: 143 284 455 289, 3 387 425 143.

Вкладчик В дает поручение m = 134 645 771 своему банкиру А и, замечая, что R< г, шифрует его сначала и1086 открытым ключом банкира, а потом своим секретным ключом:

да, = 134 645 7 7 1381 259693 = ц б 030 491(mod 584 229 991),

« 2 = 116 030 491111788 667 367 = 38 467 700 641(mod 143 284 455 289). Банкир А, получив шифрованную телеграмму /и2 = 38 467

700 641 и замечая, что R< г, расшифровывает ее, пользуясь сначала открытым ключом s вкладчика, а потом своим секретным ключом Т:

т3 = 384 677 006 413 387 425 143 н 116 030 491(mod 143 284 455

289),

/ « 4 = 116 030 491 182 938 789 s 134 645 771(mod 584 229 991).

А так как 134 645 771 <584 229 991, то банкир делает вывод, что 134 645 771 и есть распоряжение вкладчика.

А теперь рассмотрим цифровую подпись на базе алгоритма Эль-Га- маля. Основные положения алгоритма таковы. Пусть имеются два простых числа- р н 2 р + \ , р > 2 . Тогда v и w - образующие мульти­ пликативных групп Z*p и Z*2p+i (т.е. групп обратимых элементов в Zp

и Z*2p+1). Далее вычисляем vo = + + l)v)(mod 2р), которая будет являться образующей в Z*2p. Затем выбираем секретный ключ х из Z*p. Далее вычисляем открытый ключ у. Он определяется следую­ щим образом: г = v0*(mod 2р); у = ►/(mod 2р). Сообщение s, к кото­ рому надо прикрепить цифровую подпись, принадлежит кольцу Z2„,

т.е. s ^ Z 2p. Для вычисления электронной подписи выбираем случай­ ное число r e Z*2p и в качестве подписи передаем пару чисел (в,Ь), где а = a(r,s) - z~l «(mod 2р), b = b(r,s) = w>r(mod 2p+l). Для проверки

подлинности

подписи

необходимо

воспользоваться равенством

У = 6*(mod mod 2р+ 1).

 

 

Пример

59.

Пусть

имеются

два простых числа-/; = 1013

и 2р + 1 = 2027.

Образующие мультипликативных групп Z*шп

H Z *2027 соответственно равны v = 958 и н>= 1352. Далее вычисляем Vo = + + l)v)(mod 2р) = (1013 + (1013 + 1) 958)(mod 2026) = 1971.

Выбираем секретный ключ х

из Z*p, х = 835. Далее вычисляем от­

крытый

ключ у: z = v0x(mod

2р) = 1 971 835(mod 2026) = 855, у =

= w>*(mod

2р) = = 1 352 855(mod 2026) = 1758. Создаем сообщение

s= 1143, к которому надо прикрепить цифровую подпись. Для этого выбираем случайное число re Z*^ г= 1983. Вычисляем пару (а,Ь):

a =z~lrs(mod = 855~‘-1983-1143(mod 2026)= 1917-1983 1143 (mod 2026) = = 497; b = M»r(mod 2p + 1) = 13 521 983(mod 2027) = 920. Посылаем вычисленную пару (a,b) в открытый канал. Проверяем подлинность подписи: / = 1758497(mod 2027) = 1269 = bs = 9201143 (mod 2027).

2.4.11. Вопросы и задачи для самоконтроля

1.Что называется криптографическим протоколом?

2.Что называется протоколом доказательства с нулевым раз­ глашением?

3.Укажите отличие между доказательством с вычислительно нулевым разглашением и доказательством с абсолютно нулевым раз­ глашением.

4.Опишите алгоритм, реализующий протокол IG.

5.Укажите отличия параллельного протокола с нулевым раз­ глашением конфиденциальной информации от обычного.

6.Предложите свой вариант неинтерактивного протокола дока­ зательства с нулевым разглашением конфиденциальной информации.

7.В чем состоит идея цифровой идентификации?

8.Опишите алгоритм схемы Диффи-Хеллмана и приведите при­

мер обмена ключами на основе этого метода.

9.Опишите протокол Шнора.

10.Привидите описание протокола «электронной подписи».

2.5. СТЕГАНОГРАФИЯ

Слово «стеганография» в переводе с греческого буквально озна­ чает «тайнопись» (steganos - секрет, тайна; graphy - запись). К ней относится огромное количество секретных средств связи, таких как невидимые чернила, микрофотоснимки, условное расположение зна­ ков, тайные каналы и средства связи на плавающих частотах и т.д.

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

Стеганография применяется для скрытия факта передачи сек­ ретных сообщений в другие сообщения, при этом скрывается даже само существование секрета. Отправитель может написать ничего не значащее сообщение и на том же листке бумаги скрыть секретное. В настоящее время скрывают сообщения в графических изображени­ ях, при этом младший бит каждого байта изображения заменяется битом сообщения. Графическое изображение меняется от таких дей­ ствий совершенно незначительно, так как большинство графических стандартов определяют намного большее количество цветовых гра­ даций, чем способен различить глаз человека. На принимающей сторо­ не сообщение извлекается. Например, в черно-белом рисунке размером 1024x1024 пикселей можно скрыть сообщение размером 64 кбайт. Для сокрытия сообщения можно также использовать имитационные функции Питера Уэйнера. Эти функции изменяют сообщение так, что его статистические параметры приобретают сходство с какимлибо текстом (статьей газеты, литературным произведением и т.д.)

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