
- •Информационная безопасность Криптографические методы защиты информации
- •Содержание
- •Глава 1. Основы криптографии……………………………………….5
- •Глава 2. Обзор криптографических методов…………………………9
- •Глава 3. Электронная цифровая подпись…………………………...45
- •Глава 4. Проблемы и перспективы криптографических систем ..83
- •Глава 1.
- •1.1. Терминология
- •1.2. Требования к криптосистемам
- •Классификация криптографических методов
- •Глава 2 обзор криптографических методов
- •2.1. Симметричные системы шифрования
- •2.1.1. Блочные шифры
- •Симметричные блочные шифры
- •Методы перестановки
- •Методы замены (подстановки)
- •Шифрование методом простой замены
- •Оценки вероятностей появления букв русского языка и пробела
- •Механизм шифрования заменой
- •Ключ шифрования
- •Механизм дешифрования
- •Механизм шифрования методом Цезаря
- •2.1.2. Потоковые шифры
- •Методы гаммирования
- •Лабораторная работа. Простейшие криптографические системы
- •Асимметричные системы шифрования
- •2.3.1. Алгоритм rsa
- •Полная таблица зашифрования
- •2.4. Сравнение симметричных и асимметричных систем шифрования
- •2.5. Лабораторная работа. Асимметричные методы шифрования данных
- •Глава 3. Электронная цифровая подпись
- •Проверка подлинности информации
- •3.1.1. Подпись документов при помощи симметричных криптосистем
- •3.1.2. Подпись документов при помощи криптосистем с открытыми ключами
- •3.2. Стандарты.
- •3.3. Атаки на цифровую подпись
- •3.4. Пакет pgp
- •3.5. Pgp: концепция безопасности и уязвимые места
- •Асимметричные криптографические алгоритмы
- •3.6. Лабораторная работа. Программные средства защиты
- •3.7. Лабораторная работа. Способы защиты электронной почты
- •Глава 4. Проблемы и перспективы криптографических систем
- •4.1. Шифрование больших сообщений и потоков данных
- •4.2. Использование блуждающих ключей
- •4.3. Шифрование, кодирование и сжатие информации
- •Виды преобразований
- •4.4. Реализация алгоритмов шифрования
- •Библиографический список
- •Информационная безопасность криптографические методы защиты информации
2.3.1. Алгоритм rsa
Алгоритм RSA защищен патентом США № 4405829. Разработан в 1977 году в Массачусетском технологическом институте (США). Получил название по первым буквам фамилий авторов (Rivest, Shamir, Adleman). Криптостойкость алгоритма RSA основана на вычислительной сложности задачи разложения большого числа на простые множители. Открытый и закрытый ключи являются функциями двух больших простых чисел, разрядностью 100-200 десятичных цифр. Предполагается, что восстановление открытого текста по шифрованному тексту и открытому ключу равносильно разложению числа на два больших простых множителя.
Для генерации двух ключей применяются два больших случайных простых числа р и q. Для обеспечения максимальной безопасности р и q должны иметь одинаковую длину. Рассчитывается произведение п = pq.
Затем случайным образом выбирается ключ шифрования е так, чтобы е и (р -1)(q-1) являлись взаимно простыми числами. С помощью расширенного алгоритма Евклида вычисляется ключ расшифрования d, такой что:
еd ≡ 1(mod(p -1)(q - 1)).
Другими словами:
d = e-1(mod(p- 1)(q - 1)).
Заметим, что d и n также взаимно простые числа.
Числа е и п — это открытый ключ, а число d — закрытый. Числа р и q могут быть отброшены, но они не должны быть раскрыты.
При шифровании сообщение т разбивается на цифровые блоки mi, размерами меньше п (для двоичных данных выбирается самая большая степень числа 2, меньшая п). Зашифрованное сообщение C будет состоять из блоков Ci, причем длина блока Ci,- равна длине блока mi. Таким образом, формула шифрования имеет вид:
Ci = mie mod n
При расшифровке сообщения для каждого зашифрованного блока Ci вычисляется:
mi = Cid mod n
Так как Cid = (mie)d = mik(p-1)(q-1)+1 = mi, все по mod n, то формула восстанавливает сообщение.
Таким образом,
d = e-1(mod(p - 1)(q - 1)) - закрытый ключ
C = те mod n - шифрование
т = Cd mod n - расшифрование .
Чтобы организовать передачу шифрованных сообщений с помощью криптосистемы RSA получатель должен сделать следующее:
с помощью специального алгоритма сгенерировать два больших простых числа p,q, которые необходимо держать в секрете;
сообщить отправителю (или поместить в некоторый общедоступный каталог) число n, равное произведению р и q, а также случайным образом выбранное целое число e, взаимно простое с произведением
(p - 1)(q - 1).
Для расшифрования сообщений, зашифрованных на открытом ключе п, e получателю необходимо иметь число d являющееся мультипликативным обратным числа e по модулю (p-1)(q-1), т.е. остаток от деления произведения de на (p-1)(q-1) должен быть равен единице: de ≡1(mod(p-1)(q-1)). Найти такое число получателю легко, так как наибольший общий делитель e и (p-1)(q-1) равен единице по выбору e.
Таким образом, отправитель знает открытый ключ: п и e, а получатель, кроме этого, имеет секретный ключ d.
Любое передаваемое сообщение можно представить в виде последовательности целых чисел из заданного интервала. Будем считать, что отправитель передает секретное сообщение, представленное последовательностью чисел Х1,...Хк, 0 ≤ Хi≤ n-1, для всех i от 1 до к.
Отправитель для каждого блока Xi передаваемого сообщения вычисляет Сi = (Xie) mod n и передает Сi, по открытому каналу связи.
Имея п, e и Сi,, получатель может расшифровать сообщение, воспользовавшись соотношением
Xi = (Cid) mod n. (2.2)
Докажем сначала выполнение равенства (2.2) для чисел Xi взаимно простых с п.
Так как числа e и d связаны соотношением ed = 1 (mod(p-1 )(q-1)), то для некоторого целого к справедливо равенство ed=1+k(p-1)(q-1). Отсюда и из соотношения Cid ≡ Xied(mod n) вытекает, что
Cid ≡ Xi1+k(p-1)(q-1)(mod n). (2.3)
Из теоремы Эйлера следует, что в случае, если числа Xi, и п взаимно просты
Xik(p-1)(q-1) ≡ 1(mod n).
Отсюда и из (2.3) следует выполнение соотношения (2.2) для случая, когда Xi взаимно просто с п.
Предположим теперь, что Xi, имеет общий делитель с числом п, не совпадающий с единицей. В этом случае Xi, делится либо на р, либо на q, так как п у нас равно произведению двух простых чисел р и q. Для определенности будем считать, что Xi, делится на р и Xi=kp, где k - некоторое целое число. Тогда Xi взаимно просто с q и по теореме Эйлера
Xi ≡ Xied(mod q). (2.4)
Обозначим через s остаток от деления Xied-1 на q. Так как Х=kр, для некоторого целого r справедливо представление Xied=kp(rq +s). Отсюда и из (2.4) вытекает соотношение kprq+kps ≡ Xi (mod q).
Следовательно, pks ≡ рк(mod q). Тогда (s-1)pk делится на q, и отсюда s=1, так как k<q и s <q.
В итоге, имеем представление Xied = kprq + kp, из которого вытекает выполнение соотношения Xi ≡ Xied(mod pq), эквивалентного (2.2).
Таким образом, получатель, вычислив (Cid) mod n, действительно получит i-й блок первоначального сообщения.
Рассмотрим в качестве примера случай р=3, q=11, n=3*11=33, e=1 и d=3. Легко убедиться, что каждое из чисел e=7 и DE=21 взаимно просто с (p-1)(q-1)=20. Для передачи сообщения М="02" отправителю необходимо вычислить C≡27(mod 33)≡29. Получатель может расшифровать сообщение 29, возведя его в степень d по модулю п: 293 ≡2(mod 33). Пусть, как и ранее, наш алфавит состоит из букв русского языка (без буквы Ё) и пробела. Занумеровав элементы этого алфавита числами от 0 до 32, можно зашифровать произвольное сообщение на русском языке. Например, сообщение "ПРОВЕРИМ ЗНАНИЕ АРИФМЕТИКИ" в зашифрованном виде на ключе n=33, e=7 будет выглядеть следующим образом: "27 25 20 29 14 25 02 12 32 28 07 00 07 02 14 32 00 25 02 26 12 14 06 02 10 02".
Очевидно, что шифр в нашем примере является шифром простой замены. Мы уже знаем, что такой шифр можно вскрыть, исследовав частоты встречаемости и взаимное расположение чисел в криптограмме. Однако в данном случае дешифровать получившуюся криптограмму можно гораздо быстрее, если составить полную таблицу зашифрования (см. табл. 2.10). При таком маленьком значении n, противнику легко это сделать, так как по предположению открытый ключ: п=33, e=7 - ему известен.
Таблица 2.10