Zde je naše řešení.
Nejdříve se Alice s Bobem veřejně dohodnou na prvočíselném modulu a na generátoru.
V našem případě 17 a 3.
Potom si Alice vybere své soukromé náhodné číslo.
Řekněme, že 15 a spočítá (15. mocninu 3 modulo 17)
a výsledek pošle veřejně Bobovi.
Potom si Bob vybere své náhodné číslo.
Například 13 a spočítá (13. mocninu 3 modulo 17)
a výsledek pošle veřejně Alici.
A teď podstata finty.
Alice vezme Bobův veřejný výsledek a umocní ho svým tajným číslem
a tím získá sdílené tajemství. V tomto případě je to 10.
Bob vezme od Alice veřejný výsledek
a umocní ho svým soukromým číslem, čímž dostane stejné tajné číslo.
Všimněte si, že provedli stejné výpočty. I když to tak na první pohled nevypadá.
Co udělala Alice?
Číslo 12, které získala od Boba, bylo vypočteno jako (13. mocnina 3 modulo 17).
Takže její výpočet je jako (3 na 13 na 15 modulo 17).
A co Bob?
Číslo 6, které dostal od Alice, bylo vypočítané jako (15. mocnina 3 modulo 17).
Jeho výpočet lze tedy napsat jako (3 na 15 na 13 modulo 17).
Všimněte si, že provedli stejné výpočty s exponenty v jiném pořadí.
Pokud exponenty zaměníte, tak se výsledek nezmění.
Takže oba vypočítali 3 umocněnou oběma jejich soukromými čísly.
Bez jednoho ze soukromých čísel - 13 nebo 15, nebude moci Eve najít řešení.
A v tom je trik!
Eve mezi tím uvízla v řešení problému diskrétního logaritmu.
Pokud budou čísla dostatečně velká, tak můžeme říci,
že pro ni bude prakticky nemožné rozluštit šifru v rozumném čase.
Tento postup řeší problém výměny klíče.
Může být použit spolu s generátorem pseudonáhodných čísel tak,
aby šifroval zprávy mezi lidmi, kteří se nikdy nesetkali.