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

Рис. 1. Криптоалгоритмы
Обзор криптографических методов
Шифрование
является основным методом защиты; рассмотрим его подробно далее.
Стоит
сказать несколько слов и об остальных криптографических методах:
- Электронная подпись
используется для подтверждения целостности и авторства данных. Целостность
данных означает, что данные не были случайно или преднамеренно изменены
при их хранении или передаче.
Алгоритмы электронной подписи используют два вида ключей: - секретный ключ используется
для вычисления электронной подписи;
- открытый ключ используется для
ее проверки.
При использовании криптографически сильного алгоритма
электронной подписи и при грамотном хранении и использовании секретного ключа
(то есть при невозможности использования ключа никем, кроме его владельца)
никто другой не в состоянии вычислить верную электронную подпись какого-либо
электронного документа.
- Аутентификация позволяет
проверить, что пользователь (или удаленный компьютер) действительно
является тем, за кого он себя выдает. Простейшей схемой аутентификации
является парольная - в качестве секретного элемента в ней используется
пароль, который предъявляется пользователем при его проверке. Такая схема
доказано является слабой, если для ее усиления не применяются специальные
административно-технические меры. А на основе шифрования или хэширования
(см. ниже) можно построить действительно сильные схемы аутентификации
пользователей.
- Существуют различные методы
криптографического контрольного суммирования:
- ключевое и бесключевое
хэширование;
- вычисление имитоприставок;
- использование кодов
аутентификации сообщений.
Фактически, все эти методы различным образом из данных
произвольного размера с использованием секретного ключа или без него вычисляют
некую контрольную сумму фиксированного размера, однозначно соответствующую
исходным данным.
Такое криптографическое контрольное суммирование широко используется в
различных методах защиты информации, например:
- для подтверждения целостности
любых данных в тех случаях, когда использование электронной подписи
невозможно (например, из-за большой ресурсоемкости) или является
избыточным;
- в самих схемах электронной
подписи - "подписывается" обычно хэш данных, а не все данные
целиком;
- в различных схемах
аутентификации пользователей.
- Генераторы случайных и псевдослучайных
чисел позволяют создавать последовательности случайных чисел, которые
широко используются в криптографии, в частности:
- случайные числа необходимы для
генерации секретных ключей, которые, в идеале, должны быть абсолютно
случайными;
- случайные числа применяются во
многих алгоритмах электронной подписи;
- случайные числа используются
во многих схемах аутентификации.
Шифрование
Шифрование информации - это преобразование
открытой информации в зашифрованную (которая чаще всего называется шифртекстом
или криптограммой), и наоборот. Первая часть этого процесса называется зашифрованием,
вторая - расшифрованием.
Можно
представить зашифрование в виде следующей формулы:
С = Ek1(M),
где:
M (message) - открытая информация,
С (cipher text) - полученный в результате зашифрования шифртекст,
E (encryption) - функция зашифрования, выполняющая криптографические
преобразования над M,
k1 (key) - параметр функции E, называемый ключом
зашифрования.
Понятие ключ можно определить так: "Конкретное секретное
состояние некоторых параметров алгоритма криптографического преобразования,
обеспечивающее выбор одного преобразования из совокупности всевозможных для
данного алгоритма преобразований".
Ключ может
принадлежать определенному пользователю или группе пользователей и являться для
них уникальным. Зашифрованная с использованием конкретного ключа информация
может быть расшифрована только с использованием только этого же ключа или
ключа, связанного с ним определенным соотношением.
Аналогичным
образом можно представить и расшифрование:
M' = Dk2(C),
где:
M'- сообщение, полученное в результате расшифрования,
D (decryption) - функция расшифрования; так же, как и функция
зашифрования, выполняет криптографические преобразования над шифртекстом,
k2 - ключ расшифрования.
Для
получения в результате расшифрования корректного открытого текста (то есть того
самого, который был ранее зашифрован: M' = M), необходимо одновременное
выполнение следующих условий:
- Функция расшифрования должна
соответствовать функции зашифрования.
- Ключ расшифрования должен
соответствовать ключу зашифрования.
При
отсутствии верного ключа k2 получить исходное сообщение M' = M
с помощью правильной функции D невозможно.
Алгоритмы
шифрования можно разделить на две категории (см. рис. 1):
- Алгоритмы симметричного
шифрования.
- Алгоритмы асимметричного шифрования.
В алгоритмах
симметричного шифрования для расшифрования обычно используется тот же
самый ключ, что и для зашифрования, или ключ, связанный с ним каким-либо
простым соотношением. Последнее встречается существенно реже, особенно в
современных алгоритмах шифрования. Такой ключ (общий для зашифрования и
расшифрования) обычно называется просто ключом шифрования.
В асимметричном
шифровании ключ зашифрования k1 легко вычисляется из ключа k2
таким образом, что обратное вычисление невозможно. Например, соотношение ключей
может быть таким:
k1 = ak2 mod p,
где a и p - параметры алгоритма
шифрования, имеющие достаточно большую размерность.
Такое
соотношение ключей используется и в алгоритмах электронной подписи.
Основной
характеристикой алгоритма шифрования является криптостойкость, которая
определяет его стойкость к раскрытию методами криптоанализа. Обычно эта
характеристика определяется интервалом времени, необходимым для раскрытия
шифра.
Симметричное
шифрование бывает двух видов:
- Блочное шифрование - информация разбивается на
блоки фиксированной длины (например, 64 или 128 бит), после чего эти блоки
поочередно шифруются. Причем, в различных алгоритмах шифрования или даже в
разных режимах работы одного и того же алгоритма блоки могут шифроваться
независимо друг от друга или "со сцеплением" - когда результат
зашифрования текущего блока данных зависит от значения предыдущего блока
или от результата зашифрования предыдущего блока.
- Поточное шифрование - необходимо, прежде всего, в
тех случаях, когда информацию невозможно разбить на блоки - скажем, некий
поток данных, каждый символ которых должен быть зашифрован и отправлен
куда-либо, не дожидаясь остальных данных, достаточных для формирования блока.
Поэтому алгоритмы поточного шифрования шифруют данные побитно или
посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют
блочное и поточное шифрование, считая, что поточное шифрование - это
шифрование блоков единичной длины.
|