НЕКОТОРЫЕ ВАЖНЫЕ УРАВНЕНИЯ, НЕРАВЕНСТВА И ТЕОРЕМЫ КУРСА «ВВЕДНИЕ В ЗАЩИТУ ДАННЫХ» Энтропия H [ X ] pi log 2 pi i Неравенство Кульбака-Лейблера s Pr X x ln xD Pr X x x 0 Неравенство Крафта s 2|| f x || 1 → безпрефиксный код xD Условная энтропия X в отношении Y H X |Y 1 Pr Y y H X | y , где H X | y p x | y log p x | y yDY xDX H X , Y H Y H X | Y Условия полного шифрования (любое из условий) H X |Y H X p x p x | y p y p y | x -1- 2 RSA Генерация: 1) 2) 3) Выбрать простые числа p , q ; Найти модуль n p q ; Подобрать e, d так, чтобы e d 1 mod n В таком случае открытым ключом будет пара чисел n, e , а закрытым — n, d . Шифрование: En,e x xe mod n Расшифровка: Dn, d y y d mod n x Теорема Эйлера x, n 1 x n 1 mod n Теорема Ферма p простое число b p1 1 mod p для 0 b p Взлом слабого протокола RSA с общим модулем (атака Симмонса) Если eA , eB 1 и одно и то же сообщение m посылается пользователям A и B, то у взломщика есть y A meA mod n и yB meB mod n . Найдутся такие , для которых eA eB 1 , причём одно из чисел , должно быть отрицательным. Предполагаем, что | | . Сначала вычисляем y A1 mod n и затем m y A1 yB m eA m eB | | -2- Китайская теорема об остатке Если n1 , n2 , n1 , n2 1, n1n2 n1 n2 Вывод 1 (правильность RSA): ] e, d 1 mod n , n p q, где p, q-простые числа x ed x mod n x n Вывод 2 (решение системы уравнений): x a mod n1 Если n1 , n2 1 , то для системы найдётся только одно x b mod n2 решение на промежутке x 0; n1n2 1 такое, что при n1 , n2 a b 1 решением будет x a n2 b n1 mod n1n2 . Вывод 3 В pq у всякого элемента a Факторизация при помощи pq есть четыре квадратных корня. 1 Пусть известно b 1, b2 1 mod n , n pq , тогда можно факторизовать n : b2 1 b 1 b 1 0 mod n . Поскольку b 1, то не одно из выражений в скобках не конгруентно 0. Если произведение скобок делится на n pq , хотя ни одна из скобок не делится на n , то одна делится на p , а другая на q . Таким образом, b 1, n p, q — можно получить коэффициент n , найдя наибольший общий делитель b 1, n . -3- Нахождение нетривиальных 1 Пусть задано e, d , ed 1 mod n , тогда можно найти нетривиальный 1 и факторизовать модуль n . Вычисление корней Пусть ed 1 c n 2k l , l -нечетное число . Тогда: 1) Произвольно выбрать a 2, ..., n 2 , чтобы a, n 1 2) Найти наименьший j 0, чтобы a2 l 1 3) Взять b a 2 j j 1 l . Если b 1, то b — ответ, иначе повторить цикл. Нахождение секретного показателя У пользователя B пара чисел e2 , d2 ; у пользователя A открытый показатель e1 . Найти секретный показатель d1 в таком случае можно следующим образом. 1) Найти f e1 , e2 d2 1 ; 2) Вычислить t 3) d1 e2 d 2 1 ; f 1 mod t . e1 -4-