Lehrstuhl Sicherheit in Pervasiven Systemen

Werbung
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  23  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  30  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
Herunterladen