почта Моя жизнь помощь регистрация вход
Краснодар:
погода
апреля
27
суббота,
Вход в систему
Логин:
Пароль: забыли?

Использовать мою учётную запись:

  отправить на печать


ГОСТ Р 34.11-94

Группа П85


ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ


Информационная технология

КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ

Функция хэширования

Information technology.
Cryptographic Data Security.
Hashing function

    
    
ОКСТУ 5002

Дата введения 1995-01-01



Предисловие

    
    
    1 РАЗРАБОТАН Главным управлением безопасности связи Федерального агентства правительственной связи и информации и Всероссийским научно-исследовательским институтом стандартизации
    
    ВНЕСЕН Техническим комитетом по стандартизации ТК 22 "Информационная технология" и Федеральным агентством правительственной связи и информации
    
    2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 23.05.94 N 154
    
    3 ВВЕДЕН ВПЕРВЫЕ
    
    

ВВЕДЕНИЕ

    
    
    Расширяющееся применение информационных технологий при создании, обработке, передаче и хранении документов требует в определенных случаях сохранения конфиденциальности их содержания, обеспечения полноты и достоверности.
    
    Одним из эффективных направлений защиты информации является криптография (криптографическая защита), широко применяемая в различных сферах деятельности в государственных и коммерческих структурах.
    
    Криптографические методы защиты информации являются объектом серьезных научных исследований и стандартизации на национальных, региональных и международных уровнях.
    
    Настоящий стандарт определяет процедуру вычисления хэш-функции для любой последовательности двоичных символов.
    
    Функция хэширования заключается в сопоставлении произвольного набора данных в виде последовательности двоичных символов и его образа фиксированной небольшой длины, что позволяет использовать эту функцию в процедурах электронной цифровой подписи для сокращения времени подписывания и проверки подписи. Эффект сокращения времени достигается за счет вычисления подписи только под образом подписываемого набора данных.
    
    

1 ОБЛАСТЬ ПРИМЕНЕНИЯ

    
    
    Настоящий стандарт определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур электронной цифровой подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных системах.
    
    Определенная в настоящем стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе асимметричного криптографического алгоритма по ГОСТ Р 34.10.
    
    

2 НОРМАТИВНЫЕ ССЫЛКИ

    
    
    В настоящем стандарте использованы ссылки на следующие стандарты:
    
    ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритмы криптографического преобразования.
    
    ГОСТ Р 34.10-94 Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.
    
    

3 ОБОЗНАЧЕНИЯ

    
    
    В настоящем стандарте используются следующие обозначения:
    
     - множество всех конечных слов в алфавите . Чтение слов и нумерация знаков алфавита (символов) осуществляются справа налево (номер правого символа в слове равен единице, второго справа - двум и т.д.).
    
     - длина слова .
    
     - множество всех бинарных слов длины .
    
     - конкатенация слов - слово длины , в котором левые |А| символов образуют слово , а правые символов образуют слово . Можно также использовать обозначение .
    
     -  конкатенация экземпляров слова .
    
    - слово длины , содержащее двоичную запись вычета неотрицательного целого числа .
    
     - неотрицательное целое число, имеющее двоичную запись .
    
     - побитовое сложение слов одинаковой длины по модулю 2.
    
     - сложение по правилу , .
    
     - последовательность двоичных символов, подлежащая хэшированию (сообщение в системах ЭЦП), .
    
     - хэш-функция, отображающая последовательность в слово .
    
     - результат зашифрования слова на ключе с использованием алгоритма шифрования по ГОСТ 28147 в режиме простой замены .
    
     - стартовый вектор хэширования.
    
    : = - присвоение параметру значения .
    
    

4 ОБЩИЕ ПОЛОЖЕНИЯ

    
    
    Под хэш-функцией понимается зависящее от параметра [стартового вектора хэширования , являющегося словом из ] отображение
    

-------.

    
    Для определения хэш-функции необходимы:
    
    - алгоритм вычисления шаговой функции хэширования , т.е. отображения
    

------- ;

    - описание итеративной процедуры вычисления значения хэш-функции .
    
    

