Kurzusok
/
Python
Python
/
Feladatok
/
Diffie-Hellman
Diffie-Hellman

Diffie-Hellman

Könnyű

Utasítások

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ő.

0. lépés

A tesztprogram megadja a p és g prímszámokat.

1. lépés

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.

2. lépés

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.

3. lépés

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.

Használjam itt a random-ot vagy a secrets-et?

A Python 3.6 óta két különböző modul áll rendelkezésre „véletlen” számok előállítására:

A random nevű modul pszeudovéletlen, ami azt jelenti, hogy nem állít elő valódi véletlenszerűséget, hanem egy olyan algoritmust követ, amely szimulálja a véletlenszerűséget. Mivel ezeket a „véletlen számokat” egy ismert algoritmus állítja elő, valójában nem véletlenek. Ezért a random modul nem igazán alkalmas kriptográfiai célokra, és nem is szabad használni, pont azért, mert pszeudovéletlen.

A secrets nevű modul kriptográfiailag erős „véletlen” számokat állít elő, amelyek nagyobb biztonságot nyújtanak, ami a kriptográfiához szükséges. A legszigorúbb értelmezés szerint ezek is pszeudovéletlenek, de garanciát adnak arra, hogy az általuk előállított számok teljesen kiszámíthatatlanok.

Mivel ez csak egy gyakorlófeladat, nyugodtan használhatod a random modult, de jegyezd meg, hogy valódi kriptográfiára használva nagyon nem lenne biztonságos.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Diffie-Hellman feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.