-
Notifications
You must be signed in to change notification settings - Fork 0
RSA_mit_OpenSSL
- 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!
- 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.
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).
cat p.txt
# Beispielausgabe: 1234567890123456789
cat q.txt
# Beispielausgabe: 9876543210987654321p=$(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!
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).
# Öffentlichen Schlüssel aus dem privaten Schlüssel extrahieren
openssl rsa -in private_key.pem -pubout -out public_key.pem# Privaten Schlüssel anzeigen
cat private_key.pemBeispielausgabe:
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAxJX... (Base64-kodiert)
-----END RSA PRIVATE KEY-----# Öffentlichen Schlüssel anzeigen
cat public_key.pemBeispielausgabe:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG... (Base64-kodiert)
-----END PUBLIC KEY-----# 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)| 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. |
- 🔗 OpenSSL-Dokumentation zu
genrsa - 🔗 RSA-Mathematik vertiefen (Khan Academy)
- 🔗 SSH-Schlüssel mit
ssh-keygengenerieren
🎉 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? 🔐
Hier zu Home
DOITPi ist Open Source und steht unter der MIT-LICENSE.
- Code: GitHub Repository
- Dokumentation: Wiki
- Releases: Aktuelles Image herunterladen
Hinweis: DOITPi nutzt Tools und Bibliotheken Dritter. Die jeweiligen Lizenzen finden Sie in den Danksagungen.
DOITPi steht auf den Schultern von Riesen. Besonderer Dank gilt:
- Raspberry Pi OS (Basis-System)
- CustomPiOS (Image-Erstellung)
- NetworkManager (Auto-Hotspot-Funktion)
- ROS2 & Node-RED (Robotik & IoT)
- Ansible (Automatisierung)
- Allen Mitwirkenden (GitHub Contributors)!
💙 Möchtest du hier auftauchen? Trage bei und sende einen Pull Request!
DOITPi © 2023–2025 DevOps & IoT für alle – einfach, offen, leistungsstark.
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! 😊