5 ШАГОВАЯ ФУНКЦИЯ ХЭШИРОВАНИЯ

    
    
    Алгоритм вычисления шаговой функции хэширования включает в себя три части, реализующие последовательно:
    
    - генерацию ключей - слов длины 256 битов;
    
    - шифрующее преобразование - зашифрование 64-битных подслов слова на ключах ( = 1, 2, 3, 4) с использованием алгоритма по ГОСТ 28147 в режиме простой замены;
    
    - перемешивающее преобразование результата шифрования.
    
    5.1 Генерация ключей
    
    Рассмотрим .
    

Пусть

 

 
    
    
    
,

где ;
    
    ;
    
    .
    
    Обозначают .
    
    Используют преобразование --------
слова в слово, ,
    
где
    
    Для генерации ключей необходимо использовать следующие исходные данные:
    
    - слова ;
    
    - параметры: слова (=2, 3, 4), имеющие значения
    
     и .
    
    При вычислении ключей реализуется следующий алгоритм:
    
    1 Присвоить значения
    
    .
    
    2 Выполнить вычисление
    
    

     
    3 Присвоить .
    
    4 Проверить условие .
    
    При положительном исходе перейти к шагу 7. При отрицательном - перейти к шагу 5.
    
    5 Выполнить вычисление
    
    , , , .
    
    6 Перейти к шагу 3.
    
    7 Конец работы алгоритма.
    
    5.2 Шифрующее преобразование
    
    На данном этапе осуществляется зашифрование 64-битных подслов слова на ключах (1, 2, 3, 4).
    
    Для шифрующего преобразования необходимо использовать следующие исходные данные:
    
    ,
    
    и набор ключей , , , .
    
    Реализуют алгоритм зашифрования и получают слова
    
    , где =1, 2, 3, 4.
    
    В результате данного этапа образуется последовательность
    
    .
    
    5.3 Перемешиваюшее преобразование
    
    На данном этапе осуществляется перемешивание полученной последовательности с применением регистра сдвига.
    
    Исходными данными являются:
    
    слова и слово .
    
    Пусть отображение
    
    --------
    
     преобразует слово
    
    , ,
    
    в слово
    
    .
    
    Тогда в качестве значения шаговой функции хэширования принимается слово
    
     ,
    
где - -я степень преобразования .
    

6 ПРОЦЕДУРА ВЫЧИСЛЕНИЯ ХЭШ-ФУНКЦИИ

    
    
    Исходными данными для процедуры вычисления значения функции является подлежащая хэшированию последовательность . Параметром является стартовый вектор хэширования - произвольное фиксированное слово из .
    
    Процедура вычисления функции на каждой итерации использует следующие величины:
    
- часть последовательности , не прошедшая процедуры хэширования на предыдущих итерациях;
    
- текущее значение хэш-функции;
    
- текущее значение контрольной суммы;
    
- текущее значение длины обработанной на предыдущих итерациях части последовательности .
    
    Алгоритм вычисления функции включает в себя этапы:
    
    Этап 1
    
    Присвоить начальные значения текущих величин
    
    1.1
    
    1.2
    
    1.3
    
    1.4
    
    1.5 Переход к этапу 2
    
    Этап 2
    
    2.1 Проверить условие .
    
    При положительном исходе перейти к этапу 3.
    
    В противном случае выполнить последовательность вычислений:
    
    2.2
    
    2.3
    
    2.4
    
    2.5
    
    2.6
    
    2.7
    
    2.8 Конец работы алгоритма
    
    Этап 3
    
    3.1 Вычислить подслово слова . Далее выполнить последовательность вычислений:
    
    3.2
    
    3.3
    
    3.4
    
    3.5
    
    3.6 Перейти к этапу 2.
    
    Значение величины , полученное на шаге 2.7, является значением функции хэширования .
    
    Проверочные примеры для вышеизложенной процедуры вычисления хэш-функции приведены в приложении А.
    
    

ПРИЛОЖЕНИЕ А

(справочное)

    
ПРОВЕРОЧНЫЕ ПРИМЕРЫ

    
    
    Заполнение узлов замены , ,..., и значение стартового вектора хэширования , указанные в данном приложении, рекомендуется использовать только в проверочных примерах для настоящего стандарта.
    
    А.1 Использование алгоритма ГОСТ 28147
    
    В качестве шифрующего преобразования в приводимых ниже примерах используется алгоритм ГОСТ 28147 в режиме простой замены.
    
    При этом заполнение узлов замены , ,..., блока подстановки следующее:
    


