DE60121284T2 - Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion - Google Patents

Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion Download PDF

Info

Publication number
DE60121284T2
DE60121284T2 DE60121284T DE60121284T DE60121284T2 DE 60121284 T2 DE60121284 T2 DE 60121284T2 DE 60121284 T DE60121284 T DE 60121284T DE 60121284 T DE60121284 T DE 60121284T DE 60121284 T2 DE60121284 T2 DE 60121284T2
Authority
DE
Germany
Prior art keywords
des
logic
key
bit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60121284T
Other languages
English (en)
Other versions
DE60121284D1 (de
Inventor
Zheng Milpitas Qi
Mark Gilbert Buer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of DE60121284D1 publication Critical patent/DE60121284D1/de
Application granted granted Critical
Publication of DE60121284T2 publication Critical patent/DE60121284T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Implementierung einer Kryptographiemaschine. Spezifischer betrifft die vorliegende Erfindung Verfahren und eine Vorrichtung zur effizienten Ausführung eines Kryptographiealgorithmus, wie etwa eines DES-Algorithmus.
  • 2. Beschreibung des relevanten Standes der Technik
  • Herkömmliche Software- und Hardware-Ausführungen zum Implementieren verschiedener Kryptographiealgorithmen, einschließlich des DES- und Triple-DES-Algorithmus, weisen erhebliche Leistungsbeschränkungen auf. Viele Konzepte zur Durchführung einer kryptographischen Bearbeitung sind im Stand der Technik wohlbekannt und beispielsweise in "Applied Cryptography", Bruce Schneier, John Wiley & Sons, Inc. (ISBN 0471128457) beschrieben, welches Dokument hierin in seiner Gesamtheit durch Bezugnahme allgemein gewürdigt wird. Zur Verbesserung der Geschwindigkeit einer kryptographischen Bearbeitung wurden spezialisierte Kryptographiebeschleuniger entwickelt, die typischerweise ähnliche Software-Ausführungen übertreffen. Beispiele für solche Kryptographiebeschleuniger umfassen den BCMTM 5805, hergestellt von Broadcom, Inc., San Jose, CA.
  • Obgleich spezialisierte Hardware-Kryptographiebeschleuniger zur Durchführung derselben Aufgaben geschriebene Software häufig übertreffen können, haben herkömmliche Hardware-Kryptographiebeschleuniger erhebliche Leistungsengpässe bei der Implementierung von Kryptographiealgorithmen, einschließlich des DES- und Triple-DES-Algorithmus. Einige Leistungsengpässe umfassen Beschränkungen, die das Schlüssel-Scheduling (Key Scheduling), die Taktrate, die Taktsynchronisation und Kernlogikoperationen betreffen.
  • Es ist daher erwünscht, Verfahren und eine Vorrichtung zum Verbessern der Implementierung von Kryptographiealgorithmen in Bezug auf einige oder sämtliche der vorstehend genannten Leistungsbeschränkungen bereitzustellen.
  • "Applied Cryptographic Second Edition", B. Schneier, 1996, John Wiley & Sons, Inc., USA, beschreibt den Data Encryption Standard (DES – Datenverschlüsselungsstandard).
  • "I. C. Multiplexer Increases Analogue Switching Speeds", J. O. M. Jenkins, Electronic Engineering, Morgan-Grampian Ltd., London, GB, Band 45, Nr. 540, Februar 1973, Seiten 73–75, ISSN 0013-4902 betrifft einen Multiplexer mit integrierter Schaltung, der eine erhöhte analoge Vermittlungsgeschwindigkeit besitzt.
  • EP-A-0 661 843 betrifft eine Vorrichtung zur Implementierung einer DECT-Verschlüsselung unter Verwendung einer parallelen Verarbeitung.
  • "A high performance FPGA implementation of DES' 2000", M. MCloone et al., IEEE Workshop on Signal Processing Systems, SIPS 2000, Design and Implementation (Kat.-Nr. 00TH8528), 2000 IEEE Workshop on Signal Processing Systems, SIPS 2000, Design and Implementation, Lafayette, LA, USA, 11.–13. Oktober 2000, Seiten 374–383, Piscataway, NJ, USA, IEEE, USA, ISBN: 0-7803-6488-0 betrifft eine Implementierung des DES-Algorithmus unter Verwendung einer Pipeline-Verarbeitung.
  • Ein Ziel der vorliegenden Erfindung besteht darin, die Durchführung einer kryptographischen Bearbeitung zu verbessern.
  • Dieses Ziel wird durch die Kryptographiemaschine gemäß Anspruch 1 erreicht. Vorteilhafte Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen definiert.
  • Die Verfahren und die Vorrichtung sind zur Implementierung einer Kryptographiemaschine zur kryptographischen Bearbeitung bereitgestellt. Es ist eine Vielzahl an Techniken beschrieben. Eine Kryptographiemaschine, wie etwa eine DES-Maschine, kann von der Umgebungslogik durch Verwendung asynchroner Puffer entkoppelt werden. Eine Bit-Sliced-Ausführung kann durch Hinausbewegen der Erweiterungs- und Permutationslogik aus dem zeitkritischen Datenpfad implementiert werden. Eine XOR-Funktion kann in Funktionen zerlegt werden, die effizienter implementiert werden können. Ein Zwei-Ebenen-Multiplexer kann dazu verwendet werden, einen Taktzyklus während der kryptographischen Bearbeitung aufrechtzuerhalten. Das Schlüssel-Scheduling kann pipelined sein, um eine effiziente Rundenschlüsselerzeugung zu ermöglichen.
  • Gemäß einer Ausführungsform ist eine Kryptographiemaschine zum Durchführen kryptographischer Operationen an einem Datenblock bereitgestellt. Die Kryptographiemaschine umfasst einen Schlüssel-Scheduler, der dafür konfiguriert ist, Schlüssel für kryptographische Operationen vorzusehen, einen Zwei-Ebenen-Multiplexer, eine Erweiterungslogik und eine Permutationslogik. Die Erweiterungslogik ist mit der Eingangsstufe der Multiplexer-Schaltung verbunden. Die Erweiterungslogik ist dafür konfiguriert, eine erste Bitsequenz mit einer ersten Größe in eine erweiterte erste Bitsequenz mit einer zweiten Größe zu erweitern, die größer als die erste Größe ist. Die erste Bitsequenz entspricht einem Abschnitt des Datenblocks. Die Permutationslogik ist mit der Erweiterungslogik verbunden. Die Permutationslogik ist dafür konfiguriert, eine zweite Bitsequenz zu verändern, die dem Abschnitt des Datenblocks entspricht, wobei eine Veränderung der zweiten Bitsequenz am Datenblock kryptographische Operationen durchführt.
  • Die Kryptographiemaschine kann außerdem eine S-Box umfassen, die dafür konfiguriert ist, eine dritte Bitsequenz zu verändern, die dem Abschnitt des Datenblocks entspricht, indem die Größe der dritten Bitsequenz verdichtet und die dritte Bitsequenz unter Verwendung einer S-Box-Logik verändert wird. Bei einer Ausführungsform ist die Kryptographiemaschine eine DES-Maschine. Die Kryptographiemaschine kann auf der ersten Ebene zwei 2-zu-1-Multiplexer aufweisen, die mit zwei 2-zu-1-Multiplexern auf der zweiten Ebene verbunden sind. Der Zwei-Ebenen-Multiplexer kann dafür konfiguriert sein, entweder Eingangsdaten, ausgetauschte Daten (swapped data) oder nicht ausgetauschte Daten auszuwählen, um sie der Ausgangsstufe des Multiplexers zuzuführen.
  • Gemäß einer anderen Ausführungsform ist ein integriertes Schaltungslayout vorgesehen, das einer Kryptographiemaschine zum Durchführen kryptographischer Operationen an einem Datenblock zugeordnet ist. Das integrierte Schaltungslayout kann Informationen zum Konfigurieren der Kryptographiemaschine bereitstellen. Das integrierte Schaltungslayout umfasst einen Schlüssel-Scheduler, der dafür konfiguriert ist, Schlüssel für kryptographische Operationen vorzusehen, einen Zwei-Ebenen-Multiplexer, eine Erweiterungslogik und eine Permutationslogik. Die Erweiterungslogik ist mit der Eingangsstufe der Multiplexer-Schaltung verbunden und dafür konfiguriert, eine erste Bitsequenz mit einer ersten Größe in eine erweiterte erste Bitsequenz mit einer zweiten Größe zu erweitern, die größer als die erste Größe ist. Die erste Bitsequenz entspricht einem Abschnitt des Datenblocks. Die Permutationslogik ist mit der Erweiterungslogik verbunden. Die Permutationslogik ist dafür konfiguriert, eine zweite Bitsequenz zu verändern, die dem Abschnitt des Datenblocks entspricht, wobei eine Veränderung der zweiten Bitsequenz am Datenblock kryptographische Operationen durchführt.
  • Gemäß weiteren Ausführungsformen ist eine Kryptographiemaschine zum Durchführen kryptographischer Operationen an mehreren Paketen bereitgestellt. Die Pakete können Nutzlasten oder -daten (Payloads) und Nutzlastlücken (Payload Gaps) aufweisen. Die Kryptographiemaschine umfasst eine DES-Maschine, einen asynchronen Eingangspuffer, der mit dem Kryptographiemaschineneingang verbunden ist, und eine Umgebungslogik, die über den asynchronen Eingangspuffer mit der DES-Maschine verbunden ist, wobei die DES-Maschine mit einer ersten Taktrate und die Umgebungslogik mit einer zweiten Taktrate arbeitet, die sich von der ersten Taktrate unterscheidet.
  • Diese und andere Merkmale und Vorteile der vorliegenden Erfindung sind in der folgenden Beschreibung der Erfindung und den begleitenden Figuren genauer dargelegt, die die Grundlagen der Erfindung beispielhaft veranschaulichen.
  • Kurzbeschreibung der Zeichnungen
  • Die Erfindung lässt sich am besten durch Bezugnahme auf die folgende Beschreibung in Verbindung mit den begleitenden Zeichnungen verstehen.
  • 1 ist eine schematische Darstellung eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung, das die Techniken der vorliegenden Erfindung verwenden kann.
  • 2 ist eine schematische Darstellung einer Kryptographiemaschine gemäß einer Ausführungsform der vorliegenden Erfindung, die eine Umgebungslogik und eine DES-Maschine aufweist.
  • 3 ist eine schematische Darstellung eines Pakets, das die DES-Maschine gemäß einer Ausführungsform der vorliegenden Erfindung empfangen kann.
  • 4 ist eine schematische Darstellung einer DES-Maschine gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 ist eine schematische Darstellung einer DES-Maschine gemäß einer Ausführungsform der vorliegenden Erfindung, die für eine Bit-Sliced-Implementierung verwendet werden kann.
  • 6 ist eine schematische Darstellung einer Bit-Sliced-Implementierung, die gemäß einer Ausführungsform der vorliegenden Erfindung in 5 verwendet werden kann.
  • 7 ist eine schematische Darstellung einer optimierten Bit-Sliced-Implementierung gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Genaue Beschreibung der spezifischen Ausführungsformen
  • Es wird nun auf einige spezifische Ausführungsformen der Erfindung genauer Bezug genommen, welche die Betriebsarten zum Ausführen der Erfindung umfassen, die von den Erfindern als die besten angesehen werden. Beispiele für diese spezifischen Ausführungsformen sind in den begleitenden Zeichnungen dargestellt. Obgleich die Erfindung in Verbindung mit diesen spezifischen Ausführungsformen beschrieben ist, versteht es sich, dass es nicht beabsichtigt ist, die Erfindung auf die beschriebenen Ausführungsformen zu beschränken. Im Gegenteil, die Beschreibung soll Alternativen, Modifikationen und Entsprechungen umfassen, die im Erfindungsgedanken und im Schutzumfang der Erfindung, wie durch die anhängigen Ansprüche definiert, enthalten sind. In der folgenden Beschreibung sind zahlreiche spezifische Details dargelegt, um ein genaues Verständnis der Erfindung zu ermöglichen. Die vorliegende Erfindung kann auch ohne manche oder sämtliche der spezifischen Details umgesetzt werden. In anderen Fällen wurden wohlbekannte Verfahrensschritte nicht genau beschrieben, um die vorliegende Erfindung nicht unnötig zu komplizieren.
  • Es sind Techniken zur Ermöglichung der Implementierung einer effizienten kryptographischen Bearbeitung, wie etwa DES- und Triple-DES-Bearbeitung, vorgesehen. DES spezifiziert die Verschlüsselung einzelner 64 Bit-Datenblöcke. Ein 64 Bit-Datenblock unverschlüsselter Daten wird der DES-Maschine zugeführt, mit einem Schlüssel kombiniert und als 64 Bit-Datenblock verschlüsselter Daten ausgegeben. Der zur DES-Bearbeitung verwendete Schlüssel ist typischerweise eine 56 Bit-Zahl, obgleich der Schlüssel auch als 64 Bit-Zahl ausgedrückt werden kann. DES beschreibt das Aufspalten eines 64 Bit-Datenblocks in eine rechte Hälfte und eine linke Hälfte, die jeweils 32 Bits lang sind. Wie Fachleute auf dem Gebiet erkennen werden, werden dann sechzehn Runden kryptographischer Operationen durchgeführt. In jeder Runde umfassen die Operationen an der rechten Hälfte der Daten Erweiterungs-, Permutations- und S-Box-Operationen sowie eine Kombination mit einem Rundenschlüssel. Ein Rundenschlüssel, der basierend auf der Rundenzahl der DES-Bearbeitung bestimmt werden kann, wird hierin als Rundenschlüssel bezeichnet. Der Rundenschlüssel kann durch Anwenden von Permutations- und Verschiebefunktionen auf alle 56 Bits des ursprünglichen Schlüssels abgeleitet werden. Die DES-Rundenzahl bestimmt den Verschiebebetrag.
  • Eine XOR-Funktion (ausschließende ODER-Funktion) wird dazu verwendet, die rechte Hälfte der Daten mit einer Version des auf der Runde basierenden Schlüssels zu kombinieren. Das Ergebnis kann dann ebenfalls mittels einer XOR-Funktion mit der linken Hälfte kombiniert werden. Die unbearbeitete rechte Hälfte der Daten wird zur linken Datenhälfte für die nächste Runde. Triple-DES (Dreifach-DES) spezifiziert die Durchführung von drei 16-Runden-DES-Operationen hintereinander unter Verwendung drei verschiedener Schlüssel. Typische Hardware-Implementierungen für DES oder Triple-DES führen eine Rundenberechnung pro Taktzyklus durch. Die Leistung der DES- oder Triple-DES-Maschine wird daher durch die Taktrate bestimmt. Eine Vielzahl von Hardware-Konstruktionsbeschränkungen hat jedoch traditionell die Taktrate kryptographischer Bearbeitungsmaschinen eingeschränkt.
  • Eine Konstruktionsbeschränkung, die traditionell die Taktrate kryptographischer Bearbeitungsmaschinen eingeschränkt hat, besteht in der Taktrate des die kryptographische Bearbeitungseinheit umgebenden Schaltungsaufbaus. Eine Umgebungslogik mit einer langsameren Taktrate als die DES-Maschine ist typischerweise nicht dazu in der Lage, Daten mit einer für die DES-Bearbeitung ausreichenden Rate zuzuführen. Es sind Verfahren und eine Vorrichtung zum Entkoppeln der DES-Maschine und der Umgebungslogik beschrieben. Die entkoppelte DES-Maschine und die Umgebungslogik ermöglichen Flexibilität bei der Einstellung unterschiedlicher Taktverhältnisse. Die Flexibilität ermöglicht es, die DES-Maschine so auszuführen, dass sie mit einer deutlich höheren Taktrate als die Umgebungslogik arbeitet.
  • Andere Konstruktionsbeschränkungen betreffen die Widerstandskapazitäts-(RC-)-Verzögerung. Wie Fachleute auf dem Gebiet erkennen werden, stellt die RC-Verzögerung eine erhebliche Beschränkung der Leistung von Hochgeschwindigkeitslogikchips dar. Die RC-Verzögerung bei einer Hochgeschwindigkeitsschaltungsausführung kann aus dem Schaltungswiderstand und der den dielektrischen Medien zugeordneten Kapazität oder Kapazitanz resultieren. Die RC-Verzögerung ist bei Sub-0,18-Mikron-Technologien besonders ausgeprägt. Eine Möglichkeit, die Effekte der RC-Verzögerung zu begrenzen, besteht darin, eine Bit-Sliced-Ausführung zu verwenden. Das bedeutet, die Datenpfade werden enger gemacht, um effizientere kundenspezifische Ausführungen und Layouts zu ermöglichen. Bei einem Beispiel würden die bei der DES-Kryptographiebearbeitung verwendeten 32 Bit-Datenpfade unter Verwendung effizient ausgeführter Layouts in acht 4 Bit-Datenpfade aufgeteilt werden. Die Bit-Sliced-Ausführung kann jedoch bei der herkömmlichen DES-Kryptographiebearbeitung nicht verwendet werden, da die 32 Bit-Datenpfade Erweiterungs- und Permutationsoperationen umfassen. Die 32 Bit-Blöcke in den Datenpfaden werden typischerweise erweitert, mit einem Schlüssel kombiniert, einer S-Box zugeführt und permutiert. Die Bit-Sliced-Ausführung kann nicht verwendet werden, da die Bits in den 32 Bit-Datenblöcken miteinander vermischt sind. Mit anderen Worten, die Bits in einem Vier-Bit-Anteil (4 Bit-Slice) würden typischerweise mit Bits aus den anderen Vier-Bit-Anteilen ausgetauscht werden, da die Bits periodisch permutiert werden. Da es keinen einfachen Mechanismus zum Verfolgen des Bitaustausches gibt, kann die Bit-Sliced-Ausführung nicht leicht implementiert werden. Es sind Techniken zum Hinausbewegen der Permutations- und Erweiterungsoperationen aus dem bei der DES-Kryptographiebearbeitung verwendeten 32 Bit-Datenpfad beschrieben. Durch Hinausbewegen der Permutations- und Erweiterungsoperationen aus dem Datenpfad, kann eine Bit-Sliced-Implementierung dazu verwendet werden, die Effekte der RC-Verzögerung in dem zeitkritischen DES-Bearbeitungsdatenpfad zu begrenzen.
  • DES beschreibt außerdem die Verwendung von XOR-Operationen bei der Kryptographiebearbeitung. Wie Fachleute auf dem Gebiet erkennen werden, sind XOR-Operationen rechnerisch teuer. Es sind Techniken zur Verwendung grundlegenderer Operationen vorgesehen, um die XOR-Operationen im Datenpfad zu ersetzen.
  • Wie vorstehend erwähnt, spezifiziert der DES-Algorithmus sechzehn Bearbeitungsrunden. Triple-DES führt den DES-Algorithmus dreimal hintereinander aus. Während jeder Runde der DES-Bearbeitung werden die linke und rechte Hälfte der 64 Bit-Daten ausgetauscht. Bei Triple-DES werden jedoch die linke und rechte Hälfte der 64 Bit-Daten während der Übergänge zwischen den nacheinander durchgeführten 16 Runden an DES-Operationen nicht ausgetauscht. Um es zu ermöglichen, dass die linke und rechte Hälfte nicht ausgetauscht werden, wird typischerweise eine Logik verwendet, die einen zusätzlichen Taktzyklus und einen 3-zu-1-Multiplexer umfasst. Techniken, die einen Zwei-Ebenen-2-zu-1-Multiplexer verwenden, sind vorgesehen, welche während der Übergänge zwischen den sechzehn Runden der DES-Bearbeitung keinen zusätzlichen Taktzyklus umfassen. Wie Fachleute auf dem Gebiet erkennen werden, können 2-zu-1-Multiplexer zusammen mit Registern integriert werden.
  • Die vorliegende Erfindung sieht außerdem ein Pipelined-Schlüssel-Scheduling vor, um es zu ermöglichen, jeder DES-Runde einen Rundenschlüssel mit einer hohen Taktrate zuzuführen. Die Schlüsselerzeugungs-, -auswahl-, -zufuhr- und -verbrauchsoperation können in verschiedene Stufen der Pipelined-Bearbeitung aufgeteilt werden.
  • Die Techniken der vorliegenden Erfindung können in vielerlei Zusammenhängen implementiert werden. 1 beschreibt die vorliegende Erfindung vermittels eines kryptographischen Beschleunigersystems, das auf viele verschiedene Arten ausgeführt werden kann, etwa z.B. als selbständige integrierte Schaltung, als Embedded Software oder als Teilsystem, das beispielsweise in einem Server-Computer enthalten ist, der bei einer Vielzahl an Internetaktivitäten und das Internet betreffenden Aktivitäten verwendet wird. Es wird jedoch darauf hingewiesen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen beschränkt ist und in jedem beliebigen System verwendet werden kann, in dem eine Datenverschlüsselung erwünscht ist.
  • 1 ist eine schematische Darstellung eines Beispiels für ein kryptographisches Bearbeitungssystem 100 gemäß einer Ausführungsform der Erfindung. Wie in 1 gezeigt, kann die vorliegende Erfindung als selbständiger Kryptographiebeschleuniger 102 oder als Teil des Systems 100 implementiert werden. Bei der beschriebenen Ausführungsform ist der Kryptographiebeschleuniger 102 über eine standardgemäße auf dem Chip befindliche PCI-Schnittstelle mit einem Bus 104, etwa einem PCI-Bus, verbunden. Das Bearbeitungssystem 100 umfasst eine Verarbeitungseinheit 106 und eine Systemspeichereinheit 108. Die Verarbeitungseinheit 106 und die Systemspeichereinheit 108 sind über eine Brücke und eine Speichersteuereinheit 110 mit dem Systembus 104 verbunden. Obgleich die Verarbeitungseinheit 106 die zentrale Verarbeitungseinheit oder CPU des Systems 100 sein kann, muss sie nicht notwendigerweise die CPU sein. Sie kann einer von vielen Prozessoren sein. Eine LAN-Schnittstelle 114 verbindet das Bearbeitungssystem 100 mit einem lokalen Netz (LAN – Local Area Network), empfängt Pakete zur Verarbeitung und gibt verarbeitete Pakete an das LAN (nicht gezeigt) aus. Ebenso verbindet eine WAN-(Wide Area Network/Weitverkehrsnetz)Schnittstelle 112 das Bearbeitungssystem mit einem WAN (nicht gezeigt), wie etwa dem Internet, und verwaltet die ein- und ausgehenden Pakete, wobei eine automatische Sicherheitsverarbeitung für IP-Pakete bereitgestellt wird.
  • Ein Kryptographiebeschleuniger 102 kann viele Kryptographiealgorithmen durchführen, einschließlich des DES- und Triple-DES-Algorithmus. Es wird darauf hingewiesen, dass, obgleich die Techniken der vorliegenden Erfindung aus Gründen der Klarheit im Zusammenhang mit DES und Triple-DES beschrieben sind, ein Fachmann auf dem Gebiet erkennen wird, dass die Techniken auch auf andere Kryptographiealgorithmen, einschließlich Variationen des DES- und Triple-DES-Algorithmus, angewandt werden können.
  • 2 ist eine schematische Darstellung einer kryptographischen Bearbeitungseinheit gemäß einer Ausführungsform der vorliegenden Erfindung. Die kryptographische Bearbeitungseinheit 201 weist die Eingangs- und Ausgangspuffer 203 und 205 auf. Die Eingangs- und Ausgangspuffer 203 und 205 können, wie in 1 gezeigt, mit einem externen Prozessor verbunden sein. Die kryptographische Bearbeitungseinheit 201 enthält eine Kryptographiemaschine 207. Die kryptographische Bearbeitungseinheit 201 kann auch eine Authentifikationsmaschine 217 enthalten. Wie Fachleute auf dem Gebiet erkennen werden, können auch andere Komponenten, einschließlich einer Decodierlogik, Bestandteil der kryptographischen Bearbeitungseinheit 201 sein. Die Kryptographiemaschine 207 enthält die Umgebungslogik 209 und die DES-Maschine 213. Die DES-Maschine 213 kann die asynchronen FIFO-Schnittstellen 211 und 215 umfassen. Die asynchronen FIFO-Schnittstellen 211 und 215 ermöglichen es der DES-Maschine 203, mit einer wesentlich höheren Taktrate als die Umgebungslogik 209 zu arbeiten. Die asynchrone FIFO-Schnittstelle 211 kann auch dazu verwendet werden, die von der Umgebungslogik 209 empfangenen 32 Bit-Blöcke für die DES-Bearbeitung in 64 Bit-Blöcke umzuwandeln. Die asynchrone FIFO-Schnittstelle 215 kann in ähnlicher Weise dazu verwendet werden, die 64 Bit-Blöcke für die DES-Bearbeitung wieder zurück in 32 Bit-Blöcke für die Umgebungslogik 209 umzuwandeln.
  • Die asynchronen FIFO-Schnittstellen 211 und 215 sind bereitgestellt, um die Operationen der Umgebungslogik 209 in der DES-Maschine 213 zu entkoppeln. Die Umgebungslogik 209 kann die Daten parsen (analysieren), um eine Bearbeitung von Datenabschnitten durch die DES-Maschine 213 zu ermöglichen. Die DES-Maschine 213 kann einen Datenblock verarbeiten, wann immer er am Eingangs-FIFO zur Verfügung steht. Die FIFO-Schnittstellen 211 und 215 kompensieren die Ratenfehlanpassung zwischen der Umgebungslogik 209 und der DES-Maschine 213. Die asynchronen FIFO-Schnittstellen sehen Flexibilität bei der Einstellung unterschiedlicher Taktverhältnisse zwischen der DES-Maschine 213 und der Umgebungslogik 209 vor und ermöglichen die Wiederverwendung derselben Ausführung der DES-Maschine 213 in anderen Prozessorkonfigurationen. Bei einem Beispiel beträgt das Taktverhältnis zwischen der DES-Maschine 213 und der Umgebungslogik 209 3 zu 1. Bei diesem Beispiel kann die DES-Maschine mit ungefähr 500 MHz arbeiten, während die Umgebungslogik 209 mit ungefähr 166 MHz arbeiten kann. Die FIFO-Schnittstelle kann so bemessen sein, dass sie für die DES-Maschine ausreichend Daten zur Bearbeitung bereitstellt. Die Taktrate der Umgebungslogik 209 sowie die Latenzzeit zum Laden und Entladen von Daten der DES-Maschine 213 können berücksichtigt werden. Bei einem Beispiel muss der Eingangs-FIFO 211 groß genug sein, um die DES-Maschine 213 kontinuierlich mit Daten zu versorgen. Jeder Datenblock, den die Umgebungslogik verarbeitet, kann Daten enthalten, die die DES-Maschine 213 bearbeitet.
  • Obgleich diese Ausführungsform der Erfindung in Bezug auf eine DES-Maschine beschrieben ist, kann die Erfindung allgemeiner auch auf andere Kryptographiemaschinen, wie etwa AES, angewandt werden.
  • 3 ist eine schematische Darstellung der Datenpakete, die die Umgebungslogik 209 über die FIFO-Schnittstelle 203 gemäß einer Ausführungsform der vorliegenden Erfindung an die Kryptographiemaschine 207 senden kann. Das Paket 301 enthält einen Header-Abschnitt 303. Der Abschnitt 305 enthält Schlüssel und einen Initialisierungsvektor. Initialisierungsvektoren (IV) sind in RFC 2405, mit dem Titel "The ESP DES-CBC Cipher Algorithm With Explicit VI" beschrieben, welches Dokument hierin in seiner Gesamtheit durch Bezugnahme allgemein gewürdigt wird. "CBC" steht für den Cipher-Block-Chaining-Modus (Schlüsselblockverkettungsmodus). Dieser Modus spezifiziert, dass die kryptographische Bearbeitung von 64 Bit-Datenblöcken in solcher Weise miteinander verknüpft werden sollte, dass das Ergebnis der letzten 64 Bit-Daten zum IV für die Bearbeitung des folgenden Blocks wird. Der CBC-Modus kann verhindern, dass ein Datenblock in vielen herkömmlichen Systemen parallel verarbeitet wird.
  • Der Abschnitt 307 enthält die Nutzlast. Die Nutzlast ist der Abschnitt des Pakets 301, der der DES-Maschine 213 zur DES-Bearbeitung zugeführt wird. Auf die Nutzlast 307 kann ein Trailer 309 folgen. Der Nutzlast-Header 303, der Schlüssel- und Initialisierungsvektorabschnitt 305 sowie der Trailer 309 bilden die Nutzlastlücke 311, die den Daten aus der Umgebungslogik 209 zugeordnet ist. Die Daten im Nutzlast abschnitt des Pakets können der DES-Maschine 213 kontinuierlich zugeführt werden, indem die Nutzlastlücke 311 und die Taktrate der Umgebungslogik 209 bestimmt werden.
  • Wie vorstehend erwähnt, kann die DES-Maschine 213 mit 500 MHz arbeiten, während die Umgebungslogik 209 nur dazu imstande sein kann, der DES-Maschine 213 Daten mit einer Rate von ungefähr 166 MHz zuzuführen. Die FIFO-Schnittstelle 211 kann Register umfassen, die ebenfalls mit 166 MHz getaktet sind. Angenommen, dass bei jedem 166 MHz-Taktzyklus ein einzelnes 32 Bit-Wort weitergeleitet wird, dann würde es bei 166 MHz 50 Taktzyklen dauern, um eine Nutzlastlücke 311 von 50 Worten weiterzuleiten. Gemäß verschiedenen Ausführungsformen dauert es 50 Taktzyklen, um bei 500 MHz einen 64 Bit-Block zu verarbeiten. Die 50 Taktzyklen bei 500 MHz entsprechen ungefähr 17 Taktzyklen bei 166 MHz. Die FIFO-Schnittstelle 211 wäre so konfiguriert, dass sie groß genug ist, wenigstens vier 32 Bit-Blöcke zu halten. Das bedeutet, 64 Bits Nutzlast können an der FIFO-Schnittstelle 211 zur Verfügung stehen, bevor die DES-Maschine 213 die Verarbeitung eines einzelnen 64 Bit-Blocks abschließt. Bei einer Ausführungsform ist der FIFO so bemessen, dass er acht 32 Bit-Blöcke halten kann. Zwei 32 Bit-Worte werden dazu verwendet, Daten zwischen Paketen zu halten, so dass die DES-Maschine über das Ende einer Nutzlast Kenntnis hat. Daher stehen für die Nutzlast sechs Blöcke zur Verfügung. Bei manchen Implementierungen kann die Nutzlastlücke 50 Worte übersteigen. Lücken können die folgenden Einträge umfassen: MCW (1 32 Bit-Wort), Host Context (4 Worte), SA-Daten (Schlüssel, 18 Worte), Pufferdeskriptor (3 Worte), Ipv4-Header und -Optionen (15 Worte), ESP-Header (IV, 4 Worte), ESP-Trailer (3 Worte), Status-Trailer (4 Worte) und Ethernet-Header und -Trailer variabler Länge.
  • 4a ist eine schematische Darstellung der DES-Maschine 213, wie in 2 gezeigt. Die DES-Maschine kann einen Eingangs-FIFO 401 umfassen. Der Eingangs-FIFO 401 kann asynchron sein, um die DES-Maschine von der Umgebungslogik zu entkoppeln. Ein 64 Bit-Datenblock wird mit einem Initialisierungsvektor aus dem Initialisierungsvektorblock 405 kombiniert. Initialisierungsvektoren sind, wie vorstehend erwähnt, in RFC 2405 beschrieben. Der 64 Bit-Block wird dann bei 407 einer Anfangspermutation unterzogen. Die Anfangspermutation findet vor Runde 1 statt. Es wird darauf hingewiesen, dass bei manchen Variationen von DES, auf die sich die vorliegende Erfindung anwenden lässt, keine Anfangs- und Abschlusspermutationsoperationen durchgeführt werden. Der 64 Bit-Block wird dann an die Zwei-Ebenen-Multiplexerstufe 409 weitergeleitet. Die Zwei-Ebenen-Multiplexerstufe 409 enthält vier Multiplexer zum Bestimmen, ob Eingangsdaten, ausgetauschte Daten (Swap-Daten) aus der vorherigen Runde oder nicht ausgetauschte Daten aus der vorherigen Runde geladen werden sollen. Die Eingangsdaten werden in der ersten Runde der DES-Bearbeitung geladen. Daten werden zwischen den Runden der DES-Bearbeitung ausgetauscht. Bei Triple-DES werden zwischen den abgeschlossenen 16 Runden der DES-Bearbeitung keine Daten ausgetauscht. Eine Steuerlogik (nicht gezeigt) kann die Rundenzahl verfolgen, um zu bestimmen, welche Signale an die Multiplexer gesendet werden sollen. An die Multiplexer der ersten Ebene wird ein Signal gesendet, um Daten aus einer vorherigen Runde zu laden oder nicht zu laden oder es den Eingangsdaten nach der Anfangspermutation 407 zu erlauben, zu passieren.
  • Den Multiplexern der zweiten Ebene wird ein Steuersignal zugeführt, das die Multiplexer anweist, rückgeführte Daten auszutauschen oder nicht auszutauschen oder Eingangsdaten zu laden. Die Eingangsdaten werden niemals ausgetauscht. Das Steuersignal kann der in der ersten Ebene bereitgestellte Ladewert sein, der durch eine binäre OR-Verknüpfung (ODER-Verknüpfung) mit dem Swap-Wert in der rechten Hälfte und mit dem Einerkomplement des Swap-Werts in der linken Hälfte kombiniert wird. Bei einem Vier-Bit-Datenpfadbeispiel beträgt der Ladewert 1 und der Swap-Wert 0. Es wird darauf hingewiesen, dass die Steuersignale eine Vielzahl an Zahlen, einschließlich einer Sequenz aus Einsen oder einer Sequenz aus Nullen, umfassen können. Beim Laden der Eingangsdaten werden die Eingangsdaten in die erste Ebene der Multiplexer geladen und der zweiten Ebene der Multiplexer zugeführt. Sie können die zweite Ebene der Multiplexer passieren, wenn der Ladewert 1 beträgt. Gemäß verschiedenen Ausführungsformen beträgt ein Ladewert von 1, wenn er durch eine binäre OR-Verknüpfung mit einem Swap-Wert von 0 kombiniert wird, 1. Ein Ladewert von 1, wenn er durch eine binäre OR-Verknüpfung mit einem Swap-Wert von 1 kombiniert wird, beträgt ebenfalls 1. Bei rückgeführten Ladedaten beträgt der Ladewert 0. Die rückgeführten Daten werden gemäß dem Wert des Signalaustausches ausgetauscht. Die Register 411 und 413 empfangen die Eingangsdaten oder die rückgeführten Daten.
  • Nach der ersten Bearbeitungsrunde wird der Ladewert auf 0 geschaltet. Der Swap-Wert beträgt nun 1, um anzuzeigen, dass die linke und rechte Hälfte umgeschaltet werden sollten. Daten werden längs der Leitung 453 zur ersten Ebene der Multiplexer 409 zurückgeführt. Da der Ladewert 0 beträgt, werden längs der Leitung 453 zurückgeführte Daten ausgewählt und der zweiten Ebene der Multiplexer zugeführt. Der (Id|~swap)-Wert für den Multiplexer, der dem Register 411 entspricht, beträgt (0|0), so dass die rechte Hälfte, die längs der Leitung 451 zurückgeführt wurde, ausgewählt und dem Register 411 zugeführt wird. Der (Id|swap)-Wert für den Multiplexer, der dem Register 413 entspricht, beträgt (0|1), so dass die vom Multiplexer der ersten Ebene zugeführten Daten, die den Daten von der Leitung 453 entsprechen, an das Register 413 gesendet werden.
  • Ein Vorteil der Zwei-Ebenen-Multiplexer besteht darin, dass die zeitkritischen 32 Bit-Daten so angeordnet werden, dass sie nur durch den Multiplexer der zweiten Ebene hindurchtreten, der mit den Registern 411 und 413 kombiniert werden kann, um die Verzögerung zu minimieren.
  • Wie Fachleute auf dem Gebiet erkennen werden, gibt es verschieden Steuersignale. Ein alternativer Ansatz würde darin bestehen, einen 3-zu-1-Multiplexer mit einer Ebene zu verwenden, um entweder die Eingangsdaten, die ausgetauschten rückgeführten Daten oder die nicht ausgetauschten rückgeführten Daten auszuwählen. Die Verwendung eines 3-zu-1-Multiplexers mit einer Ebene fügt jedoch dem zeitkritischen Datenpfad eine erhebliche Verzögerung hinzu, da der 3-zu-1-Multiplexer nicht leicht mit den Registern zu kombinieren ist. Der 3-zu-1-Multiplexer verwendet einen zusätzlichen Taktzyklus. Gemäß einer bevorzugten Ausführungsform werden vier 2-zu-1-Multiplexer verwendet. Die 2-zu-1-Multiplexer in der zweiten Ebene der Multiplexerstufe 409 können mit den Registern 411 und 413 integriert sein. Das Register 411 enthält die letzte Hälfte dieses ursprünglichen 64 Bit-Blocks in Runde 1. Das Register 413 enthält die rechte Hälfte des 64 Bit-Blocks in Runde 1. Die Register 411 und 413 halten beide typischerweise 32 Datenbits. Der im Register 413 enthaltene 32-Bit-Datenblock wird für die nächste Runde über die Multiplexerstufe 409 sowohl der Erweiterungsstufe 415 als auch dem Register 411 zugeführt. Die Steuersignale in der Multiplexerstufe 409 sind dafür konfiguriert, den im Register 413 enthaltenen 32 Bit-Datenblock in der nächsten Runde der DES-Bearbeitung dem Register 411 zuzuführen. Der 32 Bit-Datenblock wird der Erweiterungslogik 415 zugeführt.
  • Wie Fachleute auf dem Gebiet erkennen werden, verändert die Erweiterungslogik 415 die Reihenfolge der Bits im 32 Bit-Block und wiederholt außerdem bestimmte Bits. Die Erweiterungslogik 415 verwendet den 32 Bit-Block, um einen 48 Bit-Block zu erzeugen. Die Erweiterungslogik verbessert die Effektivität des Verschlüsselungsverfahrens und macht außerdem den 32 Bit-Block zu einem 48 Bit-Block, welcher der Größe eines Schlüssels entspricht. Der 48 Bit-Block kann dann bei 417 durch eine XOR-Verknüpfung mit dem 48 Bit-Rundenschlüssel kombiniert werden.
  • Schlüssel werden durch die Schlüsselerzeugungslogik oder Schlüssel-Scheduler-Schaltung 419 bereitgestellt. Eine Version des Schlüssels (Key) zur kryptographischen Bearbeitung des ursprünglichen 64 Bit-Blocks wird durch den Schlüssel-Scheduler 419 bereitgestellt. Der Schlüssel-Scheduler 419 kann eine andere Version des ursprünglichen Schlüssels für jede Runde vorsehen, indem er Permutations- und Verschiebefunktionen auf alle 56 Bits des ursprünglichen Schlüssels anwendet. Der 48 Bit-Block, der aus der XOR-Verknüpfung bei 417 resultiert, wird der S-Box-Stufe 427 zugeführt. Wie Fachleute auf dem Gebiet erkennen werden. wandelt jede S-Box in der S-Box-Stufe 427 einen Sechs-Bit-Eingang in einem Vier-Bit-Ausgang um. Gemäß verschiedenen Ausführungsformen sind acht S-Boxen in der S-Box-Stufe 427 vorgesehen. S-Boxen sowie andere Kryptographieoperationen sind in "Applied Cryptography", Bruce Schneier (ISBN 0471128457), beschrieben, welches Dokument hierin in seiner Gesamtheit durch Bezugnahme allgemein gewürdigt wird.
  • Der 32 Bit-Ausgang der S-Box-Stufe 427 wird der Permutationsstufe 429 zugeführt. Eine Permutationsstufe 429 weist Eingangsbits an bestimmten Positionen anderen Ausgangspositionen zu. Bei einem Beispiel wird Bit 1 zur Position 16 des Ausgangs, Bit 2 zur Position 7 des Ausgangs und Bit 3 zur Position 20 des Ausgangs etc. bewegt. Der 32 Bit-Ausgang der Permutationsstufe 429 wird bei 431 durch eine XOR-Verknüpfung mit dem Wert im Register 411 kombiniert. Das Ergebnis der XOR-Verknüpfung wird dem Register 411 über die Multiplexerstufe 409 für die nächste Runde der DES-Bearbeitung zugeführt. Dasselbe Verfahren findet bei den folgenden Runden der DES-Bearbeitung statt. Das heißt, die rechte Hälfte wird erweitert, durch eine XOR-Funktion mit einer Version des Schlüssels kombiniert, einer S-Box-Stufe zugeführt, permutiert und durch eine XOR-Verknüpfung mit der linken Hälfte kombiniert. Nach der letzten Runde werden die Ausgänge an das Register 433 und das Register 435 ausgegeben. Der Ausgang kann dann bei 437 einer Abschlusspermutation unterzogen werden. Das Ergebnis der Abschlusspermutation bei 437 wird, wie vorstehend erwähnt, mittels einer XOR-Verknüpfung mit einem Initialisierungsvektor kombiniert, wenn die DES-Maschine zum Entschlüsseln von Daten verwendet wird. Ansonsten kann das Ergebnis der Abschlusspermutation bei 437 unverändert bleiben, indem es mittels einer XOR-Verknüpfung mit einer Sequenz von Nullen kombiniert wird.
  • Bei Triple-DES werden die Ausgänge bei 433 und 435 zur Multiplexerstufe 409 zurückgeführt. Die Steuerschaltung bestimmt, wie die Daten zu den Registern 411 und 413 für 16 weitere Runden an DES-Bearbeitung zurückgeführt werden sollen. Bei typischen Implementierungen ist ein zusätzlicher Taktzyklus erforderlich, um zu bestimmen, ob die linke und rechte Hälfte ausgetauscht oder die linke und rechte Hälfte nicht ausgetauscht werden sollen. Gemäß den Techniken der vorliegenden Erfindung vermeidet die Zwei-Ebenen-Multiplexerstufe 409 jedoch den zusätzlichen Taktzyklus. Daten können zur Multiplexerstufe 409 so zurückgeführt werden, als ob es sich um eine weitere Runde der DES-Bearbeitung handeln würde. Die Steuerlogik ermöglicht eine ordnungsgemäße Bestimmung, wie die Daten zu laden sind, und zwar basierend darauf, ob es sich um eine weitere DES-Runde oder einen Übergang vor einem weiteren 16-Runden-DES-Algorithmus handelt. Spezifischer kann der Swap-Wert für Übergänge 0 betragen. Die aus dem DES- oder Triple-DES-Algorithmus resultierenden, verarbeiteten Daten werden dem Ausgangs-FIFO 441 zugeführt. Der Ausgangs-FIFO 441 kann wie der Eingangs-FIFO 401 ein asynchroner FIFO sein.
  • 4b ist eine schematische Darstellung einer DES-Maschine gemäß einer Ausführungsform der vorliegenden Erfindung, die kritische und nicht kritische Pfade in der Rundenverarbeitungslogik zeigt. Ein Block aus 64 Bit-Daten wird über die Multiplexerstufe 409 in das linke Register 411 und das rechte Register 413 eingegeben. Die 32 Bit-Daten im rechten Register 413 werden dem linken Register 411 für die nächste Runde der DES-Bearbeitung und dem Erweiterungsblock 415 zugeführt, wie vorstehend in Bezug auf 4a erwähnt. Der 48 Bit-Ausgang wird unter Verwendung einer XOR-Funktion bei 417 mit dem im Schlüsselregister 419 gespeicherten Rundenschlüssel kombiniert. Der 48 Bit-Datenblock wird dann der S-Box-Stufe 427 zugeführt und bei 429 permutiert. Die Logikoperationen, wie etwa die XOR-Operationen 417 und die S-Box-Operationen 427, auf dem Datenpfad der rechten Hälfte durchgeführt werden, sind ressourcenintensiv und machen den Pfad 451 zu einem zeitkritischen Pfad. Der zeitkritische Pfad 451 kann unter Verwendung einer Bit-Sliced-Ausführung implementiert werden. Der Pfad 453 führt lediglich die Daten der rechten Hälfte zum Multiplexer der ersten Ebene zurück. Der Pfad 453 enthält weniger Logikelemente als der Pfad 451 und wird daher als nicht kritischer Pfad bezeichnet.
  • Wie vorstehend erwähnt, kann eine Bit-Sliced-Implementierung nicht ausgeführt werden, da die Permutationslogik 429 und die Erweiterungslogik 415 die Reihenfolge der Bits im 32 Bit-Datenblock verändern. Es wäre schwierig, einen 32 Bit-Datenpfad in acht separate Vier-Bit-Anteile oder einen 48 Bit-Datenpfad in acht separate Sechs-Bit-Anteile aufzuteilen, da die Bits im zeitkritischen Datenpfad durch die Erweiterungs- und Permutationslogik miteinander vermischt werden. Die erfindungsgemäßen Techniken sehen jedoch das Hinausbewegen der Permutations- und Erweite rungslogikoperationen aus dem zeitkritischen Datenpfad vor. Durch das Bewegen der Erweiterungs- und Permutationslogik aus dem zeitkritischen Datenpfad hinaus können die Sechs-Bit-Anteile zur Kombination mit Rundenschlüsseln kundenspezifisch ausgeführt und in S-Boxen eingegeben werden. Wie vorstehend erwähnt, verwenden S-Boxen Sechs-Bit-Eingänge und geben Vier-Bit-Ausgänge aus.
  • Die Permutations- und Erweiterungslogik werden durch Erkennen der Charakteristika der Permutationslogik aus dem zeitkritischen Datenpfad entfernt. DES legt fest, dass die Permutationslogik Bits von bestimmten Eingangsposition zu gewissen Ausgangspositionen bewegt. Die Vier-Bit-Sequenz von 1, 0, 1, 1 beispielsweise kann durch das Bewegen von Bit 1 zu Bit 3, Bit 2 zu Bit 4, Bit 3 zu Bit 2 und Bit 4 zu Bit 1 permutiert werden. Die resultierende Bitsequenz würde 1, 1, 1, 0 lauten. Die Umkehrpermutation würde Bit 1 zu Bit 4, Bit 2 zu Bit 3, Bit 3 zu Bit 1 und Bit 4 zu Bit 2 bewegen. Die Anwendung der Umkehrpermutation auf die resultierende Bitsequenz 1, 1, 1, 0 würde die ursprüngliche Bitsequenz 1, 0, 1, 1 ergeben.
  • Es ist ersichtlich, dass die Anwendung der Umkehrpermutation auf die Permutation der Bitsequenz die ursprüngliche Bitsequenz ergibt. Die Beziehung lässt sich durch die folgenden Gleichungen ausdrücken: Bitsequenz = P–1(P(Bitsequenz)) Gleichung 1 Bitsequenz = P(P–1(Bitsequenz)) Gleichung 2
  • Die Gleichungen 1 und 2 können auf die in 4 gezeigte DES-Maschine angewandt werden. Der L-Wert bei 463 wird mittels einer XOR-Verknüpfung mit der Permutation des R-Wertes bei 461 kombiniert, wodurch sich bei 465 der T-Wert ergibt. Die Beziehung kann durch den folgenden Gleichungssatz dargestellt werden: T = P(R)XOR L T = P(R)XOR P(P–1(L)) T = P(R XOR P–1(L)) Gleichung 3
  • Aus der Gleichung ist zu ersehen, dass der R-Wert bei 461 solange nicht permutiert werden muss, bis er mittels einer XOR-Verknüpfung mit dem modifizierten L-Wert kombiniert wird. Da der R-Wert nicht permutiert werden muss, kann die Permutationslogik aus dem zeitkritischen Datenpfad hinaus bewegt werden.
  • 5 ist eine schematische Darstellung einer DES-Maschine gemäß einer Ausführungsform der vorliegenden Erfindung, wobei die Erweiterungs- und Permutationslogik aus dem zeitkritischen Datenpfad hinaus bewegt worden sind. Der T-Wert bei 515 entspricht dem T-Wert bei 465 in 4. Das bedeutet, T = P(R XOR P–1(L)). Spezifischer wird der L-Wert bei 513 durch die Umkehrpermutationslogik 501 umgekehrt permutiert. Der R-Wert bei 511 wird mittels einer XOR-Verknüpfung mit der Umkehrpermutation des L-Werts bei 513 kombiniert. Das Ergebnis wird dann durch die Permutationslogik 517 permutiert, um bei 515 den T-Wert zu ergeben.
  • Die der in 5 gezeigten DES-Maschine zugeführten Daten werden in eine rechte und eine linke Hälfte aufgeteilt. Die linke Hälfte wird der Umkehrpermutationslogik 501 zugeführt. Die rechte Hälfte wird sowohl der Umkehrpermutationslogik 503 als auch der Erweiterungslogik 505 zugeführt. Die der Umkehrpermutationslogik 503 zugeführte rechte Hälfte wird über den Zwei-Ebenen-Multiplexer 507 an das Register 519 weitergeleitet. Es wird darauf hingewiesen, dass das Herausziehen der Permutations- und Erweiterungslogik aus dem zeitkritischen Datenpfad mit oder ohne Verwendung eines Zwei-Ebenen-Multiplexers durchgeführt werden kann.
  • Die im Register 519 befindliche rechte Hälfte wird für die nächste Runde der DES-Bearbeitung dem Register 521 zugeführt. Die linke Hälfte wird über den Zwei-Ebenen-Multiplexer 507 dem Register 521 zugeführt. Die linke Hälfte oder der L-Wert bei 513 wird mittels einer XOR-Funktion mit dem R-Wert bei 511 kombiniert.
  • Die der Erweiterungslogik 505 zugeführte rechte Hälfte wird über den Zwei-Ebenen-Multiplexer 509 in das Register 523 eingegeben. Der Wert bei 527 wird dann mittels einer XOR-Verknüpfung mit dem Rundenschlüssel kombiniert und anschließend der S-Box-Stufe 527 zugeführt. Das Ergebnis ist der R-Wert bei 511. Das Ergebnis wird dann für die nächste Runde der DES-Bearbeitung zurückgeführt. Wie vorstehend erwähnt, bestimmt der Zwei-Ebenen-Multiplexer, ob die Eingangsdaten, die ausgetauschten Daten oder die nicht ausgetauschten Daten geladen werden sollen. Da sich sowohl die Permutationslogik 517 als auch die Erweiterungslogik 505 außerhalb des zeitkritischen Pfades befinden, kann eine Bit-Sliced-Implementierung verwendet werden.
  • 6 ist eine schematische Darstellung, die eine Bit-Sliced-Implementierung zeigt, die gemäß einer Ausführungsform der vorliegenden Erfindung verwendet werden kann. Der Wert di_l ist einer der Eingänge des Multiplexers der ersten Ebene 601. Der Wert di_rs ist einer der Eingänge des Multiplexers der ersten Ebene 603. Der Wert di_r ist einer der Eingänge des Multiplexers der ersten Ebene 605. Der Wert rd_slice_di ist einer der Eingänge des Multiplexers der zweiten Ebene 611. Der Wert di_r_mux ist der Ausgangswert des Multiplexers 605 und der andere Eingang des Multiplexers 611. Der Wert ld ist das Steuersignal, das den Multiplexern zugeführt wird, um zu bestimmen, welcher Eingang dem Ausgang zugeführt werden soll. Der ld-Wert kann eine Sequenz aus Einsen oder eine Sequenz aus Nullen sein. Der Wert sel_out ist der Ausgang des Multiplexers 611, der dem Register 619 zugeführt wird. Der Wert sel_out wird mittels einer XOR-Funktion bei 621 mit einem Rundenschlüssel kombiniert, um den Wert sbox_di zu ergeben. Gemäß einer bevorzugten Ausführungsform sind di_r_mux, rd_slice_di, sel_out und sbox_di alle Sechs-Bit-Sequenzen. Nachdem sbox_di der S-Box 625 zugeführt worden ist, wird eine Vier-Bit-Sequenz sbox_do ausgegeben. Sbox_do wird mittels einer XOR-Verknüpfung mit dem Vier-Bit-Wert aus dem Register 615 kombiniert, um rd_slice_do auszugeben.
  • Die Bit-Sliced-Implementierung ist möglich, da die Permutations- und Erweiterungslogik aus dem Datenpfad hinaus bewegt worden ist, der rd_slice_di und di_r entspricht. Unter Verwendung einer Sechs-Bit-Slice-Implementierung kann der Schaltungsaufbau kundenspezifisch ausgeführt werden, um die Effekte der RC-Verzögerung in dem Datenpfad zu begrenzen, der rd_slice_di und di_r entspricht.
  • Wie Fachleute auf dem Gebiet erkennen werden, ist die RC-Verzögerung nicht der einzige Faktor, der den Durchsatz einschränkt. Die XOR-Funktion ist typischerweise ebenfalls langsam. Der Datenpfad kann durch Durchführen der XOR-Funktion zusammen mit den Funktionen der zwei Multiplexer 605 und 611 weiter optimiert werden. Obgleich XOR-Funktionen typischerweise langsam sind, können OR-Funktionen effizienter ausgeführt werden. Die XOR-Funktion kann in eine einzelne OR-Funktion zerlegt werden, die mit anderen Logikoperationen verwendet wird. Die Zerlegung kann durch Verstehen der Charakteristika der Daten bei verschiedenen Logikoperationen erreicht werden. Der sel_out-Wert im Register 619 ist entweder di_r_mux oder rd_slice_di. Die Bestimmung wird durch das Steuersignal sel durchgeführt, das (Id|swap) entspricht. Das bedeutet, der di_r_mux-Wert wird gewählt, wenn es sich um Runde eins handelt. Der rd_slice_di-Wert wird gewählt, wenn es sich nicht um Runde eins handelt. Der Swap-Wert basiert bei Triple-DES darauf, ob sich die aktuellen Daten im Übergang vor einer 16-Runden-DES-Operation befinden. Die Auswahl kann durch die folgenden Gleichungen dargestellt werden, wobei ~ das Einerkomplement, & eine binäre AND-Verknüpfung (UND-Verknüpfung), ^ eine XOR-Verknüpfung und | eine binäre OR-Verknüpfung ist. Der Wert sbox_di kann durch die folgenden Gleichungen dargestellt werden: sel_out = (sel & di_r_mux|~sel & rd_slice_di) Gleichung 4
  • Wenn sel 111111 beträgt, wird di_r_mux als sel_out gewählt wird. Wenn sel 000000 beträgt, wird rd_slice_di als sel_out gewählt wird. Der durch eine XOR-Verknüpfung mit den Schlüsseln kombinierte Wert sel_out ergibt sbox_di, wie durch die folgende Gleichung gezeigt: sbox_di = (sel & di_r_mux|~sel & rd_slice_di) ^ Schlüssel Gleichung 5
  • Eine XOR-Funktion (a ^ b) kann in (a & ~b|~a & b) zerlegt werden. Die Gleichung 5 kann auf folgende Art und Weise zerlegt werden: sbox_di = (sel & di_r_mux|~sel & rd_slice_di) & ~Schlüssel| ~(sel & di_r_mux|~sel & rd_slice_di) & Schlüssel Gleichung 5b sbox_di = (~sel & rd_slice_di & ~Schlüssel)|(sel & di_r_mux & ~Schlüssel)| ~(sel & di_r_mux) & ~(~sel & rd_slice_di) & Schlüssel Gleichung 5c sbox_di = rd_slice_di & (~sel & Schlüssel)|(~sel & rd_slice_di|~(~sel & rd_slice_di)) & (sel & di_r_mux & ~Schlüssel)| (sel|~rd_slice_di) & (~sel|~di_r_mux) & Schlüssel Gleichung 5d sbox_di = rd_slice_di & (~sel & ~Schlüssel)| (~sel & rd_slice_di) & (sel & di_r_mux & ~Schlüssel)| (sel|~rd_slice_di) & (sel & di_r_mux & ~Schlüssel)| (sel|~rd_slice_di) & (~sel|~di_r_mux) & Schlüssel Gleichung 5e sbox_di = rd_slice_di & (~sel & ~Schlüssel)| (~sel & rd_slice_di) & (sel & di_r_mux & ~Schlüssel)| ~rd_slice_di & (sel & di_r_mux) ^ Schlüssel| sel & (sel & di_r_mux) ^ Schlüssel Gleichung 5f
  • Der folgende Term von Gleichung 5f entspricht logisch 0: ~rd_slice_di & (sel & di_r_mux) ^ Schlüssel|sel & (sel & di_r_mux) ^ Schlüssel. Ein Substituieren in 0 ergibt die Gleichung 6. sbox_di = rd_slice_di & (~sel & ~Schlüssel)|~rd_slice_di & ((sel & di_r_mux) ^ Schlüssel)|sel & ((sel & di_r_mux) ^ Schlüssel) Gleichung 6
  • Durch Substituieren der folgenden Werte, kann die Gleichung 7 abgeleitet werden. inp1 = ~sel & ~Schlüssel inp2 = ((sel & di_r_mux) ^ Schlüssel) inp3 = sel & ((sel & di_r_mux) ^ Schlüssel) sbox_di = rd_slice_di & inp1|~rd_slice_di & inp2|inp3 Gleichung 7
  • Gleichung 7 ist in 7 dargestellt. 7 ist eine schematische Darstellung einer Bit-Sliced-Implementierung gemäß einer Ausführungsform der vorliegenden Erfindung, wobei die XOR-Verknüpfung bei 621 in eine OR-Funktion und eine Ergänzungslogik zerlegt ist. Es wird darauf hingewiesen, dass der Schlüssel hierbei inp1 705, inp2 707 und inp3 709 zugeführt wird. Sowohl inp1 705 als auch inp2 707 sind Eingänge des Multiplexers der zweiten Ebene 711. Der Wert rd_slice ist das Steuersignal, das am Multiplexer der zweiten Ebene 711 entweder inp1 705 oder inp2 707 auswählt. Der im Register 713 befindliche Ausgang des Multiplexers 711 wird mittels einer OR-Verknüpfung mit dem Wert im Register 715 kombiniert. Der Ausgang ist sbox_di, der dem sbox_di-Wert aus 6 entspricht. Das Zuführen von sbox_di an die S-Box 717 ergibt denselben resultierenden sbox_do-Wert, den die Implementierung gemäß 6 ergeben würde. Die resultierenden DES-Operationen können so ausgeführt sein, dass sie dieselben kryptographischen Ergebnisse erzielen.
  • Wie Fachleute auf dem Gebiet erkennen werden, können andere Logikimplementierungen verwendet werden, um die kryptographische Bearbeitungsleistung erfindungsgemäß zu verbessern. Bei einer Implementierung kombiniert eine kundenspezifisch ausgeführte Zelle das OR-Gate (ODER-Gatter) mit den Registern 713 und 715. Bei einem anderen Beispiel wird die XOR-Funktion 721 in die S-Box-Logik 717 zerlegt. Gemäß verschiedenen Ausführungsformen wird eine 500 MHz-Ausführung zur DES-Bearbeitung erzielt.
  • Eine weitere herkömmliche Leistungsbeschränkung betrifft das Schlüssel-Scheduling. In jeder Runde der DES-Bearbeitung erzeugt der Schlüssel-Scheduler die Rundenschlüssel basierend auf dem ursprünglichen Schlüssel und dem Rundenzähler. Wenn sich die Taktrate jedoch 500 MHz nähert, wird das Schlüssel-Scheduling bei jeder Runde zeitkritisch. Bei Triple-DES wird einer der drei Schlüssel vorab ausgewählt und ein Rundenschlüssel bestehend aus einem der drei Schlüssel bei jeder DES-Runde zugeführt. Pipelining ist vorgesehen, um es zu ermöglichen, den Schlüssel in einer Hochgeschwindigkeits-DES-Umgebung zuzuführen. Schlüssel- Scheduling-Operationen können basierend auf logischen Anordnungen in verschiedene Stufen aufgeteilt werden. Bei einer Ausführungsform wird das Schlüssel-Scheduling in Operationsstufen aufgeteilt, die ungefähr denselben Zeitbetrag verwenden, um ihre Operationen durchzuführen. Bei einer anderen Ausführungsform wird das Schlüssel-Scheduling aus praktischen Gründen in verschiedene Stufen aufgeteilt.
  • Bei einer spezifischen Ausführungsform wird das Schlüssel-Scheduling in vier verschiedene Stufen aufgeteilt. In der ersten Stufe, die auch als Bestimmungsstufe bezeichnet wird, wird ein Verschiebebetrag zum Durchführen der Verschiebefunktion basierend auf dem Rundenzählerwert erzeugt. Wie vorstehend erwähnt, werden die Rundenschlüssel basierend auf dem ursprünglichen Schlüssel und dem Rundenzähler erzeugt. In der zweiten Stufe, die auch als Verschiebestufe bezeichnet wird, wird die tatsächliche Verschiebefunktion durchgeführt.
  • In der dritten Stufe, die auch als Ausbreitungsstufe bezeichnet wird, wird die Runde vom Schlüssel-Scheduler an die Rundenlogik weitergeleitet. Der Rundenschlüssel wird im Register 623 aus 6 registriert oder am inp1 705, inp2 707 und inp3 709 eingegeben. In der vierten Stufe, die auch als Verbrauchsstufe bezeichnet wird, wird der Rundenschlüssel in der entsprechenden DES-Runde verwendet. Wie in der nachfolgenden Tabelle 1 gezeigt, nutzt der Schlüssel-Scheduler die Vorteile der Pipeline-Verarbeitung.
  • Tabelle 1
    Figure 00210001
  • Während der Bestimmung des zweiten Schlüssels wird ein erster Schlüssel verschoben. Während der Verschiebung des zweiten Schlüssels wird ein erster Schlüssel weitergeleitet und ein dritter Schlüssel bestimmt. Während des Verbrauchs des ersten Schlüssels wird ein zweiter Schlüssel weitergeleitet und ein dritter Schlüssel verschoben. Gemäß verschiedenen Ausführungsformen teilt eine Pipelined-Ausführung das Schlüssel-Scheduling in vier Stufen auf. Die Pipeline-Ausführung verbessert herkömmliche Techniken, die das Erzeugen des Schlüssels und das anschließende Verbrauchen des Schlüssels beschreiben.
  • Obgleich die Erfindung insbesondere in Bezug auf spezifische Ausführungsformen derselben dargestellt und beschrieben worden ist, versteht es sich für Fachleute auf dem Gebiet, dass Abänderungen der Form und Details der offenbarten Ausführungsformen durchgeführt werden können.

Claims (13)

  1. Kryptographiemaschine zum Durchführen von kryptographischen Operationen an einem Datenblock, wobei die Kryptographiemaschine umfasst: einen Schlüssel-Scheduler, der dafür konfiguriert ist, Schlüssel für kryptographische Operationen vorzusehen, eine Multiplexer-Schaltung (409) mit einer Eingangsstufe und einer Ausgangsstufe, eine Erweiterungslogik, die dafür konfiguriert ist, einen Ausgang der Multiplexer-Schaltung (409) zu empfangen und eine erste Bitsequenz mit einer ersten Größe in eine erweiterte erste Bitsequenz mit einer zweiten Größe zu erweitern, die größer als die erste Größe ist, wobei die erste Bitsequenz einem Abschnitt des Datenblocks entspricht, und eine Permutationslogik (429), die dafür konfiguriert ist, einen Ausgang der Erweiterungslogik zu empfangen und eine zweite Bitsequenz zu verändern, die dem Abschnitt des Datenblocks entspricht, wobei eine Veränderung der zweiten Bitsequenz am Datenblock kryptographische Operationen durchführt, dadurch gekennzeichnet, dass die Multiplexer-Schaltung (409) auf einer ersten Ebene zwei 2-zu-1-Multiplexer umfasst, die mit zwei 2-zu-1-Multiplexern auf einer zweiten Ebene verbunden sind, und die Kryptographiemaschine ferner einen Rückführpfad (451) umfasst, der dafür konfiguriert ist, einen Ausgang der Permutationslogik (429) zur zweiten Ebene der Multiplexer-Schaltung (409) zurückzuführen.
  2. Kryptographiemaschine nach Anspruch 1, die ferner eine S-Box (427) umfasst, die dafür konfiguriert ist, einen Ausgang der Erweiterungslogik zu empfangen, eine dem Abschnitt des Datenblocks entsprechende dritte Bitsequenz zu verändern, indem die Größe der dritten Bitsequenz verdichtet und die dritte Bitsequenz unter Verwendung einer S-Box-Logik verändert wird, und ein Ergebnis an die Permutationslogik (429) auszugeben.
  3. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei die Kryptographiemaschine eine DES-Maschine ist.
  4. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei die Erweiterungslogik dafür konfiguriert ist, die erste Bitsequenz, die weniger als 32 Bits umfasst, zu erweitern.
  5. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei die Erweiterungslogik dafür konfiguriert ist, die erste Bitsequenz, die vier Bits umfasst, zu erweitern.
  6. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei der Zwei-Ebenen-Multiplexer dafür konfiguriert ist, entweder Eingangsdaten, die in einer ersten Runde der DES-Bearbeitung geladen werden, ausgetauschte Daten (swapped data), die in einer vorherigen Runde der DES-Bearbeitung geladen und zwischen den Runden der DES-Bearbeitung ausgetauscht wurden, oder nicht ausgetauschte Daten auszuwählen, die in einer vorherigen Runde der DES-Bearbeitung geladen und nicht während der Triple-DES-Bearbeitung zwischen den abgeschlossenen Runden der DES-Bearbeitung ausgetauscht wurden, um sie der Ausgangsstufe des Multiplexers zuzuführen.
  7. Kryptographiemaschine nach Anspruch 3, wobei die Erweiterungslogik und die Permutationslogik (429) in der DES-Maschine enthalten sind.
  8. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei der Schlüssel-Scheduler dafür ausgelegt ist, eine Pipelined-Schlüssel-Scheduling-Logik durchzuführen.
  9. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei der Schlüssel-Scheduler mehrere Stufen umfasst.
  10. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei der Schlüssel-Scheduler eine Bestimmungsstufe umfasst und wobei die Bestimmungsstufe dafür ausgelegt ist, einen Verschiebungsbetrag zum Durchführen einer Verschiebefunktion (Shift-Funktion) basierend auf einem Rundenzählerwert zu generieren.
  11. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei der Schlüssel-Scheduler eine Verschiebestufe umfasst.
  12. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei der Schlüssel-Scheduler eine Ausbreitungsstufe umfasst und wobei die Ausbreitungsstufe dafür ausgelegt ist, den Rundenschlüssel vom Runden-Scheduler an eine Rundenlogik weiterzugeben.
  13. Kryptographiemaschine nach einem der vorhergehenden Ansprüche, wobei der Schlüssel-Scheduler eine Verbrauchsstufe umfasst und wobei die Verbrauchsstufe dafür ausgelegt ist, den Rundenschlüssel in einer entsprechenden DES-Runde zu verwenden.
DE60121284T 2000-12-13 2001-11-02 Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion Expired - Lifetime DE60121284T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US25556200P 2000-12-13 2000-12-13
US255562P 2000-12-13
US892240 2001-06-26
US09/892,240 US7142671B2 (en) 2000-12-13 2001-06-26 Methods and apparatus for implementing a cryptography engine

Publications (2)

Publication Number Publication Date
DE60121284D1 DE60121284D1 (de) 2006-08-17
DE60121284T2 true DE60121284T2 (de) 2007-06-28

Family

ID=26944777

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60121284T Expired - Lifetime DE60121284T2 (de) 2000-12-13 2001-11-02 Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion

Country Status (3)

Country Link
US (1) US7142671B2 (de)
EP (1) EP1215841B1 (de)
DE (1) DE60121284T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062657B2 (en) * 2000-09-25 2006-06-13 Broadcom Corporation Methods and apparatus for hardware normalization and denormalization
US20020061107A1 (en) * 2000-09-25 2002-05-23 Tham Terry K. Methods and apparatus for implementing a cryptography engine
US7502463B2 (en) * 2000-12-13 2009-03-10 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7366300B2 (en) * 2000-12-13 2008-04-29 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7142671B2 (en) 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US8650409B1 (en) 2004-09-15 2014-02-11 Altera Corporation FPGA configuration data scrambling using input multiplexers
US7076059B1 (en) * 2002-01-17 2006-07-11 Cavium Networks Method and apparatus to implement the data encryption standard algorithm
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
EP2528000B1 (de) 2003-05-23 2017-07-26 IP Reservoir, LLC Intelligente Datenspeicherung und -verarbeitung unter Verwendung von FPGA-Vorrichtungen
KR100546375B1 (ko) 2003-08-29 2006-01-26 삼성전자주식회사 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법
BRPI0318492B1 (pt) * 2003-09-05 2019-12-10 Telecom Italia Spa rede dependente de chave combinatória e método para criptografia/decifração de dados digitais de entrada
US7580519B1 (en) * 2003-12-08 2009-08-25 Advanced Micro Devices, Inc. Triple DES gigabit/s performance using single DES engine
US7545928B1 (en) * 2003-12-08 2009-06-09 Advanced Micro Devices, Inc. Triple DES critical timing path improvement
KR100800468B1 (ko) * 2004-01-29 2008-02-01 삼성전자주식회사 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
US7885405B1 (en) * 2004-06-04 2011-02-08 GlobalFoundries, Inc. Multi-gigabit per second concurrent encryption in block cipher modes
US7526085B1 (en) 2004-07-13 2009-04-28 Advanced Micro Devices, Inc. Throughput and latency of inbound and outbound IPsec processing
US7783037B1 (en) 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
WO2007121035A2 (en) * 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US8010801B2 (en) * 2006-11-30 2011-08-30 Broadcom Corporation Multi-data rate security architecture for network security
US7886143B2 (en) * 2006-11-30 2011-02-08 Broadcom Corporation Multi-data rate cryptography architecture for network security
US8112622B2 (en) * 2006-12-08 2012-02-07 Broadcom Corporation Chaining port scheme for network security
US8879727B2 (en) * 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
US20100027781A1 (en) * 2007-12-20 2010-02-04 Galbi Duane E Method and apparatus for enhancing performance of data encryption standard (des) encryption/decryption
CN103297223B (zh) * 2013-05-07 2017-06-06 北京航空航天大学 基于动态可重构的自恢复容错aes装置及其加密方法
US10191794B2 (en) * 2016-09-28 2019-01-29 Mcafee, Llc Monitoring and analyzing watchdog messages in an internet of things network environment
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning
US11196715B2 (en) * 2019-07-16 2021-12-07 Xilinx, Inc. Slice-aggregated cryptographic system and method

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US651349A (en) * 1900-03-09 1900-06-12 Edward Tinkham Gibson Self-supporting card.
US4255811A (en) 1975-03-25 1981-03-10 International Business Machines Corporation Key controlled block cipher cryptographic system
US4107469A (en) 1977-02-17 1978-08-15 Rockwell International Corporation Multiplex/demultiplex apparatus
DE2743661A1 (de) * 1977-09-28 1979-03-29 Siemens Ag Gleichstrommotor mit mehrphasiger staenderwicklung und durch winkelstellungsgeber gesteuerter elektronischer kommutierungseinrichtung
DE2802708C2 (de) 1978-01-23 1986-06-05 Agfa-Gevaert Ag, 5090 Leverkusen Fokussiervorrichtung für eine Kamera
FR2611962B1 (fr) 1987-03-06 1989-06-09 Trt Telecom Radio Electr Systeme et procede pour cryptographie avec application
US5469547A (en) * 1992-07-17 1995-11-21 Digital Equipment Corporation Asynchronous bus interface for generating individual handshake signal for each data transfer based on associated propagation delay within a transaction
US5365588A (en) 1993-03-12 1994-11-15 Hughes Aircraft Company High speed encryption system and method
JP3053527B2 (ja) * 1993-07-30 2000-06-19 インターナショナル・ビジネス・マシーンズ・コーポレイション パスワードを有効化する方法及び装置、パスワードを生成し且つ予備的に有効化する方法及び装置、認証コードを使用して資源のアクセスを制御する方法及び装置
ES2078178B1 (es) 1993-12-31 1998-02-01 Alcatel Standard Electrica Dispositivo de cifrado de datos.
JPH11511305A (ja) 1995-07-27 1999-09-28 ネクストレベル・システムズ・インコーポレイテッド 隠しワーク・ファクタを有する暗号装置
CA2164768C (en) 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
US5671284A (en) * 1996-04-16 1997-09-23 Vlsi Technology, Inc. Data encryptor having a scalable clock
EP0839418B1 (de) 1996-05-20 2003-05-02 Koninklijke Philips Electronics N.V. Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
JP2856190B2 (ja) 1997-02-27 1999-02-10 日本電気株式会社 演算処理装置および演算処理方法
DE19724072C2 (de) * 1997-06-07 1999-04-01 Deutsche Telekom Ag Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
KR100237380B1 (ko) 1997-06-16 2000-01-15 이계철 고속 롬 기반 나이퀴스트 유한 임펄스 응답 필터
JP3351305B2 (ja) 1997-08-07 2002-11-25 日本電気株式会社 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体
CA2302784A1 (en) * 1997-09-17 1999-03-25 Frank C. Luyster Improved block cipher method
US6769063B1 (en) * 1998-01-27 2004-07-27 Nippon Telegraph And Telephone Corporation Data converter and recording medium on which program for executing data conversion is recorded
US6320964B1 (en) * 1998-08-26 2001-11-20 Intel Corporation Cryptographic accelerator
US6792536B1 (en) 1999-10-20 2004-09-14 Timecertain Llc Smart card system and methods for proving dates in digital files
JP2001211442A (ja) * 2000-01-27 2001-08-03 Victor Co Of Japan Ltd コンテンツ情報伝送方法、コンテンツ情報記録方法、コンテンツ情報伝送装置、コンテンツ情報記録装置、伝送媒体、及び記録媒体
US6567943B1 (en) 2000-04-07 2003-05-20 International Business Machines Corporation D flip-flop structure with flush path for high-speed boundary scan applications
US6591349B1 (en) * 2000-08-31 2003-07-08 Hewlett-Packard Development Company, L.P. Mechanism to reorder memory read and write transactions for reduced latency and increased bandwidth
US7142671B2 (en) 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine

Also Published As

Publication number Publication date
US7142671B2 (en) 2006-11-28
DE60121284D1 (de) 2006-08-17
EP1215841A3 (de) 2004-01-02
US20020106078A1 (en) 2002-08-08
EP1215841B1 (de) 2006-07-05
EP1215841A2 (de) 2002-06-19

Similar Documents

Publication Publication Date Title
DE60121284T2 (de) Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion
DE60105788T2 (de) AES Verschlüsselungsschaltung
DE102007052656B4 (de) Digital-Verschlüsselungs-Hardware-Beschleuniger
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
DE102005010779B4 (de) Schlüsseldispositionsvorrichtung und System zur Ver-/Entschlüsselung von Daten
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE102008014359B4 (de) Ausführen einer AES-Verschlüsselung oder -Entschlüsselung in mehreren Modi mit einem einzigen Befehl
EP2462717B1 (de) Echtzeitfähige quantencomputersichere verschlüsselung von daten aller art
DE102005012098A1 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
EP0986872B1 (de) Vorrichtung zur durchführung eines blockchiffrierverfahrens
DE60221850T2 (de) Verfahren und vorrichtung zur datenverschlüsselung
DE60125673T2 (de) Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion
EP1298834A1 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE69834296T2 (de) Verschlüsselungsvorrichtung und rechnerlesbares Aufzeichnungsmedium mit Ausführungsprogramm
DE60004409T2 (de) Schaltung und Verfahren zur Zufallszahlerzeugung
EP1668817B1 (de) Verfahren und Vorrichtung zur Ver- und Entschlüsselung
DE69908082T2 (de) Verbessertes des verschlüsselungs- und entzifferungsgerät und -verfahren
DE102004038594B4 (de) Verschlüsselungsverfahren und -vorrichtung
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
DE3905667C2 (de)
EP1676394A1 (de) Verfahren und vorrichtung zur ver-/ entschlüsselung
DE60128309T2 (de) Schaltung zur Erzeugung eines Verschlüsselungsnebenschlüssels
DE10352680A1 (de) Verschlüsselungsvorrichtung und Verschlüsselungsverfahren
DE10036372A1 (de) Sender, Empfänger sowie Sender- und Empfängeranordnung
DE69829566T2 (de) Verschlüsselungsgerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M