Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 26 - КРИПТОГРАФИЧЕСКИЕ И СТЕГАНОГРАФИЧЕС....doc
Скачиваний:
66
Добавлен:
23.12.2018
Размер:
802.82 Кб
Скачать

Контрольные вопросы

  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. Какими методами осуществляется сокрытие информации в звуковой среде?

Задание на самостоятельную работу

  1. Изучить материал лекции, представленный в электронной форме.

  2. Найти ответы на контрольные вопросы.

ПРИЛОЖЕНИЕ № 1

Краткие сведения из теории чисел

Для понимания сущности процессов шифрования-дешифрования в данном приложении приводятся необходимые сведения из элементарной теории чисел.

  1. Для любого целого а и натурального b однозначно определены целые числа q и r такие, что a = bq+r и 0r<b. Число q называется частным, а r - остатком от деления а на b. Для остатка используется обозначение r = a mod b, называемое остатком числа а по модулю b.

Если r=0, то говорят, что а делится на b (нацело или без остатка), и записывают ba. Также говорят, что b делит а, и называют b делителем числа а, а а - кратным числа b.

  1. Для целых а и b через НОД(а,b) обозначается их наибольший общий делитель (НОД) - наибольшее из таких целых с, которое одновременно сa и сb. Числа а и b называются взаимно простыми, если НОД(а,b) = 1.

  2. Для нахождения НОД двух натуральных чисел а и b используется алгоритм Эвклида, который основывается на соотношениях:

НОД(а,b) = НОД(а,а mod b) для всех ab (1)

НОД(а,0) = a (2)

Пример 1. Найти НОД(211,79). Для этого используем последовательно (1) до тех пор, пока не возникнет ситуация (2), т.е. работа алгоритма сводится к многоразовому делению с остатком:

Отсюда имеем НОД(211,79)=НОД(79,53)=НОД(53,26)=НОД(26,1)=НОД(1,0)=1.

Алгоритм Эвклида вычисления НОД(а,b), ab.

  • Положить r0=a, r1=b, i=1.

  • Выполнить i-й шаг, заключающийся в делении с остатком:

ri1 = riqi + ri+1. (3)

  • Если ri+1>0, то увеличить i на 1 и перейти к выполнению следующего шага в соответствии с предыдущим пунктом. Если ri+1=0, то завершить работу с результатом НОД(а,b) = ri.

Общее число шагов алгоритма Эвклида не превышает значения

m  2log2b + 1.

  1. Следствием алгоритма Эвклида является следующее: для каждой пары взаимно простых чисел а и b (НОД(а,b) = 1) можно найти такие целые u и v, что ua + vb = 1. Вычисление проводится в последовательности, обратной реализации алгоритма Эвклида:

Так как НОД(а,b) = 1, то на предпоследнем шаге имеем rm2 = rm1qm1 + 1. Отсюда 1 = 1 rm2 + (qm1)rm1. Используя это, как основу для обратной индукции по i от m1 до 1, на шаге i = 1 получим искомое решение.

Пример 2. Пусть а=211 и b=79. Протокол работы алгоритма Эвклида приведен в примере 1. Двигаясь снизу вверх, получим

1=153+(2)26=153+(2)(79153)=(2)79+353=(2)79+3(211279)=3211+(8)79.

Отсюда, u = 3 и v = 8.

  1. Расширенный алгоритм Эвклида:

ri = uia + vib для i = 0, 1, ..., m, где

u0 = v1 = 1, u1 = v0 = 0, ui+1 = ui1qiui, vi+1 = vi1qivi.

Так как rm = НОД(а,b), то этот алгоритм позволяет для заданных а и b найти такие коэффициенты u = um и v = vm, что

НОД(а,b) = ua + vb.

  1. Наименьшее натуральное число, которое делится на каждое из целых чисел a1, a2, ..., am, называется их наименьшим общим кратным (НОК). К свойствам НОК относятся:

    1. НОД(а,b)НОК(а,b) = аb для натуральных а и b;

    2. НОК(а,b) = аb для взаимно простых а и b.

  2. Каждое натуральное число а имеет, по крайней мере, два делителя 1 и само а. Эти делители называются тривиальными. Если число а не имеет никаких других делителей, то оно называется простым, а в другом случае - составным.

  3. Теорема об однозначности разложения на простые сомножители: каждое большее 1 целое а однозначно раскладывается на простые сомножители:

