Inhaltsverzeichnis - Diskrete Mathematik

1. Relationen

1.1 Allgemeine Relationen und deren Darstellung

1.2 Eigenschaften von Relationen

1.3 Ordnungsrelationen

1.4 Größte und Maximale Elemente, obere Schranken und Suprema

1.5 Verbände

1.6 Äquivalenzrelationen

1.7 Restklassen

1.8 Abbildungen

2. Algebraische Strukturen

2.1 Verknüpfungen

2.2 Restklassenoperationen

2.3 Gruppen

2.4 Restklassengruppen mit Multiplikation

2.5 Untergruppen

2.6 Isomorphismen

Inhaltsverzeichnis - Kryptologie

1. Einführung

1.1 Symmetrische Verschlüsselungsverfahren

1.2 Asymmetrische Verschlüsselungsverfahren

2. Klassische Verfahren

2.1 Skytale

2.2 Caesar

2.3 Permutations-Chiffren

2.4 Verfahren zur Entschlüsselung für monoalphabetische Substitutionsverfahren

2.4.1 Häufigkeitsanalyse

2.5 Vigenère-Chiffre

2.6 Verfahren zur Entschlüsselung für polyalphabetischen Substitutionsverfahren

2.6.1 Kasiski-Test

2.6.2 Friedman-Test

2.7 One Time Pad Verfahren

3. Euler und Fermat

4. RSA-Verschlüsselung

5. Primzahltests

5.1 Fermatsche Pseudoprimzahl

5.2 Miller-Rabin-Test

6. Diskreter Logarithmus

6.1 Diffie-Hellman-Key-Exchange

6.2 ElGamal-Kryptosystem

7. Integrität und Authentizität von Nachrichten

7.1 Hash Funktion

Diskrete Mathematik

1. Relationen

1.1 Allgemeine Relationen und deren Darstellung

Definition: Relation
Eine binäre Relation zwischen zwei Mengen ist eine Teilmenge des kartesischen Produkts:
RM×NR \subseteq M \times N
Für die Paare (x,y)R(x,y) \in R gilt: xx steht in Relation zu yy (auch xRyx R y)

Darstellung von Relationen

Beispiel: R={(1,a);(1,c);(2,b);(3,b);(3,c);(4,a)}R = \{(1,a); (1,c); (2,b); (3,b); (3,c); (4,a)\}

1.1.1 Pfeildiagramme

1
2
3
4
a
c
b

1.1.2 Matrixschreibweise (Adjazenzmatrix)

MM \ NN a b c
1 1 0 1
2 0 1 0
3 0 1 1
4 1 0 0

1.1.3 vereinfachtes Pfeildiagramm
Pfeildiagramm kann vereinfacht werden, wenn die beiden Mengen identisch sind.

*Beispiel: R={(1,2);(1,5);(1,6);(2,2);(2,4)}R = \{(1,2); (1,5); (1,6); (2,2); (2,4)\}

1
2
4
5
6

Anzahl der möglichen Paare einer Menge am Beispiel:
M={1;2;3;4;5;6} M=\{1;2;3;4;5;6\} M=6 |M| = 6

Definition: Inverse Relationen
Wenn RR eine Relation mit RM×NR \subseteq M \times N ist, dann ist die Inverse Relation R1N×MR^{-1} \subseteq N \times M.
R1={(y,x)(x,y)R}R^{-1} = \{(y,x) | (x,y) \in R\}

Beispiel für inverse Relationen:
R={(r,l)M×MrR = \{(r,l) \in M \times M | r “ist Mutter von” l}l\}
R1={(l,r)M×MlR^{-1} = \{(l,r) \in M \times M | l “hat als Mutter” r}r\}

Rechenregeln inverser Relationen

  1. (R1R2)1=R21R11(R_1 \circ R_2)^{-1} = R_2^{-1} \circ R_1^{-1}
  2. (R11)1=R1(R_1^{-1})^{-1} = R_1

Definition: Verkettung (=Komposition) von Relationen
Die Verkettung von den Relationen R1A×BR_1 \subseteq A \times B und R2B×CR_2 \subseteq B \times C wird folgendermaßen dargestellt: R1R2=M1×M3R_1 \circ R_2 = M_1 \times M_3
R1R2={(a,c)(aA)(cC)(bB:((a,b)R1)((b,c)R2))}R_1 \circ R_2 = \{(a,c) | (a \in A) \land (c \in C) \land (\exist b \in B: ((a,b) \in R_1) \land ((b,c) \in R_2))\}

Beispiel für verkettete Relationen:
R1={(l,r)lR_1 = \{(l,r) |l “hat als Mutter” r}r\}
R2={(r,e)rR_2 = \{(r,e) | r “war verheitatet mit” e}e\}
R1R2={(l,e)lR_1 \circ R_2 = \{(l,e) | l “hat als Vater” e}e\}

Assoziativgesetz bei der Verkettung von Relationen
(R1R2)R3=R1(R2R3)(R_1 \circ R_2) \circ R_3 = R_1 \circ (R_2 \circ R_3)

1.2 Eigenschaften von Relationen

Eigenschaft Definition
1. identische Relation I={(x,x)I=\{(x,x)| xM}x \in M\}
2. reflexive Relation xM:(x,x)R\forall x \in M: (x,x) \in R
3. irreflexive Relation xM:(x,x)R\forall x \in M: (x,x) \notin R
4. symmetrische Relation x,yM:(x,y)R    (y,x)R\forall x,y \in M: (x,y) \in R \implies (y,x) \in R
5. asymmetrische Realtion x,yM:(x,y)R    (y,x)R\forall x,y \in M: (x,y) \in R \implies (y,x) \notin R
6. antisymmetrische Relation x,yM:(x,y)R(y,x)R    x=y\forall x,y \in M: (x,y) \in R\land (y,x) \in R \implies x = y
7. transitive Relation x,y,zM:(x,y)R(y,z)R    (x,z)R\forall x,y,z \in M: (x,y) \in R \land (y,z) \in R \implies (x,z) \in R

Beispiele:

  1. identische Relationen
1
2
  1. reflexive Relationen
1
2
  1. irreflexive Relationen
1
2
  1. symmetrische Relationen
1
2
  1. asymmetrische Relationen
1
2
3
  1. antisymmetrische Relationen
1
2
  1. transitive Relationen
1
2
3

Zusammenhänge der Eigenschaften von Relationen

ist auch
ist nicht
ist nicht
ist auch
asymmetrisch
irreflexiv
reflexiv
antisymmetrisch

