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 3526RFC 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:

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