******************** Diffie - Hellman ********************
Dříve, než spolu začnou dva lidé komunikovat, musí se dohodnout na
velkém
prvočísle Q a na čísle @ (alfa), kde @ je primitivní modulo mod Q.
Čísla @ a Q
může znát každý, nejsou tajná. Jeden člověk, řekněme Alice, vybere
náhodné
číslo X(a). Toto číslo uloží jako tajné a podle následujícího vzorce
vypočítá
číslo Y(a):
Ya=@^Xa mod Q
Alice toto výsledné číslo odešle svému partneru Bobovi. Mezitím si Bob
vybral své
vlastní náhodné číslo Xb a odpovídající číslo Yb poslal Alici:
Yb=@^Xb mod Q
Alice teď vypočítá číslo Kab, jejich sdílený klíč, a to podle
následujícího
vzorce:
Kab=Yb^Xa mod Q
Mezitím si Bob vypočítá to stejné číslo Kab a to podle vzorce:
Kab=Ya^Xb mod Q
Číslo Kab je bezpečné, protože jeho výpočet vyžaduje, aby jste znali
čísla Xa,
Xb. Alice zná číslo Xa a Bob zná číslo Xb. Ten, kdo by odposlouchával
jejich linku,
by znal pouze čísla Ya, Yb.Vypočítat číslo Xa z čísla Ya nebo Xb z
čísla Yb je
velmi obtížný problém.
Zkusme si tento příklad předvést na reálných číslech. Řekněme, že jsme
se
rozhodli použít tato čísla:
@=5
Q=563
Alice si vybrala číslo 9
Xa=9
Potom Bobovi odeslala číslo 78
Ya= 5^9 mod 563 = 78
Bob si vybral číslo 14
Xb=14
Alici pak poslal číslo 534
Yb=5^14 mod 563 = 534
Alice pak vypočítala číslo Kab=117
Kab=534^9 mod 563 = 117
Bob vypočítal číslo Kab=117
Kab=78^14 mod 563 = 117
Alice a Bob teď spolu mohou komunikovat pomocí šifrovacího klíče 117.
******************** END Diffie - Hellman ***************
Nyní další příklad:
Vybrané prvočíslo Q=33579349
Vybrané číslo @=11
Tajné číslo Alice Xa=13
Ya=@^Xa mod Q
Ya=11^13 mod 33579349 = 34522712143931 mod 33579349 =
18492474 (tedy
34522712143931 : 33579349 = 1028093 a zbytek po dělení je
18492474)
Ya=18492474
Yb=@^Xb mod Q
Yb=11^7 mod 33579349 = 19487171 mod 33579349 = 19487171 (tedy
19487171 : 33579349
= 0 a zbytek po dělení je 19487171)
Yb=19487171
Kab=Yb^Xa mod Q
Kab=19487171^13 mod 33579349 =
58443248730331016423376362220113545242612980425266212714921832216993762011119642250537592395411
mod 33579349 = 17971067
Kab= 17971067
Alice má nyní symetrický klíč 179771067.
Tajné číslo Boba Xb=7
Yb=@^Xb mod Q
Yb=11^7 mod 33579349 = 19487171 mod 33579349 = 19487171 (tedy
19487171 : 33579349
= 0 a zbytek po dělení je 19487171)
Yb=19487171
Kab=Ya^Xb mod Q
Kab=18492474^7 =
739545872170936885676040832101517220417381481949824 mod 33579349
= 17971067
Kab=17971067
Bob má nyní symetrický klíč 17971067.