Diese Arbeit präsentiert eine neue effiziente und flexible Architektur für kryptographische Co-Prozessoren für den Einsatz in Servern. Die neue Architektur ist SoC-basiert und nutzt HW/SW Co-Design. Ein mögliches Einsatzszenario ist die Entlastung eines Servers, der mit vielen verschiedenen Client-Geräten, die unterschiedliche kryptographische Protokolle benutzen, sicher kommunizieren muss. Da im Server-Einsatz ein hoher Durchsatz wichtiger ist als eine niedrige Latenz einer einzigen Operation, bezieht sich die Effizienz des Co-Prozessors auf einen möglichst hohen Durchsatz. Die Flexibilität gilt dabei bezüglich der unterstützten kryptographischen Verfahren und einer einfachen Erweiterbarkeit. Die beiden heute verbreitetsten Verfahren RSA und Elliptische Kurven Kryptographie (ECC) unterscheiden sich unter anderem durch die verschiedene Länge der verwendeten Zahlen. Zwar lassen sich Berechnungseinheiten, die für die langen RSA-Zahlen optimiert sind, auch für Berechnungen mit den kürzeren ECC-Zahlen nutzen. Allerdings bleiben dann große Teile der eingeplanten Ressourcen ungenutzt, was wiederum einen hohen Durchsatz behindert. Deshalb führen die beiden Design-Ziele hoher Durchsatz und Flexibilität zu einer Beschränkung des Parallelisierungsgrades auf der untersten Abstraktionsebene, d.h. innerhalb der modularen Multiplikation. Dies kann durch Parallelisierung auf höheren Ebenen ausgeglichen werden, z.B. durch die parallele Nutzung mehrerer modularer Multiplizierer. Die Verwendung von HW/SW Co-Design erlaubt die einfache Programmierung und Wartung der verschiedenen kryptographischen Verfahren ohne die Effizienz stark zu beschneiden. Dabei werden die zeitkritischen Operationen, die vorwiegend Datenfluss beinhalten, in spezieller Hardware umgesetzt. Kontrollflusslastige Operationen, die hauptsächlich die Reihenfolge der modularen Berechnungen bestimmen, werden in Software umgesetzt. Dies ist auch deshalb günstig, da letztere Operationen für verschiedene kryptographische Verfahren sehr unterschiedlich sind, wohingegen die modularen Operationen einander sehr ähnlich sind. Die resultierende Architektur besteht aus folgenden Cores, die die folgenden Aufgaben übernehmen: * Central Core: Hauptkontrolle und Kommunikation mit dem Host Server * Scheme Controller: Berechnung der eigentlichen kryptographischen Verfahren * ModArith Core: Berechnung der modularen Operationen auf der untersten Abstraktionsebene * AES Core: Berechnung von kryptographischen Hilfsfunktionen (z.B. Hash-Funktion, Zufallszahlerzeugung) Dabei erhält ein Scheme Controller vom Central Core einen Befehl zur Berechnung eines kryptographischen Verfahrens. Dieses berechnet er unter zu Hilfenahme eines ihm zugeordneten ModArith Cores. Weiterhin teilen sich alle Scheme Controller den AES Core, der die kryptographischen Hilfsfunktionen berechnet. Die Nützlichkeit der Architektur wird anhand einer prototypischen Implementierung demonstriert. Diese beherrscht RSA, ECC und Pairing-basierte Kryptographie (PBC). Die Durchsatzwerte sind vergleichbar oder besser zu solchen aus der Literatur, die aber meist keine vergleichbare Flexibilität zur Verfügung stellen können. | German |