- •Модель дискреционного доступа (dac)
- •Свойство простой безопасности: несекретный пользователь (или процесс, запущенный от его имени) не может читать данные из секретного файла.
- •Основные понятия криптографии
- •Симметричное шифрование
- •Алгоритм des
- •Алгоритм aes
- •Алгоритмы шифрования с открытым ключом
- •Алгоритм rsa
- •Электронная цифровая подпись
- •Режимы функционирования блочных шифров
Алгоритм 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
