DE60117255T2 - Verbessern des durchsatzes von des-hardware für kurze operationen - Google Patents

Verbessern des durchsatzes von des-hardware für kurze operationen Download PDF

Info

Publication number
DE60117255T2
DE60117255T2 DE60117255T DE60117255T DE60117255T2 DE 60117255 T2 DE60117255 T2 DE 60117255T2 DE 60117255 T DE60117255 T DE 60117255T DE 60117255 T DE60117255 T DE 60117255T DE 60117255 T2 DE60117255 T2 DE 60117255T2
Authority
DE
Germany
Prior art keywords
des
operations
data
key
host
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
DE60117255T
Other languages
English (en)
Other versions
DE60117255D1 (de
Inventor
Mark Pleasantville LINDEMANN
William Sean Hanover SMITH
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE60117255D1 publication Critical patent/DE60117255D1/de
Publication of DE60117255T2 publication Critical patent/DE60117255T2/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
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Optical Communication System (AREA)
  • Vehicle Body Suspensions (AREA)
  • Pressure Welding/Diffusion-Bonding (AREA)
  • Bipolar Transistors (AREA)
  • Amplifiers (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Description

  • Die vorliegende Erfindung betrifft die Verschlüsselungsunterstützung und insbesondere die Verschlüsselungsunterstützung für kurze Vorgänge.
  • Data Encryption Standard (DES) ist ein weit verbreitetes Verfahren zur Datenverschlüsselung unter Verwendung privater Schlüssel. Unter DES gibt es Millionen möglicher Verschlüsselungsschlüssel, die zum Schutz von Paketen zwischen Teilnehmern über elektronische Netze verwendet werden können. Für jedes Paket bzw. jede Nachricht wird ein Schlüssel zufällig ausgewählt. Wie bei anderen Verschlüsselungsverfahren mit symmetrischem Schlüssel müssen sowohl der Sender als auch der Empfänger denselben privaten Schlüssel kennen und verwenden.
  • DES wendet einen 56-Bit-Schlüssel auf jeden 64-Bit-Block von Daten an. Der Prozess kann mehrere Modi ausführen und beinhaltet 16 Runden von Vorgängen. Obwohl dies als starke Verschlüsselung betrachtet wird, verwenden viele Unternehmen Triple-DES (TDES), wobei auf jedes Paket drei aufeinander folgende Schlüssel verwendet werden.
  • DES wurde ursprünglich von IBM im Jahr 1977 entwickelt und vom US-Verteidigungsministerium übernommen. Es wird in den ANSI-Standards X3.92 und X3.106 und in den Federal Information Processing Standards (FIPS) 46 und 81 definiert.
  • Normalerweise werden Verschlüsselungsverfahren schwerpunktmäßig auf große Pakete (größer als etwa 80 Byte) angewandt. Wenn ein DES-System für kleinere Pakete verwendet wird, kann die Leistungsfähigkeit um eine Größenordnung sinken.
  • Daher besteht ein Bedarf an einem System und einem Verfahren zur Verschlüsselungsunterstützung für DES-Vorgänge, das einen hohen Durchsatz für lange (> 80 Byte) und kürzere Pakete aufweist.
  • Die vorliegende Erfindung stellt ein Verschlüsselungsverfahren mit symmetrischem Schlüssel für kurze Vorgänge bereit, wie es in Anspruch 1 beansprucht wird.
  • Vorzugsweise ist das Verschlüsselungsverfahren mit symmetrischem Schlüssel ein Data Encryption Standard- (DES-) Verfahren. Die kurzen Vorgänge können zwischen 8 und 80 Byte liegen.
  • Vorzugsweise beinhaltet das Verfahren die Stapelverarbeitung der Vielzahl von Vorgangsparametern und einer Vielzahl von DES-Vorgängen in einer einzigen Anforderung, wobei für jeden Vorgang in der Anforderung DES aufgerufen wird, und das gesonderte Ausführen von DES für jeden Vorgang gemäß dem entsprechenden Vorgangsparameter.
  • Außerdem beinhaltet das Verfahren die Stapelverarbeitung der Vielzahl von Vorgangsparametern und einer Vielzahl von DES-Vorgängen in einer einzigen Anforderung, wobei DES für die gestapelten Vorgänge aufgerufen wird, und das gesonderte Ausführen von DES für jeden Vorgang gemäß dem entsprechenden Vorgangsparameter. Jede Anforderung wird mit einem Chip- Rücksetzvorgang, einem Schlüssel und einem Initialisierungsvektor (initialization vector) ausgeführt. Das Aufrufen von DES für die gestapelten Vorgänge umfasst außerdem das Umschalten eines Kontextes für dieselben. Die Kontextumschaltung (context switch) erfolgt zwischen einer Anwendungsschicht und einer Systemsoftwareschicht.
  • Zu dem Verfahren gehören das Lesen der gestapelten Parameter aus einem dynamischen Arbeitsspeicher (dynamic random access memory) und das Senden jedes Vorgangs durch eine DES-Maschine gemäß dem Vorgangsparameter.
  • Vorzugsweise beinhaltet das Verfahren das Bereitstellen eines Schlüsselindexes für eine Maschine und das Pumpen der Vorgänge in einer Massenverarbeitung durch die Maschine, wobei die Bytes nicht von einer Zentraleinheit bearbeitet werden. Die Maschine ist vorzugsweise eine DES-Maschine.
  • Vorzugsweise beinhaltet das Verfahren das Zurücksetzen eines Maschinenchips für einen Vorgang, das Lesen eines Initialisierungsvektors und das Laden des Initialisierungsvektors in den Maschinenchip. Außerdem enthält das Verfahren vorzugsweise das Festlegen eines Schlüssels aus dem Schlüsselindex, das Laden des Schlüssels in den Maschinenchip und das Lesen einer Datenlänge für den Vorgang.
  • Vorzugsweise beinhaltet das Verfahren das Senden der Datenlänge durch einen Eingangskanal in den Maschinenchip und das Senden der Datenlänge durch einen Ausgangskanal. Die Kanäle sind vorzugsweise FIFOs.
  • Im Folgenden werden bevorzugte Ausführungsformen der vorliegenden Erfindung mit Bezugnahme auf die begleitenden Zeichnungen ausführlicher beschrieben:
  • 1 ist eine Darstellung der DES-Architektur gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 2 ist eine andere Darstellung der DES-Architektur gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 3 ist noch eine andere Darstellung der DES-Architektur gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 4 ist noch eine andere Darstellung der DES-Architektur gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 5 ist eine Darstellung der FIFO-Struktur, die DES/TDES mit einem Coprozessor gemäß einer Ausführungsform der vorliegenden Erfindung unterstützt;
  • 6 ist eine andere Darstellung der FIFO-Struktur, die DES/TDES mit einem Coprozessor gemäß einer Ausführungsform der vorliegenden Erfindung unterstützt;
  • 7 ist noch eine andere Darstellung der FIFO-Struktur, die DES/TDES mit einem Coprozessor gemäß einer Ausführungsform der vorliegenden Erfindung unterstützt;
  • 8 ist noch eine andere Darstellung der FIFO-Struktur, die DES/TDES mit einem Coprozessor gemäß einer Ausführungsform der vorliegenden Erfindung unterstützt;
  • 9 ist eine weitere Darstellung der FIFO-Struktur, die DES/TDES mit einem Coprozessor gemäß einer Ausführungsform der vorliegenden Erfindung unterstützt;
  • 10 ist eine Darstellung der FIFO-Struktur, die DES/TDES mit einem Coprozessor gemäß einer Ausführungsform der vorliegenden Erfindung unterstützt;
  • 11 ist ein Flussdiagramm einer Anwendungen, die zwei Vorgänge als gesonderte SCC-Anforderungen (sccRequests) nach dem Stand der Technik bearbeitet;
  • 12 ist ein Flussdiagramm, das eine stapelweise verarbeitete Host-Karten-Interaktion gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 13 ist ein Flussdiagramm von mehreren Vorgängen, die gemäß einer Ausführungsform der vorliegenden Erfindung in einem einzigen Aufruf gestapelt wurden;
  • 14 ist ein Flussdiagramm eines Verfahrens, das Datenübertragungsvorgänge für jeden Vorgang gemäß einer Ausführungsform der vorliegenden Erfindung verringert;
  • 15 ist ein Flussdiagramm eines Verfahrens, das Parameter für alle Vorgänge gemäß einer Ausführungsform der vorliegenden Erfindung in einen Block stapelt; und
  • 16 ist ein Diagramm, das DES-Geschwindigkeiten für verschiedene Ausführungsformen der vorliegenden Erfindung darstellt.
  • Die vorliegende Erfindung stellt ein System und ein Verfahren zur Verschlüsselungsunterstützung bereit, das einen hohen Durchsatz für lange und kurze Vorgänge aufweist. Gemäß einer Ausführungsform der vorliegenden Erfindung enthält das System ein eingebettetes Modul mit mehreren Chips (multi-chip embedded module), das in einer Peripheral Component Interconnect- (PCI-) Karte angeordnet ist. Neben der Verschlüsselungshardware und einer Schaltung zur Erkennung von und Antwort auf Manipulationen (circuitry for tamper detection and response) wird eine Universaldatenverarbeitungsumgebung bereitgestellt, zu der eine Zentraleinheit und in einem ROM und/oder einem Flash-Speicher gespeicherte Ausführungssoftware gehören.
  • Mit Bezugnahme auf 1 werden die Softwarearchitektur mit mehreren Schichten des Client 101 und der Host 105 gezeigt. Zur Client-Seite gehören die grundlegende Sicherheitskontrolle in den Schichten 0 und 1 102, ein Softwaresystem auf Überwachungsebene (supervisor-level software system) in der Schicht 2 103 und eine Softwareanwendung auf Benutzerebene in der Schicht 3 104. Die Schicht 2 103 unterstützt die Anwendungsentwicklung. In der Schicht 2 103 stellt ein Systemkern die Betriebssystemabstraktionen von mehreren Prozessen und Adressräumen bereit; diese Abstraktionen unterstützen unabhängige Verwaltungseinrichtungen, die Verschlüsselungshardware und andere grundlegende Ein-/Ausgabe- (E/A-) Vorgänge bearbeiten, und stellen Anwendungsprogrammschnittstellen (APIs) der höheren Ebene für die Anwendung 104 der Schicht 3 bereit. Eine API ist das von einem Computer oder einem anderen Programm vorgeschriebene, spezifische Verfahren, mit Hilfe dessen ein Programmierer, der ein Anwendungsprogramm schreibt, Anforderungen des Betriebssystems oder einer anderen Anwendung machen kann. Normalerweise stellt die Anwendung 104 der Schicht 3 ihrerseits eine Abstraktion ihrer eigenen API für eine Anwendung 107 auf der Hostseite bereit.
  • Zur Hostseite 105 gehören ein Einheitentreiber 106 und eine Hostanwendung 107. Gemäß 2 gibt die Anwendung 107 der Hostseite einen Aufruf an den Einheitentreiber 106 der Hostseite aus, damit die Anwendung 104 der Schicht 3 einen von der Anwendung der Kartenseite bereitgestellten Dienst verwenden kann. Der Einheitentreiber 106 öffnet eine SCC-Anforderung 108 an das System 103 der Schicht 2 in der Einheit. Die Schicht 2 103 benachrichtigt die in der Einheit befindliche Anwendung 104 der Schicht 3 über das Vorliegen der Anforderung und die zusammen mit der Anforderung übertragenen Parameter des Host.
  • Gemäß den 3 und 4 bearbeitet die Anwendung 104 der Schicht 3 die Anforderung der Hostanwendung nach dem Dienst, beispielsweise kann sie die Schicht 2 103 zum Übertragen von Daten 109 an den Einheitentreiber 106 steuern und die notwendigen Verschlüsselungsvorgänge ausführen. Die Anwendung 104 der Schicht 3 schließt die SCC-Anforderung 110 und überträgt die Ausgabe zurück 111 an die Hostanwendung 107.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird eine Einheit zur schnellen Verschlüsselung bereitgestellt. Die Einheit enthält einen Coprozessor mit einer Zentraleinheit (CPU), mindestens zwei Ebenen von interner Software und mindestens drei Datenpfaden. Die Softwareebenen können eine Betriebssystem- oder eine Systemkernebene und eine Anwendungsebene enthalten. Die Datenpfade können einen Pfad von einem externen zu einem internen Speicher und/oder einer CPU, einen Pfad von einem internen Speicher und/oder einer CPU zu einer symmetrischen Maschine und einen Kanal zwischen dem externen System und der symmetrischen Maschine beinhalten. Der Kanal kann ein FirstIn/FirstOut (FIFO) sein. Gemäß einer Ausführungsform der vorliegenden Erfindung enthält die Einheit eine FIFO-Ablaufsteuereinheit. Die FIFO-Ablaufsteuereinheitstruktur transportiert oder treibt Daten in die und aus der Verfahrensmaschine.
  • Obwohl die vorliegende Erfindung hinsichtlich einer symmetrischen Verschlüsselungsfunktion (z.B. DES) dargelegt wird, sei darauf hingewiesen, dass sie jede parametrisierte Funktion mit Daten mit veränderlicher Länge berücksichtigt. Folglich wird DES als ein Beispiel einer Ausführungsform der vorliegenden Erfindung bereitgestellt, und unter Voraussetzung der hierin bereitgestellten Lehre der vorliegenden Erfindung können Fachleute diese und ähnliche Realisierungen oder Konfigurationen der vorliegenden Erfindung betrachten.
  • Mit Bezugnahme auf 5 arbeitet die FIFO-Struktur mit der DES/TDES-Maschine zusammen. Die vorliegende Erfindung wird bzgl. eines Coprozessors 4758 von IBM beschrieben, insbesondere bzgl. der Modelle 002/023 von PCI-Verschlüsselungscoprozessoren, unter Voraussetzung der hierin bereitgestellten Lehre der vorliegenden Erfindung können Fachleute jedoch diese und ähnliche Realisierungen oder Konfigurationen betrachten.
  • In der Modell-2-Hardware unterstützt die FIFO-Struktur außerdem einen schnellen sicheren Hash-Algorithmus 1 (SHA-1); die Struktur kann jedoch auf jede Verfahrensmaschine angewandt werden.
  • Für die Ein- und Ausgabe werden zwei Paare von FIFOs 501 bis 504, ein PCI-FIFO-Paar 501 und 502 sowie ein internes FIFO-Paar 503 und 504 für die externe bzw. interne Übertragung sowie eine Steuereinheit 505 und 506 mit direktem Speicherzugriff (DMA) für eine CPU-freie Übertragung in den und aus dem internen dynamischen Arbeitsspeicher (DRAM) 507 bereitgestellt.
  • Die interne CPU 508 wählt über Steuerregister (nicht gezeigt) aus, welche Datenpfade aktiviert werden müssen und welchen Schlüssel, welchen Initialisierungsvektor (IV) und welche anderen Funktionsparameter die DES-Maschine 500 verwenden kann. Der IV wird von einem Zufallsgenerator erzeugt, der normalerweise im Schicht-2-System enthalten ist, und mit dem unverschlüsselten Text und dem Schlüssel verknüpft. Der Schlüssel ist ein veränderlicher Wert, der auf einen Block von unverschlüsseltem Text angewandt wird, um verschlüsselten Text zu erzeugen.
  • Zu Konfigurationen der DES-Maschine 500 gehören extern-extern-DES für große Datenmengen (bulk external-to-external DES) (in 8 gezeigt), intern-intern-DES für große Datenmengen (Ausgabe von DMA 506 an interne Eingabe-FIFO 503 zu DES 500, anschließend zurück durch interne Ausgabe-FIFO 504 und PCI-Ausgabe-FIFO 502) und DMA-Übertragung (z.B. PCI-Eingabe-FIFO 501 an interne Eingabe-FIFO 503 zu Eingabe-DMA 505 und von Ausgabe-DMA-Steuereinheit 506 an interne Ausgabe-FIFO 504 und an PCI-Ausgabe-FIFO 502). Außerdem kann die DES-Hardware in einem Umgehungsmodus (bypass mode) konfiguriert werden, in dem das handelsübliche Schicht-2-System die Hardware nicht verwendet.
  • Eine Einschränkung im System besteht darin, dass entweder beide internen FIFO-DES-Pfade ausgewählt werden müssen (Massenmodus (bulk mode)) oder keiner von diesen ausgewählt werden darf. Eine andere Einschränkung besteht darin, dass die FIFO-Konfigurationen erst geändert werden können, wenn die Datenübertragung gestoppt wird, und die die FIFOs ansteuernde Ablaufsteuereinheit überträgt Daten synchron, bis die Ressourcen erschöpft sind.
  • Die interne CPU 508 kann die FIFO-Hardware konfigurieren, so dass sie Kartenanwendungen auf unterschiedliche Art und Weise unterstützt. Beispielsweise zeigt 6 eine Konfiguration, in der die FIFOs über den DMA Daten in die Karte bringen, zum Beispiel wenn die Hostanwendung für die Kartenanwendung eine SCC-Anforderung öffnet. Die Daten werden von der PCI-Eingabe-FIFO 501 über 601 an die interne Eingabe-FIFO 503, über 602 an die Eingabe-DMA-Steuereinheit 505 sowie über 603 und 604 an den DRAM 507 geleitet.
  • Mit Bezugnahme auf 7, die eine DES-Anforderung darstellt, kann die Karte die Funktionsparameter vom DRAM 507 in den DES-Chip 500 übertragen. Die interne CPU 508 lädt die Funktionsparameter über die Leitungen 701 bis 703 aus dem DRAM 507 in den DES-Chip 500.
  • Gemäß 8 konfiguriert die Karte die FIFOs, so dass sie die Daten vom Host durch den DES-Chip 500 hinein- und wieder zurück zum Host leiten, falls es sich um eine DES-Anforderung für extern-extern-DES handelt. Die CPU 508 kann die FIFOs 501 bis 504 so konfigurieren, dass sie Daten über die Leitungen 801 bis 804 vom Host durch den DES-Chip und zurück zum Host leiten.
  • Falls die DES-Anforderung für intern-intern-DES bestimmt ist und sich als zu kurz für DMA erweist, kann die Karte außerdem die Datenbytes manuell hindurchleiten. Die CPU 508 kann Daten aus dem DRAM 507 über die programmierte E/A und die Leitungen 901 bis 904 durch die DES/TDES-Maschine treiben.
  • Wie in 10 dargestellt wird, kann die Karte die Ergebnisse nach der Ausführung der SCC-Anforderung über DMA an den Host rückübertragen. Die interne CPU 508 kann die FIFOs so konfigurieren, dass sie Daten aus dem DRAM 507 über DMA und die Leistungen 1001 bis 1004 an den Host rückübertragen.
  • Eine Basisrealisierung wurde unter Verwendung eines Modell-2-Prototyps für die folgenden Ausführungsformen eingerichtet. Gemäß 11 bearbeitet die Hostanwendung jeden Vorgang 1101 und 1102 als eine gesonderte SCC-Anforderung 1103 und 1104 mit Programmed Input/Output- (PIO-) DES. Die Realisierung beinhaltet die Hostanwendung, die Folgen von kurzen DES-Anforderungen (Chiffrierschlüssel, IV, Daten) erzeugt, und die Anwendung auf der Kartenseite. Die Anwendung auf der Kartenseite erfasst jede Anforderung, entpackt den Schlüssel, überträgt die Daten, den Schlüssel und den IV an die DES-Maschine und rücküberträgt die Ergebnisse an den Host. Die Schlüssel wurden über einen Satz von Chiffrierschlüsseln zufällig ausgewählt. Durch das Erfassen der Schlüssel in der Karte fiel der zusätzliche Schritt der Entschlüsselung des TDES-Schlüssels weg, und die Geschwindigkeit 1602 wurde erhöht.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung kann die Leistungsfähigkeit für kurze DES-Vorgänge gesteigert werden, indem die Interaktion zwischen Host und Karte verringert wird. Mit Bezugnahme auf 12 beinhaltet dies die stapelweise Verarbeitung einer großen Folge von kurzen DES-Anforderungen in einer SCC-Anforderung 1201. Die Anwendung auf der Kartenseite wurde entsprechend geändert, um die Folge in einem Schritt zu empfangen, jeden Vorgang 1202 bis 1205 zu verarbeiten und die verkettete Ausgabe in einem Schritt 1206 zurück an den Host zu übertragen. Die Anwendung der Schicht 3 ruft für jeden Vorgang 1202 und 1204 DES auf. Die Schicht 2 führt für jeden Vorgang 1203 und 1205 gesondert DES aus. Die für die obigen Bezugsdaten erhaltenen Geschwindigkeiten betrugen zwischen 18 und 23 kB/s und bis zu 40 kB/s mit der Schlüsselerfassung 1603.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung kann die Leistungsfähigkeit für kurze DES-Vorgänge gesteigert werden 1604, indem das Zurücksetzen des DES-Chips für jeden Vorgang wegfällt. Durch die Erzeugung einer Folge von Anforderungen für kurze DES-Vorgänge, die alle einen Schlüssel verwenden, eine Richtung (entschlüsseln oder verschlüsseln) und IVs von null aufweisen (obwohl die IVs willkürlich sein können), kann eine Geschwindigkeit von etwa 360 kB/s erreicht werden. Die Anwendung auf der Kartenseite empfängt die Vorgangsfolge und überträgt diese an das Schicht-2-System. In der Schicht 2 richtet eine geänderte DES-Verwaltungseinrichtung (die die DES-Hardware steuernde Komponente) den Chip mit dem Schlüssel und einem IV von null ein und sendet die Daten durch den Chip. Am Ende jedes Vorgangs führt die DES-Verwaltungseinrichtung eine Exklusiv-ODER-Verknüpfung (XOR) aus, um die Verkettung aufzuheben. Zur Verschlüsselung führt die Software beispielsweise manuell eine Exklusiv-ODER-Verknüpfung des letzten Blocks von chiffriertem Text aus dem vorhergehendem Vorgang mit dem ersten Block von unverschlüsseltem Text für den Vorgang aus, um die Exklusiv-ODER-Verknüpfung, die der Chip ausführen würde, aufzuheben.
  • Gemäß dem Stapelverarbeitungsverfahren wird neben einer Verringerung der Anzahl von Chip-Rücksetzvorgängen die Anzahl von Kontextumschaltungen zwischen der Schicht 3 und der Schicht 2 von 0(n) zu 0(1) verringert, wobei n die Anzahl von Vorgängen im Stapel ist. Mit Bezugnahme auf 13 wurde gemäß einer anderen Ausführungsform der vorliegenden Erfindung die Anwendung 1302 auf der Kartenseite unter Verwendung der Einstellung mit einem Mehrfachschlüssel und einem von null verschiedenen IV (Ergebnisse als 1603 gezeigt) geändert, so dass sie stapelweise verarbeitete Anforderungen 1301 an eine geänderte DES-Verwaltungseinrichtung (Schicht 2) 1303 und 1304 überträgt, wodurch die Anzahl von Kontextumschaltungen verringert wird. Die Anwendung 1302 auf der Kartenseite ruft DES für die gestapelten Vorgänge auf. Die geänderte DES-Verwaltungseinrichtung 1303 und 1304 verarbeitet jede Anforderung mit einem Chip-Rücksetzvorgang und einem neuen Schlüssel und einem neuen IV. Die Anforderungen werden an den Host 1305 übertragen. Die unter Verwendung der geänderten DES-Verwaltungseinrichtung 1303 und 1304 erhaltenen Ergebnisse werden in 16 als 1604 gezeigt.
  • Gemäß noch einer anderen Ausführungsform der vorliegenden Erfindung pumpt die FIFO-Ablaufsteuereinheit Datenbytes in einem Massenverarbeitungsmodus durch DES. Folglich bearbeitet die CPU die Datenbytes nicht. Gemäß den früheren Verfahren wurde jedes Byte des Chiffrierschlüssels, des IV und der Daten viele Male bearbeitet. Die Bytes gelangten mit einer anfänglichen SCC-Anforderung zur Pufferübertragung über FIFOs und DMA in den DRAM. Die CPU entnimmt die Bytes aus dem DRAM und übergibt sie dem DES-Chip. Die CPU entnimmt die Daten dem DES-Chip und leitet sie zurück in den DRAM. Die CPU rücküberträgt die Daten durch die FIFOs an den Host. Dementsprechend kann der Durchsatz durch eine Verringerung der Anzahl von Datenübertragungsvorgängen erhöht werden 1605. Das Entpacken des Schlüssels fällt als integrierter Bestandteil der API weg. Jede Anwendung kann ein einmaliges Verfahren des Entpackens aufweisen, wodurch das Entpacken der API unnötig wird. In jeder Anwendung endet ein Initialisierungsschritt mit einer Schlüsseltabelle für unverschlüsselten Text, die sich im Einheiten-DRAM befindet. Die Vorgangslängen wurden auf 40 Byte standardisiert. Außerdem wurde die Hostanwendung geändert, so dass sie Folgen von Anforderungen erzeugt, die an Stelle eines Chiffrierschlüssels einen Index in die interne Schlüsseltabelle enthalten. Folglich ruft die Anwendung 1401 auf der Kartenseite die geänderte DMA-Verwaltungseinrichtung 1402 und 1407 auf und stellt dieser die Schlüsseltabelle 1403 und 1408 zur Verfügung, anstatt die Anforderungsfolge sofort von der PCI-Eingabe-FIFO in den DRAM zu leiten. Für jeden Vorgang setzt die geänderte DES-Verwaltungseinrichtung 1402 und 1407 den DES-Chip zurück; liest den IV und lädt diesen in den Chip; liest und überprüft die Schlüsseltabelle, sucht den Schlüssel und lädt diesen in den Chip; und liest die Datenlänge für den Vorgang. Die geänderte DES-Verwaltungseinrichtung richtet die Ablaufsteuereinheit so ein, dass sie diese Anzahl von Bytes durch die Eingabe-FIFOs in den DES-Chip und anschließend über die Ausgabe-FIFOs 1404 bis 1406 und 1409 bis 1411 hinaus leitet. Die Anwendung auf der Kartenseite beendet die Anforderung 1412. Die Ergebnisse werden in 16 als 1605 gezeigt.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wurde die Anzahl von Industry Standard Architecture- (ISA-) E/A-Befehlen erhöht (verdoppelt), wodurch der Durchsatz um die Hälfte verringert wurde, was eine Korrelation zwischen den ISA-E/A-Befehlen und der Durchsatzgeschwindigkeit zeigt. Die oben (bezüglich 1605 und 14) beschriebene geänderte DES-Verwaltungseinrichtung wurde sodann geändert, so dass sie an Stelle von ISA-E/A auf den Speicher abgebildete E/A-Anschlüsse verwendet, wenn diese verfügbar sind (die verwendete Hardware stellte nicht für alle Exemplare auf den Speicher abgebildete E/A-Anschlüsse bereit). Die Software wurde ebenfalls geändert, so dass alle störenden FIFO-Lesevorgänge, die durch bestimmte Abfragevorgänge der Ablaufsteuereinheit zeitweise verursacht wurden, entfallen. Die Ergebnisse werden in 16 als 1606 gezeigt.
  • Mit Bezugnahme auf 15 können die Parameter durch eine Stapelverarbeitung derselben über auf den Speicher abgebildete Vorgänge gelesen werden, wobei eine Änderung der FIFO-Konfiguration und der Datenverarbeitung ermöglicht wird. Die Schicht 3 ruft DES für die stapelweise verarbeiteten Vorgänge 1501 auf. Die Hostanwendung stapelt die Parameter pro Vorgang in eine Gruppe 1503, die mit den Eingabedaten verbunden ist. Die geänderte DES-Verwaltungseinrichtung richtet die internen FIFOs und die Ablaufsteuereinheit so ein, dass die gestapelten Parameter unter Umgehung des DES-Chip 1502 gelesen werden; liest die gestapelten Parameter über auf den Speicher abgebildete E/A aus der internen Ausgabe-FIFO in den DRAM 1504 und 1508; konfiguriert die FIFOs neu; und richtet die Ablaufsteuereinheit und den DES-Chip unter Verwendung der gepufferten Parameter so ein, dass sie die Daten 1506 und 1510 jedes Vorgangs aus den Eingabe-FIFOs durch den DES und anschließend zurück aus den Ausgabe-FIFOs 1505, 1507, 1509 und 1511 leiten. Die Schicht 3 beendet die Anforderung 1512. Die Ergebnisse werden in 16 als 1607 gezeigt. Die Genauigkeit des Verfahrens kann erhöht werden, indem durch das ISA-Verfahren 1608 auf den IV und die Datenlängenregister zugegriffen wird.
  • Die Geschwindigkeit für kurze DES-Vorgänge kann gemäß dem folgenden Zusammenhang ermittelt werden:
    Figure 00160001
    wobei Batches die Anzahl von Host-Karte-Stapelverarbeitungsvorgängen (host-card batches), Ops die Anzahl von Vorgängen pro Stapel, DataLen die durchschnittliche Datenlänge pro Vorgang ist und C1, C2 sowie C3 unbekannte Konstanten sind, die den Systemaufwand pro Stapel, pro Vorgang bzw. pro Byte darstellen.
  • Es ist hilfreich, den Systemaufwand C1 pro Stapel durch Ändern Interaktion zwischen dem Hosteinheitentreiber und der Schicht 2 zu beseitigen, um eine unbeschränkte SCC-Anforderung mit einer hinzugefügten Abfrage oder Meldung zu ermöglichen, um anzuzeigen, wenn zusätzliche Daten zur Übertragung bereit sind. Der Systemaufwand C2 pro Vorgang kann verringert werden, indem die Anzahl von Parameterübertragungen pro Vorgang auf ein Minimum herabgesetzt wird. Beispielsweise kann die Hostanwendung in einem Stapel von Vorgängen Parameterblöcke verschachteln, die Parameter geltend machen, z.B. dass die nächsten N Vorgänge alle einen bestimmten Schlüssel verwenden.
  • Bei diesem Verfahren muss der Schlüsselindex nicht bei jeder Wiederholung übergeben und gelesen werden. Ein weiteres Beispiel beinhaltet die Verarbeitung der IVs durch die Hostanwendung vor oder nach der Übertragung der Daten an die Karte. Dies ist kein Sicherheitsproblem, falls die Hostanwendung zur Bereitstellung der IVs gesichert ist. Bei diesem Verfahren müssen die IVs nicht eingelesen und nicht geladen werden, da der DES-Chip nach dem Rücksetzvorgang einen Standard-IV von Null hat.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung kann der Systemaufwand pro Vorgang verringert werden, indem die FIFOs und die Ablaufsteuereinheit neu gestaltet werden. Indem die DES-Maschine so geändert wird, dass sie eine Dateneingabe erwartet, die mit Daten verschachtelte Parameter enthält, kann der Systemaufwand C2 pro Vorgang sich dem Systemaufwand C3 pro Byte annähern. Die Ablaufsteuereinheit bearbeitet weniger Ausgabebytes als Eingabebytes, und die CPU steuert die Kategorie von Maschinenvorgängen, die im zulässigen Bereich der beispielsweise extern ausgewählten Parameter liegen. Beispielsweise ist es der externen Instanz möglicherweise gestattet, nur bestimmte Typen von Verschlüsselungsvorgängen auszuwählen. Außerdem kann die CPU entscheiden, welche der von der externen Instanz ausgewählten Parameter für die Maschine sichtbar sind, z.B. stellt die externe Instanz einen Index in eine interne Tabelle bereit.

Claims (2)

  1. Verschlüsselungsverfahren mit symmetrischem Schlüssel zum Betreiben eines Hardwareverschlüsselungsprozessors, wobei das Verfahren die folgenden Schritte umfasst: Lesen von stapelweise verarbeiteten Vorgangsparametern (1503), die einer Vielzahl von DES- oder TDES-Vorgängen entsprechen, aus einem internen Ausgaberegister (504) des Hardwareverschlüsselungsprozessors in einen Puffer (507) des Hardwareverschlüsselungsprozessors unter Verwendung von auf den Speicher abgebildeten Vorgängen, wobei die stapelweise verarbeiteten Vorgangsparameter und die entsprechenden Vorgänge in einer einzigen Anforderung gestapelt werden, die von einem Host an den Verschlüsselungsprozessor übertragen wird; und Lesen von Vorgangsparametern, die jedem entsprechenden DES- oder TDES-Vorgang entsprechen, aus dem Puffer (507) und Verwenden der entsprechenden Vorgangsparameter zum Ausführen (1504, 1508) von jedem der entsprechenden aus der Vielzahl von DES- oder TDES-Vorgängen.
  2. Hardwareverschlüsselungsprozessor mit symmetrischem Schlüssel, der Folgendes umfasst: ein Mittel zum Lesen von stapelweise verarbeiteten Vorgangsparametern (1503), die einer Vielzahl von DES- oder TDES-Vorgängen entsprechen, aus einem internen Ausgaberegister (504) des Hardwareverschlüsselungsprozessors in einen Puffer (507) des Hardwareverschlüsselungsprozessors unter Verwendung von auf den Speicher abgebildeten Vorgängen, wobei die stapelweise verarbeiteten Vorgangsparameter und die entsprechenden Vorgänge in einer einzigen Anforderung gestapelt werden, die von einem Host an den Verschlüsselungsprozessor übertragen wird; und ein Mittel zum Lesen von Vorgangsparametern, die jedem entsprechenden DES- oder TDES-Vorgang entsprechen, aus dem Puffer (507) und Verwenden der entsprechenden Vorgangsparameter zum Ausführen (1504, 1508) von jedem der entsprechenden aus der Vielzahl von DES- oder TDES-Vorgängen.
DE60117255T 2000-05-01 2001-04-30 Verbessern des durchsatzes von des-hardware für kurze operationen Expired - Lifetime DE60117255T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US20100200P 2000-05-01 2000-05-01
US201002P 2000-05-01
PCT/US2001/013927 WO2001084769A1 (en) 2000-05-01 2001-04-30 Improving des hardware throughput for short operations

Publications (2)

Publication Number Publication Date
DE60117255D1 DE60117255D1 (de) 2006-04-20
DE60117255T2 true DE60117255T2 (de) 2006-10-05

Family

ID=22744069

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60117255T Expired - Lifetime DE60117255T2 (de) 2000-05-01 2001-04-30 Verbessern des durchsatzes von des-hardware für kurze operationen

Country Status (10)

Country Link
US (3) US7362863B2 (de)
EP (1) EP1297652B1 (de)
JP (1) JP4443088B2 (de)
KR (1) KR20030062232A (de)
CN (1) CN1306748C (de)
AT (1) ATE318032T1 (de)
AU (1) AU2001259277A1 (de)
DE (1) DE60117255T2 (de)
IL (2) IL152595A0 (de)
WO (1) WO2001084769A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970451B1 (en) * 1999-10-12 2005-11-29 At&T Corp. Smart routers-simple optics: network architecture for IP over WDM
US7103180B1 (en) * 2001-10-25 2006-09-05 Hewlett-Packard Development Company, L.P. Method of implementing the data encryption standard with reduced computation
FR2834361B1 (fr) * 2001-12-28 2004-02-27 Bull Sa Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
KR100585135B1 (ko) * 2004-02-28 2006-06-01 삼성전자주식회사 불법 복제 방지 기능을 갖는 aes 엔진 장치 및 이의암호화/복호화 방법
KR100696061B1 (ko) * 2004-09-14 2007-03-15 쿠쿠전자주식회사 현미발아방법
JP4779657B2 (ja) * 2006-01-11 2011-09-28 ソニー株式会社 イベント方向検出装置およびその方法
CN101051904B (zh) * 2007-05-17 2010-05-19 成都金山互动娱乐科技有限公司 一种保护网络应用程序使用账号密码进行登录的方法
CN101431405B (zh) * 2008-11-17 2011-09-14 暨南大学 Des加密方法及其硬件电路实现方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
US4964164A (en) * 1989-08-07 1990-10-16 Algorithmic Research, Ltd. RSA computation method for efficient batch processing
JPH06197146A (ja) 1992-12-25 1994-07-15 Hitachi Ltd 通信制御システムにおける制御パラメータ設定方式およびデータリンクの設定方式
NL9400428A (nl) * 1994-03-18 1995-11-01 Nederland Ptt Inrichting voor het cryptografisch bewerken van datapakketten, alsmede werkwijze voor het genereren van cryptografische bewerkingsdata.
GB2288519A (en) * 1994-04-05 1995-10-18 Ibm Data encryption
US5559889A (en) 1995-03-31 1996-09-24 International Business Machines Corporation System and methods for data encryption using public key cryptography
US5953418A (en) * 1995-06-14 1999-09-14 David Hall Providing selective data broadcast receiver addressability
JP3502200B2 (ja) * 1995-08-30 2004-03-02 株式会社日立製作所 暗号通信システム
CA2182254C (en) 1996-07-29 2000-02-15 Weidong Kou Generic file format for multiple security requirements
US5850443A (en) * 1996-08-15 1998-12-15 Entrust Technologies, Ltd. Key management system for mixed-trust environments
US5818939A (en) * 1996-12-18 1998-10-06 Intel Corporation Optimized security functionality in an electronic system
AUPO799197A0 (en) * 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Image processing method and apparatus (ART01)
WO1999057641A1 (en) * 1998-05-01 1999-11-11 Powerquest Corporation Manipulation of virtual and live computer storage device partitions
JPH11344925A (ja) 1998-05-29 1999-12-14 Nec Corp 部分的暗号化装置及びコンピュータ可読記録媒体
US6438678B1 (en) * 1998-06-15 2002-08-20 Cisco Technology, Inc. Apparatus and method for operating on data in a data communications system
US6393565B1 (en) * 1998-08-03 2002-05-21 Entrust Technologies Limited Data management system and method for a limited capacity cryptographic storage unit
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment

Also Published As

Publication number Publication date
ATE318032T1 (de) 2006-03-15
CN1502185A (zh) 2004-06-02
US20040028232A1 (en) 2004-02-12
WO2001084769A1 (en) 2001-11-08
EP1297652A4 (de) 2003-08-20
JP2003532915A (ja) 2003-11-05
US20080192926A1 (en) 2008-08-14
EP1297652B1 (de) 2006-02-15
IL152595A0 (en) 2003-06-24
US8374343B2 (en) 2013-02-12
IL152595A (en) 2010-12-30
KR20030062232A (ko) 2003-07-23
EP1297652A1 (de) 2003-04-02
DE60117255D1 (de) 2006-04-20
CN1306748C (zh) 2007-03-21
JP4443088B2 (ja) 2010-03-31
US7362863B2 (en) 2008-04-22
US20090034719A1 (en) 2009-02-05
US7831040B2 (en) 2010-11-09
AU2001259277A1 (en) 2001-11-12

Similar Documents

Publication Publication Date Title
DE60117255T2 (de) Verbessern des durchsatzes von des-hardware für kurze operationen
DE60209379T2 (de) Techniken zur abladung kryptographischer verarbeitung für mehrfachnetzwerkverkehrsströme
DE19635115A1 (de) Verfahren zum Prüfen einer kryptographischen Einrichtung
DE102007052656B4 (de) Digital-Verschlüsselungs-Hardware-Beschleuniger
DE69938539T2 (de) Kryptographische Einrichtung mit parallel geschalteten Verschlüsselungsblöcken
CH656761A5 (de) Datenuebertragungsanlage, die eine verschluesselungs/entschluesselungs-vorrichtung an jedem ende wenigstens einer datenverbindung aufweist.
DE602004005025T2 (de) Instruktionen zur verarbeitung einer verschlusselten nachricht
WO2001040950A2 (de) Mikroprozessoranordnung mit verschlüsselung
DE102016120558A1 (de) Datenverarbeitungsvorrichtung und -verfahren für kryptographische verarbeitung von daten
DE3841370A1 (de) Verfahren und vorrichtung fuer eine crc-berechnung
DE102019119831A1 (de) Verschlüsselungsschaltung zum Durchführen von virtuellen Verschlüsselungsoperationen
DE60125673T2 (de) Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion
US20070180228A1 (en) Dynamic loading of hardware security modules
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
EP1668817A1 (de) Verfahren und vorrichtung zur ver- und entschl sselung
DE60034944T2 (de) Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung
DE112021001678T5 (de) Macsec-authentifizierung mit niedriger latenz
DE112019006051T5 (de) Sicheres-rechnen-einrichtung und client-einrichtung
EP3900275A1 (de) Recheneinrichtung und verfahren zum betreiben einer recheneinrichtung
JP2002297030A (ja) 暗号処理装置及び暗号処理方法並びにプログラム
DE102019101213A1 (de) Authentifizierung und Entschlüsselung programmierbarer Bauelemente
DE102008046681B4 (de) Schaltung, Verfahren und Verwendung eines Speichers zum Senden und/oder Empfangen in einem Funknetz
DE60131277T2 (de) Kommunikationspaketprozessor mit einer look-up-engine zum abrufen von kontextinformationen für einen kernprozessor
WO1997032417A1 (de) Verfahren zum generieren eines prüfworts für eine bitfolge zur überprüfung der integrität und authentizität der bitfolge
DE102021124929A1 (de) Automatische Nachrichtenzusammensetzung während einer kryptographischenOperation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)