ГОСТ Р 34.10—94
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ПРОЦЕДУРЫ ВЫРАБОТКИ И ПРОВЕРКИ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ НА БАЗЕ АСИММЕТРИЧНОГО КРИПТОГРАФИЧЕСКОГО АЛГОРИТМА
Издание официальное
04/130
ГОССТАНДАРТ РОССИИ
Москва
Предисловие
1 РАЗРАБОТАН Главным управлением безопасности связи Феде-* рального агентства правительственной связи и информации И Всероссийским научно-исследовательским институтом стандарт тизации
ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационная технология» и Федеральным агентством правительственной связи и информации
2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 23.05.94 № 154
3 ВВЕДЕН ВПЕРВЫЕ
© Издательство стандартов, 1994
Настоящий стандарт не может быть полностью или частично воспроизведен, 1иражирован и распространен в качестве официального издания без разрешения Госстандарта России
СОДЕРЖАНИЕ
1 Область применения
2 Нормативные ссылки.......... . , .
3 Обозначения . . .............
4 ОбгЦис положения .
5 Процедура выработки подписи
6 Процедура проверки подписи
7 Процедуры получения чисел р, q и а
Приложение А Проверочные примеры
ВВЕДЕНИЕ
Расширяющееся применение информационных технологий при создании, обработке, передаче и хранении документов требует в определенных случаях сохранения конфиденциальности их содержания, обеспечения полноты и достоверности.
Одним из эффективных направлений защиты информации является криптография (криптографическая защита), широко применяемая в различных сферах деятельности в государственных и коммерческих структурах.
Криптографические методы защиты информации являются объектом серьезных научных исследований и стандартизации на национальных, региональных и международных уровнях.
Настоящий стандарт определяет процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма с применением функции хэширования.
Электронная цифровая подпись обеспечивает целостность сообщений (документов), передаваемых по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения, с гарантированной идентификацией ее автора (лица, подписавшего документ).
ГОСТ Р 34.10—94
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология. КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.
Information technology.
Cryptographic Data Security.
Produce and check procedures of Electronic Digital Signature based on Asymmetric Cryptographic Algorithm.
Дата введения 1995—01—01
1 ОБЛАСТЬ ПРИМЕНЕНИЯ
Настоящий стандарт устанавливает процедуры выработки и проверки электронной цифровой подписи (ЭЦП) сообщений (документов), передаваемых по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения, на базе асимметричного криптографического алгоритма с применением функции хэширования.
Внедрение системы ЭЦП на базе настоящего стандарта обеспечивает защиту передаваемых сообщений от подделки, искажения и однозначно позволяет доказательно подтвердить подпись лица, подписавшего сообщение.
2 НОРМАТИВНЫЕ ССЫЛКИ
В настоящем стандарте использованы ссылки на следующий стандарт:
ГОСТ Р 34.11—94 Информационная технология. Криптографическая защита информации. Функция хэширования.
3 ОБОЗНАЧЕНИЯ
В настоящем стандарте используются следующие обозначения.
Р* — множество всех конечных слов в алфавите р = {0,1}.
|А| — длина слова А^р*.
Vr(2) — множество всех бинарных слов длины к.
z(mod n) — наименьшее по значению неотрицательное число, сравнимое с z по модулю числа п.
k — слово длины к, содержащее двоичную запись вычета N(mod 2к) неотрицательного целого числа N.
А — неотрицательное целое число, имеющее двоичную запись А (А ер*) (под длиной числа будем понимать номер старшего значащего бита в двоичной записи’числа).
А||В — конкатенация слов А, Вер* — слово длины | А| + | В |, в котором левые |А| символов образуют слово А, а правые |В| символов образуют слово В. Можно также использовать обозначение A|jB=AB.
Ak — конкатенация к экземпляров слова А(Аер*).
М — передаваемое сообщение, Мёр*.
М| — полученное сообщение, Л^ер*.^
h — хэш-функция, отображающая сообщение М в слово h(M)eV256(2).
р — простое число, 2°09<р<2512 либо 21020<р<21024.
q — простое число, 2254 а — целое число, 1 <а<р—1, при этом a<’(mod р) = 1. к — целое число, 0 [d] — наименьшее целое число, не меньшее чем d. [d] — наибольшее целое число, не большее чем d. e: = g — присвоение параметру е значения g. х — секретный ключ пользователя для формирования подписи, 0 у — открытый ключ пользователя для проверки подписи, y=ax(mod р). 4 ОБЩИЕ ПОЛОЖЕНИЯ Система ЭЦП базируется на методах криптографической защиты данных с использованием хэш-функции. Алгоритм вычисления функции хэширования установлен в ГОСТ Р 34.11. Процедуры цифровой подписи допускают как программную, так и аппаратную реализацию. Система ЭЦП включает в себя процедуры выработки и проверки подписи под данным сообщением. 1) Отправляемые и получаемые последовательности, в том числе сообщения и подписи, могут отличаться друг от -друга из-за случайных или преднамеренных искажений. Цифровая подпись, состоящая из двух целых чисел, представленных в виде слов в алфавите 0, вычисляется с помощью определенного набора правил, изложенных в стандарте. Числа р, q и а, являющиеся параметрами системы, должны быть выбраны (выработаны) по процедуре, описанной в пункте 7. числа р, q и а не являются секретными. Конкретный набор их значений может быть общим для группы пользователей. Целое число к, которое генерируется в процедуре подписи сообщения, должно быть секретным и должно быть уничтожено сразу после выработки подписи. Число 1< снимается с физического датчика случайных чисел или вырабатывается псевдослучайным методом с использованием секретных параметров. 5 ПРОЦЕДУРА ВЫРАБОТКИ ПОДПИСИ Текст сообщения, представленный в виде двоичной последовательности символов, подвергается обработке по определенному алгоритму, в результате которого формируется ЭЦП для данного сообщения. Процедура подписи сообщения включает в себя следующие этапы: 1 Вычислить h(M)-—значение хэш-функции h от сообщения М. Если h(M) (mod q) =0, присвоить h(M) значение 02551. 2 Выработать целое число k, 0 3 Вычислить два значения: r = ak(mod р) и r'=r(mod q). Если-г' = 0, перейти к этапу 2 и выработать другое значение числа к. 4 С использованием секретного ключа х пользователя (отправителя сообщения) вычислить значение $= (xr'4-kh(M) (modq). Если s = 0, перейти к этапу 2, в противном случае закончить работу алгоритма. Подписью для сообщения М является вектор 256||2.w. Отправитель направляет адресату цифровую последовательность символов, состоящую из двоичного представления текста сообщения и присоединительной к нему ЭЦП. 6 ПРОЦЕДУРА ПРОВЕРКИ ПОДПИСИ Получатель должен проверить подлинность сообщения и подлинность ЭЦП, осуществляя ряд операций (вычислений). Это возможно при наличии у получателя открытого ключа отправителя, пославшего сообщение. Процедура проверки включает в себя следующие этапы: 1 Проверить условия: 0 Если хотя бы одно из этих условий не выполнено, то подпись считается недействительной. 2 Вычислить h(Mj) — значение хэш-функции h от полученного сообщения Mi. Если h(M|) (mod q)=0, присвоить h(M|) значение 02531, 3 Вычислить значение v= (h(MI))(»-2(mod q). 4 Вычислить значения: Z| = sv (mod q) и z2 = (q—г') v(mod q). 5 Вычислить значение u = (az,yx2(mod p))(mod q) 6 Проверить условие: r'=u. При совпадении значений rz и и получатель принимает решение о том, что полученное сообщение подписано данным отправителем и в процессе передачи не нарушена целостность сообщения, т. е. Mi=M. В противном случае подпись считается недействительной. 1 Уо: = хо 2 Вычислить последовательность чисел (to, ti, ...» ts) по правилу: t0: = t. Если tf>17, то t|-H=[ti/2j, Если tj <17, то s: = i. 3 Найти наименьшее простое число р3 длины ts битов, 4 m: = s—1 5 Вычислить г=rtinxi/16]. 6 Вычислить последовательность (уь ...» у||п) по рекурсивному правилу yi rin“l 7 Вычислит# Ym= S vf2161. i-0 ' 8 Уо: = Угт- 9 Вычислить N=^-‘ pm+l]+f(2f;-'Ym)/(pin+12'erm)J. Если N нечетно, то N: = N+1, 10k: = 0. 11 Вычислить pm =Pm+i (N + k) + 1. 12 Если pm >2Х то перейти к шагу 6. 13 Проверить условия: 2Pm+l 2(N+k) (mocj pm Если хотя бы одно из условий не выполнено, то k: = k + 2 и перейти к шагу 11. Если оба условия выполнены, то m: = m—1. 14 Если т^О, то перейти к шагу 5. Если т<0, то ро — искомое простое число р и pi — искомое простое число q. 7.2 Процедура А' Процедура позволяет получать простые числа р длины t^33 битов с простым делителем q длины lt/2] битов числа р-1. Получение числа осуществляется с использованием линейного конгруэнтного датчика хп — (97781173 хп-г +с) (mod 232). Задаются число Хо с условием 0<х0<232 и нечетное число с с условием 0<с<232. Процедура вычисления включает в себя следующие шаги: 1 Уо- = хо 2 Вычислить последовательность чисел (to, th..., t8)no правилу: t0: = t. Если ti>33, то t|+i =[ti/2J,„ Если tj <33, то s: = i 3 Найти наименьшее простое число р3длины ts битов. 4 m: = s—1. 5 Вычислить гш =Пт/32Т. 6 Вычислить последовательность (уь ...» уГ(П ) по рекурсивному правилу уц-! = (97781173 yt 4-с) mod (232). rm-' 7 Вычислить Yme 2 v^321. i-0" 8 Уо: = Угт- 9 Вычислить N = f2nl J+l(2 m 1Ym)/(pm.H232rm)|. Если N нечетно, то N :==N+1. 10 k: = 0. 11 Вычислить pm =Pm-rl (N + k) + 1. 12 Если pm>2tfn , то перейти к шагу 6. 13 Проверить условия: 2₽">+i(N+k) (mod p,n) = l, 2 Если хотя бы одно из условий не выполнено, то k: = k + 2 и перейти к шагу 11. Если оба условия выполнены, то m: = m—1. 14 Если гп^О, то перейти к шагу 5. Если т<0, то ро — искомое простое число р и pi — искомое простое число q. 7.3 Процедура В Процедура позволяет получать простые числа р длины tp = 1021 4-1024 битов с делителем q длины tq =2554-256 битов числа р-1. Задаются число х0 с условием 0<х0<216 и нечетное число с с условием 0<с<216. Процедура вычисления включает в себя следующие шаги: 1 По процедуре А получить простое число q длины tq битов. 2 По процедуре А получить простое число Q длины 512 битов, при этом пункт 1 процедуры А не выполнять, а сохранить значение у0, полученное в конце работы шага L 3 Вычислить последовательность (у...... уб«) по рекурсив ному правилу уНл = (19381 yj +с) (mod 216). 63 4 Вычислить Y= 2 Vi2lbl, l-o' 5 Уо:“Уб4. 6 Вычислить N = [2,p-,/(qQ)|x[(2tp-1Y)/(qQ2^)|. Если N нечетно, то N: = N+1. 7 к: = 0. 8 Вычислить p = qQ(N + k) + l. 9 Если р>2 р , то перейти к шагу 3. 10 Проверить условия: 2qQ 24(N+k) (mod р)=^1. Если оба условия выполнены, то р и q — искомые простые числа. Если хотя бы одно из условий не выполнено, то k: = k+2 и перейти к шагу 8. Последовательность шагов повторить до выполнения условий на шаге 10. 7.4 Процедура В' Процедура позволяет получать простые числа р длины tp= 1021-г-1024 битов с делителем q длины tq =255-^256 битов числа р—1. Задаются число х0 с условием 0<хо<232 и нечетное число с с условием 0<с<232. Процедура вычисления включает в себя следующие шаги: 1 По процедуре А' получить простое число q длины tq битов. 2 По процедуре А' получить простое число Q длины 512 битой, при этом пункт 1 процедуры А' не выполнять, а сохранить значение уо, полученное в конце работы шага 1. 3 Вычислить последовательность (у(, . . . , узг) по рекурсивному правилу yI+i = (97781173 yi+c) (mod 232). 31 4 Вычислить Y= S v(2321, i-0’ 5 Уо-=У32- 6 Вычислить N = [2 / (qQ) ] — | (2^ Y) / (qQ21024) |. Если N нечетно, то N: = N+1. 7 k: = 0. 8 Вычислить p = qQ(N + k) + l. 9 Если р>2*Р, то перейти к шагу 3. 10 Проверить условия: 2qQ(N+k) (mod р) = 1, 2 Если оба условия выполнены, то р и q — искомые простые числа. Если хотя бы одно из условий не выполнено, то k: = k + 2 и перейти к шагу 8. Последовательность шагов повторить до выполнения условий на шаге 10. 7.5 Процедура С Процедура позволяет получить число а при заданных р и q. 1 Произвольно выбрать число d, l p-i 2 Вычислить f = d4 (mod p). 3'Если f=l, то перейти к шагу 1. Если f#=l, то a : = f. Конец работы алгоритма. Проверочные примеры для вышеизложенных процедур получения чисел р, q и а, выработки и проверки подписи приведены з приложении А.» Приложение А (справочное) ПРОВЕРОЧНЫЕ ПРИМЕРЫ Значения параметров хо, с, d, х, у, к, указанные в приложении, рекомендуется использовать только в проверочных примерах для настоящего стандарта. А1 Представление чисел и векторов Длины чисел и векторов, а также элементы последовательности t записывают в десятичной системе счисления. Последовательности двоичных символов записывают как строки шестнадцатеричных цифр, в которых каждая цифра соответствует четырем знакам ее двоичного представления. А.2 Примеры к процедурам получения чисел р, q и числа а для реализации ЭЦП А.2.1 Процедура А Необходимо получить простое число р длины 512 битов с простым делителем q длины.256 битов числа р—1. Задают числа Хо=5ЕС9 и с—7341. Вычисляют последовательность (=(512, 256, 128, 64, 32, 16). Тогда в процессе выполнения процедуры будет получена последовательность простых чисел: t5= 16, h=32, t3=64, p5= 8003 рч= AD4B0FAB p3= B25D28A7 1A62D775 t2=128, p2= 9C992766 8E6E4908 964A9AE1 3773AE75 ti = 256, pt= 98915E7E B064BDC7 C8265EDF 285DD50D CDA3-1E88 7289F0AC F24809DD 6F49DD2D t0=5l2, p() = EE8172AE 854510E2 EA0A12B3 6BB0C345 8996608F 977A4D63 43E9190F D165976E B69359B8 BC97322C 231177539 F2195EC9 9EB82A69 E5DC3386 84583978 BIC379E3 pi и ро — искомые числа q и р соответственно. А.2.2 Процедура А' Необходимо получить простое число р длины 512 битов с простым делителем q длины 256 битов числа р—1. Задают числа x0=3DFC46Fl и c=D. * . Вычисляют последовательность (=(512, 256, 1<2«8, 64, 32). Тогда в процессе выполнения процедур будет получена последовательность простых чисел: t4»32, p4= 8000000B t3=64, p3= 9AAA6EBE 4AA58337 t2=128, p2= C67CE4AF 720F7BBA B5FEBF37 B9E74807 t(=256, Pl= 931A58FB 4B56898F 5F0DCDF2 7F921A07 FE7549BC 6601EDB1 3F19F472 8C93DC75 to-512, p0= 8B08EB13 DA26765D 316A0E29 8C6DFD0F 5AF966AA 6D38D30C 198460FA C2C565AB B39DF294 F1C06AAE D2B19DC3 B0BF1FAF 538580C7 0Dil228C3 81C15C88 F9518F85 Pi и po - — искомые числа q и p соответственно. А.2.3 Процедура В Необходимо получить простое число р длины <1024 битов с простым делителем q длины 256 битов числа р—1. Задают начальные значения х0=А565 и с=538В. С помощью процедуры А получают простое число q длиной 1 = 256 битов: ВСС02СА0 CE4F0753 ЕС16105Е E5D530AA 00D39F31 71842АВ2 С334А26В 5F576E0F Затем вновь с помощью процедуры А получают простое число Q длиной 1=512 битов: CCEF6F73 87B6417E C67532A1 86EC619C A4DB132F CA02621A DE216F1D F6F8114C DB3D9209 7D978C6F 583C3301 4174AA1C 1AFCCEB2 843B1D35 0D2E5D16 855A7477 И, наконец, получают простое число р длиной 1=1024 битов: AB8F3793 8356529E 871514C1 F48C5CBC E77B2F4F C9A2673A C2C1653D A8984090 C0AC7377 5159A26B EF59909D 4C984663 1270E166 53A62346 68F2A52A 01A39B92 1490E694 C0F404B5 8D2E1497 0FCCB478 F98D01E9 75A1028B 9536D9.12 DE5236D2 DD2FC396 B7715359 4D417878 0E5F16F7 18471E21 11C8CE64 A7D7E196 FA57142D А.2.4 Процедура В' Необходимо получить простое число р длины 1024 битов с простым делителем q длины 256 битов числа р— I. Задают начальные значения xo=3DFC46Fil и c=D. С помощью процедуры А получают простое число q длиной 1=256 битов: 931A58FB 6F0DCDF2 FE7549BC 3F-19F472 4B56898F 7F921A07 6601Et)Bl 8C93DC75 Затем вновь с помощью 1=512 битов: процедуры А получают простое число Q длиной BB124D6C 96397506 1-2D34BF3 D9529BC8 255D373F 6F8980B1 3B536899 С9653929 FA7D5DF5 C7CB68DF C7H50C4D D6682CF5 5CE0DB44 6C6E8D27 F82FC171» FBBA1B3D И, наконец, получают простое число р длиной 1=1024 битов: Е2С4191С F18E7FB6 5FC730D9 3706919А AF43C2BF С4450ВСА 09152435 F285A986 4B5F222F 7А290ЕА1 75BF3FAA АВ92Е0С5 FQ16251E 235А5В74 ABCFE48B 4615C66D 9АС27325 E03D750F 606D05C2 8B1DE453 2UB28708 8AD386E4 D0BH26A8 ECDDF6AF 62F6D9B4 0В980675 18В35А6С 1C8FA8E7 97F6A27A A0E4DFCB 122С7382 D355DFB7 А.2.5 Процедура С Пусть заданы числа р 98915Е7Е C8265EDF B064BDC7 285DD50D CDA31E88 F24809DD 7289F0AC 6F49DD2D Выбирают число d=2. Вычисляют р-1 f=d (mod р) = 9Е960Э15 AFAD2538 06755984 8EBE2CD4 00С8774А В4В6270А А49Е5093 6AC3D849 869582D4 6F7C8837 O4D648BE 5В142АА6 AFDE2127 B50D50F2 2АВ5ААВ1 СЕ23Е21С и q, полученные в А.2,1 по процедуре А: ЕЕЭ172АЕ 8996608F В69359В8 9ЕВ82А69 854510Е2 977A4D63 ВС97322С E5DC3386 ЕА0А12ВЗ 43E9190F 23177539 84583978 6ВВ0С345 D165976E R2195EC9 B1C379E3 Так как f^l, то f — искомое число a:=f А.З Примеры процедур выработки и проверки ЭЦП на базе асимметричного криптографического алгоритма Пусть по процедуре А с начальными условиями х0=5ЕС9 и с=7341 выработаны числа р, q и а: p=r ЕЕ8172АЕ 854510Е2 ЕА0А12ВЗ 6ВВ0С345 8996608F 977A4D63 43E9190F D165976E В69359В8 ВС97322С 23177539 F2195EC9 9ЕВ82А69 E5DC3386 84583978 B1C379E3 q« 989>15Е7Е B064BDC7 C8265EDF 285DD50D CDA31E88 7289F0AC F24809DD 6F49DD2D а» 9Е960315 AFAD2538 06755984 8EBE2CD4 00С8774А B4B62I70A А49Е5093 6AC3D849 869582D4 6F7C8837 04D648BE 5В142АА6 AFDE2127 B50D50F2 2АВ5ААВ1 СЕ23Е21С А.3.1 Процедура подписи сообщения Пусть х- 30363145 38303830 34363045 38324331 42353244 38443046 35324234 31413237 причем значение хэш — секретный ключ, М — подписываемое сообщение, функции h от сообщения М есть h(M)-m== 35344541 43363345 32454236 37414342 44313445 34454il36 34373139 31454230 Пусть целое число, к» 90F3A564 11В7105С 439242F5 64E4F539 186ЕВВ22 0807Е636 4С8Е2238 2DF4C72A Тогда r=a*(mod р)- 47681С97 D07A7E02 FF0AD188 98E4AD8C 4373В065 E3H846E О2643В5С FC689317 ЗС6СА965 97А8С126 6С998775 76ВА8216 C8F86I27 3F8A76AF 0С6В0458 3ADBC988 г'—г (mod q)e 3E5F895E 57В784С5 276О8»Ю2 7ABDBD80 D52C0763 7BC44FD4 270А4581 3A32AC06 s«xr'+km(mod q)-= 3F0DD5D4 DBF72959 400D47C0 2E37C748 8E4CE505 56DAB851 FF7434B6 15A60955 Таким образом, цифровая подпись для сообщения М есть 3E5F895E 57В784С5 3F0DD5D4 DBF72959 276D81D2 7ABDBD80 400D4I7C0 2Е37С743 D52C0763 7BC44FD4 8Е4СЕ505 56DAB851 270А4581 3A32AC06 FF7434B6 15А60955 А.3.2 Процедура проверки подписи Пусть дано сообщение Mi (в данном случае М(=М), его цифровая подпись 25$|| 256s 3E5F895E 276D81D2 D52C0763 270А4581 57В784С5 7ABDBD80 7BC44FD4 3A32AC06 3F0DD5D4 400D47C0 8Е4СЕ505 FF7434B6 DBF72959 2Е37С748 56DAB851 15А60955 и открытый ключ подписавшего сообщение ЕЕ1902А4 0692D273 EDC1B5AD C55F9112 8E35F9D1 65FA9901 CAF00D27 018BA6DF 324510С1 1А6Е2725 26589CD6 E6A2EDDA AFE1C308 1259BE9F СЕЕ667А2 701F4352 Замечание Данный открытый ключ -у соответствует секретному ключу х, использованному в примере подписи сообщения М y=ax(mod- р). Пусть т— 35344541 32454236 44313445 34454136 34373139 31454230 43363345 37414342 — значение хэш-функции h для сообщения Мь Условия 0 v-mq-2(mod q)« 72515E01 89E462EE DDFA6507 E37B3865 E3682CO1 918B6730 CD285CBF DEA77050 Zi—sv(mod q)- 776DC3G6 4E83B73B 02B78826 6873EAFF B87DAED5 8686009B 5D387CC4 EAF5B744 za=(q~г') v(mod q)= 18В04С46 G1D9E875 5ZJFDA9E 95364DDE A5185DFD 3AFD0A8D FCADB67C 505C7F03 u=(aZtyZ1 (mod p))(mod q)= 3E5F895E 57B784C5 276D81D2 7ABDBD80 D52C0763 270A4581 7BC44FD4 3A32AC06 Таким образом: r'- 3E5F895E 276D81D2 D52C0763 270А45Э1 57B784C6 7ABDBD80 7BC44FD4 3A32AC06 u- 3E5F895E 276D81D2 D52C0763 27OA4581 57B784C5 7ABDBD80 7BC44FD4 3A32AC06 Условие rz—и выполнено. Это означает, что подпись подлинная. УДК 681.3.06:006.354 П85 ОКСТУ 5002 Ключевые слова: информационная технология, криптографическая защита информации, электронная цифровая подпись, ассим-метричный криптографический алгоритм, системы обработки Ии-формации, защита сообщений, подтверждение подписи, хэш-функ-ция, функция хэширования 14