DE19635115A1 - Verfahren zum Prüfen einer kryptographischen Einrichtung - Google Patents

Verfahren zum Prüfen einer kryptographischen Einrichtung

Info

Publication number
DE19635115A1
DE19635115A1 DE19635115A DE19635115A DE19635115A1 DE 19635115 A1 DE19635115 A1 DE 19635115A1 DE 19635115 A DE19635115 A DE 19635115A DE 19635115 A DE19635115 A DE 19635115A DE 19635115 A1 DE19635115 A1 DE 19635115A1
Authority
DE
Germany
Prior art keywords
bit
encryption
mode
result
cryptographic
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.)
Withdrawn
Application number
DE19635115A
Other languages
English (en)
Inventor
Thomas H Likens
Thomas M Norcross
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.)
National Semiconductor Corp
Original Assignee
National Semiconductor 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 National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of DE19635115A1 publication Critical patent/DE19635115A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

Die Erfindung betrifft ein Verfahren zum Prüfen einer krypto­ graphischen Einrichtung nach dem Oberbegriff des Anspruchs 1.
Das Prüfen einer kryptographischen Einrichtung mittels eines Produktionstesters erfolgt üblicherweise dadurch, daß Eingangstestvek­ toren eingegeben und der verschlüsselte Ausgang der kryptographischen Einrichtung hinsichtlich eines korrekten Ergebnisses in bezug auf die Verschlüsselungsfunktion überprüft wird. Allerdings gibt es hierbei eine große Anzahl von möglichen Permutationen und Zuständen in der krypto­ graphischen Einrichtung, so daß es problematisch ist, diese vollständig zu überprüfen. Jedenfalls ist eine große Menge an verschiedenen Ein­ gangstestvektoren notwendig, um eine hohe Fehlerüberdeckung zu erzielen. Angenommen, daß der Anteil, der während eines bestimmten kryptographi­ schen Zyklus i geprüften Schaltkreise eine zufällige P-Fraktion der gesamten Hardware ist, dann ist der Anteil F der Gesamtprüfüberdeckung der gesamten Hardware 1-(1-P)T. Dies bedeutet, daß zum Erreichen einer hohen Fehlerüberdeckung die Zahl der als Eingangstestvektoren zu ver­ wendenden Prüfnachrichtenblöcke T entsprechend hoch zu wählen ist. Dem­ entsprechend wäre auch eine hohe Anzahl von T Prüfnachrichtenblöcken TB(1) bis TB(T) zu speichern, wobei dies jedoch aufgrund der dafür be­ nötigten hohen Anzahl von Speicherplätzen unerwünscht ist. Selbst wenn man die Prüfdaten ohne das Erfordernis großen Datenspeicherung erzeugen würde, wäre es ungünstig, die Eingangsleitungen zur kryptographischen Einrichtung durch einen langen kryptographischen Test zu belegen, da dies weitere Prüfungen behindert, die bezüglich anderer Teile der kryp­ tographischen Einrichtung durchzuführen sind. Außerdem werden hierdurch sehr lange Testzeiten in Kauf genommen, während andere Tests warten müssen. Kryptographische Algorithmen transformieren Blöcke aus unver­ schlüsseltem und verschlüsseltem Text. Als Blockgröße für die Eingangs- und Ausgangsblöcke wird häufig 64 bit verwendet. Der einfachste Weg, um einen kryptographischen Algorithmus zu verwenden, besteht darin, jeden Eingangsblock P zu verschlüsseln, um einen Ausgangsblock C zu erzeugen, EECB(P) = C. Dies wird als elektronischer Codebuch-(ECB)-Modus bezeich­ net. Der elektronische Codebuchmodus hat seinen Namen von der Tatsache, daß jeder gleiche Eingangsklartextblock immer zum gleichen verschlüs­ selten Ausgangsblock umgeformt wird. Der Ausdruck "Codebuch" impliziert, daß eine Codetabelle formuliert werden kann. Da jedoch die typische Blockgröße 64 bit beträgt, würde eine solche Tabelle 264 Eingänge erfor­ dern, was zum Vorberechnen und Speichern viel zu groß ist. Weiterhin existiert ein unterschiedliches Codebuch für jeden möglichen Schlüssel­ wert. Eine elektronische Codebuchentschlüsselung ist einfach der umge­ kehrte kryptographische Vorgang.
Elektronische Codebuchverschlüsselung (ECB)
Ci = E (Pi)
Elektronische Codebuchentschlüsselung (ECB)
Pi = D (Ci).
Das Konzept der Verkettung verwendet einen Rückkopplungsmecha­ nismus, da das Ergebnis der Verschlüsselung vorhergehender Blöcke zur Verschlüsselung des laufenden Blocks zurückgeführt wird. Dies bedeutet, daß das vorhergehende Verschlüsselungsresultat verwendet wird, um die Verschlüsselung des laufenden Blocks zu modifizieren. Daher ist jeder verschlüsselte Ausgangsblock nicht nur von dem laufenden Eingangsblock, sondern von allen vorherigen Eingangsblöcken abhängig.
Bei einer Verschlüsselung mit verschlüsselten Blöcken im Ver­ kettungsmodus (CBC) wird der Eingangsklartextblock mit dem vorhergehen­ den verschlüsselten Ausgangsblock geXODERt, bevor er verschlüsselt wird. Nach jeder Verschlüsselung wird der resultierende verschlüsselte Aus­ gangsblock in einem Rückkopplungsregister gespeichert, um mit dem näch­ sten Eingangsblock bitweise geXODERt zu werden. Der Entschlüsselungsvor­ gang ist entsprechend. Wenn jeder verschlüsselte Eingangsblock ent­ schlüsselt wird, wird er ebenfalls in einem Rückkopplungsregister auf­ gehoben. Nachdem der nächste verschlüsselte Block entschlüsselt wurde, wird bezüglich des Ergebnisses des Rückkopplungsregisters eine exklusive ODER-Verknüpfung durchgeführt.
Verschlüsselung mit Verkettungsmodus der verschlüsselten Blöcke (CBC)
Ci = E (Pi XOR Ci-1)
Entschlüsselung mit Verkettungsmodus der verschlüsselten Blöcke (CBC)
Pi = D (Ci) XOR Ci-1)
In jeder der obigen Gleichungen wird ein Anfangswertvektor (IV) verwendet, um den Rückkopplungswert CO für die erste Iteration zu liefern.
Bei der Verschlüsselung im Rückkopplungsmodus der verschlüs­ selten Blöcke (CFB) ist jeder verschlüsselte Ausgangsblock die bitweise exklusive ODER-Verknüpfung der Verschlüsselung des vorhergehenden Ver­ schlüsselungstextes und des Klartextes. Der CFB-Modus nutzt vorteilhaf­ terweise die kommutative Eigenschaft der XODER-Funktion, das heißt, wenn A XOR B = C ist, dann ist A = B XOR C (XOR = Exklusive ODER-Verknüp­ fung). Daher wird auch bei der Entschlüsselung die Verschlüsselungs­ funktion verwendet.
Verschlüsselung mit Rückkopplungsmodus der verschlüsselten Blöcke (CFB)
Ci = E (Ci-1) XOR Pi
Entschlüsselung mit Rückkopplungsmodus der verschlüsselten Blöcke (CFB)
Pi = E (Ci-1) XOR Ci.
Bei der Verschlüsselung mit Ausgangsrückkopplungsmodus (OFB) ist der kryptographische Eingang der Einrichtung für jeden Block der Ausgang der Einrichtung vom vorhergehenden Block. Die kryptographische Einrichtung beginnt mit einem Anfangswert (IV) als Klartextdateneingang. Durch Block i, hierbei führt die Einrichtung durch einen Block i rekur­ siv die Verschlüsselung beginnend mit dem Anfangswert i-Male durch, die durch Ei(IV) bezeichnet sind. Dieser Modus profitiert ebenfalls von der kommutativen Eigenschaft der exklusiven ODER-Verknüpfung, so daß die Verschlüsselungsfunktion Ei(IV) dieselbe sowohl während der Ver- als auch bei der Entschlüsselung ist.
Verschlüsselung mit Ausgangsrückkopplungsmodus (OFB)
Ci = Ei (IV) XOR Pi
Entschlüsselung mit Ausgangsrückkopplungsmodus (OfB)
Pi = Ei (IV) XOR Ci.
In der folgenden Tabelle ist der Verschlüsselungszustand der kryptographischen Einrichtung und die realisierte logische Konfiguration dargestellt. E repräsentiert einen Verschlüsselungszustand und D einen Entschlüsselungszustand des kryptographischen Moduls.
Um sämtliche obigen Moden zu prüfen, ergeben sich Probleme hinsichtlich großer Prüfzeiten und eine großen Menge von Prüfdaten im Prüfprogramm, das erforderlich ist, um den Verschlüsselungsalgorithmus in den Verschlüsselungseinrichtungen zu prüfen. Aufgabe der Erfindung ist es, ein Verfahren zum Prüfen einer kryptographischen Einrichtung nach dem Oberbegriff des Anspruchs 1 zu schaffen, das eine einfachere und kürzere Prüfung ermöglicht.
Diese Aufgabe wird entsprechend dem kennzeichnenden Teil des Anspruchs 1 gelöst.
Mittels einer internen Folgesteuerung wird hierbei der Ver­ schlüsselungsalgorithmus bei minimaler Intervention durch einen zentra­ len Prozessor geprüft und verifiziert. Sämtliche Eingangsdaten werden automatisch erzeugt und alle Rückkopplungsmoden unabhängig von einem Kernprozessor aufgeführt. Der Aufwand der Bereitstellung externer Prüf­ vektoren entfällt. Hierdurch läßt sich die kryptographische Einrichtung mit geringerem Aufwand herstellen und verifizieren. Da das Prüfen unab­ hängig von einem Prozessor durchgeführt wird, ist es möglich, andere Einrichtungen und Module der kryptographischen Einrichtung parallel zum Verschlüsselungsmodul zu prüfen, wodurch der Gesamtprüfungsaufwand weiter verringert wird. Eine höhere Fehlerüberdeckung wird ermöglicht.
Eine Folgesteuerung schreitet automatisch durch jeden Ver­ schlüsselungsmodus unter Vermeidung von externen ROM-gespeicherten Prüf­ vektoren. Der Prüfalgorithmus profitiert von der symmetrischen Eigen­ schaft des Verschlüsselungs- und Entschlüsselungsalgorithmus. Anfänglich lädt ein zentraler Prozessor einen einzigen Satz von vorbestimmten Test­ vektoren und signalisiert dann der Folgesteuerung, den Testvorgang aller in dem Modul enthaltenen Algorithmen zu starten. Der Ausgang jedes Algo­ rithmus wird als Eingang für den nächsten Algorithmus verwendet. Der verschlüsselte Ausgang von jedem Algorithmus wird dann in die Algo­ rithmen in umgekehrter Ordnung zurückgeführt und entschlüsselt. Am Ende dieses Zyklus sollten die zurückkehrenden Daten exakt den Originaldaten entsprechen. Dies wird als ein Zyklus betrachtet. Die Anzahl von Zyklen ist abhängig von den Testerfordernissen und der gewünschten Fehlerüber­ deckung programmierbar.
Dies reduziert die Prüfzeit und damit den Aufwand zum Herstel­ len und Prüfen integrierter Hardware-Marken zur Verschlüsselung. Außer­ dem wird ein niedrigerer Stromverbrauch erzielt.
Weitere Ausgestaltungen der Erfindung sind den Unteransprüchen und der nachfolgenden Beschreibung zu entnehmen.
Die Erfindung wird nachstehend anhand des in den beigefügten Abbildungen dargestellten Ausführungsbeispiels näher erläutert.
Fig. 1 zeigt ein Blockdiagramm einer eine kryptographische Einrichtung umfassenden Anordnung, die zum Prüfen von dieser geeignet ist.
Fig. 2 zeigt ein schematisches Blockdiagramm einer krypto­ graphischen Einrichtung.
Fig. 3 zeigt ein Fließdiagramm einer bevorzugten Ausführungs­ form des Verfahrens zum Prüfen einer kryptographischen Einrichtung.
Fig. 4A bis 4H zeigen einen Unterkreis als funktionales Äquivalent einer Konfiguration des Schaltkreises von Fig. 2.
Gemäß Fig. 1 ist ein Bus 201, ein RISC-(Reduced Instruction Set Computing)-Prozessor 202, ein Code-ROM 203, ein kryptographischer Modul 204 in Hardware-Ausführung zusammen mit anderen notwendigen Ele­ menten wie etwa einem Bus-Interface 205 in einem einzelnen Gerät vorge­ sehen. Die kryptographische Einrichtung ist über das Bus-Interface 205 an einen äußeren Speicher 206 gekoppelt. Die kryptographische Einrich­ tung enthält einen sicheren Kern, der die wesentlichen Elemente eines API (Application(s)Program(m)Interface) liefert, das seinerseits Zugang zu internen Chipbetriebsmitteln bietet. Der Anwendungscode für die kryptographische Schaltkreiskarte befindet sich in einem Speicher außer­ halb des Chips getrennt von dem Chip für die kryptographische Einrich­ tung. Dieser Anwendungscode außerhalb des Chips liefert Zugang zur kryptographischen Einrichtung über das Bus-Interface 205. Gemäß Fig. 1 ist der Prozessor 202 insbesondere ein 32-bit-RISC-Prozessor mit einem RAM (nicht dargestellt) zum Erhalten eines internen Stapels für bewahr­ ten Maschinenzustand, der von Ausnahmen (Traps und Unterbrechungen) resultiert, wobei das nichtflüchtige ROM 203 zum Speichern des sicheren Kerns dient. Andere Hardware-Funktionen können ohne weiteres gewünsch­ tenfalls in die oder von der kryptographischen Einrichtung ein- oder ausgeschlossen werden.
Software, die aus dem äußeren Speicher 206 ausgeführt wird, liefert Zugang zu den kryptographischen Diensten der kryptographischen Einrichtung über einen Überwacheraufruf-Trapbefehl (EXCP SVC). Vor dem Aufrufen dieses Befehls wird die externe Software spezifische Register mit einem Steuercode und anderen Parametern für den geforderten Service laden und den EXCP SVC-Befehl ausführen. Das Ausnahmeserviceprogramm wird im ROM 203 gespeichert. Die kryptographische Einrichtung wird dann die Inhalte der Folgesteuerung auf einem Unterbrecherstapel in dem SRAM bewahren und eine Sprungadresse von einer Unterbrechungszuweisungs­ tabelle in den ROM 203 lesen. Dann wird die Kontrolle auf die Sprung­ adresse in den ROM 203 übertragen.
Das SVC(Überwacheraufruf)Ausnahmeserviceprogramm wird den Steuercode und Parameter, die in die Register überführt wurden, verifi­ zieren und zu einem geeigneten Steuerserviceprogramm innerhalb des ROM 203 springen. Wenn das Steuerserviceprogramm die geforderte Operation ausgeführt hat, wird es zum SVC-Ausnahmeserviceprogramm zurückkehren, das den vorherigen Zustand von dem Unterbrecherstapel in dem SRAM wieder herstellt, und die Steuerung der externen Software überlassen. Die Einrichtung ist mit externer Hardware 207 und dem externen Speicher 206 verbunden.
Fig. 2 illustriert einen Weg, um die ECB-, OFB-, CBC- und CFB-Verschlüsselungs- und -Entschlüsselungsmoden unter Verwendung einer Verschlüsselungsfunktion 302 durchzuführen. Der durch die Verschlüsse­ lungsfunktion 302 realisierte Verschlüsselungsalgorithmus kann unter einer Vielzahl von Algorithmen ausgewählt sein, die Eingangsblöcke konstanter Größe aufnehmen und Eingangsblöcke konstanter Größe erzeugen. Der Datenverschlüsselungsstandard (DES) ist beispielsweise geeignet. Wie in Fig. 2 dargestellt, realisiert der kryptographische Modul 204 die Hauptfunktionen des kryptographischen Algorithmus. Der kryptographische Modul 204 steht mit dem Bus 201 in Verbindung. Eine Datenbewegung in und aus dem Block ist nicht kritisch, wenn die Leistungsanforderungen er­ füllt werden. Der kryptographische Modul 204 baut auf einen Busmaster (nicht dargestellt), der ebenfalls mit dem Bus 201 verbunden ist, um alle für den kryptographischen Algorithmus erforderlichen Werte zu laden. Diese Werte umfassen Daten (Klartext oder verschlüsselter Text), der in ein Eingangsdatenregister 301 zu schreiben ist, einen Schlüssel, der in ein Schlüsselregister 303 zu schreiben ist, Steuerbits, die in ein Steuerregister 304 zu schreiben sind (beispielsweise Operations­ modus, der in eine Modusspeicherstelle 305 zu schreiben ist), und einen Anfangsvektor (IV), der in ein Rückkopplungsdatenregister 306 zu schrei­ ben ist. Gegebenenfalls hat eine externe Quelle die Nachricht auf eine für den Modus geeignete Blockgröße aufzufüllen. Der kryptographische Modul 204 führt alle Funktionen des verwendeten kryptographischen Algo­ rithmus aus. Der kryptographische Modul 204 gibt seinen Verschlüsse­ lungs-/Entschlüsselungsausgang von verschlüsseltem Text/Klartext für den ausgewählten Modus in ein Ausgangsdatenregister 307. Der kryptographi­ sche Modul 204 umfaßt 8-, 16- und 32-bit breite Schreib- und Lesespei­ cher.
Dieser funktionale Überblick bezüglich der Verschlüsselung und Entschlüsselung min dem kryptographischen Modul 204 nimmt an, daß dieser sich anfänglich in einem Ruhezustand befindet. Der Modul 204 setzt sein Bit für unterbrochenen Zustand, wenn er sich im Wartezustand befindet. Ein Busmaster initialisiert den Modul 204 durch Schreiben einer Informa­ tion wie des Schlüssels, Anfangsvektors, Dateneingangs und Modus. Dann gibt der Busmaster einen Startbefehl. Der Modul 204 arbeitet autonom und dann, wenn die Verarbeitung begonnen hat, ist ein Busmaster frei, den nächsten Datenblock, der bearbeitet werden soll, zu laden. Der Modul 204 hat eine einzelne 64-bit-Eingangsdatenwarteschlange. Das Bit für unter­ brochenen Zustand zeigt die Beendigung des Prozesses und an, daß das Ergebnis sich in einem Ausgangspuffer befindet. Das Verarbeiten des nächsten Blocks kann beginnen, bevor der Ausgangspuffer gelesen ist, jedoch werden neue Daten nicht in den Ausgangspuffer überführt, bis dieser geleert ist. Der Modul 204 unterstützt die Moden des elektroni­ schen Codebuchs ECB, der Verkettung der verschlüsselten Blöcke CBC und der Ausgangsrückkopplung ESB in Hardware. Der Modul 204 unterstützt auch den Modus der 64-bit-Verschlüsselungswortrückkopplung in Hardware.
Um eine Verarbeitung mit 20Mbit/sec mit einem 20MHz-Verarbei­ tungstakt zu erreichen, muß die effektive Verschlüsselungs-/Entschlüsse­ lungsrate 1 bit/Takt sein. Daher wird ein 64-bit-Block-(OFC, CBC oder ECB)-Verschlüsselungs-/Entschlüsselungsoperation 64 Takte nicht über­ schreiten. Der Modul 204 verwendet einen 64-bit-Eingangspuffer und einen 64-bit-Ausgangspuffer, um während der Verschlüsselung/Entschlüsselung den Prozessor Interface Overhead zu verstecken. Diese Gleichzeitigkeit erhält die Gesamtdurchsatzleistung. Der Modul 204 verarbeitet Daten bei 20Mbit/sec. Der Modul 204 führt dies unter gleichzeitiger Hilfestellung vom Prozessor 202 aus. Der Prozessor 202 ist zum Nachrichtenauffül­ len und Datenladen/-entladen verantwortlich.
Die Sicherheitsanforderungen für den Modul 204 bestehen darin, daß CRYP_Schlüsselregister nur schreibend auszubilden. Eine Speicherver­ waltungseinheit beschränkt den Zugang zu diesem Modul.
Der Modul 204 ist in vier funktionale Blöcke unterteilt:
  • -Bus-Interface
  • - Folgesteuerung
  • - Registerblock
  • - Verschlüsselungsfunktionen.
