Работа симметричных шифров включает в себя два преобразования:
C = Ek(m) и m = Dk(C),
где m – открытый текст, E – шифрующая функция, D – расшифровывающая функция, k – секретный ключ, C – шифртекст.
Функции зашифрования/расшифрования являются общеизвестными и стойкость всей системы зависит только от секретности ключа k. Этот принцип называют также принципом Керкгоффса.
Современные симметричные алгоритмы шифрования делятся на блочные и поточные.
Сравнительная характеристика основных особенностей блочных и поточных шифров приведена в таблице.
Таблица 5. Особенности блочных и поточных шифров
Блочные шифры | Поточные шифры |
Работают во всех режимах шифрования | Поддерживают не все режимы шифрования |
Тяжелы для математического анализа | Простое проектирование и математический анализ |
Легко реализуются как аппаратно, так и программно | Практически непригодны к программной реализации для битового потока. Бессмысленно использовать программный шифратор для шифрования каждого бита по отдельности. |
Имеют не очень высокое быстродействие | Имеют высокое быстродействие |
Стойкость шифра зависит от длины ключа, количества раундов шифрования, размера блока и рассеивающих и перемешивающих характеристик алгоритма | Стойкость шифра зависит от статистических характеристик и периода переполнения генератора ключевой последовательности |
Блочные шифры оперируют с данными путем фиксированного преобразования крупных блоков открытого текста, а поточные шифры оперируют с данными путем динамического преобразования отдельных цифр отрытого текста.
При применении различных режимов шифрования блочные шифры могут быть также реализованиы как поточные и наоборот.
Основой блочного шифра является алгоритм преобразования, основой поточного шифра – генератор ключевой последовательности. В таблице приведен сравнительный перечень особенностей блочных и поточных шифров.