DES - один из наиболее популярных шифровальных алгоритмов, разработан компанией IBM и Правительством США в 1977 г. для защиты коммерческой информации. Таким образом, DES - поддержанный на государственном уровне симметричный алгоритм.
Алгоритм DES использует случайный 56-битовый ключ шифрования, это означает 256= 72 057 594 037 927 936 возможных ключей, приблизительно 7,2*1017 значений. Размер блока шифрования 64 бит. Открытый текст разбивается на блоки по 64 бит и подается на вход DES, в результате чего получается шифртекст. Алгоритм DES имеет 4 режима работы. Один из них Cipher Block Chaining (CBC).
CBC - это режим шифрования с обратной связью, при котором перед вычислением очередного шифрованного блока открытый текст складывается побитно по модулю 2 с предыдущим шифртекстом. В режиме СВС над открытым текстом и предыдущим шифртекстом выполняется операция XOR и тем самым каждый предыдущий шифрблок используется для модифицирования очередного блока открытого текста.
Если без обратной связи шифрование DES производится так:
| Блок 1 | Блок 2 | Блок 3 | Блок 4 |
![]() | ![]() | ![]() | ![]() |
| Шифртекст 1 | Шифртекст 2 | Шифртекст 3 | Шифртекст 4 |
где ↓ означает шифрование DES, то в режиме СВС так:
| Блок 1 | Блок 2 | Блок 3 | Блок 4 |
![]() | ![]() | ![]() | ![]() |
| Шифртекст 1 | Шифртекст 2 | Шифртекст 3 | Шифртекст 4 |
где

В режиме шифрования без обратной связи все одинаковые исходные открытые тексты будут зашифрованы одинаково, что дает возможность противнику угадать открытый текст, даже не прибегая к его расшифровыванию, а просто накапливая шифрблоки и соответствующие им открытые тексты. Сцепление добавляет в блочный шифр механизм обратной связи, и, таким образом, результат шифрования этого блока зависит не только от его значения и значения ключа, но и от предыдущих блоков этого сообщения. При шифровании в режиме СВС одинаковые блоки открытого текста превращаются в различающиеся друг от друга блоки шифртекста только в том случае, если различались предшествующие блоки. Однако два одинаково начинающихся сообщения будут зашифрованы одинаково.
| Синхропосылка | Блок 1 | Блок 2 | Блок 3 | Блок 4 |
![]() | ![]() | ![]() | ![]() | ![]() |
| Шифртекст 0 | Шифртекст 1 | Шифртекст 2 | Шифртекст 3 | Шифртекст 4 |