.

Разложение, в котором простые сомножители следуют в ниспадающем порядке, называется каноническим.

  1. Запись xy (mod n) означает, что целые x и y при делении на натуральное n, дают один и тот же остаток. Такие x и y называются конгруэнтными или равными по модулю. Следующие три условия эквивалентны:

  1. xy (mod n);

  2. x = y + kn для некоторого целого k;

  3. n(xy).

Конгруэнции имеют такие свойства:

  1. xx (mod n) (рефлексивность);

  2. если xy (mod n), то yx (mod n) (симметричность);

  3. если xy (mod n) и yz (mod n), то xz (mod n) (транзитивность);

  4. конгруэнции можно почленно складывать: если x1y1 (mod n) и x2y2 (mod n), то x1+x2y1+y2 (mod n). К обеим частям конгруэнции можно прибавить одно и то же число;

  5. конгруэнции можно почленно умножать: если x1y1 (mod n) и x2y2 (mod n), то x1x2y1y2 (mod n). Обе части конгруэнции можно умножить на одно и то же число;

  6. обе части конгруэнции можно сократить на их общий делитель, если он является взаимно простым с модулем: если dx, dy и НОД(d,n)=1, то из xy (mod n) вытекает x/dy/d (mod n);

  7. обе части конгруэнции и модуль можно сократить на их общий делитель: если dx, dy и dn, то из xy (mod n) вытекает x/dy/d (mod n/d);

  8. если mn, то из xy (mod n) вытекает xy (mod m);

  9. для простых чисел р и q, xy (mod pq) тогда и только тогда, когда одновременно xy (mod p) и xy (mod q).

    1. Zn обозначает множество {0, 1, ..., n1}, в котором определены операции сложения и умножения по модулю n. Zn* обозначает мультипликативную группу элементов, для которых в Zn есть элементы, обратные к умножению. Другими словами, Zn* состоит из элементов х, взаимно простых с n, и только из них.

    2. Расширенный алгоритм Эвклида дает эффективный способ нахождения обратного элемента для любого заданного xZn*. Такой элемент обозначается через x1 mod n. Деление на х в Zn означает умножение на x1. Элемент, обратный к xZn относительно сложения, обозначается через х. Причем 1 = n1 в Zn. В Zn можно ввести операцию вычитания: xy = x+(y).

Пример 3. Найти элемент, обратный к 79 в Z211*. В примере 2 было получено равенство 1 = 3211+(8)79. Из него непосредственно вытекает (8)79  1 (mod 211). Отсюда 791 mod 211 = (8) mod 211 = 203.

  1. Функция Эйлера (n) определяет количество натуральных чисел, не превышающих n и взаимно простых с n. Для простого р функция Эйлера (р) = р1.

Если n натуральное число, которое раскладывается на простые сомножители:

.

Оценка для (n): (n) > n/(6lnln n).

Функция Эйлера обладает свойством мультипликативности: для попарно взаимно простых n1, n2, ..., nk справедливо равенство:

(n1, n2, ..., nk) = (n1)(n2)...(nk).

Если n = pq, где p и q - простые числа, то (n) = (p1)(q1).

  1. Теорема Эйлера: для взаимно простых целого х и натурального n справедлива конгруэнция:

х(n)  1 (mod n).

  1. Малая теорема Ферма: если целое х не делится на простое р, то

хр1  1 (mod р).

  1. Китайская теорема об остатках: для любой пары взаимно простых натуральных чисел n1 и n2 и для любой пары целых чисел x1 и x2 можно найти такое целое х, для которого xx1 (mod n1) и xx2 (mod n2).

Для заданных n1, n2, x1, x2 значение х эффективно находится с помощью расширенного алгоритма Эвклида.

Пример 4. Найти целое х, которое при делении на 211 давало бы остаток 100, а при делении на 79 остаток 10. В примере 2 было получено равенство 1 = 3211+(8)79. Отсюда в качестве х можно взять 103211+100(8)79 = 56870. Это число можно заменить его остатком от деления на 21179 = 16669. В результате получим 9806.

  1. Алгоритм бинарного метода возведения в степень:

При заданных xZn и dN, вычислить xd mod n.

  • Представить показатель d в двоичной системе счисления:

