GOST3410 (1014224), страница 2
Текст из файла (страница 2)
Задаются число х0 с условием 0 < x0 < 216 и нечетное число с условием 0 < c < 216.
Процедура вычисления включает в себя следующие шаги:
1. По процедуре А получить простое число q длины tq битов.
2. По процедуре А получить простое число Q длины 512 битов, при этом пункт 1 процедуры А не выполнять, а сохранить значение у0, полученное в конце работы шага 1.
ГОСТ Р 34.10-94
3. Вычислить последовательность (у1, ....,у64) по рекурсивному правилу уi+1 = (19381 у1+ с) (mod 216)
4. Вычислить у = у12161
5. у0 := у64
6. Вычислить
N =2t -1 /(qQ) + (2t -1 у)/( qQ21024)
Если N нечетно, то N := N+1
7. k := 0
8. Вычислить р = qQ(N + k) + 1
9/ Tckb p > 2t , то перейти к шагу 3.
10. Проверить условия:
2qQ(N+k)(mod p ) = 1,
2q(N+k)(mod p) 1
Если оба условия выполнены, то р и q - искомые простые числа.
Если хотя бы одно не выполнено. то k := k + 2 и перейти к шагу 8.
последовательность шагов повторить до выполнения условий на шаге 10.
7.4 Процедура В’
процедура позволяет получать простые числа р длины tp= 1021 1024 битов с делителем q длины tq = 255 256 битов числа р-1.
Задаются число х0 с условием 0 < x0 < 232 и нечетное число с с условием 0 < c < 232.
Процедура вычисления включает в себя следующие шаги:
1. По процедуре А’ получить простое число q длины tq битов.
ГОСТ Р 34.10-94
2. По процедуре А’ получить простое число Q длины 512 битов, при этом пункт 1 процедуры А’ не выполнять, а сохранить значение у0, полученное в конце работы шага 1.
3. Вычислить последовательность (у1, ...,у32) по рекурсивному правилу уi+1= (97781173 уi+ c) (mod 232)
4. Вычислить у= у1 2321
5. у0 := у32
6. Вычислить
N = 2t -1 /(qQ) + (2t -1 y) / ( qQ21024)
Если N нечетно, то N := N + 1.
7. k := 0.
8. Вычислить р = qQ(N+k) + 1
9. Если р > 2t , то перейти к шагу 3
10. Проверить условия:
2qQ(N+k)(mod p ) = 1,
2q(N+k)(mod p) 1
Если оба условия выполнены , то р и q - искомые простые числа.
Если хотя бы одно из условий не выполнено, то k := k + 2 и перейти к шагу 8.
Последовательность шагов повторить до выполнения условий на шаге 10.
ГОСТ Р 34.10-94
7.5 Процедура С
Процедура позволяет получить число а при заданных р и q.
1. Произвольно выбирать число d, 1 < d < p-1.
2. Вычислить f = dp-1/q(mod p)
3. Если f = 1, то перейти к шагу 1.
Если f = 1, то а := f
Конец оаботы алгоритма.
Проверочные примеры для вышеизложенных процедур получение чисел р,q и а , выработки и проверки подписи приведены в приложении А.
ГОСТ Р 34.10-94
ПРИЛОЖЕНИЕ А
(справочное)
ПРОВЕРОЧНЫЕ ПРИМЕРЫ
Значение параметров х0, c, d, x, y, k, указанные в приложении, рекомендуется использовать только в проверочных примерах для настоящего стандарта.
А.1 Представление чисел и векторов
Длины чисел и векоров, а также элементы последовательности t записывают в десятичной системе счисления.
Последовательности двоичных символов записывают как строки шестнадцатиричных цифр, в которых каждая цифра соответствует четырем знакам ее двоичного представления.
А.2 Примеры к процедурам получения чисел р, q и числа а для реализации ЭЦП
А.2.1 Процедура А
Необходимо получить простое число р длины 512 битов с простым делителем q длины 256 битов числа р-1.
Задают числа х0 = 5EC9 и с = 7341
Вычисляют последовательность t = (512, 256, 128, 64, 32, 16)
ГОСТ Р 34.10-94
Тогда в процессе выполнения процедуры будет получена последовательность простых чисел :
t5 = 16, p5 = 8003
t4 = 32, p4 = AD4BOFAB
t3 = 64, p3 = B25D28A7 1A62D775
t2 = 128, p2 = 9C992766 8E6E4908 964A9AE1 3773AE75
t1 = 256, p1 = 98915E7E C8265EDF CDA31E88 F24809DD
B064BDC7 285DD50D 7289FOAC 6F49DD2D
t0 = 512, p0 = EE8172AE 8996608F B69359B8 9EB82A69
854510E2 977A4D63 BC97322C E5DC3386
EA0A12B3 43E9190F 23177539 84583978
6BB0C345 D165976E F2195EC9 B1C379E3
p1 и р0 - искомые числа q и р соответсвенно.
А.2.2 Процедура А’
Необходимо получить простое число р длины 512 битов с простым делителем q длины 256 битов числа р-1.
Задаются числа х0 = 3DFC46F1 и c=D.
Вычисляют последовательность t = (512, 256, 128, 64, 32).
Тосда в процессе выполнения процедуры будет получена последовательность простых чисел:
t4 = 32, p4 = 8000000B
t3 = 64, p3 = 9AAA6EBE 4AA58337
t2 = 128, p2 = C67CE4AF 720F7BBA B5FEBF37 B9E74807
t1 = 256, p1= | 931A58FB | 6F0DCDF2 | FE7549BC | 3F19F472 |
4B56898F | 7F921A07 | 6601EDB1 | 8C93DC75 | |
t0 = 512, p0= | 8B08EB13 | 5AF966AA | B39DF294 | 538580C7 |
DA26765D | 6D38D30C | F1C06AAE | 0D1228C3 | |
316A0E29 | 198460FA | D2B19DC3 | 81C15C88 | |
8C6DFD0F | C2C565AB | B0BF1FAF | F9518F85 |
p1 и p0 - искомые числа q и p соответсвенно.
ГОСТ Р 34.10-94
А.2.3 Процедура В
Необходимо получить простое число р длины 1024 битов с простым делителем q длины 256 битов числа р-1.
Задают начальные значения х0 = A565 и с = 538B.
С помощью процедуры А получают простое число q длиной 1 = 256 битов:
BCC02CA0 | CE4F0753 | EC16105E | E5D530AA |
00D39F31 | 71842AB2 | C334A26B | 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 | C0F104B5 | 8D2E1497 | 0FCCB478 |
F98D01E9 | 75A1028B | 9536D912 | DE5236D2 |
DD2FC396 | B7715359 | 4D417878 | 0E5F16F7 |
18471E21 | 11C8CE64 | A7D7E196 | FA57142D |
А.2.4 Процедура B’
Необходимо получить простое число р длины 1024 битов с простым делителем q длины 256 битов числа р-1.
Задают начальные значение х0 = 3DFC46F1 и c = D.
С помощью процедуры А получают простое число q длиной 1 = 256 битов:
931A58FB | 6F0DCDF2 | FE7549BC | 3F19F472 |
4B56898F | 7F921A07 | 6601EDB1 | 8C93DC75 |
ГОСТ Р 34.10-94
Затем вновь с помощью процедуры А получают простое число Q длиной 1 = 512 битов:
BB124D6C | 255D373F | FA7D5DF5 | 5CE0DB44 |
96397506 | 6F8980B1 | C7CB68DF | 6C6E8D27 |
12D34BF3 | 3B536899 | C7150C4D | F82FC171 |
D9529BC8 | C9653929 | D6682CF5 | FBBA1B3D |
И, наконец, получают простое число р длиной 1 = 1024 битов:
E2C4191C | 4B5F222F | 9AC27325 | 62F6D9B4 |
F18E7FB6 | 7A290EA1 | E03D750F | 0B980675 |
5FC730D9 | 75BF3FAA | 606D05C2 | 18B35A6C |
3706919A | AB92E0C5 | 8B1DE453 | 1C8FA8E7 |
AF43C2BF | F016251E | 21B28708 | 97F6A27A |
C4450BCA | 235A5B74 | 8AD386E4 | A0E4DFCB |
09152435 | ABCFE48B | D0B126A8 | 122C7382 |
F285A986 | 4615C66D | ECDDF6AF | D355DFB7 |
А.2.5 Процедура С
Пусть заданы числа р и q, полученные в А.2.1 по процедуре А:
p = | EE8172AE | 8996608F | B69359B8 | 9EB82A69 |
854510E2 | 977A4D63 | BC97322C | E5DC3386 | |
EA0A12B3 | 43E9190F | 23177539 | 84583978 | |
6BB0C345 | D165976E | F2195EC9 | B1C379E3 | |
q = | 98915E7E | C8265EDF | CDA31E88 | F24809DD |
B064BDC7 | 285DD50D | 7289F0AC | 6F49DD2D | |
Выбирают число d = 2.
Вычисляют
f = dp-1/q(mod p)= | 9E960315 | 00C8774A | 86958D4 | AFDE2127 |
AFAD2538 | B4B6270A | 6F7C8837 | B50D50F2 | |
06755984 | A49E5093 | 04D648BE | 2AB5AAB1 | |
8EBE2CD4 | 6AC3D849 | 5B142AA6 | CE23E21C |
Так как f 1, то f - искомое число
a := f
ГОСТ Р 34.10-94
А.3 Примеры процедур выработки и проверки ЭЦП на базе асимметричного криптографического алгоритма
Пусть по процедуре А с начальными условиями х0 = 5EC9 и с = 7341 выработаны числа р, q и а :
p = | EE8172AE | 8996608F | B69359B8 | 9EB82A69 |
854510E2 | 977A4D63 | BC97322C | E5DC3386 | |
EA0A12B3 | 43E9190F | 32177539 | 84583978 | |
6BB0C345 | D165976E | F2195EC9 | B1C379E3 | |
q = | 98915E7E | C8265EDF | CDA31E88 | F24809DD |
B064BDC7 | 285DD50D | 7289F0AC | 6F49DD2D | |
a = | 9E960315 | 00C8774A | 86958D4 | AFDE2127 |
AFAD2538 | B4B6270A | 6F7C8837 | B50D50F2 | |
06755984 | A49E5093 | 04D648BE | 2AB5AAB1 | |
8EBE2CD4 | 6AC3D849 | 5B142AA6 | CE23E21C |
А.3.1 Процедура подписи собщения
Пусть х = | 30363145 | 38303830 | 34363045 | 42353244 |
35324234 | 31413237 | 38324331 | 38443046 |
- секретный ключ, М - подписываемое сообщение, причем значение хэш-функции h от сообщения М есть
h (M) = m = | 35344541 | 32454236 | 44313445 | 34373139 |
43363345 | 37414342 | 34454136 | 31454230 |
Пусть целое число
k = | 90F3A564 | 439242F5 | 186EBB22 | 4C8E2238 |
11B7105C | 64E4F539 | 0807E636 | 2DF4C72A |
Тогда
r=ak(mod p) = | 47681C97 | 4373B065 | 3C6CA965 | C8F86127 |
D07A7E02 | E311846E | 97A8C126 | 3F8A76AF | |
FF0AD188 | 02643B5C | 6C998775 | 0C6B0458 | |
98E4AD8C | FC689817 | 76BA8216 | 3ADBC988 | |
r’=r(mod q)= | 3E5F895E | 276D81D2 | D52C0763 | 270A4581 |
57B784C5 | 7ABDBD80 | 7BC44FD4 | 3A32AC06 |
ГОСТ Р 34.10-94
s=xr’+km(mod q)= | 3F0DD5D4 | 400D47C0 | 8E4CE505 | FF7434B6 |
DBF72959 | 2E37C748 | 56DAB851 | 15A60955 |
Таким образом, цифровая подпись для сообщения М есть
<r’>256 <s>256= | 3E5F895E | 276D81D2 | D52C0763 | 270A4581 |
57B784C5 | 7ABDBD80 | 7BC44FD4 | 3A32AC06 | |
3F0DD5D4 | 400D47C0 | 8E4CE505 | FF7434B6 | |
DBF72959 | 2E37C748 | 56DAB851 | 15A60955 |
А.3.2 Процедура проверки подписи