DE19724072A1 - Vorrichtung zur Durchführung eines Blockchiffrierverfahrens - Google Patents
Vorrichtung zur Durchführung eines BlockchiffrierverfahrensInfo
- Publication number
- DE19724072A1 DE19724072A1 DE19724072A DE19724072A DE19724072A1 DE 19724072 A1 DE19724072 A1 DE 19724072A1 DE 19724072 A DE19724072 A DE 19724072A DE 19724072 A DE19724072 A DE 19724072A DE 19724072 A1 DE19724072 A1 DE 19724072A1
- Authority
- DE
- Germany
- Prior art keywords
- input
- data
- output
- register
- arithmetic unit
- 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.)
- Granted
Links
Classifications
-
- 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/04—Masking or blinding
-
- 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
Description
Die Erfindung betrifft eine Vorrichtung zur Durch
führung eines Blockchiffrierverfahrens mit einem
Ver-/Entschlüsselungs-Rechenwerk, dem der zu chif
frierende Datenstrom der Wortbreite j≦n zugeführt
ist.
Kommerziell verfügbare beziehungsweise im akademi
schen Bereich entwickelte Kryptochips für Block
chiffrierverfahren (wie zum Beispiel dem IDEA- oder
DES-Kryptoalgorithmus) implementieren lediglich ei
ne Untermenge der im ISO-10116 Standard definierten
Betriebsarten (ECB, CBC, CBC-MAC, CFB, OFB; die
letzten beiden Betriebsarten sind dazu noch mit un
terschiedlichen Plain- beziehungsweise Ciphertext-
Wortbreiten j definiert) beziehungsweise stellen
keine Architektur zur Verfügung, auf der verschie
dene Ver-/Entschlüsselungsbetriebsarten für unter
schiedliche Datenströme voreinander unabhängig und
gleichzeitig abgearbeitet werden können.
Die Aufgabe der vorliegenden Erfindung besteht des
halb darin, eine Vorrichtung zum Ausführen eines
Blockchiffrierverfahrens vorzusehen, die unter
schiedliche Datenströme voneinander unabhängig und
gleichzeitig abarbeitet.
Diese Aufgabe wird durch eine Vorrichtung gelöst,
die die Merkmale des Anspruchs 1 aufweist.
Dadurch, daß das Rechenwerk mehrere Ver-/Entschlüs
selungselemente umfaßt, die jeweils einer Stufe ei
ner Rechenpipeline entsprechen, läßt sich ein Re
chenwerk aufbauen, das unterschiedliche Datenströme
unabhängig voneinander abarbeiten kann. Dabei ent
steht eine vollständige Unabhängigkeit der Be
triebsarten in den einzelnen Stufen der Rechenpipe
line.
Durch die p-stufige Rechenpipeline werden Hardware-
Ressourcen zur gleichzeitigen Bearbeitung von bis
zu p voneinander unabhängigen Datenströmen bereit
gestellt, die als physikalische Kanäle bezeichnet
werden sollen.
Durch die Unabhängigkeit der physikalischen Kanäle
lassen sich unabhängige, logische Kanäle einrichten
und auf die physikalischen Kanäle abbilden, wobei
die Anzahl der logischen Kanäle die Anzahl der phy
sikalischen Kanäle übersteigen kann und die Nutzung
der physikalischen Kanäle durch die logischen Kanä
le im Zeitmultiplexbetrieb erfolgt. Ein solcher lo
gischer Kanal ist charakterisiert durch einen Da
tenstrom zur Ver-/Entschlüsselung der jeweiligen
Betriebsart sowie dem dazugehörigen Schlüssel und
gegebenenfalls einem Start-/Initialisierungswert - Zur
besseren Unterscheidung werden im folgenden die lo
gischen Kanäle auch als Kontexte bezeichnet.
Vorteilhafte Ausgestaltungen der Erfindung ergeben
sich aus den Unteransprüchen.
Mit der erfindungsgemäßen Vorrichtung ist die Rea
lisierung von ISO-10116 Betriebsarten bei Ver
schlüsselungsverfahren möglich, wobei die Rechen
pipeline zur Durchführung der Ver-/Entschlüsse
lungsoperation in mehreren Runden betrieben wird.
Als Verschlüsselungsverfahren lassen sich beispiel
haft das IDEA-(International Data Encryption Algo
rithm) oder das DES-(Data Encryption Stan
dard) Verfahren nennen.
Ein weiterer Vorteil der erfindungsgemäßen Vorrich
tung ist darin zu sehen, daß keinerlei Einschrän
kungen für die beim Kontextwechsel auftretenden
Kombinationen von vorhergehender Betriebsart (bei
einem auszulagernden Kontext) und nachfolgender Be
triebsart (beim neu zu initialisierenden Kontext)
zu beachten sind.
Durch entsprechende Ausgestaltung der Vorrichtung
auf konfliktfreie Datenübertragungswege bei gleich
zeitigem Abschluß des Betriebes in einem Kontext
(Weiterleitung und Sicherung der Ergebnisse bezie
hungsweise des Startwerts zum Wiederaufsetzen des
Ver-/Entschlüsselungsverfahrens im nun beendeten
Kontext) und der Aufnahme des Betriebes im neuen
Kontext wird keine zusätzliche Verzögerung bei ei
nem Kontextwechsel benötigt.
Die ohne zusätzliche Verzögerungen durchgeführten
Kontextwechsel werden ermöglicht durch einen den
Betrieb überlappenden Subschlüssel- oder Schlüssel
wechsel. Dabei erfolgt das Laden der für den neuen
Kontext benötigten Subschlüssel beziehungsweise
Schlüssel in den den Ver-/Entschlüsselungselementen
zugeordneten Speicherelementen derart, daß vom der
zeit noch aktiven Kontext bereits abgearbeitete
Schlüssel in den Speicherelementen überschrieben
werden.
Sämtliche Datenpfade außerhalb des Rechenwerks sind
im normalen Betrieb (Beginn/Fortführung/Ende einer
weiteren Ver/Entschlüsselung in einem gerade akti
ven Kontext ohne unmittelbar vorherigem/nachfol
gendem Kontextwechsel) für die Dauer einer Taktpe
riode einem Kanal zugeordnet. Bei einem Kon
textwechsel (alter logischer Kanal wird beendet,
dessen neu berechneter Startwert wird außerhalb der
vorliegenden Vorrichtung für eine Wiederaufnahme
des Kontextes abgelegt; der neue logische Kanal
wird initialisiert und beginnt im gleichen Takt die
Abarbeitung) hingegen sind gleichzeitig der alte,
auszulagernde Kontext (im Ausgangsbereich der Vor
richtung) und der neue, einzulagernde Kontext (im
Eingangsbereich der Vorrichtung) aktiv.
Durch die Mitführung von Data-Valid-Informationen
zur Charakterisierung der in einer Pipelinestufe
befindlichen Daten wird ein fort laufender Betrieb
auch in dem Fall gewährleistet, daß aufgrund unter
schiedlicher Datenraten in den verschiedenen akti
ven Kontexten zweitweise für einen oder mehrere Ka
näle keine gültigen Eingangsdaten bereitstehen. Die
Rechenpipeline wird in diesem Fall nicht angehal
ten, sondern läuft unter Markierung des/der Kanäle
ohne gültige Eingangsdaten weiter. Die Mitführung
von Valid-Data-Bits und der Betriebsart in jedem
Kanal der Pipeline (beziehungsweise in separater
Lookup-Table) ist erforderlich zur bedingten Spei
cherung von Zwischen-Ergebnissen in den vorhandenen
Registerelementen beziehungsweise in einem am Da
tenausgang angeschlossenen Datenpuffer sowie zur
Festlegung der vom Kanal verwendeten Datenpfade.
Die Erfindung wird nun anhand eines Ausführungsbei
spiels mit Bezug auf die Zeichnung näher erläutert.
Dabei zeigt die einzige Figur ein Blockdiagramm ei
ner Vorrichtung zur Durchführung eines Blockchif
frierverfahrens.
Eine in der Figur dargestellte Vorrichtung 1 zur
Durchführung eines Blockchiffrierverfahrens umfaßt
ein Rechenwerk 3, das das Herz der Ver-/Entschlüs
selung darstellt. Das Rechenwerk 3 selbst besteht
aus einer Anzahl von p Rechenwerkeinheiten 5, die
jeweils zur Ausführung einer Ver-/Entschlüsse
lungs(-teil-)funktion ausgebildet sind. Auf die in
terne Struktur dieser Rechenwerkeinheiten 5 soll an
dieser Stelle jedoch nicht eingegangen werden.
Die in der Figur gezeigten, unabhängig voneinander
arbeitenden Rechenwerkeinheiten 5 bilden eine Re
chenwerkpipeline, bei der die Ver-/Entschlüsselung
in mehreren Schritten und falls erforderlich in
mehreren Durchläufen erfolgt.
Der zu ver-/entschlüsselnde Datenstrom wird einem
Dateneingang 7 der Vorrichtung 1 zugeführt. Dieser
Datenstrom wird durch eine Folge von Datenwörtern
der Wortbreite j≦n Bits gebildet, die im folgenden
auch als Datensignale bezeichnet werden. Bei den
Ver-/Entschlüsselungen werden jeweils nur die j
niederwertigsten Bits des Eingangsdatenstroms ver
arbeitet. Die höchstwertigen (n-j) Bits werden beim
Ver-/Entschlüsselungsprozeß nicht berücksichtigt
und können beispielsweise der Aufnahme unverschlüs
selt zu übertragenden Steuerinformationen dienen.
Die am Dateneingang liegenden Datensignale werden
einem Eingang eines Multiplexers 9 zugeführt. Das
Ausgangssignal der Wortbreite n des 3 : 1 Multiple
xers 9 wird einem Exklusiv-Oder-Gatter 11 zuge
führt, dessen Ausgang mit der ersten Stufe 5 des
Rechenwerks 3 verbunden ist. Das zur Verknüpfung im
Exklusiv-Oder-Gatter 11 notwendige zweite Eingangs
signal liefert ein 2 : 1 Multiplexer 13 der Wortbrei
te n. Das Exklusiv-Oder-Gatter verknüpft die beiden
n Bits umfassenden Eingangssignale bitweise zu ei
nem Ausgangssignal gleicher Wertbreite.
Dieser Multiplexer 13 wählt eines aus zwei anlie
genden Eingangssignalen aus, wobei eines der beiden
Eingangssignale einen konstanten Wert, im vorlie
genden Ausführungsbeispiel den Bitvektor 0 mit ei
ner Wortbreite n Bits besitzt. Das andere Eingangs
signal liefert entweder ein erstes Register 15 oder
ein zweites Register 17.
Bei dem ersten Register 15 handelt es sich um einen
Speicher, der eine Anzahl von p Datenworte der
Wortbreite n Bits abspeichern kann. Zur Erhöhung
der Flexibilität ist es auch denkbar, daß das erste
Register 15 unterschiedliche Wortbreiten am Eingang
(beispielsweise n, n/2, . . . Bits) und am Ausgang (n
Bits) aufweist, wobei im Register die Umsetzung der
Eingangswortbreite auf die Ausgangswortbreite n
Bits erfolgt. Das erste Register 15 selbst dient
zur Aufnahme von Start-/Initialisierungswert bei
den Betriebsarten CBC (Cipher Block Chaining), CFB
(Cipher Feed-Back) und OFB (Output Feed-Back). Eine
genaue Erläuterung dieser Betriebsarten befindet
sich in ISO/IEC 10116, 1991 (E), "Information
Processing-Modes of Operation for n-Bit Block Ci
pher Algorithm", International Organisation for
Standardization, so daß an dieser Stelle nicht wei
ter auf diese Verfahren eingegangen werden muß.
Das zweite Register 17 ist ebenfalls als Speicher
ausgebildet, wobei eine Anzahl von p Datenworten
mit einer Wortbreite von n Bits gespeichert werden
kann. Im Gegensatz zu dem ersten Register 15 be
sitzt das zweite Register 17 zwei Ausgänge 19.1,
19.2, wobei der Ausgang 19.1 mit dem Eingang des
Multiplexers 13 verbunden ist. Das zweite Register
17 dient zur Aufnahme von Dateneingangswerten be
ziehungsweise Rückkopplungswerten bei den zu dem
ersten Register 15 genannten Betriebsarten.
An dem oberen Ausgang 19.1 läßt sich entweder der
adressierte gespeicherte Wert oder der am Eingang
des zweiten Registers 17 anliegende Eingangswert
abgreifen. Dagegen läßt sich am Eingang 19.2 ledig
lich der adressierte gespeicherte Wert auslesen.
Das zweite Register 17 ist desweiteren so ausge
legt, daß gleichzeitig mit dem Auslesen eines Da
tensignals ein nachfolgend zu speicherndes Datensi
gnal in das Register übernehmbar ist.
Obgleich in der Figur der Ausgang des ersten Regi
sters 15 und der Ausgang 19.1 des zweiten Registers
17 zusammengeführt sind, werden die beiden gespei
cherten Werte der Register 15, 17 wahlweise an den
Eingang des Multiplexers 13 übertragen. Dazu sind
die beiden Register 15, 17 entweder mit einem soge
nannten Tri-State-Treiber versehen, bei dem der
Ausgang auf einen hochohmigen Wert geschaltet wer
den kann. Alternativ hierzu läßt sich jedoch auch
durch Verwendung eines in der Figur nicht darge
stellten 2 : 1 Multiplexers eine entsprechende
Signalauswahl erzielen.
Dem ersten Register 15 wird ein Start-/Initialisie
rungssignal über einen Eingang 21 zugeführt. Dem
zweiten Register 17 wird ein Eingangssignal zuge
führt, das von einem 3 : 1 Multiplexer 23 aus drei
Eingangssignalen ausgewählt wird. Eines der Ein
gangssignale ist das Ausgangssignal des Multiple
xers 9, ein weiteres Eingangssignal ist das Aus
gangssignal des ersten Registers 15 beziehungsweise
das am Ausgang 19.1 anliegende Ausgangssignal des
zweiten Registers 17. Bei dem dritten Eingangs
signal des Multiplexers 23, der im übrigen eben
falls Datensignale der Wortbreite n verarbeitet,
handelt es sich um ein rückgekoppeltes Signal R,
das nachfolgend noch näher erläutert wird.
Dieses rückgekoppelte Signal R liegt im übrigen
auch an einem Eingang des Multiplexers 9 an. Bei
dem dritten und damit letzten Eingangssignal des
Multiplexers 9 handelt es sich um einen konstanten
Bitvektor, vorzugsweise mit dem Wert 0.
Das rückgekoppelte Signal R wird ebenfalls einem
weiteren 2 : 1 Multiplexer 25 der Wortbreite n als
ein Eingangssignal geführt. Das zweite Eingangs
signal des Multiplexers 25 bildet das am Ausgang
19.2 des zweiten Registers 17 anliegende Signal.
Das Ausgangssignal des Multiplexers 25 wird dem
Eingang eines dritten Registers 27 zugeführt. Das
dritte Register 27 ist ebenfalls als Speicher aus
gebildet, der eine Anzahl von p Datenworten der
Wortbreite n Bit abspeichern kann, wobei wie das
erste Register 15 unterschiedliche Wortbreiten am
Eingang (n Bits) und am Ausgang (beispielsweise n,
n/2, . . . Bits) vorliegen können.
Das dritte Register 27 dient zur Aufnahme des be
rechneten Initialisierungswertes für Folge-Ver-
/Entschlüsselungen für jene Betriebsarten, die im
Zusammenhang mit dem ersten Register 15 erwähnt
wurden. Der Initialisierungswert beziehungsweise
das Initialisierungssignal wird in dem dritten Re
gister 27 gepuffert und bei einem Kontextwechsel
hieraus ausgelesen und über den Ausgang 28 der Vor
richtung 1 einem externen Puffer zugeführt. Sobald
der beendete Kontext wieder fortgesetzt wird, wird
der gepufferte Initialisierungswert über den Ein
gang 21 als Startwert dem ersten Register 15 zur
Verfügung gestellt. Dies ist durch eine gestrichel
te Linie L in der Figur veranschaulicht.
In der Figur ist weiterhin ein 2 : 1 Multiplexer 29
zu erkennen, dem einerseits das am Ausgang 19.1 des
zweiten Registers 17 anliegende Datensignal und
desweiteren das am Dateneingang 7 anliegende Daten
signal zugeführt ist. Aus diesen beiden Eingangs
signalen wählt der Multiplexer 29 ein Datensignal
aus und führt dieses einem temporären Register 31
als Eingangssignal zu. Dieses Register ist als
Speicher zur Speicherung einer Anzahl von p Daten
signalen der Wortbreite n Bit ausgebildet und dient
der Aufnahme eines Dateneingangs- oder Initialisie
rungssignals für die Dauer einer Ver-/Entschlüs
selung. Das gespeicherte Datensignal des temporären
Registers 31 wird als Eingangssignal einem 2 : 1 Mul
tiplexer 33 zugeführt, dessen zweiter Eingang mit
einem konstanten Bitvektor - im vorliegenden Ausfüh
rungsbeispiel mit dem Wert 0 - beaufschlagt ist. Das
Ausgangssignal des Multiplexers 33 wird einem Ex
klusiv-Oder-Gatter 35 zur Verknüpfung mit einem
weiteren Eingangssignal zugeführt, das von einer
Auswahlvorrichtung 37 bereitgestellt wird. Das Ein
gangssignal dieser Auswahlvorrichtung 37 stellt das
Ausgangssignal der letzten Stufe 5.p des Rechen
werks 3 dar.
Die Auswahlvorrichtung 37 dient dazu, aus dem n
Bits umfassenden Eingangswert die j höchstwertigen
Bitstellen herauszugreifen und am Ausgang in die j
niederwertigsten Bitstellen einzusetzen. Die übri
gen (n-j) höchstwertigen Stellen des Ausgangswertes
werden mit dem Wert 0 gefüllt. Somit realisiert die
Auswahlvorrichtung 37 eine Verschiebung des Ein
gangswertes um (n-j) Stellen.
Die von der Auswahlvorrichtung 37 ausgeführte Funk
tion SV läßt sich wie folgt darstellen:
out[n-1 : 0]=SV(j,in[n-1 : 0])={zero[n-j-1 : 0],in[n-1 : n-j]}.
Hierbei wird für Datenleitungen beziehungsweise Da
tensignale der Breiten i die Notation [i-1 : 0] ver
wendet, wobei Bit [i-1] das höchstwertige Bit (MSB)
und Bit [0] das niederwertigste bit (LSB) bezeich
nen. Das Zeichen {} bezeichnet eine Konkatenation
von Datensignalen/Datenleitungen zu einem Bus.
Das Ausgangssignal des Exklusiv-Oder-Gatters 35
wird einer Maskierungsvorrichtung 39 zugeführt, die
das Eingangsdatensignal folgender Funktion MASK un
terzieht:
out[n-1 : 0]=MASK(j,in[n-1 : 0])={zero[n-j-1 : 0],in[j-1:0]}
oder bei Bedarf
out[n-1 : 0]=MASK(j,in[n-1 : 0])={in[n-1 : 0]}.
Das heißt in Worten, daß die höchstwertigen (n-j)
Bits auf 0 maskiert werden durch Konkatenation der
j niederwertigsten Bits des Eingangswertes mit dem
Ergebnis der Funktion zero[n-j-1 : 0], die einen
(n-j)-stelligen 0-Vektor liefert. Im vorliegenden Aus
führungsbeispiel läßt sich diese Maskierung ab
schalten, so daß auch die höchstwertigen (n-j)
Bits, die, wie bei der Beschreibung des Datenein
gangs 7 bereits angegeben, der Aufnahme beispiels
weise von unverschlüsselt zu übertragenden Steuer
informationen dienen können, unverändert zum Aus
gang der Maskierungsvorrichtung 39 übertragen wer
den. Das Ausgangssignal der Maskierungsvorrichtung
39 bildet dann das an einem Datenausgang 41 ab
greifbare Datenausgangssignal der Vorrichtung 1.
Zur Rückkopplung eines Ausgangssignals des Rechen
werks 3 ist ein 4 : 1 Multiplexer 43 vorgesehen, dem
als Eingangssignale die Ausgangssignale des Rechen
werks 3, der Auswahlvorrichtung 37, des Exklusiv-
Oder-Gatters 35 und des Multiplexers 33 zugeführt
sind. Aus diesen vier Eingangssignalen der Wort
breite n wählt der Multiplexer 43 ein Datensignal
aus und führt es einer Verschiebe- und Konkatenati
onsvorrichtung 45 als zweites Eingangssignal in2
zu. Das erste Eingangssignal in1 bildet das am Aus
gang 19.2 anliegende Datensignal des zweiten Regi
sters 17. Diese beiden Eingangssignale in1, in2
werden nun mittels der Funktion VK wie folgt mit
einander verknüpft:
out[n-1 : 0]=VK(j,k,in1[n-1 : 0],in2[n-1 : 0])=
{in1[n-k-1 : 0],one[k-j-1 : 0],in2[j-1 : 0]},
das heißt, daß eine Konkatenation der (n-k) nieder
wertigsten Bits des Eingangssignals in1, von (k-j)
1-Bits aus der Funktion one[k-j-1 : 0]) und der j nie
derwertigsten Bits von dem Eingangssignal in2
durchgeführt wird. Das Ausgangssignal der Verschie
be- und Konkatenationsvorrichtung 45 bildet dann
das bereits beschriebene rückgekoppelte Signal R.
Die Figur läßt noch erkennen, daß dem Rechenwerk 3
eine Speichervorrichtung 47 zugeordnet ist, wobei
diejenigen Rechenwerkeinheiten 5. . .5p mit der
Speichervorrichtung 47 verbunden sind, die zur
Durchführung ihrer Ver-/Entschlüsselungs(-teil-)
operation Schlüssel beziehungsweise Subschlüssel
benötigen. Die Speichervorrichtung 47 selbst dient
der Bereitstellung von zur Ver-/Entschlüsselung be
nötigten Schlüsseln beziehungsweise Subschlüsseln,
wobei sie bei einem wahlfreien Betrieb der p Pipe
linestufen Schlüssel oder Subschlüssel für minde
stens p Kontexte aufnehmen muß. Abhängig von der
Betriebsart im jeweiligen Kontext sind entweder die
im ISO-10116-Standard genannten E (Encryption) oder
D (Decryption) Subschlüssel beziehungsweise Schlüs
sel in der Speichervorrichtung 47 abzulegen. Zum
gleichzeitigen Auslesen (für die Ver-/Ent
schlüsselung) und Schreiben (für die Initialisie
rung eines neuen Kontextes über den Eingang 48)
sind zwei unabhängig voneinander betreibbare Spei
cherschnittstellen vorgesehen. Vorzugsweise handelt
es sich bei der Speichervorrichtung 47 um ein Dual-
Port-RAM (Random Access Memory, wiederbeschreibarer
Speicher mit wahlfreiem Zugriff).
Die Figur läßt nicht erkennen, daß zur Vermeidung
von Stillstandzeiten des Rechenwerks 3 ein soge
nanntes Data-Valid-Flag für jede der p Pipelinestu
fen 5 vorgesehen ist, welches angibt, ob in der
entsprechen Pipelinestufe gültige Daten vorhanden
sind und bearbeitet werden. Zum Ende einer Ver-
/Entschlüsselung wird eine Weiterleitung über den
Datenausgang 41 beziehungsweise Speicherung des Er
gebnisses in den Registern 17 und/oder 27 nur dann
durchgeführt, wenn die Daten am Ausgang der letzten
Pipelinestufe 5.p gültig waren. Die Data-Valid-
Flags begleiten die zugehörigen Daten auf deren Weg
durch das Rechenwerk 3.
Falls zu einem Zeitpunkt, zu dem für einen Kontext
Eingangsdaten erwartet werden, keine Eingangsdaten
vorliegen, wird das Rechenwerk nicht angehalten,
sondern nur das zugehörige Data-Valid-Flag auf
"Data-Invalid" gesetzt. Daten für diesen Kontext
können dann erst wieder nach einem vollständigen
Ver-/Entschlüsselungsdurchgang (nach r.p Takten,
wobei r die Zahl der durch den Verschlüsselungsal
gorithmus benötigten Runden (hier: Durchläufe eines
zu bearbeitenden Datums durch die Rechenwerkpipeli
ne 3) und p die Anzahl der Pipelinestufen darstel
len) entgegengenommen werden.
In der Figur sind der Übersicht wegen die Adreßlei
tungen zu den Registern 15, 17, 27 und 31 nicht
dargestellt. Sowohl die Lesezugriffe auf das erste
Register 15, das zweite Register 17 und das tempo
räre Register 31 als auch die Schreibzugriffe auf
das temporäre Register 31, das zweite Register 17
und das dritte Register 27 werden gemeinsam adres
siert. Die Adresse gibt dabei die Nummer i ∈ {1, 2. . .p}
des Kontextes an, dem die gesamte Struktur
außerhalb des Rechenwerks 3 während der betrachte
ten Periode zugeordnet ist.
Desweiteren sind zur Vereinfachung in der Figur le
diglich einzelne Leitungen dargestellt. Sie stehen
jedoch stellvertretend für Datenbusleitungen, die
sämtlich für eine Übertragung von Datenworten der
Wortbreite n Bits ausgelegt sind. Einzige Ausnahmen
hiervon können die Datenbusse vom Eingang 21 zum
ersten Register 15, vom Ausgang des dritten Regi
sters 27 zum Ausgang 28 sowie die Datenbusse für
die Subschlüssel beziehungsweise Schlüssel zwischen
dem Eingang 48 und der Speichervorrichtung 47 oder
zwischen dieser und der Rechenwerkpipeline 3 bil
den. Im übrigen wurden auch die Taktleitungen der
Übersicht wegen nicht dargestellt, die zur getakte
ten Übertragung der einzelnen Datenworte über die
Busleitungen und die entsprechende Verknüpfung in
den einzelnen Verknüpfungselementen notwendig sind.
Im folgenden soll nun auf die Funktion der Vorrich
tung 1 in den einzelnen Betriebsarten eingegangen
werden.
Während eines Taktes steht die gesamte Struktur be
ziehungsweise Architektur außerhalb des Rechenwerks 3
einem Kontext, das heißt einem virtuellen oder
logischen Kanal, zur Verfügung. Analog hierzu ist
im Rechenwerk 3 jeder Pipelinestufe 5 ein eigener
Kontext (virtueller Kanal) zugeordnet.
Wird ein Kontextwechsel vorgenommen, das heißt die
Abarbeitung eines Kontextes nach vollständiger Be
rechnung des Ergebnisses (ver-/entschlüsseltes Da
tum) beendet, dessen Ergebnisse zum Wiederaufsetzen
des Kontextes gesichert und ein neuer Kontext ge
startet, so ist der Ausgangsbereich der Architektur
dem beendeten Kontext und der Eingangsbereich der
Architektur dem gestarteten Kontext zugeordnet. Als
Ausgangsbereich werden die in der Figur mit den Be
zugszeichen 31, 33, 37, 39, 43, 45, 25, 35, und 27
gekennzeichneten Komponenten bezeichnet. Als Ein
gangsbereich werden die mit den Bezugszeichen 9,
11, 13, 29, 15, 17 und 31 sowie die zu deren Ver
bindung benötigten Busse beziehungsweise Datenlei
tungen bezeichnet. Zur Verdeutlichung ist in der
Figur jeder der Komponenten im Ausgangsbereich ein
A und im Eingangsbereich ein E zugeordnet.
Die zur Abarbeitung der Blockchiffrierung nach der
bereits genannten ISO-10116 benötigten Informatio
nen zur Konfiguration der Architektur sind, sor
tiert nach Betriebsarten, in der Tabelle am Ende
der Beschreibung angegeben. Die Eintragungen (I)
und (F) in der ersten Spalte der Tabelle kennzeich
nen die Ver-/Entschlüsselung des ersten Datenblocks
nach einem Kontextwechsel (I), beziehungsweise die
darauffolgenden Ver-/Entschlüsselungen (F) für wei
tere Datenblöcke im gleichen Kontext. Zu beachten
ist, daß bei einem Kontextwechsel in einem Kanal
das Ende der letzten Runde einer Ver-/Ent
schlüsselung zeitgleich mit dem Beginn der ersten
Runde (I) für den neuen Kontext ausgeführt wird.
Die erste Runde (I) bei einem neu initialisierten
Kontext wird erst bei verfügbaren Daten im Ein
gangspuffer gestattet. Bei Folgeoperationen im
gleichen Kontext wird die Konfiguration "Beginn 1.
Runde (F)" ausgewählt, die wiederum zeitgleich das
Ende der letzten Runde der vorigen Operation und
den Start der Nachfolgeoperation durchführt.
Als Beginn einer Runde wird die Bereitstellung al
ler Eingangswerte an den Eingängen des Rechenwerks
3, der Register 15, 17, 27 (soweit bei der jeweili
gen Betriebsart erforderlich) beziehungsweise des
temporären Registers 31 verstanden. Als Ende der
letzten Runde für einen Ver-/Entschlüsselungs
durchlauf gilt entsprechend die Weiterleitung der
Ergebnisse von den Ausgängen des Rechenwerks 3, den
Registern 15, 17, 27 beziehungsweise dem temporären
Register 31.
Die Bezeichnungen der Spalten geben die Bezugszei
chen der entsprechenden Komponenten in der Figur
an, die Spalteninhalte den durchgeschalteten Ein
gang bei Multiplexern, wobei die Eingänge mit den
Buchstaben A, B, C oder D bezeichnet sind, bezie
hungsweise das numerische Funktionsargument (bei
den Verschiebe- beziehungsweise Maskierungsvorrich
tungen 37, 39 oder 45) angeben. Die Elemente, die
den nicht besetzten Feldern zugeordnet sind, können
für die Sicherung des vorherigen beziehungsweise
die Bereitstellung des nachfolgenden Datensatzes
(gegebenenfalls in einem anderen Ver-/Entschlüs
selungsmodus) geeignet gesetzt werden.
Für die Schreibfunktionen des zweiten Registers 17
beziehungsweise des dritten Registers 27 gelten die
folgenden Abkürzungen:
WVO: write on valid pipeline output data; das heißt, eine Datenübernahme in das Register er folgt, falls gültige Daten am Ausgang des Re chenwerks 3 anliegen;
WVI: write on valid input buffer data; das heißt, eine Datenübernahme in das Register er folgt, falls am Dateneingang 7 gültige Ein gangsdaten bereitgestellt werden;
-: keine Datenübernahme.
WVO: write on valid pipeline output data; das heißt, eine Datenübernahme in das Register er folgt, falls gültige Daten am Ausgang des Re chenwerks 3 anliegen;
WVI: write on valid input buffer data; das heißt, eine Datenübernahme in das Register er folgt, falls am Dateneingang 7 gültige Ein gangsdaten bereitgestellt werden;
-: keine Datenübernahme.
Für das zweite Register 17 gilt darüber hinaus:
B: bypass; direkte kombinatorische Durchschal tung des Eingangs des zweiten Registers auf den Ausgang 19.1, gegebenenfalls mit zusätz licher Abspeicherung des Eingangswerts im zweiten Register, wenn gültige Eingangspuffer daten und Ausgangsdaten aus dem Rechenwerk 3 vorhanden sind.
B: bypass; direkte kombinatorische Durchschal tung des Eingangs des zweiten Registers auf den Ausgang 19.1, gegebenenfalls mit zusätz licher Abspeicherung des Eingangswerts im zweiten Register, wenn gültige Eingangspuffer daten und Ausgangsdaten aus dem Rechenwerk 3 vorhanden sind.
Für das dritte Register 27 gilt:
W_II: write register II output; das heißt, das Ausgangssignal des zweiten Registers 17 wird gespeichert.
W_II: write register II output; das heißt, das Ausgangssignal des zweiten Registers 17 wird gespeichert.
In das temporäre Register 31 werden in den betref
fenden Betriebsarten Werte nur übernommen, wenn
gültige Daten am Dateneingang anliegen.
Falls bei einem Kontextwechsel Schreibzugriffskon
flikte auf dem zweiten Register 17 auftreten (das
heißt sowohl für die alten als auch für den neuen
Kontext, müßten laut der Tabelle Schreibzugriffe
auf das zweite Register 17 erfolgen), wird nur der
Schreibzugriff des neuen Kontextes ausgeführt. Der
vom alten Kontext in das Register 17 zu speichern
de Wert könnte nicht mehr ausgewertet werden.
Das erste Register 15 beziehungsweise das dritte
Register 27 werden unabhängig vom Stand der Ver-
/Entschlüsselungsabarbeitung beschrieben (erstes
Register) beziehungsweise gelesen (drittes Regi
ster) und sind daher in der Tabelle nicht aufge
führt. Einzige Voraussetzung für deren Schreib-
(erstes Register) beziehungsweise Leseoperationen
(drittes Register) ist die rechtzeitige Bereitstel
lung beziehungsweise das rechtzeitige Auslesen der
Daten, bevor eine durch die auszuführende Ver-/oder
Entschlüsselung hervorgerufene Leseanforderung
(beim ersten Register) beziehungsweise Schreiban
forderung (beim dritten Register) vorliegt.
Mit Ausnahme der in der Praxis häufig verwendeten
und nicht in den ISO-Standard erfaßten Betriebsart
OFB_N_ISO-m Enc./Dec. (OFB-Betriebsart gemäß B.
Schneier: "Applied Crytography", 2nd Ed. 1995, John
Wiley & Sons, Inc.) entsprechen alle in der Tabelle
gemäß Fig. 2 genannten übrigen Betriebsarten den
im ISO-10116-Standard geführten Randbedingungen.
Für die Wortbreiten n und die Funktionsargumente k
beziehungsweise j sind in der Praxis n=64 und
k=j=64,8,7,1 häufig verwendete Werte.
Zur Verdeutlichung der in der Tabelle verwendeten
Nomenklatur soll nochmals anhand von zwei Beispie
len dessen Bedeutung erläutert werden.
Als erste Betriebsart ist in der Tabelle der ECB-
Enc./Dec. Modus angegeben. Hierbei wird der Eingang
A des Multiplexers 9, das heißt das Dateneingangs
signal am Dateneingang 7 weitergeleitet und am Ex
klusiv-Oder-Gatter 11 mit dem am Eingang B anlie
genden Signal des Multiplexers 13 verknüpft. Da
dieses Signal am Multiplexer 13 den konstanten Wert
0 aufweist, wird das Ausgangssignal des Multiple
xers 9, das heißt das Dateneingangssignal am Ein
gang 7 der ersten Stufe des Rechenwerks 3 zuge
führt. Sobald der erste Wert das Rechenwerk 3
durchlaufen hat und nicht wieder zurückgeführt wer
den soll, wird das Eingangssignal am Eingang B des
Multiplexers 33 ausgewählt. Da es sich hierbei um
einen konstanten Wert 0 handelt, wird das am Exklu
siv-Oder-Gatter 35 anliegende Signal unverändert
weitergeführt. Die beiden Buchstaben n in den Spal
ten 37 und 39 besagen, daß keine Veränderung, das
heißt Auswahl oder Maskierung, in den beiden Vor
richtungen 37 und 39 stattfindet.
Der nächste in der Tabelle angegebene Modus ist der
CBC-Enc. Modus. Hierbei werden in der ersten In
itialisierungsrunde die Signale an den Eingängen A
der Multiplexer 9 und 13 zum Exklusiv-Oder-Gatter
11 weitergeführt. Dort findet dann eine entspre
chende Verknüpfung des in dem ersten Register 15
abgespeicherten Start- beziehungsweise Initialisie
rungswertes und dem Dateneingangssignal statt, wo
bei das verknüpfte Signal dem Rechenwerk 3 zuge
führt wird. Anschließend werden zur Ver-/Ent
schlüssung die Signale an den Eingängen B der bei
den Multiplexer 33 und 43 und die Eingangssignale
an den Eingängen A der Multiplexer 23 und 25 wei
tergeleitet. Eine Veränderung des Datensignals
durch die Vorrichtungen 37, 39 oder 45 findet nicht
statt. Desweiteren wird das rückgeführte Signal R
in das zweite Register 17 sowie in das dritte Regi
ster 27 eingeschrieben. In der letzten Runde dieser
Betriebsart wird das rückgeführte Signal R in das
dritte Register 27 als Startwert für eine erneute
Kontextinitialisierung eingeschrieben. Eine Über
nahme dieses Datensignals in das zweite Register 17
erfolgt jedoch nicht.
Entsprechend sind auch die weiter in der Tabelle
angegebenen Betriebsarten zu verstehen.
Es zeigt sich also, daß sich durch die Unabhängig
keit der Pipelinestufen eine Vorrichtung realisie
ren läßt, die verschiedene Datenströme in verschie
denen Ver-/Entschlüsselungsbetriebsarten abarbeiten
kann.
Tabelle
Claims (16)
1. Vorrichtung zur Durchführung eines Blockchif
frierverfahrens mit einem Ver-/Entschlüsselungs-
Rechenwerk (3) , dem der zu chiffrierende Datenstrom
der Wortbreite n zugeführt ist, dadurch gekenn
zeichnet, daß das Rechenwerk (3) mehrere Ver-/Ent
schlüsselungselemente (5) umfaßt, die jeweils eine
Stufe einer Rechenpipeline bilden, wobei die Stufen
derart ausgebildet sind, daß sie unabhängig vonein
ander in unterschiedlichen Betriebsarten und mit
unterschiedlichen Schlüsseln arbeiten.
2. Vorrichtung nach Anspruch 1, dadurch gekenn
zeichnet, daß jedem Ver-/Entschlüsselungselement
(5), welches zur Durchführung seiner Ver-/Ent
schlüsselungs(-teil-)operation(en) Schlüssel bezie
hungsweise Subschlüssel benötigt, ein Speicherele
ment (47) zugeordnet ist, das zum Speichern eines
Schlüssels beziehungsweise eines Subschlüssels ge
eignet ist.
3. Vorrichtung nach Anspruch 2, dadurch gekenn
zeichnet, daß das Speicherelement (47) ein Dual-
Port-Speicher ist.
4. Vorrichtung nach einem der vorhergehenden An
sprüche, dadurch gekennzeichnet, daß dem Rechenwerk
(3) ein Exklusiv-Oder-Gatter (11) vorgeschaltet
ist, das eine bitweise Verknüpfung zweier Eingangs
worte der Wortbreite n durchführt.
5. Vorrichtung nach Anspruch 4, dadurch gekenn
zeichnet, daß ein Eingang des Exklusiv-Oder-Gatters
(11) mit einer ersten Multiplexer-Vorrichtung (9)
und der zweite Eingang mit einer zweiten Multiple
xer-Vorrichtung (13) verbunden ist, wobei der er
sten Multiplexer-Vorrichtung (9) der Eingangsdaten
strom zugeführt ist.
6. Vorrichtung nach Anspruch 5, dadurch gekenn
zeichnet, daß ein Eingang der zweiten Multiplexer-
Vorrichtung (13) mit einem Ausgang einer Zwischen
speichervorrichtung (15, 17) verbunden ist, die zur
Speicherung mehrerer Start- und Initialisierungs
werte für das Chiffrierverfahren sowie von Daten
eingang- und Rückkopplungswerten ausgebildet sind.
7. Vorrichtung nach Anspruch 6, dadurch gekenn
zeichnet, daß der Ausgang des Rechenwerks (3) mit
einer Auswertevorrichtung (33, 35, 37, 43, 39) verbun
den ist, die den ver-/entschlüsselten Datenstrom an
einem Ausgang bereitstellt und an einem weiteren
Ausgang Daten bereitstellt, die dem Eingang des Re
chenwerks rückgeführt sind.
8. Vorrichtung nach Anspruch 7, dadurch gekenn
zeichnet, daß die Auswertevorrichtung ein Auswahl
element (37) zur Auswahl einer Anzahl von Bits des
am Eingang liegenden Datenworts umfaßt, sowie ein
Exklusiv-Oder-Gatter (35) und ein Maskierungsele
ment (39), wobei der Datenstrom vom Ausgang des
Auswahlelements über das Exklusiv-Oder-Gatter (35)
und das Maskierungselement (39) zu einem Ausgang
geführt ist.
9. Vorrichtung nach Anspruch 8, dadurch gekenn
zeichnet, daß dem Exklusiv-Oder-Gatter (35) ein
weiteres Datensignal zugeführt ist.
10. Vorrichtung nach Anspruch 9, dadurch gekenn
zeichnet, daß die Auswahlvorrichtung ein Multiple
xer-Element (43) umfaßt, dem als Eingangssignale
die Ausgangssignale des Rechenwerks (3), des Aus
wahlelements (37) und des Exklusiv-Oder-Gatters
(35) sowie ein Eingangssignal des Exklusiv-Oder-
Gatters (35) zugeführt sind.
11. Vorrichtung nach Anspruch 6, dadurch gekenn
zeichnet, daß die Zwischenspeichervorrichtung zwei
Registerelemente (15, 17) umfaßt, die jeweils zum
Speichern mehrerer, vorzugsweise einer der Anzahl
der Stufen des Rechenwerks (3) entsprechenden An
zahl p, Datenworte der Wortbreite n ausgebildet
sind.
12. Vorrichtung nach Anspruch 11, dadurch gekenn
zeichnet, daß eines der beiden Registerelemente
(17) zwei Ausgänge (19) aufweist, wobei an einem
Ausgang (19.2) der adressierte gespeicherte Wert
und am anderen Ausgang (19.1) das Eingangssignal
des Registerelements oder der adressierte gespei
cherte Wert bereitgestellt ist.
13. Vorrichtung nach einem der vorhergehenden An
sprüche, dadurch gekennzeichnet, daß die Zwischen
speichervorrichtung ein drittes Registerelement
(27) umfaßt, das entweder das Ausgangssignal (19.2)
des zweiten Registerelements (17) oder das rückge
führte Signal (R) speichert.
14. Vorrichtung nach einem der vorhergehenden An
sprüche, dadurch gekennzeichnet, daß die Auswerte
vorrichtung ein weiteres Multiplexer-Element (33)
umfaßt, dessen Ausgang mit einem Eingang des Exklu
siv-Oder-Gatters (35) verbunden ist, und dessen
zweiter Eingang mit einem Zwischenspeicherelement
(31) verbunden ist, das das Ausgangssignal des
zweiten Registerelements (17) oder das Datenein
gangssignal zwischenspeichert.
15. Vorrichtung nach einem der vorhergehenden An
sprüche, dadurch gekennzeichnet, daß ein Verknüp
fungselement (45) vorgesehen ist, daß das Ausgangs
signal des Mulitplexerelements (43) und das Aus
gangssignal des zweiten Registerelements (17) ver
knüpft, und dieses Ausgangssignal einem Multiple
xerelement (9) zuführt, dessen Ausgang mit dem Ex
klusiv-Oder-Gatter (11) verbunden ist.
16. Vorrichtung nach einem der vorhergehenden An
sprüche, dadurch gekennzeichnet, daß das Rechenwerk
zur Ver-/Entschlüsselung von Daten der Wortbreite
j≦n ausgelegt ist, wobei die Daten der Wortbreite
n-j zur Aufnahme von unverschlüsselt zu übertragen
den Steuerinformationen dienen.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19724072A DE19724072C2 (de) | 1997-06-07 | 1997-06-07 | Vorrichtung zur Durchführung eines Blockchiffrierverfahrens |
JP50137999A JP2002508851A (ja) | 1997-06-07 | 1998-05-13 | ブロック符号化方法を実行するための装置 |
DE59805323T DE59805323D1 (de) | 1997-06-07 | 1998-05-13 | Vorrichtung zur durchführung eines blockchiffrierverfahrens |
US09/445,337 US6760439B1 (en) | 1997-06-07 | 1998-05-13 | Device for implementing a block-ciphering process |
CA002292575A CA2292575C (en) | 1997-06-07 | 1998-05-13 | Device used to implement a block cipher |
EP98925591A EP0986872B1 (de) | 1997-06-07 | 1998-05-13 | Vorrichtung zur durchführung eines blockchiffrierverfahrens |
AT98925591T ATE223127T1 (de) | 1997-06-07 | 1998-05-13 | Vorrichtung zur durchführung eines blockchiffrierverfahrens |
PCT/EP1998/002803 WO1998057461A1 (de) | 1997-06-07 | 1998-05-13 | Vorrichtung zur durchführung eines blockchiffrierverfahrens |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19724072A DE19724072C2 (de) | 1997-06-07 | 1997-06-07 | Vorrichtung zur Durchführung eines Blockchiffrierverfahrens |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19724072A1 true DE19724072A1 (de) | 1998-12-10 |
DE19724072C2 DE19724072C2 (de) | 1999-04-01 |
Family
ID=7831795
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19724072A Expired - Fee Related DE19724072C2 (de) | 1997-06-07 | 1997-06-07 | Vorrichtung zur Durchführung eines Blockchiffrierverfahrens |
DE59805323T Expired - Lifetime DE59805323D1 (de) | 1997-06-07 | 1998-05-13 | Vorrichtung zur durchführung eines blockchiffrierverfahrens |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE59805323T Expired - Lifetime DE59805323D1 (de) | 1997-06-07 | 1998-05-13 | Vorrichtung zur durchführung eines blockchiffrierverfahrens |
Country Status (7)
Country | Link |
---|---|
US (1) | US6760439B1 (de) |
EP (1) | EP0986872B1 (de) |
JP (1) | JP2002508851A (de) |
AT (1) | ATE223127T1 (de) |
CA (1) | CA2292575C (de) |
DE (2) | DE19724072C2 (de) |
WO (1) | WO1998057461A1 (de) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1161027A1 (de) * | 2000-01-14 | 2001-12-05 | Mitsubishi Denki Kabushiki Kaisha | Verfahren und vorrichtung zur verschlüsselung oder entschlüsselung und rechnerlesbares medium zur aufzeichnung des programmes |
WO2002101972A2 (en) * | 2001-06-08 | 2002-12-19 | Corrent Corporation | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
AU2003203427B2 (en) * | 2000-01-14 | 2004-09-23 | Mitsubishi Denki Kabushiki Kaisha | Encryptor, encrypting method, decryptor, decrypting method, and computer readable recording medium having program stored therein |
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 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60024941T8 (de) * | 1999-08-31 | 2006-08-10 | Matsushita Electric Industrial Co., Ltd., Kadoma | Verschlüsselungsverfahren und -Vorrichtung, Entschlüsselungsverfahren und -Vorrichtung |
JP2007184000A (ja) * | 2000-01-14 | 2007-07-19 | Mitsubishi Electric Corp | 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US7142671B2 (en) * | 2000-12-13 | 2006-11-28 | Broadcom Corporation | Methods and apparatus for implementing a cryptography engine |
US7502463B2 (en) * | 2000-12-13 | 2009-03-10 | Broadcom Corporation | Methods and apparatus for implementing a cryptography engine |
US7366300B2 (en) * | 2000-12-13 | 2008-04-29 | Broadcom Corporation | Methods and apparatus for implementing a cryptography engine |
US20030231766A1 (en) * | 2002-05-30 | 2003-12-18 | Bedros Hanounik | Shared control and information bit representing encryption key position selection or new encryption key value |
US7215768B2 (en) * | 2002-06-25 | 2007-05-08 | Intel Corporation | Shared new data and swap signal for an encryption core |
WO2004042561A2 (en) * | 2002-10-31 | 2004-05-21 | Lockheed Martin Corporation | Pipeline accelerator having multiple pipeline units and related computing machine and method |
US10572824B2 (en) | 2003-05-23 | 2020-02-25 | Ip Reservoir, Llc | System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines |
CA2759064C (en) | 2003-05-23 | 2017-04-04 | Washington University | Intellegent data storage and processing using fpga devices |
US7496753B2 (en) * | 2004-09-02 | 2009-02-24 | International Business Machines Corporation | Data encryption interface for reducing encrypt latency impact on standard traffic |
US7409558B2 (en) * | 2004-09-02 | 2008-08-05 | International Business Machines Corporation | Low-latency data decryption interface |
GB2426673B (en) * | 2005-05-27 | 2010-02-10 | Sony Uk Ltd | Data processing apparatus for performing a cryptographic method |
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 |
CN100369074C (zh) * | 2006-03-02 | 2008-02-13 | 西安西电捷通无线网络通信有限公司 | 一种实现sms4密码算法中加解密处理的方法 |
US8379841B2 (en) | 2006-03-23 | 2013-02-19 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
US7889861B2 (en) * | 2006-09-13 | 2011-02-15 | Michael Borza | Multiple sequential security key encryption-decryption |
US8594322B2 (en) * | 2007-07-10 | 2013-11-26 | Stmicroelectronics S.R.L. | Encoding/decoding apparatus |
WO2009029842A1 (en) * | 2007-08-31 | 2009-03-05 | Exegy Incorporated | Method and apparatus for hardware-accelerated encryption/decryption |
JP5228803B2 (ja) * | 2008-10-30 | 2013-07-03 | 富士通セミコンダクター株式会社 | 共通鍵ブロック暗号におけるスワップ回路及び、それを有する暗号化・復号化回路 |
US9752369B2 (en) | 2011-05-24 | 2017-09-05 | Overhead Door Corporation | Barrier operator mechanical transmission assembly |
TWI573427B (zh) * | 2011-09-12 | 2017-03-01 | 微晶片科技公司 | 具增強安全性之基於跳碼之系統 |
US10157282B2 (en) | 2013-12-16 | 2018-12-18 | International Business Machines Corporation | Multiband encryption engine and a self testing method thereof |
US11463236B2 (en) * | 2016-12-09 | 2022-10-04 | Cryptography Research, Inc. | Programmable block cipher with masked inputs |
WO2018119035A1 (en) | 2016-12-22 | 2018-06-28 | Ip Reservoir, Llc | Pipelines for hardware-accelerated machine learning |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4016203A1 (de) * | 1990-05-19 | 1991-11-21 | Rolf Prof Dr Trautner | Verfahren zur blockweisen chiffrierung von digitalen daten |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4078152A (en) * | 1976-04-26 | 1978-03-07 | International Business Machines Corporation | Block-cipher cryptographic system with chaining |
US4195200A (en) * | 1976-06-30 | 1980-03-25 | International Business Machines Corporation | Key controlled block-cipher cryptographic system employing a multidirectional shift matrix |
US4107458A (en) * | 1976-08-23 | 1978-08-15 | Constant James N | Cipher computer and cryptographic system |
US4377862A (en) * | 1978-12-06 | 1983-03-22 | The Boeing Company | Method of error control in asynchronous communications |
US4850019A (en) * | 1985-11-08 | 1989-07-18 | Nippon Telegraph And Telephone Corporation | Data randomization equipment |
US5671284A (en) * | 1996-04-16 | 1997-09-23 | Vlsi Technology, Inc. | Data encryptor having a scalable clock |
-
1997
- 1997-06-07 DE DE19724072A patent/DE19724072C2/de not_active Expired - Fee Related
-
1998
- 1998-05-13 AT AT98925591T patent/ATE223127T1/de not_active IP Right Cessation
- 1998-05-13 US US09/445,337 patent/US6760439B1/en not_active Expired - Lifetime
- 1998-05-13 CA CA002292575A patent/CA2292575C/en not_active Expired - Fee Related
- 1998-05-13 DE DE59805323T patent/DE59805323D1/de not_active Expired - Lifetime
- 1998-05-13 WO PCT/EP1998/002803 patent/WO1998057461A1/de active IP Right Grant
- 1998-05-13 EP EP98925591A patent/EP0986872B1/de not_active Expired - Lifetime
- 1998-05-13 JP JP50137999A patent/JP2002508851A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4016203A1 (de) * | 1990-05-19 | 1991-11-21 | Rolf Prof Dr Trautner | Verfahren zur blockweisen chiffrierung von digitalen daten |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1161027A1 (de) * | 2000-01-14 | 2001-12-05 | Mitsubishi Denki Kabushiki Kaisha | Verfahren und vorrichtung zur verschlüsselung oder entschlüsselung und rechnerlesbares medium zur aufzeichnung des programmes |
AU2003203427B2 (en) * | 2000-01-14 | 2004-09-23 | Mitsubishi Denki Kabushiki Kaisha | Encryptor, encrypting method, decryptor, decrypting method, and computer readable recording medium having program stored therein |
EP1161027A4 (de) * | 2000-01-14 | 2005-09-14 | Mitsubishi Electric Corp | Verfahren und vorrichtung zur verschlüsselung oder entschlüsselung und rechnerlesbares medium zur aufzeichnung des programmes |
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 |
EP1816782A1 (de) * | 2000-01-14 | 2007-08-08 | Mitsubishi Denki Kabushiki Kaisha | Verschlüsseler, Verschlüsselungsverfahren, Entschlüsseler, Entschlüsselungsverfahren und computerlesbares Aufzeichnungsmedium mit darauf gespeichertem Programm |
WO2002101972A2 (en) * | 2001-06-08 | 2002-12-19 | Corrent Corporation | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
WO2002101972A3 (en) * | 2001-06-08 | 2003-10-23 | Corrent Corp | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
US6937727B2 (en) | 2001-06-08 | 2005-08-30 | Corrent Corporation | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
Also Published As
Publication number | Publication date |
---|---|
EP0986872A1 (de) | 2000-03-22 |
CA2292575C (en) | 2007-01-09 |
CA2292575A1 (en) | 1998-12-17 |
JP2002508851A (ja) | 2002-03-19 |
DE19724072C2 (de) | 1999-04-01 |
DE59805323D1 (de) | 2002-10-02 |
ATE223127T1 (de) | 2002-09-15 |
US6760439B1 (en) | 2004-07-06 |
EP0986872B1 (de) | 2002-08-28 |
WO1998057461A1 (de) | 1998-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19724072C2 (de) | Vorrichtung zur Durchführung eines Blockchiffrierverfahrens | |
DE1951552C3 (de) | Speichereinrichtung mit Sicherung durch Schutzschlüssel | |
EP1668515B8 (de) | Wortindividuelle schlüsselerzeugung | |
DE2755273C2 (de) | ||
DE60121284T2 (de) | Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion | |
DE69736148T2 (de) | Verfahren und Einrichtung zur Datenverschlüsselung | |
DE102007052656A1 (de) | Digital-Verschlüsselungs-Hardware-Beschleuniger | |
DE2658065A1 (de) | Maschinelles chiffrieren und dechiffrieren | |
DE10345385A1 (de) | Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher | |
DE1499722B1 (de) | Einrichtung zur modifizierung von informationswoertern | |
DE19635115A1 (de) | Verfahren zum Prüfen einer kryptographischen Einrichtung | |
DE1499203B1 (de) | Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb | |
EP0012974A1 (de) | Verfahren zur Chiffrierung von Datenblöcken einer vorgegebenen Länge | |
DE3138698C2 (de) | ||
DE3501903A1 (de) | Im pipelinebetrieb arbeitende datenverarbeitungseinrichtung | |
DE60313059T2 (de) | Schieberegister | |
DE10051611B4 (de) | Verteiltes Multiplexerschema für eine Bi-Endian-Rotatorschaltung | |
DE2459476C3 (de) | ||
DE2459476A1 (de) | Schaltungsanordnung fuer nichtzyklische datenpermutationen | |
DE10352401A1 (de) | Verfahren zur Speicherung von Daten in einem Wahlzugriffspeicher und Verschlüsselungs- und Entschlüsselungsvorrichtung | |
DE1184122B (de) | Addiervorrichtung | |
AT515097B1 (de) | Verschlüsselungsverfahren und Pseudo-Zufallszahlengenerator | |
DE1499233C3 (de) | Kombinationsrechenanlage | |
DE2639806C2 (de) | Verfahren und Einrichtung zum Verschlüsseln oder Entschlüsseln von Datenblöcken in binärer Darstellung | |
DE3221819A1 (de) | Vorrichtung zur simulation eines schaltwerks mit hilfe eines rechners |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |