Elliptic Curve Integrated Encryption Scheme

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Das Elliptic Curve Integrated Encryption Scheme (ECIES) ist ein hybrides Verschlüsselungsverfahren, dem elliptische Kurven zugrunde liegen. Als Hybridverfahren kombiniert es ein asymmetrisches Verfahren, das zum Versenden eines symmetrischen Schlüssels benutzt wird, mit einem symmetrischen Verschlüsselungsverfahren, das mit diesem symmetrischen Schlüssel die Nachricht verschlüsselt. ECIES ist im Random-Oracle-Modell sicher gegen Chosen-Ciphertext-Angriffe.

Einrichtung des Schema[Bearbeiten]

Folgende Hilfsmittel werden benötigt:

  • KDF (Key Derivation Function): eine kryptographische Hashfunktion, die Schlüssel beliebiger Länge erzeugen kann
  • MAC (Message Authentication Code)
  • Ein symmetrisches Verschlüsselungsverfahren mit Verschlüsselungsalgorithmus E und Entschlüsselungsalgorithmus D

Systemparameter[Bearbeiten]

  • \Bbb F_{p}, p Primzahl
  • Elliptische Kurve E : Y^{2}=X^{3}+aX+b über dem Körper \Bbb F_{p}
  • P \in E(\Bbb F_{p}) mit ord(P)= n prim
  • h = \frac{\mid E(\Bbb F_{p}) \mid}{n}

Schlüsselerzeugung[Bearbeiten]

Ein Teilnehmer A wählt einen geheimen Schlüssel d_A \in \{1,...,n-1\} zufällig und berechnet daraus seinen öffentlichen Schlüssel EK_A = d_A P.

Verschlüsselung[Bearbeiten]

Um eine Nachricht m\in\{0,1\}^{*} mit einem öffentlichen Schlüssel EK_A zu verschlüsseln, wird eine ElGamal-Verschlüsselung in einer elliptischen Kurve mit einem symmetrischen Verfahren kombiniert.

  1. Wähle eine Zufallszahl  k\in\{1,...,n-1\}
  2. Berechne R=kP und Z=hk \cdot EK_A
  3. Bestimme die symmetrischen Schlüssel k_1||k_2 = KDF(Z_x). Z_x ist die x-Koordinate von Z
  4. Berechne C = E_{k_1}(m) und T = MAC_{k_2}(C)
  5. Sende (R, C, T)

Entschlüsselung[Bearbeiten]

Um ein Chiffrat (R, C, T) mit einem geheimen Schlüssel d_A zu entschlüsseln, werden die folgenden Schritte durchgeführt.

  1. Berechne Z=hd_A R
  2. Bestimme die beiden Schlüssel k_1||k_2 = KDF(Z_x)
  3. Prüfe ob T = MAC_{k_2}(C) ist
  4. Erhalte m = D_{k_1}(C)

Fazit[Bearbeiten]

ECIES arbeitet korrekt, wenn Z korrekt berechnet wird. Da hd_A R = hk \cdot EK_A = h d_A k P ist, ist dies validiert.

Quellen[Bearbeiten]