6Algoritmus Diffie-Hellmann

Diffie-Hellmanov algoritmus (D-H algoritmus) je kryptografický protokol, ktorý umožňuje vytvoriť medzi komunikujúcimi stranami šifrované spojenie cez nezabezpečený kanál, a to bez nutnosti si dopredu dohodnúť šifrovací kľúč. Výsledkom algoritmu je symetrický šifrovací kľúč, ktorý môže byť následne použitý na šifrovanie zvyšnej komunikácie.

Výhodou je, že prípadný útočník odpočúvajúci komunikáciu tento kľúč nezachytí. Kľúč je totiž vytvorený všetkými účastníkmi komunikácie a nikdy nie je poslaný v otvorenej forme. Resp. tento algoritmus zaručí výmenu spoločného kľúča takým spôsobom, že ak túto komunikáciu odpočúva útočník, potom nie je schopný spoločný kľúč na základe odpočutých informácií zrekonštruovať.

Nevýhodou tohto protokolu je bezbrannosť proti útoku MITM (Man in the Middle), pretože neumožňuje autentizáciu účastníkov. Tento protokol bez kombinácie s inými metódami autentizácie je teda vhodný iba tam, kde útočník nemôže aktívne zasahovať do samotnej komunikácie.

Princíp D-H algoritmu definovaný odporúčaniami RFC 2409, RFC 3526 a RFC 5114 je založený na umocňovaní čísiel (AB)C = (AC)B, resp. na modulárnej variante tohto vzorca (AB)C|m = (AC)B|m.

Veľkosť modulu potom špecifikuje typ skupiny. Obyčajne sa používajú skupiny 1, 2 a 5. Číslo skupiny udáva dĺžku kľúča - DH-1 (768 bitov), DH-2 (1024 bitov), DH-5 (1535 bitov), DH-14 (2048 bitov).

Výpočet výslednej hodnoty je veľmi jednoduchý (rýchly), ale len veľmi ťažko sa dá zistiť niektorá z hodnôt, ktorú pozná iba iný účastník. Tomuto princípu, na ktorom stojí bezpečnosť tohto algoritmu, sa hovorí problém diskrétneho logaritmu.

Komunikácia s využitím D-H algoritmu prebieha nasledujúcim spôsobom:

- Účastníci sa verejne dohovoria na použitom module m, resp. type skupiny a základe z.
- Každý z účastníkov si zvolí svoj exponent e (nesúdeliteľný s modulom m).
- Každý z účastníkov umocní modulárne základ na svoj exponent a výsledok pošle ďalšiemu účastníkovi.
- Algoritmus končí, keď je každý z pôvodných základov spracovaný každým účastníkom.

Princíp komunikácie troch účastníkov pomocou Diffie-Hellmanovho algoritmu