109
Shuningdek DSS uchinchi shaxs tomonidan imzoning to‘g‘riligi
va unga
bog‘liq ma’lumotlarning to‘g‘riligini tekshirish maqsadida ham ishlatilishi
mumkin.
Bu standartda akslantrishlar juftligini imzo deb
ataluvchi raqamli qiymatni
yaratish va tekshirish uchun qo‘llaydigan ochiq kalit sxemasi qabul qilinadi.
Xesh-algoritm sifatida standart SHA-1 algoritmini qo‘llash ko‘zda tutiladi.
DSS diskret logarifmlarni hisoblash murakkabligiga asoslanadi va El-Gamal
va Schnorr algoritmlari sxemasiga asoslanadi.
DSA algoritmi quyidagi parametrlardan foydalanadi:
Foydalanuvchilar guruhining umumiy komponentalari. Foydalanuvchilarning
katta guruhi uchun umumiy bo‘lishi mumkin bo‘lgan va ochiq bo‘lgan 3 ta p, q, g
parametrlar mavjud. 160 bitli q tub soni tanlanadi, ya’ni 2
159
160
.
Uzunligi 512 va 1024 bitlar orasida bo‘lgan p tub soni tanlanadi. p tub soni
shunday bo‘lishi kerakki, q soni p-1 ning bo‘luvchisi, ya’ni
1
2
2
L
L
p
bu yerda
512
(
1) /
mod
p
q
g
h
p
(bu yerda 1
Bu sonlarni bilgan holda yopiq kalitni tanlaydi va ochiq kalitni yaratadi.
Jo‘natuvchining yopiq kaliti:
x tasodifiy yoki psevdotasodifiy son tanlanadi (0
teng. x yopiq kalit hisoblanadi.
Jo‘natuvchining ochiq kaliti:
Ochiq kalit yopiq kalitdan
mod
x
y
g
p
ko‘rinishida hisoblanadi. y ochiq kalit
mavjud holda uning g asos bo‘yicha diskret logarifmi bo‘lgan x ni hisoblab chiqib
aniqlash mumkin emas.
Elektron raqamli imzo qo‘yish:
Har bir elektron raqamli imzo uchun yagona (unikal) bo‘lgan k tasodifiy yoki
psevdotasodifiy butun son tanlanadi (0
Xabarimiz M bo‘lsin. H(M)-xabarning xesh qiymati. Bu son ko‘rinishida
bo‘ladi. Xesh funksiya o‘zgarmas uzunlikdagi qiymatni chiqaradi.
110
1-imzo: r = (g
k
modp)modq.
2-imzo: s = [k
1
·(H(M) + x*r)]modq.
M(r, s) – imzo. Elektron raqamli imzo har doim juft bo‘ladi.
Elektron raqamli imzoni tekshirish:
Qabul qiluvchi imzoni tekshirishni quyidagi
formulalar orqali amalga
oshiradi. U umumiy ochiq kalitning, jo‘natuvchi ochiq kalitining va qabul qilingan
ma’lumot xesh qiymat funksiyasi bo‘lgan
v kattalikni yaratadi. Agar bu kattalik
imzodagi
r kattalikga teng bo‘lsa, ya’ni
v=r, u holda imzo to‘g‘ri hisoblanadi.
s ni teskarisini hisoblaymiz.
w = s
1
modq.
u1 = [ H(M)·w ] modq.
u2 = r ·w modq.
v = [ (g
1
u
· y
2
u
) modp ] modq.
Endi shu yuqorida aytilganlarga 1 ta misol keltiramiz.
Yuqoridagi algoritmga asosan sonlarni tanlaymiz.
p=23, q=11, h=13 (13<23-1 ya’ni
22 /11
13
mod 23
8 1
shart qanoatlantiriladi),
yopiq kalitimiz x=9 bo‘lsin deb tanlab olamiz.
g=
22 /11
13
mod 23
8
.
9
4 2
mod
8 mod 23 8 (8 ) mod 23
9
x
y
g
p
.
Elektron raqamli imzo qo‘yish:
k=7, H(M)=6
7
3 2
1
1
1
1
(
mod ) mod
(8 mod 23) mod11 (8 (8 ) mod 23) mod11
(8 36 mod 23) mod11 12 mod11 1.
(
( (
)
)) mod
(7 (6 9 1)) mod11 7
15 mod11 15 7 mod11
15 8 mod11 120 mod11 (11 10 10) mod11 10.
k
r
g
p
q
s
k
H M
x r
q
M(r, s)=(1,10) – imzo.
Elektron raqamli imzoni tekshirish:
s ni teskarisini hisoblaymiz.
111
1
1
1
2
5
10
3 3
3
mod
10
mod11
10.
1
(
(
)
) mod
(6 10) mod11
5.
2
(
) mod
1 10 mod11
10.
(
mod
) mod
(8
9 mod 23) mod11
(16 9 (9 ) mod 23) mod11
(6 16 mod 23) mod11
6 2 mod11
1.
u
u
w
s
q
u
H M
w
q
u
r w
q
v
g
y
p
q
v=r chiqdi haqiqatdan imzo to‘g‘ri.
1024>2>