Рассмотрим случай, когда мы хотим зашифровать некоторую информацию, представленную в двоичном виде в компьютерной памяти (например, файл) или электронике, как последовательность нулей и единиц.
· Вся информация разбивается на блоки фиксированной длины. В случае если длина входного блока меньше, чем размер, который шифруется заданным алгоритмом, то блок удлиняется каким-либо способом. Как правило, длина блока является степенью двойки, например: 64 бита, 128 бит. Далее будем рассматривать операции происходящие только с одним блоком, так как с другими в процессе шифрования выполняются те же самые операции.
- Выбранный блок делится на два равных подблока — «левый» (
) и «правый» (
). - «Левый подблок»
видоизменяется функцией
в зависимости от раундового ключа
, после чего он складывается по модулю 2 с «правым подблоком»
. - Результат сложения присваивается новому левому подблоку
, который будет половиной входных данных для следующего раунда, а «левый подблок»
присваивается без изменений новому правому подблоку
(см. схему), который будет другой половиной. - После чего операция повторяется N-1 раз, при этом при переходе от одного этапа к другому меняются раундовые ключи (
на
и т. д.) по какому-либо математическому правилу, где N — количество раундов в заданном алгоритме.
