Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММЗИ / Методичка (Домашнее задание).doc
Скачиваний:
32
Добавлен:
11.04.2015
Размер:
1.41 Mб
Скачать

2.2. Шифрование с использованием криптосистемы rsa

Одним из первых универсальных (допускающих использование, как для шифрования, так и для цифровой подписи) асимметричных алгоритмов стал разработанный в 1978 г. алгоритм RSA, названный по имени разработчиков – ученых Массачусетского технологического института Рона Ривеста (Ron Rivest), Ади Шамира (Adi Shamir) и Леонарда Адлемана (Leonard Adleman)[5].

Стойкость криптосистемы RSA основывается на сложности задачи факторизации (разложения натурального числа на простые сомножители). Многочисленные попытки криптоанализа, предпринятые с 1978 г., показали корреляцию эмпирических оценок стойкости с оценками, полученными априорно. Данный факт подтверждал предположение о невозможности разработки полиномиального по времени алгоритма факторизации натуральных чисел. Однако в 2002-2003 гг. индийским математикам М. Агравалю (Manindra Agrawal), Н. Каялю (Neeraj Kayal) и Н. Саксена (Nitin Saxena) из Индийского технологического института в Карпуре удалось показать существование полиномиального по времени алгоритма факторизации [6]. Несмотря на невысокие временные характеристики алгоритма (не ставящие в обозримом будущем под сомнение стойкость RSA), сам факт его разработки говорит о возможности создания других, более эффективных алгоритмов, способных эффективно решать задачи криптоанализа систем, основанных на сложности задачи факторизации.

Для генерации используемых в алгоритме ключей применяют два больших простых числа и. Для максимальной безопасностии должны иметь сопоставимую разрядность.

На их основе рассчитывается элемент , такой, что

.

(2.1)

Затем случайным образом выбирается элемент , такой, чтоиявляются взаимно простыми числами, т.е.

.

(2.2)

Замечание 1: Здесь и далее - есть функция Эйлера, определяемая из выражения

Замечание 2: Для вычисления в условиях схемыRSA можно использовать следующее соотношение, справедливость которого очевидна из определения функции Эйлера

.

(2.3)

Несложно убедиться, что данный метод вычисления имеет сложность порядка двоичных операций[7].

Замечание 3: Скорость работы алгоритма шифрования RSA существенным образом зависит от выбора . На практике наиболее используемыми вариантами являются значения,,. Каждое из этих чисел содержит в двоичном представлении только две единицы, поэтому алгоритм повторного возведения в квадрат позволяет выполнить шифрование достаточно быстро[1].

Пара чисел будет, таким образом являться открытым ключом алгоритма.

Далее с помощью расширенного алгоритма Евклида [1,3] определяется закрытый ключ , такой что:

.

(2.4)

Другими словами

.

(2.5)

Важно отметить, что итакже являются взаимно простыми. Числаив дальнейшем не используются, однако они должны быть сохранены в секрете, т.к. их разглашение будет означать вскрытие криптосистемы.

При шифровании сообщение разбивается на блоки фиксированной длины (меньшей, чем). Шифрпреобразование полученных блоковвыполняется согласно выражению

.

(2.6)

При расшифровке сообщения для каждого зашифрованного блока вычисляется

.

(2.7)

Для доказательства применимости данного алгоритма достаточно подробно рассмотреть свойства функции Эйлера [4,8].

Стойкость RSA существенным образом зависит от выбора и. Как правило, практическую ценность имеет шифрование с ключами длины порядка сотен бит. Другим важным условием стойкости является требование, чтобы значениебыло по возможности наименьшим [1,7].

В литературе описаны многочисленные модификации схемы RSA, отличающиеся повышенным быстродействием, большей стойкостью и т.д.[1,7,8].