
Билет №13
До сих пор мы рассматривали симметричные системы шифрования: в них шифрование и расшифрование происходило с помощью одного и того же секретного ключа 𝑘.
При использовании данных шифров будут рассмотрены системы, реализующие асимметричное шифрование. В них для шифрования и расшифрования используются разные ключи, причём ключ зашифрования может быть несекретным. Отсюда другое название ассиметричных шифров — шифры с открытым ключом.
Шифрсистема RSA:
Система RSA(Rivest, Shamir, Adleman) была предложена в 1978г. и в настоящее время является наиболее широко распространённой системой шифрования с открытым ключом.
Пусть 𝑛 = 𝑝 · 𝑞, 𝑛, 𝑝, 𝑞 ∈ Z — целое число, представимое в виде произведения двух простых чисел 𝑝, 𝑞.
Отображение 𝜙: N → N, сопоставляющее каждому числу 𝑚 ∈ N число 𝜙(𝑚), равное количеству натуральных чисел 𝑎 6 𝑚, взаимнопростых с 𝑚, называется функцией Эйлера.
Утверждение: Если число 𝑛 ∈ N представимо в виде произведения простых множителей 𝑛 = 𝑝1 · . . . · 𝑝𝑛, то 𝜙(𝑛) = (𝑝1 − 1) · . . . · (𝑝𝑛 − 1)
Выберем два числа 𝑒, 𝑑 из условия𝑒 · 𝑑 = 1 (mod 𝜙(𝑛)).
Причём из утверждения следует, что 𝜙(𝑛) = (𝑝 − 1) · (𝑞 − 1).
Открытым ключом положим пару 𝑘𝑒 = (𝑛, 𝑒). Секретным ключом будет 𝑘𝑑 = (𝑛, 𝑝, 𝑞, 𝑑).
Тогда правила зашифрования и расшифрования определяются формулами:
𝑌 = 𝐸𝑘𝑒(𝑋) = 𝑋𝑒 (mod 𝑛)
𝑋 = 𝐷𝑘𝑑(𝑌 ) = 𝑌 𝑑 (mod 𝑛)
Отметим, что в данном случае в качестве 𝑋 и 𝑌 обычно выступают блоки открытого и шифрованного текстов.
Билет №14
Основной проблемой при криптоанализе является разложение числа 𝑛 на множители. Если это сделано, то можно без труда восстановить экспоненту расшифрования 𝑑
и дешифровать криптограмму. При реальном использовании одной из рекомендаций является использование в качестве 𝑝 и 𝑞 чисел, имеющих более 100 десятичных знаков.
Как уже было отмечено, стойкость шифрсистемы RSA обусловлена сложностью проблемы факторизации больших чисел. Если модуль системы 𝑛 удалось разложить на множители, то дальнейший криптоанализ представляет собой чисто вычислительный процесс.
Отображение 𝜙: N → N, сопоставляющее каждому числу 𝑚 ∈ N число 𝜙(𝑚), равное количеству натуральных чисел 𝑎 6 𝑚,взаимнопростых с 𝑚, называется функцией Эйлера.
Пусть было получено, что 𝑛 = 𝑝 · 𝑞. Тогда алгоритм дальнейшего криптоанализа содержит в себе следующие шаги:
(1) нахождение значения 𝜙(𝑛) = (𝑝 − 1) · (𝑞 − 1);
(2) нахождения по расширенному алгоритму Евклида экспоненты расшифрования 𝑑;
(3) вычисление значений открытого текста.
Алгоритм Евклида.
Алгоритм Евклида для целых чисел 𝑎, 𝑏 приусловии 𝑏 ̸= 0 заключается в следующем. Сначала делим с остатком 𝑎 на 𝑏:
𝑎 = 𝑏𝑞1 + 𝑟1, 0 6 𝑟1 < |𝑏|.
Если 𝑟1 = 0, то алгоритм окончен.
В этом случае 𝑏 делит 𝑎 и, очевидно,𝑏 = НОД(𝑎, 𝑏).
Если же 𝑟1 ̸= 0, то делим с остатком 𝑏 на 𝑟1:
𝑏 = 𝑟1𝑞2 + 𝑟2, 0 6 𝑟2 < 𝑟1.
Если 𝑟2 = 0, то алгоритм окончен, в противном случае делим с остатком 𝑟1 на 𝑟2 и т.д. до тех пор, пока не получим остаток, равный нулю.
Такой момент обязательно наступит, поскольку получающиеся остатки являются
целыми неотрицательными числами и образуют строго убывающую цепочку
𝑟1 > 𝑟2 > . . .
В итоге имеем следующую последовательность:
𝑎 = 𝑏𝑞1 + 𝑟1, 0 < 𝑟1 < |𝑏|,
𝑏 = 𝑟1𝑞2 + 𝑟2, 0 < 𝑟2 < |𝑟1|,
𝑟1 = 𝑟2𝑞3 + 𝑟3, 0 < 3 < |r2|,
𝑟𝑛−2 = 𝑟𝑛−1𝑞𝑛 + 𝑟𝑛, 0 < 𝑟𝑛 < |𝑟𝑛−1|,
𝑟𝑛−1 = 𝑟𝑛𝑞𝑛+1
Прослеживая эту систему равенств снизу вверх, нетрудно заметить,
что 𝑟𝑛 делит числа 𝑟𝑛−1, 𝑟𝑛−2, . . . , 𝑟1, 𝑏, 𝑎. Следовательно, 𝑟𝑛 = НОД(𝑎, 𝑏).
Теорема.
Если для 𝑟1, . . . , 𝑟𝑛, 𝑞1, . . . , 𝑞𝑛 — последовательности остатков и неполных частных в алгоритме Евклида для чисел 𝑎, 𝑏, то выполняется:
𝑟𝑘 = 𝑎𝑢𝑘 + 𝑏𝑣𝑘, 𝑘 ∈ 1, 𝑛, где
𝑢𝑘 = 𝑢𝑘−2 − 𝑢𝑘−1𝑞𝑘, 𝑣𝑘 = 𝑣𝑘−2 − 𝑣𝑘−1𝑞𝑘,
𝑢0 = 0, 𝑢1 = 1, 𝑣0 = 1, 𝑣1 = −𝑞1.
На теореме основан расширенный алгоритм Евклида, который служит для нахождения для целых чисел 𝑎, 𝑏 ∈ Z таких целых чисел 𝑢, 𝑣 ∈ Z:
𝑎 · 𝑢 + 𝑏 · 𝑣 = НОД(𝑎, 𝑏)