Этот алгоритм описать несложно. Для шифрования блока открытого текста х: For i = 0 to n - 1
х = х XOR Ki х = theta (х) х = pi - 1 (х) х = gamma (x) х = pi - 2 (х) x = x®Kn+1 х = theta (x) При этом используются следующие функции:
— theta(x) - функция линейной подстановки, в основном набор циклических сдвигов и XOR.
— pi - 1 (х) и pi - 2 (х) - простые перестановки.
— gamma (x) - функция нелинейной подстановки. Именно это действие и дало имя всему алгоритму, оно представляет собой параллельное выполнение подстановки 3-битовых данных.
Дешифрирование аналогично шифрованию за исключением того, что нужно изменить на обратный порядок битов исходных данных и результата. Исходный код, реализующий З-Way, можно найти в конце этой книги.
Пока об успешном криптоанализе З-Way неизвестно. Алгоритм незапатентован.