Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gruppa_903a_proekt.doc
Скачиваний:
50
Добавлен:
10.02.2015
Размер:
23.8 Mб
Скачать

Алгоритм зашифрования

Вход: P=(P0,P1,P2,P3) – 128‑блок открытых данных, разбитых на четыре 4‑байтовых слова P0,P1,P2 и P3.

  1. (Входное забеливание.)

(C0,C1,C2,C3):=(P0ÅK0,P1ÅK1,P2ÅK2,P3ÅK3);

  1. (16‑раундов, или 8 циклов зашифрования).

for i:=0 to 7 do {

(F0,F1):=F[K4i+8,K4i+9,S0,S1](C0,C1);

(C2,C3):=(rol1(C2ÅF0),rol1(C3)ÅF1);

(F0,F1):=F[K4i+10,K4i+11,S0,S1](C2,C3);

(C0,C1):=(rol1(C0ÅF0),rol1(C1)ÅF1)};

C0«C2;C1«C3;

  1. (Выходное забеливание.)

(C0,C1,C2,C3):=(C0ÅK4,C1ÅK5,C2ÅK6,C3ÅK7).

Выход: C=(C0,C1,C2,C3) – 128‑битовый блок шифртекста.

Алгоритм расшифрования

Вход: C=(C0,C1,C2,C3) – 128‑битовый блок шифртекста, разбитый на четыре 4‑байтовых слова.

P:=(C0ÅK4,C1ÅK5,C2ÅK6,C6ÅK7);

for i:=7 downto 0 do {

(F0,F1):=F[K4i+10,K4i+11,S0,S1](P0,P1);

(P2,P3):=(rol1(P2ÅF0),rol1(P3)ÅF1);

(F0,F1):=F[K4i+8,K4i+9,S0,S1](P2,P3);

(P0,P1):=(rol1(P0)ÅF0,rol1(P1ÅF1))};

P0«P2; P1«P3;

(P0,P1,P2,P3):=(P0ÅK0,P1ÅK1,P2ÅK2,P3ÅK3).

Выход: Рис.1. Структура алгоритма Twofish

P=(P0,P1,P2,P3) – 128‑битовый блок открытых данных.

Рис.1. Структура алгоритма Twofish

кузнецова

Гост 28147-89

Стандарт криптографической защиты данных (СКЗД), принятый в СССР в 1989 году, предусматривает шифрование -битовых блоков открытых данных под управлением ‑битового секретного ключа, представленного в виде массива из восьми ‑битовых подключей , ,…, ). ГОСТ 28147-89 определяет три режима шифрования данных (простая замена, гаммирование и гаммирование с обратной связью) и режим выработки имитовставки.

1. Режим простой замены (режим электронной кодовой книги). Процедура шифрования соответствует итеративной схеме Фейстеля (см. рис. 1), в которой раундовая функция , задается операциями побитового сложения по модулю (⊕), арифметического сложения по модулю (⊞) и циклического сдвига влево на битов , выполняемыми над ‑битовыми подблоками (словами), а также табличными подстановками. Число раундов шифрования равно .

Табличные подстановки над ‑битовым блоком выполняются следующим образом. Блок разбивается на восемь полубайтов (‑битовых подблоков): . Для каждого полубайта vi выполняется операция подстановки (замены), задаваемая таблицей , , ,..., . Каждая из таблиц (их называют -блоками) представляет собой перестановку чисел (полубайтов) , ,..., . В результате операции подстановки блок заменяется на блок

),

где − результат замены на соответствующее значение с использованием таблицы , , ,…, . Например, если ), то , ,…, .

ГОСТ 28147-89 не определяет способ задания S-блоков. Их можно считать секретными элементами, что является дополнительным секретным ключом. Набор S-блоков, приведенный в табл.1, рекомендован уже позднее ГОСТом Р 34.11-9 (см. Приложение 1).

Таблица 1. ‑блоки ГОСТ 28147-89

vi

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

4

10

9

2

13

8

0

14

6

11

1

12

7

15

5

3

14

11

4

12

6

13

15

10

2

3

8

1

0

7

5

9

5

8

1

13

10

3

4

2

14

15

12

