Numerische Methoden und Algorithmen in der Physik

Werbung
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Numerische Methoden und Algorithmen in der
Physik
Hartmut Stadie, Christian Autermann
22.01.2009
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
1/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
2/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Übersicht
Einführung
Literaturliste
Primzahlen
Restklassengruppen
RSA Kryptographie
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
3/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Informationen
Material:
Stroustrup: The C++ Programming Language, 3rd edition
http://www.mathematik.uni-marburg.de/∼cpp/
B. Stroustrup: C++ In-depth Series
A. Koenig, B. E. Moo: Accelerated C++
Press et al: Numerical Recipes, 3rd edition
T. H. Cormen et al: Introductions to Algorithms, 2nd edition
wikipedia.org
http://wwwiexp.desy.de/studium/lehre/numalg/
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
4/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Kryptographie
Historische Entwicklung: Transposition
Die Anfänge der Kryptographie (griechisch: κρνιτ τ oς verborgen, und γραφιν
schreiben) liegen im Altertum um 3000 v.C. in Ägypten. In der Antike fanden
verschlüsselte Nachrichten bereits militärische Verwendung, in Form der
Skytale:
Skytale sind um einen Stab gewickelte Nachrichten. Der Stabdurchmesser ist
der Schlüssel, der die Buchstaben in die richtige Reihenfolge bringt.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
5/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Kryptographie
Historische Entwicklung: Substitution
„Cäsar-Verschlüsselung”: Jedes Zeichen des Klartextes wird durch
ein festgelegtes anderes Zeichen ersetzt.
„. . . wenn etwas Geheimes zu überbringen war, schrieb er in Zeichen, das heißt,
er ordnete die Buchstaben so, dass kein Wort gelesen werden konnte: Um diese
zu lesen, tauscht man den vierten Buchstaben, also D für A aus und ebenso
mit den restlichen.” [Sueton/wikipedia.org]
Beispiel:
v e n
z i r
i
m
x
b
v
z
i
m
d
h
i
m
x
b
v
z
i
m
c
g
i
m
Die Substitutionsverschlüsselung kann durch eine
Häufigkeitsanalyse sehr leicht gebrochen werden.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
6/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Kryptographie
Historische Entwicklung: Substitution
Im Gegensatz zur monoalphabetischen Substitution werden für die Zeichen des
Klartextes mehrere Geheimtextalphabete verwendet.
Beispiel:
Text:
geheimnis
Schlüsselwort: AKEY
Schlüssel:
AKEYAKEYA
Chiffrat:
GOLCIWRGS
Die Vigenère-Verschlüsselung galt lange als sicherer Chiffrieralgorithmus. Dem
britischen Mathematiker Charles Babbage und dem preußischen Offizier
Friedrich Kasiski gelang Mitte des 19. Jahrhunderts unabhängig voneinander
die Entzifferung.
Verwand u.a. anderem von: Enigma (1918-1950er), feste Länge des Schlüssels,
aber rotierende Schlüssel
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
7/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Kryptographie
Vernam Verschlüsselung
Der Spezialfall, dass der Schlüssel genauso lang ist wie der zu verschlüsselnde
Text, heißt Vernam-Verschlüsselung, wobei der Schlüssel XOR mit dem
Klartext verknüpft wird. Handelt es sich bei dem Schlüssel um eine zufällige
Folge von Buchstaben, und wird der Schlüssel nur ein einziges Mal verwendet,
nennt man das Verfahren auch One-Time-Pad. Bei diesem ist eine
Dechiffrierung ohne Kenntnis des korrekten Schlüssels absolut unmöglich.
Beispiel:
Text:
Schlüsselwort:
Schlüssel:
Cyphertext:
geheimnis
AKEY
AKEYGEHEI
GOLCOQUMA
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
8/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Kryptographie
Öffentliche Übermittlung des Schlüssels
Das Problem der Vernam Verschlüsselung ist, dass der Schlüssel sowohl dem
Sender als auch dem Adressaten bekannt sein muss. Ausserdem muss für jede
Nachricht M ein neuer, nicht zu erratender Schlüssel benutzt wreden.
Moderne Verschlüsselungsalgorithmen verwenden oft zwei Schlüssel, einen
geheimen privaten S und einen öffentlichen Schlüssel P.
P(M) = C : Cyphertext
S(C ) = M: Klartext
Die Sicherheit dieser Verfahren beruht ausschliesslich darauf, dass die
Bestimmung der Umkehrfunktion P −1 (C ) (bei Kenntnis von P und C )
mathematisch sehr schwierig, d.h. sehr aufwendig, ist.
Auf die notwendige Algebra in solchen diskreten mathematischen Körpern soll
im folgenden eingegangen werden.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
9/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Übersicht
Einführung
Primzahlen
Numerik
Modulare Potenzierung
Größter Gemeinsamer Teiler
Der Euklidische Algorithmus
Restklassengruppen
RSA Kryptographie
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
10/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Primzahlen
Definition:
Eine Zahl p ist eine Primzahl, wenn sie nur durch 1 und durch p
geteilt wird.
Alle negativen Zahlen werden von −1 geteilt, Null wird nicht von
sich selbst geteilt und 1 wird nicht von 1 und sich selbst geteilt.
Alle Primzahlen sind also offenbar grösser als 1.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
11/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Primfaktorzerlegung
Theorem:
Jede positive Integerzahl n > 1 lässt sich darstellen durch
n = p1e1 · p2e2 · ... · prer
(1)
Wobei die pi Primzahlen und die ei positive Integerzahlen sind.
Dies nennt man Primfaktorzerlegung.
Die Primfaktorzerlegung einer beliebigen Primzahl p lautet:
p = p1
(2)
Beweis:
→Hausaufgabe.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
12/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Theorem:
Es existieren unendlich viele Primzahlen.
Beweis:
Angenommen es existieren nur endlich viele Primzahlen, und diese
seien gegeben durchQP = {p1 , p2 , ..., pk }. Das Produkt aller
Primzahlen sei n = ki pi . Die Zahl n + 1 wäre dann aber auch
eine Primzahl, da:
n + 1 mod pi = 1
(3)
für jedes i. Da n + 1 aber kein Element aus P ist, ist die Annahme
endlich vieler Primzahlen falsch, q.e.d.
Bemerkung:
Q
( ki pi ) + 1 für ein bestimmtes k muss keine Primzahl sein!
Beispiel: 30031 = 2 · 3 · 5 · 7 · 11 · 13 + 1 = 59 · 5009
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
13/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Primzahlen
Anteil von Primzahlen in den natürlichen Zahlen
In den positiven natürlichen Zahlen bis n gibt es nprim Primzahlen.
Diese Anzahl ist mit guter Genauigkeit gegeben durch:
n
nprim ≈
ln n
(4)
Bis n ≤ 109 ist die Ungenauigkeit kleiner als 10%.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
14/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Primzahlen
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
15/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Primzahltest
Primzahl gesucht
Wieviele Zahlen müssen getestet werden, um eine 512-bit Primzahl
zu finden?
512 bit = 2512
(5)
222
= 10
(6)
Der relative Anteil von Primzahlen in den natürlichen Zahlen n ist
in etwa gegeben durch (ln n)−1 . Die Wahrscheinlichkeit P durch
zufälliges Testen von ungeraden 512-bit Zahlen eine Primzahl zu
finden ist also
−1
1
1
1
P=
·
≈
(7)
512
2 ln 2
172
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
16/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Primzahltest
Fermats kleiner Satz
Ist p eine Primzahl, dann gilt für alle positiven Integer a (die
teilerfremd zu p sind):
ap−1 = 1 (mod p)
(8)
Der Umkehrschluss gilt nicht: Ist p keine Primzahl und erfüllt die
Gleichung (8), so heisst sie „Pseudo-Primzahl zur Basis a”. Ist eine
Zahl eine Pseudo-Primzahl zu allen möglichen Basen a, dann ist sie
eine „Carmichael-Zahl”.
Pseudo-Primzahlen sind sehr selten, so dass Gl. (8) einen
effizienten Test darstellt.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
17/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Primzahlen
schwarz: Wahrer Anteil der Primzahlen in den natürlichen Zahlen
blau: Anteil an Prim- und Pseudo-Prim-Zahlen nach Fermats
kleinem Satz mit Basis a = 2. (Abweichung < 2%)
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
18/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Es soll p = ab mod n berechnet werden, für a, b ≥ 0 und n ≥ 1.
Pseudocode: Modulare Potenzierung
ModularePotenzierung(a, b, n)
c = 0, d = 1
#b_k, ..., b_2, b_1 seien die bits in der Binärdarstellung von b
for i=k bis i=0
c=2
d = (d*d) mod n
if (b_i = 1)
c = c+1
d = (d*a) mod n
return d
Tipp: Die Binärdarstellung b einer positiven 32-bit Integerzahl B bekommt man
in C++ durch:
#include <bitset>
unsigned int B = 5;
std::bitset<32> b ( B );
b[0];
//Zugriff auf das 1. bit
b[31]; //Zugriff auf das signifikanteste bit.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
19/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Größter Gemeinsamer Teiler
Definition:
Für zwei Integerzahlen a und b, die nicht beide null sind, ist
GGT(a,b) die grösste Integerzahl die beide ohne Rest teilt.
Es gilt:
GGT(a, b) = GGT(b, a)
(9)
GGT(a, b) = GGT(−a, b)
(10)
GGT(a, b) = GGT(|a|, |b|)
(11)
GGT(a, 0) = |a|
(12)
GGT(a, ka) = |a| für alle k ∈ Z
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
(13)
20/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Bestimmung des GGT
Aus der Primfaktordarstellung zweier positiver Integerzahlen a und
b lässt sich ihr GGT(a,b) bestimmen. Mit
a = p1e1 · p2e2 · ... · prer
b =
p1f1
·
p2f2
· ... ·
(14)
prfr
(15)
folgt für den Grössten Gemeinsamen Teiler:
min(e1 ,f1 )
GGT(a, b) = p1
min(e2 ,f2 )
· p2
min(er ,fr )
· ... · pr
(16)
Diese Methode eignet sich allerdings nicht, um den GGT grosser
Zahlen zu berechnen, da kein Algorithmus mit polynomischen
Laufzeitverhalten existiert, um eine Zahl in ihre Primfaktoren zu
zerlegen!
Hierauf beruht die Sicherheit der RSA
Verschlüsselungsalgorithmen.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
21/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Größter Gemeinsamer Teiler
Theorem:
Für jede nicht negative Integerzahl a und jede positive Integerzahl
b gilt:
GGT(a, b) = GGT(b, a mod b)
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
(17)
22/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Beweis:
Sei d =GGT(a, b), dann teilt d die Zahlen a und b (d|a und d|b).
Mit x mod y = x − (x div y ) · y gilt:
(a mod b) = a − q · b
mit
q = a div b.
(18)
(a mod b) ist also offenbar eine Linearkombination aus a und b;
damit folgt d|(a mod b) und damit:
GGT(a, b) | GGT(b, a mod b)
(19)
Analog lässt sich zeigen, dass GGT(b, a mod b)|GGT(a, b). Da
der GGT eine positive Zahl ist, folgt daraus das
GGT(a, b) = GGT(b, a mod b) sein muss.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
23/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Der Euklidische Algorithmus
Der Euklidische Algorithmus wurde ∼ 300 b.c. in “Die Elemente”
(bis Mitte des 19. Jahrhunderts das meistverbreiteste Werk nach
der Bibel) von Euklid beschrieben. Er ist aber möglicherweise sogar
älter.
Pseudocode GGT
Euklid(a, b)
Wenn b=0 dann
return a
sonst
return Euklid(b, a mod b)
Der Euklidische Algorithmus verwendet direkt die Gleichungen
(17) GGT(a, b) = GGT(b, a mod b) und (12) GGT(a, 0) = |a|.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
24/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Laufzeitverhalten des Euklidischen Algorithmusses
Die Laufzeit ist von der Grössenordnung O(ln b).
Theorem:
Für alle Integerzahlen k ≥ 1 gilt wenn a > b ≥ 1 und b < Fk−1 ,
dann ist die Zahl der Iterationsschritte n für Euklid(a, b) kleiner
als k.
Fibonacci Folge
Die Fibonacci Folge ist definiert durch:
F0 = 0
(20)
F1 = 1
(21)
Fn = Fn−1 + Fn−2
(22)
01 , 12 , 13 , 24 , 35 , 56 , 87 , 138 , 219 , 3410 , 5511 , 8912 , 14413 ...
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
25/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Der erweiterte Euklidische Algorithmus
Der erweiterte Euklidische Algorithmus berechnet ausser dem GGT
zusätzlich zwei weitere Integerzahlen s und t, die folgende
Gleichung erfüllen:
GGT(a, b) = s · a + t · b
(23)
Pseudocode: Erweiteter Euklidischer Algorithmus
ExtendedEuklid(a, b)
if ( b=0 ) dann
return (a, 1, 0)
(d’, x’, y’) = ExtendedEuklid(b, a modulo b)
(d, x, y ) = (d’, y’, x’ - a/b * y’)
return (d, x, y)
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
26/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Übersicht
Einführung
Primzahlen
Restklassengruppen
Modulare Arithmetik
Kongruenz
Prime Restklassengruppe
Chinesischer Restsatz
RSA Kryptographie
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
27/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Modulare Arithmetik
Ein kommutativer unitärer Ring, der nicht der Nullring ist, heißt ein Körper Gn ,
wenn in ihm jedes von Null verschiedene Element multiplikativ invertierbar ist.
Beispiel: G7
⊕
0
1
2
3
4
5
6
0
0
1
2
3
4
5
6
1
1
2
3
4
5
6
0
2
2
3
4
5
6
0
1
3
3
4
5
6
0
1
2
4
4
5
6
0
1
2
3
5
5
6
0
1
2
3
4
6
6
0
1
2
3
4
5
0
1
2
3
4
5
6
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
2
0
2
4
6
1
3
5
3
0
3
6
2
5
1
4
4
0
4
1
5
2
6
3
5
0
5
3
1
6
4
2
6
0
6
5
4
3
2
1
In einem Körper sind also Addition, Subtraktion, Multiplikation und Division
wie gewohnt definiert, das Ergebnis (mod n) ist wieder ein Element des Körpers.
Es gilt weiter:
1 Bezgl. der Addition gibt es zu jedem Element a ein Inverses −a, so dass
a + (−a) = 0 das Nullelement ergibt.
2 Bezgl. der Multiplikation gibt es zu jedem Element a ein Inverses a−1 , so
dass a · a−1 = 1 das Einselement ergibt, ausser:
3 Das Nullelement 0 ist das einzige Element, das keinen Kehrwert bezgl.
der Multiplikation besitzt.
Nur falls n eine Primzahl ist, ist Gn ein Körper.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
28/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Kongruenz
Man nennt zwei Zahlen kongruent bezüglich einer dritten Zahl, des Modules,
wenn sie bei Division durch den Modul den gleichen Rest besitzen.
Seien a und b kongruent bezüglich m schreibt man:
a≡b
mod m
(24)
Beispiel: a = 3, b = 17, m = 7, es gilt:
3/7
=
0
Rest:
3
17/7
=
2
Rest:
3
Die Menge der Zahlen xk = a + k · m nennt man Restklasse. Die Menge aller
Restklassen modulo m heisst Restklassenring und ist ein Körper, genau dann
wenn m eine Primzahl ist.
Eine Menge heisst prime Restklasse, bzw. prime Restklassengruppe, wenn ihre
Elemente teilerfremd zu m sind, d.h. GGT(a, m) = 1.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
29/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Prime Restklassengruppe (aus wikipedia.org)
Die prime Restklassengruppe ist die Gruppe der primen Restklassen bezüglich
eines Moduls n. Sie wird mit (Z/nZ)× oder Z∗n symbolisiert.
Die Gruppe besteht aus den Restklassen a + nZ, deren Elemente zu n
teilerfremd sind: ggT(a, n) = 1. Darauf weist die Bezeichnung prime Restklasse
hin; für teilerfremd sagt man auch relativ prim. Die Gruppenordnung ist
gegeben durch die Eulersche ρ(n) Funktion. ρ(n) gibt an wieviele positive
ganze Zahlen a < n teilerfremd zu n sind.
Die Verknüpfung der Gruppe entspricht der Multiplikation von ganzen Zahlen:
(a + nZ) · (b + nZ) = (a · b + nZ).
Die primen Restklassengruppen sind endliche abelsche Gruppen bezüglich der
Multiplikation.
→ Dies ist sehr wichtig für die Kryptographie und z.B. auch für
Pseudo-Zufallszahlen Generatoren!
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
30/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Multiplikative Inversion
Zu dem Element a einer primen Restklasse a + mZ soll ein
multiplikativ-inverses Element b bestimmt werden, so dass gilt:
a·b ≡1
(mod m)
(25)
Diese Kongruenz lässt sich so umschreiben, sodass sie mit dem Erweiterten
Euklidischen Algorithmus lösbar ist:
a·b+k ·m =1
(26)
Der Erweiterte Euklidische Algorithmus auf a und m angewand, liefert einen
Repräsentanten b der primen Lösungs-Restklasse b + mZ.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
31/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Simultane Kongruenz
Eine simultane Kongruenz ganzer Zahlen ist ein System von linearen
Kongruenzen:
x
≡
a1
(mod
m1 )
x
≡
..
.
a2
(mod
m2 )
x
≡
an
(mod
mn )
Gesucht sind alle x, die alle Gleichungen gleichzeitig lösen. Wenn eine Lösung x
existiert, dann sind mit M=kgV(m1 , m2 , . . . , mn ) und einer beliebigen
natürlichen Zahl k alle Lösungen gegeben durch:
xk = x + k · M
(27)
Der Chinesische Restsatz ist ein Spezialfall: Er bezieht sich auf den Fall, dass
alle mi teilerfremd sind, also keinen gemeinsamen Teiler besitzen. Alle
Lösungen x sind kongruent modulo M.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
32/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Simultane Kongruenz
Die Originalform des Chinesischen Restsatzes stammt vom Mathematiker Sun
Zi (2. Jhd.) und sucht solche Zahlen x, welche die Reste 2, 3 und 2 lassen,
wenn sie jeweils durch 3, 5 und 7 geteilt werden.
Lösung: Weil die mi teilerfremd sind, ist M = m1 · m2 . . . mn . Die Zahlen mi
und Mi = M/mi sind also ebenfalls teilerfremd.
Mit Hilfe des erweiterten Euklidischen Algorithmus lassen sich nun jeweils zwei
Zahlen si und ti so bestimmen, dass
si · mi + ti · Mi = 1
(28)
Mit ei = ti · Mi gilt nun:
ei
≡
1
(mod
mi )
ei
≡
0
(mod
mj )
(29)
i 6= j
(30)
Aus den Multiplikationsregeln für Kongruenzen folgt für die gesuchte Lösung
der simultanen Kongruenz:
n
X
x=
ai · ei
(31)
i=1
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
33/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Beispiel: Chinesisches Restsatzproblem
Gesucht ist die Lösung x für das folgende Gleichungssystem:
x
≡
2
(mod
3)
(32)
x
≡
3
(mod
5)
(33)
x
≡
2
(mod
7)
(34)
Es gilt: M = 105, M1 = 35, M2 = 21, M3 = 15
Mit dem erweiterten Euklidischen Algorithmus folgt:
12 · 3
−4 · 5
−2 · 7
+
+
+
(−1) · 35
1 · 21
1 · 15
=
=
=
1
1
1
Eine Lösung ist dann x = 2 · (−35) + 3 · 21 + 2 · 15 = 23.
Alle Lösungen sind damit gegeben durch:
23 + k · 105
Numerische Methoden und Algorithmen in der Physik
für beliebige Integerzahlen k
Christian Autermann
(35)
34/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Übersicht
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Public-Key-Kryptographie
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
35/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Kryptographie
RSA Verschlüsselung
Das erste Beispiel für Public-Key-Kryptographie ist die RSA-Kryptographie, die
1977 von Ronald L. Rivest, Adi Shamir und Leonard Adleman am MIT
entwickelt wurde.
Fast alle asymmetrischen kryptographischen Verfahren basieren auf
Operationen in diskreten mathematischen Strukturen, wie z. B. endlichen
Körpern, Ringen, elliptischen Kurven oder Gittern. Ihre Sicherheit basiert dann
auf der Schwierigkeit bestimmter Berechnungsprobleme in diesen Strukturen.
In den USA fallen Public-Key Verfahren unter das Waffengesetz und sind wie
auch in der EU Exportbeschränkungen unterlegen.
Public-Key Verfahren können theoretisch durch Quantencomputer in
Polynomialzeit gebrochen werden. Quantencryptographie, die auf
Verschränkung beruht, hat hiermit jedoch nichts zu tun!
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
36/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Die RSA Kryptographie
Beispiel
Alice und Bob möchten abhöhrsicher kommunizieren. Jeder besitzt einen
öffentlichen (public) Schlüssel und einen geheimen (secret) Schlüssel, diese
heissen PA , SA für Alice und PB , SB für Bob.
Hat Alice eine Nachricht M für Bob, schickt sie PB (M) an Bob, der berechnet
den Klartext durch SB (PB (M)) = M.
Alice kann ihre Nachricht auch signieren, so dass Bob sicher ist, dass die
Nachricht nur von Alice stammen kann. In diesem Fall sendet sie
PB (M, SA (M)) an Bob. Dieser kann nach der Entschlüsselung mit Hilfe von SB
verifizieren, dass M von Alice signiert wurde, in dem er PA (SA (M)) berechnet.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
37/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Die RSA Kryptographie
1 Wähle zwei (große, etwa 512-bit) Primzahlen p und q, so dass p 6= q.
2 Berechne n = p · q.
3 Wähle eine kleine Integer Zahl e, die relativ-prim zu
ρ(n) = (p − 1)(q − 1) ist, also GGT(e, ρ(n)) = 1.
4 Berechne d, das multiplikative Inverse von e modulo ρ(n). Hierzu kann
Gleichung (25) bzw. Gl. (26) benutzt werden.
5 Der RSA öffentliche Schlüssel ist P = (e, n). Der
Verschlüsselungsalgorithmus lautet:
P(M) = M e
(mod
n)
(36)
6 Der RSA geheime Schlüssel ist S = (d, n). Der
Entschlüsselungsalgorithmus lautet:
S(C ) = C d
Numerische Methoden und Algorithmen in der Physik
(mod
n)
(37)
Christian Autermann
38/ 39
Einführung
Primzahlen
Restklassengruppen
RSA Kryptographie
Mögliche Angriffstrategien
Die Sicherheit von RSA beruht zum einen darauf, dass es sehr schwierig ist
Wurzeln modulo n zu ziehen, um aus M e = C wieder der Klartext M zu
erhalten. Genau so schwierig ist es ohne Kentniss von p und q die
Eulerfunktion ρ(n) zu berechnen.
Man-in-the-middle attack: Angreifer Eve gibt sich als Bob aus und schickt
Alice ihren public key PE . Alice schickt die verschlüsselte Nachricht
PE (M) an Eve, die es entschlüsselt und mit dem bekannten öffentlichen
Schlüssel PB an Bob weiterversendet.
Wiener-Verfahren: Der private Schlüssel d ist zu kurz d .
√
4
N
3
Timing-attack: Kennt Eve die Hardware von Bob’s Computer, so kann sie
aus der benötigten Zeit für die Entschlüsselung SB (C ) die Schlüssellänge
d berechnen.
Branch prediction analysis (BPA) attacks: Moderne Multi-thread
Prozessoren benutzen BPA um den wahrscheinlichsten Verlauf eines
Algorithmus zu ermitteln. Ein Spionage-thread kann den Schlüssel d so
statistisch ermitteln.
...
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
39/ 39
Herunterladen