8

7

6

5

4

3

2

1


0


1


D


4


6


7


5


E


4

1

F

B

B

C

D

8

B

A

2

D

4

A

7

A

1

4

9

3

0

1

0

1

1

D

C

2

4

5

3

7

5

0

A

6

D

5

7

F

2

F

8

3

D

8

6

A

5

1

D

9

4

F

0

7

4

9

D

8

F

2

A

E

8

9

0

3

4

E

E

2

6

9

2

A

6

A

4

F

3

B

10

3

E

8

9

6

С

8

1

11

E

7

5

E

C

7

1

C

12

6

6

9

0

B

6

0

7

13

B

8

C

3

2

0

7

F

14

8

2

F

B

5

9

5

5

15

C

C

E

2

3

B

9

3

    
    В столбце с номером , , в строке с номером , , приведено значение в шестнадцатеричной системе счисления.
    
    А.2 Представление векторов
    
    Последовательности двоичных символов будем записывать как строки шестнадцатеричных цифр, в которых каждая цифра соответствует четырем знакам ее двоичного представления.
    
    А.3 Примеры вычисления значения хэш-функции
    
    В качестве стартового вектора хэширования принимают, например, нулевой вектор
    

         

=

00000000

00000000

00000000

00000000

 

 

00000000

00000000

00000000

00000000

    
    А.3.1 Пусть необходимо выполнить хэширование сообщения
    


=

73657479

62203233

3D687467

6Е656С20

 

 

2С656761

7373656D

20736920

73696854

    
    Выполняют присвоение начальных значений:
    
    текста
    


=

73657479

62203233

3D687467

6Е656С20

 

 

2С656761

7373656D

20736920

73696854

    
    хэш-функции
    

               

=

00000000

00000000

00000000

00000000

 

 

00000000

00000000

00000000

00000000

    
    суммы блоков текста
    

         

=

00000000

00000000

00000000

00000000

 

 

00000000

00000000

00000000

00000000

    
    длина текста
    

         

=

00000000

00000000

00000000

00000000

 

 

00000000

00000000

00000000

00000100

    
    Так как длина сообщения, подлежащего хэшированию, равна 256 битам (32 байтам),
    

        

=

00000000

00000000

00000000

00000000

 

 

00000000

00000000

00000000

00000100

    

        

=

73657479

62203233

3D687467

6Е656С20

 

 

2С656761

7373656D

20736920

73696854, то

    
    нет необходимости дописывать текущий блок нулями,
    


=

73657479

62203233

3D687467

6Е656С20

 

 

2С656761

7373656D

20736920

73696854

    
    Переходят к вычислению значения шаговой функции хэширования .
    
    Вырабатывают ключи
    


=

733D2C20

65686573

74746769

79676120

 

 

626Е7373
    
    

20657369

326С6568

33206D54

         

=

110C733D

0D166568

130E7474

06417967

 

 

1D00626E
    
    

    161A2065

090D326C

4D393320

         

=

80B111F3

730DF216

850013F1

C7E1F941

 

 

620C1DFF
    
     

3ABAE91A

3FA109F2

F513B239

         

=

A0E2804E

FF1B73F2

ECE27A00

E7B8C7E1

 

 

EE1D620C
     

AC0CC5BA

A804C05E

A18B0AEC

    
    Осуществляют зашифрование 64-битных подслов блока с помощью алгоритма по ГОСТ 28147.
    
    Блок = 00000000 00000000 зашифровывают на ключе и получают = 42АВВССЕ 32ВС0В1В.
    
    Блок = 00000000 00000000 зашифровывают на ключе и получают = 5203ЕВС8 5D9BCFFD.
    
    Блок = 00000000 00000000 зашифровывают на ключе и получают = 8D345899 00FF0E28.
    
    Блок = 00000000 00000000 зашифровывают на ключе и получают = Е7860419 0D2A562D.
    
    Получают
    

         

=

E7860419

0D2A562D

8D345899

00FF0E28

 

 

5203ЕВС8

5D9BCFFD

42АВВССЕ

32ВС0В1В

    
    Выполняют перемешивающее преобразование с применением регистра сдвига и получают
    

         

=

