3-WAY — это симметричный блочный шифр с закрытым ключом, разработанный Йоаном Дайменом (Joan Daeman), одним из авторов алгоритма Rijndael (иногда называемого AES).
Общие сведения
Алгоритм 3-Way является 11-шаговой SP-сетью. Используются блок и ключ длиной 96 бит. Схема шифрования, как и характерно для алгоритмов типа SP-сеть, предполагает эффективную аппаратную реализацию.
Вскоре после опубликования был проведён успешный криптоанализ алгоритма 3-Way, показавший его уязвимость для атаки на основе связанных ключей
Алгоритм не запатентован.
Описание 3-Way
Шифрование
Шифрование блока открытого текста x:
F o r i = 0 t o n − 1 {displaystyle For~i~=~0~to~n-1}
x = x X O R K 1 {displaystyle x~=~xXOR~K_{1}} x = t h e t a ( x ) {displaystyle x~=~theta(x)} x = p i − 1 ( x ) {displaystyle x~=~pi-1(x)} x = g a m m a ( x ) {displaystyle x~=~gamma(x)} x = p i − 2 ( x ) {displaystyle x~=~pi-2(x)}x = x ⊕ K n + 1 {displaystyle x~=~xoplus K^{n+1}}
x = t h e t a ( x ) {displaystyle x~=~theta(x)}
где
T h e t a ( x ) {displaystyle Theta(x)} — функция линейной подстановки, в основном набор циклических сдвигов и XOR. p i − 1 ( x ) {displaystyle pi-1(x)} и p i − 2 ( x ) {displaystyle pi-2(x)} — простые перестановки. G a m m a ( x ) {displaystyle Gamma(x)} — Функция нелинейной подстановки. Именно это действие и дало имя всему алгоритму, оно представляет собой параллельное выполнение 3-битовых данных.Дешифрация
Дешифрование аналогично шифрованию за исключением того, что нужно изменить на обратный порядок битов исходных данных и результата.