DE60008109T2 - Sicherheitschiparchitektur und ausführungen zur kryptographiebeschleunigung - Google Patents

Sicherheitschiparchitektur und ausführungen zur kryptographiebeschleunigung Download PDF

Info

Publication number
DE60008109T2
DE60008109T2 DE60008109T DE60008109T DE60008109T2 DE 60008109 T2 DE60008109 T2 DE 60008109T2 DE 60008109 T DE60008109 T DE 60008109T DE 60008109 T DE60008109 T DE 60008109T DE 60008109 T2 DE60008109 T2 DE 60008109T2
Authority
DE
Germany
Prior art keywords
cryptography
cells
processing
fixed size
packets
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
DE60008109T
Other languages
English (en)
Other versions
DE60008109D1 (de
Inventor
Suresh Krishna
Christopher Owen
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
Application granted granted Critical
Publication of DE60008109D1 publication Critical patent/DE60008109D1/de
Publication of DE60008109T2 publication Critical patent/DE60008109T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Description

  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein das Gebiet der Kryptografie und insbesondere ein Verfahren zur Beschleunigung der kryptografischen Verarbeitung und einen Kryptografie-Beschleunigungs-Chip.
  • 2. Beschreibung des Standes der Technik
  • Im Fach sind viele Verfahren zur Ausführung von Kryptografie bekannt und werden besprochen, zum Beispiel in dem Buch Applied Cryptograhhy, Bruce Schneider, John Wiley & Sons, Inc. (1996, zweite Ausgabe), auf das nachfolgend verwiesen wird. Um die Geschwindigkeit der Kryptografie-Verarbeitung zu erhöhen, sind spezielle Kryptografie-Beschleunigungs-Chips entwickelt worden. Beispielsweise bieten die Chips Hi/fnTM 7751 und VLSITM VMS115 Hardware-Kryptografie-Beschleunigung, die ähnliche Software-Implementierungen übertreffen. Kryptografie-Beschleunigungs-Chips können in Routern oder Gateways enthalten sein, zum Beispiel, um automatische Verschlüsselung/Entschlüsselung von IP-Paketen zu bieten. Durch Einbettung der Kryptografie-Funktionalität in Netzwerk-Hardware werden sowohl die Systemleistung, als auch die Datensicherheit verbessert.
  • Diese Chips erfordern jedoch einen veränderbaren extern beigefügten Speicher zum Arbeiten. Der Chip VLSI VMS118 erfordert tatsächlich einen beigefügten synchronen SRAM, welcher der teuerste Speichertyp ist. Die zusätzlichen Speicheranforderungen machen diese Lösung in Bezug auf die Kosten gegenüber der Leistung für viele Anwendungen unannehmbar.
  • Außerdem ist die tatsächliche unterstützte Leistung dieser Chips wesentlich geringer als der Spitzendurchsatz, den die internen Kryptografie-Engines (oder "Krypto-Engines" unterstützen können. Ein Grund dafür ist, dass die Chips eine lange "Kontext"-Änderungszeit aufweisen. Mit anderen Worten, wenn die Kryptografie-Schlüssel und die zugehörigen Daten paketweise geändert werden müssen, müssen die Chips des Stands der Technik den aktuellen Kontext auslagern und einen neuen Kontext herunter laden, der den Durchsatz herab setzt. Der neue Kontext muss im Allgemeinen extern von Software geladen werden, und für viele Anwendungen, wie Router und Gateways, die Bandbreite von mehreren Anschlüssen ansammeln, ist das Ändern von Kontext eine sehr häufige Aufgabe.
  • Kürzlich ist ein Sicherheitsstandard vorgeschlagen worden, der "DES/3DES"-Verschlüsselung mit "MD5/SHA1"-Authentifizierung verbindet und als "IPSec." bekannt ist. Durch Einbindung sowohl der Verschlüsselungs-, als auch der Authentifizierungs-Funktionalität in einem einzigen Beschleunigungs-Chip kann die Gesamt-Systemleistung verbessert werden. Aber aufgrund der zuvor aufgeführten Beschränkungen bieten die Lösungen des Stands der Technik keine angemessene Leistung zu vertretbaren Kosten.
  • Tarman, Hutchinson, Pierson, Sholander, Witzke: "Algorithm – Agile Encryption in ATM Networks", 11. Juni 1998, IEEE Computer Society USA, bezieht sich auf Switches in einem ATM-Netzwerk. ATM verwendet eine kleine Zelle fester Länge in ihrer Informations-Grundeinheit. Wenn eine Zelle an einem Switch-Eingangskanal ankommt, untersucht der Switch den VPI/VCI (virtuelle Pfadkennung/virtuelle Kanalkennung), um zu bestimmen, wie die Zelle weiter zu leiten ist. Die ATM-Einheiten mit Sicherheitsagenten können einen gemeinsamen Satz von Algorithmen vereinbaren und eine Sicherheitsverknüpfung bilden. Die dort beschriebene ATM-Verschlüsselung erlaubt es, Anwendern, einen geeigneten Algorithmus auszuwählen, um Sicherheitsdienste für eine gegebene Übertragung zu implementieren.
  • Pierson at al.: "Context-Agile Encryption for High Speed Communication Networks" Computer Communication Review, US, Association for Computing Machinery, New York, Band 29, Nr. 1, Januar 1999, Seiten 35–49, bezieht sich ebenfalls auf die Verschlüsselung in einem ATM-Netzwerk.
  • "Analog Devices and IRE Announce First DSP-Based Internet Security System-on-a-Chip", Analog Devices, Pressemitteilung [online], 19. Januar 1999, Norwood, MA, bezieht sich auf ein DSP-basiertes System auf einem Chip zur Bereitstellung einer eingebetteten Verschlüsselungslösung.
  • "3Com® Launches New Era of Network Connectivity", 3Com-Pressemitteilung, [online] 14. Juni 1999, bezieht sich auf eine neue Kategorie von Hochleistungs-Netzwerkschnittstellen-Karten und auf einen kartenintegrierten Verschlüsselungs-Chip.
  • Somit wäre es wünschenswert, ein Verfahren zur Beschleunigung der Kryptografie-Verarbeitung und einen Kryptografie-Beschleunigungs-Chip zu haben, die in der Lage sind, die IPSec-Spezifikation (oder einen beliebigen anderen Kryptografie-Standard) zu implementieren, der keinen externen Speicher erfordert und der Kontext-Informationen schnell ändern kann.
  • KURZE BESCHREIBUNG DER ERFINDUNG
  • Gemäß der Erfindung wird dies durch ein Verfahren nach Anspruch 1 und einen Kryptografie-Beschleunigungs-Chip nach Anspruch 11 erreicht. Vorteilhafte Ausführungsformen werden in den jeweiligen anhängigen Ansprüchen definiert.
  • Im Allgemeinen bietet die vorliegende Erfindung eine Architektur für einen Kryptografie-Beschleunigungs-Chip, der gegenüber Ausführungen des Stands der Technik bedeutende Leistungsverbesserungen bietet. Insbesondere ermöglicht die Chip-Architektur die "zellbasierte" Verarbeitung von IP-Pakten zufälliger Länge. Die IP-Pakete, die von veränderbarer und unbekannter Größe sein können, sind in kleinere "Zellen" fester Größe eingeteilt. Die Zellen fester Größe werden dann verarbeitet und in Paketen wieder zusammen gesetzt. Beispielsweise können die eingehenden IP-Pakete zur Verarbeitung in 64-Byte-Zellen eingeteilt werden.
  • Die zellbasierte Paketverarbeitungs-Architektur der vorliegenden Erfindung ermöglicht die Implementierung einer Verarbeitungs-Pipeline, die einen bekannten Verarbeitungsdurchsatz und Zeitablaufeigenschaften hat, wodurch es möglich wird, die Zellen in einem vorhersehbaren Zeitrahmen zu abzurufen und zu verarbeiten. Die vorliegende Architektur ist skalierbar und außerdem von dem Typ der ausgeführten Kryptografie unabhängig. In bevorzugten Ausführungsformen können die Zellen der Zeit voraus gelesen (vorher abgerufen) werden, und die Pipeline kann so gestuft werden, dass der beigefügte (lokale) Speicher keine Paketdaten speichern oder Parameter steuern muss.
  • In einer ersten Ausführungsform kann ein IPSec-Verarbeitungs-Chip durch 3DES-CBC- und MD5/SHA1-Verarbeitungsblöcke implementiert werden. Die Verarbeitung der Zellen erfolgt zeitverschachtelt, und die Sequentialisierung wird von einem programmierbaren Mikrocontroller gesteuert. In einer zweiten Ausführungsform kann außerdem eine Verarbeitung öffentlicher Schlüssel nach Diffie-Hellman oder RSA und DAS hinzugefügt werden. Zusätzliche Verarbeitungsblöcke können auch implementiert werden. Die vorliegende Erfindung bietet gegenüber den Ausführungen des Stands der Technik eine Leistungsverbesserung, ohne dass ein zusätzlicher externer Speicher erforderlich ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist leicht durch die folgende ausführliche Beschreibung in Verbindung mit den begleitenden Zeichnungen zu verstehen, in denen gleiche Bezugszeichen gleiche Strukturelemente bezeichnen und in denen:
  • 1 ein grobes Blockdiagramm eines Systems ist, das einen Kryptogfafie-Beschleunigungs-Chip gemäß der vorliegenden Erfindung implementiert;
  • 2 ein grobes Blockdiagramm eines Kryptografie-Beschleunigungs-Chips der vorliegenden Erfindung ist;
  • 3 ein Diagramm ist, das die Umwandlung eines Pakets zufälliger Länge in eine Zelle fester Größe darstellt, wie von der vorliegenden Erfindung offenbart;
  • 4 ein Blockdiagramm eines Kryptografie-Beschleunigungs-Chips ist, der gemäß einer ersten Ausführungsform der vorliegenden Erfindung konfiguriert ist;
  • 5 ein Blockdiagramm eines Kryptografie-Beschleunigungs-Chips ist, der gemäß einer zweiten Ausführungsform der vorliegenden Erfindung konfiguriert ist;
  • 6 ein Blockdiagramm ist, das die Paketverarbeitung der vorliegenden Erfindung darstellt;
  • 7(A)7(D) Ablaufdiagramme sind, die eine Ausführungsform der Paket-Sequentialisierungs-Prozedur der vorliegenden Erfindung darstellen; und
  • 8 eine grafische Darstellung ist, in der die Leistung eines Kryptografie-Beschleunigungs-Chips gemäß der vorliegenden Erfindung mit einem Kryptografie-Beschleunigungs-Chip des Stands der Technik verglichen wird.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Die folgende Beschreibung wird geboten, um einem beliebigen Fachmann zu ermöglichen, die Erfindung herzustellen und zu verwenden und legt die von den Erfindern als am Besten erachteten Verfahrensweisen zur Ausführung der Erfindung dar. Verschiedene Abänderungen werden Fachleuten jedoch leicht ersichtlich sein, da das Grundprinzip der vorliegenden Erfindung in diesem Dokument insbesondere definiert worden ist, um eine Architektur und ein Verfahren zur Kryptografie-Beschleunigung bereit zu stellen.
  • Die vorliegende Erfindung stellt allgemein eine Architektur für einen Ktyptografie-Beschleunigungs-Chip bereit, der bedeutende Leistungsverbesserungen gegenüber Ausführungen des Stands der Technik ermöglicht. Insbesondere ermöglicht die Chip-Architektur die "zellbasierte" Verarbeitung von IP-Pakten zufälliger Länge. Die zellbasierte Verarbeitung beinhaltet die Aufteilung von IP-Paketen, die von verschiedener und unbekannter Größe sein können, in kleinere "Zellen" fester Größe. Die Zellen fester Größe werden dann verarbeitet und wieder in Paketen zusammen gesetzt (wieder vereinigt). Beispielsweise können die ankommenden IP-Pakete zur Verarbeitung in 64-Byte-Zellen aufgeteilt werden. Die zellbasierte Paketverarbeitungs-Architektur der vorliegenden Erfindung ermöglicht die Implementierung einer Verarbeitungs-Pipeline, die einen bekannten Verarbeitungsdurchsatz und Zeitablaufeigenschaften besitzt, wodurch es möglich wird, die Zellen in einem vorhersehbaren Zeitrahmen abzurufen und zu verarbeiten. In bevorzugten Ausführungsformen können die Zellen voraus gelesen (vorher abgerufen) werden und die Pipeline kann so gestuft sein, dass der beigefügte (lokale) Speicher keine Paketdaten speichern oder Parameter steuern muss.
  • Derzeit verwenden die anderen bekannten Lösungen in der Industrie eine vollständig andere Architektur, die darauf beruht, abhängig von der Architektur, einen lokalen beigefügten Speicher zu besitzen, um Kontext-Informationen, Paketdaten oder beides zu behalten. Somit erfordern die Ausführungen des Stands der Technik einen externen Speicherblock sehr nah am Chip. Die vorliegende Erfindung erfordert aufgrund der hochgradig zeitverschachtelten Struktur, die Pakete in Zellen fester Größe aufteilt, keinen externen Speicher. Weil die Zellen von fester Größe sind, kann die vorliegende Erfindung die Zellen fester Größe schon vor der Verarbeitung abrufen.
  • Die Größe des Speichers, der auf einem Beschleunigungs-Chip erforderlich ist, der gemäß der vorliegenden Erfindung ausgebildet ist, ist wesentlich geringer, als der für andere Lösungen erforderliche Speicher. Die vorliegende Erfindung benötigt lediglich genug Speicher auf dem Chip, um einige wenige 64-Byte-Zellen, Kontext-Informationen, Schlüssel, etc. für zwei oder mehr Pakete zu speichern und ist in der Lage, die volle Leistung für jede beliebige Paketgröße und jede beliebige Anzahl von Kontexten zu unterstützen. Die Lösungen des Stands der Technik erfordern ausreichend Speicher, um den Kontext für viele hundert oder viele tausend unterschiedliche Pakete zu behalten, zusätzlich genug Speicher, um ebenfalls die Paketdaten zu behalten.
  • Der zellbasierte Pipeline-Ablauf der vorliegenden Erfindung wird von einem programmierbaren Steuerprozessor angetrieben, der dafür verantwortlich ist, den Paketfluss, sowie die Steuer-Informationen durch den Satz der Verarbeitungseinheiten in eine logische Reihenfolge zu bringen. Der Steuerprozessor bestimmt zu jedem beliebigen Zeitpunkt, wie die Pakete in Zellen fester Größe aufgeteilt werden und wann die Zellen von dem Bus in den Speicher auf dem Chip gelesen werden sollten. Der Prozessor ruft außerdem vorher Kontext-Informationen ab, die beschreiben, welche Verarbeitung auf die Pakete angewandt werden muss. Der Steuerprozessor bringt dann die Recheneinheiten (Kryptografie, Authentifizierung, Komprimierung etc.) in eine logische Reihenfolge, um die besonderen, in den Kontext-Informationen angegebenen, Algorithmen auf die Zellen anzuwenden, die zuvor abgerufen worden sind. Der Steuerprozessor schreibt außerdem das verarbeitete Ergebnis in Informationseinheiten von Zellengröße. Darüber hinaus unterstützt die vorliegende Erfindung eine Erscheinungsform, in der fortlaufend gegensinnige Pakete ohne Leistungsverlust unterschiedliche Schlüssel und unterschiedliche kryptografische Formate besitzen können, weil der Kontext und die Paketdaten vorher abgerufen werden.
  • In Standard-Netzwerken können IP-Pakete eine veränderliche Größe besitzen, irgendwo zwischen 1 und 216 Bytes, obgleich die meisten Pakete in der Praxis zwischen 64 und 8 KBytes groß sind.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung werden die Pakete veränderlicher Länge in Standard-64-Byte-Zellen aufgeteilt, obgleich andere Implementierungen eine andere feste Größe für jede Zelle verwenden können. Die vorliegende Erfindung beruht darauf dass der Steuerprozessor die Zellverarbeitung wirksam in eine logische Reihenfolge bringt. Wenn beispielsweise viele große Pakete gegensinnig sind, konzentriert sich der Steuerprozessor auf die möglichst schnelle Verarbeitung des aktuellen Pakets, aber wenn es einige kleine Pakete gibt, die in Warteschlange gestellt sind, wird er das vorherige Abrufen der Steuer-Informationen betonen, da dies der wahrscheinliche Verarbeitungsengpass sein wird.
  • Unter gewissen Bedingungen kann der Prozessor entscheiden, den nächsten Satz Kontext- und Schlüssel-Informationen nicht vorher abzurufen, und in gewissen Fällen wird er diese Informationen vorher abrufen. Beispielsweise kann der Prozessor entscheiden, in den folgenden beiden Szenarien nicht vorher abzurufen:
    • 1) Wenn der Systembus derzeit schwer mit Verarbeitungsdaten vom aktuellen Paket beladen ist (beispielsweise mit dem Zurückschreiben verarbeiteter Zellen), würde der Steuerprozessor alle weiteren Anfragen zum vorherigen Abrufen verzögern, um ein Überlasten des Systembusses zu vermeiden, bis der Systembus zur Verfügung steht;
    • 2) Wenn der Steuerprozessor selbst damit beschäftigt ist, Steuer-Informationen für das aktuelle Paket zu verarbeiten, wie das Abrufen neuer Zellen für das aktuelle Paket, dann verzögert der Steuerprozessor das vorherige Abrufen des nächsten Satzes von Paketen und zugehöriger Steuer-Informationen.
  • Da der Steuerprozessor über Mikrocodebefehle programmiert werden kann, kann die Architektur in einer verhältnismäßig kleinen Chip-Größe im Verhältnis zu den zu erreichenden Leistungsbereichen implementiert werden, was ein großer Vorteile gegenüber Konkurrenzlösungen ist. Die Architektur der vorliegenden Erfindung hängt außerdem von dem Typ der verwendeten Kryptografie-Engines ab, und daher können neue Algorithmen unterstützt werden, indem einfach zusätzliche Kryptografie-Blöcke hinzugefügt werden.
  • Wie in 1 dargestellt, kann die vorliegende Erfindung als selbständiger Kryptografie-Beschleunigungs-Chip 102 implementiert werden und in ein Standard-Verarbeitungssystem 100 eingebunden werden. Der Kryptografie-Beschleunigungs-Chip 102 kann an einen Standard-PCI-Bus 104 über eine Standard-PCI-Schnittstelle auf dem Chip angeschlossen werden. Das Verarbeitungssystem 100 umfasst eine Verarbeitungseinheit 106 und eine Systemspeichereinheit 108. Die Verarbeitungseinheit 106 und die Systemspeichereinheit 108 können über eine Brücke und eine Speichersteuerung 110 mit dem Systembus 104 verbunden werden. Eine LAN-Schnittstelle 114 verbindet das Verarbeitungssystem 100 mit einem lokalen Netz und empfängt Pakete zur Verarbeitung und speichert verarbeitete Pakete ins Netzwerk ein. Ähnlich verbindet eine WAN-Schnittstelle 112 das Verarbeitungssystem mit einem WAN, wie dem Internet, und handhabt ankommende und ausgehende Pakete, wobei automatische Sicherheitsverarbeitung für IP-Pakete bereit gestellt wird.
  • 2 ist ein grobes Blockdiagramm der Kryptografie-Chip-Architektur der vorliegenden Erfindung. Eine Standard-PCI-Schnittstelle 202 bietet eine Standard-Schnittstelle zum Anschließen des Chips 200 an externe Systeme. Gemäß dieser Ausführungsform ist der PCI-Bus ein 32-Bit-Bus, der bei bis zu 33 MHz arbeitet. Natürlich können, wie im Fach bekannt ist, andere Schnittstellen und Konfigurationen verwendet werden, ohne von dem Umfang der vorliegenden Erfindung abzuweichen. Die IP-Pakete werden in einen FIFO (Pufferspeicher mit Durchlaufprinzip) 204 gelesen, wobei die Pakete zufälliger Länge in Zellen fester Größe aufgeteilt werden. Die Zellen fester Größe werden dann in Nutzzellen-Pufferspeichern 210 über den internen Bus 224 gespeichert. Kontext-Pufferspeicher 208 speichern "Kontext"-Informationen für die zugehörigen Zellen fester Größe, wie Verschlüsselungsschlüssel, Daten, etc. Ein programmierbarer Prozessor 212 steuert das Sequentialisieren und Verarbeiten der Zellen fester Größe und optimiert die zeitverschachtelte Verarbeitung. Der Prozessor 212 wird über einen Mikrocode auf dem Chip programmiert, der in einer Mikrocode-Speichereinheit 214 gespeichert ist.
  • Die Zellen fester Größe werden dann zeitverschachtelt von einer der Kryptografie-Engines verarbeitet. Beispielsweise können die Kryptografie-Engines " 3DES-CBC/DES X"-Verschlüsselung/Entschlüsselung 216, "MD5/SHA1"-Authentifizierung/digitale Signaturverarbeitung 218 und Kompressions-/Dekompressionsverarbeitung 220 umfassen. Es ist zu beachten, dass die gegenwärtige Architektur vom Typ der ausgeführten Kryptografie-Verarbeitung unabhängig ist, und zusätzliche Kryptogtafie-Engines können eingebunden werden, um andere gegenwärtige oder zukünftige Kryptogtafie-Algorithmen 222 zu unterstützen. Die Ausgabe-Zellen werden dann in einem Ausgabe-FIFO 206 gespeichert, um die Pakete über den PCI-Bus in das System zurück zu schreiben.
  • Wie zuvor besprochen, wandelt die vorliegende Architektur Pakete zufälliger Länge in Zellen fester Größe, um die zeitverschachtelte Verarbeitung zu erleichtern. Diese Umwandlung wird in 3 dargestellt. Nachdem ein IP-Paket zufälliger Länge vom System erhalten worden ist, wird das Paket in mehrere Zellen fester Größe (oder eine Zelle, wenn das Paket kleiner als die Standard-Zelle fester Größe ist) umgewandelt. Da die Zellen eine gleichmäßige Größe besitzen, kann der Verarbeitungsfluss so ausgelegt sein, dass der Durchsatz des Systems maximiert wird, indem zeitverschachtelte Verarbeitungstechniken, wie vorheriges Abrufen, eingebunden werden. Wenn ein IP-Paket kleiner als die Standardzelle fester Größe ist, wird das Paket in eine einzelne Zelle fester Größe umgewandelt und verarbeitet. Der Schritt des "Wiedervereinigens" umfasst in diesem Fall einfach das Umwandeln der einzelnen Zelle zurück in ein IP-Paket.
  • Eine erste Ausführungsform der vorliegenden Erfindung ist ausführlicher in 4 dargestellt. Ein IPSec-Kryptografie-Beschleunigungs-Chip 400, der gemäß der vorliegenden Erfindung ausgebildet ist, liest und schreibt Daten über eine PCI-Schnittstelle 402 in das System. Jedes ankommende Paket wird in Zellen fester Größe durch einen datenausrichtenden Bitstellenverschieber 404 unterteilt, wobei jede Zelle in dieser Implementierung 64 Bytes umfasst. Der datenausrichtende Bitstellenverschieber 404 dient als eine Paket-Aufteilungseinheit, um die ankommenden Pakete in Zellen fester Größe zu teilen. Die ankommenden Pakete können auch über den gesamten Speicher gestreut sein (z.B. Fragmentierung), und der datenausrichtenden Bittstellenverschieber 404 setzt diese Stücke wieder zusammen und stellt als Ausgabe 64-Byte-Zellen fester Größe her.
  • Die Größe jeder Zelle kann größer oder kleiner sein, abhängig von den Kosten- und Leistungsanforderungen für eine gegebene Implementierung. Außerdem können andere Techniken angewandt werden, die im Fach bekannt sind, um die ankommenden Pakete zu unterteilen, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Die Wahl von 64-Byte-Zellen fester Größe ist ein Ausführungskompromiss zwischen der Menge von Speicher, die auf dem Chip benötigt wird, und der Höhe der Leistung, die mit Zellen größerer Größe erreicht werden kann. Für das derzeitige Kosten-Leistungsverhältnis ist eine Zellengröße von 64-Byte ein guter Kompromiss. Außerdem ist eine Zellengröße von 64-Byte eine gute Anpassung für die Größenanforderungen einiger Kryptografie-Algorithmen, insbesondere MD5/SHA1, der 64-Byte-Informationseinheiten bevorzugt.
  • Wird ein ankommendes Paket unterteilt, werden die Zellen fester Größe in FIFO-Pufferspeichern 406, 408 gespeichert und warten auf die Verarbeitung durch die Kryptografie-Engines 410, 414. Die für die Verarbeitung des aktuellen Pakets benötigten Kontext-Informationen werden auch eingelesen und im Vorabruf-Pufferspeicher für Kontext 420 gespeichert. Diese Implementierung ist so ausgelegt, dass sie IETF-IPSec-Verschlüsselung und Authentifizierungs-Beschleunigung nach Industrie-Standard bereit stellt und daher nur zwei Kryptografie-Engines umfasst. Eine "3DES-CBC"-Einheit 410 gehört dazu, um Verschlüsselung und Entschlüsselung der ankommenden Pakete bereit zu stellen, und eine "MD5/SHA1"-Einheit 414 bietet Authentifizierung und digitale Signaturverarbeitung. Für ankommende Pakete werden die Zellen zuerst authentifiziert und dann auf parallele Weise entschlüsselt. Für ausgehende Pakete werden die Zellen zuerst verschlüsselt und dann authentifiziert, wieder auf zeitverschachtelte Weise. Die Verarbeitungseinheiten 410, 414 verarbeiten die Zellen in den FIFOs 406, 408 unter Verwendung der aktuellen Paket-Kontext-Informationen, die in dem aktuellen Kontext-Pufferspeicher 422 gespeichert sind.
  • Die Ausgaben der Verarbeitungseinheiten 410, 414 werden in den Ausgabe-FIFOs 412, 416 gespeichert, bis die Daten über die PCI-Schnittstelle 402 in den Systemspeicher zurück geschrieben werden können. Das in eine logische Reihenfolge bringen der Datenverarbeitung und das vorherige Abrufen werden von der Mikrosteuerung 418 gesteuert, und der Programmcode (nachfolgend beschrieben) gewährleistet, dass die Kryptografie-Engines durchgängig mit Zellen und Kontext-Informationen versorgt werden. Da die Kryptografie-Einheiten nicht warten müssen, während ganze Pakete unterschiedlicher Größen vom Systemspeicher eingelesen werden, erhöht dieses Verfahren den Durchsatz des Chips, im Vergleich zu Ausführungen des Stands der Technik. Für diese Grundausführung mit einer internen Taktrate von 60 MHz beträgt der Engine-Durchsatz ungefähr 195 MB/s bei eingeschalteter 3DES-Verschlüsselung und MD5/SHA1-Authentifizierung.
  • Diese Implementierung ist für eine Vielzahl kostenempfindlicher Anwendungen, wie Kabelmodems, xDSL-Dienste, Sicherheits-Gateways und PC-basierte Sicherheits-Beschleuniger geeignet. Da die vorliegende Erfindung keinen externen Speicher erfordert, sind die Kosten wesentlich geringer als bei Konkurrenzausführungen, die einen externen Speicher erfordern. Außerdem haben Tests ergeben, dass die volle Leistung unabhängig von irgend einer angemessenen Latenzzeit des PCI-Busses erhalten werden kann, da die Daten lange vorher abgerufen werden, bevor sie für die interne Verarbeitung benötigt werden.
  • Die Schnittstelle zwischen dem Kryptografie-Beschleunigungs-Chip und der Host-CPU-Software bietet unabhängigen Software-Betrieb über eine intelligente, Beschreiber-basierte Direktspeicherzugriffs-Schnittstelle, welche die Software-Verarbeitungslast minimiert. Insbesondere wird das Kopieren von Paketdaten unter allen Bedingungen vermieden. Die Eingangspaket-Fragmentierung wird unterstützt (auf IP-Ebene, sowie hinsichtlich der Speicherzuordnung für die Paketdaten), und die Eingangs-Fragmente können von beliebiger Größe sein (bis zu einem Byte klein) und können an einer beliebigen Byte-Grenze ausgerichtet werden. Ausgangs-Paket-Fragmentierung (auf IP-Ebene, sowie hinsichtlich der Speicherzuordnung für Paketdaten) wird auch unterstützt. Die Ausgangs-Fragmentgröße kann auf eine der beiden konfigurierbaren Arten gesteuert werden: Durch ein Längenfeld mit jedem Ausgangsdaten-Beschreiber oder durch ein globales Ausgangsdaten-Pufferspeicher-Längenfeld. Dies bietet die Flexibilität, ein ausgehendes Fragment fester Größe zu verwenden oder die Fragmentgröße pro Paket fest zu legen. In der vorliegenden Ausführungsform müssen die ausgehenden Fragmente an 32-Bit-Wortgrenzen ausgerichtet werden und in Bezug auf die Größe Vielfache eines 32-Bit-Worts sein.
  • Die Host-CPU stellt eine beliebige Anzahl von Paketen im Systemspeicher in Warteschlange und reicht einen Zeiger an eine Master-Befehlsstruktur weiter, die diese Pakete für den Beschleunigungs-Chip identifiziert. Der Master-Befehlseintrag wird verwendet, um eine Anzahl von Paketen an den Chip zur Verarbeitung weiter zu reichen. Die Struktur ist von veränderbarer Länge und enthält bis zu 216–1 Sätze Felder, wobei jedes Feld ein Paket beschreibt. Dieses Maß an Flexibilität erlaubt, dass die Host-CPU eine beliebige Anzahl Pakete in Warteschlange stellt und die Hardware-Verarbeitung aller in Warteschlange gestellten Pakete über eine einzige PCI-Schreibopexation eingeleitet wird. Der Beschleunigungs-Chip verarbeitet dann alle Pakete wie spezifiziert, gibt Status-Informationen über einen "Erledigt"-Merker und, wenn eingeschaltet, über eine Unterbrechung pro Paket oder bei globaler Beendigung aller Pakete innerhalb einer Master-Befehlsstruktur zurück an die CPU.
  • Jedem Paket im Master-Befehlseintrag wird eine einzigartige Verarbeitungs-Kontextstruktur zugewiesen, die ermöglicht, dass verschiedene Pakete unterschiedlich verarbeitet werden, obwohl sie alle Teil einer gemeinsamen Master-Befehlsstruktur sind. Außerdem können Daten von jedem Paket beim Eingang (Unterstützung der "Erfassen"-Funktion) und beim Ausgang (Unterstützung der "Streuen"-Funktion) fragmentiert werden.
  • Eine zweite Ausführungsform der vorliegenden Erfindung ist in 5 dargestellt. Diese Ausführungsform ist der Ausführungsform von 4 ähnlich, außer, dass sie auch eine DH (Diffie-Hellman)/RSA/DAS-Einheit 506 und eine Zufallszahlengenerator-Einheit 508 umfasst, um die Verarbeitung von öffentlichen Schlüsseln zu ermöglichen. Mit einem Systemtakt von 75 MHz beträgt der Engine-Durchsatz in dieser Ausführungsform über 400 Mb/s, bei eingeschalteter 3DES-Verschlüsselung und MD5/SHA1-Authentifizierung. In dieser Ausführungsform ist der PCI-Bus ein 64-Bit-Bus, der bei bis zu 66 MHz arbeitet. Es ist zu beachten, dass die Geschwindigkeit des PCI-Bustakts (33 MHz gegenüber 66 MHz) und die Buslatenzzeit eine sehr geringe Auswirkung auf die Leistung der vorliegenden Erfindung haben, da die Beschleunigungs-Chips Beschreiber, Befehls-Pufferspeicher, Kontext-Parameter und Paketdaten aggressiv vorher abrufen und zurück schreiben. Dies ermöglicht die Beschleunigungs-Chips, die Kryptografie- und Authentifizierungs-Engines trotz anderer Systemlatenzzeiten bei voller Leistungsfähigkeit laufen zu lassen.
  • Die Ausführungseinheit für Schlüsseleinrichtung 506 beschleunigt die öffentlichen Schlüsseloperationen, und die Zufallszahlengeneratox-Einheit 508 erzeugt sichere private Schlüssel.
  • Außerdem hat ein Registerblock 504 1024-Bit-Registerdateien, um die großen öffentlichen Schlüsseldaten zu behalten, die bei der Verarbeitung öffentlicher Schlüssel verwendet werden. Obgleich nicht in 5 dargestellt, umfasst diese Ausführungsform die FIFOs und den Bitstellenvexschieber, die mit Verweis auf 4 beschrieben werden. Zusätzlich zu den dargestellten Kryptografie-Einheiten kann jeder andere gegenwärtige oder zukünftige Algorithmus unter Anwendung ähnlicher Techniken verwendet werden.
  • Die Ausführungsform von 5 erzeugt SSL-Sitzungsschlüssel unter Verwendung von RSA in folgenden Stufen:
    • 1. Abrufen des Befehlskontexts, umfassend Schlüssel und Nachricht durch eine Direktspeichexzugriffs-Schnittstelle
    • 2. Wenn es sich bei der erforderlichen Operation um die Verschlüsselung eines privaten Schlüssels handelt, Verwendung des RSA-Algorithmus' des privaten Schlüssels mit vorberechneten Komponenten, die unter Verwendung des Chinesischen Restsatzes erzeugt wurden
    • 3. Wenn es sich bei der erforderlichen Operation um die Verschlüsselung eines öffentlichen Schlüssels handelt, Verwendung des öffentlichen RSA-Algorithmus'
    • 4. Schreiben der entschlüsselten/verschlüsselten Nachricht in den Ausgabe-Pufferspeicher.
  • Alternativ erzeugt die zweite Ausführungsform Schlüssel unter Verwendung des Diffie-Hellman-Algorithmus' für eine IPSec-Sitzung während eines IKE-Quittungsaustauschs gemäß folgenden Stufen:
    • 1. Abrufen des Befehlskontexts und der Nachricht durch eine Dixektspeicherzugriffs-Schnittstelle
    • 2. Wenn die erforderliche Operation ist, eine Nachricht an eine andere Partei zu erzeugen (g* mod n), Erzeugen einer 180-Bit Zufallszahl von der Zufallszahlengenerator-Einheit 508, und danach das Ausführen der modularen Exponentiation mit der erzeugten Zufallszahl als Exponent
    • 3. Wenn die erforderliche Operation ist, den geteilten Schlüssel von der empfangenen Nachricht (Y* mod n) zu erzeugen, Ausführen der modularen Exponentiation mit einer zuvor erzeugten Zufallszahl (die Zufallszahl wird ein Teil des Befehlskontexts durch die Direktspeicherzugriffs-Schnittstelle sein)
    • 4. Schreiben der Ausgabe mit der Zufallszahl, gegebenenfalls in den Ausgabe-Pufferspeicher.
  • Authentifizierung unter Verwendung des DSA-Algortihmus' für eine IPSec-Sitzung, während ein IKE-Quittungsaustausch ausgeführt wird, in folgenden Stufen:
    • 1. Abrufen des Befehlskontexts und der Nachricht durch eine Direktspeicherzugriffs-Schnittstelle
    • 2. Wenn die erforderliche Operation ist, eine Nachricht zu signieren, Erzeugen einer Zufallszahl und Berechnen von "r"- und "s"-Werten unter Verwendung der Ausführungseinheiten für SHA1 512 und Schlüsseleinrichtung 506.
    • 3. Wenn die erforderliche Operation ist, eine Signatur zu verifizieren, Berechnen des "v"-Werts unter Verwendung der Ausführungseinheiten für SHA1 512 und Schlüsseleinrichtung 506.
    • 4. Schreiben der Ausgabe in den Ausgabe-Pufferspeicher.
  • 6 stellt eine grobe Ansicht der Paket-Verarbeitung gemäß der vorliegenden Erfindung dar. Man beachte, dass viele Sätze von Eingabe-Paketen über einen einzigen Befehls-Beschreiber (d.h. eine einzige PCI-Schreiboperation) spezifiziert werden können. IPSec-Pakete werden in folgenden Stufen verarbeitet:
    • 1. Abrufen des Befehlskontexts und der Daten über Beschreiber
    • 2. Wenn ein Paket ankommt, Authentifizieren und dann Entschlüsseln der Zellen auf parallele Weise
    • 3. Wenn ein Paket ausgeht, Verschlüsseln und dann Authentifizieren der Zellen in zeitverschachtelter Weise
    • 4. Schreiben (über Beschreiber) der Ausgabedaten und gegebenenfalls der Authentifizierungs-Codes.
  • Die Abrufphasen für den Befehl, den Daten-Beschreiber, die Paketdaten und die Kontextdaten finden vollständig überlappend mit der Engine-Verarbeitung statt. Das Zurückschreiben der ausgehenden Paketdaten findet ebenfalls vollständig überlappend statt.
  • Nachfolgend wird nun die Verarbeitungssequenz-Steuerung für die erste Ausführungsform der vorliegenden Erfindung ausführlicher mit Bezug auf die 7(A)7(D) beschrieben. Die Verarbeitung ist so ausgelegt, dass der gesamte Chip-Durchsatz durch zeitverschachtelte Verarbeitung der verschiedenen Funktionen maximiert wird.
  • Das in 7(A)7(D) offenbarte Verfahren stellt nur eine Möglichkeit der Implementierung der vorliegenden Erfindung dar, wobei Abänderungen der offenbarten Prozedur Fachmännern leicht ersichtlich sein werden. Die zusätzlichen Verarbeitungsverfahren, die für die Implementierung der zweiten Ausführungsform notwendig sind, wurden zuvor mit Bezug auf die Verarbeitungsschritte für öffentliche Schlüssel beschrieben.
  • Die Verarbeitungs-Sequenzsteuerung beginnt bei Schritt 2 durch Abrufen einer neuen Zelle (N). Mit anderen Worten wird eine neue Zelle vorher abgerufen, in einem Pufferspeicher gespeichert und in die "Pipeline" gestellt. Nachdem die Verarbeitung der voran gehenden Zelle (N–1) bei Schritt 4 abgeschlossen worden ist, wird die neue Zelle (In bei Schritt 6 in die 3DES-Kryptografie-Einheit und die MD5/SHA1-Authentifizierungs-Einheit geladen. Wenn es mehr als zwei ausstehende PCI-Schreiboperationen gibt, wird mit der Verarbeitung gewartet, bis nur zwei oder weniger PCI-Schreiboperationen übrig sind, um (Schritt 8) auszuführen. Dies gewährleistet, dass die Kryptografie-Engines nicht den PCI-Bus und das Systems hinsichtlich ihrer Leistungsfähigkeit bei der Handhabung der Ausgabe hinter sich lassen. Abhängig von dem System kann die Anzahl der ausstehenden PCI-Schreiboperationen so angepasst werden, dass sie zu den Leistungsergebnissen eines bestimmten Systems, einer Schnittstelle oder einer Bus-Ausführung passt.
  • Die Kryptografie-Verarbeitung und die Authentifizierungs-Verarbeitung werden dann in den Schritten 1016 parallel ausgeführt. Zuerst wird die Kryptografie-Verarbeitung für die aktuelle Zelle (In bei Schritt 10 gestartet, und dann wird bei Schritt 12 eine PCI-Schreiboperation für die voran gegangene Zelle (N–1), deren Verarbeitung gerade abgeschlossen worden ist, in Warteschlange gestellt. Unterdessen wird die Authentifizierungs-Verarbeitung verzögert, wenn zwei PCI-Schreiboperationen ausstehen (Schritt 14). Dann wird bei Schritt 16 die Authentifizierungs-Verarbeitung für die aktuelle Zelle (In gestartet. Wird die Authentifizierung für das Paket nun mit der Verarbeitung der letzten Zelle (Schritt 18) abgeschlossen, wird der äußere HMAC-Status geschrieben und die äußere Authentifizierungs-Verarbeitung gestartet (Schritt 20). Wie im Fach bekannt ist, verwenden Hashed Message Authentication Codes (HMAC) geheime Schlüssel, um jemanden davon abzuhalten, die Daten zu ändern und das Paket zu signieren. Da die Authentifizierungs-Algorithmen öffentlich bekannt sind, können die HMAC-Codes verwendet werden, um eine größere Paket-Sicherheit zu bieten.
  • Wenn die Authentifizierungs-Ausgabe fertig ist (Schritt 22), wird bei Schritt 24 eine neue PCI-Schreiboperation in Warteschlange gestellt. Wenn jedoch die aktuelle Zelle die erste Zelle, ist, die in die Authentifizierungs-Einheit gelangt (Schritt 26), wird ein innerer HMAC-Status geschrieben, und die innere Authentifizierung wird gestartet (Schritt 28). Wenn das Vorabrufen der nächsten Zelle begonnen worden ist, wird der innere HMAC-Status geschrieben und die innere Authentifizierung begonnen (Schritt 32), ansonsten springt die Verarbeitung auf "D" in 7(C). Nach der inneren HMAC-Schreiboperation kehrt die Prozess-Steuerung zu "C" in 7(A) zurück, beginnend mit Schritt 4.
  • Bei Schritt 34 erfolgt die Bestimmung, ob die nächste Zelle Teil des gleichen Pakets ist, wie die aktuelle Zelle. Wenn sie es ist, wird die nächste Zelle (N+1) vorher abgerufen (Schritt 36), und nachdem das vorherige Abrufen beendet worden ist (Schritt 38) kehrt die Verarbeitung zu "C" in 7(A) zurück. Wenn jedoch die nächste Zelle nicht Teil des aktuellen Pakets ist (d.h. die Verarbeitung des aktuellen Pakets ist beendet worden), erfolgt bei Schritt 40 die Bestimmung, ob die Pakete Teil des gleichen Master-Befehlseintrags (MCR) sind. Wie zuvor besprochen, kann das System mehrere Pakete in einen einzigen MCR packen, um die Systemverwaltungszeit herab zu setzen, indem ermöglicht wird, dass mehrere Pakete über eine einzige PCI-Schreiboperation verarbeitet werden. Wenn die Pakete vom gleichen MCR sind, so wird der Kontext für das nächste Paket abgerufen (Schritt 44). Wenn die Pakete jedoch von unterschiedlichen MCRs sind, werden die Kryptografie- und Authentifizierungsblöcke zuerst geleert, die Ausgaben geschrieben und die MCR-Statusflaggen aktualisiert (Schritt 42), bevor der Kontext für das nächste Paket erhalten wird.
  • Die erste Zelle des neuen Pakets wird bei Schritt 46 vorabgerufen. Nachdem die Kryptografie- und die Authentifizierungs-Verarbeitung für die letzte Zelle des aktuellen Pakets beendet worden sind (Schritt 48), werden die Kryptografie- und die Authentifizierungs-Verarbeitungsmodi geändert (Schritt 50), wie von dem neuen Kontext vorgegeben. Die ursprünglichen Zustände werden geladen (Schritt 52), und die Ausgabe-Beschreiber des vorherigen Pakets werden dann gespeichert (Schritt 54). Die Verarbeitung kehrt dann zu "A" in 7(A) zurück, und die gesamte Prozedur wird fortgeführt, bis es keine Pakete mehr zu verarbeiten gibt.
  • Wie beschrieben, ist die Verarbeitungs-Sequenzsteuerung in hohem Maße zeitverschachtelt, mit überlappender Ausführung verschiedener Funktionen. Die Tatsache, dass die Pakete in Zellen fester Größe aufgeteilt werden, ermöglicht eine sehr effiziente Steuersequenz-Verarbeitung. Somit bietet die vorliegende Erfindung einen größeren Durchsatz, als Ausführungen des Stands der Technik. Wie in 8 dargestellt, besitzt beispielsweise die erste Ausführungsform der zuvor beschriebenen vorliegenden Erfindung (uBSecTM 5501 bei 60 MHz) einen wesentlich größeren Durchsatz, als eine vergleichbare Ausführung des Stands der Technik (Hi/fn TM 7751 bei 66 MHz). Die vorliegende Erfindung ist nicht nur schneller, sondern sie ist in der Lage, die Leistungssteigerung ohne einen zusätzlich beigefügten Speicher, wie es bei dem Chip Hi/fnTM erforderlich ist, zu erreichen.
  • Fachmänner werden schätzen, dass verschiedene Anpassungen und Abänderungen der gerade beschriebenen bevorzugten Ausführungsformen konfiguriert werden können. Beispielsweise können andere Kryptografie-Engines verwendet werden, andere Systemschnittstellen-Konfigurationen verwendet werden oder Abänderungen hinsichtlich der Verarbeitungsprozedur der Zelle vorgenommen werden.

Claims (27)

  1. Verfahren zur Beschleunigung der kryptografischen Verarbeitung von Datenpaketen, wobei das Verfahren umfasst: das Empfangen eines ankommenden Pakets auf einem Kryptografie-Beschleuniger, wobei das ankommende Paket von einer ersten Einheit außerhalb des Kryptogtafie-Beschleunigers empfangen wird; das Aufteilen des ankommenden Pakets in mindestens eine Zelle fester Größe; das Bestimmen von Kontext-Informationen, die Schlüssel- und Algorithmus-Informationen mindestens für eine Zelle fester Größe enthalten; das Verarbeiten mindestens einer Zelle fester Größe im Kryptografie-Beschleuniger; und das Wiedervereinigen mindestens der einen Zelle fester Größe, die mit dem ankommenden Paket verbunden ist, zu einem verarbeiteten Datenpaket im Kryptogtafie-Beschleuniger.
  2. Verfahren nach Anspruch 1, wobei für den Fall, dass ein einzelnes Paket größer als eine Zelle fester Größe ist, das ankommende Paket in eine Mehrzahl von Zellen fester Größe aufgeteilt wird, wohingegen für den Fall, dass das ankommende Paket kleiner als eine einzelne Zelle fester Größe ist, das Paket in eine einzelne Zelle fester Größe verwandelt wird.
  3. Verfahren nach Anspruch 2, wobei das Empfangen des Paketes durch die erste externe Einheit das Lesen des Pakets aus einem Systemspeicher umfasst, bevor das Paket in Zellen fester Größe aufgeteilt wird.
  4. Verfahren nach Anspruch 3, weiterhin umfassend das Aufzeichnen der verarbeiteten Datenpakete im Systemspeicher.
  5. Verfahren nach Anspruch 4, weiterhin umfassend das Speichern der Zellen fester Größe in einem Pufferspeicher.
  6. Verfahren nach Anspruch 5, wobei das Erkennen von Kontext-Informationen [weiterhin] das vorherige Abrufen von Kontext-Informationen, die zum ankommenden Paket gehören, und das Speichern dieser Kontext-Informationen in einem Pufferspeicher auf dem Chip umfasst.
  7. Verfahren nach Anspruch 6, wobei die Verarbeitung mindestens das Ausführen einer kryptografischen Operation auf eine Zelle fester Größe umfasst.
  8. Verfahren nach Anspruch 7, wobei die Verarbeitung das Ausführen der Verarbeitung der Zellen fester Größe mit 3DES-CBC-Verschlüsselung-/Entschlüsselung und MD5/SHA1-Authentifizierung/Digitaler Signierung umfasst.
  9. Verfahren nach Anspruch 7, wobei die Verarbeitung eine Verarbeitung öffentlicher Schlüssel nach Diffie-Hellman/RSA/DAS umfasst.
  10. Verfahren nach Anspruch 8, wobei für ankommende Pakete gilt, dass die Zellen erst authentifiziert und dann auf parallele Weise entschlüsselt werden und für ausgehende Pakete gilt, dass die Zellen erst verschlüsselt und dann auf zeitverschachtelte Weise authentifiziert werden.
  11. Kryptografie-Beschleunigungs-Chip (102, 200, 400, 500), umfassend: eine Paketaufteilungseinheit (204, 404) zum Aufteilen ankommender Pakete in Zellen fester Größe, wobei die ankommenden Pakete von der ersten Einheit außerhalb des Kryptografie-Prozessors empfangen werden; mindestens einen Kryptografie-Verarbeitungs-Abschnitt (216, 218, 220, 222), der verbunden ist, um Zellen fester Größe von der Paketaufteilungseinheit entgegenzunehmen; einen Kontext-Pufferspeicher (208) zum Identifizieren von Kontext-Informationen, die Schlüssel- und Algorithmus-Informationen für die Zellen fester Größe umfassen; und einen Steuerprozessor (212), für die Ablaufsteuerung der Verarbeitung der Zellen fester Größe durch den mindestens einen Kryptografie-Verarbeitungs-Abschnitt ohne hinzugefügten lokalen Speicher zu erfordern.
  12. Kryptografie-Beschleunigungs-Chip nach Anspruch 11, weiterhin umfassend einen Eingangs-Pufferspeicher, der Eingangspakete vorhält, die von einem Systemspeicher gelesen werden.
  13. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–12, weiterhin umfassend eine externe Bus-Schnittstelle.
  14. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–13, weiterhin umfassend einen Ausgangs-Pufferspeicher (206).
  15. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–14, weiterhin umfassend einen Vorabruf-Pufferspeicher für Kontext (420, 516) und einen laufenden Kontext-Pufferspeicher (422, 518).
  16. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–15, wobei die Paketaufteilungseinheit einen datenausrichtenden Bitstellenverschieber (404) umfasst.
  17. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–16, weiterhin umfassend eine 3DES-CBC-Verschlüsselungs/Entschlüsselungseinheit (410) und eine MD5/SHA1-Authentifizierungs-/Digitale-Signatur-Einheit (414).
  18. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–17, weiterhin umfassend eine Verarbeitungseinheit für öffentliche Schlüssel nach Diffie-Hellman/RSA/DAS (506).
  19. Kryptografie-Beschleunigungs-Chip nach Anspruch 18, weiterhin umfassend einen Zufallszahlengenerator (504).
  20. Kryptografie-Beschleunigungs-Chip nach Anspruch 19, weiterhin umfassend eine Register-Dateien-Einheit (504).
  21. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–17, der ausgebildet ist um, bei ankommenden Paketen, die Zellen erst zu authentifizieren und dann auf parallele Weise zu entschlüsseln, und bei ausgehenden Paketen, die Zellen erst zu verschlüsseln und dann auf zeitverschachtelte Weise zu authentifizieren.
  22. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–12, wobei der Eingangs-Puffexspeicher kleiner als 512 Kilobyte ist.
  23. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–22, wobei mindestens ein Kryptografie-Verarbeitungsabschnitt dazu ausgebildet ist, um die Zellen fester Größe durch weitere Teilung der Zellen fester Größe in Datenblöcke zu verarbeiten.
  24. Kryptografie-Beschleunigungs-Chip nach Anspruch 23, wobei die Datenblöcke 8 Byte groß sind.
  25. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–24, wobei mindestens ein Kryptografie-Verarbeitungsabschnitt dazu ausgebildet ist, um mit fortlaufend gegensinnigen Paketen verbundene Zellen fester Größe gleichzeitig zu verarbeiten.
  26. Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–24, wobei mindestens ein Kryptografie-Verarbeitungsabschnitt dazu ausgebildet ist, um mit fortlaufend gegensinnigen Paketen verbundene Zellen fester Größe zu verarbeiten, indem verschiedene Schlüssel und verschiedene kryptografische Formate benutzt werden, die von der Kontext-Schaltungsanordnung verwaltet werden.
  27. Netzwerk-Datenübertragungsgerät, umfassend den Kryptografie-Beschleunigungs-Chip nach Ansprüchen 11–26.
DE60008109T 1999-07-08 2000-07-07 Sicherheitschiparchitektur und ausführungen zur kryptographiebeschleunigung Expired - Lifetime DE60008109T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US14287099P 1999-07-08 1999-07-08
US142870P 1999-07-08
US15901299P 1999-10-12 1999-10-12
US159012P 1999-10-12
US510486 2000-02-23
US09/510,486 US6477646B1 (en) 1999-07-08 2000-02-23 Security chip architecture and implementations for cryptography acceleration
PCT/US2000/018545 WO2001005089A2 (en) 1999-07-08 2000-07-07 Security chip architecture and implementations for cryptography acceleration

Publications (2)

Publication Number Publication Date
DE60008109D1 DE60008109D1 (de) 2004-03-11
DE60008109T2 true DE60008109T2 (de) 2004-07-08

Family

ID=27385867

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60008109T Expired - Lifetime DE60008109T2 (de) 1999-07-08 2000-07-07 Sicherheitschiparchitektur und ausführungen zur kryptographiebeschleunigung

Country Status (6)

Country Link
US (3) US6477646B1 (de)
EP (1) EP1192783B1 (de)
AT (1) ATE259130T1 (de)
AU (1) AU7051400A (de)
DE (1) DE60008109T2 (de)
WO (1) WO2001005089A2 (de)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US7174452B2 (en) 2001-01-24 2007-02-06 Broadcom Corporation Method for processing multiple security policies applied to a data packet structure
US7996670B1 (en) 1999-07-08 2011-08-09 Broadcom Corporation Classification engine in a cryptography acceleration chip
US20030014627A1 (en) * 1999-07-08 2003-01-16 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US7146422B1 (en) 2000-05-01 2006-12-05 Intel Corporation Method and apparatus for validating documents based on a validation template
US6732175B1 (en) 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
US7111076B2 (en) 2000-04-13 2006-09-19 Intel Corporation System using transform template and XML document type definition for transforming message and its reply
US7107383B1 (en) * 2000-05-03 2006-09-12 Broadcom Corporation Method and system for multi-channel transfer of data and control information
US20020087884A1 (en) * 2000-06-12 2002-07-04 Hovav Shacham Method and apparatus for enhancing network security protection server performance
US20020039420A1 (en) * 2000-06-12 2002-04-04 Hovav Shacham Method and apparatus for batched network security protection server performance
US7137143B2 (en) 2000-08-07 2006-11-14 Ingrian Systems Inc. Method and system for caching secure web content
US20040015725A1 (en) * 2000-08-07 2004-01-22 Dan Boneh Client-side inspection and processing of secure content
US7277542B2 (en) * 2000-09-25 2007-10-02 Broadcom Corporation Stream cipher encryption application accelerator and methods thereof
US6898713B1 (en) * 2000-12-28 2005-05-24 Cisco Technology, Inc. Residue transfer for encrypted messages split across multiple data segments
US7757278B2 (en) * 2001-01-04 2010-07-13 Safenet, Inc. Method and apparatus for transparent encryption
US7106860B1 (en) * 2001-02-06 2006-09-12 Conexant, Inc. System and method for executing Advanced Encryption Standard (AES) algorithm
US7194766B2 (en) * 2001-06-12 2007-03-20 Corrent Corporation Method and system for high-speed processing IPSec security protocol packets
US20020188871A1 (en) * 2001-06-12 2002-12-12 Corrent Corporation System and method for managing security packet processing
US7360076B2 (en) * 2001-06-13 2008-04-15 Itt Manufacturing Enterprises, Inc. Security association data cache and structure
US7266703B2 (en) * 2001-06-13 2007-09-04 Itt Manufacturing Enterprises, Inc. Single-pass cryptographic processor and method
US7017042B1 (en) * 2001-06-14 2006-03-21 Syrus Ziai Method and circuit to accelerate IPSec processing
US7124293B2 (en) * 2001-06-29 2006-10-17 Intel Corporation Intelligently determining which traffic streams to offload efficiently
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
US7512780B1 (en) * 2001-08-31 2009-03-31 Verizon Corporate Services Group, Inc. Packet-parallel high performance cryptography systems and methods
GB2385740B (en) * 2002-02-22 2005-04-20 Zarlink Semiconductor Ltd A telephone subscriber unit and a semiconductor device for use in or with a telephone subscriber unit
US7305567B1 (en) * 2002-03-01 2007-12-04 Cavium Networks, In. Decoupled architecture for data ciphering operations
TWI230532B (en) * 2002-03-05 2005-04-01 Admtek Inc Pipelined engine for encryption/authentication in IPSEC
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US7376826B2 (en) * 2002-05-31 2008-05-20 Broadcom Corporation Methods and apparatus for performing encryption and authentication
US7082534B2 (en) * 2002-05-31 2006-07-25 Broadcom Corporation Method and apparatus for performing accelerated authentication and decryption using data blocks
US6970985B2 (en) 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US7274792B2 (en) * 2002-08-09 2007-09-25 Broadcom Corporation Methods and apparatus for initialization vector processing
WO2004019182A2 (en) * 2002-08-24 2004-03-04 Ingrian Networks, Inc. Selective feature activation
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7411959B2 (en) 2002-08-30 2008-08-12 Broadcom Corporation System and method for handling out-of-order frames
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US8180928B2 (en) 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
WO2004023307A1 (en) * 2002-09-06 2004-03-18 O2Micro, Inc. Vpn and firewall integrated system
US20100138909A1 (en) * 2002-09-06 2010-06-03 O2Micro, Inc. Vpn and firewall integrated system
US20040111626A1 (en) * 2002-12-09 2004-06-10 Doron Livny Security processing of unlimited data size
US7191341B2 (en) 2002-12-18 2007-03-13 Broadcom Corporation Methods and apparatus for ordering data in a cryptography accelerator
US7568110B2 (en) * 2002-12-18 2009-07-28 Broadcom Corporation Cryptography accelerator interface decoupling from cryptography processing cores
US20040123120A1 (en) * 2002-12-18 2004-06-24 Broadcom Corporation Cryptography accelerator input interface data handling
US7434043B2 (en) * 2002-12-18 2008-10-07 Broadcom Corporation Cryptography accelerator data routing unit
KR100509489B1 (ko) * 2003-02-06 2005-08-22 삼성전자주식회사 가변 폭의 데이터 패킷을 암호화하는 장치 및 방법
US20040193763A1 (en) * 2003-03-28 2004-09-30 Fujitsu Limited Inter-bus communication interface device and data security device
US7661130B2 (en) * 2003-04-12 2010-02-09 Cavium Networks, Inc. Apparatus and method for allocating resources within a security processing architecture using multiple queuing mechanisms
US7337314B2 (en) * 2003-04-12 2008-02-26 Cavium Networks, Inc. Apparatus and method for allocating resources within a security processor
US7657933B2 (en) * 2003-04-12 2010-02-02 Cavium Networks, Inc. Apparatus and method for allocating resources within a security processing architecture using multiple groups
US7392399B2 (en) * 2003-05-05 2008-06-24 Sun Microsystems, Inc. Methods and systems for efficiently integrating a cryptographic co-processor
US20040230813A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Cryptographic coprocessor on a general purpose microprocessor
FI118619B (fi) * 2003-05-16 2008-01-15 Jarmo Talvitie Menetelmä ja järjestelmä tiedon salaamiseksi ja tallentamiseksi
US20060149962A1 (en) * 2003-07-11 2006-07-06 Ingrian Networks, Inc. Network attached encryption
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US7310728B2 (en) * 2003-11-24 2007-12-18 Itt Manufacturing Enterprises, Inc. Method of implementing a high-speed header bypass function
FR2863076B1 (fr) * 2003-11-28 2006-02-03 Bull Sa Systeme cryptographique haut debit a architecture modulaire.
US7543142B2 (en) 2003-12-19 2009-06-02 Intel Corporation Method and apparatus for performing an authentication after cipher operation in a network processor
US7512945B2 (en) 2003-12-29 2009-03-31 Intel Corporation Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US20050149744A1 (en) * 2003-12-29 2005-07-07 Intel Corporation Network processor having cryptographic processing including an authentication buffer
US7529924B2 (en) * 2003-12-30 2009-05-05 Intel Corporation Method and apparatus for aligning ciphered data
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20050177713A1 (en) * 2004-02-05 2005-08-11 Peter Sim Multi-protocol network encryption system
US7519835B2 (en) * 2004-05-20 2009-04-14 Safenet, Inc. Encrypted table indexes and searching encrypted tables
US7787481B1 (en) * 2004-07-19 2010-08-31 Advanced Micro Devices, Inc. Prefetch scheme to minimize interpacket gap
US7496753B2 (en) * 2004-09-02 2009-02-24 International Business Machines Corporation Data encryption interface for reducing encrypt latency impact on standard traffic
US7409558B2 (en) * 2004-09-02 2008-08-05 International Business Machines Corporation Low-latency data decryption interface
US7818574B2 (en) * 2004-09-10 2010-10-19 International Business Machines Corporation System and method for providing dynamically authorized access to functionality present on an integrated circuit chip
US8316431B2 (en) * 2004-10-12 2012-11-20 Canon Kabushiki Kaisha Concurrent IPsec processing system and method
US20060136717A1 (en) 2004-12-20 2006-06-22 Mark Buer System and method for authentication via a proximate device
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
US8271805B2 (en) 2005-02-04 2012-09-18 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure buffer
US7743977B2 (en) * 2005-02-28 2010-06-29 Broadcom Corporation Method and system for random data access for security applications
US7995753B2 (en) * 2005-08-29 2011-08-09 Cisco Technology, Inc. Parallel cipher operations using a single data pass
US20070079140A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Data migration
US20070079386A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Transparent encryption using secure encryption device
US7916864B2 (en) 2006-02-08 2011-03-29 Nvidia Corporation Graphics processing unit used for cryptographic processing
US8386768B2 (en) * 2006-02-08 2013-02-26 Safenet, Inc. High performance data encryption server and method for transparently encrypting/decrypting data
US7958091B2 (en) 2006-02-16 2011-06-07 Ingrian Networks, Inc. Method for fast bulk loading data into a database while bypassing exit routines
US8379865B2 (en) * 2006-10-27 2013-02-19 Safenet, Inc. Multikey support for multiple office system
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US7792538B2 (en) * 2007-04-17 2010-09-07 Embarq Holdings Company, Llc System and method for enabling subscribers of a communications carrier to access a network of wireless access points of subscribers of other communications carriers
US20080262974A1 (en) * 2007-04-17 2008-10-23 Embarq Holdings Company, Llc System and method for enabling commercial subscribers of a communications carrier to access a network of wireless access points of other subscribers
US8254915B2 (en) 2007-04-17 2012-08-28 Embarq Holdings Company, Llc System and method for enabling subscribers of a communications carrier to access a network of other subscribers
US7923341B2 (en) * 2007-08-13 2011-04-12 United Solar Ovonic Llc Higher selectivity, method for passivating short circuit current paths in semiconductor devices
IL187038A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure data processing for unaligned data
US20090132804A1 (en) * 2007-11-21 2009-05-21 Prabir Paul Secured live software migration
GB0823702D0 (en) 2008-12-31 2009-02-04 St Microelectronics Res & Dev Processing packet streams
GB2466651A (en) * 2008-12-31 2010-07-07 St Microelectronics Security co-processor architecture for decrypting packet streams
CN102035821A (zh) * 2009-09-29 2011-04-27 凹凸电子(武汉)有限公司 防火墙/虚拟专用网集成系统以及电路
US8850225B2 (en) * 2010-04-16 2014-09-30 Exelis Inc. Method and system for cryptographic processing core
US9141831B2 (en) * 2010-07-08 2015-09-22 Texas Instruments Incorporated Scheduler, security context cache, packet processor, and authentication, encryption modules
US9628585B2 (en) * 2011-12-27 2017-04-18 Intel Corporation Systems and methods for cross-layer secure connection set up
JP6144348B2 (ja) * 2012-09-25 2017-06-07 クゥアルコム・テクノロジーズ・インコーポレイテッド チップソケットプロトコル上のネットワーク
US9471538B2 (en) 2012-09-25 2016-10-18 Qualcomm Technologies, Inc. Network on a chip socket protocol
US8942379B2 (en) * 2012-10-17 2015-01-27 Cisco Technology, Inc. Timeslot encryption in an optical transport network
US9438414B2 (en) * 2013-10-18 2016-09-06 Advanced Micro Devices, Inc. Virtualized SHA computational engine
US9208330B2 (en) 2014-02-03 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. System for execution of security related functions

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870474A (en) * 1995-12-04 1999-02-09 Scientific-Atlanta, Inc. Method and apparatus for providing conditional access in connection-oriented, interactive networks with a multiplicity of service providers
US5185796A (en) * 1991-05-30 1993-02-09 Motorola, Inc. Encryption synchronization combined with encryption key identification
US5297206A (en) * 1992-03-19 1994-03-22 Orton Glenn A Cryptographic method for communication and electronic signatures
US5473696A (en) * 1993-11-05 1995-12-05 At&T Corp. Method and apparatus for combined encryption and scrambling of information on a shared medium network
US5936967A (en) * 1994-10-17 1999-08-10 Lucent Technologies, Inc. Multi-channel broadband adaptation processing
US5796836A (en) * 1995-04-17 1998-08-18 Secure Computing Corporation Scalable key agile cryptography
US5737334A (en) * 1995-07-12 1998-04-07 Bay Networks, Inc. Pipeline architecture for an ATM switch backplane bus
US5691997A (en) * 1995-09-28 1997-11-25 Cisco Systems, Inc. Encoder for use in asynchronous transfer mode systems
US5943338A (en) * 1996-08-19 1999-08-24 3Com Corporation Redundant ATM interconnect mechanism
US6111858A (en) * 1997-02-18 2000-08-29 Virata Limited Proxy-controlled ATM subnetwork
JPH1141245A (ja) * 1997-07-22 1999-02-12 Fujitsu Ltd 秘匿通信システム
US6216167B1 (en) * 1997-10-31 2001-04-10 Nortel Networks Limited Efficient path based forwarding and multicast forwarding
US6134246A (en) * 1998-01-26 2000-10-17 Samsung Electronics Co., Ltd. Inverse multiplexing within asynchronous transfer mode communication networks
US6667984B1 (en) * 1998-05-15 2003-12-23 Polytechnic University Methods and apparatus for arbitrating output port contention in a switch having virtual output queuing
US6295604B1 (en) * 1998-05-26 2001-09-25 Intel Corporation Cryptographic packet processing unit
US7177421B2 (en) 2000-04-13 2007-02-13 Broadcom Corporation Authentication engine architecture and method

Also Published As

Publication number Publication date
EP1192783B1 (de) 2004-02-04
US20060021022A1 (en) 2006-01-26
WO2001005089A2 (en) 2001-01-18
US6477646B1 (en) 2002-11-05
US20020199101A1 (en) 2002-12-26
ATE259130T1 (de) 2004-02-15
AU7051400A (en) 2001-01-30
DE60008109D1 (de) 2004-03-11
EP1192783A2 (de) 2002-04-03
US7124296B2 (en) 2006-10-17
US6971006B2 (en) 2005-11-29
WO2001005089A3 (en) 2001-09-27

Similar Documents

Publication Publication Date Title
DE60008109T2 (de) Sicherheitschiparchitektur und ausführungen zur kryptographiebeschleunigung
DE60034453T2 (de) Verteilte verarbeitung in einem kryptographie-beschleunigungschip
DE60213762T2 (de) Implementierung des SHA1 Algorithmusses
DE60305775T2 (de) Verfahren und Gerät zur Berechnung von Haschwerten in einem kryptographischen Koprozessor
DE69838390T2 (de) Verbessertes gerät und verfahren für modulare multiplikation und exponentation basierend auf montgomerymultiplikation
DE60026868T2 (de) Ein einfaches implementierungsverfahren für kryptographische primitiva mittels elementar-register-operationen
DE112004000015T5 (de) Verfahren und Systeme zum effizienten Integrieren eines kryptografischen Koprozessors
EP1777913B1 (de) Verfahren zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen eines Datenstroms
DE60117255T2 (de) Verbessern des durchsatzes von des-hardware für kurze operationen
US20050149744A1 (en) Network processor having cryptographic processing including an authentication buffer
DE112005000705B4 (de) Konfiguration von Umleitungstabellen
US20030149883A1 (en) Cryptographic key setup in queued cryptographic systems
DE102015113468A1 (de) Datenverarbeitungsvorrichtung und verfahren zum sichern einer datenverarbeitungsvorrichtung gegen angriffe
DE112006004173T5 (de) Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung
DE112019003096T5 (de) Abgesicherte kommunikation aus einer nichtflüchtigen speichervorrichtung heraus
DE60313637T2 (de) Verfahren und vorrichtung zum verarbeiten von verschlüsselungsoperationen mit beliebiger schlüsselbitlänge mit ähnlichen effizienzen
EP2558946B1 (de) Verfahren und system für einen kryptografischen verarbeitungskern
EP1478999B1 (de) Vorrichtung und verfahren zum umrechnen eines terms
JP3736293B2 (ja) 暗号化通信におけるサービス品質制御方法及び装置サービス品質制御プログラムを格納した記憶媒体
CN113810397B (zh) 协议数据的处理方法及装置
CN108279855A (zh) 一种读写存储设备的方法
Harteros et al. Fast parallel comparison circuits for scheduling
Bienkowski An optimal lower bound for buffer management in multi-queue switches
DE102019101213A1 (de) Authentifizierung und Entschlüsselung programmierbarer Bauelemente
US7234141B2 (en) Processing data

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