Verschlüsselung, Kryptografie (3,4 MByte)

Werbung
Client/Server-Systeme
Prof. Dr.-Ing. Wilhelm G. Spruth
WS 2007/2008
Teil 4
Verschlüsselung, Kryptographie
cs 0407 ww6
wgs 09-96
Aufgaben der Darstellungsschicht
(presentation Layer, Schicht 6)
•
Einheitliche Datenstrukturen
•
Datenkomprimierung
•
Verschlüsselung
•
Authentifizierung
•
Sicherheit
•
Namens/Directory - Dienste
•
Zeitdienste
cs 0416u ww6
wgs 07-99
Kryptographische Verfahren (1)
Zwei Kern-Anwendungen
• Geheimhaltung und Integrität von Daten
• Authentifizierung
Benutzer (Digitale Unterschriften)
Nachrichten
Zwei Verfahren
• Symmetrische Verfahren
Beispiele: DES (Data Encryption Standard), IDEA,
Blowfish, RC4, Rijndael AES (Advanced Encryption
Standard)
• Asymetrische Verfahren
Beispiel: RSA
cs0511 ww6
wgs 09-98
Kryptographische Verfahren (2)
Es sei
M
Ke
Kd
E
D
C
=
=
=
=
=
=
Nachricht (Klartext, Plaintext)
Schlüssel für Verschlüsselung
Schlüssel für Entschlüsselung
Chiffrieralgorithmus
Dechiffrieralgorithmus
Verschlüsselte Nachricht (Ciphertext)
Dann sei EKe eine Funktion von E und KeE
C = EKe (M)
und M = DKd (C)
mit
DKd (C) = DKd (EKe (M)) ;
Sender
D ist die Inverse zu E
Empfänger
Ke
Kd
C = EKe (M)
M
E
D
M
Algorithmen E und D sind öffentlich (allgemein bekannt), Ke
und Kd werden geheim gehalten.
cs0510 ww6
wgs 09-98
Symmetrische Verfahren
Sender
M
Unsicherer
Übertragungs
kanal
Encryption
Empfänger
Decryption
M
C = EK (M)
M = DK (C)
K
K
Sicherer Übertragungskanal
Verschlüsselung und Entschlüsselung mit identischem
Schlüssel K :
K = Ke = Kd
Problem: Der Schlüssel K muß über einen sicheren Kanal
ausgetauscht werden
Beispiele: DES (Data Encryption Standard), Triple DES, IDEA
Blowfish, Rijndael AES (Advanced Encryption Standard)
cs0512 ww6
wgs 09-98
Substition und Transposition
Eine Substitionschiffre erhält die Reihenfolge der
Symbole im Plaintext, verschlüsselt aber jedes
einzelne Symbol.
Eine Transpositionschiffre verändert die Reihenfolge
der Symbole, verschlüsselt sie aber nicht.
css0506 ww6
wgs 10-96
Caesar Chiffre
Julius Caesar « De Bello Gallico »
a
→
d
b
→
e
a t t a c k
c
→
.
.
.
→
f
d w w d f n
z
c
Monoalphabetische Substitution
Im Gegensatz zur Caesar Chiffre hat das Substitutionsalphabet eine irreguläre Reihenfolge:
abcdefghijklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm
a t t a c k
q z z q e a
26 ! = 4 x 1026 mögliche Chiffren
cs 0513 ww6
wgs 06-94
A
abcdefg
⋅⋅⋅⋅⋅⋅⋅ xyz
B
bcdefgh
⋅⋅⋅⋅⋅⋅⋅ yza
C
cdefghi
⋅⋅⋅⋅⋅⋅⋅ zab
D
⋅
⋅
⋅
⋅
Y
defghij
yzabcde
⋅⋅⋅⋅⋅⋅⋅ abc
⋅
⋅
⋅
⋅
⋅⋅⋅⋅⋅⋅⋅ vwx
Z
zabcdef
⋅⋅⋅⋅⋅⋅⋅ wxy
Vigenère Chiffre
Polyalphabetische Chiffre
Die Vigenère Chiffre ist ein Beispiel einer polyalphabetischen Substitutionschiffre. Es wird eine Matrix mit
26 Caesar Alphabeten gebildet. Jede Spalte wird durch
einen Buchstaben gekennzeichnet. Z.B. besagt Spalte C,
daß ein Buchstabe um 2 Zeichen transponiert wird. Spalte
O besagt, daß ein Buchstabe um 14 Zeichen transponiert
wird
cs 0514 ww6
wgs 05-96
Zeile s , um 19 Zeichen verschieben
Zeile c , um 3 Zeichen verschieben
Zeile h , um 8 Zeichen verschieben
Zeile i , um 9 Zeichen verschieben
schickardschickardschickardschickardschickard
viertausendundsiebenhundertdreiundachtzig
olmaw....................................
Polyalphabetische Chiffre
für jeden Buchstaben des Schlüssels ein anderer
Cäsar Chiffre
Brechen der Chiffre, angenommen, es ist genügend
viel Geheimtext verfügbar:
Länge des Schlüssels raten, z.B. = k. Geheimtext in
Zeilen der Länge k Buchstaben untereinander
anordnen. Wenn richtig geraten, sind alle Spalten
mit dem gleichen monoalphabetischen Schlüssel
verschlüsselt. Die Häufigkeitsverteilung sollte
stimmen,
z. B. e = 14,5 % .
cs 0543u ww6
wgs 09-99
Megabuck
Schlüssel
74512836
Reihenfolge
pleasetr
ansferon
emillion
dollarst
omyswiss
bankacco
untsixtw
otwoabcd
Klartext:
pleasetransferonemilliondollarst
omyswissbankaccountsixtwotwoabcd
Geheimtext
AFLLSKSOSELAWAIATOOSSCTCLNMOMANT
ESILYNTWRNNTSOWDPAEDOBUOERIRICXB
Transpositionschiffre
Spaltentransposition
Spalte 1 wird zuerst übertragen, dann Spalte 2, usw.
cs 0545u ww6
wgs 09-99
Nachricht Länge n
01100 10001 1001...
Exclusive Oder
Schaltkreis
Ciffrierte Nachricht
Länge n
11000 01000 0011...
=1
A
B
=1
C
exclusive-oder
Zufallszahlenfolge
Länge n
10100 11001 1010...
A
B
C
0
0
1
1
0
1
0
1
0
1
1
0
Nicht brechbarer Code
Vernam Chiffre, Einmalschlüssel, One-Time-Pad
Plaintext
Keystream XOR
Ciphertext
Keystream XOR
Plaintext
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
Nicht brechbarer Code
Vernam Chiffre, Einmalschlüssel, One-Time-Pad
Die einzige bekannte Verschlüsselung mit absoluter
Sicherheit ist ein symmetrisches Verfahren. Klartextund Schlüsselbits werden durch ein Exklusiv-Oder
verknüpft. Die Sicherheit beruht auf der Zufälligkeit
des Schlüssels, der mindestens genauso lang sein
muss wie der Klartext und nur ein einziges Mal
verwendet werden darf. Es dürfen keine
Pseudozufallszahlen zum Einsatz kommen, wie sie
ein Computer normalerweise erzeugt, sondern nur
echt zufällige Zahlen, wie sie beispielsweise
radioaktiver Zerfall produziert.
Durch diese Randbedingungen sind One-Time-Pads
ziemlich unhandlich -- schließlich müssen die
Kommunikationspartner zuvor über einen sicheren
Kanal einen Schlüssel austauschen, der genau so
lang ist wie eine spätere Nachricht.
cs 0549 ww6
wgs 09-00
Data Encryption Standard (DES)
Klartext
DES
Verschlüsselung
Schlüssel
Geheimtext
Geheimtext
Schlüssel
DES
Entschlüsselung
Klartext
Symmetrisches Verfahren
1977 vom National Bureau of Standards in Kooperation mit
der IBM standardisiert
Blockchiffrierung, 64 Bit Blöcke, 56 Bit Schlüssel
Mehrstufiges Verfahren mit Transposition und Substition
Effiziente Hardware Implementierung
cs0528 ww6
wgs 09-98
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
P-Box
→
→
→
→
→
→
→
→
2
4
5
0
6
7
1
3
Permutationstabelle
Permutationsbox
Transpositionsbox
3 zu 8
Decoder
8 zu 3
Encoder
S-Box
Substitutionsbox
cs 0424 ww6
wgs 06-95
cs 0550 ww6
wgs 09-00
64 Bit Klartext
Transposition 1
Substitution 1
Substitution 2
Substitution 3
56 Bit Schlüssel
Substitution 4
1
2
...
16
Schlüssel
Generator
Substitution 16
Transposition 2
16 Unterschlüssel zu je 48 Bit
Transposition 3
64 Bit Geheimtext
Unterschlüssel
für diese Stufe
64 Bit Ausgabe von der vorhergehenden Stufe
R i-1, 32 Bit
Li-1, 32 Bit
Substitution
und
Transposition
L i , 32 Bit
R i , 32 Bit = Li-1 ⊕ f(R i-1,K i )
Feistel Netzwerk
64 Bit Textblock
L
R
In mehreren Stufen werden die linken und die rechten Hälften
des zu verschlüsselnden Blocks getrennt behandelt. Aus
dem Schüssel K werden Stufenschlüssel Ki abgeleitet.
Pro Stufe erfolgt die Verschlüsselung:
Li = Ri-1
Ri = Li-1 ⊕ f ( Ri-1, Ki );
⊕ = =1 = exclusive-oder
Ri-1
Li-1
=1
f
Ri
Li
=1
f
Li+1
=1
cs0529 ww6
Ki-1
Ki
Ri+1
f
Ki+1
wgs 09-98
DES Stufenkodierung
Ri-1 (32 Bit)
S
48 Bit Rundenschlüssel
expandiert auf 48 Bit
=1
48 Bit
32 Bit
Li-1 (32 Bit)
=1
8 S-Boxen,
je 6 Bit.
Jede S-Box
expandiert
auf 64
Leitungen
plus folgende
Enkodierung
Ri
Die S-Boxen haben je 6 Eingänge und 4 Ausgänge. Sie ersetzen jedes
6 Bit Zeichen durch ein anderes 4 Bit Zeichen..
Der DES-Algorithmus spezifiziert für jede der 16 Stufen das genaue
Dekodier- und Enkodierschema jeder der S-Boxen.
cs0531 ww6
wgs 09-98
cs 0551 ww6
wgs 09-00
Differenzielle Kryptoanalyse
Biham, Shamir, 1990
Feistel Netzwerke unterscheiden sich durch die
Verdrahtungsmuster in den P- und S-Boxen. Fast alle
Feistelnetzwerke können gebrochen werden. DES
(entstanden 1977) ist eine Ausnahme.
Wenn man bei einem „ideal sicheren Blockalgorithmus” in
einem Klartext-Block ein Bit ändert, dann müsste sich
statistisch jedes der Bits im erzeugten Geheimtextblock mit
genau 50 Prozent Wahrscheinlichkeit ändern, unabhängig
vom verwendeten Schlüssel.
In der Praxis kommt es jedoch vor, dass für bestimmte Bits
die „Änderungswahrscheinlichkeit” im Geheimtext von
einem bestimmten Schlüsselbit abhängt, etwa in der Art:
Wenn man im Klartext die Bits 3, 11 und 45 gemeinsam
ändert, dann ändert sich das Bit 17 im Geheimtext nur mit
49,999 Prozent Wahrscheinlichkeit, falls Bit 5 des
Schlüssels gleich 1 ist, ansonsten mit 50 Prozent.
Kann man dem Chiffrierer große Massen an ausgewähltem
Klartext unterschieben, dann lässt die statistische Analyse
Rückschlüsse auf einige Bits des verwendeten Schlüssels
zu. Die restlichen Schlüsselbits ermittelt man per Brute
Force.
Das Problem der Praxis ist, dass bei guten Verfahren der
Unterschied zum „Idealverhalten” minimal ist und man
riesige Mengen an Klar- und Geheimtext braucht, um an den
Schlüssel heranzukommen. Konkret bei DES wären über ein
Petabyte (1000 Terabyte) an gewähltem Klartext notwendig.
Schlüssellänge11
Zeitaufwand bei Zeitaufwand bei
möglicher11 1 Verschlüs- 11 106 Verschlüsselung/µs
selung/µs
Schlüssel1
Zahl
32 Bit11
56 Bit11
4,3 x 109
7,2 x 1016
128 Bit11
3,4 x 1038
35,8 Minuten11
1142 Jahre11
2,15 ms11
10 Stunden11
5,4 x 1024 Jahre 5,4 x 1018 Jahre
Durchschnittszeit für eine
erschöpfende Schlüsselsuche
Annahme: der Rechner kann 1 bzw. 106
Verschlüsselungen pro Sekunde berechnen.
cs 0570 ww6
wgs 11-03
Triple DES
Erhöhung der DES Schlüssellänge von 56 Bit auf 112 Bit.
Verwendet existierende DES Hardware.
Der Triple DES EDE2 Standard (Encrypt-Decrypt-Encrypt)
verwendet 2 unterschiedliche Schlüssel K1 und K2 zu je 56
Bit. Die erste und dritte Verschlüsselung verwendet den
gleichen Schlüssel.
Der Triple DES EDE3 Standard verwendet 3 unterschiedliche
Schlüssel zu je 56 Bit. Die effektive Schlüssellänge ist immer
noch nur 112 Bit; die Sicherheit gegen bisher noch wenig
erforschte Attacken ist größer.
Alle Verfahren erfordern drei Verschlüsselungsläufe und
benötigen deshalb die dreifache Laufzeit.
Vor allem im Bankenbereich eingesetzt. Der DES Algorithmus
gilt als zuverlässig. Triple DES ASIC´s sind verfügbar.
Die wachsende Verarbeitungsgeschwindigkeit der Rechner
erfordert eine um etwa um 1 Bit/Jahr wachsende
Schlüssellänge.
M
cs0527 ww6
K1
K2
K1
DES
DES
DES
C
wgs 09-98
Advanced Encryption Standard
AES
als Nachfolger von DES vorgesehen
Am 2. Oktober 2000 hat die US-Standardisierungsbehörde NIST den Sieger in einem dreijährigen
Wettbewerb um den neuen Krypto-Standard
verkündet:
Rijndael
entworfen von den beiden belgischen Kryptologen
Joan Daemen und Vincent Rijmen.
In der Zukunft soll dieses System als AES
(Advanced Encryption Standard) in der
kommerziellen Kryptographie eingesetzt werden.
http://www-math.unipaderborn.de/~aggathen/rijndael/
cs 0423 ww6
wgs 06-95
RC4
1987 von Ronald L. Rivest entwickelt.
In einer Vielzahl von Standards wie SSH, HTTPS und
WEP bzw. WPA eingesetzt.
Sehr einfach mit Hardware zu implementieren und
mit Software sehr effizient berechenbar.
Kern des Verfahrens ist eine S-Box, eine zufällige
Permutation (Vertauschung) der natürlichen Zahlen
0 bis 255. Mittels der S-Box wird eine Zufallsfolge
erzeugt, die Bit für Bit durch Addition modulo 2,
(XOR-Verknüpfung), mit dem Nachrichtenstrom
verknüpft wird.
Schlüssel
S-Box
Pseudo-Zufallszahlenfolge
Klartext
=1
Exclusive OR
Ciffrierte Nachricht
Strom- und Blockchiffrierer
Stromchiffrierer verarbeiten jedes Bit einzeln. Mit dem
geheimen Schlüssel wird ein Schlüsselstrom erzeugt,
der mit dem Klartext per XOR verknüpft wird.
Blockchiffrierer überführen (häufig 64 Bit lange)
Blöcke von Klartext in (der Regel gleich große) Blöcke
von Geheimtext.
Stromchiffrierer werden häufig bei der Hardwareverschlüsselung (Schicht 2) eingesetzt.
Blockchiffrierer werden in der Regel bei der
Softwareverschlüsselung (Schicht 6) eingesetzt.
Der einfachste Blockchiffrierermodus ist der
„Electronic Code Block Mode“ (ECB). Hierbei wird
jeder Klartextblock ohne Berücksichtigung des
übrigen Textes kodiert:
Gleiche Klartextblöcke ergeben identischen
Chiffretext.
Verarbeitungsfehler pflanzen sich nicht fort.
Beim „Cipher Block Chaining“ (CBC) wird jeder
Klartextblock mit dem vorhergehenden Chiffreblock
per XOR verknüpft. Hierdurch werden im Klartext
vorhandene Muster verschleiert.
cs0523 ww6
wgs 09-98
Klartext
E
E
E
E
Geheimtext
ECB
=1
=1
=1
=1
CBC
Electronic Code Block Mode (ECB)
Cipher Block Chaining (CBC)
cs 05615
E
=
Enkodieren
=1
=
Exclusive Oder
wgs 11-02
Rechner 1
Rechner 2
Ke
Kd
f(Kd)
C = EKe (M)
M
E
D
M=
DKd (C)
Asymetrische Verfahren
Public Key Encryption
Für die Verschlüsselung wird ein anderer Key verwendet als
für die Entschlüsselung. Deswegen kann der
Verschlüsselungskey bekannt gegeben werden.
Asymetrische Verfahren benötigen etwa 1000 mal mehr
Verarbeitungszeit als symmetrische Verfahren.
„Exponentieller Schlüsselaustausch“
Diffie, Hellmann, 1976
RSA Algorithmus
Rivest, Shamir, Aldeman, MIT 1978
cs0515 ww6
wgs 09-98
Public Key Encryption
How can you use two different keys?
•One is the inverse of the other:
key1 = 3, key2 = 1/3, message M = 4
Encryption: Ciphertext C = M x key1
= 4 x 3 = 12
Decryption: Plaintext M = C x key2
= 12 x 1/3 = 4
One key is published, one is kept private
Asymetrische Verfahren
Public Key Encryption
Algorithmen E und D sind öffentlich
Ke = f(Kd); Ke ist öfffentlich; Kd ist geheim
Nur der Empfänger, der Kd kennt, kann M lesen
Ke kann einfach aus Kd errechnet werden, aber die
Berechnung von Kd aus Ke ist sehr aufwendig
(Einweg-, Falltür-, Trapdoor Funktion).
D ist die Inverse zu E :
M = DKd (C) = DKd (EKe (M))
Vereinfacht die Schlüselverteilung
100 - 1000 mal langsamer als symmetrische Verfahren
Rechner 1
Rechner 2
Ke
Kd
f(Kd)
C = EKe (M)
M
cs0516 ww6
E
D
M=
DKd (C)
wgs 09-98
Entschlüsselung
Verschlüsselung
Eine Einweg-Funktion ist eine beliebige Funktion
a = F(b), die, gegeben a, b relativ leicht berechnen läßt, bei
der es aber sehr rechenaufwendig ist, gegeben b,
den Wert a zu berechnen.
Angenommen eine große Zahl b z.B. mit 150 - 300 Stellen,
die das Produkt aus 2 Primzahlen y und z ist.
b=yxz
Gegeben y und z, ist es einfach, hieraus b zu berechnen.
Gegeben b, ist es extrem rechenaufwendig, y und z zu
finden.
vs1802 ww6
wgs 05-97
RSA Algorithmus (1)
Empfänger erzeugt öffentlichen und privaten
Schlüssel
Ausgangsbasis sind 2 Primzahlen p und q
sowie deren Produkt n = p x q
Aus p, q und n werden 2 Schlüssel abgeleitet:
e
öffentlicher Schlüssel (gemeinsam mit n)
d
privater Schlüssel
cs0541 ww6
wgs 09-98
Potentieller
Sender 1
Potentieller
Sender 2
Empfänger
Broadcast e und n
Potentieller
Sender x
Empfänger veröffentlicht e und n; hält d geheim
Sender chiffriert Klartext m
c = me mod n
Empfänger dechiffriert Geheimtext c
m = cd mod n
Vorgehensweise RSA Verschlüsselung
cs 0636
wgs 09-00
RSA Algorithmus (2)
Der private Schlüssel ist eine ganze positive Zahl d . Der
öffentliche Schlüssel besteht aus 2 ganzen positiven
Zahlen e und n .
Die Schlüssel werden vom Empfänger festgelegt. Aus 2
zufällig ausgewählten Primzahlen p und q wird das
Produkt n = pq gebildet. Die Zahl e wird so ausgewählt,
daß (p-1)(q-1) und e keinen gemeinsamen Teiler haben;
der größte gemeinsame Teiler soll = 1 sein.
Die Zahl d hat die Eigenschaften
d < (p-1)(q-1)
Das Produkt ed liefert nach Division durch
(p-1)(q-1) den Rest 1 .
Die Zahl d wird vom Empfänger als privater Schlüssel
geheim gehalten; die Zahlen e und n werden allen
Interessenten mitgeteilt (können z.B. beim Empfänger auf
einer Web Seite wiedergegeben oder in einer allgemein
zugänglichen Datenbank abgefragt werden). Der Sender
erfragt e und n , und verschlüsselt damit seine Nachricht.
Nur der Empfänger kann sie entschlüsseln, weil nur er die
Zahl d kennt.
cs 0559 ww6
wgs 05-97
RSA Algorithmus (3)
Der Sender teilt die zu verschlüsselnde Nachricht in Blöcke
der Länge k Bits auf. Jeder Block repräsentiert eine Zahl m.
Es muß
2k < n
sein, d.h., der numerische Wert eines Blockes ist immer
kleiner als n.
Zur Verschlüsselung berechnet der Sender
Ziffernblöcke c
c := me mod n
(e-te Potenz der Zahl m, und davon den Rest nach Division
durch n)
Diese Zahl c ist der Geheimtext, der zum Klartext m gehört.
Der Empfänger, der die chiffrierte Botschaft c erhält,
entschlüsselt sie
m: = cd mod n
Es läßt sich nachweisen, daß für Blöcke der Größe 2k < n
die Enkodier- und Dekodierfunktionen invers sind.
(Satz von Euler und Fermat, siehe z.B.
https://www.uni-koblenz.de/~steigner/seminar-asym-krypt/distelrath.pdf, oder
http://home.arcor.de/steffen.hitzemann/mathprobs/Praxis/Kryptographie/RSA.htm).
vs1103
ww
wgs 04 -94
Sender
Empfänger
___________________________________________________
1.
Primzahlen
2.
n = pq
3
e wählen
p, q
e und (p-1)(q-1) haben
keinen gemeinsamen
Teiler
4.
d wählen
d < (p-1)(q-1)
ed / (p-1)(q-1) hat Rest = 1
m = Klartext
c = Chiffrierter Text
c = me mod n
m = cd mod n
cs 0603 ww6
wgs 01-98
RSA Algorithmus (4)
numerisches Beispiel
Wir wählen
p = 374 1966 9101
q = 111 1069 3267
(In praktischen Anwendungen würden p und q eine weit
größere Anzahl an Stellen haben.) Es ist
pq = n =4 1575 8465 5338 4864 2967
Die Zahl e muß zu
(p-1)(q-1) = 4 1575 8465 4853 1828 0600
teilerfremd sein (größter gemeinsamer Teiler = 1). Das geht
z.B. mit
e = 65537
( 65537 = 216 +1 ist eone Primzahl)
Der private Schlüssel d muß < (p-1)(q-1) sein und die
Bedingung
ed mod(p-1)(q-1) = 1
erfüllen. Dies trifft zu für
d = 1648 1384 4596 3130 5873
vs1104
ww
wgs 04 -94
RSA Algorithmus (5)
Wir verschlüsseln die Nachricht
kryptologie macht spass
indem wir die Buchstaben durch die Ziffern 01 .. 26 und das
Leerzeichen durch 00 darstellen:
k r y p t o l o g i e _ m a c h t……..
11 18 25 16 20 15 12 15 07 09 05 00 13 01 03 08 usw.
Da diese Zahl > n ist, muß sie in Blöcke aufgeteilt werden.
Der erste dieser Blöcke ist
m := 1118 2516 2015 1215 0709
Es ist
c: = me mod n
= 1118 2516 2015 1215 0709 (65537)
mod 4 1575 8465 5338 4864 2967
= 7104 3117 9918 9756 5951
Zur Entschlüsselung berechnen wir
m: = cd mod n
7104 3117 9918 9756 5951(1648 1384 4596 3130 5873)
mod 4 1575 8465 5338 4864 2967
= 1118 2516 2015 1215 0709
welches der erste Block der geheimen Nachricht ist.
vs1105
ww
wgs 04 -94
Eulersche φ-Funktion
Die eulersche Phi-Funktion ist eine zahlentheoretische Funktion. Sie ordnet jeder natürlichen Zahl n
die Anzahl der natürlichen Zahlen a von 1 bis n zu, die zu n teilerfremd sind, für die also ggT(a,n) = 1
ist. Sie ist benannt nach Leonhard Euler und wird mit dem griechischen Buchstaben φ (Phi)
bezeichnet.
Beispiele
Die Zahl 6 ist zu zwei Zahlen zwischen 1 und 6 teilerfremd (1 und 5), also ist φ(6) = 2.
Die Zahl 13 ist als Primzahl zu den zwölf Zahlen von 1 bis 12 teilerfremd, also ist φ(13) = 12.
Die ersten 20 Werte der φ-Funktion lauten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
n
φ(n) 1 1 2 2 4 2 6 4 6 4 10 4 12 6 8 8 16 6 18 8
RSA Verfahren
Das RSA-Verfahren basiert auf dem Satz von EULER. Sind m und n zwei natürlich teilerfremde
Zahlen, d.h. ggT(m,n)=1, dann gilt:
m^Phi(n) mod n = 1.
Zu einer Primzahl sind alle natürlichen Zahlen r, die kleiner als p sind, teilerfremd, also ist Phi(p) = p-1.
Für das Produkt zweier Primzahlen p und q ergibt sich somit die Beziehung:
Phi(pq) = (p-1)(q-1).
Es sind nämlich die Zahlen 1p, 2p, 3p, ..., (q-1)p; qp und die Zahlen 1q, 2q, 3q, ..., (p-1)q; pq nicht
teilerfremd mit pq, also ist die Teilermenge von pq T={1p, 2p, 3p, ..., (q-1)p; 1q, 2q, 3q, ..., (p-1)q; pq}
und die Anzahl der Teiler somit p-1+q-1+1 = p+q-1, woraus sich Phi(pq) = pq-(p+q-1) = (p-1)(q-1)
ergibt.
Schlüsselerzeugung
Für die Erzeugung vom öffentlichen (Chiffrier-)Schlüssel und privaten (Dechiffrier-)Schlüssel werden
zunächst zwei "große" Primzahlen p und q, sodass n=pq > m mit m als zu verschlüsselnder Zahl ist,
ausgewählt und es wird Phi(n) durch die Beziehung Phi(n) = (p-1)(q-1) bestimmt. Für eine sichere
Verschlüsselung sollten die beiden Primzahlen p und q in einer Größenordnung von mindestens
10^200 liegen. Durch die Formel
cd mod Phi(n) = 1,
die sich als zweckmäßig erweist, wenn man den Satz von EULER im Beweis des Verfahrens
anwenden möchte, werden Chiffrierschlüssel c und Dechiffrierschlüssel d bestimmt. Dazu wird c
gewählt, und zwar so, dass die Bedingung auch zutreffen kann. Folglich müssen c und Phi(n)
teilerfremd sein, häufig wird für c eine Primzahl gewählt, die größer als Phi(n) ist. Der Schlüssel d lässt
sich dann leicht berechnen:
cd mod Phi(n) = 1
cd = 1+k * Phi(n), k e N
d = (1+k * Phi(n)) / c
d = (1+k * (p-1)(q-1)) / c.
Es kann eine beliebige natürliche Zahl für k gewählt werden, allerdings so, dass auch d eine natürliche
Zahl ist. Nun werden n und Chiffrierschlüssel c veröffentlicht, p und q werden vernichtet.
cs 0428 ww6
12-05
Herunterladen