Das Bus-Interface zwischen den internen funktionalen Blöcken des Moduls 204 und dem Bus 201 decodiert die Adresse, setzt Wartezu­ stände ein, verriegelt eine Datenabnahme vom Bus 201 und schreibt Daten auf den Bus 201. Das Bus-Interface hält sich an die Bus-Spezifikation. Alle Datenlesungen und -schreibungen sind 8, 16 oder 32 bit breit.
Die Folgesteuerung 308 enthält außer der in dem Bus-Interface befindlichen Steuerlogik sämtliche Logik, die notwendig ist, um die Verschlüsselungsfunktion 302 zu betreiben. Dies umfaßt Informationen bezüglich dem laufenden Zustand der Verschlüsselungsfunktion 302, bezüg­ lich dessen, wie die verschiedenen Moden (CBC/ECB) und Operationen (Verschlüsseln/Entschlüsseln) handzuhaben sind.
Der Registerblock enthält einen Statusregister 309, ein CRYP_ con-Steuerregister 304, ein CRYP_key-Schlüsselregister 303, ein CRYP_ mode-Modusregister 305, ein (nicht dargestelltes) Konfigurationsregi­ ster, ein CRYP_IV-Intitialvektorregister 306, ein CRYP din-Dateneingabe­ register 301 und ein CRYP_dout-Datenausgaberegister, die zum Betreiben des Moduls 204 verwendet werden. Die Register 304, 305, 306, 303 und ein CRYP_atcnt-Autotestzählregister sollen hierbei nicht beschrieben werden, bevor die Verschlüsselungsfunktion 302 sich nicht im gestoppten Zustand befindet.
Die Verschlüsselungsfunktion 302 vollführt Ver- als auch Ent­ schlüsselung. Im Verschlüsselungszustand vollführt die Verschlüsse­ lungsfunktion 302 eine Funktion E (P) = C und im Entschlüsselungszustand eine Funktion D (C) = P, so daß E eine invertierte Funktion von D ist.
In den Registern 304 und 309 kann das Startbit dazu verwendet werden, die Verschlüsselungsfunktion 302 fließbandartig arbeiten zu lassen. Anfänglich ist start = 0.
Die Register 301, 306 und 303 können in irgendeiner Ordnung vor den Sätzen des Startbits geladen werden. Das Laden des Registers 301 löscht das Signal dib_ready.
Wenn das Signal start gesetzt ist, liest die Verschlüsselungs­ funktion 302 die Daten vom Dateneingaberegister 301 ein, löscht das Zu­ standssignal stop und setzt das Signal dib_ready. Unmittelbares Vorladen des Signals CRYP_din verwirklicht den Ablauf der Verschlüsselungsfunk­ tion 302. Das Laden des hohen Bytes des CRYP_din-Dateneingaberegisters 301 startet die Verschlüsselungsfunktion 302, wenn der laufende Daten­ block vollständig ist.
Das Setzen des sanitize-bits löscht alle Datenregister, setzt das Signal dib_ready, löscht das Signal dob_ready und setzt das Signal stop. Eine beispielhafte Verwendung des Moduls 204 besteht im Folgenden:
  • 1. Lesen des Statusregisters 309 zum Prüfen des Statusbits stop.
  • 2. Wenn das Statusbit stop gelöscht ist, gehe zurück zu #1. Wenn das Statusbit gesetzt ist, fahre fort.
  • 3. Schreibe die entsprechenden Daten in die Register 306, 301, 303, 305 und das (nicht dargestellte) Konfigurationsregister.
  • 4. Setze das Startbit zum Beginn der Verarbeitung.
  • 5. Wenn das Bit dib_ready des Statusregisters 309 gesetzt ist, lade die nächsten Daten ein.
  • 6. Wenn das Bit dob_ready des Statusregisters 309 gesetzt ist, lese die Daten aus.
  • 7. Wiederhole Schritte 5 und 6 so oft wie benötigt.
  • 8. Wenn vervollständigt, lösche das Startbit des Steuerregisters 304, das bewirkt, daß der Modul 204 stoppt, nachdem die letzte Opera­ tion abgeschlossen ist.
  • 9. Lese die Daten aus dem Modul 204.
  • 10. Setze das Bit sanitize, um alle Datenregister freizumachen.