7

6

0

9

11

7

13

10

1

0

8

9

15

14

4

6

12

11

2

5

3

6

12

7

1

5

15

13

8

4

10

9

14

0

3

11

2

4

11

10

0

7

2

1

13

3

6

8

5

9

12

15

14

13

11

4

1

3

15

5

9

0

10

14

7

6

8

2

12

1

15

13

0

5

7

10

4

9

2

3

14

6

11

8

12

Функция , , аргументами и значением которой являются ‑битовые блоки, определяется как

V:=R⊞q; V:=S(V); F:=rol11(V).

Алгоритм зашифрования

Вход: ‑битовый блок открытых данных, разбитый на левую и правую половины и .

for i:=0 to 30 do {

if i≤23 then j:=i mod 8 else j:=31-i;

V:=R; R:=L⊕F(R,kj); L:=V};

L:=L⊕F(R,k0).

Выход: , -битовый блок шифртекста.

Расшифрование выполняется точно так же, как и зашифрование. Единственное отличие состоит в том, что ключи используются в обратном порядке:

if i≤7 then j:=i else j:=7-(i mod 8).

{V:=R; R:=L⊕rol11(S(R+kj)); L:=V}.

Рис. 1. Один цикл преобразования ГОСТ 28147-89

а) б) в)

Рис. 2. а) Зашифрование в режиме гаммирования. Расшифрование осуществляется по той же схеме. ДПСЧ датчик псевдослучайных чисел, используемых для выработки гаммы. б) Зашифрование и в) расшифрование в режиме гаммирования с обратной связью.

2. Режим гаммирования. Открытый текст , разбитый на -битовые блоки , ,..., , преобразуется в шифртекст по правилу:

Ci:=Pi⊕Eki), i=1,2,...,m.

Другими словами, на текст накладывается гамма . Здесь – криптографическое преобразование ГОСТ 28147-89 в режиме простой замены под управлением ‑битового секретного ключа (см. п. 1). Последовательность ‑битовых псевдослучайных блоков , представленных в виде двух ‑битовых подблоков и , т.е. , , определяется итеративно:

Yi:= Yi-1⊞const0;

Zi:=(( Zi-1+const1-1) mod (232-1))+1,

где , ‑битовые константы. Значение , исходя из которого вычисляются последующие , получаются зашифрованием ‑битового блока , т.е. . Блок , называемый синхропосылкой, передается в открытом виде вместе с зашифрованным сообщением . Синхропосылка меняется от сообщения к сообщению. Расшифрование осуществляется по той же схеме, что и зашифрование:

Pi:=Ci⊕Eki), i=1,2,...,m.

Процесс шифрования в режиме гаммирования показан на рис. 2а.

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

причем значение имеет блок .

3. Режим гаммирования с обратной связью. Открытый текст , разбитый на -битовые блоки , ,..., , преобразуется в шифртекст , ,..., по правилу:

С1:=P1⊕Ek(S); Сi:=Pi⊕Ek(Ci-1), i=2,3,..,m,

где ‑битовая синхропосылка (с использованием которой получается первый блок шифртекста), а – криптографическое преобразование ГОСТ 28147-89 в режиме простой замены под управлением ‑битового секретного ключа . Расшифрование осуществляется по той же схеме, что и зашифрование. Процесс зашифрования и расшифрования показан на рис. 2б и 2в.

4. Режим выработки имитовставки. В ГОСТ 28147-89 подлинность зашифрованных сообщений во всех режимах шифрования может дополнительно подтверждаться с использованием протокола сверки имитовставки.

Имитовставка – это блок из битов, который вычисляется либо перед зашифрованием, либо параллельно с зашифрованием отдельных блоков. Параметр выбирается в соответствии с установленным уровнем имитозащищенности (с учетом того, что вероятность навязывания ложного сообщения равна ).

Пусть обозначает процедуру зашифрования ГОСТ 28147-8 с раундами (вместо стандартных 32 раундов) в режиме простой замены под управлением того же ключа, что и для шифрования данных. Тогда вычисление имитовставки для исходного открытого текста P, разбитого на 64‑битовые блоки , ,..., (если − неполный блок, то он дополняется нулями), осуществляется по схеме:

