WO1998057461A1 - Vorrichtung zur durchführung eines blockchiffrierverfahrens - Google Patents

Vorrichtung zur durchführung eines blockchiffrierverfahrens Download PDF

Info

Publication number
WO1998057461A1
WO1998057461A1 PCT/EP1998/002803 EP9802803W WO9857461A1 WO 1998057461 A1 WO1998057461 A1 WO 1998057461A1 EP 9802803 W EP9802803 W EP 9802803W WO 9857461 A1 WO9857461 A1 WO 9857461A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
data
output
register
arithmetic unit
Prior art date
Application number
PCT/EP1998/002803
Other languages
English (en)
French (fr)
Inventor
Peter Windirsch
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
Application filed by Deutsche Telekom Ag filed Critical Deutsche Telekom Ag
Priority to CA002292575A priority Critical patent/CA2292575C/en
Priority to JP50137999A priority patent/JP2002508851A/ja
Priority to DE59805323T priority patent/DE59805323D1/de
Priority to EP98925591A priority patent/EP0986872B1/de
Priority to US09/445,337 priority patent/US6760439B1/en
Priority to AT98925591T priority patent/ATE223127T1/de
Publication of WO1998057461A1 publication Critical patent/WO1998057461A1/de

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

Definitions

  • the invention relates to a device for carrying out a block ciphering method with an encryption / decryption arithmetic unit to which the data stream to be ciphered is supplied with the word width i ⁇ n
  • the object of the present invention is therefore to provide a device for executing a block encryption method which processes different data streams independently of one another and simultaneously.
  • the arithmetic unit comprises a plurality of encryption / decryption elements, each of which corresponds to a stage of a computation pipeline, an arithmetic unit can be constructed which can process different data streams independently of one another. This creates complete independence of the operating modes in the individual stages of the computing pipeline.
  • the p-stage computing pipeline provides hardware resources for the simultaneous processing of up to p independent data streams, which are to be referred to as physical channels.
  • the independence of the physical channels allows independent, logical channels to be set up and mapped onto the physical channels, the number of logical channels being able to exceed the number of physical channels and the physical channels being used by the logical channels in time-division multiplexing.
  • a logical channel is characterized by a data stream for encrypting / decrypting the respective one Operating mode and the associated key and, if applicable, a start / initialization value.
  • the logical channels are also referred to as contexts in the following.
  • Another advantage of the device according to the invention can be seen in the fact that there are no restrictions to be observed for the combinations of previous operating mode (in the case of a context to be outsourced) and subsequent operating mode (in the context to be re-initialized) that occur when the context changes.
  • the context changes carried out without additional delays are made possible by a subkey or key change that overlaps the operation.
  • the subkeys or keys m required for the new context are loaded into the memory elements assigned to the encryption / decryption elements in such a way that keys m that have already been processed by the currently active context are overwritten to the memory elements.
  • All data paths outside the arithmetic unit are assigned to a channel for the duration of a clock period in normal operation (start / continuation / end of a further encryption / decryption in a currently active context without an immediate previous / subsequent context change).
  • start / continuation / end of a further encryption / decryption in a currently active context without an immediate previous / subsequent context change In the event of a context change (old logical channel is ended, its newly calculated start value is stored outside the present device for a resumption of the context; the new logical channel is initialized and processing begins in the same cycle), on the other hand, are the old context to be swapped out (in the exit area of the device) and the new context to be stored (in the entrance area of the device) active.
  • the invention will now be explained in more detail using an exemplary embodiment with reference to the drawing.
  • the single figure shows a block diagram of an apparatus for performing a block encryption method.
  • a device 1 shown in the figure for carrying out a block encryption method comprises an arithmetic unit 3 which represents the heart of the encryption / decryption.
  • the arithmetic unit 3 itself consists of a number of p arithmetic unit units 5, each of which is designed to perform an encryption / decryption (part) function.
  • the internal structure of these arithmetic logic units 5 will not be discussed here.
  • the arithmetic unit 5 shown in the figure and working independently of one another form a chenwerk pipeline, in which the encryption / decryption takes place in several steps and, if necessary, in several passes.
  • the data stream to be encrypted / decrypted is fed to a data input 7 of the device 1.
  • This data stream is formed by a sequence of data words with the word width j ⁇ n bits, which are also referred to below as data signals. Only the j least significant bits of the input data stream are processed for encryption / decryption. The most significant (n-j) bits are not taken into account in the encryption / decryption process and can be used, for example, for recording control information to be transmitted without encryption.
  • the data signals at the data input are fed to an input of a multiplexer 9.
  • the output signal of the word width n of the 3: 1 multiplexer 9 is fed to an exclusive-OR gate 11, the output of which is connected to the first stage 5 of the arithmetic unit 3.
  • the second input signal required for linking in the exclusive-OR gate 11 is supplied by a 2: 1 multiplexer 13 of word length n.
  • the exclusive-OR gate combines the two n-bit input signals bit by bit to form an output signal of the same value width.
  • This multiplexer 13 selects one from two input signals present, one of the two input signals having a constant value, in the present exemplary embodiment the bit vector 0 with a word length n bits.
  • the other input Signal supplies either a first register 15 or a second register 17.
  • the first register 15 is a memory which can store a number of p data words with the word length n bits. To increase flexibility, it is also conceivable that the first register 15 has different word widths at the input (for example n, n / 2 , ... bits) and at the output (n bits), the conversion of the input word width to the output word width in the register n bits are done.
  • the first register 15 itself serves to record the start / start value in the operating modes CBC (cipher block chaining), CFB (cipher feed-back) and OFB (output feed-back).
  • the second register 17 is also designed as a memory, wherein a number of p data words with a word length of n bits can be stored.
  • the second register 17 has two outputs 19.1, 19.2, the output 19.1 being connected to the input of the multiplexer 13.
  • the second register 17 is used to record data input values or feedback values in the operating modes mentioned for the first register 15. Either the addressed stored value or the input value present at the input of the second register 17 can be tapped at the upper output 19.1. In contrast, only the addressed stored value can be read out at input 19.2.
  • the second register 17 is also designed such that a data signal m that is subsequently to be stored can be adopted in the register simultaneously with the reading out of a data signal.
  • the two stored values of the registers 15, 17 are optionally transmitted to the input of the multiplexer 13.
  • the two registers 15, 17 are either provided with a so-called tri-state driver, in which the output can be switched to a high-resistance value.
  • a corresponding signal selection can also be achieved by using a 2: 1 multiplexer (not shown in the figure).
  • the first register 15 is supplied with a start / initiation signal via an input 21.
  • the second register 17 is supplied with an input signal which is selected by a 3: 1 multiplexer 23 from three input signals.
  • One of the input signals is the output signal of the multiplexer 9, a further input signal is the output signal of the first register 15 or the output signal of the second register 17.
  • the third input signal of multiplexer 23, which also processes data signals of word length n, is a feedback signal R, which will be explained in more detail below.
  • This feedback signal R is also present at an input of the multiplexer 9.
  • the third and thus last input signal of the multiplexer 9 is a constant bit vector, preferably with the value 0.
  • the feedback signal R is also passed to a further 2: 1 multiplexer 25 of word length n as an input signal.
  • the second input signal of the multiplexer 25 forms the signal present at the output 19.2 of the second register 17.
  • the output signal of the multiplexer 25 is fed to the input of a third register 27.
  • the third register 27 is also in the form of a memory which can store a number of p data words with the word length n bits, like the first register 15 different word widths at the input (n bits) and at the output (for example n, n / 2 ,... . Bits) can be present.
  • the third register 27 is used to hold the calculated initialization value for subsequent encryption / decryption for those operating modes that were mentioned in connection with the first register 15.
  • the initialization value or the initialization signal is buffered in the third register 27 and upon a context change read out from this and fed to an external buffer via the output 28 of the device 1. As soon as the terminated context is resumed, the buffered initialization value is made available to the first register 15 as the start value via the input 21. This is illustrated by a dashed line L in the figure.
  • a 2: 1 multiplexer 29 can also be seen in the figure, to which the data signal present at output 19.1 of second register 17 and the data signal present at data input 7 are supplied.
  • the multiplexer 29 selects a data signal from these two input signals and feeds it to a temporary register 31 as an input signal.
  • This register is designed as a memory for storing a number of p data signals with the word length n bits and is used to receive a data input or initialization signal for the duration of an encryption / decryption.
  • the stored data signal of the temporary register 31 is fed as an input signal to a 2: 1 multiplexer 33, the second input of which is supplied with a constant bit vector - in the present exemplary embodiment with the value 0.
  • the output signal of the multiplexer 33 is fed to an exclusive-OR gate 35 for combination with a further input signal, which is provided by a selection device 37.
  • the input signal of this selection device 37 represents the output signal of the last stage 5.p of the arithmetic unit 3.
  • the selection device 37 serves to pick out the j most significant bit positions from the input value comprising n bits and to insert the j least significant bit positions at the output m. The remaining (nj) most significant digits of the initial value are filled with the value 0. The selection device 37 thus realizes a shift of the input value by (nj) positions.
  • the function SV executed by the selection device 37 can be represented as follows:
  • the notation [ ⁇ -1: 0] is used for data lines or data signals of widths I, where bit [I-1] denotes the most significant bit (MSB) and bit [0] the least significant bit (LSB).
  • MSB most significant bit
  • LSB least significant bit
  • the character i r denotes a concatenation of data signals / data lines to a bus.
  • the output signal of the exclusive-OR gate 35 is fed to a masking device 39, which subjects the input data signal to the following function MASK:
  • a 4: 1 multiplexer 43 is provided for feedback of an output signal of the arithmetic unit 3, to which the output signals of the arithmetic unit 3, the selection device 37, the exclusive-OR gate 35 and the multiplexer 33 are supplied as input signals.
  • the multiplexer 43 selects a data signal from these four input signals of the word width n and feeds it to a shifting and concatenation device 45 as a second input signal ⁇ n2.
  • the first input signal ⁇ n1 forms the data signal of the second register 17 present at output 19.2.
  • the figure also shows that a memory device 47 is assigned to the arithmetic unit 3, wherein those arithmetic unit units 5... 5p are connected to the memory device 47 that require keys or subkeys to carry out their encryption / decryption (part) operation .
  • the storage device 47 itself serves to provide the keys or subkeys required for encryption / decryption, and if the p pipeline stages are operated at random, it has to hold keys or subkeys for at least p contexts.
  • E (encryption) or D (decryption) subkey or key mentioned in the ISO 10116 standard must be stored in the storage device 47.
  • two independently operable memory interfaces are provided.
  • the storage device 47 is a dual-port RAM (random access memory, rewritable memory with random access).
  • the figure does not show that a so-called data valid flag is provided for each of the p pipeline stages 5 in order to avoid downtimes of the arithmetic unit 3, which indicates whether valid data of the corresponding pipeline stage are present and are being processed.
  • a forwarding via the data output 41 or storage of the result in the registers 17 and / or 27 is only carried out if the data at the output of the last pipeline stage 5.p was valid.
  • the data valid flags accompany the associated data on their way through the arithmetic unit 3.
  • the figure does not show the address lines to registers 15, 17, 27 and 31 shown. Both the read accesses to the first register 15, the second register 17 and the temporary register 31 and the write accesses to the temporary register 31, the second register 17 and the third register 27 are addressed together.
  • the address specifies the number I e ⁇ 1, 2 ... pr of the context to which the entire structure outside the arithmetic unit 3 is assigned during the period under consideration.
  • each pipeline stage 5 is assigned its own context (virtual channel) in the arithmetic unit 3.
  • a context change is made, i.e. the processing of a context is ended after the result has been fully calculated (encrypted / decrypted date)
  • the results are saved to re-establish the context and a new context is started
  • the architecture's exit area is the terminated context and the entry area assigned to the architecture of the started context.
  • the components identified in the figure by the reference symbols 31, 33, 37, 39, 43, 45, 25, 35, and 27 are referred to as the output region.
  • the input area is designated by the reference numerals 9, 11, 13, 29, 15, 17 and 31 and the buses or data lines required for their connection.
  • an A is assigned to each of the components in the output area and an E in the input area.
  • the entries (I) and (F) in the first column of the table identify the encryption / decryption of the first data block after a context change (I), or the subsequent encryption / decryption (F) for further tere data blocks in the same context.
  • the end of the last round of encryption / decryption is carried out at the same time as the start of the first round (I) for the new context.
  • the first round (I) in a newly initialized context is only permitted when data is available in the input buffer.
  • the configuration "Start 1st round (F)" is selected, which in turn carries out the end of the last round of the previous operation and the start of the follow-up operation.
  • the beginning of a round is understood to be the provision of all input values at the inputs of the arithmetic logic unit 3, the registers 15, 17, 27 (insofar as this is necessary in the respective operating mode) or the temporary register 31.
  • the forwarding of the results from the outputs of the arithmetic logic unit 3, the registers 15, 17, 27 and the temporary register 31 applies accordingly.
  • the names of the columns indicate the reference numerals of the corresponding components m of the figure, the column contents the switched input in multiplexers, the inputs being designated with the letters A, B, C or D, or the numerical function argument (in the case of the shifting or masking devices 37, 39 or 45).
  • the elements that assigned to the unoccupied fields can be set appropriately for the backup of the previous or the provision of the following data record (if necessary in a different encryption / decryption mode).
  • WVO write on valid pipeline output data; that is, data is transferred to the register if there is valid data at the output of arithmetic unit 3;
  • WVI write on valid input buffer data; that is, data is transferred to the register if valid input data is provided at data input 7;
  • W_II write register II output; that is, the output of the second register 17 is stored.
  • values are only transferred to the temporary register 31 if there is valid data at the data input.
  • write access conflicts occur on the second register 17 during a change of context (that is, write access to the second register 17 should take place according to the table for both the old and the new context)
  • only the write access of the new context is carried out.
  • the value to be stored in register 17 from the old context could no longer be evaluated.
  • the first register 15 and the third register 27 are described (first register) or read (third register) regardless of the state of the encryption / decryption processing and are therefore not listed in the table.
  • the only requirement for their write (first register) or read operations (third register) is the timely provision or timely reading of the data before a read request (for the first register) or write request (for the third register) caused by the encryption or decryption to be carried out ) is present.
  • the first operating mode in the table is the ECB-Enc./Dec. Mode specified.
  • input A of multiplexer 9, that is to say the data input signal at data input 7, is forwarded and linked at exclusive-OR gate 11 to the signal from multiplexer 13 present at input B. Since this signal at the multiplexer 13 has the constant value 0, the output signal of the multiplexer 9, that is to say the data input signal at the input 7, is fed to the first stage of the arithmetic unit 3. As soon as the first value has passed through the arithmetic unit 3 and is not to be returned, the input signal at the input B of the multiplexer 33 is selected. Since this is a constant value 0, the signal present at the exclusive-OR gate 35 is continued unchanged.
  • the two letters n in columns 37 and 39 indicate that no change, the is called selection or masking, which takes place in the two devices 37 and 39.
  • the next mode given in the table is the CBC-Enc. Mode.
  • the signals at the inputs A of the multiplexers 9 and 13 are forwarded to the exclusive-OR gate 11.
  • the signals at the inputs B of the two multiplexers 33 and 43 and the input signals at the inputs A of the multiplexers 23 and 25 are then forwarded for encryption / decryption.
  • the data signal is not changed by the devices 37, 39 or 45.
  • the returned signal R ' m is written into the second register 17 and the third register 27. In the last round of this operating mode, the returned signal R is written into the third register 27 as a starting value for a new contextualization. However, this data signal is not transferred to the second register 17.

