
- •Министерство образования и науки рф
- •Историческое введение в основы криптологии
- •1 Основные криптографические системы Тема 2 Шифрование методом перестановки
- •Контрольное задание
- •Тема 3 Шифрование методом замены
- •Контрольные задания
- •Элементы криптоанализа Тема 4 Вскрытие шифров перестановки
- •Контрольное задание
- •Тема 5 Вскрытие шифра простой замены
- •Контрольное задание
- •Тема 6 Вскрытие многоалфавитных шифров.
- •Контрольное задание
- •Тема 7 Шифрование с открытым ключом
- •Контрольное задание
- •Контрольное задание
Контрольное задание
1. Ознакомиться с примером создания общего секретного ключа Диффи-Хеллмана, приведенным в методических указаниях.
2. Объединиться в группы по 2 человека. Сформировать общий секретный ключ по предложенному алгоритму, обмениваясь соответствующими частями ключа. Сравнить полученные результаты. Оформить и сдать преподавателю результаты работы в табличном виде по следующей форме:
Фамилия студента……………………………………………..
a =
b =
i =
j =
I =
J =
k =
Алгоритм RSA
В 1978 г. Рон Ривест, Ади Шамир и Лен Адельман разработали алгоритм шифрования Rivest-Shamir-Adleman (RSA) с открытым ключом. В отличие от алгоритма Диффи-Хеллмана RSA может использоваться для шифрования и дешифрования. Также, в отличие от алгоритма Диффи-Хеллмана, безопасность алгоритма RSA базируется на факторизации больших чисел. Задачу факторизации больших чисел принято считать очень сложной, если числа очень велики (1024 бит или больше).
Базовый алгоритм, позволяющий обеспечить конфиденциальность данных, очень прост.
Зашифрованный текст = (открытый текст)e mod n
Открытый текст = (шифрованный текст)d mod n
Секретный ключ = {d, n}
Открытый ключ = {e, n}
Безопасность обеспечивается сложностью вычисления d при наличии известных e и n. Подразумевается, что владелец пары ключей сохраняет секретный ключ в тайне, и что открытый ключ передается в открытом виде. Следовательно, если информация зашифрована с помощью открытого ключа, дешифровать ее может только владелец ключевой пары.
Также следует заметить, что алгоритм может быть обращен для обеспечения аутентификации отправителя. В этом случае алгоритм будет иметь следующий вид.
Зашифрованный текст = (открытый текст)d mod n
Открытый текст = (шифрованный текст)e mod n
Секретный ключ = {d, n}
Открытый ключ = {e, n}
В целях аутентификации владелец шифрует информацию с использованием секретного ключа. Это может делать только владелец ключевой пары, так как секретный ключ содержится в тайне. Любое лицо может дешифровать информацию и удостовериться в том, что данные поступили именно от владельца ключевой пары.
Генерация ключей RSA
При генерировании ключей RSA необходимо соблюдать тщательность. Чтобы сгенерировать ключевую пару RSA, выполните следующие шаги:
Выберите два простых числа p и q и содержите их в секрете.
Вычислите n = pq.
Вычислите ф(n) = (p - 1)(q - 1).
Выберите такое e, чтобы оно было взаимно простым по отношению к ф(n).
Определите такое d, чтобы (d)(e) = 1 mod ф(n) и d < ф(n).
Примечание
На практике число n должно содержать порядка 200 знаков или больше. Тогда оба числа p и q должны иметь длину, по крайней мере, 100 знаков. Ключи для использования на практике должны иметь длину 1024 бит. В случае с секретной информацией рекомендуется использовать ключи длиной 2048 бит и более.
Реальный пример работы RSA
Сначала я выбрал два простых числа. В данном случае были выбраны числа p = 11 и q = 13.
Теперь вычисляем n = pq. Имеем n = 11 * 13 = 143.
Теперь нужно вычислить ф(n) = (p - 1)(q - 1) = (11 - 1)(13 - 1) = 10 * 12 = 120.
Выбираем число e так, чтобы оно было простым относительно ф(n). Здесь было выбрано значение e = 7.
Необходимо определить такое d, чтобы (d)(e) = 1 mod ф(n). Следовательно, (d)(7) = 1 mod 120; d должно также быть меньше 120. Находим, что d = 103. (103 умножаем на 7 и получается 721. 721 делим на 120 и получаем 6 с остатком 1.)
Секретный ключ: {103, 143}.
Открытый ключ: {7, 143}.
Для выполнения непосредственно шифрования и дешифрования используем исходные формулы.
Зашифрованный текст = (открытый текст)e mod n
Открытый текст = (шифрованный текст)d mod n
Предположим, что нужно отправить сообщение "9". С помощью формулы шифрования получаем следующее:
Зашифрованный текст = (9)7 mod 143 = 48.
При получении зашифрованной информации она подвергается обработке алгоритмом дешифрования:
Открытый текст = (48)103 mod 143 = 9.