Алгоритмы симметричного шифрования
Области применения
Необходимо, чтобы алгоритм симметричного шифрования мог приме-няться в следующих областях:
- Шифрование данных. Алгоритм должен быть эффективен при шифровании как небольших файлов и блоков данных, так и большого потока данных.
- Создание случайных чисел. Алгоритм должен быть эффекти-вен для создания любого количества случайных битов.
- Хэширование. Алгоритм должен эффективно преобразовы-ваться в одностороннюю хэш-функцию.
Платформы
Стандартный алгоритм шифрования должен быть реализован на раз-личных платформах, которые, имеют разные характеристики.
Специальная аппаратура. Алгоритм должен эффективно реализовы-ваться на специализированной аппаратуре, предназначенной для выполне-ния шифрования / расшифрования.
Большие процессоры. Хотя в приложениях, требующих максимальной скорости, всегда используется специальная аппаратура, программные реа-лизации применяются чаще. Алгоритм должен допускать эффективную программную реализацию на 32-битных процессорах.
Процессоры среднего размера. Алгоритм должен работать на микро-контроллерах и других процессорах среднего размера.
Малые процессоры. Должна существовать возможность реализации алгоритма на смарт-картах, с учетом жестких ограничений на используемую память.
Дополнительные требования
Алгоритм шифрования должен, по возможности, удовлетворять неко-торым дополнительным требованиям.
- Алгоритм должен быть простым с точки зрения написания кода, чтобы минимизировать вероятность программных ошибок.
- Алгоритм должен иметь плоское пространство ключей, т.е. допускать любую случайную строку битов нужной длины в качестве возможного ключа. Наличие слабых ключей нежелательно.
- Алгоритм должен легко модифицироваться для различных уровней безопасности и удовлетворять как минимальным, так и максимальным требованиям.
- Все операции с данными должны осуществляться над блоками, кратными байту или 32-битному слову.