Алгоритм Anubis, Шифрование данных.

Пользователям

Вебмастерам

Безминималки

Автовыплота

Карта сайта

 

Главная страница

Меню :

Главная страница +

Криптография -

Rijndael

ГОСТ №28147-89

Akelare

Anubis

Mars

RC6

Blowfish

Skipjack

Square

Статьи +

Документальные фильмы +

Экстракт здоровья +

 

      Anubis.

      

      Блочный шифр Anubis разработан бельгийцем Винсентом Риджменом (Vincent Rijmen) и бразильцем Пауло Баррето (Paulo S.L.M. Barreto). Алгоритм шифрует данные блоками по 128 бит с использованием ключа размером от 128 до 320 бит; размер ключа должен быть кратен 32 битам.

 

      Структура алгоритма.

 

      Алгоритм представляет блок шифруемых данных в виде 16-байтового массива, который для удобства описания представлен виде квадрата 4 * 4 байт.

1 байт

2 байта

3 байт

4 байт

5 байт

6 байт

7 байт

8 байт

9 байт

10 байт

11 байт

12 байт

13 байт

14 байт

15 байт

16 байт

      В каждом раунде алгоритма выполняются следующие действия:

      1. Табличная замена Y , выполняемая, согласно следующей таблице S:

 

      Операция Y алгоритма Anubis:

Х00

Х01

Х02

Х03

Х10

Х11

Х12

Х13

Х20

Х21

Х22

Х23

Х30

Х31

Х32

Х33

               S(x)              

Y00

Y01

Y02

Y03

Y10

Y11

Y12

Y13

Y20

Y21

Y22

Y23

Y30

Y31

Y32

Y33

      Таблица S выглядит следующим образом:

 

 

 

3 бита входящего байта

 

 

1

2

3

4

5

6

7

8

 

 

 

 

 

 

5

б

и

т

 

 

 

 

 

 

1

78

48

21

...

23

11

67

89

2

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

5

Таблица S от 0 до 255- значение выходящего байта

6

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

13

 

 

 

 

 

 

 

 

14

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

      Значения таблицы выбраны псевдослучайным образом с учетом необходимости ее соответствия следующему соотношению: S[S[x]] = x.

      2. Операция Г – байтовая перестановка, простейшим образом преобразующая строку обрабатываемого блока ключевой информации в столбец

 

Операция Г алгоритма Anubis:

Х00

Х01

Х02

Х03

Х10

Х11

Х12

Х13

Х20

Х21

Х22

Х23

Х30

Х31

Х32

Х33

               ---->            

Х00

Х10

Х20

Х30

Х01

Х11

Х21

Х31

Х02

Х12

Х22

Х32

Х03

Х13

Х23

Х33

Xi,j = Xj,i ,где Xi,j и Xj,i – байты массива данных до и после выполнения текущей операции, соответственно.

 

      3. Операция Q , представляющая собой умножение массива на фиксированную матрицу H:

 

Операция Q алгоритма Anubis:

Х00

Х01

Х02

Х03

Х10

Х11

Х12

Х13

Х20

Х21

Х22

Х23

Х30

Х31

Х32

Х33

            * H              

Y00

Y01

Y02

Y03

Y10

Y11

Y12

Y13

Y20

Y21

Y22

Y23

Y30

Y31

Y32

Y33

Фиксированная матрица Н.

1

2

4

6

1

1

6

4

1

6

1

2

1

4

2

1

 

Умножение выполняется в конечном поле .

 

      4. Наложение ключа n-го раунда r[n] выполняется побитовой логической операцией «исключающее или» (XOR), применяемой к каждому биту массива данных и соответствующему биту r[n]:

 

Операция U алгоритма Anubis:

Х00

Х01

Х02

Х03

Х10

Х11

Х12

Х13

Х20

Х21

Х22

Х23

Х30

Х31

Х32

Х33

   XOR    

R00

R01

R02

R03

R10

R11

R12

R13

R20

R21

R22

R23

R30

R31

R32

R33

   =      

Y00

Y01

Y02

Y03

Y10

Y11

Y12

Y13

Y20

Y21

Y22

Y23

Y30

Y31

Y32

Y33

 

      Итак, в каждом раунде выполняются 4 вышеперечисленных операции, за исключением последнего раунда алгоритма, в котором не выполняется операция Q . Кроме того, перед первым раундом выполняется входное отбеливание данных, путем наложения на шифруемый блок операцией XOR нулевого подключа.

      Заметим, что все перечисленные операции являются обратными самим себе, соответственно, расшифрование выполняется с помощью тех же операций в том же порядке, что и при зашифровании. Изменяется только порядок использования подключей на обратный.

      Число раундов алгоритма R зависит от размера ключа шифрования и определяется следующим образом: R = 8 + N, где N – размер ключа в 32-битных фрагментах.

 

      Процедура расширения ключа.

      

      Процедура расширения ключа основана, почти, на той же последовательности операций, которые применяются в раундах алгоритма. Расширение ключа выполняется следующим образом: сначала исходный ключ шифрования K представляется в виде байтового массива 4 * 4 (что обозначается как KJо ), после чего в цикле выполняются следующие операции:

      1. Итеративно вычисляются остальные промежуточные ключи KI1...KIR: KJi = F(KJi-1), где F() – совокупность операций 1,2,3,4 (рассмотренных выше Y, Г,Q,U). В операции U в качестве ключа раунда используется соответствующая из констант c[r], которые, в свою очередь, определяются следующим образом:

- для j = 0...3 (см. описание операции U ): c[n]0,i = S[4 * (n – 1) + i] ;

- остальные байты c[n]j,i являются нулевыми.

Далее происходит циклический сдвиг столбцов таблицы вниз по следующему простому правилу:i-й столбец сдвигается на i позиций:

 

Х00

Х01

Х02

Х03

Х10

Х11

Х12

Х13

Х20

Х21

Х22

Х23

Х30

Х31

Х32

Х33

Циклический сдвиг

Х00

Х31

Х22

Х13

Х10

Х01

Х32

Х23

Х20

Х11

Х02

Х33

Х30

Х21

Х12

Х03

 

      На основе предварительных ключей вычисляются подключи K0...KR: KR = G(KJR), где функция g() представляет собой последовательное выполнение следующих операций: Y -> W -> Г. Операции Y и Г были описаны выше, а W представляет собой умножение блока на фиксированную матрицу V (аналогично операции Q ), определенную следующим образом:

 

Фиксированная матрица V.

1

1

1

1

1

2

4

8

1

6

36

216

1

8

64

0

 

      При зашифровании данных процедура расширения ключа позволяет вычислять ключи «на лету», т.е. по мере необходимости. Однако, при расшифровании необходимо полностью выполнить расширение ключа до начала преобразований.

 

О Сущности, Разуме и многом другом... – сайт академика Николая Левашова. Этот сайт содержит Знания. Уникальные Знания, которые, до сих пор, не были доступны всем желающим. Это Знания о загадках Жизни, о строении Вселенной, о Сущности, Разуме и многом другом...    ->

Яндекс.Метрика