CF9A8C65

505967А4

68А03В8С

42DE7624

 

 

D99С4124

883DA687

561C7DE3

3315С034

    
    Полагают , вычисляют :
    


=

CF68D956

9АА09С1С

8C3B417D

658C24E3

 

 

50428833
    

59DE3D15

6776А6С1

A4248734

       

=

8FCF68D9

809AА09С

3С8С3В41

C7658C24

 

 

ВВ504288
    

2859DE3D

666676А6

B3A42487

       

=

4E70CF97

3С8065А0

853С8СС4

57389А8С

 

 

CABB50BD
    

E3D7A6DE

D1996788

5CB35B24

       

=

584E70CF

С53С8065

48853С8С

1657389A



 

EDCABB50
    

78E3D7A6

EED19867

7F5CB35B


=

66B70F5E

F163F461

468А9528

61D60593



 

Е5ЕС8А37
    

3FD42279

3CD1602D

DD783Е86


=

2В6ЕС233

С7ВС89Е4

2АВС2692

5FEA7285

 

 


DD3848D1

С6АС997А

24F74E2B

09A3AEF7

    
    Вновь полагают и вычисляют :
    


=

5817F104

0BD45D84

B6522F27

4AF5B00B

 

 

А531В57А
    

9C8FDFCA

BB1EFCC6

D7A517A3

       

=

Е82759Е0

C278D950

15СС523С

FC72EBB6

 

 

D2C73DA8

    

19А6САС9

3E8440F5

C0DDB65A

       

=

77483AD9

F7C29CAA

EB06D1D7

841BCAD3

 

 

FBC3DAA0
    

7CB555F0

D4968080

0A9E56BC

       

=

А 1157965

2D9FBC9C

088С7СС2

46FB3DD2



 

7684ADCB
    

FA4ACA06

53EFF7D7

C0748708


=

2AEBFA76

A85FB57D

6F164DE9

2951A581



 

С31Е7435

4930FD05

1F8A4942
    

550A582D


=

FAFF37A6

15A81669

2CFF3EF8

B68CA247



 

E09525F3

9F811983

2ЕВ81975

D366C4B1

    Таким образом, результат хеширования есть
    


=

FAFF37A6

15A81669

1CFF3EF8

B68CA247

 

 

E09525F3

9F811983

2ЕВ81975

D366C4B1

    
    А.3.2. Пусть необходимо выполнить хэширование сообщения
    

= 7365

74796220

3035203D

20687467

6Е656С20

73616820

65676173

 

73656D20

6С616Е69

6769726F

20656874

2065736F

70707553

    
    Так как длина сообщения, подлежащего хэшированию, равна 400 битам (50 байтам), то разбивают сообщение на два блока и второй (старший) блок дописывают нулями. В процессе вычислений получают:
    
    
    ШАГ 1
    
    


=

00000000

00000000

00000000

00000000

 

 

00000000

00000000

00000000

00000000

    
    


=

73616820

65676173

73656D20

6С616Е69

 

 

6769726F
    

20656874

2065736F

70707553


=

73736720

61656965

686D7273

20206F6F

 

 

656С2070
    

67616570

616E6875

73697453

       

=

14477373

0С0С6165

1F01686D

4F002020

 

 

4С50656С
    

04156761

061D616E

1D277369

       

=

CBFF14B8

6D04F30C

96051FFE

DFFFB000

 

 

35094CAF
    

72F9FB15

7CF006E2

AB1AE227

       

=

ЕВАССВ00

F7006DFB

Е5Е16905

B0B0DFFF





ВА1С3509
    
     

FD118DF9

F61B830F

F8C554E5


=

FF41797C

EEAADAC2

43C9B1DF

2E14681C



 

EDDC2210
    
     

1EE1ADF9

FA67E757

DAFE3AD9


=

F0CEEA4E

368B5A60

C63D96C1

E5B51CD2



 

A93BEFBD

2634F0AD

CBBB69CE

ED2D5D9A

         
    ШАГ 2
    
    


=

F0CEEA4E

368B5A60

C63D96C1

Е5В51СD2

 

 

A93BEFBD

2634F0AD

CBBB69CE

ED2D5D9A

       

=

00000000

00000000

00000000

00007365

 

 

74796220

3035203D

20687467

