Asymmetrische Verschlüsselung
Schlüsselpaar:
- public Key (öffentlicher Schlüssel)
- private Key (privater Schlüssel)
RSA
Rivest Shamir Adleman (1977)
math. Grundlage: große Primzahlen
Bei der erzeugung eines Schlüsselpaares werden 2 Primzahlen miteinander mulipliziert. Das Produkt ist Teil beider Schlüssel
Bsp.:
---
title: RSA Message Flow
---
flowchart LR
subgraph Sender
Verschlüsseln
end
Verschlüsseln --> Nachricht --> Entschlüsseln
subgraph Receiver
Entschlüsseln --> Empfänger
prKey[("Private Key")]
end
Empfänger --> peKey[("Public Key")]
Empfänger --> prKey --> Entschlüsseln
peKey --> Verschlüsseln
Praxis der Ver- und Entschlüsselung:
Der Sender verschlüsselt mit dem öffentlichen Schlüssel des Empfängers ⇒ nur der Empfänger kann die Nachricht kann mit seinem dazugehörigen privaten Schlüssel entschlüsseln.
---
title: RSA Message Flow
---
flowchart LR
Alice(Alice<br/>entschlüsselt mit ihrem private Key)-- mithilfe von Bobs public Key verschlüsselt -->Bob(Bob<br/>entschlüsselt mit seinem private Key)
Bob-- mit mithilfe von Alice' public Key verschlüsselt -->Alice
Beispielrechnung von RSA
1. Primzahlen auswählen
Wir wollen zwei verschiedene Primzahlen p und q und berechnen das Produkt n.
2. Bestimme e
Bestimme e mit folgenden Bedingungen:
- e < n
- e teilerfremd zu (p-1) * (q-1)
Wähle 7
e und n sind der öffentliche Schlüssel.
3. Berechnung vom privaten Schlüssel
Ermittle / berechne dden privaten Schlüssel. Zu e wird das modular Inverse d gesucht, d.h.
(e*d) \mod ((p-1)*(q-1)) = 1 \\ (7*d) \mod 40 = 1 && \text{konkrete Zahlen} \\ (7*23) \mod 40 = 1 \\ 161 \mod 40 = 1 \\ d = 23 \end{align*}$$ --> d = 23 und u = 55 bilden den privaten Schlüssel. 40er Reihe durchgehen und immer 1 dazu addieren und überprüfen, ob es durch 7 Teilbar ist. $$ n * 40 + 1 \mod 7 = 1$$ #### 4. Verschlüsselung v: verschlüsseltes Zeichen; c: Klartextzeichen $$ v = c^e \mod n$$ z.B. Klartext c = 2v = 2^7 \mod 77 = 128 \mod 55 = 18
#### 5. Entschlüsselung $$\begin{align*} v^d \mod n = c \\ 74 347 713 614 021 927 913 318 776 832 \mod 55 = c \\ 2 = c \end{align*}$$ ## Beispiel: 1. $$p = 11\\ q = 13\\ n = 11 * 13 = 143$$ 2. $$(p-1) * (q-1) = 120 \\ e = 9$$ 3. $$\begin{align*} (e*d) \mod ((p-1)*(q-1)) = 1 \\ (9*d) \mod 120 = 1 && \text{konkrete Zahlen} \\ (9*103) \mod 120 = 1 \\ 721 \mod 120 = 1 \\ d = 103 \end{align*}$$ 4. $$\begin{align*} e_{peer} = 13 \\ n_{peer} = 756 614 297 \\ v = c^e_{peer} \mod n_{peer} \\ v = 11^e_{peer} \mod n_{peer} \end{align*}$$ 5. $$ v = c^e \mod n$$v = 42^7 \mod 143 = 2