Grundlagen der Informationssicherheit

Werbung
Was bisher geschah
Symmetrische Verschlüsselung
I
klassische Verfahren: Substitutionschiffren,
Transpositionschiffren
I
perfektes Verschlüsselungsverfahren: One-Time-Pad
I
Kerckhoffs-Prinzip
I
moderne Verfahren: Feistel-Chiffren, DES, AES, IDEA
Zahlentheoretische Grundlagen
I
Teiler
I
Primzahlen
I
Kongruenz modulo
I
Rechnen in Restklassen +n , ·n
I
Inverse Elemente in Restklassen −a, a−1
Wiederholung: größter gemeinsamer Teiler
Z mit ax = b existiert
I
Teilerrelation: a|b gdw. ein x ∈
I
Primzahlen: n ∈
I
n = {ni | i ∈ } Menge aller Vielfachen von n
größter gemeinsamer Teiler ggT(a, b) = d mit
I
Z
Z
N mit genau zwei Teilern
1. d|a und d|b und
2. für jeden Teiler t mit t|a und t|b gilt t|d
I
Operation ggT ist kommutativ, assoziativ
(Minimum in |-Ordnung auf natürlichen Zahlen)
Berechnung des ggT mit Hilfe der folgenden
Eigenschaften:
1. ggT(a, a) = a
2. ggT(a, b) = ggT(b, a)
3. für a > b gilt ggT(a, b) = ggT(a − b, b)
(Euklidischer Algorithmus)
Beipiel: ggT(60, 25)
Kleiner Satz von Fermat
zur Berechnung der multiplikativen Inversen a−1 in
Primzahlen n
Satz 4.1
Für jede Primzahl n ∈
a ∈ n \ {0} gilt
Z
Zn für
N und jede Zahl (Restklasse)
an−1 ≡n 1
Beispiele:
I 26 ≡7 64 ≡7 1
I 25 ≡6 32 ≡6 2 ≡
6 6 1 (6 ist keine Primzahl!)
Folgerung 1
N
Für jede Primzahl n ∈ und jede Zahl (Restklasse)
a ∈ n \ {0} gilt an ≡n a.
Z
Folgerung 2
N
Für jede Primzahl n ∈ und jede Zahl (Restklasse)
a ∈ n \ {0} gilt a−1 ≡n an−2 .
Beispiel: 6−1 ≡11 69 ≡11 2
Z
Eine Verallgemeinerung des kleinen Satz von Fermat
Erweiterung (Euler):
Für Produkte n = pq zweier Primzahlen p, q und jede Zahl
(Restklasse) a ∈ n \ {0} gilt
Z
a(p−1)(q−1) ≡n 1
und damit
Beispiel: Für p = 5, q = 3, a = 2 gilt
2−1 ≡15 24·2−1 ≡15 27 ≡15 8
a(p−1)(q−1)−1 ≡n a−1
Umkehroperation zur Multiplikation
Für alle a, b, c ∈
Z gilt:
ab−1 ≡n c gdw. a ≡n cb
Beispiele: 5 · 2−1 ≡7 6, weil 5 ≡7 6 · 2
Fakt 1
Z
Für jede Primzahl n ist in n für alle Zahlen die Division durch
jede Zahl i ∈ {1, . . . , n − 1} ohne Rest möglich.
Erweiterter Euklidischer Algorithmus
Z
zur Berechnung der multiplikativen Inversen a−1 in n
(für a, n relativ prim, aber n nicht notwendig Primzahl)
gegeben: Primzahl n, a ∈ {1, . . . , n − 1}
gesucht: a−1 , so dass gilt:
a · a−1 ≡n 1
Beispiele: 2−1 ≡3 ?, 5−1 ≡12 ,
Fakt 2
Z
Z
Für je zwei Zahlen a, b ∈ existieren Zahlen x, y ∈ , so dass
gilt
ggT(a, b) = d = xa + yb
Anwendung des erweiterten Euklidischen Algorithmus zur
Berechnung der multiplikativen Inversen von a in n :
Berechnung von x = a−1 in ax ≡n 1 durch
ggT(a, n) = 1 = ax + ny
Z
Erweiterter Euklidischer Algorithmus
N
Eingabe: A, B ∈
Ausgabe: ganze Zahlen g, p, q, r , s ∈
Z mit
g = ggT(A, B) = Ap + Bq = Ar + Bs
int p = 1; int q =
int r = 0; int s =
while (a != b) {
if (a > b) {
a = a - b;
} else {
b = b - a;
}
0;
1;
p = p - r; q = q - s;
r = r - p; s = s - q;
Invariante:
I
ggT(a, b) = ggT(A, B) und
I
Ap + Bq = a und Ar + Bs = b
Beispiel: A = 15, B = 11, ggT(A, B) =?, x =?, y =? in
Ax + By = ggT(A, B)
Erweiterter Euklidischer Algorithmus – Anwendung
Z
Berechnung des multiplikativen Inversen a−1 in n
(für a, n relativ prim, aber n nicht notwendig Primzahl) durch
aa−1 ≡n 1 gdw.
aa−1 + yn = 1 = ggT(a, n)
Erweiterter Euklidischer Algorithmus für Eingaben a, n
berechnet x, y mit ax + ny = ggT(a, n)
Erweiterter Euklidischer Algorithmus eignet sich zur
Bestimmung von x = a−1 in n mit ggT(a, n) = 1
Z
Beispiele: 7−1 ≡15 ?, 11−1 ≡14 ?, 9−1 ≡13 ?, 8−1 ≡21 ?
Herunterladen