Skip to content

RSA_mit_OpenSSL

kraeml edited this page Nov 22, 2025 · 2 revisions

🔐 RSA-Schlüssel mit OpenSSL generieren: Schritt-für-Schritt

  • Ziel: Zwei sichere Primzahlen erzeugen und daraus ein RSA-Schlüsselpaar erstellen.
  • Zielgruppe: Einsteiger:innen, Entwickler:innen, Lehrkräfte.
  • Motivation: In 10 Minuten lernst du, wie RSA-Schlüssel praktisch erzeugt werden – mit OpenSSL und sicherem Hintergrundwissen!

⚠️ WICHTIGE HINWEISE

  • Nur für Lernzwecke: Kleine Primzahlen dürfen nicht für echte Sicherheit genutzt werden!
  • Nur für Lernzwecke: Kleine Primzahlen dürfen nicht für echte Sicherheit genutzt werden!
  • OpenSSL-Version: Diese Anleitung funktioniert mit OpenSSL 1.1.1+.

💡 Tipp für Lehrkräfte:

Nutze diese Anleitung, um RSA-Mathematik greifbar zu machen. Zeige den Unterschied zwischen kleinen und großen Primzahlen mit FactorDB.


Primzahlen generieren

Schritt 1: Zwei (starke) Primzahlen erzeugen

OpenSSL kann starke Primzahlen erzeugen, die für RSA geeignet sind, hier verwenden wir jedoch zur Demonstration kleine (64 Bit).

# Primzahl p generieren (64 Bit, stark)
openssl prime -generate -bits 64 -safe > p.txt

# Primzahl q generieren (64 Bit, stark)
openssl prime -generate -bits 64 -safe > q.txt
  • -bits 64: Länge der Primzahl in Bit (hier: 64 Bit für Demo).
  • -safe: Erzwingt starke Primzahlen (erfüllt $(p-1)/2$ ist prim).

Schritt 2: Primzahlen anzeigen

cat p.txt
# Beispielausgabe: 1234567890123456789
cat q.txt
# Beispielausgabe: 9876543210987654321

RSA-Modul n berechnen

Schritt 3: n = p × q berechnen

p=$(cat p.txt)
q=$(cat q.txt)
n=$(echo "$p * $q" | bc)
echo "n = $n"
  • Beispielausgabe: n = 121932631137021795226185039791181379

💡 Hinweis:

In der Praxis wird $n$ nie manuell berechnet – OpenSSL übernimmt das automatisch!


RSA-Schlüsselpaar mit OpenSSL generieren

Schritt 4: RSA-Schlüssel direkt generieren

In der Praxis lässt du OpenSSL alles erledigen – inklusive Primzahlauswahl:

# RSA-Schlüsselpaar mit 2048 Bit generieren
openssl genrsa -out private_key.pem 2048
# Hinweis: Moderne OpenSSL-Versionen unterstützen auch 'genpkey' für flexiblere Schlüsselerzeugung.
  • genrsa: Generiert ein RSA-Schlüsselpaar.
  • -out private_key.pem: Speichert den privaten Schlüssel in einer Datei.
  • 2048: Schlüssellänge in Bit (Standard für Sicherheit).

Schritt 5: Öffentlichen Schlüssel extrahieren

# Öffentlichen Schlüssel aus dem privaten Schlüssel extrahieren
openssl rsa -in private_key.pem -pubout -out public_key.pem

Schritt 6: Schlüssel anzeigen

# Privaten Schlüssel anzeigen
cat private_key.pem

Beispielausgabe:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAxJX... (Base64-kodiert)
-----END RSA PRIVATE KEY-----
# Öffentlichen Schlüssel anzeigen
cat public_key.pem

Beispielausgabe:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG... (Base64-kodiert)
-----END PUBLIC KEY-----

Schlüssel analysieren

Schritt 7: Schlüsselinformationen anzeigen

# Details des privaten Schlüssels anzeigen
openssl rsa -in private_key.pem -text -noout
  • Ausgabe enthält:
    • Modulus (n): Das Produkt der Primzahlen.
    • Public Exponent (e): Standardmäßig 65537.
    • Private Exponent (d): Der geheime Schlüssel.
    • Primfaktoren (p, q): Die beiden Primzahlen.

🔹 Beispielausgabe (Ausschnitt):

Private-Key: (2048 bit)
modulus:
    00:ab:cd:... (Hexadezimal-Darstellung von n)
publicExponent: 65537 (0x10001)
privateExponent:
    00:ef:gh:...
prime1:
    00:ab:cd:... (p)
prime2:
    00:ef:gh:... (q)

FAQ & Fehlerbehebung

Problem Lösung
openssl: command not found OpenSSL installieren: sudo apt install openssl (Debian/Ubuntu).
Schlüssel ist zu kurz Immer mindestens 2048 Bit nutzen: openssl genrsa -out key.pem 2048.
Primzahlen sind nicht "safe" Immer -safe verwenden oder genrsa nutzen.

Nächste Schritte


🎉 Fertig!

Du hast jetzt:

✅ Zwei kleine Primzahlen zum Lernen generiert.

✅ Ein sicheres RSA-Schlüsselpaar mit OpenSSL erzeugt.

✅ Die wesentlichen Bestandteile eines RSA-Schlüssels kennen gelernt.

Frage: Möchtest du sehen, wie du mit diesen Schlüsseln eine Nachricht verschlüsseln und entschlüsseln kannst? 🔐

🚀 Schnellstart: DOITPi in 30 Sekunden

Für Eilige:

Du willst sofort loslegen? Hier ist der direkte Weg zur 01_Installation


Was du brauchst:

  • Raspberry Pi (Modell 3/4/5 oder Zero 2 W)
  • microSD-Karte (mind. 32 GB)
  • Kartenleser o.Ä
  • Netzteil
  • 15 Minuten Zeit

Los geht’s! 🎉

Jetzt zur 01_Installation


⚡ DOITPi 01a_Autohotspot

Immer verbunden – automatisch!

  • Aktiviert sich selbst, wenn kein WLAN verfügbar ist.
  • SSID: AP_<Hostname> | Passwort: 123456789
  • Zugriff per Browser/SSH – ideal für Headless-Betrieb.
    • Codeserver (für webbasiertes Code-Editing)
    • NodeRed (für visuelles IoT- ROS2-Programmieren)
  • Automatische Umschaltung alle 60 Sekunden.

🔒 Passwort anpassen! 🔧

Kurz, klar, direkt zum Ziel – perfekt für alle, die keine Zeit verlieren wollen! 😊

Clone this wiki locally