Algoritm tavsifi
Aytaylik, ikkita abonent bor: Elis va Bob. Ikkala abonent ham ikkita g va p raqamni {\displaystyle g}bilishadi va {\displaystyle p}ular sir emas va boshqa manfaatdor tomonlarga ham ma'lum bo'lishi mumkin. Boshqa hech kimga noma'lum bo'lgan maxfiy kalitni yaratish uchun ikkala abonent ham katta tasodifiy raqamlarni yaratadilar: Elis-raqam{\displaystyle a}, bob-raqam {\displaystyle b}. Keyin Elis bo'linishning qolgan qismini hisoblab chiqadi.
A = ga mod p (1)
va uni bobga yuboradi va bob bo'linishning qolgan qismini hisoblab chiqadi:
B = gb mod p (2)
va Elisga xabar beradi. Hujumchi ushbu ikkala qiymatni ham olishi mumkin, ammo ularni o'zgartirmasligi mumkin (ya'ni, uzatish jarayoniga aralashish imkoniyati yo'q).
Ikkinchi bosqichda Elis, mavjud bo'lgan a {\displaystyle a}va tarmoq orqali olingan narsalarga asoslanib B {\displaystyle B}B Bqiymatini hisoblab chiqadi:
Ba mod p = gab mod p (3)
Bob mavjud bo’lgan b va tarmoq orqali olingan ma’lumotlarga asoslanib A qiymatini husoblab chiqadi:
Ab mod p = gab mod p (4)
Ko'rib turganingizdek, Elis va Bob bir xil raqamga ega bo'lishdi.
K = gab mod p (5)
Ular buni maxfiy kalit sifatida ishlatishlari mumkin, chunki bu yerda tajovuzkor (3) yoki (4) ni ushlab ga mod p turilgan va agar raqamlari bo’lsa, yetarlicha katta tanblangan holda hisoblashning deyarli hal qilinmaydigan muammosiga duch keladi. Algoritmning ishlashi rasmda ko’rsatilgan.
Algoritm ishlayotganda har bir tomon:
Tasodifiy natural sonni hosil qiladi a — shaxsiy kalit
Masofaviy tomon bilan birgalikda ochiq p va g parametrlarni o’rnatadi.
Shaxsiy kalit ustidagi konvertatsiya yordamida a ochiq kalitni hisoblab chiqadi.
A = ga mod p
Ochiq kalitlarni uzoq tomon bilan almashtiradi.
Masofaviy tomonning ochiq kaliti B va uning shaxsiy kaliti a yordamida umumiy k maxfiy kalitini hisoblab chiqadi
Amaliy dasturlarda a va b uchun 10 100 va p 10 300 tartib raqamlari ishlatiladi. G raqami katta bo'lishi shart emas va odatda birinchi o'ntalik ichida muhim ahamiyatga ega.
Misol
Eva - kriptanalizator. U bob va Elisning yo'nalishini o'qiydi, lekin ularning xabarlari tarkibini o'zgartirmaydi..
s = секретный ключ. s = 2
g = первообразный корень по модулю р. g = 5
p = открытое простое число. p = 23
a = секретный ключ Алисы. a = 6
A = открытый ключ Алисы. A = ga mod p = 8
b = секретный ключ Боба. b = 15
B = открытый ключ Боба. B = gb mod p = 19
Alice
|
Biladi
|
Bilmaydi
|
p = 23
|
| |
|