При использовании алгоритма Des в приложениях его можно использовать в следующих 4 режимах:
электронная кодовая книга – Electronic Code Book (ECB)
сцепление блоков шифра – Cipher Block Chaining
обратная связь по шифротексту
обратная связь по выходу
Эти режим позволяют использовать Des алгоритм практически в любой области.
В этом режиме открытый текст обрабатывается блоками по 64 бита шифруется одним и тем же ключом при каждом заданном ключе каждый 64 битный блок открытого текста представляется уникальным блоком шифрованного текста, то есть для каждой 64 битной последовательности указано соответствующее уникальное последовательность шифрованного текста. При длине сообщения превышающего 64 бита шифровальщик делит сообщение на 64 блоки с заполнением последнего блока. Достоинством этого метода является простота реализации. Метод идеально подходит для шифрования небольших сообщений. Важной особенностью этого режима является то, что одинаковые 64 битные блоки открытого текста в зашифрованном виде будут представлены так же одинаковыми блоками. Недостатком этого режима является относительно низкая криптостойкость при передачи длинных сообщений.
Это режим свободен от недостатков предыдущего режима. В этом режиме входное значение алгоритма шифрования задается равным XOR разности текущего блока открытого текста и полученного на предыдущем шаге блока зашифрованного текста. В процессе шифрования все блоки открытого текста являются связанными так как шифрование любого блока осуществляется одним и тем же ключом, а входные данные поступающие на вход функции шифрования уже не жестко связанны с блоками открытого текста. В связи с этим одинаковые 64 битные последовательности в защиврованном тексте уже не повторяются. При дешифровании зашифрованный текс так же проходит через алгоритм поблочно. В результате соответствующий блок открытого текста получается как XOR разность выходного блока алгоритма расшифрования и предыдущего блока зашифрованного текста. В режиме шифрования исходный блок разбивается на блоки M. На самом первом этапе шифрования блок M1 складывается с помощью функции XOR с некоторым 64 битным вектором инициализации N который меняется каждый день и держится в секрете. Полученный 64 битный шифр C1 складывается с помощью XOR со вторым блоком открытого текста и так до конца.
Алгоритм Des можно преобразовать в потоковый шифр используя режим шифрованной обратной связи. Этот режим избавляет от необходимости разбивать текст на блоки то есть позволяет работать в режиме реального времени. То есть каждый символ можно зашифровать и передать получателю не дожидаясь окончания шифрования остальной части сообщения.
Для поточного шифра необходимо чтобы длина зашифрованного текста была в точности равна открытого. При этом зашифрованный текст соответствующий любому элементу текста будет зависеть от всех предыдущих элементов открытого текста. Так как происходит сцепление элементов открытого текста. Процесс шифрования происходит следующим образом. На входе функции шифрования размещается 64 битный регистр сдвига в котором размещается некоторое значение вектора инициализации. Несколько битов вектора инициализации связываются операцией XOR с первой порцией открытого текста M1 для получения первой порции зашифрованного текста C1, которые подаются на линию передачи данных. Содержимое регистра сдвига смещается влево на значение использованных бит вектора инициализации, а во освободившиеся ячейки регистра сдвига помещается значение C1. весь процесс повторяется до тех пор пока не будут зашифрованы все элементы открытого текста. Расшифрование осуществляется по такой же схеме, однако для того чтобы получить очередную порцию открытого текста с помощью операции XOR необходимо связать полученное по обратной связи порций зашифрованного текста с порцией на выходе функций шифрования данных.
Режим работы блочного алгоритма в виде сцепления блоков шифра может использоваться как для обеспечения конфиденциальности так и атунтификации.
режим шифрования
в режиме обратной по выходу в регистр сдвига подается порция зашифрованного текста. Входной блок вначале содержит вектор инициализации выровненный по правому краю. В данном методе для каждого сеанса шифрования необходимо использовать новый вектор инициализации которые пересылается по открытому каналу.
Преимущество данного метода над предыдущем состоит в том что возможное искажение битов при передаче данных не распространяется на последующие порции данных. Если искаженные биты появились при передачи С1 то это будет влиять только на восстановление из C1 M1.