
- •Криптографические алгоритмы
- •1. Классификация криптографических алгоритмов
- •Охарактеризуем кратко основные типы ка. Хэширование
- •Симметричное шифрование
- •Блочные алгоритмы шифрования данных
- •Асимметричные криптоалгоритмы
- •Асимметричные криптоалгоритмы
- •6.3.1. Алгоритм шифрования rsa
- •Электронная цифровая подпись (эцп) Алгоритмы цифровой подписи
Криптографические алгоритмы
Большинство средств защиты информации базируется на использовании криптографических шифров и процедур шифрования/расшифровании.
В соответствии со стандартом шифрования ГОСТ 28147 – 89 под шифром понимают совокупность обратимых преобразований множества открытых данных на множество зашифрованных данных, задаваемых ключом и алгоритмом криптографического преобразования.
Существует множество разных криптографических алгоритмов. Назначение этих алгоритмов – защита информации. Чтобы обеспечить надежную и адекватную защиту с помощью криптоалгоритма (КА), нужно понимать, какие бывают КА и какой тип алгоритма лучше приспособлен для решения конкретной задачи.
1. Классификация криптографических алгоритмов
Известны несколько классификаций криптографических алгоритмов. Одна из них подразделяет КА в зависимости от числа ключей, применяемых в конкретном алгоритме:
бесключевые КА – не используют в вычислениях никаких ключей;
одноключевые КА – работают с одним ключевым параметром (секретным ключом);
двухключевые КА – на различных стадиях работы в них применяются два ключевых параметра: секретный и открытый ключи.
Существуют более детальные классификации рис. 1.
Рис. 6.1. Классификация криптоалгоритмов защиты информации
Охарактеризуем кратко основные типы ка. Хэширование
Хэширование – это метод криптозащиты, представляющий собой контрольное преобразование информации: из данных неограниченного размера путем выполнения криптографических преобразований вычисляется хэш-значение фиксированной длины, однозначно соответствующее исходным данным.
Хэш-значение h(M) — это дайджест сообщения М, т. е. сжатое двоичное представление основного сообщения М произвольной длины. Хэш-значение h(M) формируется функцией хэширования. Функция хэширования (хэш-функция) представляет собой преобразование, на вход которого подается сообщение переменной длины М, а выходом является строка фиксированной длины h(M). Иначе говоря, хэш-функция h (.) принимает в качестве аргумента сообщение (документ) М произвольной длины и возвращает хэш-значение (хэш) Н= h(M) фиксированной длины.
Функция хэширования позволяет сжать подписываемый документ М до 128 и более бит (в частности до 128 или 256 бит), тогда как М может быть размером в мегабайт или более. Значение хэш-функции h(М) зависит сложным образом от документа М и не позволяет восстановить сам документ М.
Функция хэширования обладает следующими свойствами.
Хэш-функция может быть применена к аргументу любого размера.
Выходное значение хэш-функции имеет фиксированный размер.
Хэш-функцию h(x) достаточно просто вычислить для любого х.
Хэш-функция должна быть чувствительна к всевозможным изменениям в тексте М, таким как вставки, выбросы, перестановки и т. п.
Хэш-функция должна быть однонаправленной, т. е. обладать свойством необратимости, иными словами, задача подбора документа М', который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима.
Вероятность того, что значения хэш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала; т. е. для любого фиксированного x с вычислительной точки зрения невозможно найти x’ ≠ x, такое, что h(x’) = h(x).
Известные алгоритмы хэширования:
отечественный стандарт ГОСТ P34.11 – 94. Вычисляет хэш размером 32 байта;
MD (Message Digest) – ряд алгоритмов хэширования, наиболее распространенных в мире. Например, алгоритм MD5 применяется в последних версиях Microsoft Windows для преобразования пароля пользователя в 16-байтное число;
SHA-1 (Secure Hash Algorithm) – это алгоритм вычисления дайджеста сообщений, вырабатывающий 160-битовый хэш-код входных данных, широко распространен в мире, используется во многих сетевых протоколах защиты информации.
Хэш-функции широко используются также для аутентификации пользователей.