алгоритм RSA
Самый распространенный алгоритм шифрования с открытым ключом. Назван по первым буквам его создателей (Ривест, Шамир, Адельман). Стойкость RSA базируется на сложности факторизации больших целых чисел. Метод обнародован и принят в качестве стандарта в 1993 г. (описание стандарта – PKCS#1: RSA Encryption Standard), хотя был придуман авторами ещё в 1978 во время совместных исследований в Массачусетском технологическом институте. Алгоритм можно применять как для зашифрования / расшифрования, так и для генерации / проверки электронно-цифровой подписи.
Генерация ключей.
Каждый участник информационного обмена генерирует пару ключей (открытый и секретный) в соответствии со следующими правилами:
1) Выбираются два больших простых целых числа P и Q приблизительно одинакового размера. Выбор чисел P и Q определяется следующими соображениями:
- увеличение порядка чисел ведёт к замедлению операции зашифрования / расшифрования;
- увеличение порядка чисел ведёт к увеличению стойкости алгоритма, поэтому при выборе чисел следует руководствоваться практической необходимостью. Не следует выбирать слишком большие числа P и Q в связи со сложностью работы с ними. На практике обычно рекомендуется выбирать числа, содержащие порядка 200-300 десятичных знаков.
2) Вычисляется модуль системы N = PЧQ и функция Эйлера j = (P-1)Ч(Q-1).
3) Выбирается достаточно большое число e, удовлетворяющее условию 1<E<j, и взаимно простое с j.
4) Используется расширенный алгоритм Евклида и вычисляется большое число D, отвечающее условию
EЧD = 1 (mod j), 1<D<j.
Таким образом, секретным ключом является пара чисел (N, D), а открытым – пара чисел (N, E). Открытый ключ помещается в общедоступный канал.
предыдущая тема следующая