Von Angriffen mit präpariertem Geheimtext (engl. chosen ciphertext attack) ist die Rede, wenn ein Geheimtext manipuliert oder bewusst mit bestimmten Eigenschaften «hergestellt» wird – wenn er also nicht durch normale Verschlüsselung entsteht. Doch wie lässt sich dies ausnutzen, um an geheime Informationen zu gelangen?

Aufträge
Vorbereitung
- Macht euch mit der Funktionsweise von RSA (asymmetrische Verschlüsselung) vertraut.[1]
- Informiert euch über die Blinding Attack gegen die RSA-Verschlüsselung.[2]
- Entwerft einen ähnlichen Angriff zum Knacken einer verschlüsselten Nachricht an Bob. Anstatt Bob ungewollt eine bestimmte Nachricht signieren zu lassen (wie im Paper beschrieben), soll eine für Bob verschlüsselte Nachricht entschlüsselt werden können, indem Bob eine speziell präparierte Nachricht signiert. Man nennt dies Chosen Ciphertext Attack.
- Was meint D. Boneh mit seinem Satz: «These attacks illustrate blatant misuse of RSA.»
- Entwerft ein Konzept für ein Programm und stellt es uns vor:
- Wie soll das Programm beim Angriff vorgehen?
- In welchen Schritten wollt ihr beim Programmieren vorgehen, so dass ihr schnell eine brauchbare Ausgabe erhaltet?
- Welche Zusatzkenntnisse braucht ihr noch?
Programm
- Schreibt ein Programme Mallory, das den abgefangenen Geheimtext entgegen nimmt und eine spezielle, für Bob unlesbare, Nachricht erzeugt, die Bob dann sigiert. Nach dem Signieren (und Einfügen der signierten Nachricht) soll das Programm den Klartext von Alices Nachricht berechnen und ausgeben.
- Bibliothek rsa
Präsentation
- Bereitet eine Präsentation vor, die 15 Minuten (plus 5 Minuten für Fragen) dauert. Sie soll die benötigte Theorie, eigene Überlegungen, das Programm und die Erkenntnisse der Klasse näherbringen.
Zusatzaufträge
Grafische Oberfläche
- Ändert euer Programm so, dass es das offizielle Modul base64 verwendet anstelle der eingebauten Funktionen
rsa.base64_to_number(b64)undrsa.number_to_base4(number). - Programmiert die beiden Programme Alice und Bob und generiert eigene Nachrichten, die dann geknackt werden können.
- Programmiert eine eigene grafische Oberfläche, damit der Angriff für die Zuschauer attraktiver wird.
- Bibliothek guizero
RSA-Verschlüsselung
- Programmiert eine eigene Bibliothek für die RSA-Verschlüsselung, damit ihr nicht unsere Vorgabe verwenden müsst.
Material
Programme
- Bob: Das unten aufgeführte Programm entschlüsselt/signiert eingegebene Nachrichten mit Bobs privatem Schlüssel.
Geheimtext 1
ODg1NTk1Nzc1MDg2MTAxMzI4NjkwNzI5NDM1NDAzNDMxOTE2NDkwNTA1NjY0MDMxMDU4ODc2Mjc3NDYzOTEyNDk4MzkxMTUwNDA2NTMxOTI4OTM0OTM2MDgwNTE3NTYxNTY1MjgyMDMzNzgxNzgyNzEwMjA5ODM2OTgxMDI1Nzg0MDE4MDcwNTU0MjY1NDYwODExNjM2NTgyODg1OTgxMDU4MjcyNjk4NTczNDg3ODMxMzkwMjg1NjQyODQ1ODI2NTM3Nzg5Njk3NjQ1ODMwMDE0NTkyNTEwNTc3MTE2MjExNDI4MzEwMzk2ODc4NTY2ODg2NDExNDEzNTkyNjU3Nzk5NDI5NDUwOTQ1NTE1MzM5NDY0OTA5NTY0OTM5ODkzMjUwMDE0MDI2ODcyMjI3NTk5NTkwMjY5Njg1OTE2Njc0NjM2MzQxMDM3MTEyNDE3MjIwMzk1NzE3NzMwNzY5Nzg4MzMxMzYzMTY2MDIyNjUzNzYyODU5OTYwNTkyNjg4MDk4MDIyOTM1NDkyMDI5MjgxNzQ2NTIyNDczNjY3Mzg1OTkyODQzNzEwMjYwMTg3NTI5ODgxMDAzMzk0Mzk5OTg5NDE1ODQ5ODQ0OTEyOTA5MTQ4NDUzNzIzNDY0NzM2MzY2NDM0NDQ0MDg3MjIyNjMyNTExMTc2NjIxODczNzU1MTk1NzM2MzAzNTcyNjM5OTY0ODI0ODExMTY0NjAyNzkwNjU4NjQ1Mzk3NDE1NjMwNTk1NDU1NTY4MTYwMDE0ODIwMjgzMTcwNDc2NzI3MDEzMDUxMzg3NTMxNzU4NDQ0NzQyMzM0NjcxNjg0ODgyNzM1MTA5NzkwNjY4OTM4NDk1MTMzNDEzNDU1NDg5NjQ1ODY5NjU2NTgyNjAyODYxODM1NjA5ODU0ODc2Mjc3OTQwNDMzNTEyMjk2ODUzNTI5NTE5MTk1NTM4MDU2ODIyOTM5OTgxNDkzNzUyMzI5MTk1OTUxMDYzNzgwMjM4MTAxOTMxNjQwNTk2MzU3MzYyNDM2NjY0NjMwNDg1MTk2MzUzMzM2MjY1OTc4NjMwMzYxNzg5MDQwOTUwMzQzNDk1NDc2Mzk4OTk3NjUwMDM5MTIxODE3MDYwMjAxMTM5NTgxNDU1MTkzOTE5OTMxNTkxMDUzMjU1MjU1OTI5NjI5NzA5OTE1MTk3NjgwMjM5MzY5ODQwMTI3NTcwMjg5NDU2MjkwMDk1Mjc1MDc1ODA4MDYxOTkzMzMxMzMzNTQzMDk1OTM3Mjg2ODk3NzMyOTAwNDU5OTM4NDUxMzMwNjEzNTcxMjgxMzA1Nzc4MDA1MjAwNzk0OTc14072271025360853546311133360403797850504445534111321183935763439855657537659287879059874895170696824805915947367637709517976520299316440545077578044261301317211813501277830939647096917682419671054042586766731334651495880217996714551937223943968315915069718099092516791209022760671817736649268030353147012895456831571841347364409077071631783892973574035489213800770885021704661262307229699806922514536701249474467984118842728104527336127171739162708490312363402972946351729939861076642247452225924666077777221805773651285152475976161870943984555672930949294084852170617178736649581132916341156565819772261084240146504157723383309916317283659931830205549992998820967075613187892530060495782882850232099751449208053890510815691827901175137588011101635120362785278079034975335116770361671031653815575261445865110321901944258885907765864591955469437627716626099782809437256032486019782925303106731516714206071848231253489893165814358250178173683171738823673947584805111483383251844376450161448707103415871097105049666942791434675998819758650724568194543658117899148467764703988714763033768350885501363117003222157179903827526424286570718382344108166614333887220500098849478280455671586940866603218118548635055699503457411543368601882407461053461549484927093724693547215346097886869952446433063212273336509201793569072313405854122121817227675063756297286970458088407838188237170096611473081072363475822155761378511831374078816144128769578129412681206636072053623132090108690888303252618869310210829642851384316065525363975347292197147114648459968448845439275334804831277791844377733374113928983216875605617882015670803024378398785183262806252174955007370103978357935610715966643452260581695522022924592582306886097836421293212814338026811304621188296535458709499052323605134411555744405131003785421846046700324870035830819210550293549978791570290194245261147140765741472332822311415764066608923846561887690672667916280461489776295235628872187213903197391096299877895013252688349308735365686680541912580141