Diffieho-Hellmanova výměna klíčů

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Diffieho-Hellmanova výměna klíčů (zkráceně D-H) je kryptografický protokol, který umožňuje přes nezabezpečený kanál vytvořit mezi komunikujícími stranami šifrované spojení, bez předchozího dohodnutí šifrovacího klíče. Výsledkem tohoto protokolu je vytvoření symetrického šifrovacího klíče, který může být následně použit pro šifrovaní zbytku komunikace. Výhodou je, že případný útočník odposlouchávající komunikaci tento klíč nezachytí. Klíč je zkonstruován všemi účastníky komunikace a nikdy není poslán v otevřené formě. Nevýhodou tohoto protokolu je bezbrannost proti útoku Man in the middle, protože neumožňuje autentizaci účastníků. Tento protokol bez kombinace s jinými metodami je tedy vhodný pouze tam, kde útočník nemůže aktivně zasahovat do komunikace. V příkladu je ukázáno vytvoření zabezpečeného spojení mezi dvěma účastníky. Počet účastníků však není omezen.

Historie[editovat | editovat zdroj]

Diffieho–Hellmanův protokol distribuce klíčů byl vynalezen v roce 1976 Whitfieldem Diffiem a Martinem Hellmanem, svou roli zde ovšem sehrál i Ralph Merkle, John Gill navrhl aplikování problému diskrétního logaritmu. Jednalo se o první praktické využití metody vytvoření tajných sdílených informací na nechráněném komunikačním kanálu. Jako první tento protokol vymyslel Malcolm Williamson z Government Communications Headquarters z Velké Británie o několik let dříve, ale společnost GCHQ se vzhledem ke své podstatě tajné vládní instituce rozhodla objev utajit až do roku 1997, kdy už to nemělo žádný vliv.

Princip dohody klíče[editovat | editovat zdroj]

Diffieho-Hellmanův protokol
Alice Bob Veřejnost
Kalkulace Tajné Kalkulace Tajné Veřejné
a b p, g
A \equiv g^a \mod p A
B \equiv g^b \mod p B
s \equiv B^a \mod p s = s \equiv A^b \mod p s

Principiálně se problém opírá o složitost výpočtu diskrétního logaritmu.

  • Jeden z účastníků komunikace zveřejní prvočíslo p, konečnou grupu G=(Z_{p}^*; \cdot) a generátor g této grupy.
  • První účastník si zvolí číslo a, které bude sloužit jako jeho soukromý klíč a spočte svůj veřejný klíč A jako A = g^a  \mod  p. Ten zveřejní.
  • Druhý účastník si zvolí číslo b jako soukromý klíč a spočítá veřejný klíč B, B = g^b \mod p.
  • Své veřejné klíče zveřejní
  • Nyní první účastník může spočítat s \equiv B^a \mod p, druhý účastník může spočítat s' \equiv A^b \mod p.
  • Čísla s, s' jsou totožná, neboť s' = A^b \mod p = (g^a)^b \mod p = g^{ab} \mod p = (g^b)^a \mod p = B^a \mod p = s.

Toto číslo s nemůže nikdo zjistit, třetí strana by musela tipovat čísla a, b a doufat, že správné číslo uhodne.

Související články[editovat | editovat zdroj]