B:=(P1);

for i:=2 to m do B:=(B⊕Pi).

Из ‑битового блока выбирается битов (из заранее оговоренных позиций), которые и образуют имитовставку .

Имитовставка присоединяется к шифртексту. Получатель сообщения расшифровывает шифртекст и аналогичным способом вычисляет имитовставку. Если вычисленная получателем имитовставка не совпадает с полученной, то сообщение считается ложным.

палачева

Anubis

Криптоалгоритм 3 шифрует ‑битовые блоки открытых данных под управлением секретного ключа такого же размера.

Каждый ‑байтовый блок , участвующий в криптографическом преобразовании, представляется в виде ‑матрицы

Множество таких матриц обозначим через . В алгоритме используются следующие функции, аргументами, параметрами и значениями которых являются матрицы из :

− матрица, полученная из транспонированием;

− матрица, полученная из заменой ее элемента на , где − подстановка на множестве байтов, заданная табл. 1;

, ,

где

,

− матрицы, элементы которых (байты) интерпретируются как элементы конечного поля , (при вычислении произведений и матрица также рассматривается над полем );

(другими словами, функция возвращает матрицу, получающуюся из циклическим сдвигом ее столбцов вниз соответственно на , , и позиций);

− добавление к матрице ключа − побитовое сложение по модулю элементов матриц и ;

Раундовая функция : определяется как

,

где .

Отметим следующие свойства введенных функций:

, , , ,

т.е. , , и инволютивны,

, ,

.

Шифрующая функция в определена (при раундовых ключах , , …, ) как

, , …, .

Обратная функция имеет вид:

, , …,

.

С учетом отмеченных свойств функций t, g, q и s нетрудно показать, что

, ,…, , ,…, , .

Другими словами, алгоритм Anubis симметричен, т.е. может быть использован как для зашифрования, так и для расшифрования. Но при этом раундовые подключи расшифрования , , …, и раундовые подключи расшифрования , , …, должны быть связаны соотношениями:

; , ; .

Раундовые подключи генерируются, исходя из секретного ключа , по следующей схеме:

Используемые при этом константы определяются как

Стандартное число раундов (число использований раундовой функции при шифровании) .

Таблица 1. Подстановка в s (в ‑ичном представлении)

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

0

a7

d3

e6

71

d0

ac

4d

79

3a

c9

91

fc

1e

47

54

bd

1

8c

a5

7a

fb

63

b8

dd

d4

e5

b3

c5

be

a9

88

0c

a2

2

39

df

29

da

2b

a8

cb

4c

4b

22

aa

24

41

70

a6

f9

3

5a

e2

b0

36

7d

e4

33

ff

60

20

08

8b

5e

ab

7f

78

4

7c

2c

57

d2

dc

6d

7e

0d

53

94

c3

28

27

06

5f

ad

5

67

5c

55

48

0e

52

ea

42

5b

5d

30

58

51

59

3c

4e

6

38

8a

72

14

e7

c6

de

50

8e

92

d1

77

93

45

9a

ce

7

2d

03

62

b6

b9

bf

96

6b

3f

07

12

ae

40

34

46

3e

8

db

cf

ec

cc

c1

a1

c0

d6

1d

f4

61

3b

10

d8

68

a0

9

b1

0a

69

6c

49

fa

76

c4

9e

9b

6e

99

c2

b7

98

bc

a

8f

85

1f

b4

f8

11

2e

00

25

1c

2a

3d

05

4f

7b

b2

b

32

90

af

19

a3

f7

73

9d

15

74

ee

ca

9f

0f

1b

75

c

86

84

9c

4a

97

1a

65

f6

ed

09

bb

26

83

eb

6f

81

d

04

6a

43

01

17

e1

87

f5

8d

e3

23

80

44

16

66

21

e

fe

d5

31

d9

35

18

02

64

f2

f1

56

cd

82

c8

ba

f0

f

ef

e9

e8

fd

89

d7

c7

b5

a4

2f

95

13

0b

f3

e0

37

Пояснение к таблице. Для байта значение находятся на пересечении строки и столбца . Например, .

пахомов

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