Алфавитом, на котором действует блочный шифр, является множество двоичных векторов-блоков открытого текста одинаковой длины (64, 128 и т.д.). Так как с увеличением мощности алфавита энтропия на один знак также увеличивается, криптографическая стойкость алгоритма возрастает. Блочные шифры реализуются путем многократного применения к блокам открытого текста некоторых базовых преобразований.
Требования к базовым преобразованиям :
· возможность простой реализации (как аппаратной, так и программной);
· способность давать при небольшом числе итераций аналитически сложные преобразования;
· соответствие критериям рассеивания и перемешивания;
· соотвествие критерию лавинного эффекта.
Принцип лавинного эффекта - применение шифрующего преобразования к наборам аргументов, отличающихся в незначительном числе позиций, должно приводить к существенному изменению результата.
Принцип перемешивания (diffusion)- криптографические преобразования должны обеспечивать максимальное усложнение статистической и аналитической взаимосвязи между открытым текстом и шифртектсом.
Принцип рассеивания (confusion) – криптографические преобразования должны обеспечивать максимальное усложнение статистической и аналитической взаимосвязи между шифртекстом и ключом.
Перемешивающие преобразования – сложные в криптографическом отношении локальные преобразования над отдельными частями шифрующих блоков.
Рассеивающие преобразования – простые преобразования, переставляющие между собой части блоков текста.
Применяемые математические преобразования (операции):
· Перестановки –смена местами битовых значений разрядов подблоков на основе фиксированных подстановок.
· Битовые сдвиги – (X >>Y) сдвиг вправо и (X<<Y) сдвиг влево битовых значений разрядов подблока X (соответствует умножению на 2 и целочисленному делению на 2 ) на величину, определяемую значением подблока Y.
· Циклические битовые сдвиги – (X>>>Y) циклический сдвиг вправо и (X<<<Y) циклический сдвиг влево битовых значений разрядов подблока X (ключа, шифртекста) на величину, определяемую значением подблока Y.
· S-подстановки – подстановки значений на основе матриц подстановки, где элементы битового блока используются в качестве параметров (координат элементов) матрицы подстановки. S-подстановки могут быть сужающими, расширяющими и однозначными в зависимости от размерного соотношения (в битах) входных и выходных подблоков данных.
· Побитовая инверсия – (~X) инверсия всех битовых регистров блока X.
· Побитовое сложение по модулю 2 – (XÅY) операция XOR над всеми битовыми регистрами подблоков X и Y.
· Сложение по модулю 2n (n – длина блока в битах) – (X Y) двоичное сложение подблоков с отбрасыванием значений старших регистров переноса.
· Умножение по модулю 2n+ 1 – (XY) двоичное умножение с отбрасыванием значений старших регистров переноса, причем нулевое значение подблока принимается равным 0 = 2n.
· Сложные операции (нелинейние подстановки , логарифмирование и экспоненцирование в конечном поле и пр.).