ЦИФРОВІ ПІДПИСИ НА ОСНОВІ ІДЕНТИФІКАТОРІВ, ЩО ВІДНОВЛЮЮТЬ ГЕШ-КОД ПОВІДОМЛЕННЯ
Цей варіант схеми Guillou-Quisquater має перевагу в тому, що геш-функцію можна обчислювати паралельно з іншою частиною кроків перевіряння. Процес підписування у цьому механізмі цифрового підписування на основі ідентифікаторів зображений на рисунку 1, а процес перевіряння — на рисунку 3. Свідоцтво є детермінованим. Цей механізм відрізняється від схеми Guillou-Quisquater такими процедурами:
обчислювання свідоцтва;
обчислювання першої частини підпису.
Також передбачається, що рандомізатор К, створений підписувачем, задовольняє mod Р і К * 0 mod Q, інакше можна здійснити фактори за цію N. Звідси можна також припустити, що попередній підпис П не буде кратним Рчи Q.
Обчислювання свідоцтва
Свідоцтво обчислюють як геш-атрибут Н повідомлення М за допомогою стійкої до колізій геш- функції.
Обчислювання першої частини підпису
Першу частину підпису обчислюють як
«=П -Hmod/V.
З огляду на повторно обчислене значення П попереднього підпису перевірювач одержує повторно обчислене значення свідоцтва Н, обчислюючи:
Н = П-1/? mod N.ДОДАТОКA
(довідковий)
ЧИСЛОВІ ПРИКЛАДИ
Числа подано в шістнадцятковій системі числення.
А.1 Числовий приклад процесу створювання перевіркоєого ключа
А. 1.1 Гоперування параметрів проблемної області
Модуль N є добутком двох різних простих чисел Р і Q, У цьому прикладі використовуються 512-бітові прості числа Р і Q, таким чином, N є 1024-бітовим числом.
р- |
FFFFFFFF А07А2345 3CBF08EA 50948Е87 |
EA2DE66E 9B7956FB 3BC7A1BD |
D3B1B7E9 1B9B16D7 541CB3A8 |
61B75DFC E1B6D59B 80E02E43 |
D9FAE2FF BDF45B85 87CA7DEF |
Q = |
FFFFFFFF |
E275B7F4 |
98A3811D |
E906ACF7 |
BFEB5CD6 |
|
A445AF09 |
D7906DE1 |
97CC2CCD |
87614718 |
8C7C084F |
|
CE9231CA |
B7CFA113 |
13C3DDCF |
F1B70A54 |
84494467 |
|
8FCEF193 |
|
|
|
|
N = PQ = |
FFFFFFFF |
CCA39E63 |
6ED9CF52 |
950C23A0 |
38AE0291 |
|
012B984A |
964FFBBD |
99E9DACB |
91400431 |
0C5DD264 |
|
B1873126 |
44A725C5 |
D5BC73F4 |
97CFD100 |
89FD1342 |
|
656026BE |
3FB583FE |
B134FF43 |
6957A1E1 |
D975B5BE |
|
DF1A9570 |
4C81A337 |
F06E5F9F |
9388A7AC |
5ABFD5CF |
|
0356D91A |
9861C69F |
E50509C2 |
323E5270 |
F2015FBD |
|
C08AA2C0 |
391CEE85 |
|
|
|
Показник степеня для перевіряння є непарним цілим числом взаємно простим з Р-1 і Q-1. У цьому прикладі Ує 279 + 1, тобто що довжина V дорівнює 80 бітам:
V = 8000 00000000 00000001.
Показник степеня генерування перевіркового ключа D — це додатне ціле число, таке, що ОУ-1 є кратно Icm (Р-1, Q-1).
Icm (P-1, Q-1) = |
7FFFFFFF 8095CC25 58C39893 32B0135E 229A2ACD 5C733AA2 DA3B7034 |
E651CF31 4B27FDDE 225392E2 1FDAC1FF 03E0E874 C68845F5 AC5CB736 |
B76CE7A9 CCF4ED65 EADE39FA 7248B06F 3EB24D61 78B6E378 |
4A8611D0 C8A00218 4BE7E880 FE81346D 7010B203 E52EE07C |
1C570148 862EE932 44FE89A1 475BD565 78D3DC8D 3FB51392 |
D = |
1BC6C0ED |
36435CBF |
A89C7A35 |
50CE3D54 |
C6ABC9F5 |
|
EE5E75C9 |
E458AADA |
6178CB20 |
C7339C4E |
F30413A6 |
|
586DA8B6 |
45A72BDF |
291C9218 |
F0CA83EF |
A4234FAD |
|
8394B2BF |
8F4A0EF9 |
61E098FC |
2CC5AFAA |
46CCC821 |
|
0427D3EE |
3461AF0B |
46895311 |
E1DAD21F |
35217CBC |
|
4FD1A5B9 |
62E01B8B |
967F97E2 |
41ECF56E |
DBF85278 |
|
EC058601 |
17D9A7B7 |
|
|
|
А.1.2 Створювання перебіркового ключа і ключа підпису
Перевірковий ключ Y — це вихід функції для генерування відкритого ключа у, для якої входом є дані ідентифікації /, і він некратний Р чи Q. Цей приклад використовує 1024-бітозе число Y, менше ніж N.
Y = |
С50ЕССС9 |
64443В0А |
1C974F40 |
1С94Е500 |
FA8214FC |
|
9В1В5ЕС5 |
2АА1201А |
001ЕА099 |
FE90D01D |
F32C6B43 |
|
323F0812 |
42АВЕ843 |
09F926BB |
9338А841 |
5DEF2EF6 |
|
E709E3BD |
515B5D86 |
C3ED4B7F |
C15FA876 |
26Е8Е9С7 |
|
0E557D5B |
A8E96D7C |
B55FBF41 |
37F601FF |
47В7СССВ |
|
6BED4407 |
6F8E9805 |
42Е37105 |
522Е7184 |
42A717DF |
|
Е89А6В62 |
7В6Е60В7 |
|
|
|
Третя довір на сторона обчислює особистий ключ підпису X як:
X = Y d mod N =
A763FA4 |
3895CFDD |
D80627A6 |
А8271250 |
97С184Е5 |
10F0075C |
48FCB0E7 |
F2885275 |
ААА32829 |
C08CF352 |
0F42F6FD |
C296DCE1 |
F50FBDED |
D5C33C7C |
63298C4F |
26C2CDEE |
11D927BA |
С6ЕС4А6А |
С022С063 |
1F30E880 |
07452397 |
7F3ACA8C |
422Е2461 |
3B7F3BB0 |
E61D04B8 |
0670А128 |
0ED7C8C1 |
A72D4B1C |
С566381В |
0665F83B |
70FD7158 |
0В7А6ЕЕС |
|
|
|
А.2 Числовий приклад механізму цифрового підписування Guillou-Quisquater, описаного в розділі 9
У цьому прикладі використовувана геш-функція фіксована, відома всім об’єктам проблемної області і, отже, геш-ідентифікатори не вимагаються. Геш-атрибут створюється за допомогою SHA-1.
Параметри проблемної області, особистий ключ підпису та перевірковий ключ ті самі, що й у А.1.
А.2.1 Процес підписування
А.2.1.1 Процедура попереднього підпису
Підписувач виробляє рандомізатор, що є випадковим чи псевдовипадковим цілим числом К, 0 < К < N. У цьому прикладі використовується 1024-бітовий рандомізатор К.
|
В2045А19 |
83150F5B |
В04СВ524 |
2В566А37 |
6779F416 |
|
5C7F1673 |
029C1BFC |
05А84С60 |
Е401897А |
CEAD9DE5 |
|
C7D8108B |
95943332 |
FF6B20D3 |
004CCD40 |
36BDBB7E |
|
10DA755E |
B03720F0 |
5A0CDC53 |
66ЕВ4374 |
ВЕ091А80 |
|
6D339190 |
D2ADE1CD |
9E11EF4E |
A5FF6969 |
3D0EB942 |
|
BFCC333D |
F5FDD599 |
1D3B78A7 |
4868В0С6 |
381АЕА61 |
|
C24F3E05 |
2D8D9FFA |
|
|
|
Попередній підпис П обчислюють як: |
|
|
|
||
П- |
Kv mod N = |
|
|
|
|
|
15В35ВВ7 |
0DDD7ED8 |
0FAD7EDE |
A80F828E |
46B3F86D |
|
4EFB7E84 |
58562B6D |
6F1885D0 |
A02FD892 |
8838С128 |
|
В53ЕЕ703 |
FAC96534 |
6С18А714 |
17D12FD7 |
211С3956 |
|
B6AD1A15 |
F4399EB0 |
CC065E8F |
CC0039F3 |
E13A8EFE |
|
5FB384CC |
D0190FA9 |
DC995DEC |
BB07947F |
72124D7B |
|
90444ЗЗС |
7А416В62 |
99297387 |
0174FB6A |
94A8FA8B |
|
1CBD7E0A |
2780DFD8 |
|
|
|
А.2.1.2 Гэтування повідомлення
У цьому прикладі за повідомлення береться такий текст:
М: This is a test message!
А.2.1.3 Обчислювання свідоцтва
Свідоцтво в цьому прикладі утворить першу частину підпису. Перша частина R підпису: R = геш-атрибут для П || М ~
42AF9098 F1596D17 ЕАС6ЕА31 36E7D9F3 30F8E9FB
А.2.1.4 Обчислювання призначення
Призначення Тдорівнює R, що є цілим додатнім числом: Т = R.
А.2.1.5 Обчислювання другої частини підпису
Другу частину підпису S обчислюють у такий спосіб: S = K-XTmodN =
B1FAF642 |
59F99E7A |
В32029А6 |
1FDEE247 |
F068853F |
80C6FF87 |
9FB07983 |
А61С047В |
34СЕЕ1С8 |
F69FF97B |
020F0B6C |
F37E4A85 |
05EAEF00 |
01Е825Е5 |
8B8F3438 |
0C332BF5 |
B3D47E5F |
C654747F |
E1289D61 |
061F124В |
С19ЕВВ38 |
D466970C |
39СЕС404 |
7O3FB359 |
А0019692 |
F968F760 |
72F2D6F5 |
0CD75C73 |
1D9EEE7F |
EFFB6F98 |
E80BD095 |
5D00C051 |
|
|
|
Підпис S складається з двох частин (R, S).
А.2.2 Процес перевіряння
Перевірювачу доступні значення таких елементів даних:
N, V, Y, М, S = (R, S).
А.2.2.1 Відновлювання призначення
Призначення Т дорівнює першій частині підпису R:
Т = R.
А.2.2.2 Повторне обчислювання попереднього підпису
Перевірювач робить повторне обчислювання значення П = Y1 ■ Svmod N попереднього підпису.
П = YT-SvmodN.
Примітка. Якщо (YT mod N) і (Sy mod .V) обчислюють окремо, їх подають як:
Уг mod N =
ЗС18САА0 |
339ED6CA |
6C80AF2C |
201481C1 |
74054C22 |
А8314537 |
0B8C6DF1 |
92766BC4 |
C3FD8C14 |
76EDD630 |
Е02ЕЗЗЕ8 |
4F557C86 |
A51FE7B5 |
9769CF40 |
98E34D29 |
111E9BF0 |
82825727 |
85B047F3 |
82F51DB4 |
51558F87 |
FE5FAA6F |
C1C45803 |
77AC051D |
85A094BD |
65472145 |
4618DECB |
EC2B58FF |
891DC06F |
D202E815 |
1A39ACA5 |
8D5C60D9 |
419695E7 |
|
|
|
Sv mod N = |
|
|
|
|
A8E6DDCF |
74D3C94D |
23F5FDE0 |
820431B4 |
FA51F3D9 |
150D5CDE |
DB0692A0 |
735FD729 |
BCAC0825 |
7CA19BA1 |
565F03BA |
7849B538 |
B9BF1797 |
5473FC28 |
299F0F3C |
04C3EE35 |
E31BFA2C |
A17F1781 |
0488F988 |
05439C3E |
7B8BE70C |
F027401D |
786DAC48 |
AE2507F5 |
30EC01C7 |
1090504D |
9BD82673 |
CD472405 |
8EF34697 |
21F90D3F |
1E2DD798 |
50AC0090 |
|
|
|
А.2.2.3 Повторне обчислювання свідоцтва і перевіряння свідоцтва
Свідоцтво повторно обчислюють як геш-атрибут:
ГІ = YT ■ Sy mod N И М = R.
Повторно обчислене свідоцтво її = YT- Sv mod N збігається з відновленим свідоцтвом R.
А.З Числовий приклад цифрових підписів з коротким призначенням, описаним у розділі 10