Beispielhafte Verwendung des Moduls 204 im Autotestmodus:
  • 1. Vollführe die Schritte (1) bis (3) des vorhergehenden Beispiels.
  • 2. Lade das CRYP__atcnt-Register 310 mit der gewünschten Anzahl von Testzyklen.
  • 3. Setze das auto_test-bit, um den Selbsttest zu starten.
  • 4. Frage das Bit test state ab, um die Vervollständigung des Selbst­ tests zu prüfen.
  • 5. Vergleiche den Wert der Daten im CRYP_dout-Register 307 mit den Daten, die verwendet wurden, um den Eingangsdatenpuffer 301 zu beschreiben. Wenn sie übereinstimmen, war der Test erfolgreich. Die Daten des CRYP_din-Registers 301 können nicht verwendet wer­ den, da sie während des Selbsttests geändert werden.
  • 6. Setze das Bit sanitize, um sämtliche Register zu löschen.
Wenn das Rückstellsignal erscheint, kehrt der Modul 204 in seinen Ruhezustand zurück und setzt das Statusbit stopped. Sämtliche Datenregister werden freigemacht, dib_ready wird gesetzt und dob_ready wird gelöscht. Der Modul 204 erreicht seinen Ruhezustand, wenn das Rück­ stellsignal gelöscht ist.
Wenn die folgende Klartextnachricht
"Now is the time for all . . . "
zu verschlüsseln ist, wird sie durch das Bus-Interface 205 in der nach­ folgenden Ordnung im gemeinsam genutzten Speicherpuffer angeordnet:
Wenn die Daten in den Eingangsdatenpuffer der kryptographi­ schen Einrichtung überführt werden, werden sie in nachstehender Weise abgebildet:
Wenn die Daten in den Eingangsdatenpuffer des Moduls 204 über­ führt wurden werden sie in folgender Weise abgebildet:
Für den Prozessor 202 erscheinen die 64-bit-Dateneingaberegi­ ster einfach als zwei Speicherstellen, wobei DINL die untere der beiden Adressen ist. Intern werden die Bytes so abgebildet, daß der kryptogra­ phische Algorithmus das Register als
wahrnimmt.
Dies wird durch Übertragen der Bytes bewirkt, wenn das Regi­ ster anfänglich beschrieben wird, und erneut, wann immer es durch den Prozessor 202 gelesen wird. Das 64-bit-Initialisierungsregister und das Datenausleseregister werden in analoger Weise gehandhabt. Das 80-bit- Schlüsselregister ist etwas verschieden. Wenn der folgende hexadezimale Schlüssel zum Verschlüsseln vorliegt (zum Zwecke der Einfachheit wird jedes Digit durch ein Byte in dem Schlüssel repräsentiert), ergibt sich folgendes:
Zum Prozessor wird (zum Zwecke des Schreibens des Schlüssels) das Register abgebildet als
Für den kryptographischen Algorithmus erscheint der Schlüssel in dem Register folgendermaßen:
Dies wird wiederum durch Übertragung der Bytes durchgeführt, wenn diese in das Register geschrieben werden. Keine Byteumlagerung tritt am Ausgang des Schlüsselregisters auf, da ·rt ein nur Schreib­ register ist.
Der Modul 204 läßt sich in einen eingebauten Selbsttestmodus bringen. Dieser Modus wird vier Verschlüsselungen, gefolgt von vier Ent­ schlüsselungen, in einer vorbestimmten Anzahl vornehmen. Die erste der vier Verschlüsselungen wird in einem Ausgangsrückkopplungsmodus OFB durchgeführt. Die zweite verwendet den Modus des elektronischen Code­ buches ECB, die dritte den Modus der Blockverkettung der verschlüsselten Blocks CBC und die vierte den Modus der Rückkopplung der verschlüsselten 64-bit-Blocks CFB. Umgekehrt wird die erste der vier Entschlüsselungen in dem letztgenannten Modus ausgeführt, die zweite verwendet den CBC- Modus, die dritte den EBC-Modus und die vierte den OFB-Modus. Dieses Muster von vier Verschlüsselungen und vier Entschlüsselungen wird in einer vorbestimmten Anzahl wiederholt, die in dem Selbsttestzählregister (CRYP_atcnt 310) spezifiziert ist. Der Initialvektor 306 wird erst nach der letzten Entschlüsselung dieses Zyklus aktualisiert. Daher liefert der nächste Zyklus verschiedene Zwischenresultate, während die endgülti­ ge Entschlüsselung immer zum Originalwert zurückkehrt. Im Zusammenhang mit einem 4-bit-Zähler 310 können die Verschlüsselungs-/Entschlüsse­ lungszyklen maximal 15mal wiederholt werden.
Der Dateneingangspuffer 301, das Initialisierungvektorregister 306, das Schlüsselregister 303 und das Testmoduszählregister 310 müssen vor Beginn des automatischen Prüfens geladen werden. Nachdem diese Re­ gister geladen sind, wird das bit auto_test in dem Konfigurationsregi­ ster (CRYP_con) gesetzt, um das automatische Prüfen zu beginnen. Wenn der Test einmal beginnt, wird das bit test_state in dem Statusregister 309 ausgedrückt. Dieses bit sollte periodisch abgefragt werden, um die Vervollständigung des automatischen Prüfens zu bestimmen. Das bit auto_test ist selbstlöschend und sollte nicht verwendet werden, um den Zustand des automatischen Testmodus zu bestimmen. Die Daten in dem Datenausgangsregister 307 werden identisch zu den Eingangsdaten T sein, die durch das Testprogramm eingeführt wurden, wenn die Tests erfolgreich abgeschlossen werden.
Das automatische Testen des Moduls 204 erfolgt gemäß Fig. 3 im Zusammenhang mit den Fig. 4A bis 4H. Im Schritt 401 werden An­ fangswert, Schlüssel, Modus und Testzahl durch einen Busmaster (etwa 202) in die Register 306, 303, 305 und 310 geschrieben. Gemäß Schritt 402 wird die Testanzahl aus Register 402 mit null verglichen. Wenn die Testanzahl null nicht erreicht hat, erfolgt Abzweigung zu Schritt 403 und eine Ausgangsrückkopplungsverschlüsselung OFB, wie in Fig. 4A dar­ gestellt, wird durchgeführt. Ein Multiplexer 311 wählt T während des Schritts 401. In Schritt 403 wählt der Multiplexer 311 das Ausgangs­ datenregister 307. CRYP_mode ist eine codierte Darstellung einer der spezifischen Hardware-Konfigurationen, wie sie in den Fig. 4A bis 4H dargestellt sind. Vor Schritt 403 setzt die Folgesteuerung CRYP_mode 30 auf 1010. Dies veranlaßt die Folgesteuerung 308, ein Multiplexer­ wählsignal 314 bis 318 auszugeben, um einen Schaltkreis, wie in Fig. 2 gezeigt, in funktionalem Äquivalent zu dem Schaltkreis von Fig. 4A auszuwählen. Schritt 403 resultiert darin, daß der Ausgang der Ausgangs­ rückkopplungsverschlüsselung in das Eingabedatenregister 301 geschrieben wird. Schritt 404, dargestellt in Fig. 4B, vollführt eine elektronische Codebuchverschlüsselung und schreibt das Ergebnis über die Daten im Eingabedatenregister 301. CRYP_mode enthält 1000. Die Folgesteuerung 308 konfiguriert Steuersignale 314 bis 319, um den in Fig. 4B dargestellten Schaltkreis während des Schritts 404 zu realisieren. In Schritt 405, dargestellt in Fig. 4C, wird eine Verschlüsselung durch Verkettung verschlüsselter Blöcke des vorhergehenden Resultats durchgeführt, da CRYP_mode 1001 enthält, und die Folgesteuerung 308 konfiguriert Steuer­ signale 314 bis 319, damit der in Fig. 4C dargestellte Schaltkreis während des Schritts 405 realisiert wird. In Schritt 406 wird eine Ver­ schlüsselung durch Rückkopplung verschlüsselter Blöcke durchgeführt, da CRYP_mode 1011 enthält, und die Folgesteuerung 308 konfiguriert Steuer­ signale 314 bis 319, so daß der in Fig. 4D dargestellte Schaltkreis während des Schrittes 406 realisiert wird. An dieser Stelle ist der Inhalt des Eingabedatenregisters 301 CFBi [CBC[ECB[OFB(T)]]], nämlich das Ergebnis von vier verschachtelten Verschlüsselungen.
Die Schritte 407 bis 410 kehren die Verschlüsselung der Schritte 403 bis 406 um. Daher wird in Schritt 407 eine Entschlüsselung durch Rückkopplung verschlüsselter Blöcke durchgeführt, da CRYP__mode 1011 ist, so daß der in Fig. 5E dargestellte Schaltkreis realisiert wird. In Schritt 408 wird eine Entschlüsselung durch Verkettung ver­ schlüsselter Blöcke durchgeführt, da CRYP_mode 0001 ist, so daß der in Fig. 4F dargestellte Schaltkreis realisiert wird. In Schritt 409 wird eine elektronische Codebuchentschlüsselung vorgenommen, da CRYP_mode 0000 ist, so daß der in Fig. 4G dargestellte Schaltkreis realisiert wird. In Schritt 410 wird eine Ausgangsrückkopplungsentschlüsselung durchgeführt, da CRYP_mode 1010 ist, so daß der in Fig. 4H dargestellte Schaltkreis realisiert wird. Das Ergebnis dieser letzten Entschlüsselung sollte gleich dem Testblock T sein. Wie in Fig. 4H dargestellt, wird während der letzten Ausgangsrückkopplungsentschlüsselung der Initialwert in dem Rückkopplungsregister 306 aktualisiert. Daher wird während des Schritts 411 das Rückkopplungsregister 306 aktualisiert, so daß IVi+1 = E (IVi) ist. In Schritt 412 wird die Zählung des Testzählregisters 310 dekrementiert. In Schritt 402 wird die Testzählung in bezug auf Gleich­ heit mit null geprüft. Wenn die Testzählung null erreicht hat, fährt die Hardware mit einem anderen Zyklus durch die Schritte 403 bis 404 mit einem aktualisierten Initialvektor fort. Dies stellt sicher, daß jedes Zwischenresultat unterschiedlich sein und daher eine unterschiedliche Wirkung auf die Gesamtrealisierung ausüben wird. Wenn der Test gemäß Schritt 402 feststellt, daß null erreicht ist, wird das Ausgaberegister 307 durch das Testprogramm gelesen. Die Software, die den Selbsttest ausführt, vergleicht dann das Ausgangsergebnis mit den Eingangsdaten T. Wenn sie gleich sind, hat der Modul 204 den Selbsttest passiert.
Wenn ein Produktionstest durch Eingabe eines vorbestimmten Satzes von Eingangsworten durchgeführt wird, die in einem von verschie­ denen Moden zu verschlüsseln oder zu entschlüsseln sind, wird der Bus 201 beaufschlagt und das Testen von anderen Modulen muß warten, bis das Prüfen der Verschlüsselungsfunktion beendet ist. Da aber hier der Modul 204 seinen Ausgang 307 an seinen Eingang 301 zurückliefert, wird ver­ mieden, daß ein nächster Prüfdatenblock über den Bus 201 geladen werden muß. Auf diese Weise kann dadurch, daß T verschiedene Initialvektoren (IV) von IV(1) bis IV(T) durchläuft, eine große Fehlerüberdeckung ent­ sprechend 1-(1-P)T erreicht werden, wenn jeder Testzyklus einen zufälli­ gen Teil P der Eingangs- und Zustandspermutationen der gesamten Ver­ schlüsselungsfunktion prüft. Weiterhin können alle Moden der Multiplexer 311, 319, 320, 321 und 322 verifiziert werden. Jedoch sind nur ein Nach­ richtenblock TB(1) und IV(1) als Eingang erforderlich. Die übrigen Prüf­ nachrichtenblöcke TB sind die gleichen für jeden Zyklus, jedoch wird der Anfangsvektor IV(i) entsprechend dem während der letzten Entschlüsselung des Zyklus (Schritt 410) getesteten Modus aktualisiert, der in der be­ vorzugten Ausführungsform ein Ausgangsrückkopplungsmodus (OFB) ist, in der während des Testzyklus i:
IVi+1 = E (IVi) bis TB(T)
ist.
Da das Schreiben der Prüfeingangsdaten über den Multiplexer 311 anstatt über den Bus 201 erfolgt, können andere Tests parallel zu dem beschriebenen Selbsttest vorgenommen werden. Das ROM 203 kann ein Einschaltselbsttest-(POST)-Programm enthalten, das nach Einschalten oder Rückstellen, das einen Selbsttest der vorstehend beschriebenen Art an­ ruft, abläuft. Die Latenz des Selbsttests kann verwendet werden, um gleichzeitig andere Tests auszuführen.
Die Abfolge der Ver- und Entschlüsselungen kann geändert wer­ den, wobei allerdings die Ver- oder Entschlüsselung entsprechend dem elektronischen Codebuchmodus als erster Stufe des Zyklus nicht wün­ schenswert ist. Dieser Modus verwendet keinen Initialvektor. Daher wür­ den in diesem Falle die gleichen Eingangs- und Zustandspermutationen redundant getestet. Wenn jedoch mit einem Modus begonnen wird, der einen Initialvektor benötigt, wird dies vermieden. Beispielsweise läßt sich folgende Abfolge verwenden: CFB-Verschlüsselung, ECB-Verschlüsselung, CBC-Verschlüsselung, OFB-Entschlüsselung, OFB-Verschlüsselung, CBC-Ent­ schlüsselung, EBC-Entschlüsselung und CFB-Verschlüsselung. Diese Folge zeigt, daß die ersten vier Schritte nicht unbedingt sämtlich Verschlüs­ selungen sein müssen. Wie oben dargestellt, können die Schritte 403 bis 406 vier Entschlüsselungen bewirken, während die Schritte 407 bis 410 vier Verschlüsselungen in den entsprechenden Moden gemäß den Schritten 406 bis 403 bewirken. Der kryptographische Modul 204 besitzt ein Zu­ standsbit, das einen Wert entweder für einen Verschlüsselungs- oder einen Entschlüsselungszustand annimmt. Wenn sechs verschiedene Moden möglich sind, ist es möglich, beispielsweise folgenden Zyklus durchzu­ führen:
D6, E4, E3, ES, D1, D2 . . . E2, E1, D5, D3, D4, D6,
wobei E Verschlüsselung und D Entschlüsselung bedeuten.
Wenn die erste Hälfte von Operationen links der Punkte als eine fortschreitende Prüfoperation betrachtet wird, ist die zweite Hälf­ te der Operationen rechts der Punkte eine Umkehrtestoperation, in der die Moduszahlen in einer entsprechenden Operation im gleichen Abstand von den Punkten auf jeder Seite gleich sind, während E und D vertauscht sind.
Weitere Moden und Verschlüsselungsalgorithmen können verwendet werden, beispielsweise ist der Data Encryption Standard (DES) und Skip­ jack geeignet.
Zusätzliche Blockalgorithmen, die zum Testen entsprechend dem vorstehenden Verfahren geeignet sind, umfassen:
Lucifer -- (J.L. Smith, "Recirculating Block Cipher Cryptogra­ phic System", US 3 796 830.
Madryga -- (W.E. Madryga, "A High Performance Encryption Algo­ rithm", Computer Security: A Global Challenge, North Holland: Elsevier Science Publishers, 1984, Seiten 557-570).
NewDES -- (C. Connell, "An Analysis of NewDES: A Modified Version of DES", Cryptologia, v. 14, n. 3. Juli 1990, Seiten 217-223).
FEAL-N -- (A. Shimizu und S. Miyaguchi, "Data Randomization Equipment", US 4 850 019).
REDOC II oder REDOC III -- (M.C. Wood, "Method of Cryptogra­ phically Transforming Electronic Digital Data from One Form to Another", US 5 003 596).
LOKI -- (L. Brown, M. Kwan, J. Pieprzyk und J. Seberry, "LOKI: A Cryptographic Primitive for Authentication and Secrecy Applications", Advances in Cryptology -- AUSCRYPT ′90 Proceedings, Berlin: Springer-Ver­ lag, 1990, Seiten 229-236).
Khufu und Khafre -- (R.C.Merkle, "Method and Apparatus for Data Encryption", US 5 003 597).
IDEA -- (J.L. Massey und X. Lai, "Device for Converting a Digital Block and the Use Thereof", PCT/CH91/00117).
MMB -- (J. Deamen, R. Govaerts und J. Vandewalle, "Block Ciphers Based on Modular Arithmetic", Proceedings of the 3rd Symposium on State Progress of Research in Cryptography, Rom, Italien, 15.-16. Februar 1993, Seiten 80-89).
CA-1.1 -- (H. Gutowitz, "Method and Apparatus for Encryption, Decryption, and Authentication Using Dynamical Systems", US-Patentanmel­ dung, 1992).
Auch kann als Modus eine Klartextblockverkettung (PBC) verwen­ det werden, die ähnlich zu CBC ist, außer daß der vorhergehende Klar­ textblock mit dem Klartextblock anstatt mit dem verschlüsselten Text­ block gexODERt wird. Klartextrückkopplung (PFB) ist ähnlich zu CFB, außer daß die Klartextrückkopplung die Verschlüsselungsfunktion anstelle der Rückkopplung des verschlüsselten Textes treibt. Andere Moden umfas­ sen eine Verschlüsselungsblockverkettung von Klartextdifferenz (CBCPD) und Ausgangsrückkopplung mit einer nichtlinearen Funktion (OFBNLF). (Siehe auch C. Jansen und D.E. Boekee, "Modes of Blockcipher algorithms and Their Protection Against Active Eavesdropping", Advances in Crypto­ logy----EUROCRYPT ′87 Proceedings, Berlin: Springer-Verlag, 1988, Seiten 281-286).

Claims (16)

1. Verfahren zum Prüfen einer kryptographischen Einrichtung mit einer kryptographischen Funktion, die sich entweder im Verschlüsse­ lungs- oder Entschlüsselungszustand befindet, so daß der Verschlüsse­ lungszustand ein inverser Entschlüsselungszustand und umgekehrt ist, dadurch gekennzeichnet, daß die kryptographische Funktion in jedem von n Moden unter Vornahme folgender Schritte durchgeführt wird, wobei i eine ganze Zahl ist:
für i gleich 1
Durchführen einer ersten kryptographischen Operation in einem ersten Zustand in einem ersten Modus unter Verwendung eines kryp­ tographischen B-bit-Prüfblocks als Eingang und Erzeugen eines ersten verschlüsselten B-bit-Resultats,
für i von 2 bis n
Durchführen einer i-ten kryptographischen Operation in einem i-ten Zustand in einem i-ten Modus, wobei das (i-1)-te B-bit-Zwi­ schenresultat als Eingang verwendet und ein i-tes verschlüsseltes B-bit- Zwischenresultat erzeugt wird,
für i von n+1 bis 2n-1
Durchführen einer i-ten kryptographischen Operation in einem (2n-i+1)-ten inversen Zustand in einem (2n-i+1)-ten Modus, wobei das (i-1)-te B-bit-Zwischenresultat als Eingang verwendet und ein i-tes verschlüsseltes B-bit-Resultat erzeugt wird,
für i gleich 2n
Durchführen einer 2n-ten kryptographischen Operation in einem ersten inversen Zustand in dem ersten Modus, wobei das (i-1)-te B-bit-Zwischenresultat als Eingang verwendet und ein i-tes B-bit-Prüfre­ sultat für die kryptographische Einrichtung erzeugt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Prüfresultat mit dem Prüfblock verglichen und ein Passierergebnis bei Gleichheit und ein Versagungsergebnis bei Ungleichheit ausgegeben wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß B 64 ist.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch ge­ kennzeichnet, daß n 4 ist.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch ge­ kennzeichnet, daß in den ersten vier Zuständen Verschlüsselungen vorge­ nommen werden.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß zunächst ein Ausgangsrückkopplungsmodus, dann ein elektronischer Code­ buchmodus, danach ein Verkettungsmodus für verschlüsselte Blöcke und anschließend ein Rückkopplungsmodus für verschlüsselte Blöcke vorgenom­ men wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekenn­ zeichnet, daß jede kryptographische Operation unter Verwendung einer Verschlüsselungsfunktion (302) durchgeführt wird, bei der ein Schlüs­ seleingang, ein B-bit-Dateneingang und ein Verschlüsselungs-/Entschlüs­ selungszustandseingang verwendet werden und ein B-bit-Datenausgang er­ zeugt wird.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekenn­ zeichnet, daß das n-te verschlüsselte B-bit-Zwischenresultat mit einer vorbestimmten bekannten korrekten Antwort verglichen und gegebenenfalls ein Passierresultat bei Gleichheit erzeugt wird.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekenn­ zeichnet, daß das erste verschlüsselte B-bit-Resultat unter Verwendung eines ersten B-bit-Anfangswertes für i gleich 1 erzeugt wird.
10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch ge­ kennzeichnet, daß der erste B-bit-Anfangswert aktualisiert wird, um einen zweiten B-bit-Anfangswert zu bilden, wobei für ganze Zahlen von t gleich 2 bis T-1 die in Anspruch 1 aufgeführten Schritte und das Aktua­ lisieren des t-ten B-bit-Anfangswertes vorgenommen werden, um einen (T+1)-ten B-bit-Anfangswert zu bilden, mit dem wiederum die in Anspruch 1 aufgeführten Schritte durchgeführt werden, um das Prüfresultat zu erhalten.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß für t von 1 bis T-1 der Schritt des Aktualisierens des t-ten B-bit-An­ fangswertes zur Erzeugung eines (t+1)-ten B-bit-Anfangswertes entspre­ chend dem t-ten ersten Modus des invertierten t-ten ersten Zustands vorgenommen wird.
12. Verfahren nach Anspruch 10 oder 11, dadurch gekennzeich­ net, daß vor den Schritten, in denen t = 1 ist, der B-bit-Prüfblock in ein B-bit-Dateneingangsregister geschrieben wird.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß vor den Schritten, in denen t = 1 ist, der erste B-bit-Anfangswert in ein B-bit-Anfangswertregister geschrieben wird.
14. Verfahren nach einem der Ansprüche 10 bis 13, dadurch ge­ kennzeichnet, daß vor den Schritten, in denen t = 1 ist, der Schlüssel in ein Schlüsselregister geschrieben wird.
15. Verfahren nach einem der Ansprüche 10 bis 14, dadurch ge­ kennzeichnet, daß vor den Schritten, in denen t = 1 ist, T in ein Prüf­ zählregister geschrieben wird.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß für t von 1 bis T nach den Aktualisierungsschritten das Prüfzählregister dekrementiert wird.
DE19635115A 1995-08-31 1996-08-30 Verfahren zum Prüfen einer kryptographischen Einrichtung Withdrawn DE19635115A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/521,787 US5631960A (en) 1995-08-31 1995-08-31 Autotest of encryption algorithms in embedded secure encryption devices

Publications (1)

Publication Number Publication Date
DE19635115A1 true DE19635115A1 (de) 1997-04-24

Family

ID=24078159

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19635115A Withdrawn DE19635115A1 (de) 1995-08-31 1996-08-30 Verfahren zum Prüfen einer kryptographischen Einrichtung

Country Status (3)

Country Link
US (1) US5631960A (de)
KR (1) KR970012163A (de)
DE (1) DE19635115A1 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3746098B2 (ja) * 1996-02-28 2006-02-15 株式会社日立製作所 データの暗号化装置
JPH1079000A (ja) * 1996-09-03 1998-03-24 Hitachi Ltd プログラム書き込み可能なicカード
US6412069B1 (en) 1997-09-16 2002-06-25 Safenet, Inc. Extending crytographic services to the kernel space of a computer operating system
US6278782B1 (en) 1997-09-16 2001-08-21 Safenet, Inc. Method of implementing a key recovery system
US6397331B1 (en) 1997-09-16 2002-05-28 Safenet, Inc. Method for expanding secure kernel program memory
US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US6453415B1 (en) 1997-09-16 2002-09-17 Safenet, Inc. Method of communicating securely between an application program and a secure kernel
US6307936B1 (en) 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
CA2634812C (en) * 1997-09-16 2010-03-30 Safenet, Inc. Cryptographic co-processor
US6708273B1 (en) 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
DE69833821T2 (de) * 1997-09-18 2006-11-30 Matsushita Electric Industrial Co., Ltd., Kadoma Übertragungsverfahren und -vorrichtung zum kombinierten Multiplexen und Verschlüsseln
US6249582B1 (en) 1997-12-31 2001-06-19 Transcrypt International, Inc. Apparatus for and method of overhead reduction in a block cipher
US6215876B1 (en) 1997-12-31 2001-04-10 Transcrypt International, Inc. Apparatus for and method of detecting initialization vector errors and maintaining cryptographic synchronization without substantial increase in overhead
TW375721B (en) 1998-06-17 1999-12-01 Ind Tech Res Inst DES chip processor capable of executing data encryption standard (DES) operation
US6219791B1 (en) * 1998-06-22 2001-04-17 Motorola, Inc. Method and apparatus for generating and verifying encrypted data packets
US7096370B1 (en) 1999-03-26 2006-08-22 Micron Technology, Inc. Data security for digital data storage
US6857076B1 (en) * 1999-03-26 2005-02-15 Micron Technology, Inc. Data security for digital data storage
US7996670B1 (en) 1999-07-08 2011-08-09 Broadcom Corporation Classification engine in a cryptography acceleration chip
EP1224533B1 (de) * 1999-10-20 2004-01-02 AEP Systems Limited Kryptographischer verschneller
US7184549B2 (en) * 2000-01-14 2007-02-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
DE60042062D1 (de) * 2000-01-14 2009-06-04 Mitsubishi Electric Corp Verfahren und vorrichtung zur verschlüsselung oder entschlüsselung und rechnerlesbares medium zur aufzeichnung des programmes
US6983366B1 (en) * 2000-02-14 2006-01-03 Safenet, Inc. Packet Processor
US6990387B1 (en) * 2000-05-18 2006-01-24 Intel Corporation Test system for identification and sorting of integrated circuit devices
JP2002261751A (ja) * 2001-03-02 2002-09-13 Hitachi Ltd 暗号処理方法
US7526795B2 (en) * 2001-03-27 2009-04-28 Micron Technology, Inc. Data security for digital data storage
KR20020087332A (ko) * 2001-05-14 2002-11-22 최병윤 대칭키 암호 알고리즘의 모듈화된 ecb, cbc, cfb, ofb모드 구현 회로
JP4761652B2 (ja) * 2001-06-04 2011-08-31 ルネサスエレクトロニクス株式会社 データ暗号化回路
US7006627B2 (en) * 2001-09-28 2006-02-28 Tarari, Inc. Cipher block chaining mode in encryption/decryption processing
EP1454260B1 (de) * 2001-10-17 2005-06-01 Infineon Technologies AG Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
WO2003034649A2 (de) * 2001-10-17 2003-04-24 Infineon Technologies Ag Verfahren und vorrichtung zum absichern einer berechnung in einem kryptographischen algorithmus
JP4045777B2 (ja) * 2001-10-30 2008-02-13 株式会社日立製作所 情報処理装置
KR100445288B1 (ko) * 2001-11-17 2004-08-21 에노바 테크놀로지 코퍼레이션 데이터저장을 위한 암호화-암호해독 장치
FR2840083A1 (fr) * 2002-05-24 2003-11-28 St Microelectronics Sa Test d'un algorithme execute par un circuit integre
KR100528890B1 (ko) * 2002-06-26 2005-11-22 한국전자통신연구원 다양한 인터페이스를 갖는 고속 블럭 암호 장치 및 그구동 방법
US7412053B1 (en) 2002-10-10 2008-08-12 Silicon Image, Inc. Cryptographic device with stored key data and method for using stored key data to perform an authentication exchange or self test
US7539304B1 (en) * 2002-11-18 2009-05-26 Silicon Image, Inc. Integrated circuit having self test capability using message digest and method for testing integrated circuit having message digest generation circuitry
US7434043B2 (en) * 2002-12-18 2008-10-07 Broadcom Corporation Cryptography accelerator data routing unit
US20040123123A1 (en) * 2002-12-18 2004-06-24 Buer Mark L. Methods and apparatus for accessing security association information in a cryptography accelerator
US20040123120A1 (en) * 2002-12-18 2004-06-24 Broadcom Corporation Cryptography accelerator input interface data handling
US7568110B2 (en) 2002-12-18 2009-07-28 Broadcom Corporation Cryptography accelerator interface decoupling from cryptography processing cores
US7529368B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7542566B2 (en) * 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7529367B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US20040230813A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Cryptographic coprocessor on a general purpose microprocessor
DE10328860B4 (de) * 2003-06-26 2008-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Verschlüsseln von Daten
US7092906B1 (en) * 2004-03-12 2006-08-15 Xilinx, Inc. Parallel keystream decoder
US7543158B2 (en) * 2004-03-23 2009-06-02 Texas Instruments Incorporated Hybrid cryptographic accelerator and method of operation thereof
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
US7725719B2 (en) * 2005-11-08 2010-05-25 International Business Machines Corporation Method and system for generating ciphertext and message authentication codes utilizing shared hardware
KR100720525B1 (ko) * 2005-12-28 2007-05-22 동부일렉트로닉스 주식회사 Aes코어를 포함하는 집적회로 및 aes코어 검증용래퍼
US8320556B1 (en) * 2006-09-28 2012-11-27 Rockwell Collins, Inc. Method to allow cryptographic processing of messages without sanitizing the cryptographic processor between messages
US7822207B2 (en) * 2006-12-22 2010-10-26 Atmel Rousset S.A.S. Key protection mechanism
US8594322B2 (en) * 2007-07-10 2013-11-26 Stmicroelectronics S.R.L. Encoding/decoding apparatus
JP5228803B2 (ja) * 2008-10-30 2013-07-03 富士通セミコンダクター株式会社 共通鍵ブロック暗号におけるスワップ回路及び、それを有する暗号化・復号化回路
US8661536B2 (en) * 2010-03-17 2014-02-25 Microsoft Corporation Side channel attack analysis
US9355279B1 (en) 2013-03-29 2016-05-31 Secturion Systems, Inc. Multi-tenancy architecture
US9317718B1 (en) * 2013-03-29 2016-04-19 Secturion Systems, Inc. Security device with programmable systolic-matrix cryptographic module and programmable input/output interface
US10157282B2 (en) * 2013-12-16 2018-12-18 International Business Machines Corporation Multiband encryption engine and a self testing method thereof
US9363276B2 (en) * 2014-10-08 2016-06-07 Corsec Security, Inc. Method and system for testing and validation of cryptographic algorithms
US11283774B2 (en) 2015-09-17 2022-03-22 Secturion Systems, Inc. Cloud storage using encryption gateway with certificate authority identification
US11463236B2 (en) * 2016-12-09 2022-10-04 Cryptography Research, Inc. Programmable block cipher with masked inputs

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432848A (en) * 1994-04-15 1995-07-11 International Business Machines Corporation DES encryption and decryption unit with error checking

Also Published As

Publication number Publication date
KR970012163A (ko) 1997-03-29
US5631960A (en) 1997-05-20

Similar Documents

Publication Publication Date Title
DE19635115A1 (de) Verfahren zum Prüfen einer kryptographischen Einrichtung
DE68927755T2 (de) System zur sicheren chiffrierschlüsselverarbeitung
DE69736148T2 (de) Verfahren und Einrichtung zur Datenverschlüsselung
DE68926670T2 (de) Kryptographisches verfahren und vorrichtung mit elektronisch wiederverwendbarem algorithmus
EP1246043B1 (de) Verfahren zur Übertragung von Daten über einen Datenbus
DE60105788T2 (de) AES Verschlüsselungsschaltung
DE2715631C2 (de) Verschlüsselung und Absicherung von Daten
EP0986872B1 (de) Vorrichtung zur durchführung eines blockchiffrierverfahrens
DE60117255T2 (de) Verbessern des durchsatzes von des-hardware für kurze operationen
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
WO2005036406A1 (de) Entschlüsselung bzw. verschlüsselung bei schreibzugriffen auf einen speicher
DE69119844T2 (de) Chiffriergerät
CH656761A5 (de) Datenuebertragungsanlage, die eine verschluesselungs/entschluesselungs-vorrichtung an jedem ende wenigstens einer datenverbindung aufweist.
DE102007052656A1 (de) Digital-Verschlüsselungs-Hardware-Beschleuniger
WO2005043396A2 (de) Wortindividuelle schlüsselerzeugung
DE3702520A1 (de) Verfahren und anordnung zur durchfuehrung einer schluesselaenderung ueber eine kryptographisch geschuetzte nachrichtenverbindung
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE3841370A1 (de) Verfahren und vorrichtung fuer eine crc-berechnung
EP0976221B1 (de) Verfahren und anordnung zur bildung und überprüfung einer prüfsumme für digitale daten, die in mehrere datensegmente gruppiert sind
EP1080454B1 (de) Zugriffsgeschützter datenträger
DE10232348A1 (de) Integrierte Halbleiterschaltung mit interner Busdatenübertragung und zugehöriges Datenübertragungsverfahren
EP3576001A1 (de) Computerimplementiertes verfahren zum übergeben eines datenstrings von einer anwendung an eine datenschutzeinrichtung
DE3705736A1 (de) Verfahren zum sichern von programmen und zur integritaetskontrolle gesicherter programme
DE3138698A1 (de) Verfahren zur potenzierung grosser binaerzahlen in einer restklasse modulo n, insbesondere zur verschluesselung und entschluesselung digital dargestellter nachrichten
DE102018208066A1 (de) Datenverarbeitungseinrichtung und Betriebsverfahren hierfür

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal