Diffie-Hellman kulcscsere.
Alice és Bob a Diffie-Hellman kulcscsere segítségével oszt meg titkokat. Prímszámokból indulnak ki, privát kulcsokat választanak, nyilvános kulcsokat generálnak és osztanak meg, végül pedig közös titkos kulcsot állítanak elő.
A tesztprogram megadja a p és g prímszámokat.
Alice választ egy a privát kulcsot, amely nagyobb 1-nél és kisebb p-nél. Bob ugyanígy választ egy b privát kulcsot.
Alice kiszámítja az A nyilvános kulcsot.
A = gᵃ mod p
Ugyanazt a p-t és g-t használva Bob is kiszámítja a B nyilvános kulcsot a b privát kulcsából.
Alice és Bob kicserélik egymással a nyilvános kulcsaikat. Alice kiszámítja az s titkos kulcsot.
s = Bᵃ mod p
Bob kiszámítja:
s = Aᵇ mod p
A számítások eredménye ugyanaz! Alice és Bob mostantól osztozik az s titkon.
A feladat egyik lehetséges megoldása, hogy megírod a saját moduláris hatványozó függvényedet. Ha többet szeretnél megtudni róla, nézd meg a következő oldalt.
Sok implementáció nem működik a bemenetek teljes tartományán. Vannak további opcionális tesztek, amelyek segítenek biztosítani, hogy minden érvényes bemenet érvényes eredményt adjon.
A bónusztesztek futtatásához távolítsd el a #[ignore] jelzőt, és futtasd a teszteket
a big-primes feature bekapcsolásával, így:
$ cargo test --features big-primes
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Rust nyelvet 99 feladat segítségével, valódi emberi mentorálással, mindez ingyen.