Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
105-110.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
63.09 Кб
Скачать

Алгоритм rsa

RSA — один из первых алгоритмов шифрования с открытым ключом — разработан в 1977 году, название составлено из первых букв имен его авторов (Райвест, Шамир и Ад-леман). На протяжении двадцати лет он был самым опулярным и практически единствен-ным широко использующимся алгоритмом с открытым ключом.

Рассмотрим этот алгоритм подробно.

По теореме Эйлера Mϕ(n)

Для генерации ключей выбираются два больших случайных простых числа p и q и вычисляется их произведение n = pq. Затем вычисляется функция Эйлера: ϕ(n) = (p-1)(q-1)

Далее выбирается целое число e, такое что 1 < e < ϕ(n) и e взаимно просто с ϕ(n). Находится число d такое, что ed ≡ 1 (mod ϕ(n)). Это может быть сделано, например, при помощи расширенного алгоритма Евклида.

Открытым ключом является пара чисел (n, e), а закрытым ключом — пара (n, d). Как видно, для того, чтобы по открытому ключу определить закрытый, необходимо вычислить ϕ(n), а для этого большое (на практике порядка 1024 битов) число n необходи-мо разложить на простые множители. Но эффективного алгоритма разложения числа на простые множители не существует.

RSA предназначен для шифрования двоичных текстов. Открытый текст разбивается на блоки и каждый блок рассматривается как двоичное число M. При этом должно соблю-даться ограничение M < n, исходя из этого условия выбираются длина блока и минималь-но возможные значения p и q.

Очевидно, что открытый и закрытый ключ в алгоритме RSA взаимозаменяемы: то, что зашифровано одним из них, расшифровывается другим.

Недостатком алгоритмов с открытым ключом является низкая скорость выполняемых операций. Так, в алгоритме RSA шифрование и дешифрование заключается в возве-дении очень большого числа в очень большую степень, а это достаточно ресурсоемкая операция.

Поэтому на практике чаще всего используется комбинация двух алгоритмов. Сообщение шифруется с помощью симметричного алгоритма шифрования (например, AES). При этом каждый раз генерируется новый случайный ключ. Этот ключ зашифровывается открытым ключом получателя (например, с помощью RSA) и отправляется вместе с со-общением. Такая гибридная схема обеспечивает как скорость операций шифрова-ния/дешифрования, так и надежность.

Электронная цифровая подпись

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

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

В этом случае расшифровать его сможет кто угодно, поскольку открытый ключ общедос-тупен. Однако получатель сообщения может быть уверен в том, что подлинный автор со-общения — владелец закрытого ключа, поскольку никто другой не имеет возможности его создать (при условии, что закрытый ключ не скомпрометирован, т.е. не украден). Таким образом, достигается аутентичность (подлинность) сообщения. С юридической точки зрения это означает, что автор сообщения не сможет от него отказаться (апеллируемость).

Эта идея нашла свое воплощение в концепции электронной цифровой подписи. Электронная цифровая подпись (ЭЦП) — реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в ре-зультате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сер-тификата ключа подписи, а также установить отсутствие искажения информации в элек-тронном документе. Такое определение приводится в ст. 3 федерального закона «Об элек-тронной цифровой подписи».

В качестве электронной цифровой подписи может выступать сам текст сообщения, зашифрованный закрытым ключом отправителя. Однако такой вариант не используется в силу его неэффективности. Во-первых, шифрование/дешифрование всего текста занимает очень много времени. Во-вторых, длина ЭЦП в этом случае будет равна (и даже превы-шать) длину исходного сообщения, что создает неудобство при пересылке. Поэтому со-временные алгоритмы электронной цифровой подписи основаны на использовании хэш-функций.

Хэш-функцией называется функция (H), которая принимает на входе сообщение M произвольной длины, а на выходе выдает значение H(M) фиксированной длины, называе-мое хэшем или профилем сообщения М. При этом в криптографии (в частности, в алго-ритмах ЭЦП) используются функции, обладающие следующими свойствами:

1. Односторонность. Для любого хэша h должно быть практически невозможно вы-числить или подобрать такое x, что H(x) = h.

2. Стойкость к коллизиям первого рода. Для любого сообщения x должно быть прак-тически невозможно вычислить или подобрать другое сообщение y, такое что H(x) = H(y).

3. Стойкость к коллизиям второго рода. Должно быть практически невозможно вы-числить или подобрать любую пару различных сообщений x и y для которых H(x) = H(y).

Среди наиболее известных алгоритмов хэширования можно назвать MD5, SHA-512, ГОСТ Р34.11 (российский стандарт вычисления хэш-функции).

110

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]