Crypton
Crypton ist eine pädagogische Bibliothek zum Erlernen und Praktizieren von offensiver und defensiver Kryptographie. Sie ist im Wesentlichen eine Sammlung von Erklärungen und Implementierungen aller existierenden Schwachstellen und Angriffe auf verschiedene Verschlüsselungssysteme (symmetrisch und asymmetrisch), digitale Signaturen, Nachrichtenauthentifizierungscodes und authentifizierte Verschlüsselungssysteme. Jeder Angriff wird durch Beispiel-Challenges aus „Capture The Flag“-Wettbewerben und deren jeweiligen Lösungen ergänzt. Personen, die sich in diesem Bereich bereits auskennen (oder sich mit CTFs beschäftigen), können Crypton als Werkzeug nutzen, um Challenges basierend auf einer bestimmten bestehenden Schwachstelle zu lösen.
Die Bibliothek wird kontinuierlich mit Angriffserklärungen und CTF-Challenges aktualisiert! Zögern Sie nicht, mir bei Vorschlägen eine E-Mail zu schicken!
Ich habe einen Blogbeitrag über den Entwicklungszeitplan dieser Bibliothek geschrieben: https://masterpessimistaa.wordpress.com/2018/08/12/announcing-crypton-an-educational-library-to-learn-offensive-and-defensive-cryptography/
WARNUNG: Der Autor garantiert in keiner Weise, dass der Code sicher ist. Die Bibliothek ist nur für Bildungszwecke gedacht und der Code sollte nicht für die reale Implementierung verwendet werden. Alle Beispielskripte in der Bibliothek sind triviale Implementierungen.
Es gibt verschiedene Abschnitte in dieser README:
- Motivation – Was mich zur Erstellung dieser Bibliothek motiviert hat
- Bibliotheksstruktur – Verzeichnisstruktur von Crypton
- Abdeckungsbereich – Welche Kryptosysteme und Angriffe werden in dieser Bibliothek behandelt
- Zukunftspläne/TODO – Angriffe/Konzepte, die bald aufgenommen werden sollen
Motivation
CTF-Spielern und Personen, die sich für das Gebiet der Kryptographie interessieren, eine Plattform zum Erlernen von Angriffen in der Krypto zu bieten und erfahrenen CTF-Spielern die Möglichkeit zu geben, Challenges systematisch zu üben, aufgeteilt nach Angriffen, die mit verschiedenen Unterbereichen der Krypto verbunden sind. Außerdem soll anhand verschiedener Angriffserklärungen veranschaulicht werden, wie wichtig eine korrekte Implementierung von Protokollen ist.
Bibliotheksstruktur

Abdeckungsbereich
1. Blockchiffren
2. RSA-Verschlüsselung
3. Nachrichtenauthentifizierungscodes (MACs)
4. Diskreter Logarithmus| Nr. | Thema | Erklärung | Impl./Exploit | Challenge# |
|-------|:---------------------------:|:-----------------------------------------------------------------------------------------------:|:------------:|:----------:|
| 1 | DLP- Zyklische Gruppen, Diskreter Logarithmus Problem|
|
|
|
| 2 |
Pollard's Rho-Algorithmus zur Lösung des DLP |
|
|
|
| 3 |
Baby-Step-Giant-Step-Algorithmus zur Lösung des DLP|
|
|
|
| 4 |
Pohlig-Hellman-Algorithmus zur Lösung des DLP|
|
|
|
| 5 |
Elliptic Curve DLP – Definition des Identitätselements, Inverse eines Punktes, zyklische Gruppen über Punkten auf einer EC, Satz von Hasse, ECDLP |
|
|
|
| 6 |
Baby-Step-Giant-Step-Algorithmus zur Lösung des elliptischen Kurven-DLP |
|
|
|
| 7 |
Pollard's Rho-Algorithmus zur Lösung des elliptischen Kurven-DLP |
|
|
|
5. ElGamal-Verschlüsselung
6. Authentifizierte Verschlüsselung (AE)
7. Elliptische Kurven
8. Digitale Signaturen
9. Identifikation
10. Diffie-Hellman-Schlüsselaustausch
TODO
- RSA-Verschlüsselung
- PKCS1-v1.5-gepolsterte RSA-Verschlüsselung
Angriff mit gewähltem Chiffrat auf RSA-Kryptosystem – LSB-Entschlüsselungsorakel [Erledigt]
- Padding-Oracle-Angriff auf PKCS1-gepolstertes RSA-Verschlüsselungssystem
- Fermat-Faktorisierung
- Coppersmith-Angriff
- Hastad's Broadcast-Angriff
- Implementierung von HBA auf gepolsterten Nachrichten
- Pseudozufallszahlengeneratoren
- Linearer Kongruenzgenerator
- Mersenne-Twister-PRNG
- Lineares rückgekoppeltes Schieberegister
- Digitale Signaturen
- Blinding-Angriff auf RSA-Digitale Signaturen
Diffie-Hellman-Schlüsselaustausch [Erledigt]
- Elliptische-Kurven-Diffie-Hellman
- [Weitere werden hinzugefügt]
Autor
Ashutosh Ahelleya