0 Daumen
222 Aufrufe

Frage: RSA Verschlüsselung

p=5

q=7

Begriff der verschlüsselt werden soll ist LudS wobei

L=12

U=21

D=4

S=19

ist (sprich nach Nummer im Alphabet)


Code:

Nun habe ich ganz normal angefangen:

p=5

q=7

N=35

Phi von 35=24 (5x7; (5-1)x(7-1)

Bei Schritt 3: e stecke ich leider fest.

Es müsste gelten ggt(e,phi(n)=1

D.h. ich könnte eine beliebige Primzahl auswählen die kleiner als 24 ist.

Ich habe 11 ausgewählt, jage ich diese jedoch durch den erweiterten euklidschen Algorthmus kommt d=11 heraus, womit der private dem öffentlichen Schlüssel entsprechen würde.

Ich habe es dann noch mit 13 und 17 probiert, aber irgendwo scheint ein Fehler drin zu sein.

Tabelle für 13:

a     b    q   r       x       y

13  24   0   24  -11    6

24  13   1   11    6    -11

13  11   1    2    -5    6

11   2    5    1    1     -5

2    1    2     0    0     1

d ist demnach -11

Wenn ich darauf die Probe mache:

13(-11)=-143   -143:24 inkongruent zu 1mod24

Ich finde aber merkwürdigerweise meinen Fehler nicht.

Bei der Tabelle zu 17 dasselbe:

a     b  q    r    x     y

17  24  0  17  -7    5

24  17  1   7    5    -7

17   7   2   3    -2    5

7     3   2   1    1    -2

3     1   3   0    0    1

Es wäre nett wenn jemand mal drüberschauen könnte. Ich hatte sonst nie Probleme mit dem erweiterten euklidschen Algorithmus,.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

RSA Verschlüsselung

RSA ist ein asymmetrisches Verschlüsselungsverfahren, das zwei Schlüssel verwendet: einen öffentlichen Schlüssel zum Verschlüsseln von Daten und einen privaten Schlüssel zum Entschlüsseln. Die Sicherheit basiert auf der Schwierigkeit, große Primzahlen zu faktorisieren.

Gegebene Informationen:

- \(p=5\)
- \(q=7\)
- Begriff, der verschlüsselt werden soll: LudS, wobei \(L=12\), \(U=21\), \(D=4\), \(S=19\).

Vorbereitung:

1. Berechne \(N\) und \(\phi(N)\) (Eulersche Phi-Funktion)
2. Wähle ein \(e\), sodass \(gcd(e, \phi(N)) = 1\)
3. Berechne \(d\), sodass \(d \equiv e^{-1} \mod \phi(N)\)

Berechnung:

1. Berechnung von \(N\) und \(\phi(N)\):
- \(N = p \times q = 5 \times 7 = 35\)
- \(\phi(N) = (p-1)(q-1) = 4 \times 6 = 24\)

2. Wahl von \(e\):
- \(e=11\) ist eine Wahl, die dem Kriterium \(gcd(e, \phi(N)) = 1\) entspricht.

3. Berechnung von \(d\) mittels erweitertem euklidischen Algorithmus:
- Der erweiterte euklidische Algorithmus kann verwendet werden, um \(d\) zu finden, wobei \(d\) das multiplikative Inverse von \(e\) modulo \(\phi(N)\) ist.

Lösung des Missverständnisses bei der Berechnung von \(d\):

Für \(e = 11\), die Berechnung scheint auf einen falschen Wert von \(d\) hinzudeuten. Die korrekte Berechnung von \(d\), sollte so aussehen, dass \(ed \equiv 1 \mod \phi(N)\) gilt.

Verwenden wir Python zur Berechnung von \(d\):

python
def egcd(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, x, y = egcd(b % a, a)
        return (g, y - (b // a) * x, x)

def modinv(e, phi):
    g, x, y = egcd(e, phi)
    if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % phi

# Parameter
p = 5
q = 7
N = p * q
phi_N = (p - 1) * (q - 1)
e = 11  # Erster Versuch mit e = 11

# Berechnung von d
d = modinv(e, phi_N)
print("Der Wert von d für e=11 ist:", d)


Ergebnis: Der obige Code berechnet \(d\) korrekt für den gegebenen Wert von \(e\).

Verschlüsselung von LudS:

Nachdem \(e\), \(N\) und \(d\) gefunden wurden, wird die Verschlüsselung durch die Formel
\( c = m^e \mod N \)
durchgeführt, wobei \(c\) der verschlüsselte Text und \(m\) die zu verschlüsselnde Nachricht (hier die Zahlenrepräsentation der Buchstaben) ist.

Die Entschlüsselung würde analog durch die Formel
\( m = c^d \mod N \)
erfolgt, wobei \(m\) die ursprüngliche Nachricht darstellt.

Zusammenfassend: Der Schlüssel zur Lösung deines Problems liegt in der korrekten Berechnung von \(d\) mittels des erweiterten euklidischen Algorithmus. Versuche, den oben genannten Python-Code zu verwenden, um \(d\) korrekt zu berechnen. Danach kannst du die Verschlüsselung der gegebenen Zahlen durchführen, indem du jede Zahl \(m\) (repräsentiert durch L, U, D, S) entsprechend umwandelst.
Avatar von 2,9 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community