d = (dl ... d1d0)2, где di{0, 1} и .

  • Положить z0 = 1.

  • На i-м (i = 1, 2, ..., l) шаге выполнить:

  • Результатом выполнения последнего (l+1)-го шага будет:

  1. Пусть р - натуральное число. Целое число g называется примитивным элементом по модулю р, если остаток g mod p является производным элементом группы Zр*. Примитивные элементы существуют для всех простых модулей. g является примитивным элементом по простому модулю р, если последовательность

g0 mod p = 1, g1 mod p, g2 mod p, g3 mod p, ..., gр2 mod p

содержит все элементы множества Zр*. Это равносильно тому, что все члены этой последовательности попарно различны.

Пример 5. g = 5 является примитивным элементом по модулю р = 23. В этом случае последовательность будет следующей: 1, 5, 2, 10, 4, 20, 8, 17, 16, 11, 9, 22, 18, 21, 13, 19, 3, 15, 6, 7, 12, 14.

Очередной член gk mod p вычисляется, исходя из предыдущего умножением его на g mod p.

  1. Если р – простое число, а – каноническое разложение числа р1, то:

    1. в Zр* содержится ровно (р1) первичных корней по модулю р;

    2. чтобы число g было первичным корнем по модулю р необходимо и достаточно, чтобы для каждого is выполнялось условие:

.

Пример 6. Для р = 29 имеем 291 = 28 = 227. Поскольку 214  28 (mod 29) и 24  16 (mod 29), то g = 2 является первичным корнем по модулю 29. Напротив, g=5 не является первичным корнем по модулю 29, так как 514  1 (mod 29).

  1. Если n - натуральное число, то целое х называется квадратичным остатком по модулю n, если НОД(х,n) = 1 и хy2 (mod n). В этом случае y называется квадратным корнем из х по модулю n. Если НОД(х,n) = 1 и х не является квадратичным остатком по модулю n, то х называется квадратичным неостатком по этому модулю. Квадратичные остатки по модулю n, которые лежат в пределах от 1 до n1, называются приведенными. Множество приведенных квадратичных остатков обозначается через Qn.

Пример 7. Число 8 является квадратичным остатком по модулю 17. Квадратными корнями из 8 по этому модулю среди натуральных чисел, которые не превышают 17, являются 5 и 12. Число 12 является квадратичным неостатком по модулю 17 - оно не имеет ни одного квадратного корня по этому модулю.

  1. Обозначим через (n) количество простых чисел, не превышающих n. Чебышев доказал, что .

  2. Задача факторизации: при заданном натуральном nN (n>1) найти простые p1, ..., ps и натуральные 1, ..., s такие, что . Другими словами, задача факторизации сводится к разложению натурального числа на простые сомножители. На сегодняшний день эта задача относится к очень сложным. Эффективнейшие из известных алгоритмов факторизации требуют времени, не менее величины , где с - некоторая константа. Современные вычислительные средства позволяют разложить натуральное число, включающее до 150 десятичных цифр.

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

  1. Дискретный логарифм: если gyx (mod p), где g - первичный корень по простому модулю p, причем p не является делителем x, то y называется дискретным логарифмом числа x по основанию g и модулю p. С понятием дискретного логарифма связана следующая задача, на сложности решения которой основывается стойкость некоторых криптосистем с открытым ключом: при заданных x, g, pN, где p - простое, которое не является делителем x, а g - первичный корень по модулю p, найти такое y, что gy x (mod p). По состоянию на сегодняшний день эта задача относится к очень сложным.

1 Диффи У., Хеллмэн М.Э. Новые направления в криптографии. ТИИЭР, № 22, 1976, с. 644-654; Merkle R.C. Secure communication over insecure channels. Communications of the ACM, № 21, 1978, p. 294-299.

2 Rivest R.L., Shamir A., Adleman L.M. A method for obtaiming digital signatures and public-key cryptosystems. Communications of the ACM, № 21, 1978, p. 120-126.

3 Rabin M.O. Digitalized signatures and public-key functions as intractible as factorization. Technical Report TR-212, Massachussetts Institute of Technology, Laboratory for Computer Science, 1979.

4 Goldwasser S., Micali S. Probabilistic encryption. Journal of Computer and System Sciences, № 28 (2), 1984, p. 270-299.

5 ElGamal T. A public-key cryptosystem and a signature scheme based on discrete logarithms. In CRYPTO’84 Proc., p. 10-18. Springer Verlag, 1985. Lecture Notes in Computer Science, v. 196.