ECIES

ECIES (zkratka anglického Elliptic Curve Integrated Encryption Scheme ) je hybridní šifrovací schéma postavené nad eliptickými křivkami.

Schéma navrhl v roce 2001 Victor Shoup a je založeno na obtížnosti Diffieho-Hellmanovy úlohy, na které je založena i známější samostatná Diffieho-Hellmanova dohoda na klíči. Stalo se součástí různých norem, mj. ANSI X9.63, IEEE 1363a, ISO 18033-2 a SECG SEC 1.

Parametry schématu

  • funkce pro odvození klíče KDF
  • autentizační funkce MAC
  • symetrická šifra s šifrovacím postupem E a dešifrovacím postupem D
  • konečné těleso F p {\displaystyle \mathbb {F} _{p}} s prvočíselným počtem prvků
  • eliptická křivka Y 2 = X 3 + a X + b {\displaystyle Y^{2}=X^{3}+aX+b} nad tímto tělesem
  • bod P E ( F p ) {\displaystyle P\in E(\mathbb {F} _{p})} o prvočíselném řádu n {\displaystyle n} , h = E ( F p ) n {\displaystyle h={\frac {\mid E(\mathbb {F} _{p})\mid }{n}}}

Vytvoření klíčového páru

Alice si zvolí soukromý klíč d A { 1 , , n 1 } {\displaystyle d_{A}\in \{1,\dots ,n-1\}} a zveřejní svůj veřejný klíč E K A = d A P {\displaystyle EK_{A}=d_{A}P} .

Šifrování

Odesílatel zprávy m { 0 , 1 } {\displaystyle m\in \{0,1\}^{*}} , zkombinuje symetrickou šifru, znalost veřejného klíče příjemce a šifru ElGamal následujícím způsobem:

  1. zvolí náhodné číslo k { 1 , , n 1 } {\displaystyle k\in \{1,\dots ,n-1\}}
  2. spočítá R = k P {\displaystyle R=kP} a Z = h k E K A {\displaystyle Z=hk\cdot EK_{A}}
  3. spočítá symetrické klíče k 1 k 2 = K D F ( Z x ) {\displaystyle k_{1}\Vert k_{2}=KDF(Z_{x})} , kde Z x {\displaystyle Z_{x}} je souřadnice x {\displaystyle x} bodu Z {\displaystyle Z}
  4. spočítá C = E k 1 ( m ) {\displaystyle C=E_{k_{1}}(m)} a T = M A C k 2 ( C ) {\displaystyle T=MAC_{k_{2}}(C)}
  5. odešle trojici ( R , C , T ) {\displaystyle (R,C,T)}

Dešifrování

Příjemce má k dispozici trojici ( R , C , T ) {\displaystyle (R,C,T)} a svůj soukromý klíč d A {\displaystyle d_{A}} . Jeho postup je:

  1. spočítá Z = h d A R {\displaystyle Z=hd_{A}R}
  2. spočítá dva symetrické klíče k 1 k 2 = K D F ( Z x ) {\displaystyle k_{1}\Vert k_{2}=KDF(Z_{x})}
  3. ověří, že T = M A C k 2 ( C ) {\displaystyle T=MAC_{k_{2}}(C)}
  4. spočítá m = D k 1 ( C ) {\displaystyle m=D_{k_{1}}(C)}

Odkazy

Reference

V tomto článku byly použity překlady textů z článků ECIES na ruské Wikipedii a Elliptic Curve Integrated Encryption Scheme na německé Wikipedii.


Externí odkazy

  • SHOUP, Victor. A proposal for an ISO standard for public key encryption [online]. Victor Shoup, 2001. PDF, 384 kB. Dostupné online. (anglicky)