DE19724072A1 - Vorrichtung zur Durchführung eines Blockchiffrierverfahrens - Google Patents

Vorrichtung zur Durchführung eines Blockchiffrierverfahrens

Info

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
Application number
DE19724072A
Other languages
English (en)
Other versions
DE19724072C2 (de
Inventor
Peter Dr Ing Windirsch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Deutsche Telekom AG
Original Assignee
Deutsche Telekom AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to DE19724072A priority Critical patent/DE19724072C2/de
Application filed by Deutsche Telekom AG filed Critical Deutsche Telekom AG
Priority to CA002292575A priority patent/CA2292575C/en
Priority to JP50137999A priority patent/JP2002508851A/ja
Priority to DE59805323T priority patent/DE59805323D1/de
Priority to US09/445,337 priority patent/US6760439B1/en
Priority to EP98925591A priority patent/EP0986872B1/de
Priority to AT98925591T priority patent/ATE223127T1/de
Priority to PCT/EP1998/002803 priority patent/WO1998057461A1/de
Publication of DE19724072A1 publication Critical patent/DE19724072A1/de
Application granted granted Critical
Publication of DE19724072C2 publication Critical patent/DE19724072C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

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.
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.
Für das dritte Register 27 gilt:
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.
DE19724072A 1997-06-07 1997-06-07 Vorrichtung zur Durchführung eines Blockchiffrierverfahrens Expired - Fee Related DE19724072C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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