Псевдопреобразование Адамара

Материал из testwiki
Перейти к навигации Перейти к поиску

Псевдопреобразова́ние Адама́ра (Шаблон:Lang-en) — обратимое преобразование битовых строк, используемое в криптографии для обеспечения диффузии при шифровании. Количество бит на входе преобразования должно быть чётным, чтобы было возможным разделение строки на две части равной длины. Создателем преобразования является французский математик Жак Адамар.

Действие преобразования

Пусть на вход преобразования подаётся строка бит a длины 2n. Представим её в виде двух строк длины n: a=(a1,a2). Тогда в результате действия псевдопреобразования Адамара получим строку b=(b1,b2), значения подстрок которой вычисляются по следующим формулам:

b1=(2a1+a2) mod 2n
b2=(a1+a2) mod 2n

Соответственно, из этих формул легко получается обратное псевдопреобразование Адамара:

a1=(b1b2) mod 2n
a2=(b1+2b2) mod 2n

Матричное представление

Псевдопреобразование Адамара может быть представлено в матричной форме. Если записать a и b в векторной форме a=[a1a2], b=[b1b2], то преобразование будет равносильно умножению на матрицу H1=[2111]:

[b1b2]=[2111]*[a1a2]

Конечно, не стоит забывать, что все операции при умножении на матрицу производятся по модулю 2n.

Обратное преобразование равносильно умножению на матрицу, обратную к H1: H11=[1112].

Можно также представить матрицу преобразования в виде матрицы большей размерности, являющейся степенью двойки. Так, например, если мы работаем с 8-битовой строкой, мы можем представить её в виде 4-х подстрок длиной по 2 бита: a(a1,a2,a3,a4), и аналогично поступить с выходной строкой b. Матрица для такого преобразования получается из рекурсивного правила:

Hk=[2×Hk1Hk1Hk1Hk1]

В нашем примере k=2, и матрица преобразования имеет вид:

H2=[4221221121211111]

Применение

Псевдопреобразование Адамара применяется в некоторых алгоритмах шифрования для обеспечения лучшей криптографической диффузии. Примерами таких алгоритмов являются Twofish и SAFER. При этом 2-х точечное преобразование (на входе строка длиной 2 байта) применяется во всех разновидностях SAFER, кроме последней версии SAFER++ (2000 год), в которой применяется 4-х точечное преобразование (на входе строка длиной 4 байта).

В приведенных выше алгоритмах шифрования большинство операций, в том числе и псевдопреобразование Адамара, производится над байтами. Соответственно, в формулах, описывающих преобразование, n принимается равным 8

Ссылки