Cryptimeleon - prototyping for advanced privacy-preserving constructions
Cryptimeleon (ausgesprochen /krɪptimiːliən/, "cryp-tee-meleon") ist eine Open-Source-Java-Bibliothek, die sich in erster Linie an Forscher im Bereich Kryptographie richtet und aus der Arbeitsgruppe Codes und Kryptographie der Universität Paderborn hervorgegangen ist.
» | Sie wollen Ihre neue Art von anonymen Credentials, Gruppensignaturen, attributbasierter Verschlüsselung oder anderen Konstruktionen mit bilinearen Gruppen prototypisch testen und bewerten? Versuchen Sie Cryptimeleon! | « |
Es richtet sich an Forscher auf dem Gebiet der datenschutzfreundlichen und privatheitwahrenden Kryptographie mit einem maßgeschneiderten Funktionsumfang. Forscher, die ihre Konstruktionen schnell implementieren wollen (1) zur Überprüfung der Korrektheit und (2) für Vergleichszahlen in ihren Arbeiten. Um den Implementierungsprozess zu erleichtern, "spricht" Cryptimeleon die Sprache der Autoren von wissenschaftlichen Arbeiten. Es bietet ein ähnliches Maß an Abstraktion, wie es üblicherweise in wissenschaftlichen Arbeiten verwendet wird. So können z.B. bilineare Gruppen als die vertraute Blackbox verwendet werden und Beweise im Stil von Schnorr können auf der Ebene der Camenisch-Stadler-Notation beschrieben werden. Mehrere Optimierungen (wie z. B. die Mehrfachexponentierung) werden transparent eingesetzt, so dass der Entwickler die Berechnungen so formulieren kann, wie sie in der Arbeit beschrieben sind, anstatt sich einer künstlichen API anpassen zu müssen, um eine bessere Leistung zu erzielen.
Um Forscher auf jeder Ebene zu unterstützen, bieten wir die meisten Bausteine bereits an. Zum Beispiel implementiert Cryptimeleon endliche Körper, Gruppen auf elliptische Kurven und Paarungen, Hashing, Zero-Knowledge-Beweise im Stil von Schnorr, Akkumulatoren, digitale Signaturen, Secret Sharing, Gruppensignaturen, attributbasierte Verschlüsselung und andere moderne kryptographische Konstruktionen.
Die folgende Abbildung gibt einen Überblick über die Bestandteile von Cryptimeleon und die implementierten Verfahren. Die mathematischen Grundlagen werden von der Math Bibliothek abgedeckt. Die implementierten Verfahren sind in einem Bestandteil namens Craco zusammengefasst. Darüber hinaus bieten wir Implementierungen von prädikatsbasierten Verschlüsselungen, Gruppensignaturen und einem Anreizsystem, das auf aktualisierbaren anonymen Credentials basiert.
Für weitere Informationen und formale Details empfehlen wir die eprint Veröffentlichung über Cryptimeleon. Wenn Sie die Bibliothek aus erster Hand ausprobieren möchten, dann schauen Sie sich das 5-Minuten-Tutorial an.
Sie können auch direkt zum Cryptimeleon Projekt beitragen, indem Sie Ihre Konstruktion implementieren und einen Pull-Request auf Github erstellen, sehen Sie unsere Website und Github für weitere Details.
Wenn Sie ein Student sind und sich für das Thema Close-to-Paper Prototyping interessieren oder einfach nur Kryptographie in Aktion sehen wollen, dann kontaktieren Sie uns (Jan Bobolz, Fabian Eidens). Wir können immer Leute gebrauchen, die unsere Bibliothek erweitern (möglicherweise in Form einer Bachelor-/Masterarbeit).