Шифр RSA. Выполнила студентка группы АЛ-ДЛП-901 Применко Татьяна
RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) — криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел. Факторизацией натурального числа называется его разложение в произведение простых множителей Криптографическая система с открытым ключом (Асимметричное шифрование) — система шифрования, при которой public key передаётся по открытому каналу. Для расшифровки сообщения используется private key.
RSA Криптографические системы с открытым ключом используют complexity function, которые обладают следующим свойством: 1) Если известно x, то f(x) вычислить относительно просто 2) Если известно y = f(x), то для вычисления x нет простого (эффективного) пути. Задача факторизации имеет ~ экспоненциальную сложность от размера факторизуемого числа (Класс EXPTIME).
Функция Эйлера phi(n), где n — phi(n) натуральное число, равна количеству натуральных чисел, меньших и взаимно простых с ним. Целые числа называются взаимно простыми, если они не имеют никаких общих простыми делителей, кроме ± 1. 1) phi(p) = p — 1, если p — простое(то есть все натуральные числа кроме него самого) 2) phi(pq) = phi(p)*phi(q) = (p-1)*(q-1) если p и q взаимно простые
Расширенный алгоритм Евклида Расширенный алгоритма Евклида находит НОД(p, q) = GCD(p, q) = d и такие числа u, v, что p * u + q * v = d. Числа u, v - целые Если числа p и q взаимно простые, то p*u + q*v = 1
Алгоритм создания public и private keys RSA 1) Выбираются два различных случайных простых числа p и q заданного размера (например, 1024 бита каждое). 2) Вычислить их произведение n = pq, которое называется modulus (модулем). 3) Вычислить функцию Эйлера от числа n: phi(n) = (p-1)(q-1) 4) Выбирается целое число e(public key exponent) 1 < e < phi(n), взаимно простое со значением функции phi(n). 5) Вычислить число d(private key exponent), такое что e*d = 1 mod phi(n) (взаимно простое по модулю phi(n)). Вычисляется с помощью расширенного алгоритма Евклида 6) Пара {e, n} — RSA public key 7) Пара {d, n} — RSA private key
Пример: Алгоритм создания public и private keys RSA
RSA encrypt/decrypt Для шифрования используется RSA public key {e, n}. Для расшифрования RSA private key {d, n}.