Государственный стандарт российской федерации
Вид материала | Документы |
СодержаниеГосударственный стандарт российской федерации 1 Область применения 2 Нормативные ссылки Приложение а |
- Постановлением Правительства Российской Федерации (наименование Постановления), 563.5kb.
- Постановлением Правительства Российской Федерации (наименование Постановления), 563.64kb.
- Государственный образовательный стандарт министерство образования российской федерации, 423.32kb.
- Государственный стандарт российской федерации, 547kb.
- Государственный стандарт российской федерации, 649.81kb.
- Образования Российской Федерации Государственный образовательный стандарт, 1059.05kb.
- Образования Российской Федерации Государственный образовательный стандарт, 812.53kb.
- национальный стандарт российской федерации, 789.01kb.
- Национальный стандарт российской федерации, 1494.68kb.
- Государственный стандарт российской федерации, 212.65kb.
ВВЕДЕНИЕ
Расширяющееся применение информационных технологий при создании, обработке, передаче и хранении документов требует в определенных случаях сохранения конфиденциальности их содержания, обеспечения полноты и достоверности.
Одним из эффективных направлений защиты информации является криптография (криптографическая защита), широко применяемая в различных сферах деятельности в государственных и. коммерческих структурах.
Криптографические методы защиты информации являются объектом серьезных научных исследований и стандартизации на национальных, региональных и международных уровнях.
Настоящий стандарт определяет процедуру вычисления хэш-функции для любой последовательности двоичных символов.
Функция хэширования заключается в сопоставлении произвольного набора данных в виде последовательности двоичных символов и его образа фиксированной небольшой длины, что 'позволяет использовать эту функцию в процедурах электронной цифровой подписи для сокращения времени подписывания и проверки подписи. Эффект сокращения времени достигается за счет вычисления подписи только под образом подписываемого набора данных.
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ Функция хэширования
Information technology. Cryptographic Data Security. Hashing function
Дата введения 1995-01-01
1 ОБЛАСТЬ ПРИМЕНЕНИЯ
Настоящий стандарт определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур электронной цифровой подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных, системах.
Определенная в настоящем стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе асимметричного криптографического алгоритма по ГОСТ Р 34.10.
2 НОРМАТИВНЫЕ ССЫЛКИ
В настоящем стандарте использованы ссылки на следующие стандарты:
ГОСТ 28147—89 Системы обработки информации. Защита криптографическая. Алгоритмы криптографического преобразования.
ГОСТ Р 34.10—94 Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.
3 ОБОЗНАЧЕНИЯ
В настоящем стандарте используются следующие обозначения:
В*—множество всех конечных слов в алфавите В={0,1}. Чтение слов и нумерация знаков алфавита (символов) осуществляются справа налево (номер правого символа в слове равен единице, 'второго справа — двум и т. д.).
эрого справа — двум и т. , ]А|—длина слова А 6 В*.
V'k(2) — множество всех бинарных слов длины k. Aji В — конкатенация слов А, В6В*—слово длины |А[+|В|, в котором левые |А| символов образуют слово А, а правые |В| символов образуют слово В. Можно также использовать обозначение А||В=АВ.
A k—конкатенация k экземпляров слова А (А(: В*). N>i;—слово длины k, содержащее двоичную запись вычета N(mod-2") неотрицательного целого числа N.
А — неотрицательное целое число, имеющее двоичную запись А (А (-Б*).
ф — побитовое сложение слов одинаковой длины по модулю 2.
€> '—сложение по правилу А ®'В = k, (k=|A[=|B|).
М — последовательность- двоичных символов, подлежащая хэшированию 'сообщение в системах ЭЦП), М 6 В*.
h.—хэш-функция, отображающая последовательность Мб В* в слово h(M)?V25e(2).
Ек(А) —результат зашифрования слова А на ключе К с использованием алгоритма шифрования по ГОСТ 28147 в режиме простой замены (К СУ25б(2), А(-Ve4(2)).
Н — стартовый вектор хэширования.
e:=g — присвоение параметру е значения g.
4 ОБЩИЕ ПОЛОЖЕНИЯ
Под хэш-функцней h понимается зависящее от параметра (стартового вектора хэширования Н, являющегося слово'м из У25б(2)] отображение
i': B----V(2).
Для определения эш-функции необходимы:
— алгоритм (исчисления 'шаговой функции хэширования х, т. е. отображения;..'"''
1- '';' »: V(2) xV(2)-"--\W2); •
— описание итеративной процедуры вычисления значения хэш-функции. h.
S ШАГОВАЯ ФУНКЦИЯ ХЭШИРОВАНИЯ
Алгоритм вычисления шаговой фикции хэширования включает
в себя три части, реализующие последовательно:
— генерацию ключей—слов длины 256 битов;
— шифрующее преобразование—зашифрование 64-битных яодслов слова Н на ключах Ki (i=l, 2, 3, 4) с использованием -алгоритма по ГОСТ 28147 в режиме простой замены;
— перемешивающее преобразование результата шифрования.
5.1 Генерация ключей, РассмотримХ=(Ьгвб, bass, .... bi)eV25e(2). Пусть Х==Х4||Хз||х2||х,=
(вИ-и...!!'') . -IMl.-.lISi, " • • __
x,=(bix64 ,..., b(i-ux64+i)eV(>t(2), i= 1,4;
'(b/xie,..., b(j-i)xi6+i)<'Vie(2), 1=1,16;
где
Sk=(bkx8,..., b(k-i)x8±i)eVg(2), k==f,32.. . . Обозначают A(X)=(Xl®X2)l,|x4|]xз||x2.
-.Используют преобразование Р: У25с(2)-——-»-У25б(2)
•слова 11. •• IKi в слово (32)'l. ..11 »i),
тде (p(i+l+4(k-l))=8i+k, 1=0-3, k=l—8.
Для генерации ключей необходимо использовать следующие
исходные данные:
— слова Н, МеУа5б(2);
— параметры: слова Ci (i=2, 3, 4), имеющие значения
CCiO25» и CgW'WMO8!8)8)4. При вычислении ключей реализуется следующий алгоритм:
1 Присвоить значения
i:==l, U:=H, V:=M. .
2 Выполнить вычисление W==UV, K,--=P(W).
3 Присвоить i:-=i+l.
4 Проверить условие i=5.
При положительном исходе перейти к шагу 7. При отрицатель*,-,
иом — перейти к шагу 5. • . .5 Выполнить вычисление _
U:=A(U)Ci, V:==A(A(V)), W:==Ui®V, Ki=P(W).
6 Перейти к шагу 3.
7 Конец работы алгоритма.
5.2 Шифрующее преобразование
• На данном этапе осуществляется зашифрование 64-битных под-слов слова Н на ключах k| (i=l, 2, 3, 4).
Для шифрующего преобразования необходимо использовать следующие исходные данные:
Н=-МЬзМЬ,, h,(EV,;4(2), i==L4
и набор ключей Кь К2, Кз, К4. Реализуют алгоритм зашифрования и получают слова
s,--EK,(hi), где 1=1, 2, 3, 4. В результате данного этапа образуется последовательность.
S- с. "о 11с- 1|о
==S4iiS|Sai|S). 5.3 Перемешивающее преобразование
bia данном этапе осуществляется перемешивание полученной последовательности с применением регистра сдвига.
Исходными данными являются:
. слова Н, M(?V25e(2) и слово S 6 Vase (2).
Пусть отображение
ф:У2(2)----Уйб(2) преобразует слово
"iJ-.. hi, ev,„(2). i=i~i6'
в слово
ФзФзФФзФМ- • -ha.
Тогда з качестве значения шаговой функции хэширования принимается слово _ _. '
х(М, '"(НМФЗ))), где i|)' — i-я степень преобразования ij).
6 ПРОЦЕДУРА ВЫЧИСЛЕНИЯ ХЭШ-ФУНКЦИИ
Исходными данными для процедуры вычисления значения функции h является подлежащая хэшированию последовательность Мб В*. Параметром является стартовый вектор хэширования Н— произвольное фиксированное слово из Vzse (2).
Процедура вычисления функции h на каждой итерации использует следующие величины:
М(-В*—часть последовательности М, не прошедшая процедуры хэширования на предыдущих итерациях;
НбУ2бб(2) —текущее значение хэш-функции;
26 Уг5б(2) —текущее значение контрольной суммы;
L6 Уг5б(2) — текущее значение дли'ны обработанной на предыдущих итерациях части последовательности М.
Алгоритм вычисления функции h включает в себя этапы:
Этап 1 Присвоить начальные значения текущих величин ;
1.1 М:=М
1.2 Н:=Н
1.3 Е:==0'-1"" • 1.4 L:=026"
1.5 Переход к этапу 2 Этап 2
2.1 Проверить условие |М|>256.
При положительном исходе перейти к этапу 3.
В противном случае выполнить последовательность вычислений:
2.2 L:=
23 МО256-1"' ||М
24 Е:==ЕФ'М'
2.5 Н:=х(М', Н)
2.6 H:=x(L, H) ;
2.7 Н:=1, Н) -
2.8 Конец работы алгоритма '.
Этап 3
3.1 Вычислить подслово Ms6V256(2) слова М (М==Мр||М,)-Далее выполнить последовательность вычислений:
3.2 Н:=х(М„ Н)
3.3 L:=
3.4 EE'e'M,
3.5 M:=Mp
3.6 Перейти к этапу 2.
Значение величины Н, полученное на шаге 2.7, является значением функции хэширования h (М).
Проверочные примеры для вышеизложенной процедуры вычисления хэш-функции приведены в приложении А.
ПРИЛОЖЕНИЕ А
(справочное)
ПРОВЕРОЧНЫЕ ПРИМЕРЫ
llrVJUI-la - _
Заполнение узлов замены п\, яа,..., Лв и значение стартового вектора хэширования Н, указанные в данном приложении, рекомендуется использовать только в проверочных примерах для настоящего стандарта.
A.I Использование алгоритма ГОСТ 28147
В качестве шифрующего преобразования в приводимых ниже примерах используется алгоритм ГОСТ 28147 в режиме простой замены. ''
При этом заполнение узлов замены п\, лг,..., Пв блока подстановки я"
<ледующее:
f 8 7 6 5 4 3 '2 • 1
i0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 8 1 Р D 0 5 7 . • A 4 9 2 3 E 6 В 8 С | 7 D В 4 1 3 F 5 9 0 А E 7 6 8 2 С | b 4 В А 0 7 2 D 3 6 8 5 9 С .Р F. | 0 6 С 7 1 0 F П 8 4 A 9 E 0 3 В 2 '~R~ в ст | 7 D A 1 0 8 9 F E 4 6 С В 2 5 3 ооке с | 5 8 ' 1 D А 3 4 2 E Р С 7 . 6 0 9 В номером | E В 4 'С 6 U F A 2 3 ' в I 0 7 S ' 9 >, i-OX" | 4 A 9 2 D 8 0 E 6 В 1 С 7 F 5 3 при |
r 4
'ii I с с г.
В столбце с номером ], )'=1,8, в, строке с номером i, i— 0,15, приведено значение Л)(0 в шестнадцатеричной системе счисления.
А.2 Представление векторов
Последовательности двоичных символов будем записывать как строки шестнадцатиричных цифр, в которых каждая цифра соответствует четырем знакам
<е двоичного представления.
А.З П р и м е р ы вычисления значения хэш-функции
В качестве стартового вектора хэширования принимают, например, нулевой вектор
н=ооооаооо оооооооо оооаоооо ооюооооо
00000000 ОООООООО ОООООООО ООйООООО А.3.1 Пусть необходимо выполнить хэширование сообщения
М- 73657479 622103233 3D687467 6Е656С20 ix 2С656761 7373696D 20736920 73696854
• Выполняют присвоение начальных значений:
текста , М-73657479 ">03233 3D687467 6Е656С20
1СеЭ6761 7373656D 20736920 73696854 »
дэш-функции
н=оооаоооо оооооооо
00000000 ОООООООО ОООООООО ООЙООООО
OOOOQOOO ОООООООО ., -суммы блоков текста
ДОООООООЮ ОООООООО ОООООООО ЮООООООО
оооооооо оооооооо
00000000 ОООООООО
длины текста L-= ОООООООО ОООООООО
оооооооо оооооооо
ОООООООО 001000000-
00000000 'ОООООООО ОООООООО 00000000-Так как длина сообщения, подлежащего хэшированию, равна 256 битам
ОООООООО 00000000 ОООООООО 00000100
(32 байтам),
L=001000000 OOOQOOOO 00000000 ОООООООО
М'=М= 73657479'62203233 3D687467 6Е656С20
2С696761 7373656D 30736920 73696854, то
нет необходимости дописывать текущий блок нулями,
2=М'= 73657479 62203233 3D687467 6Е656С20 2С656761 7373656D 20736920 73696854
Переходят к вычислению значения шаговой функции хэширования х (М, Н). Вырабатывают ключи
" '»nnr-\Ct/rhrt ;;[
Kl- | 733D2C20 626Е7373 | 65686573 20657369'" | 747467C9 326C6568 | 79676120 33206D54 |
к»» | 110C733D 1D00626E | OD 166568 161A2065 | 130E7474 090D326C | 061417967 •4D393320 |
к.- | 80B111F3 620C1DFF | 730DF216 3ABAE91A | 850013F1 3FA109F2 | C7E1F941 FB13B239 |
К4- | АОЕ2804Е EE1D620C | FF1B73F2 ACOCC5BA | ЕСЕ27АЙО A804C05E | E7B8C7E1 A18BOAEC |
Осуществляют зашифрование W-битных подслов блока Н с помощью алгоритма по ГОСТ 28147.
Блок hi =00000000 ОООООООО зашифровывают на ключе Ki и получают Si—
-42АВВССЕ 32BGOB1B.
Блок ha=00000000 OOOOOIQOO зашифровывают на ключе Кд и получают за™'
=5203ЕВС8 5D9BCFFD.
Блок ha =00000000 ОООООООО зашифровывают на ключе К» и получают s»—
-8D345899 OOFFOE28.
Блок h4= ОООООООО 000100000 зашифровывают на ключе К« и получают 84—
=Е7860419 OD2A962D. Получают
S- E7860419 OD2A562D 8D345899 &3FFOE28 5203ЕВС8 5D9BCFFD 42АВВССЕ 32ВСОВ1В
с
Выполняют перемешивающее преобразование с применением регистра сдвига и получают •
В-х(М,Н)= CF9A8C65 Э35967А4 68AU3B8C 42DE7624' D99C4124 883DA687 S61C7J3E3 3315С034
;Т Р 34 | 1.11-М | | | |
Полага | ют H=S, вы1 | числяют х (L | -, Н): | |
К,- | CP68D956 50428833 | 9АА09С1С 59DE3D15 | 8C3B417D 6776А6С1 | 658С24ЕЗ А4248734 |
К,» | 8FCF68D9 ВВ504288 | в09АА'С9С 2859DE3D | ЗС8СЗВ41 666676А'5 | С7658С24 B3Ai42487 |
Ка° | 4E70CF97 CABB50BD | 3C8.GS5AO E3D7A6DE | 853С8СС4 01936788 | 57389A8C 6CB35B24 |
К," | 584E70CF EDCABB50 | С53С8065 78E3D7A6 | 48853С8С EED 19867 | 1657389A 7F5CB35B |
S= | 66B70F5E Е5ЕС8А37 | F163P461 3FD42279 | 468А9528 3CD1602D | 61D60593 DD763E86 |
S= | 2В6ЕС233 DD3848D1 | С7ВС89Е4 С6АС997А | 2АВС2692 24F74E2B | 5FEA7285 09A3AEF7 |
Вновь | полагают Н== | Е и вычисляют х (2, Н)': | ||
К,- | 5817F104 А531В57А | OBD45D84 9C8FDFCA | B6522F27 BB1EFCC6 | 4AF5BOOB D7A517A3 |
Кг- | Е82759ЕО D2C73DA8 | C278D950 19А6САС9 | 15СС523С 3E8440F5 | FC72EBB6 CODDB65A |
Кз= | 77483AD9 FBC3DAAO | F7C29CAA 7CB555FO | EB06D1D7 D4968080 | 641BCAD3 OA9E56BC |
к<° | А 1157965 768 4 AD CB | 2D9FBC9C FA4ACA06 | С88С7СС2 53EFF7D7 | 46FB3DD2 C07487081 |
S" | 2AEBFA76 С31Е7435 | A85FB57D 4930FD05 | 6F164DE9 1F18A4942 | 2951A581 550A582D |
5= | FAFF37A6 E09525F3 | 15А81669 9F811983 | 1CFF3EF8 2ЕВ81975 | B68CA247 D366C4B1 |
Таким образом, результат хэширования есть
Н= FAFF37A6 15А81669 1CFF3EF8 B68CA247 E0.9525F3 9F811983 2ЕВ81975 D366C4B1
А.3.2 Пусть необходимо выполнить хэширование сообщения ,
М= 7365 7479622Й 3035203D 2С687467 6Е656С20 73616820 65676173 73656D20 6С616Е69 6769726F 20656874 2065736Р 707107553
Tax как длина сообщения, подлежащего хэшированию, равяа 400 битам (50 байтам), то разбивают сообщение на два блока и второй (старший) блок дописывают нулями В процессе вычислений получают:
Ш/ Н= М= Кг | t | Г 1 000( ото | ЗДОЮО П0001 00000 ОООС 73616820 6769726Р 73736720 656С2070 | 30 10( | '00 000000 ЖО ООНЗОС 65676173 20656874 61656965 67616570 | 00 100 | ortcoonoo 00000000 73656D20 2065736F 6S5D7273 616E6875 | 6С616Е69 710707553 20206F6F 73697453 |
K,- | 14477373 4С50656С | ОСОС6166 lFi01686D 04156761 061D616E | 4РООЙ020 1D277369 |
Кэ- | CBFF114B8 35094CAF | 6D04F30C 96051FFE 72F9FB15 7CF006E2 | DFFFBO'00 AB1AE227 |
К4» | ЕВАССВОО ВА1С350.9 | F7006DFB E5E 16905 FD118DF9 F)61B830'F | BOBODFFF F8C554E5 |
s= | FF41797C EDDC2210 | EEAADAC2 43C9B1DF 1EE1ADF9 FA67E757 | 2E114681C DAFE3AD9 |
. s- | FOCEEA4E A93BEFBD | 368B5A60 C63D96C1 2634FOAD CBBB69CE | E5B51CD2 ED2D5D9A |
ШАГ | 2 | | |
H~ | FOCEEA4E A93BEFBD | 368B5A60 C63D96C1 2634F'OAD CBBB69CE | E5B51CD2 ED2D5D9A |
М'= | 00000000 001000000 00000000 .00007365 714796220 3035203D 20687467 6Е656С20 | ||
Ki= | FOC6DDEB 36Е51683 | CE3D42D3 EA968D1D 8BB50148 5A6FD03I | 4EC19DA9 80B790BA |
Ка- | 16А4С6А9 FB68E526 | F9DF3D3B E4FC96EF 2CDBB534 FE161C83 | 5339C1BD 6F7DD2C8 |
Кз= | C49D846D 9DCB0644 | 1780482C 9086887F D1E641E5 A02109AF | C48C9186 9D52C7CF |
К4= | BDBOC9FO 1CAD9536 | 7Э6Е9131 E1F290EA F4B4B674 99F31E29 | 50E4CBB1 70C52AFA |
S- | 62А07ЕА5 6881ЕВ6В | EF3C3309 2CE1B076 F5C7959F 63FCA1F1 | 1173D48CC D33C31B8 |
s= | 96ВЕАОВЕ В82в7СВ6 | 88D6AA02 FE3C9D45 2CBC135B 3E339EFE, | 436CE821 P6576CA9 |
ШАГ | 3 | | |
Н- | 95ВЕАОВЕ В8287СВ6 | 8&D5AA02 FE3C9D45 2CBC135B 3E339EFE | 436CE821 F657CCA9 |
L- | 010000000 00000000 00000000 00000000 00000000 00000000 00000000 00000190 | ||
К,- | 95FEB83E 88432CF6 | BE3C2833 A09D7C9E D56CBC57 AAE8136D | BE45B6FE 02215B39 •' |
К.- | 869CFEB8 DA88432C | 1BBE3C28 E2A09D7C EBD56CBC 7FABE813 | 48ВБ45В6 F292215B |
К»- | В9799ЭС1 6FDA88BC | 141B413C 1EE2A062 D0142A6C РА'80ААГ6 | SOCB74L45 15F2FDB1 |
К«- | 94В97995 346FDA88 | 7D141B41 С21ЕЕ2АО 46D0142A BDFA81AA | 040CB741 DC1562FD |
S- | D42336EO 9FDDFF20 | 2АОА6998 6С65478А 48С8Е863 94FD9D6D | 3D08A1B9 F776A7AD |