Abstract

Die Erfindung betrifft eine Vorrichtung zur Durchführung eines Blockchiffrierverfahrens mit einem Ver-/EntschlüsselungsRechenwerk (3), dem der zu chriffrierende Datenstrom der Wortbreite j≤n zugeführt ist. Die Erfindung zeichnet sich dadurch aus, daß das Rechenwerk (3) mehrere Ver-/Entschlüsselungselemente (5) umfaßt, die jeweils eine Stufe einer Rechenpipeline bilden, wobei die Stufen derart ausgebildet sind, daß sie unabhängig voneinander in unterschiedlichen Betriebsarten und mit unterschiedlichen Schlüsseln arbeiten. Zusammen mit den das Ver-/Entschlüsselungsrechenwerk (3) umgebenden weiteren Komponenten und Datenpfaden können mit der Erfindung zeitgleich bis zu p Datenströme mit jeweils unabhängig voneinander wählbaren Wortbreiten j≤n und Betriebsarten ver- oder entschlüsselt werden. Die Architektur der Vorrichtung gestattet darüber hinaus die unmittelbar aufeinander folgende und konfliktfreie Bearbeitung unterschiedlicher logischer Datenströme auf den durch die Hardware-Ressourcen bereitgestellten physikalischen Kanälen.

Description

Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
Die Erfindung betrifft eine Vorrichtung zur Durchführung eines Blockchiffrierverfahrens mit einem Ver- /Entschlüsselungs-Rechenwerk, dem der zu chiffrierende Datenstrom der Wortbreite i≤n zugeführt
Kommerziell verfügbare beziehungsweise im akademischen Bereich entwickelte Kryptochips für Blockchiffrierverfahren (wie zum Beispiel dem IDEA- oder DES-Kryptoalgorithmus) implementieren lediglich eine Untermenge der im ISO-10116 Standard definierten Betriebsarten (ECB, CBC, CBC-MAC, CFB, OFB; die letzten beiden Betriebsarten sind dazu noch mit unterschiedlichen Piain- beziehungsweise Ciphertext- Wortbreiten j definiert) beziehungsweise stellen keine Architektur zur Verfügung, auf der verschiedene Ver-/Entschlüsselungsbetrιebsarten für unterschiedliche Datenströme voreinander unabhängig und gleichzeitig abgearbeitet werden können. Die Aufgabe der vorliegenden Erfindung besteht deshalb darin, eine Vorrichtung zum Ausführen eines Blockchiffrierverfahrens vorzusehen, die unterschiedliche 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üsselungselemente umfaßt, die jeweils einer Stufe einer Rechenpipeline entsprechen, läßt sich ein Rechenwerk aufbauen, das unterschiedliche Datenströme unabhängig voneinander abarbeiten kann. Dabei entsteht eine vollständige Unabhängigkeit der Betriebsarten in den einzelnen Stufen der Rechenpipeline .
Durch die p-stufige Rechenpipeline werden Hardware- Ressourcen zur gleichzeitigen Bearbeitung von bis zu p voneinander unabhängigen Datenströmen bereitgestellt, 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 physikalischen Kanäle übersteigen kann und die Nutzung der physikalischen Kanäle durch die logischen Kanäle im Zeitmultiplexbetrieb erfolgt. Ein solcher logischer Kanal ist charakterisiert durch einen Datenstrom zur Ver-/Entschlüsselung der jeweiligen Betriebsart sowie dem dazugehörigen Schlüssel und gebenenfalls einem Start-/Initialisierungswert . Zur besseren Unterscheidung werden im folgenden die logischen Kanäle auch als Kontexte bezeichnet.
Vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.
Mit der erfindungsgemäßen Vorrichtung ist die Realisierung von ISO-10116 Betriebsarten bei Verschlüsselungsverfahren möglich, wobei die Rechenpipeline zur Durchführung der Ver- /Entschlüsselungsoperation in mehreren Runden betrieben wird. Als Verschlüsselungsverfahren lassen sich beispielhaft das IDEA- (International Data Encryption Algo- rithm) oder das DES- (Data Encryption Standard) Verfahren nennen.
Ein weiterer Vorteil der erfindungsgemäßen Vorrichtung ist darin zu sehen, daß keinerlei Einschränkungen für die beim Kontextwechsel auftretenden Kombinationen von vorhergehender Betriebsart (bei einem auszulagernden Kontext) und nachfolgender Betriebsart (beim neu zu initialisierenden Kontext) zu beachten sind.
Durch entsprechende Ausgestaltung der Vorrichtung auf konfliktfreie Datenübertragungswege bei gleichzeitigem Abschluß des Betriebes in einem Kontext (Weiterleitung und Sicherung der Ergebnisse beziehungsweise 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 einem 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 m den den Ver-/Entschlüsselungselementen zugeordneten Speicherelementen derart, daß vom derzeit noch aktiven Kontext bereits abgearbeitete Schlüssel m den Speicherelementen überschrieben werden.
Sämtliche Datenpfade außerhalb des Rechenwerks sind im normalen Betrieb (Beginn/Fortführung/Ende einer weiteren Ver/Entschlüsselung m einem gerade aktiven Kontext ohne unmittelbar vorherigem/nachfolgendem Kontextwechsel) für die Dauer einer Taktperiode 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 Vorrichtung) und der neue, einzulagernde Kontext (im Eingangsbereich der Vorrichtung) aktiv.
Durch die Mitführung von Data-Valid-Informationen zur Charakterisierung der m einer Pipelmestufe befindlichen Daten wird ein fortlaufender Betrieb auch in dem Fall gewährleistet, daß aufgrund unterschiedlicher Datenraten in den verschiedenen aktiven Kontexten zweitweise für einen oder mehrere Kanäle keine gültigen Eingangsdaten bereitstehen. Die Rechenpipeline wird in diesem Fall nicht angehalten, sondern läuft unter Markierung des/der Kanäle ohne gültige Eingangsdaten weiter. Die Mitführung von Valid-Data-Bits und der Betriebsart m jedem Kanal der Pipeline (beziehungsweise m separater Lookup-Table) ist erforderlich zur bedingten Speicherung von Zwischen-Ergebnissen m den vorhandenen Registerelementen beziehungsweise in einem am Datenausgang 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 einer 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üsselung 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 interne Struktur dieser Rechenwerkeinheiten 5 soll an dieser Stelle jedoch nicht eingegangen werden.
Die m 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 verarbeitet. Die höchstwertigen (n-j) Bits werden beim Ver-/Entschlüsselungsprozeß nicht berücksichtigt und können beispielsweise der Aufnahme unverschlüsselt 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 Multiplexers 9 wird einem Exklusiv-Oder-Gatter 11 zugeführt , dessen Ausgang mit der ersten Stufe 5 des Rechenwerks 3 verbunden ist. Das zur Verknüpfung im Exklusiv-Oder-Gatter 11 notwendige zweite Eingangssignal liefert ein 2:1 Multiplexer 13 der Wortbreite n. Das Exklusiv-Oder-Gatter verknüpft die beiden n Bits umfassenden Eingangssignale bitweise zu einem Ausgangssignal gleicher Wertbreite.
Dieser Multiplexer 13 wählt eines aus zwei anliegenden Eingangssignalen aus, wobei eines der beiden Eingangssignale einen konstanten Wert, im vorliegenden Ausführungsbeispiel den Bitvektor 0 mit einer 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-/Inιtιalιsιerungswert bei den Betriebsarten CBC (Cipher Block Chaining) , CFB (Cipher Feed-Back) und OFB (Output Feed-Back) . Eine genaue Erläuterung dieser Betriebsarten befindet sich m ISO/IEC 10116, 1991 (E) , "Information Processmg-Modes of Operation for n-Bit Block Cipher Algoπthm", International Organisation for Standardization, so daß an dieser Stelle nicht weiter 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 besitzt 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 beziehungsweise 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 lediglich der adressierte gespeicherte Wert auslesen. Das zweite Register 17 ist desweiteren so ausgelegt, daß gleichzeitig mit dem Auslesen eines Datensignals ein nachfolgend zu speicherndes Datensignal m das Register übernehmbar ist.
Obgleich m der Figur der Ausgang des ersten Registers 15 und der Ausgang 19.1 des zweiten Registers 17 zusammengeführt sind, werden die beiden gespeicherten Werte der Register 15, 17 wahlweise an den Eingang des Multiplexers 13 übertragen. Dazu sind die beiden Register 15, 17 entweder mit einem sogenannten Tri-State-Treiber versehen, bei dem der Ausgang auf einen hochohm gen Wert geschaltet werden kann. Alternativ hierzu läßt sich jedoch auch durch Verwendung eines m der Figur nicht dargestellten 2:1 Multiplexers eine entsprechende Signalauswahl erzielen.
Dem ersten Register 15 w rd ein Start-/Inιtιalιsιe- rungssignal über einen Eingang 21 zugeführt. Dem zweiten Register 17 wird ein Eingangssignal zugeführt, das von einem 3:1 Multiplexer 23 aus drei Eingangssignalen ausgewählt wird. Eines der Em- gangssignale ist das Ausgangssignal des Multiplexers 9, ein weiteres Eingangssignal ist das Ausgangssignal 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 ebenfalls 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 ausgebildet, 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 berechneten 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 Register 27 gepuffert und bei einem Kontextwechsel hieraus ausgelesen und über den Ausgang 28 der Vorrichtung 1 einem externen Puffer zugeführt. Sobald der beendete Kontext wieder fortgesetzt wird, wird der gepufferte Initialisierungswert über den Eingang 21 als Startwert dem ersten Register 15 zur Verfügung gestellt. Dies ist durch eine gestrichelte 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 Datensignal zugeführt ist. Aus diesen beiden Eingangssignalen 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 Multiplexer 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 Exklusiv-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 Rechenwerks 3 dar. Die Auswahlvorrichtung 37 dient dazu, aus dem n Bits umfassenden Eingangswert die j höchstwertigen Bitstellen herauszugreifen und am Ausgang m die j niederwertigsten Bitstellen einzusetzen. Die übrigen (n-j) höchstwertigen Stellen des Ausgangswertes werden mit dem Wert 0 gefüllt. Somit realisiert die Auswahlvorrichtung 37 eine Verschiebung des Eingangswertes um (n-j) Stellen.
Die von der Auswahlvorrichtung 37 ausgeführte Funktion SV läßt sich wie folgt darstellen:
out[n-1 :0]=SV(j ,m[n-1 : 0]) =\ zero[n-j -1 :0],m[n-1 :n-j]
Hierbei wird für Datenleitungen beziehungsweise Datensignale der Breiten I die Notation [ι-1:0] verwendet, wobei Bit [I-1] das höchstwertige Bit (MSB) und Bit [0] das niederwertigste bit (LSB) bezeichnen. Das Zeichen i r 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 unterzieht :
out[n-1 :0]=MASK(j,m[n-1 : 0]) =\ zero[n- -1 :0],m[j-1 : 0] r
oder bei Bedarf
out[n-1.0]=MASK(j ,m[n-1 :0])=]ιn[n-1 : 0] K Das heißt m Worten, daß die höchstwertigen (n-j) Bits auf 0 maskiert werden durch Konkatenation der niederwertigsten Bits des Eingangswertes mit dem Ergebnis der Funktion zero[n-j -1 : 0] , die einen (n- j) -steiligen O-Vektor liefert. Im vorliegenden Aus- führungsbeispiel läßt sich diese Maskierung abschalten, so daß auch die höchstwertigen (n-j) Bits, die, wie bei der Beschreibung des Dateneingangs 7 bereits angegeben, der Aufnahme beispielsweise von unverschlüsselt zu übertragenden Steuerinformationen dienen können, unverändert zum Ausgang der Maskierungsvorπchtung 39 übertragen werden. Das Ausgangssignal der Maskierungsvorπchtung 39 bildet dann das an einem Datenausgang 41 ab- greifbare Datenausgangssignal der Vorrichtung 1.
Zur Rückkopplung eines Ausgangssignals des Rechenwerks 3 ist ein 4:1 Multiplexer 43 vorgesehen, dem als Emgangssignale die Ausgangssignale des Rechenwerks 3, der Auswahlvorrichtung 37, des Exklusiv- Oder-Gatters 35 und des Multiplexers 33 zugeführt sind. Aus diesen vier Eingangssignalen der Wortbreite n wählt der Multiplexer 43 ein Datensignal aus und führt es einer Verschiebe- und Konkatenati- onsvorrichtung 45 als zweites Eingangssignal ιn2 zu. Das erste Eingangssignal ιn1 bildet das am Ausgang 19.2 anliegende Datensignal des zweiten Registers 17. Diese beiden Eingangssignale ιn1 , ιn2 werden nun mittels der Funktion VK wie folgt miteinander verknüpft : out[n-1 :0]=VK(j,k,inl[n-1 :0],in2[n-1 :0]) = !inl[n-k-1 : 0] , one[k-j -1 :0],in2[j-1 : 0] \,
das heißt, daß eine Konkatenation der (n-k) niederwertigsten Bits des Eingangssignals in1 , von (k-j) 1 -Bits aus der Funktion one[k- -1 : 0]) und der j niederwertigsten Bits von dem Eingangssignal in2 durchgeführt wird. Das Ausgangssignal der Verschiebe- 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 benötigten Schlüsseln beziehungsweise Subschlüsseln, wobei sie bei einem wahlfreien Betrieb der p Pipelinestufen Schlüssel oder Subschlüssel für mindestens 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üssel in der Speichervorrichtung 47 abzulegen. Zum gleichzeitigen Auslesen (für die Ver-/Ent- schlüsselung) und Schreiben (für die Initialisierung eines neuen Kontextes über den Eingang 48) sind zwei unabhängig voneinander betreibbare Speicherschnittstellen 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 sogenanntes Data-Valid-Flag für jede der p Pipelmestu- fen 5 vorgesehen ist, welches angibt, ob m der entsprechen Pipelmestufe gültige Daten vorhanden sind und bearbeitet werden. Zum Ende einer Ver- /Entschlüsselung wird eine Weiterleitung über den Datenausgang 41 beziehungsweise Speicherung des Ergebnisses m den Registern 17 und/oder 27 nur dann durchgeführt, wenn die Daten am Ausgang der letzten Pipelmestufe 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 Pipelmestufen darstellen) 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 temporäre Register 31 als auch die Schreibzugriffe auf das temporäre Register 31, das zweite Register 17 und das dritte Register 27 werden gemeinsam adressiert. Die Adresse gibt dabei die Nummer I e ι1, 2 ... pr des Kontextes an, dem die gesamte Struktur außerhalb des Rechenwerks 3 während der betrachteten Periode zugeordnet ist.
Desweiteren sind zur Vereinfachung m der Figur lediglich 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 Registers 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 Rechenwerkpipelme 3 bilden. Im übrigen wurden auch die Taktleitungen der Übersicht wegen nicht dargestellt, die zur getakteten Ü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 Vorrichtung 1 m den einzelnen Betriebsarten eingegangen werden.
Während eines Taktes steht die gesamte Struktur beziehungsweise 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 Berechnung des Ergebnisses (ver-/entschlüsseltes Datum) beendet, dessen Ergebnisse zum Wiederaufsetzen des Kontextes gesichert und ein neuer Kontext gestartet, 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 Bezugszeichen 31, 33, 37, 39, 43, 45, 25, 35, und 27 gekennzeichneten Komponenten bezeichnet. Als Eingangsbereich werden die mit den Bezugszeichen 9, 11, 13, 29, 15, 17 und 31 sowie die zu deren Verbindung benötigten Busse beziehungsweise Datenleitungen 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 Informationen zur Konfiguration der Architektur sind, sortiert nach Betriebsarten, in der Tabelle am Ende der Beschreibung angegeben. Die Eintragungen (I) und (F) in der ersten Spalte der Tabelle kennzeichnen 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 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 Eingangspuffer 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 aller Eingangswerte an den Eingängen des Rechenwerks 3, der Register 15, 17, 27 (soweit bei der jeweiligen 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 Bezugszeichen der entsprechenden Komponenten m der Figur an, die Spaltemnhalte den durchgeschalteten Eingang bei Multiplexern, wobei die Eingänge mit den Buchstaben A, B, C oder D bezeichnet sind, beziehungsweise das numerische Funktlonsargument (bei den Verschiebe- beziehungsweise Maskierungsvorrichtungen 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 erfolgt, falls gültige Daten am Ausgang des Rechenwerks 3 anliegen;
WVI : write on valid input buffer data; das heißt, eine Datenübernahme in das Register erfolgt, falls am Dateneingang 7 gültige Eingangsdaten bereitgestellt werden;
-: keine Datenübernahme.
Für das zweite Register 17 gilt darüber hinaus:
B: bypass; direkte kombinatorische Durchschaltung des Eingangs des zweiten Registers auf den Ausgang 19.1, gegebenenfalls mit zusätzlicher Abspeicherung des Eingangswerts im zweiten Register, wenn gültige Eingangspufferdaten und Ausgangsdaten aus dem Recherwerk 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 betreffenden 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üssten 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 speichernde 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 Register) und sind daher in der Tabelle nicht aufgeführt. Einzige Voraussetzung für deren Schreib- (erstes Register) beziehungsweise Leseoperationen (drittes Register) ist die rechtzeitige Bereitstellung beziehungsweise das rechtzeitige Auslesen der Daten, bevor eine durch die auszuführende Ver-/oder Entschlüsselung hervorgerufene Leseanforderung (beim ersten Register) beziehungsweise Schreibanforderung (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 Crytograph ", 2nd Ed. 1995, John Wiley & Sons, Inc.) entsprechen alle in der Tabelle gemäß Figur 2 genannten übrigen Betriebsarten den im ISO-1011 β-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 Beispielen 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 Dateneingangssignal am Dateneingang 7 weitergeleitet und am Exklusiv-Oder-Gatter 11 mit dem am Eingang B anliegenden Signal des Multiplexers 13 verknüpft. Da dieses Signal am Multiplexer 13 den konstanten Wert 0 aufweist, wird das Ausgangssignal des Multiplexers 9, das heißt das Dateneingangssignal am Eingang 7 der ersten Stufe des Rechenwerks 3 zugeführt. Sobald der erste Wert das Rechenwerk 3 durchlaufen hat und nicht wieder zurückgeführt werden 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 Exklusiv-Oder-Gatter 35 anliegende Signal unverändert weitergeführt. Die beiden Buchstaben n in den Spalten 37 und 39 besagen, daß keine Veränderung, das heißt Auswahl oder Maskierung, m den beiden Vorrichtungen 37 und 39 stattfindet.
Der nächste in der Tabelle angegebene Modus ist der CBC-Enc. Modus. Hierbei werden der ersten In- ltialisierungsrunde die Signale an den Eingängen A der Multiplexer 9 und 13 zum Exklusiv-Oder-Gatter 11 weitergeführt. Dort findet dann eine entsprechende Verknüpfung des m dem ersten Register 15 abgespeicherten Start- beziehungsweise Initialisie- rungswertes und dem Dateneingangssignal statt, wobei das verknüpfte Signal dem Rechenwerk 3 zugeführt wird. Anschließend werden zur Ver-/Ent- schlüssung die Signale an den Eingängen B der beiden 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' m das zweite Register 17 sowie das dritte Register 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 Kontextmitialisierung eingeschrieben. Eine Übernahme 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ängigkeit der Pipelinestufen eine Vorrichtung realisieren läßt, die verschiedene Datenströme m verschie- denen Ver-/Entschlüsselungsbetriebsarten abarbeiten kann.
Tabelle:
Figure imgf000024_0001

Claims

Ansprüche
1. Vorrichtung zur Durchführung eines Blockchiffrierverfahrens mit einem Ver- /Entschlüsselungs- Rechenwerk (3), dem der zu chiffrierende Datenstrom der Wortbreite n zugeführt ist, dadurch gekennzeichnet, daß das Rechenwerk (3) mehrere Ver-/Entschlüsselungselemente (5) umfaßt, die jeweils eine Stufe einer Rechenpipeline bilden, wobei die Stufen derart ausgebildet sind, daß sie unabhängig voneinander in unterschiedlichen Betriebsarten und mit unterschiedlichen Schlüsseln arbeiten.
2. Vorrichtung nach Anspruch 1 , dadurch gekennzeichnet, daß jedem Ver-/Entschlüsselungselement (5) , welches zur Durchführung seiner Ver-/Ent- schlüsselungs (-teil-) Operation (en) Schlüssel beziehungsweise Subschlüssel benötigt, ein Speicherelement (47) zugeordnet ist, das zum Speichern eines Schlüssels beziehungsweise eines Subschlüssels geeignet ist.
3. Vorrichtung nach Anspruch 2 , dadurch gekennzeichnet, daß das Speicherelement (47) ein Dual- Port-Speicher ist.
4. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß dem Rechenwerk (3) ein Exklusiv-Oder-Gatter (11) vorgeschaltet ist, das eine bitweise Verknüpfung zweier Eingangsworte der Wortbreite n durchführt .
5. Vorrichtung nach Anspruch 4 , dadurch gekennzeichnet, daß ein Eingang des Exklusiv-Oder-Gatters (11) mit einer ersten Multiplexer-Vorrichtung (9) und der zweite Eingang mit einer zweiten Multiplexer-Vorrichtung (13) verbunden ist, wobei der ersten Multiplexer-Vorrichtung (9) der Eingangsdatenstrom zugeführt ist.
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß ein Eingang der zweiten Multiplexer- Vorrichtung (13) mit einem Ausgang einer Zwischenspeichervorrichtung (15,17) verbunden ist, die zur Speicherung mehrerer Start- und Initialisierungs- werte für das Chiffrierverfahren sowie von Dateneingang- und Rückkopplungswerten ausgebildet sind.
7. Vorrichtung nach Anspruch 6 , dadurch gekennzeichnet, daß der Ausgang des Rechenwerks (3) mit einer Auswertevorrichtung (33,35,37,43,39) verbunden ist, die den ver-/entschlüsselten Datenstrom an einem Ausgang bereitstellt und an einem weiteren Ausgang Daten bereitstellt, die dem Eingang des Rechenwerks rückgeführt sind.
8. Vorrichtung nach Anspruch 7 , dadurch gekennzeichnet, daß die Auswertevorrichtung em Auswahl- element (37) zur Auswahl einer Anzahl von Bits des am Eingang liegenden Datenworts umfaßt, sowie em Exklusiv-Oder-Gatter (35) und em Maskierungselement (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 gekennzeichnet, daß dem Exklusiv-Oder-Gatter (35) em weiteres Datensignal zugeführt ist.
10. Vorrichtung nach Anspruch 9 , dadurch gekennzeichnet, daß die Auswahlvorrichtung em Multiple- xer-Element (43) umfaßt, dem als Eingangssignale die Ausgangssignale des Rechenwerks (3), des Auswahlelements (37) und des Exklusiv-Oder-Gatters (35) sowie em Eingangssignal des Exklusiv-Oder- Gatters (35) zugeführt sind.
11. Vorrichtung nach Anspruch 6 , dadurch gekennzeichnet, daß die Zwischenspeichervorrichtung zwei Registerelemente (15,17) umfaßt, die jeweils zum Speichern mehrerer, vorzugsweise einer der Anzahl der Stufen des Rechenwerks (3) entsprechenden Anzahl p, Datenworte der Wortbreite n ausgebildet sind.
12. Vorrichtung nach Anspruch 11 , dadurch gekennzeichnet, 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 gespeicherte Wert bereitgestellt ist.
13. Vorrichtung nach einem der vorhergehenden Ansprü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ückgeführte Signal (R) speichert .
14. Vorrichtung nach einem der vorhergehenden Ansprüche , dadurch gekennzeichnet, daß die Auswertevorrichtung 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 Dateneingangssignal zwischenspeichert .
15. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß ein Verknüpfungselement (45) vorgesehen ist, daß das Ausgangs- signal des Mulitplexerelements (43) und das Ausgangssignal des zweiten Registerelements (17) verknüpft, und dieses Ausgangssignal einem Multiple- xerelement (9) zuführt, dessen Ausgang mit dem Exklusiv-Oder-Gatter (11) verbunden ist.
16. Vorrichtung nach einem der vorhergehenden Ansprü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 übertragenden Steuerinformationen dienen.
PCT/EP1998/002803 1997-06-07 1998-05-13 Vorrichtung zur durchführung eines blockchiffrierverfahrens WO1998057461A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CA002292575A CA2292575C (en) 1997-06-07 1998-05-13 Device used to implement a block cipher
JP50137999A JP2002508851A (ja) 1997-06-07 1998-05-13 ブロック符号化方法を実行するための装置
DE59805323T DE59805323D1 (de) 1997-06-07 1998-05-13 Vorrichtung zur durchführung eines blockchiffrierverfahrens
EP98925591A EP0986872B1 (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
AT98925591T ATE223127T1 (de) 1997-06-07 1998-05-13 Vorrichtung zur durchführung eines blockchiffrierverfahrens

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19724072A DE19724072C2 (de) 1997-06-07 1997-06-07 Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
DE19724072.0 1997-06-07

Publications (1)

Publication Number Publication Date
WO1998057461A1 true WO1998057461A1 (de) 1998-12-17

Family

ID=7831795

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1998/002803 WO1998057461A1 (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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007184000A (ja) * 2000-01-14 2007-07-19 Mitsubishi Electric Corp 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体

Families Citing this family (28)

* 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
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
DK1816782T3 (en) * 2000-01-14 2015-10-12 Mitsubishi Electric Corp Encryption device, encryption method, dekrypteringsindretning, dekrypteringsfremgangsmåde, and computer-readable recording medium with a program stored there
US7366300B2 (en) * 2000-12-13 2008-04-29 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
US7142671B2 (en) * 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
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
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
JP2006518056A (ja) * 2002-10-31 2006-08-03 ロッキード マーティン コーポレーション プログラマブル回路、関連計算マシン、並びに、方法
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
EP2511787B1 (de) 2003-05-23 2017-09-20 IP Reservoir, LLC Datendekomprimierung und -suche unter Verwendung von FPGA-Geräten
US7409558B2 (en) * 2004-09-02 2008-08-05 International Business Machines Corporation Low-latency data decryption interface
US7496753B2 (en) * 2004-09-02 2009-02-24 International Business Machines Corporation Data encryption interface for reducing encrypt latency impact on standard traffic
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
WO2008031205A1 (en) * 2006-09-13 2008-03-20 Elliptic Semiconductor Inc. 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 富士通セミコンダクター株式会社 共通鍵ブロック暗号におけるスワップ回路及び、それを有する暗号化・復号化回路
US8976006B2 (en) 2011-05-24 2015-03-10 Overhead Door Corporation Wall console diverse commands to barrier operators
CN103842212B (zh) * 2011-09-12 2017-05-31 密克罗奇普技术公司 具有增加的安全性的基于跳码的系统
US10157282B2 (en) 2013-12-16 2018-12-18 International Business Machines Corporation Multiband encryption engine and a self testing method thereof
CN109804596B (zh) * 2016-12-09 2023-05-09 密码研究公司 具有加掩码的输入的可编程块密码器
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454187A2 (de) * 1985-11-08 1991-10-30 Nippon Telegraph And Telephone Corporation Einrichtung zur Datenverschleierung
DE4016203A1 (de) * 1990-05-19 1991-11-21 Rolf Prof Dr Trautner Verfahren zur blockweisen chiffrierung von digitalen daten

Family Cites Families (5)

* 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
US5671284A (en) * 1996-04-16 1997-09-23 Vlsi Technology, Inc. Data encryptor having a scalable clock

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454187A2 (de) * 1985-11-08 1991-10-30 Nippon Telegraph And Telephone Corporation Einrichtung zur Datenverschleierung
DE4016203A1 (de) * 1990-05-19 1991-11-21 Rolf Prof Dr Trautner Verfahren zur blockweisen chiffrierung von digitalen daten

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007184000A (ja) * 2000-01-14 2007-07-19 Mitsubishi Electric Corp 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
EP0986872B1 (de) 2002-08-28
US6760439B1 (en) 2004-07-06
EP0986872A1 (de) 2000-03-22
CA2292575A1 (en) 1998-12-17
DE59805323D1 (de) 2002-10-02
JP2002508851A (ja) 2002-03-19
ATE223127T1 (de) 2002-09-15
DE19724072A1 (de) 1998-12-10
CA2292575C (en) 2007-01-09
DE19724072C2 (de) 1999-04-01

Similar Documents

Publication Publication Date Title
DE19724072C2 (de) Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
DE10345385B4 (de) Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
DE1951552C3 (de) Speichereinrichtung mit Sicherung durch Schutzschlüssel
DE2755273C2 (de)
EP1668515B8 (de) Wortindividuelle schlüsselerzeugung
DE102007052656B4 (de) Digital-Verschlüsselungs-Hardware-Beschleuniger
DE1499203B1 (de) Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb
DE19635115A1 (de) Verfahren zum Prüfen einer kryptographischen Einrichtung
DE2658065A1 (de) Maschinelles chiffrieren und dechiffrieren
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
EP1249010A1 (de) Mikroprozessoranordnung mit verschlüsselung
DE3501903A1 (de) Im pipelinebetrieb arbeitende datenverarbeitungseinrichtung
DE3138698A1 (de) Verfahren zur potenzierung grosser binaerzahlen in einer restklasse modulo n, insbesondere zur verschluesselung und entschluesselung digital dargestellter nachrichten
DE10051611B4 (de) Verteiltes Multiplexerschema für eine Bi-Endian-Rotatorschaltung
EP1683029B1 (de) Verfahren zur speicherung von daten in einem wahlzugriffspeicher und verschlüsselungs- und entschlüsselungsvorrichtung
DE2459476C3 (de)
DE2459476A1 (de) Schaltungsanordnung fuer nichtzyklische datenpermutationen
DE102004018874A1 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
EP3174239B1 (de) Verschlüsselungsverfahren und pseudo-zufallszahlengenerator
DE2440390A1 (de) Elektronischer rechner
DE1499233C3 (de) Kombinationsrechenanlage
DE3016269C2 (de)
DE2502005C2 (de) Schaltungsanordnung zur Zuordnung von Adressen zu Operationen zwecks Ausführung von Befehlen in einer Datenverarbeitungseinrichtung
DE2430466C3 (de) Speichersystem
DE19723539C2 (de) Digitales Schaltwerk

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA JP SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 1998925591

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2292575

Country of ref document: CA

Ref country code: CA

Ref document number: 2292575

Kind code of ref document: A

Format of ref document f/p: F

NENP Non-entry into the national phase

Ref country code: JP

Ref document number: 1999501379

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 09445337

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1998925591

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1998925591

Country of ref document: EP