Definition: Transitiv (reflexive) Hülle
Die transitive Hülle von der Relation RR wird gekennzeichnet durch R+R^{+} und beinhaltet die Paare, die durch die Eigenschaft der Transitivität möglich werden.
Die reflexiv transitive Hülle der Relation RR wird gekennzeichnet durch RR^{*} und beinhaltet zusätzlich zur transitiven Hülle die reflexiven Paare. Sie ist die kleinste transtitive und reflexive Relation, die RR umfasst.

Beispiele
transitive Hülle (Praxisbeispiel: Organigramme in Unternehmen)

A
B
C
D

reflexiv transitive Hülle

A
B
C
D

1.3 Ordnungsrelationen

Definition: (strikte) Ordnungsrelation
Die Ordnungsrelation ist eine Verallgemeinerung der “\leq”-Beziehung.
Durch diese können Elemente einer Menge miteinander verglichen werden.

Eine Ordnung in MM existiert, wenn die Relation alle der folgenden Eigenschaften besitzt:

Eine strikte Ordnung in MM existiert, wenn die Relation folgende Eigenschaften besitzt:

Beispiel einer Ordnungsrelation: Bsp. \leq

1
2
3

Beispiel einer strikten Ordnungsrelation: Bsp. <\lt

1
2
3

Definition: totale Ordnungsrelation
Bei einer totalen Ordnungsrelation sind je zwei Elemente von MM bezüglich der Relation RR vergleichbar:
x,yM:(x,y)R(y,x)R\forall x, y \in M: (x,y) \in R \lor (y,x) \in R

Sollte diese Eigenschaft nicht gegeben sein, spricht man von einer partiellen Ordnung / Teilordnung

Beispiel: totale Ordnungsrelation
Die Ordnungsrelation \leq ist eine totale Ordnungsrelation in N\N, da zwei Zahlen immer vergleichbar sind (5 \leq 3 \lor 3 \leq 5).

Beispiel: partielle Ordnungsrelation
Die Ordnung “::” (geteilt durch) ist eine partielle Ordnungsrelation in N\N, da die Relation 23\frac{2}{3} oder 32\frac{3}{2} in N\N nicht vergleichbar ist.

Definition: Nachbarschaftsrelation
Bei einer strikten Ordnungsrelation <\lt in MM ist die Nachbarschaftsrelation gegeben durch:
x<Ny    (x<y)(zM:(x<z)(z<y))x \lt^{N} y \iff (x \lt y) \land (\nexists z \in M: (x \lt z) \land (z \lt y))
Es existiert kein Wert der Menge MM der zwischen die Werte xx und yy passt.

Beispiel: Nachbarschaftrelation
Strikte Ordnungsrelation <\lt in N:x=3,y=4\N: x = 3, y = 4
3<N4    (3<4)(zN:(3<z)(z<4))3 \lt^{N} 4 \iff (3 \lt 4) \land (\nexists z \in \N: (3 \lt z) \land (z \lt 4)) - wahre Aussage
3<N5    (3<5)(zN:(3<z)(z<5))3 \lt^{N} 5 \iff (3 \lt 5) \land (\nexists z \in \N: (3 \lt z) \land (z \lt 5)) - falsche Aussage, da z=4z = 4 existiert.

Hasse Diagramm
Das Hasse Diagramm ist eine grafische Darstellung in Form eines Pfeildiagramms der Nachbarschaftsrelation. (Reflexive und Transitive Verbindungen werden hierbei weggelassen)

Beispiel: Hasse Diagramm
Betrachtet wird die Nachbarschaftsrelation von der Menger aller Teiler von 70 T70={1,2,5,7,10,14,35,70}T_{70}=\{1, 2, 5, 7, 10, 14, 35, 70\}

70/10 = 7
70/14 = 5
70/35 = 2
10/2 = 5
10/5 = 2
14/2 = 7
14/7 = 2
35/5 = 7
35/7 = 5
2/1 = 2
5/1 = 5
7/1 = 7
1
2
5
7
10
14
35
70

Informationserhaltungssatz für Hasse Diagramme
Wenn die Ordnungsrelation \leq eine

Die Nachbarschaftsrelation ist also ausreichend zur Beschreibung der Ordnungsrelation, da mithilfe der transitiv-reflexiven Hülle dir Relation vollständig konstruiert werden kann.

Für die Darstellung von Ordnungsrelationen in unendlichen Mengen (Bsp. R\R) ist das Hasse Diagramm keine geeignete Darstellungsmethode, da hier ein Informationsverlust vorliegen kann

1.4 Größte und Maximale Elemente, obere Schranken und Suprema

Definition: Größte - und Maximale Elemente
Sei \leq eine Ordnungsrelation in MM.
Größtes Element:
gro¨ßtesElementMxM:xgro¨ßtesElementgrößtesElement \in M \land \forall x \in M: x \leq größtesElement

Eigenschaften:

Maximales Element
maximalesElementMxM:maximalesElementx    x=maximalesElementmaximalesElement \in M \land \forall x \in M: maximalesElement \leq x \implies x = maximales Element
Eigenschaften:

Beispiel: M={1,2,3,4,5,6,7,8},R=/M=\{1,2,3,4,5,6,7,8\}, R=/

1
2
3
4
5
6
7
8
Teilmenge maximale Elemente größtes Element
{2,3,6}\{2,3,6\} {6}\{6\} 6
{2,3}\{2,3\} {2,3}\{2,3\} {}\{\}
{2,3,5,6}\{2,3,5,6\} {5,6}\{5,6\} {}\{\}
{1,2,3,4,5,6,7,8}\{1,2,3,4,5,6,7,8\} {5,6,7,8}\{5,6,7,8\} {}\{\}

Definition: Supremum / Infimum
Ordnungsrelation \leq in MM mit TMT \subseteq M

  1. obereSchrankeMobereSchranke \in M von T:xT:xobereSchrankeT: \forall x \in T: x \leq obereSchranke

  2. untereSchrankeMuntereSchranke \in M von T:xT:untereSchrankexT: \forall x \in T: untereSchranke \leq x

  3. obereGrenzeMobereGrenze \in M von TT ist definiert durch das minimale Element der oberen Schranken

  4. untereGrenzeMuntereGrenze \in M von TT ist definiert durch das maximale Element der unteren Schranken

  5. SupremumSupremum ist definiert durch das kleinste Element der Menge der oberen Schranken.

  6. InfimumInfimum ist definiert durch das größte Element der Menge der unteren Schranken.

Beispiel: Supremum / Infimum

Teilmenge Infimum Supremum minimale Element maximale Element
{2,3,6}\{2,3,6\} 22 66 22 66
[0,8)R[0,8)\in \R 00 88 0 {}\{\}

