Elliptic Curve Cryptosystem ( ECC ) 1 ECC-Kryptosystem ECC jetzt √ kryptographische Funktionen encryption / decryption ( Basisoperation: kP ) mathematische Operationen in GF(p), GF(2n) Addition; Subtraktion später Multiplikation ; Division Hardware-Implementierung CMOS-Technologie: elementare Funktionen als Gatter aus Hersteller-Biblothek 2 2 Outline • was ist eine EC ? • Operationen mit EC-Punkten: • EC-Punkt-Verdopplung 2P • EC-Punkt-Addition P+Q • EC-Punkt-Multiplikation kP • Kryptographische Operationen • • • • Verschlüsselung Entschlüsselung Signieren Verifizieren kP 2 x kP 3 Outline • was ist eine EC ? • Operationen mit EC-Punkten: • EC-Punkt-Verdopplung 2P • EC-Punkt-Addition P+Q • EC-Punkt-Multiplikation kP • Kryptographische Operationen • • • • Verschlüsselung Entschlüsselung Signieren Verifizieren kP 2 x kP 4 y2=x3+ax+b y2+xy=x3+ax2+b EC: 300 y2=x3+x+1 200 100 0 0 2 4 6 reelle Zahlen !!! 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 -100 -200 5 -300 Kryptographie => keine reelle Zahlen !!! sondern: Elemente aus GF(p), z.B. GF(5) 6 EC: y2=x3+x+1 x y2 y2 mod 5 0 1 1 3 2 11 3 31 4 69 1 3 1 1 4 y - y -y mod 5 1 -1 1 2 -1 --1 -1 -2 4 -4 4 3 EC-Punkte (0,1) (0,4) (1,∞) (2,1) (3,1) (4,2) (2,4) (3,4) (4,3) 5 300 4 200 3 9 EC-Punkte: „order“ of EC r=9 EC über GF(5) 2 1 100 0 -100 -200 -300 0 0 1 2 3 4 5 EC: reelle Zahlen 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 7 Outline • was ist eine EC ? • Operationen mit EC-Punkten: • EC-Punkt-Verdopplung 2P • EC-Punkt-Addition P+Q • EC-Punkt-Multiplikation kP • Kryptographische Operationen • • • • Verschlüsselung Entschlüsselung Signieren Verifizieren kP 2 x kP 8 EC: y2=x3+x+1 über GF(5) EC-Punkte A1=(0,1) A2=(0,4) A9=(1,∞)=O A3=(2,1) A4=(2,4) A5=(3,1) A6=(3,4) A7=(4,2) A8=(4,3) 5 4 A2 A4 A6 A8 A7 3 2 A1 A3 A5 1 0 0 1 2 3 4 5 • Operationen mit EC-Punkten: • EC-Punkt-Addition P+Q: A3+A8=? • EC-Punkt-Verdopplung 2P: A1+A1=? Formeln • EC-Punkt-Multiplikation kP: A1+A1+...+A1= kA1=? eine Reihe von Punkt-Additionen und Punkt-Verdopplungen 9 „P+Q“- und „2P“-Formeln Input : P x1 , y1 , Q x2 , y 2 Output : S x3 , y3 P Q EC-Punkt-Addition „P+Q“ wenn P Q : y y1 1) 2 x2 x1 EC-Punkt-Verdopplung „2P“ wenn P Q : 3x a 1 2 y1 2 2) x3 2 x1 x2 3) y 3 y1 x1 x3 10 „P+Q“- Beispiel 5 EC-Punkte 4 A1=(0,1) A2=(0,4) A9=(1,∞) A3=(2,1) A4=(2,4) A5=(3,1) A6=(3,4) A7=(4,2) A8=(4,3) A5+A8= ? 1) A2 A4 A6 A8 A7 3 2 A1 A3 A5 1 0 0 1 2 3 4 5 y 2 y1 3 1 mod 5 2 x2 x1 4 3 2) x3 2 x1 x2 2 2 3 4 mod 5 2 3) y 3 y1 x1 x3 1 23 2 mod 5 1 A5+A8= (2,1)=A3 11 „2P“- Beispiel 5 EC-Punkte 4 A1=(0,1) A2=(0,4) A9=(1,∞) A3=(2,1) A4=(2,4) A5=(3,1) A6=(3,4) A7=(4,2) A8=(4,3) A1+A1= ? A2 A4 A6 A8 A7 3 2 A1 A3 A5 1 0 0 1 2 3 4 5 3 x1 a 3 0 1 1 1) mod 5 mod 5 3 2 y1 2 1 2 2 2) x3 2 x1 x2 32 0 0 mod 5 4 3) y 3 y1 x1 x3 1 30 4 mod 5 2 A1+A1= (4,2)=A7 12 „kP“- Beispiele 3∙A1=2∙A1+A1=A7+A1=A3 4∙A1=2∙(2∙A1)=2∙A7=A6 5∙A1=4∙A1+A1=A6+A1=A5 6∙A1=4∙A1+2∙A1=A4 7∙A1=4∙A1+2∙A1+A1=A8 8∙A1=2∙(2∙(2∙A1))=A2 9∙A1=A9=O 10∙A1=A9+A1=O+A1=A1 13 EC und Krypto-Operationen EC-Parameter: y2=x3+x+1 order ein festgelegtes EC-Punkt G (z.B. G=A1) key generation: privat_key: Zufallszahl k public_key: k∙G=P und alle EC-Parameter encryption:( R =d∙G ; S =d∙P+M ) decryption: ( R; S)→ M=S-k∙R=(x,y) d ist Zufallszahl M=(x,y), x ist message 14 Algorithm „double-and-add“ k=1710=100012 17 P =( 1 16P+0 8P+0 4P+0 2P+ 1 P) Zu berechnen ist : Q=k P 1. Q=O; R=P 2. for i=0 to (key_length-1) 3. if keyi = 1 then Q = Q+R else S = Q+R 4. 5. R = 2P Output Q // “dummy operation” 15 Hausaufgabe: 1) berechnen k: k=(MatrikelNr mod 9) if (MatrikelNr mod 9)=0 k=7 2) berechnen: k∙A3=? 16