6E656C20


=

F0C6DDEB

CE3D42D3

EA968D1D

4EC19DA9

 

 

36Е51683
    

8ВВ50148

5A6FD031

60В790ВА

       

=

16А4С6А9

F9DF3D3B

E4FC96EF

5309C1BD

 

 

FB68E526
    

2CDBB534

FE161C83

6F7DD2C8

       

=

C49D846D

1780482С

9086887F

C48C9186

 

 

9DCB0644
    

D1E641E5

A02109AF

9D52C7CF

       

=

BDB0C9F0

756Е9131

E1F290EA

50E4CBB1





1CAD9536
    
     

F4E4B674

99F31E29

70C52AFA


=

62А07ЕА5

EF3C3309

2СЕ1В076

173D48CC



 

6881ЕВ66
    
    

F5C7959F

63FCA1F1

D33C31B8


=

95ВЕА0ВЕ

88D5AA02

FE3C9D45

436CE821



 

В8287СВ6

2СВС135В

3E339EFE

F6576CA9


    ШАГ 3
    
    


=

95BEA0BE

88D5AA02

FE3C9D45

436CE821

 

 

В8287СВ6

2СВС135В

3E339EFE

F6576СА9


=

00000000

00000000

00000000

00000000

 

 

00000000

00000000

00000000

00000190


=

95FEB83E

ВЕ3С2833

A09D7C9E

BE45B6FE

 

 

88432CF6
    

D56CBC57

AAE8136D

02215В39

       

=

8695FEB8

1ВВЕ3С28

E2A09D7C

48ВE45В6

 

 

DA88432C
    

EBD56CBC

7FABE813

F292215B

       

=

В9799501

141В413С

1ЕЕ2А062

0СВ74145

 

 

6FDA88BC
    

D0142A6C

FА80АА16

15F2FDB1

       

=

94В97995

7D141B41

С21ЕЕ2А0

040СВ741





346FDA88
    
    

46D0142A

BDFA81AA

DC1562FD


=

D42336E0

2А0А6998

6С65478А

3D08A1B9



 

9FDDFF20
    
     

4808Е863

94FD9D6D

F776A7AD


=

47E26AFD

3Е7278А1

7D473785

06140773



 

A3D97E7E

А744СВ43

08АА4С24

3352С745

         
    ШАГ 4
    
    


=

47E26AFD

3Е7278А1

7D473785

06140773

 

 

A3D97E7E
   

А744СВ43

08АА4С24

3352С745

         

=

73616820

65676173

73656D20

6061E1CE

 

 

DBE2D48F
    

509A88B1

40CDE7D6

DED5E173


=

340E7848

83223B67

025AAAAB

DDA5F1F2

 

 

5B6AF7ED
    

1575DE87

19E64326

D2BDF236


=

03DC0ED0

F4CD26BC

8B595F13

F5A4A55E

 

 

А8В063СВ
    

ED3D7325

6511662А

7963008D


=

C954EF19

D0779A68

ED37D3FB

7DA5ADDC

 

 

4A9D0277
    

78ЕF765В

С4731191

7ЕВВ21В1


=

6D12BC47

D9363D19

1Е3С696F

28F2DC02





F2137F37
    
    

64Е4С18В

69CCFBF8

EF72B7E3


=

790DD7A1

066544ЕА

2829563С

3C39D781



 

25EF9645
    
    

EE2C05DD

A5ECAD92

2511A4D1


=

0852F562

3B89DD57

AEB4781F

E54DF14E



 

EAFBC135

0613763А

0D770AA6

57ВА1А47

    
    Таким образом, результат хэширования есть
    


=

0852F562

3B89DD57

AEB4781F

E54DF14E

 

 

EAFBC135

0613763А

0D770AA6

57ВА1А47

    
    
    
Текст документа сверен по:
официальное издание
М.: Издательство стандартов, 1994

  отправить на печать

Личный кабинет:

доступно после авторизации

Календарь налогоплательщика:

ПнВтСрЧтПтСбВс
01 02 03 04 05 06 07
08 09 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Заказать прокат автомобилей в Краснодаре со скидкой 15% можно через сайт нашего партнера – компанию Автодар. http://www.avtodar.ru/

RuFox.ru - голосования онлайн
добавить голосование