DE19635115A1 - Verfahren zum Prüfen einer kryptographischen Einrichtung - Google Patents
Verfahren zum Prüfen einer kryptographischen EinrichtungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing 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)
Ci = E (Pi)
Elektronische Codebuchentschlüsselung (ECB)
Pi = D (Ci).
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)
Ci = E (Pi XOR Ci-1)
Entschlüsselung mit Verkettungsmodus der verschlüsselten Blöcke (CBC)
Pi = D (Ci) XOR Ci-1)
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
Ci = E (Ci-1) XOR Pi
Entschlüsselung mit Rückkopplungsmodus der verschlüsselten Blöcke (CFB)
Pi = E (Ci-1) XOR Ci.
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
Ci = Ei (IV) XOR Pi
Entschlüsselung mit Ausgangsrückkopplungsmodus (OfB)
Pi = Ei (IV) XOR Ci.
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:
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
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,
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.
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.
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)
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)
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 |
-
1995
- 1995-08-31 US US08/521,787 patent/US5631960A/en not_active Expired - Lifetime
-
1996
- 1996-08-29 KR KR1019960036262A patent/KR970012163A/ko active Search and Examination
- 1996-08-30 DE DE19635115A patent/DE19635115A1/de not_active Withdrawn
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 |