Beispiel: Obere Grenze:
{3,4}{1,2,3,4,5,6,7} in R=/\{3,4\} \in \{1,2,3,4,5,6,7\} \text{ in } R=/

Definition: Existenzsatz Supremum
Eine Menge hat ein Supremum, wenn sie nur eine obere Grenze hat.

Definition: Existenzsatz Infimum
Eine Menge hat ein Infimum, wenn sie nur eine untere Grenze hat.

1.5 Verbände

Definition: Verband
Zu zwei Elementen a,bMa,b\in M existiert das SupremumSupremum und das InfimumInfimum:
ab=sup{a,b}a \sqcup b = sup\{a,b\}
ab=inf{a,b}a \sqcap b = inf\{a,b\}

1.6 Äquivalenzrelationen

Definition: Äquivalenzrelation
RR heißt Aquivalenzrelation, wenn

Äquivalenzrelationen werden auch durch \equiv dargestellt.

Definition: Äquivalenzklasse
Jedes Element der Äquivalenzrelation in MM ist in der Äquivalenzklasse [x][x]
[x]={yM:yx}[x] = \{y \in M: y \equiv x\}

Eigenschaften von Äquivalenzklassen

  1. Reflexivität: x[x]x \in [x]
  2. Symmetrie: y[x]    x[y]y \in [x] \implies x\in [y]
  3. Transitivität: (x[y]y[z])    x[z](x \in [y] \land y \in [z]) \implies x \in [z]

Außerdem gilt:
Die Menge der Äquivalenzklassen von MM ergibt zusammengenommen die ganze Menge MM.
xM[x]=M\bigcup_{x \in M} [x] = M

1.7 Restklassen

Definition: Kongruenz modulo m
Zwei natürlichen Zahlen sind kongruent modulo m oder m\equiv_{m}, wenn sie bei der Division durch die natürliche Zahl mm denselben Rest rr lassen.
Hierbei entsteht folgende Äquivalenzrelation: mZ×Z\equiv_{m} \subseteq \Z \times \Z
Die Aquivalenzklassen der Relation heißen Restklassen modulo m.

Beispiele: Kongruenz modulo m

1.8 Abbildungen

Definition: Abbildung
Eine Abbildung beschreibt die Zuordnung von der Quell- zur Zielmenge.
Eigenschaften einer Abbildung

  1. Existenz
  2. Eindeutigkeit

Definition: Links- / Rechtseindeutigkeit
Linkseindeutigkeit

Rechtseindeutigkeit

Eigenschaften

Beispiel Links-/Rechtseindeutigkeit:
Linkseindeutigkeit:

würde Linkseindeutigkeit verletzen
a aus A
x aus B
y aus B
b aus A

Rechtseindeutigkeit:

würde Rechtseindeutigkeit verletzen
x aus B
a aus A
b aus A
y aus B

Definition: Links- und Rechtstotalität
Linkstotalität
xA:yB:(x,y)R\forall x \in A: \exists y \in B: (x,y) \in R

Rechtstotalität
yB:xA:(x,y)R\forall y \in B: \exists x \in A: (x,y) \in R

Eigenschaften

Beispiel Links-/Rechtstotalität:
Linkstotalität

würde Linkstotalität verletzen
a aus A
x aus B
b aus A
c aus A
y aus B
d aus A

Rechtstotalität

würde Rechtstotalität verletzen
w aus B
a aus A
x aus B
y aus B
b aus A
z aus B

Definition: Abbildung
Eine Relation heißt Abbildung oder Funktion, wenn sie

Zu jedem xAx \in A existiert genau ein yBy \in B, sodass (x,y)R(x,y) \in R

Schreibweise für eine Abbildung RR von AA nach BB: R:ABR: A \rightarrow B

AA ist hierbei der Definitionsbereich oder auch Quellmenge
BB ist hierbei das Bild oder auch Zielmenge

Beispiel: Abbildung anhand der Funktion f(x)=2xf(x) = 2x

1
2
3
2
4
6

weitere Abbildung

x
a
y
b
c
z

Eigenschaften von Abbildungen

2. Algebraische Strukturen

2.1 Verknüpfungen

Definition: Verknüpfung
Die Verknüpfung einer nichtleeren Menge ist eine Abbildung.
Das Ergebnis zweier verknüpfter Elemente wird dargestellt durch xyx \circ y

Das Paar (M,)(M, \circ) wird algebraische Struktur genannt.

Kommutativgesetz
Eine algebraische Struktur ist kommutativ, falls
x,yM:xy=yx\forall x,y \in M: x \circ y = y \circ x

Assoziativgesetz
Eine algebraische Struktur ist assoziativ, falls
x,y,zM:(xy)z=x(yz)\forall x,y,z \in M: (x \circ y) \circ z = x \circ (y \circ z)

Beispiele für algebraische Strukturen:

Bemerkung: Die Subtraktion von natürlichen Zahlen ist keine algebraische Struktur,
da bei negativen Ergebnissen der Bereich der natürlichen Zahlen verlassen wird

Darstellungsform: Verknüpfungstafel
Beispiel: algebraische Struktur ({1,2,3},+)(\{1,2,3\}, +)

+ 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
Bemerkung: Die algebraische Struktur ist kommutativ, 
wenn die Verknüpfungstafel an der Diagonalen (hier 2,4,6) symmetrisch ist.

Existenzsatz
a,bM:xM:ax=b\forall a,b \in M: \exists x \in M: a \circ x = b

Angewendet auf die Verknüpfungstafel: Jedes Element kommt in jeder Zeile der Tabelle mind. einmal vor. (Bei ...xa=b)... \: x \circ a = b) kommt jedes Element in jeder Spalte mind. einmal vor.

Eindeutigkeitssatz
a,bM:x,yM:(ax=b)(ay=b)    x=y\forall a,b \in M: \forall x,y \in M: (a \circ x = b) \land (a \circ y = b) \implies x = y

Angewendet auf die Verknüpfungstafel: Jedes Element kommt in jeder Zeile der Tabelle max. einmal vor. (Bei ...xa=bya=b...)... x \circ a = b \land y \circ a = b ...) kommt jedes Element in jeder Spalte max. einmal vor.

Beispiel: Existenzsatz

Angewendet auf die Verknüpfungstafel:

({2,1,0,1,2},+)(\{-2, -1, 0, 1, 2\}, +) -2 -1 0 1 2
-2 -4 -3 -2 -1 0
-1 -3 -2 -1 0 1
0 -2 -1 0 1 2
1 -1 0 1 2 3
2 0 1 2 3 4

Beispiel: Eindeutigkeitssatz

Angewendet auf die Verknüpfungstafel

({1,2,3},+)(\{1,2,3\}, +) 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6

Definition: Endliche Algebraische Strukturen
Eine endliche algebraische Struktur existiert, wenn Eindeutigkeit und Existenz gleichwertig sind.

2.2 Restklassenoperationen

Definition: Restklassenoperationen
Restklassenaddition
[a]m[b]m=[a+b]m[a]_m \oplus [b]_m = [a + b]_m

Restklassenmultiplikation
[a]m[b]m=[ab]m[a]_m \otimes [b]_m = [a * b]_m

Unabhängigkeit vom Repräsentanten
Eigenschaften von Äquivalenzklassen, die anhand eines Repräsentanten festgelegt werden müssen bewiesen werden, dass die unabhängig vom Repräsentanten gelten.

Beispiel: Beweis Unabhängigkeit vom Repräsentanten
zu beweisen: (Z/m,)(\Z /m, \oplus)
gegeben: a,b,x,yZa,b, x, y \in \Z mit [a]m=[b]m[x]m=[y]m[a]_m = [b]_m \land [x]_m = [y]_m
zu zeigen: [a+b]m=[x+y]m[a+b]_m = [x+y]_m
nach Voraussetzung: o,pZo, p \in \Z, so dass ab=oma-b = o*m und xy=pmx-y = p*m
dann gilt:
a+b(xy)a + b - (x - y)
=ab+xy= a - b + x - y
=om+pm= o * m + p * m
=m(o+p)= m (o + p)

Bemerkung: Rechnen mit Restklassenoperationen kann durch 
die korrekte Wahl des Repräsentanten vereinfacht werden.

Außerdem können bei Unabhängigkeit des Repräsentanten 
Kommutativ- und Assoziativgesetze angewendet werden.

2.3 Gruppen

Definition: Gruppe
Eine algebraische Struktur heißt Gruppe GG, wenn folgendes gilt:

oderoder

Definition: Abelsche Gruppe
Eine Abelsche Gruppe hat zur Gruppe die zusätzliche Definition der Kommutativität. In diesem Fall wird ++ anstatt von \circ verwendet.

Beispiel Neutrale und Inverse Elemente:

Bemerkung: Es gibt genau ein Neutrales Element.

Eindeutigkeit der Lösbarkeit von einer Gruppe
Für jede Gruppe gilt der Eindeutigkeitssatz. D.h. es gibt für jedes a,bGa,b \in G höchstens eine Lösung cGc \in G der Gleichung ac=ba \circ c = b

Ordnung einer Gruppe
Als Ordnung einer Gruppe wird die Anzahl der Elemente definiert.
G|G|

Beispiel zur Ordnung einer Gruppe:
({1,2,3},+)=3|(\{1,2,3\}, +)| = 3

2.4 Restklassengruppen mit Multiplikation

Beispiel: ggT durch Primfaktorzerlegung - ggT(240,420)
240=22(2235)240 = 2 * 2 * (2 * 2 * 3 * 5)
420=(2235)7420 = (2 * 2 * 3 * 5) * 7
ggT(240,420)=2235=60ggT(240,420) = 2 * 2 * 3 * 5 = 60

Definition: “div” und "mod"
a=qb+ra = q * b + r
q=adivbq = a \: div \: b Quotient der Division
r=amodbr = a \: mod \: b Rest der Division

Beispiel: a = 68, b = 10
q=6810=6q = \frac{68}{10} = 6
r=68mod10=8r = 68 \: mod \: 10 = 8
68=610+868 = 6 * 10 + 8

gemeinsame Teiler
a=qb+ra = q * b + r
Die Menge gT(a,b)gT(a,b) der gemeinsamen Teiler ist gleich der Menge gT(b,r)gT(b,r)
Am Beispiel von oben: gT(68,10)={2}=gT(10,8)gT(68, 10) = \{2\} = gT(10, 8)

Euklidischer Algorithmus
Algorithmus zur Berechnung des ggTggT zweier positiver ganzer Zahlen aa und bb
ggT(a,b):(a>b)ggT(a, b): (a > b)
a=qb+r1a = q * b + r_1
b=qr1+r2b = q * r_1 + r_2
r1=qr2+r3r_1 = q * r_2 + r_3
......
rn1=qrn+0r_{n-1} = q * r_n + 0
ggT(a,b)=rnggT(a,b) = r_n
Bemerkung: q ist der Quotient und Zeilenunabhängig

Definition: Satz von Bézout
Für a,ba, b gibt es ein aNa^{*} \in \N und bZb^{*} \in \Z, mit:
aa+bb=ggT(a,b)a^{*}*a + b^{*} * b = ggT(a,b)

Beispiel: Satz von Bézout:

a=17,b=5a = 17, b = 5
ggT(17,5)=1ggT(17,5) = 1
aN=3a^{*} \in \N = 3
bZ=10b^{*} \in \Z = -10
aa+bb=317+(105)=1=ggT(17,5)a^{*} * a + b^{*}*b = 3 * 17 + (- 10 * 5) = 1 = ggT(17,5)

Existenzsatz: Multiplikative Inverse Restklasse
Eine Restklasse [a]m[a]_m besitzt nach dem Satz von Bézout ein multiplikatives Inverses [a]m[a^{*}]_m:
[a]m[a]m=[1]m[a]_m \otimes [a^{*}]_m = [1]_m

Beispiel: Multiplikatives Inverse
[3]5[2]5=[1]5[3]_5 \otimes [2]_5 = [1]_5
[2]5[2]_5 ist die multiplikativ Inverse Restklasse zu [3]5[3]_5.

Multiplikative Restklassengruppe
Wenn der modulo eine Primzahl ist, dann ist Z/m\Z / m \ {[0]m}\{[0]_m\} eine Gruppe.

Existenzsatz: Restklassengleichung
Wenn der ggT(a,m)ggT(a,m) durch bb teilbar ist, gilt folgende Gleichung:
[a]m[x]m=[b]m[a]_m \otimes [x]_m = [b]_m

Vorgehen:

nein
ja
Euklid-Algorithmus
ggT von a, m teilt b
Euklid rückwärts
Ergebnis * b/ggT
kleinsten Repräsentanten
Probe
keine Lösung
eine / mehrere Lösungen

Beispiel: Restklassengleichung
ggT(12,15)=3ggT(12,15) = 3

[12]15[x]15=[5]15[12]_{15} \otimes [x]_{15} = [5]_{15}
33 ist kein Teiler von 55 \rightarrow es gibt keine Lösung für die obige Gleichung.

[12]15[x]15=[9]15[12]_{15} \otimes [x]_{15} = [9]_{15}
33 ist Teiler von 99, da 99 ein Vielfaches vom ggT(12,15)=3ggT(12,15) = 3 ist \rightarrow die obige Gleichung besitzt Lösung(en):

Berechnung der Lösung:

  1. Euklid-Algorithmus vorwärts: (evtl. einen höheren Repräsentanten wählen)
    [12]15=[27]15[12]_{15} = [27]_{15}
    27=115+1227 = 1 * 15 + 12
    15=112+315 = 1 * 12 + 3 hier für Euklid-Algorithmus rückwärts einsteigen
    12=43+012 = 4 * 3 + 0

  2. Euklid-Alorithmus rückwärts:
    3=15123 = 15 - 12
    3=15(2715)3 = 15 - (27 - 15)
    3=2153 = 2 * 15 - 1 27* 27
    [1]15=[14]15[-1]_{15} = [14]_{15}
    Daher ist das multiplikative Inverse von [12]15[12]_{15} die Restklasse [1]15=[14]15[-1]_{15} = [14]_{15}.

  3. Multiplikator für das gesuchte xx identifizieren:
    b=9,ggT(a,m)=3    93=3b = 9, ggT(a,m) = 3 \implies \frac{9}{3} = 3

  4. Lösung finden:
    x=(MultiplikatormultiplikativesInverse)modm=(314)mod15=12x = (Multiplikator * multiplikatives Inverse) \: mod \: m = (3 * 14) \: mod \: 15 = 12

Ergebnis: [12]15[12]15=[9]15[12]_{15} \otimes [12]_{15} = [9]_{15}

2.5 Untergruppen

Definition: Untergruppe
Wenn eine Gruppe (G,)(G, \circ) eine nichtleere Teilmenge UU besitzt, heißt diese Untergruppe, wenn sie selbst eine Gruppe mit \circ bildet.
Die Kurzschreibwese ist UGU \leq G

Beispiel: Untergruppe
Die Gruppe (Z,+)(\Z, +) ist eine Untergruppe der Gruppe (Q,+)(\mathbb{Q}, +)
Also kurzgeschrieben: (Z,+)(Q,+)(\Z, +) \leq (\mathbb{Q}, +)

Untergruppen, die von einem Element erzeugt werden:
Eine von g(G,)g \in (G, \circ) erzeugte Untergruppe ist definiert durch die Menge {g...gkmalkN}\{\underbrace{g \circ ... \circ g}_{k - mal} | k \in \N\} und hat folgende Schreibweise <g><g>.

Wiederholungen von Gruppenelementen:
g(G,)g \in (G, \circ) und kZk \in \Z
gk={g...gkmalfallsk>0e(neutrales Element)fallsk=0g1...g1kmalfallsk<0g^{k}=\left \{ \begin{array}{ll} \underbrace{g \circ ... \circ g}_{k-mal} & falls & k > 0 \\\\ e (\text{neutrales Element}) & falls & k = 0 \\\\ \underbrace{g^{-1} \circ ... \circ g^{-1}}_{-k-mal} & falls & k < 0 \end{array}\right.

Ordnung eines Gruppenelements
Die Ordnung eines Gruppenelements schreibt man durch ord(g)ord(g) und bezeichnet die kleinste Zahl kNk \in \N für die gilt: gk=eg^{k} = e.
Sollte es kein kNk \in \N geben, für das gilt gk=eg^{k} = e, dann hat gg die Ordnung \infin.

Beispiel: Ordnung eines Gruppenelements
(Z/6,)(\Z/6, \oplus)

gg ord(g)ord(g) <g><g>
0 1 [0]6[0]_6
1 6 {[1]6,[2]6,[3]6,[4]6,[5]6,[0]6}\{[1]_6, [2]_6, [3]_6, [4]_6, [5]_6, [0]_6\}
2 3 {[2]6,[4]6,[0]6}\{[2]_6, [4]_6, [0]_6\}
3 2 {[3]6,[0]6}\{[3]_6, [0]_6\}
4 3 {[4]6,[2]6,[0]6}\{[4]_6, [2]_6, [0]_6\}
5 6 {[5]6,[4]6,[3]6,[2]6,[1]6,[0]6}\{[5]_6, [4]_6, [3]_6, [2]_6, [1]_6, [0]_6\}

Erklärung anhand eines Beispiels der Tabelle:
Durch (Z/6,)(\Z /6, \oplus) ergibt sich am Beispiel von g=4g=4 folgendes <g><g>:
[4]6+[4]6=[8]6=[2]6[4]_6 + [4]_6 = [8]_6 = [2]_6
[4]6+[4]6+[4]6=[12]6=[0]6[4]_6 + [4]_6 + [4]_6 = [12]_6 = [0]_6
[4]6+[4]6+[4]6+[4]6=[16]6=[4]6[4]_6 + [4]_6 + [4]_6 + [4]_6 = [16]_6 = [4]_6

Ordnung der Untergruppe:
Für die Untergruppe H(G,)H \leq (G, \circ) gilt:
ord(H)ord(G)ord(H) | ord(G)

Satz von Euler:
gord(G)=eg^{ord(G)} = e
Dieser Satz gilt, da gord(G)=gkord(g)=(gord(g))k=ek=eg^{ord(G)} = g^{k * ord(g)} =(g^{ord(g)})^k = e^k = e

2.6 Isomorphismen

Gruppenisomorphismus
Ein Isomorphismus ist eine Abbildung ϕ:GH\phi: G \rightarrow H der beliebigen Gruppen (G,)(G, \circ) und (H,)(H, \otimes), die folgende Eigenschaften hat:

Wenn es einen Isomorphismus zwischen GG und HH gibt, nennt man die beiden Gruppen isomorph.

Isomorph = Iso + morph = gleich + gestaltet


Erhaltung der Gruppenstruktur:


Kryptologie

Einführung

KryptografieKryptografie
=Krypto+grafie= Krypto + grafie
=geheim+schreiben= geheim + schreiben
\rightarrow Die Lehre vom geheimen Schreiben

Kryptologie:

Schutzziele:

Kryptosystem:

Es ergeben sich folgende Abbildungen:

Symmetrische Verschlüsselungsverfahren

Asymmetrische Verschlüsselungsverfahren

Klassische Verfahren

Skytale

Beispiel Skytale:
P="diesisteinbeispiel"P = "diesisteinbeispiel"
K=4K= 4

1 2 3 4
d i e s
i s t e
i n b e
i s p i
e l

C=diiieisnsletbpseeiC=diiieisnsletbpseei


Caesar

Verschiebung des Alphabets um einen Schlüssel k

Beispiel Caesar:
P="diesisteinbeispiel"P = "diesisteinbeispiel"
K=4K= 4

Alphabet
alt ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ
neu EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD

C=hmiwmwximrfimwtmipC=hmiw mwx imr fimwtmip


Permutations-Chiffren

Permutationen = Anordnungsmöglichkeiten
Jeder Buchstabe kann auf jeden anderen beliebigen weiteren Buchstaben abgebildet werden \rightarrow K=26!|K| = 26!

Beispiel Permutations-Chiffren:
P="diesisteinbeispiel"P = "diesisteinbeispiel"
K=[neuesAlphabet]K= [neues Alphabet]

Alphabet
alt ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ
neu OSBWGDJVZFNMAYTQLEPRCHKIUXOSBWGDJVZFNMAYTQLEPRCHKIUX

C=wzgpzprgzasgzpqzgmC=wzgp zpr gza sgzpqzgm


Verfahren zur Entschlüsselung für monoalphabetische Substitutionsverfahren

Häufigkeitsanalyse

Bigrammanalyse
Buchstabenkombinationen werden analysiert (Häufigkeit)
Bsp. “en”, “er”, “ch”, “ei” usw.


Vigenère-Chiffre

Vigenere Quadrat

Beispiel Vigenère-Chiffre:
P="diesisteinbeispiel"P = "diesisteinbeispiel"
K=GEHEIMK= GEHEIM

P diesisteinbeispield i e s i s t e i n b e i s p i e l
K geheimgeheimgeheimg e h e i m g e h e i m g e h e i m

C=jmlwqeziprjqowwmmxC= jmlw qez ipr jqowwmmx


Verfahren zur Entschlüsselung für polyalphabetischen Substitutionsverfahren

Kasiski-Test

  1. wiederholende Zeichenketten im Geheimtext untersuchen
  2. Indizies der Zeichenketten notieren
  3. Abstände ermitteln
  4. Zerlegung des Abstands in Primfaktoren
  5. gemeinsamen Teiler ermitteln, der in allen Abständen vorkommt \rightarrow Schlüssellänge
  6. Aufteilen des Geheimtexts in Teiltexte
  7. Häufigkeitsanalyse
  8. Schlüssel herausfinden

Friedman-Test

Mithilfe des Friedman-Tests kann die Größenordnung des Schlüssels abgeschätzt werden, mit dem ein Text durch polyalphabetische Substitution verschlüsselt wurde.
Idee: Je länger das Schlüsselwort, desto regelmäßiger sind die Häufigkeiten verteilt

  1. Annahme der Schlüssellänge treffen k|k|
  2. Text in k|k|-Spalten untereinander aufschreiben
  3. Koinzidenz pro Spalte ausrechnen
    κ(m)=1n(n1)j=126hi(hi1)n=La¨nge des Texthi=Ha¨ufigkeit des jeweiligen Buchstabens \kappa(m) = \frac{1}{n * (n-1)} * \sum\limits_{j=1}^{26} h_i * (h_i - 1) \\ n = \text{Länge des Text} \\ h_i = \text{Häufigkeit des jeweiligen Buchstabens}
  4. Koinzidenzen auf bekannte Werte prüfen (κDE(m)0,0762,κRND(m)0,0385\kappa_{DE} (m) \approx 0,0762, \kappa_{RND} (m) \approx 0,0385 )
  5. Bei passenden Koinzidenzen sind die Spalten jeweils monoalphabetisch verschlüsselt (da die wahrscheinliche Schlüssellänge bekannt ist)

Perfekte Sicherheit
Sicherheit durch Ununterscheidbarkeit

  1. Angreifer wählt zwei bel. gleichlange Klartexte
  2. Einer der Texte wird zufällig gewählt und verschlüsselt
  3. Wenn der Angreifer eine Wahrscheinlichkeit von 50% hat, gilt das Kryptosystem als sicher.

One Time Pad Verfahren

Euler und Fermat

Eulersche Phi-Funktion
ϕ(n)={aN1anggT(a,n)=1}\phi(n) = |\{a \in \N | 1 \leq a \leq n \land ggT(a,n) = 1\}|
ϕ(n)\phi(n) ist die Anzahl der teilerfremden, natürlichen Zahlen zu nn im Bereich [1,n][1,n].

Berechnung der Phi-Funktion

Satz von Euler
aϕ(n)n1,  (a,nNggT(a,n)=1)a^{\phi (n)} \equiv_n 1, \:\: (a,n \in \N \land ggT(a,n) = 1)

Beispiel:
7222mod107^{222} mod \: 10

  1. ggT(7,10)=1,ϕ(10)=4ggT(7,10) = 1, \phi (10) = 4
  2. 741(mod10)7^4 \equiv 1 \: (mod \: 10)
  3. 7222=7455+2=(74)5572=15572(mod10)=49(mod10)=97^{222} = 7^{4*55 + 2} = (7^4)^{55} * 7^2 = 1^{55} * 7^2 \: (mod \: 10) =49 \: (mod \: 10) = 9

Satz von Fermat
ap1p1,  (p ist Primzahl,aN,1ap1)a^{p-1} \equiv_p 1, \:\: (p \text{ ist Primzahl}, a \in \N, 1 \leq a \leq p-1)

RSA-Verschlüsselung

RSA-Verschlüsselung - asymmetrisches Verschlüsselungsverfahren

Konstruktion des public key

  1. Wähle zwei sehr große Primzahlen pp und qq
  2. n=pqn = p * q
  3. ϕ(n)=(p1)(q1)\phi (n) = (p-1) * (q-1) // siehe Berechnung des Satzes von Euler
  4. Wähle eine zu ϕ(n)\phi (n) teilerfremde Zahl ee (ggT(e,ϕ(n))=1ggT(e, \phi (n)) = 1) mit 1<e<ϕ(n)1 \lt e \lt \phi (n)
  5. Das Tupel (n,e)(n, e) ist der public key

Konstruktion des private key

  1. Berechne dd in (1<d<ϕ(n)1 \lt d \lt \phi (n)) als das multiplikative Inverse zu ee in Zϕ(n)edϕ(n)1\Z_{\phi (n)} \rightarrow e * d \equiv_{\phi (n)} 1 (Berechnung durch den erweiterten euklidischen Alogrithmus)
  2. Das Tupel (n,d)(n, d) ist der private key

Verschlüsselung
cc = Geheimtext
mm = Nachricht
ee = Teil des öffentlichen Schlüssels des Empfängers
nn = Teil des öffentlichen Schlüssels des Empfängers
c=memodnc = m^e \: mod \: n

Entschlüsselung
cc = Geheimtext
mm = Nachricht
dd = Teil des privaten Schlüssels des Empfängers
nn = Teil des privaten Schlüssels des Empfängers
m=cdmodnm = c^d \: mod \: n

Beispiel Ver- und Entschlüsselung eines Texts mithilfe von RSA:

  1. Bildung des öffentlichen Schlüssels:
    p=17,q=23n=pq=1723=391ϕ(n)=(p1)(q1)=1622=3521<e<352p = 17, q = 23 \\ n = p * q = 17 * 23 = 391 \\ \phi (n) = (p - 1) * (q - 1) = 16 * 22 = 352 \\ 1 \lt e \lt 352 mit ggT(e,352)=1ggT(e, 352) = 1 \rightarrow Wähle e=43e = 43

publickey(391,43)publickey(391, 43)

  1. Bildung des privaten Schlüssels:
    multiplikatives Inverse:
    Euklidischer Algorithmus
    352=843+843=58+38=23+23=12+12=21+0352 = 8 * 43 + 8 \\ 43 = 5 * 8 + 3 \\ 8 = 2 * 3 + 2 \\ 3 = 1 * 2 + 1 \\ 2 = 2 * 1 + 0

Euklidischer Algorithmus rückwärts:
1=321=3(823)1=3381=3(4358)81=3431681=34316(352843)1=1314316352d=[131]3521= 3 -2 \\ 1 = 3 - (8 - 2*3) \\ 1 = 3 * 3 - 8 \\ 1 = 3 * (43 - 5 * 8) - 8 \\ 1 = 3 * 43 - 16 * 8 \\ 1 = 3 * 43 - 16 * (352 - 8 * 43) \\ 1 = 131 * 43 - 16 * 352 \\ d = [131]_{352}

privatekey(391,131)privatekey(391, 131)

  1. Verschlüsselung der Nachricht:
    m=27c=memodn=2743mod391=190m = 27 \\ c = m^e \: mod \: n = 27^{43} \: mod \: 391= 190 Square and multiply

Square and Multiply Algorithmus
gkmodng^k \: mod \: n

  1. Zerlege kk in die Binärdarstellung
  2. Berechne die Zweierpotenzen von g modulo n
  3. Multipliziere die Ergebnisse miteinander, solange sie > 0 sind

Square and multiply am Bsp:
274327^{43}

  1. 43=32+8+2+1=25+23+21+2043 = 32 + 8 + 2 + 1 = 2^5 + 2^3 + 2^1 + 2^0
  2. 2743=2725272327227127^{43} = 27^{2^5} * 27^{2^3} * 27^{2} * 27^{1}
  3. 2725=2732=(2716)2mod391=352mod391=522723=278mod391=101272mod391=338271=2727^{2^5} = 27^{32}= (27^{16})^2 \: mod \: 391= 35^2 \: mod \: 391 = 52 \\ 27^{2^3} = 27^{8} \: mod \: 391 = 101 \\ 27^{2} \: mod \: 391 = 338 \\ 27^{1} = 27
  4. 2743=5210133827mod391=19027^{43} = 52 * 101 * 338 * 27 \: mod \: 391 = 190

  1. Entschlüsselung der Nachricht:
    c=190m=cdmodn=190131mod391=27c = 190\\ m = c^d \: mod \: n = 190^{131} \: mod \: 391= 27

Warum ist RSA sicher?
Es ist kein effizientes Verfahren bekannt, sehr große Zahlen zu faktorisieren
Entschlüsselung der Nachricht nur durch den privatekeyprivatekey möglich.
Berechnung durch dd nur durch Primfaktoren möglich.

Primzahltests

Finden einer geeignet großen Primzahl

  1. Zunächst raten
  2. dann testen

Primzahlsatz
π(n)nln(n)\pi (n) \approx \frac{n}{ln (n)}

Beispiel Primzahlsatz:
π(10)=4={1,3,5,7}\pi (10) = 4 = |\{1,3,5,7\}|

Fermatsche Pseudoprimzahl
nNP,a mit 1<a<nn \in \N \land \notin \mathbb{P}, a \text{ mit } 1 \lt a \lt n
n ist Pseudoprimzahl, falls an1n1n \text{ ist Pseudoprimzahl, falls } a^{n-1} \equiv_n 1

Beispiel Fermatsche Pseudoprimzahl:
n=91290̸911390911490911590̸911690̸911790̸911890̸911990911n = 91 \\ 2^{90} \not\equiv_{91} 1 \\ 3^{90} \equiv_{91} 1 \\ 4^{90} \equiv_{91} 1 \\ 5^{90} \not\equiv_{91} 1 \\ 6^{90} \not\equiv_{91} 1 \\ 7^{90} \not\equiv_{91} 1 \\ 8^{90} \not\equiv_{91} 1 \\ 9^{90} \equiv_{91} 1
9191 ist Pseudoprim zu 3, 4, 9 aber nicht zu 2, 5, 6, 7

Miller-Rabin-Test
Eingabe: nNungeraden \in \N \land \text{ungerade}
Ausgabe: “nPn \notin P” oder "nn wahrscheinlich P\in \mathbb{P}"

Wenn nPn \in \mathbb{P} und an1n1a^{n-1} \equiv_n 1, dann:
an12n1a^{\frac{n-1}{2}} \equiv_n 1 oder an12n1a^{\frac{n-1}{2}} \equiv_n -1
Falls an12n1a^{\frac{n-1}{2}} \equiv_n 1, dann auch an14n±1a^{\frac{n-1}{4}} \equiv_n \pm 1

Korrektheit

Diskreter Logarithmus

Definition: Diskreter Logarithmus
Der diskrete Logarithmus (x=dlogg(y)x = dlog_g (y)) von yy zur Basis gg ist der kleinste Exponent xx der Gleichung gxmodp=yg^x \: mod \: p = y mit (y[1,p1];gZ;pP).(y \in [1, p-1]; g \in \Z; p \in \mathbb{P}).

Beispiel diskreter Logarithmus:
y=13;g=4;p=7y = 13;\: g= -4;\: p = 7
x=dlog4(13)x = dlog_{-4} (13)

Bemerkungen
xx 0 1 2 3 4 5 6 [0,p1][0,p-1]
(4)xmod7(-4)^x \: mod \: 7 1 3 2 6 4 5 1 enthält alle Zahlen von [1,p-1] -> (-4) ist erzeugendes Element

Diffie-Hellman-Key-Exchange
Diffie-Hellman-Key-Exchange ist ein Verfahren zum Austausch eines symmetrischen Schlüssels über ein unsicheres Medium und basiert auf den aufwendigen Berechnungen diskreter Logarithmen.

Ablauf:

  1. Sender und Empfänger wählen öffentlich eine große Primzahl pp und ein erzeugendes Element gg.
  2. Der Sender und Empfänger wählen jeweils eine geheime Zahl a bzw. b aus [1,p1]a \text{ bzw. } b \text{ aus } [1, p-1] und bilden damit x=gamodp bzw. y=gbmodpx = g^a \: mod \: p \text{ bzw. } y = g^b \: mod \: p. x bzw. yx \text{ bzw. } y schicken sie jeweils an den anderen.
    Der gemeinsame privatekeyprivatekey ergibt sich dann durch gabmodp=zg^{a*b} \: mod \: p = z
  3. Den gemeinsamen privatekeyprivatekey berechnen die beiden jeweils durch yamodp=(gb)amodp=gabmodp=z bzw. xbmodp=(ga)bmodp=gabmodp=zy^a \: mod \: p = (g^b)^a \: mod \: p = g^{a*b} \: mod \: p = z \text{ bzw. } x^b \: mod \: p = (g^a)^b \: mod \: p = g^{a*b} \: mod \: p = z

Beispiel Diffie-Hellman-Key-Exchange:
p=7;g=(4)A:a=9x=gamodp=(4)9mod7=6B:b=12y=gbmodp=(4)12mod7=1A:z=yamodp=19mod7=1B:z=xbmodp=612mod7=1privatekey=1p = 7;\: g = (-4) \\ A: a = 9 \rightarrow x = g^a \: mod \: p = (-4)^9 \: mod \: 7 = 6\\ B: b = 12 \rightarrow y = g^b \: mod \: p = (-4)^{12} \: mod \: 7 = 1 \\ A: z = y^{a} \: mod \: p = 1^{9} \: mod \: 7 = 1\\ B: z = x^{b} \: mod \: p = 6^{12} \: mod \: 7 = 1 \\ privatekey = 1

ElGamal-Kryptosystem
Das ElGamal-Kryptosystem basiert auf der Idee des Diffie-Hellman-Key-Exchange und ist ein asymmetrisches Verschlüsselungsverfahren.

Ablauf:

  1. Wie bei dem Diffie-Hellman-Key-Exchange wird auch hier ein gg und eine Primzahl pp bestimmt.
  2. Sender und Empfänger wählen jeweils ein geheimes a bzw. ba \text{ bzw. } b und bilden nach Diffie-Hellman ihr x bzw. yx \text{ bzw. } y als öffentlichen Schlüssel.
  3. Zur Verschlüsselung rechnet der Sender (hier B) c=mxbmodp=mgabmodpc = m * x^b \: mod \: p = m * g^{a * b} \: mod \: p und sendet (y,c)(y,c) and den Empfänger.
  4. Zur Entschlüsselung berechnet der Empfänger (hier A)
    y(p1)ac=(gb)p1ac=gb(p1a)c=g(p1)bgabc=1bgabc=gabc=gab(mgab)=my^{(p - 1) - a} * c \\ = (g^b)^{p - 1 - a} * c \\ = g^{b * (p - 1 - a)} * c \\ = g^{(p - 1) * b} * g^{-a * b} * c \\ = 1^b * g^{-a * b} * c \\ = g^{-a * b} * c \\ = g^{-a * b} * (m * g^{a * b)} \\ = m

Beispiel ElGamal:
p=23;g=7;m=8a=5x=gamodp=75mod23=17b=3y=gbmodp=73mod23=21Verschlu¨sselung: c=mxb=20u¨bermittelt wird: (21,20)Entschlu¨sselung: m=yp1acmodp=211720mod23=8p = 23; g = 7; m = 8 \\ a = 5 \rightarrow x = g^a \: mod \: p = 7^5 \: mod \: 23 = 17 \\ b = 3 \rightarrow y = g^b \: mod \: p = 7^3 \: mod \: 23 = 21 \\ \text{Verschlüsselung: } c = m * x^b = 20 \\ \text{übermittelt wird: } (21, 20) \\ \text{Entschlüsselung: } m = y^{p-1-a} * c \: mod \: p = 21^{17} * 20 \: mod \: 23 = 8

Baby-Step-Giant-Step - Algorithmus
Dieser Algorithmus dient zur effizienteren Berechnung des diskreten Logarithmus. (gesucht: x=dlogg(y) mit gxmodp=yx = dlog_g (y) \text{ mit } g^x \: mod \: p = y)
Ansatz:

Berechnung:

  1. s=p1s = \lceil \sqrt{p-1} \: \rceil
  2. x=qs+rx = q * s + r mit q,r[0,s1]q,r \in [0, s - 1]
  3. y=gxmodp=gqs+rmodpy = g^x \: mod \: p = g^{q * s + r} \: mod \: p
    gqsmodp=ygrmodp\Leftrightarrow g^{q * s} \: mod \: p = y * g^{-r} \: mod \: p
    Giant Steps: gqsmodpg^{q * s} \: mod \: p - Speichere Werte in einer Tabelle
    Baby Steps ygrmodpy * g^{-r} \: mod \: p - solange bis der Wert einem der Giant Steps entspricht

Beispiel: Baby-Step-Giant-Step-Algorithmus
p=31;g=17;y=23p = 31; \: g = 17; \: y = 23

  1. s=p1=30=6s = \lceil \sqrt{p-1} \: \rceil = \lceil \sqrt{30} \: \rceil = 6
  2. Giant Steps Tabelle
Giant Steps
q 0 1 2 3 4 5
17q6mod3117^{q * 6} \: mod \: 31 1 8 2 16 4 1
  1. Baby Steps Tabelle: 17rmod31=(171)rmod31=(1729)rmod31=11r17^{-r} \: mod \: 31 = (17^{-1})^r \: mod \: 31 = (17^{29})^r \: mod \: 31 = 11^r - multipilikatives Inverse zu 17 kann hier schnell berechnet werden, da 17 eine Primzahl ist g1=gp2\rightarrow g^{-1} = g^{p - 2}
Baby Steps
r 0 1 2 3 4 5
2311rmod3123 * 11^{r} \: mod \: 31 23 5 24 16 21 14
  1. Lösung: x=qs+r=36+3=21x = q * s + r = 3 * 6 + 3 = 21

Integrität und Authentizität von Nachrichten

Hash Funktion
Eine Hash-Funktion bildet Zeichenfolgen beliebiger Längen auf Zeichenfolgen fester Längen ab.

Ablauf:

  1. Die Kommunikationspartner einigen sich auf eine Hashfunktion.
  2. Der Sender übermittelt den Hashwert der Nachricht an den Empfänger
  3. Der Sender übermittelt ebenfalls das signierte Dokument (Signatur + nicht gehashte Nachricht) an den Empfänger
  4. Der Empfänger ermittelt zu der Nachricht des Dokuments den Hashwert und prüft die Signatur mit dem öffentlichen Schlüssel des Senders