Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RAS_GRAF_RAB.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
657.41 Кб
Скачать

Матрицы перестановок для ключей

К1

1

15

9

2

21

8

19

27

2

6

24

18

3

20

14

25

4

11

5

13

23

4

26

17

8

28

12

10

1

22

16

7

К2

23

11

31

3

14

28

29

18

8

17

2

25

5

30

9

32

1

22

12

21

16

6

20

10

15

13

24

4

27

19

7

26

Примечание! Если разрядность блока данных , предназначенного для шифрования не кратна 2 , то до кратности необходимо дополнить блок заполнителем – первый бит 1, остальные – 0.

Алгоритм хэширования h

Варианты реализации алгоритма хэширования:

Вариант 1

Исходный текст группируется блоки данных а1, а2, а3, а4 … аn разрядностью по 8 бит. Длина дайджеста – 8 бита. h0=00000000. Дайджест формируется в течении n итераций цикла. В каждой итерации цикла проводятся действия, котрые можно описать следующим псевдокодом:

for i=1…n

{// прерасчет текущего значениия каждого бита текущего дайджеста hі

(h0)і=(а1)і 3)і 5)і; // значение бита 0 текущего дайджеста

(h1)і=(а0)і 4)і 6)і; // значение бита 1 текущего дайджеста

(h2)і=(а2)і 3)і 7)і; // значение бита 2 текущего дайджеста

(h3)і=(а1)і 5)і 6)і; // значение бита 3 текущего дайджеста

(h4)і=(а4)і 5)і 6)і; // значение бита 4 текущего дайджеста

(h5)і=(а0)і 6)і 7)і; // значение бита 5 текущего дайджеста

(h6)і=(а3)і 4)і 5)і; // значение бита 6 текущего дайджеста

(h7)і=(а0)і 2)і 4)і; // значение бита 7 текущего дайджеста

hі=hі hі-1;

}

Результат h=hn.

Вариант 2

Исходный текст группируется блоки данных а1, а2, а3, а4 … аn разрядностью по 8 бит. Длина дайджеста – 8 бита. h0=00000000. Дайджест формируется в течении n итераций цикла. В каждой итерации цикла проводятся действия, котрые можно описать следующим псевдокодом:

for i=1…n

{// прерасчет текущего значениия каждого бита текущего дайджеста hі

(h0)і=(а0)і 4)і 5)і; // значение бита 0 текущего дайджеста

(h1)і=(а1)і 2)і 5)і; // значение бита 1 текущего дайджеста

(h2)і=(а2)і 6)і 7)і; // значение бита 2 текущего дайджеста

(h3)і=(а0)і 4)і 5)і; // значение бита 3 текущего дайджеста

(h4)і=(а4)і 5)і 6)і; // значение бита 4 текущего дайджеста

(h5)і=(а1)і 3)і 7)і; // значение бита 5 текущего дайджеста

(h6)і=(а2)і 5)і 6)і; // значение бита 6 текущего дайджеста

(h7)і=(а0)і 3)і 7)і; // значение бита 7 текущего дайджеста

hі=hі hі-1;

}

Результат h=hn.

Вариант 3

Исходный текст группируется блоки данных а1, а2, а3, а4 … аn разрядностью по 8 бит. Длина дайджеста – 8 бита. h0=00000000. Дайджест формируется в течении n итераций цикла. В каждой итерации цикла проводятся действия, котрые можно описать следующим псевдокодом:

for i=1…n

{// прерасчет текущего значениия каждого бита текущего дайджеста hі

(h0)і=(а0)і 2)і 4)і; // значение бита 0 текущего дайджеста

(h1)і=(а1)і 5)і 7)і; // значение бита 1 текущего дайджеста

(h2)і=(а3)і 5)і 6)і; // значение бита 2 текущего дайджеста

(h3)і=(а1)і 3)і 7)і; // значение бита 3 текущего дайджеста

(h4)і=(а2)і 4)і 6)і; // значение бита 4 текущего дайджеста

(h5)і=(а0)і 2)і 4)і; // значение бита 5 текущего дайджеста

(h6)і=(а2)і 5)і 6)і; // значение бита 6 текущего дайджеста

(h7)і=(а0)і 4)і 7)і; // значение бита 7 текущего дайджеста

hі=hі hі-1;

}

Результат h=hn.

Примечание! Младший бит (0), находится в крайнем правом разряде двоичного числа!

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]