Diffieho–Hellmanův protokol s využitím eliptických křivek

Diffieho-Hellmanův protokol s využitím eliptických křivek (ECDH) je varianta Diffieho-Hellmanova protokolu, který využívá eliptických křivek. Jde o šifrovací protokol, který umožňuje dvěma stranám, které se v životě nesetkaly ani spolu nekomunikovaly, sdílet „tajné“ informace na nechráněném komunikačním kanálu (to jest na sdělovacím kanálu, přes který se posílají informace, například telefon). Tyto informace mohou být přímo použity jako klíč, nebo ještě lépe, na vytvoření jiného klíče, který může být použit k zašifrování další komunikace s použitím symetrické šifry.

Animovaný princip ECDH

Vytváření klíče editovat

Předpokládejme, že první účastník - Alice - chce vytvořit sdílený klíč s druhým účastníkem - Bobem, ale na jediném místě, kde spolu mohou komunikovat, se nachází špehové. Předně se musí dohodnout na parametrech (p, a, b, G, n, h), kde p je prvočíslo, kterým definujeme těleso, konstanty a, b z rovnice eliptické křivky, bod G na eliptické křivce, jeho řád n a kofaktor h, který udává podíl počtu prvků grupy bodů na eliptické křivce a řádu bodu G.

Nyní si každá strana musí zvolit své klíče, které se skládají ze soukromého klíče d (náhodně vybrané celé kladné číslo z intervalu [1,n-1]) a veřejného klíče Q, kde  . Alice tedy bude mít dvojici   Bob bude mít  . Aby tento protokol fungoval, strany si musí vyměnit veřejné klíče (Alice pošle Bobovi  , Bob pošle Alici  ).

Nyní může Alice nalézt bod Z,  , Bob může nalézt bod Z',  . Tyto body Z, Z' jsou totožné, neboť  .

Příklad editovat

  • Alice a Bob zvolí prvočíslo  , bod G[13;16], koeficienty  .
    •  , jde tedy o eliptickou křivku.
  • Alice zvolí  , spočítá  :
    •  
    •  
    •  
    • Alice získává souřadnice bodu  , tento bod posílá Bobovi.
  • Bob zvolí  , spočítá  :
    • Bob analogicky zdvojnásobí bod G, získá pomocný bod R, který opět zdvojnásobí.
    • Bob získává souřadnice bodu  , tento bod posílá Alici.
  • Alice nyní může nalézt bod Z:
    •  
  • Bob může nalézt bod Z':
    •  
  • Z=Z'

Pozn.: Byly zvoleny nevhodné koeficienty, stejně jako ostatní čísla, příklad je pouze ilustrační.

Bezpečnost editovat

Tento protokol je bezpečný, neboť se nezveřejnilo nic kromě veřejných klíčů, které nejsou tajné, a ani jedna strana nedokáže zjistit soukromý klíč té druhé, pokud by nevyřešila problém diskrétního logaritmu u eliptických křivek.

Veřejné klíče jsou buď neměnné (a shledané důvěryhodnými třeba pomocí certifikátů), nebo dočasné. Dočasné klíče nejsou nutně ověřené, takže pokud je ověření vyžadováno, je třeba jej zajistit jinými způsoby.

Diffieho-Hellmanova výměna klíčů je ale napadnutelná (může obsahovat zadní vrátka).[1]

Reference editovat