Beschreibungdescription
Verfahren und Vorrichtung zur Ver-/EntschlüsselungMethod and device for encryption / decryption
Die vorliegende Erfindung bezieht sich allgemein auf einThe present invention relates generally to
Ver/Entschlüsselungsschema, wie es beispielsweise zum Schutz von Speicherinhalten gegen unberechtigtes Auslesen anwendbar ist .Encryption / decryption scheme, as can be used, for example, to protect memory contents against unauthorized reading.
Bei einer gegen unberechtigtes Ausspähen gesicherten Datenspeicherung werden die zu speichernden Daten nicht im Klartext, d.h. unverschlüsselt, sondern in verschlüsselter Form abgespeichert, als sogenanntes Chiffrat oder sogenannter Chiffretext. Wenn die Daten zu einem späteren Zeitpunkt gelesen werden sollen, müssen sie deshalb naturgemäß wieder entschlüsselt werden, bevor sie weiterverarbeitet werden können. Beispiele für Anwendungen, bei denen sich dieser Aufwand zur Abspeicherung lohnt, sind vielfältig und umfassen beispielsweise Chipkarten, Smartcards oder Magnetkarten, auf denen beispielsweise zu schützende Informationen, wie Geldbeträge, Schlüssel, Kontonummern usw., vor einem unberechtigten Zugriff geschützt werden sollen.In the case of data storage secured against unauthorized spying, the data to be stored is not in plain text, i.e. unencrypted, but saved in encrypted form, as a so-called ciphertext or so-called ciphertext. If the data is to be read at a later point in time, it naturally has to be decrypted again before it can be processed further. Examples of applications in which this effort for storage is worthwhile are diverse and include, for example, chip cards, smart cards or magnetic cards, on which information to be protected, such as monetary amounts, keys, account numbers, etc., is to be protected from unauthorized access.
Fig. 5 veranschaulicht noch einmal den Sachverhalt. Zu schüt- zende Daten werden, um sie nicht ungeschützt potentiellen5 illustrates the situation again. Data to be protected will not be unprotected potential
Angreifern auszuliefern, in verschlüsselter Form gespeichert, in Fig. 5 als Chiffre-Domain bezeichnet. Außerhalb der Chiffre-Domain liegen die zu schützenden Daten im Klartext vor, in Fig. 5 als Klartext-Domain bezeichnet. Die Grenze zwischen Klartext- und Chiffre-Domain ist in Fig. 5 mit einer Strichpunktlinie angezeigt. Eine Schnittstelle zwischen Klartext- und Chiffre-Domain bildet eine Ver-/Entschlüsselungsvorrich- tung 900. Die Ver-/Entschlüsselungsvorrichtung 900 ist dazu da, zu speichernde, unverschlüsselte Daten aus der Klartext- Domain zu verschlüsseln und in verschlüsselter Form zurDeliver to attackers, stored in encrypted form, referred to in Fig. 5 as a cipher domain. Outside the cipher domain, the data to be protected is in plain text, referred to as plain text domain in FIG. 5. The border between plain text and cipher domain is shown in FIG. 5 with a semicolon. An interface between the plain text and cipher domain is formed by an encryption / decryption device 900. The encryption / decryption device 900 is used to encrypt unencrypted data to be stored from the plain text domain and to use it in encrypted form
Speicherung an die Chiffre-Domain auszugeben, und umgekehrt, bei Abruf oder Auslesen dieser Daten, wiederum die nun in
verschlüsselter Form vorliegenden, auszulesenden Daten zu entschlüsseln, um sie in Klartext an die Klartext-Domain auszugeben. Das zugrundeliegende Verschlüsselungsschema ist eine symmetrische Verschlüsselung, d.h. eine bei der die inverse Verschlüsselung, d.h. die Entschlüsselung, mit in etwa dem gleichen Aufwand ausgeführt werden kann wie die Verschlüsselung. Die Ver-/Entschlüsselungsvorrichtung 900 besteht deshalb aus zwei in etwa gleich großen bzw. in ihrer Implementation gleich aufwendigen Teilen, nämlich einer Verschlüsselungseinheit bzw. einem Verschlüsselungsteil 902 und einer Entschlüsselungseinheit bzw. einem Entschlüsselungsteil 904. Die Verschlüsselungseinheit 902 bildet Daten an einem Verschlüsselungseingang derselben nach einem bestimmten Verschlüsselungsalgorithmus blockweise auf ver- schlüsselte Daten ab und gibt diese an einem Verschlüsselungsausgang derselben aus. In der Vorrichtung 900 ist die Verschlüsselungseinheit 902 derart vorgesehen, dass sie zu speichernde Datenblöcke Bj., ..., BN, mit N e IN, die im Klartext vorliegen, an seinem Verschlüsselungseingang empfängt, so dass die Verschlüsselungseinheit 902 am Verschlüsselungsausgang verschlüsselte Datenblöcke Ci, ... , CN ausgibt, das sog. Chiffrat. Die Entschlüsselungseinheit 904 ist für die umgekehrte Richtung zuständig, nämlich eben nicht für das Speichern von Daten sondern für das Auslesen von Daten von dem Speicher in der Chiffre-Domain in die Klartext-Domain.Output storage to the cipher domain, and vice versa, when accessing or reading out this data, again in decrypt the data to be read out in encrypted form in order to output it in plain text to the plain text domain. The underlying encryption scheme is symmetrical encryption, ie one in which the inverse encryption, ie the decryption, can be carried out with approximately the same effort as the encryption. The encryption / decryption device 900 therefore consists of two parts which are approximately the same size or have the same complexity in their implementation, namely an encryption unit or an encryption part 902 and a decryption unit or a decryption part 904. The encryption unit 902 simulates data at an encryption input thereof a specific encryption algorithm in blocks on encrypted data and outputs it to an encryption output of the same. The encryption unit 902 is provided in the device 900 in such a way that it stores data blocks Bj . , ..., B N , with N e IN, which are in plain text, receives at its encryption input, so that the encryption unit 902 outputs encrypted data blocks Ci, ..., C N at the encryption output, the so-called cipher. The decryption unit 904 is responsible for the reverse direction, namely not for storing data but for reading data from the memory in the cipher domain into the plain text domain.
Dementsprechend ist die Entschlüsselungseinheit 904 ausgebildet, um Daten an ihrem Entschlüsselungseingang gemäß einem Entschlüsselungsalgorithmus auf entschlüsselte Daten abzubilden, der zu dem Verschlüsselungsalgorithmus der Verschlüsse- lungseinheit 902 invers ist, und diese entschlüsselten Daten an einem Entschlüsselungsausgang derselben ausgibt. In der Vorrichtung 900 ist die Entschlüsselungseinheit 904 so vorgesehen, dass sie in verschlüsselter Form gespeicherte, auszulesende Datenblöcke Ci, ... , CN am Dateneingang empfängt, dieses Chiffrat Ci, ..., CN blockweise entschlüsselt und am Entschlüsselungsausgang die Datenblöcke Bi, ... , BN im Klartext an die Klartext-Domain ausgibt.
Nachteilig an der Bezug nehmend auf Fig. 5 beschriebenen Vorgehensweise, nämlich getrennte Hardware eigens für die Entschlüsselung und Verschlüsselung vorzusehen, ist, dass jeweils der eine Teil brach liegt, wenn eine Ver- bzw. Entschlüsselung durchgeführt wird. Die Effektivität einer solchen Ver-/Entschlüsselungsvorrichtung ist also darin gering, dass dieselbe ein schlechtes Verhältnis zwischen Sicherheit einerseits und Chipfläche andererseits aufweist.Accordingly, the decryption unit 904 is designed to map data at its decryption input to decrypted data according to a decryption algorithm which is inverse to the encryption algorithm of the encryption unit 902, and outputs this decrypted data at a decryption output thereof. In the device 900, the decryption unit 904 is provided in such a way that it receives data blocks Ci,..., C N stored in encrypted form at the data input, decrypts this cipher Ci,..., C N in blocks and the data blocks Bi at the decryption output , ..., B N in plain text to the plain text domain. A disadvantage of the procedure described with reference to FIG. 5, namely to provide separate hardware specifically for decryption and encryption, is that one part is idle when encryption or decryption is carried out. The effectiveness of such an encryption / decryption device is therefore low in that it has a poor relationship between security on the one hand and chip area on the other.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Ver-/Entschlüsselungsschema zu schaffen, das effektiver ist.The object of the present invention is to provide an encryption / decryption scheme that is more effective.
Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, 13 oder 14 und ein Verfahren gemäß Anspruch 15, 16 oder 17 gelöst.This object is achieved by a device according to claim 1, 13 or 14 and a method according to claim 15, 16 or 17.
Die Erkenntnis der vorliegenden Erfindung besteht darin, dass die in einer Ver/Entschlüsselungsvorrichtung vorhandene Verschlüsselungseinheit und Entschlüsselungseinheit beide sowohl bei Verschlüsselung als auch bei Entschlüsselung eingesetzt werden können, ohne dass sich ihre Wirkungen gegenseitig aufheben, wenn zwischen dem Entschlüsselungseingang der Entschlüsselungseinrichtung und dem Verschlüsse- lungsausgang der Verschlüsselungseinrichtung eine Verschlüs- selungsverknüpfungseinrichtung vorgesehen wird, die den Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang auf einen abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Verschlüsselungsverknüpfungsabbildung abbildet und bei beispielsweise der Verschlüsselung verwendet wird, und eine weiter Entschlüsselungsverknüpfungseinrichtung, die den Verschlüsselungsergebnisdatenblock am Verschlüsselungsausgang auf einen invers abgebildeten Verschlüsselungsergebnisdatenblock gemäß einer Entschlüsselungsverknüpfungsabbil- düng abbildet, die zu der Verschlüsselungsverknüpfungsabbil- dung invers ist, und beispielsweise bei der Entschlüsselung verwendet wird.
Die Komplexität des Aufbaus uss sich damit nicht enorm erhöhen, da die eigentliche Verschlüsselung bzw. Entschlüsselung mit entsprechend hoher Nichtlinearität der zugrundelie- genden Abbildungen durch die beiden Einrichtungen, nämlich die Verschlüsselungs- und die Entschlüsselungseinrichtung, durchgeführt wird. Die Verschlüsselungsverknüpfungs- und Entschlüsselungsverknüpfungsabbildung sind lediglich dazu da, dafür zu sorgen, dass sich die Wirkungen der Verschlüsselungsabbildung und der Entschlüsselungsabbildung, wie sie durch die Verschlüsselungs- und die Entschlüsselungseinrichtung implementiert werden, nicht gegenseitig aufheben. Eine Verschlüsselung kann nun dadurch bewirkt werden, dass ein zu verschlüsselnder Datenblock zumindest die Abfolge von Ver- Schlüsselungseinrichtung, Verschlüsselungsverknüpfungsein- richtung und Entschlüsselungseinrichtung zumindest einmal durchläuft bzw. von diesen Einrichtungen seriell verarbeitet wird. Die Entschlüsselung kann dann basierend auf derselben Verschlüsselungs- und Entschlüsselungseinrichtung durchge- führt werden, indem ein zu entschlüsselnder Datenblock zumindest eine Abfolge von Verschlüsselungseinrichtung, Entschlüs- selungsverknüpfungseinrichtung und Entschlüsselungseinrichtung durchläuft.The knowledge of the present invention is that the encryption unit and decryption unit present in an encryption / decryption device can both be used for both encryption and decryption, without their effects canceling each other out, if between the decryption input of the decryption device and the encryption output the encryption device is provided with an encryption link device which maps the encryption result data block at the encryption output to a depicted encryption result data block in accordance with an encryption link mapping and is used in, for example, encryption, and a further decryption link device which converts the encryption result data block at the encryption output to an inverse-depicted encryption result data block depicts encryption link mapping that is inverse to the encryption link mapping and is used, for example, in decryption. The complexity of the structure does not increase enormously, since the actual encryption or decryption is carried out by the two devices, namely the encryption and decryption device, with a correspondingly high non-linearity of the underlying images. The encryption link and decryption link mapping are only there to ensure that the effects of the encryption mapping and the decryption mapping as implemented by the encryption and decryption device do not cancel each other out. Encryption can now be effected in that a data block to be encrypted runs through at least once the sequence of encryption device, encryption link device and decryption device or is processed serially by these devices. The decryption can then be carried out based on the same encryption and decryption device in that a data block to be decrypted runs through at least a sequence of encryption device, decryption link device and decryption device.
Folglich werden sowohl bei Verschlüsselung als auch beiConsequently, both encryption and
Entschlüsselung beide Einrichtungen, Verschlüsselungs- und Entschlüsselungseinrichtung, verwendet, wohingegen früher eine der beiden Einrichtungen ausschließlich für die Verschlüsselung und die andere ausschließlich für die Entschlüs- seiung zuständig war. Zudem werden effektiv seriell zwei unterschiedliche Ver- bzw. Entschlüsselungsvorgänge durchgeführt, was herkömmlicher Weise durch zwei Runden durch die Ver- bzw. Entschlüsselungseinrichtung erzielt werden musste.Decryption used both devices, encryption and decryption device, whereas in the past one of the two devices was only responsible for encryption and the other was exclusively responsible for decryption. In addition, two different encryption or decryption processes are effectively carried out in series, which conventionally had to be achieved by two rounds through the encryption or decryption device.
Eine besondere Form der Verschlüsselungs- bzw. Entschlüsse- lungsverknüpfungsabbildung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist beispielsweise eine Implemen-
tierung dieser Abbildungen in Form von geeignet geführten Leiterbahnen, derart, dass dieselben eine Permutation der Bits des Verschlüsselungsergebnisdatenblocks von dem Verschlüsselungsausgang zu dem Entschlüsselungseingang vornehmen bzw. eine Rück- bzw. inverse Permutation. Eine solche Implementierung kostet kaum Chipfläche.A special form of encryption or decryption link mapping according to an exemplary embodiment of the present invention is, for example, an implementation This mapping in the form of suitably routed conductor tracks, such that they perform a permutation of the bits of the encryption result data block from the encryption output to the decryption input or a reverse or inverse permutation. Such an implementation hardly costs any chip area.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeich- nungen näher erläutert. Es zeigen:Preferred exemplary embodiments of the present invention are explained in more detail below with reference to the accompanying drawings. Show it:
Fig. 1 ein Blockschaltbild einer Ver-/Entschlüsselungsvor- richtung gemäß einem allgemeinen Ausführungsbeispiel der vorliegenden Erfindung;1 is a block diagram of an encryption / decryption device according to a general embodiment of the present invention;
Fig. 2 eine schematische Darstellung eines Verschlüsselungsvorgangs und eines Entschlüsselungsvorgangs, wie er mit der Vorrichtung von Fig. 1 gemäß einem weiteren Ausführungsbeispiel der vorliegenden Er- findung möglich ist;FIG. 2 shows a schematic illustration of an encryption process and a decryption process, as is possible with the device from FIG. 1 according to a further exemplary embodiment of the present invention;
Fig. 3a eine schematische Darstellung eines Verschlüsselungsvorgangs gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung;3a shows a schematic illustration of an encryption process according to a further exemplary embodiment of the present invention;
Fig. 3b eine schematische Darstellung eines Entschlüsselungsvorgangs zur Entschlüsselung eines nach der Verschlüsselung von Fig. 3a verschlüsselten Chiffrats gemäß einem Ausführungsbeispiel der vor- liegenden Erfindung;3b shows a schematic illustration of a decryption process for decrypting a ciphertext encrypted after the encryption of FIG. 3a according to an embodiment of the present invention;
Fig. 4 ein Blockschaltbild einer Ver-/Entschlüsselungsvor- richtung, die die Verschlüsselung nach Fig. 3a und Entschlüsselung nach Fig. 3b implementiert, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und
Fig. 5 ein Blockschaltbild einer Ver-/Entschlüsselungs- vorrichtung mit Verschlüsselungseinheit zur Verschlüsselung und Entschlüsselungseinheit zur Entschlüsselung.FIG. 4 shows a block diagram of an encryption / decryption device which implements the encryption according to FIG. 3a and decryption according to FIG. 3b, according to an embodiment of the present invention; and 5 shows a block diagram of an encryption / decryption device with an encryption unit for encryption and a decryption unit for decryption.
Bevor die vorliegende Erfindung anhand der Figuren in Ausfüh- ungsbeispielen näher veranschaulicht wird, wird darauf hingewiesen, dass gleiche Elemente oder ähnliche Elemente in diesen Figuren mit gleichen Bezugszeichen oder ähnlichen Bezugszeichen versehen sind, und dass eine wiederholte Beschreibung dieser Elemente weggelassen wird.Before the present invention is illustrated in more detail with reference to the figures in exemplary embodiments, it is pointed out that the same elements or similar elements in these figures are provided with the same reference symbols or similar reference symbols and that a repeated description of these elements is omitted.
Fig. 1 zeigt eine Ver-/Entschlüsselungsvorrichtung 10 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Ver-/Entschlüsselungsvorrichtung 10 ist in der Lage, ankommende Datenblöcke, die verschlüsselt werden sollen, in verschlüsselte Datenblöcke zu verschlüsseln, und zu entschlüsselnde Datenblöcke in entschlüsselte Datenblöcke zu entschlüsseln.1 shows an encryption / decryption device 10 according to an embodiment of the present invention. The encryption / decryption device 10 is able to encrypt incoming data blocks which are to be encrypted into encrypted data blocks and to decrypt data blocks to be decrypted into decrypted data blocks.
Die Ver-/Entschlüsselungsvorrichtung 10 weist hierzu eine Verschlüsselungseinrichtung 12, eine Entschlüsselungseinrich- "tung 14, eine Permutationseinrichtung 16, eine Invers-Permu- tationseinrichtung 18 und eine Steuereinrichtung 20 auf. Ferner umfasst die Ver-/Entschlüsselungsvorrichtung einen Dateneingang 22 für die zu verschlüsselnden Datenblöcke, einen Dateneingang 24 für die zu entschlüsselnden Datenblöcke, einen Datenausgang 26 für die verschlüsselten Datenblöcke und einen Datenausgang 28 für die entschlüsselten Daten- blocke.For this purpose, the encryption / decryption device 10 has an encryption device 12, a decryption device 14, a permutation device 16, an inverse permutation device 18 and a control device 20. Furthermore, the encryption / decryption device comprises a data input 22 for those to be encrypted Data blocks, a data input 24 for the data blocks to be decrypted, a data output 26 for the encrypted data blocks and a data output 28 for the decrypted data blocks.
In Fig. 1 ist mit durchgezogenen Pfeilen der Weg angedeutet, den ein zu verschlüsselnder Datenblock in der Vorrichtung 10 nimmt, d.h. welche Abfolge von Einrichtungen derselbe durch- läuft. Durch gestrichelt gezeichnete Pfeile ist angedeutet, welche Abfolge von Einrichtungen der Vorrichtung 10 zu entschlüsselnde Datenblöcke durchlaufen. Gesteuert wird dies
durch die Steuereinrichtung 20, die hierzu beispielsweise Schalter, Multiplexer oder dergleichen aufweist, wie es Bezug nehmend auf das Ausführungsbeispiel von Fig. 4 exemplarisch noch näher veranschaulicht wird.In FIG. 1, solid arrows indicate the path that a data block to be encrypted takes in device 10, ie which sequence of devices it goes through. The dashed arrows indicate the sequence of data blocks to be decrypted by devices of the device 10. This is controlled by the control device 20, which for this purpose has, for example, switches, multiplexers or the like, as is illustrated in more detail by way of example with reference to the exemplary embodiment of FIG. 4.
Nachdem im Vorhergehenden der Aufbau der Vorrichtung 10 grob beschrieben worden ist, wird im folgenden ihre Funktionsweise näher beschrieben. Die Verschlüsselungseinrichtung 12 ist ausgebildet, um Datenblöcke an ihrem Verschlüsselungseingang blockweise gemäß einer Verschlüsselungsabbildung auf Verschlüsselungsergebnisdatenblöcke abzubilden und letztere an ihrem Verschlüsselungsausgang auszugeben. Die Verschlüsselungsabbildung ist vorzugsweise eine nichtlineare Abbildung, die n-Bit-Datenblöcke auf m-Bit-Datenblöcke abbildet, wobei n und m Ganzzahlen sind, d.h. m,n e IN. Bei dem vorliegenden Ausführungsbeispiel ist n = m, wobei jedoch m > n ebenfalls gelten könnte, wenn spezielle weitere Bedingungen an die Klartextblöcke und die Abbildung E gestellt werden. Wie es bei den Ausführungsbeispielen von Fig. 3a, 3b und 4 noch deutlich werden wird, kann die Verschlüsselungsabbildung beispielsweise unter Verwendung einer oder mehrerer S-Boxen implementiert sein. Die Verschlüsselung durch die Verschlüsselungseinrichtung 12 sei im folgenden mit E (E für encryption) ausgedrückt, wobei ein n-Bit-Datenblock B auf ein Chiffrat C abgebildet werde, was durch E(B) = C ausgedrückt wird.After the structure of the device 10 has been roughly described above, its mode of operation is described in more detail below. The encryption device 12 is designed to map data blocks at its encryption input block-wise according to an encryption mapping to encryption result data blocks and to output the latter at its encryption output. The encryption map is preferably a non-linear map that maps n-bit data blocks to m-bit data blocks, where n and m are integers, i.e. m, n IN. In the present exemplary embodiment, n = m, although m> n could also apply if special further conditions are placed on the plain text blocks and the mapping E. As will become clear in the exemplary embodiments of FIGS. 3a, 3b and 4, the encryption mapping can be implemented, for example, using one or more S-boxes. The encryption by the encryption device 12 is expressed below with E (E for encryption), an n-bit data block B being mapped onto a ciphertext C, which is expressed by E (B) = C.
Die Entschlüsselungseinrichtung 14 ist dazu ausgebildet, Datenblöcke an ihrem Entschlüsselungseingang gemäß einer Entschlüsselungsabbildung auf Entschlüsselungsergebnisdatenblöcke blockweise abzubilden und letztere an ihrem Entschlüsselungsausgang auszugeben, wobei die Entschlüsselungsabbildung zu der Verschlüsselungsabbildung invers ist. Die Entschlüsselungseinrichtung 14 implementiert folglich eine Abbildung D (D für decryption), für die gilt, dass für jeden möglichen unverschlüsselten n-Bit-Datenblock B gilt, dass D(E(B)) = B ist, d.h. dass die Entschlüsselungseinrichtung 14
einen ursprünglichen Datenblock an ihrem Entschlüsselungseingang E(B) immer auf einen Datenblock B an ihrem Entschlüsselungsausgang abbilden würde, welcher von der Verschlüsselungseinrichtung 12 auf den ursprünglichen Datenblock E(B) abgebildet wird. Das bedeutet gleichzeitig, dass E(D(E(B))) = E(B) für alle möglichen B gelten rαuss. Bei m > n wäre demnach die Entschlüsselungsabbildung ist also eine Abbildung D, die m-Bit-Datenblöcke auf n-Bit-Datenblöcke abbildet und wäre nur für E(B) Blöcke definiert. Bei serieller Verschaltung der Abbildungen müsste folglich sichergestellt sein, dass dieThe decryption device 14 is designed to map data blocks at its decryption input in accordance with a decryption map to decryption result data blocks and to output the latter at its decryption output, the decryption map being inverse to the encryption map. The decryption device 14 consequently implements a mapping D (D for decryption), for which it applies that for every possible unencrypted n-bit data block B it applies that D (E (B)) = B, that is to say that the decryption device 14 would always map an original data block at its decryption input E (B) to a data block B at its decryption output, which the encryption device 12 maps to the original data block E (B). At the same time, this means that E (D (E (B))) = E (B) for all possible B applies. If m> n, the decryption map would therefore be a map D that maps m-bit data blocks to n-bit data blocks and would only be defined for E (B) blocks. If the illustrations are connected in series, it should therefore be ensured that the
Abbildung D nur auf E(B), also auf die Bildmenge der Abbildung E wirkt. Für m = n, wie es vorliegend der Fall ist, gilt also auch E(D(B)) = B für alle möglichen n-Bit-Blöcke, da die Bildmenge von Ξ gleich der Definitionsmenge von D ist. Frei- lieh sollte vorzugsweise E unterschiedlich zu D sein, d.h. E sollte nicht selbstinvertierend sein.Figure D only affects E (B), i.e. the image set in Figure E. For m = n, as is the case here, E (D (B)) = B also applies to all possible n-bit blocks, since the image set of Ξ is equal to the definition set of D. Loosely E should preferably be different from D, i.e. E should not be self-inverting.
Würden die Verschlüsselungsergebnisdatenblöcke an dem Verschlusselungsausgang der Verschlüsselungseinrichtung 12 der Entschlüsselungseinrichtung 14 bzw. ihrem Entschlüsselungs- eingang direkt zugeführt werden, so würden sich ihre Wirkungen gegenseitig aufheben, d.h. ein Datenblock am Verschlüsselungseingang der Verschlüsselungseinrichtung 12 würde am Entschlüsselungsausgang der Entschlüsselungseinrichtung 14 unverändert ausgegeben werden. Dies wird, wie es noch im folgenden beschrieben werden wird, durch die Permutationseinrichtungen 16 bzw. 18 vermieden. Die Entschlüsselungseinrichtung 14 kann, wie die Verschlüsselungseinrichtung 12 auch, durch, eine oder mehrere S-Boxen realisiert sein, nämlich durch. S-Boxen, die zu denjenigen invers sind, die die Verschlüsselungseinrichtung 12 bilden.If the encryption result data blocks at the encryption output of the encryption device 12 of the decryption device 14 or their decryption input are fed directly, their effects would cancel each other out, i.e. a data block at the encryption input of the encryption device 12 would be output unchanged at the decryption output of the decryption device 14. As will be described in the following, this is avoided by the permutation devices 16 and 18, respectively. Like the encryption device 12, the decryption device 14 can be implemented by one or more S-boxes, namely by. S-boxes that are inverse to those that form the encryption device 12.
Die Permutationseinrichtung 16 umfasst einen n-Bit-Permuta- tionseingang und einen n-Bit-Permutationsausgang. Die Permu- tationseinrichtung 16 ist vorgesehen, um die Bits eines n- Bit-Datenblocks am Permutationseingang zu permutieren, d.h. umzuordnen, und den permutierten n-Bit-Datenblock am Permuta-
tionsausgang auszugeben. Anders ausgedrückt, besteht der n- Bit-Datenblock am Permutationseingang aus einer Folge von n Bits, wobei die Reihenfolge derselben durch die Permutation durch die Permutationseinrichtung 16 geändert wird. Die Permutationseinrichtung 18 weist ebenfalls einen Permutationseingang und einen Permutationsausgang auf. Sie ist vorgesehen, um die n Bits eines n-Bit-Datenblocks am Permutationseingang genau invers zu der Permutation der Permutationseinrichtung 16 zu permutieren. Das bedeutet, würde ein n-Bit- Datenblock mit der Reihenfolge der Bits an dem Permutationseingang der Invers-Permutationseinrichtung 18 angelegt werden, wie sie sich nach Permutation durch die Permutationseinrichtung 16 ergeben hat, ergäbe sich am Permutationsausgang der Invers-Permutationseinrichtung 18 wieder der n-Bit- Datenblock mit der Bitfolge, wie sie am Permutationseingang der Permutationseinrichtung 16 vorlag.The permutation device 16 comprises an n-bit permutation input and an n-bit permutation output. The permutation device 16 is provided in order to permute the bits of an n-bit data block at the permutation input, ie to rearrange them, and to permute the permuted n-bit data block at the permutation input. output output. In other words, the n-bit data block at the permutation input consists of a sequence of n bits, the sequence of which is changed by the permutation by the permutation device 16. The permutation device 18 also has a permutation input and a permutation output. It is provided in order to permute the n bits of an n-bit data block at the permutation input exactly inversely to the permutation of the permutation device 16. This means that if an n-bit data block with the order of the bits were applied to the permutation input of the inverse permutation device 18, as it resulted after permutation by the permutation device 16, the n would again arise at the permutation output of the inverse permutation device 18 -Bit data block with the bit sequence as it was present at the permutation input of the permutation device 16.
Sowohl Permutationseinrichtung 16 als auch Invers-Permutationseinrichtung 18 können als Leiterbahnen implementiert sein, die die einzelnen n Biteingänge am Permutationseingang mit unterschiedlichen der n Bitausgänge am Permutationsausgang verbinden.Both permutation device 16 and inverse permutation device 18 can be implemented as conductor tracks which connect the individual n bit inputs at the permutation input to different ones of the n bit outputs at the permutation output.
Die Steuereinrichtung 20 ist nun in der Lage, zu verschlüs- selnde Datenblöcke am Eingang 22 und zu entschlüsselndeThe control device 20 is now able to encrypt data blocks at the input 22 and to decrypt them
Datenblöcke 24 auf verschiedene Weisen durch die Einrichtungen 12, 14, 16 und 18 zu leiten. Gemäß dem Ausführungsbei- spiel von Fig. 1 sorgt die Steuereinrichtung 20 dafür, dass ein zu verschlüsselnder Datenblock am Dateneingang 22 die Abfolge von Verschlüsselungseinrichtung 12, Permutationseinrichtung 16 und Entschlüsselungseinrichtung 14 durchläuft. Dabei wird der zu verschlüsselnde Datenblock 22 nacheinander von der Verschlüsselungseinrichtung 12, der Permutationseinrichtung 16 und der Entschlüsselungseinrichtung 14 verarbei- tet. Zunächst gelangt der zu verschlüsselnde Datenblock - er sei mit B bezeichnet - zu dem Verschlüsselungseingang der Verschlüsselungseinrichtung 12. Dort wird er gemäß der Ver-
Schlüsselungsabbildung E auf einen Verschlüsselungsergebnisdatenblock C = E(B) abgebildet. Über die n Bits des n-Bit- Verschlüsselungsergebnisdatenblocks C ist freilich eine Reihenfolge definiert. Mit dieser Reihenfolge wird der Ver- schlüsselungsergebnisdatenblock C an die Permutationseinrichtung 16 angelegt. Die Permutation werde im folgenden P bezeichnet .Routing data blocks 24 through devices 12, 14, 16 and 18 in various ways. According to the exemplary embodiment of FIG. 1, the control device 20 ensures that a data block to be encrypted at the data input 22 runs through the sequence of encryption device 12, permutation device 16 and decryption device 14. The data block 22 to be encrypted is processed in succession by the encryption device 12, the permutation device 16 and the decryption device 14. First of all, the data block to be encrypted - it is denoted by B - arrives at the encryption input of the encryption device 12. Key mapping E is mapped to an encryption result data block C = E (B). An order is of course defined via the n bits of the n-bit encryption result data block C. In this sequence, the encryption result data block C is applied to the permutation device 16. The permutation is referred to in the following P.
7Λm Permutationsausgang ergibt sich dann ein Datenblock mit zu dem Verschlüsselungsergebnisdatenblock C geänderter Reihenfolge der Bits, d.h. C = P(C) . Mit dieser geänderten Reihenfolge wird der Datenblock C an dem Entschlüsselungseingang der Entschlüsselungseinrichtung 14 angelegt. Wie gesagt, würde ohne die Permutation die Entschlüsselungseinrichtung 14 den Block nun auf B abbilden. Nun aber bildet diese denAt the permutation output there is a data block with the order of the bits changed to the encryption result data block C, i.e. C = P (C). With this changed order, the data block C is applied to the decryption input of the decryption device 14. As said, without the permutation, the decryption device 14 would now map the block to B. But now this forms the
Datenblock C gemäß der Entschlüsselungsabbildung D auf einen Entschlüsselungsergebnisdatenblock ab, das gleichzeitig das Endergebnis der Verschlüsselung gemäß dem vorliegenden Ausführungsbeispiel darstellt und hier mit CErgebnis angegeben wird. Es gilt CErgebnis = D(C') oder, ausgedrückt für die gesamte Abfolge von durchlaufenen Abbildungen, CErgebnis = D(P(E(B))) .Data block C according to the decryption mapping D on a decryption result data block from which simultaneously represents the final result of the encryption according to the present embodiment, and is shown here with C b n is Erge. C result i s = D (C ') or, expressed for the entire sequence of images that have been run through, C result i s = D (P (E (B))) applies .
Die Steuereinrichtung 20 sorgt dafür, dass zu entschlüsselnde Datenblöcke am Eingang 24 eine andere Abfolge von Einrichtungen durchlaufen, nämlich die Abfolge von Verschlüsselungseinrichtung 12, Invers-Permutationseinrichtung 18 und Entschlüsselungseinrichtung 14. Es werde beispielsweise angenommen, dass der zu entschlüsselnde Datenblock der soeben erhaltene verschlüsselte Datenblock CErgebnis ist. Dieser DatenblockThe control device 20 ensures that data blocks to be decrypted at the input 24 run through a different sequence of devices, namely the sequence of encryption device 12, inverse permutation device 18 and decryption device 14. It is assumed, for example, that the data block to be decrypted is the encrypted data block just received C e esult is. This data block
CErgebnis wird von dem Eingang 24 dem Verschlüsselungseingang der Verschlüsselungseinrichtung 12 durchgeführt. Diese wendet auf den Datenblock die Verschlüsselungsabbildung E an. Am Verschlusselungsausgang der Verschlüsselungseinrichtung 12 ergibt sich deshalb ein Verschlüsselungsergebnisdatenblock von CErgebnis' = E(CErgebnis) = E(D(P(E(B)))) = P(E(B) ) = C . Die Abbildung durch die Verschlüsselungseinrichtung 12 macht also
genau die Entschlüsselungsabbildung rückgängig, die bei der Verschlüsselung am Ende durchgeführt worden ist. Am Ausgang der Verschlüsselungseinrichtung 12 ergibt sich also ein Verschlüsselungsergebnisdatenblock C , wie auch durch sequen- tielle Anwendung der Verschlüsselungsabbildung E und derC result i s is carried out by the input 24 to the encryption input of the encryption device 12. This applies the encryption mapping E to the data block. At the encryption output of the encryption device 12 there is therefore an encryption result data block of C result '= E (C result is) = E (D (P (E (B)))) = P (E (B)) = C. The encryption device 12 thus makes the mapping exactly the decryption mapping that was carried out at the end of the encryption. At the output of the encryption device 12 there is thus an encryption result data block C, as well as by sequential application of the encryption mapping E and
Permutation P an dem ursprünglich verschlüsselten Datenblock erhalten werden würde.Permutation P would be obtained on the originally encrypted data block.
Der Errgebnisverschlüsselungsdatenblock C am Ausgang der Verschlüsselungseinrichtung 12 wird nun dem Permutationseingang der Invers-Permutationseinrichtung 18 zugeführt. Durch diesen Vorgang wird die Reihenfolge der n Bits des n-Bit- Verschlüsselungsergebnisdatenblocks geändert, und zwar genau auf eine Weise, die zu derjenigen umgekehrt ist, die angewen- det wurde, um das Verschlüsselungszwischenergebnis C bei der Verschlüsselung zu erhalten. Das Ergebnis am Permutationsausgang 18 ist CErgebnis" = P-1(C) = P_1(P(E(B))) = E(B) = C. Der Verschlüsselungsergebnisdatenblock C wird folglich bei der Entschlüsselung nicht mit der Reihenfolge der Bits, wie er am Verschlüsselungsausgang vorliegt, an den Entschlüsselungseingang der Entschlüsselungseinrichtung 14 angelegt, sondern mit der durch die Invers-Permutationseinrichtung 18 geänderten Reihenfolge, nämlich als CErgebnis' ' = C. Die Entschlüsselungseinrichtung 14 bildet diesen Datenblock C an ihrem Entschlüs- selungseingang gemäß der Entschlüsselungsabbildung D auf D(E(B) ) = B ab, also wieder der Datenblock im Klartext.The result encryption data block C at the output of the encryption device 12 is now fed to the permutation input of the inverse permutation device 18. This operation changes the order of the n bits of the n-bit encryption result data block in a manner exactly the opposite of that used to obtain the intermediate encryption result C during encryption. The result at the permutation output 18 is C result ni s "= P -1 (C) = P _1 (P (E (B))) = E (B) = C. The encryption result data block C is consequently not in order when decrypting of the bits as present at the encryption output are applied to the decryption input of the decryption device 14, but with the order changed by the inverse permutation device 18, namely as C result '' = C. The decryption device 14 forms this data block C at its decryption selection input according to decryption mapping D to D (E (B)) = B, again the data block in plain text.
Folglich ist die Vorrichtung 10 von Fig. 1 in der Lage, sowohl Datenblöcke im Klartext in Chiffrat-Datenblöcke zu verschlüsseln als auch Chiffrat-Datenblöcke wieder zurück in Datenblöcke im Klartext zu entschlüsseln, wobei Verschlüsselungseinrichtung 12 und Entschlüsselungseinrichtung 14 sowohl bei Verschlüsselung als auch bei Entschlüsselung bei der Verarbeitung der zu entschlüsselnden bzw. zu verschlüsselnden Datenblöcke beteiligt sind.
Bezug nehmend auf die Beschreibung von Fig. 1 wird noch kurz darauf hingewiesen, dass es freilich möglich wäre, zu entschlüsselnde und zu verschlüsselnde Datenblöcke nicht zuerst durch die Verschlüsselungseinrichtung 12, sondern durch die Entschlüsselungseinrichtung 14 zu „schleusen", und erst am Ende durch die Verschlüsselungseinrichtung 12, so dass sich für einen zu verschlüsselnden Datenblock B das Chiffrat CErgebnis = E(P(D(B))) und umgekehrt für das Chiffrat CErgebnis sich wieder der Klartext-Datenblock B aus E (P-1 (D (CErgebnis) ) ) ergäbe, solange nur n = m gilt.Consequently, the device 10 of FIG. 1 is able both to encrypt data blocks in plain text in cipher data blocks and to decrypt cipher data blocks back into data blocks in plain text, encryption device 12 and decryption device 14 both for encryption and for decryption are involved in the processing of the data blocks to be decrypted or encrypted. With reference to the description of FIG. 1, it is briefly pointed out that it would of course be possible to “lock” data blocks to be decrypted and encrypted not first through the encryption device 12, but through the decryption device 14, and only at the end through the encryption means 12, so that for a data to be encrypted block B, the ciphertext C OUTCOME = e (P (D (B))) and vice versa for the ciphertext C He result back to the plaintext data block B from e (P -1 ( D (C result i s ))) would result as long as only n = m.
In Bezug auf Fig. 1 wird noch darauf hingewiesen, dass durch geeignete Einschränkung der erlaubten n-Bit-Klartext- Datenblöcke unter den möglichen n-Bit-Kombinationen und geeignete Definition von E als Abbildung von n- auf m-Bit- Datenblöcke und von P, es erzielt werden könnte, dass auch für m > n E(D(P(B))) = P(B) für alle erlaubten B und alle möglichen P gilt, beispielsweise mit n = 3 und m = 6, wenn sichergestellt wird, dass alle 8 erlaubten 3-Bit-Datenblöcke durch Ξ nur auf 8 der 68 möglichen 6-Bit-Datenblöcke abgebildet werden, und die Permutation nur so stattfindet, dass der permutierte Block P(B) wieder einer der acht unter den 120 möglichen ist, oder mit n = 5 und m = 6, wenn nur 30 der 32 möglichen 5-Bit-Datenblöcke erlaubt sind und durch E diese nur auf die 30 der 68 möglichen 6-Bit-Datenblöcke abgebildet werden, zwei Bits mit 1 und 4 Bits mit 0 aufweisen oder umgekehrt, da dann durch eine Permutation jeder 6-Bit- Datenblock wieder auf einen solchen mit derselben Eigenschaft abgebildet wird.With reference to FIG. 1, it is pointed out that by appropriately restricting the permitted n-bit plaintext data blocks among the possible n-bit combinations and appropriately defining E as a mapping from n- to m-bit data blocks and from P, it could be achieved that also for m> n E (D (P (B))) = P (B) for all permitted B and all possible P, for example with n = 3 and m = 6, if ensured is that all 8 permitted 3-bit data blocks are mapped by Ξ only to 8 of the 68 possible 6-bit data blocks, and the permutation only takes place in such a way that the permuted block P (B) is again one of the eight among the 120 possible or with n = 5 and m = 6, if only 30 of the 32 possible 5-bit data blocks are allowed and by E these are only mapped to the 30 of the 68 possible 6-bit data blocks, two bits with 1 and 4 Have bits with 0 or vice versa, because then by permutating each 6-bit data block back to one with the same same property is mapped.
Im folgenden wird weiterhin davon ausgegangen, dass n = m gilt. In diesem Fall ist es möglich, dass die Steuereinrichtung 20 die zu verschlüsselnden Datenblöcke die Abfolge von Verschlüsselungseinrichtung 12, Permutationseinrichtung 16 und Entschlüsselungseinrichtung 14 mehr als nur einmal durchlaufen lässt, und dementsprechend auch die zu entschlüsselnden Datenblöcke mehrmals die Abfolge von Verschlüsselungsein-
richtung 12, Invers-Permutationseinrichtung 18 und Entschlüsselungseinrichtung 14. Durch das mehrmaliges Durchlaufen kann die Sicherheit der verschlüsselten, gespeicherten daten gesteigert werden.In the following it is further assumed that n = m. In this case, it is possible for the control device 20 to have the data blocks to be encrypted run through the sequence of encryption device 12, permutation device 16 and decryption device 14 more than once, and accordingly the data blocks to be decrypted also repeat the sequence of encryption steps. direction 12, inverse permutation device 18 and decryption device 14. The security of the encrypted, stored data can be increased by going through it several times.
Fig. 2 zeigt schematisch Abfolgen von Verarbeitungen, für die die Steuereinrichtung 20 bei Verschlüsselung oder Entschlüsselung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung sorgt. In Fig. 2 wird exemplarisch davon ausgegan- gen, dass n = m = 32 ist, dass also zu verschlüsselnder Datenblock und zu entschlüsselnder Datenblock sowie verschlüsselter und entschlüsselter Datenblock 32 Bit lang ist.2 schematically shows sequences of processing which the control device 20 provides for encryption or decryption according to an exemplary embodiment of the present invention. 2, it is assumed as an example that n = m = 32, that is to say that the data block to be encrypted and the data block to be decrypted and the encrypted and decrypted data block are 32 bits long.
Die obere Zeile von Fig. 2 stellt den Ablauf bei der Ver- schlüsselung dar, wie er durch die Steuereinrichtung 20 bewirkt wird. Ein zu verschlüsselnder Datenblock (ganz links) wird nacheinander iterativ bzw. wiederholt in sogenannten Runden 30 gleichen seriellen Verarbeitungen unterzogen. Jede Runde 30 umfasst eine Abfolge einer Verschlüsselungsabbildung E, einer Permutation P, einer Entschlüsselung D und einerThe upper line of FIG. 2 represents the encryption process as it is effected by the control device 20. A data block to be encrypted (far left) is successively subjected to the same serial processing 30 times in iterative or repeated fashion. Each round 30 comprises a sequence of an encryption map E, a permutation P, a decryption D and one
Permutation P. Kurz wieder Bezug nehmend auf Fig. 1 bedeutete dies, die Steuereinrichtung 20 leitete zu verschlüsselnde Datenblöcke wiederholt durch die Verschlüsselungseinrichtung 12, die Permutationseinrichtung 16, die Entschlüsselungsein- richtung 14 und die Permutationseinrichtung 16, und zwar sequentiell in dieser Reihenfolge. Am Ende (in Fig. 2 ganz rechts) ergäbe sich der verschlüsselte Datenblock am Ausgang 26.Permutation P. Briefly referring again to FIG. 1, this meant that the control device 20 repeatedly passed data blocks to be encrypted through the encryption device 12, the permutation device 16, the decryption device 14 and the permutation device 16, sequentially in this order. At the end (on the far right in FIG. 2), the encrypted data block would result at the output 26.
Die Entschlüsselung ist in Fig. 2 in der unteren Zeile dargestellt. Ein zu entschlüsselnder Datenblock wird einer Abfolge von Abbildungen unterworfen, die sich ergibt, wenn man die obere Zeile umgekehrt liest, d.h. von rechts aus, d.h. die Verarbeitungsreihenfolge umkehrt, und dabei jede Abbildung invertiert, d.h. P_1 liest anstatt P, E liest anstatt D und D liest anstatt E, also jede Einrichtung durch ihre inverse Einrichtung vertauscht. Zu entschlüsselnde Datenblöcke werden
folglich auch in Runden 32 verarbeitet, wobei jede Runde 32 eine Abfolge von Abbildungen P"1, E, P-1 und D aufweist. Am Ende (ganz rechts in Fig. 2) ergibt sich ein entschlüsselter Datenblock.The decryption is shown in Fig. 2 in the lower line. A data block to be decrypted is subjected to a sequence of images which results when the top line is read upside down, ie from the right, ie the processing sequence is reversed, and each image is inverted, ie P _1 reads instead of P, E reads instead of D. and D reads instead of E, which means that each device is exchanged for its inverse device. Data blocks to be decrypted consequently also processed in rounds 32, each round 32 having a sequence of maps P "1 , E, P -1 and D. At the end (far right in FIG. 2) there is a decrypted data block.
Aus Fig. 2 ist deutlich zu erkennen, dass die Runden 30 und 32 eigentlich Doppelrunden darstellen, bei denen eine Verschlüsselung E und eine Entschlüsselung bzw. eine Entschlüsselungsabbildung D' durchgeführt wird. Sowohl bei Verschlüs- seiung als auch Entschlüsselung werden bei dem Ausführungsbeispiel von Fig. 2 folglich die Verschlüsselungseinrichtung und die Entschlüsselungseinrichtung bzw. die zugrundeliegende Hardware zu gleichen Teilen zeitlich versetzt verwendet. Eine Verschlüsselung nach der oberen Zeile in Fig. 2 kann in der Vorrichtung von Fig. 1 freilich zeitgleich zu einer Entschlüsselung nach der unteren Zeile in Fig. 2 durchgeführt werden, wenn die beiden Vorgänge pipelinemäßig versetzt zueinander ausgeführt werden, so dass die Verschlüsselungseinrichtung E gerade für die Verschlüsselung eingesetzt wird, während die Entschlüsselungseinrichtung gerade für die Entschlüsselung arbeitet.It can be clearly seen from FIG. 2 that the rounds 30 and 32 actually represent double rounds in which encryption E and decryption or decryption mapping D 'is carried out. 2, the encryption device and the decryption device or the underlying hardware are therefore used with a time offset, both in the case of encryption and decryption. Encryption according to the upper line in FIG. 2 can of course be carried out in the device of FIG. 1 at the same time as decryption according to the lower line in FIG. 2 if the two processes are carried out in a pipelined manner, so that the encryption device E is straight is used for encryption while the decryption device is currently working for decryption.
Das Ausführungsbeispiel von Fig. 2 kann freilich beliebig variiert werden. Es ist nicht zwingend, dass bei der Ver- schlüsselung lediglich die Permutation P verwendet wird, während bei der Entschlüsselung lediglich die inverse Permutation P_1 verwendet wird. Alternativ könnte beispielsweise eine Verschlüsselungsrunde 30 auch E, P, D, P_1 lauten, während die entsprechende Entschlüsselungsrunde 32 P, E, P_1, D lautete.The embodiment of FIG. 2 can of course be varied as desired. It is not imperative that only the permutation P is used for the encryption, while only the inverse permutation P _1 is used for the decryption. Alternatively, for example, an encryption round 30 could also be E, P, D, P _1 , while the corresponding decryption round 32 was P, E, P _1 , D.
Bei den vorhergehenden Ausführungsbeispielen von Fig. 1 und 2 wurde wenig auf die Implementation der Verschlüsselungs- und Entschlüsselungseinrichtung eingegangen. Anhand der Fig. 3a, 3b und Fig. 4 werden im folgenden Ausführungsbeispiele beschrieben, bei denen die Verschlüsselungsabbildung und die Entschlüsselungsabbildung durch 4x4-S-Boxen implementiert
sind, die jeweils vier unterschiedliche Bits des Datenblocks am Verschlüsselungseingang auf vier unterschiedliche Bits des Datenblocks am Verschlüsselungsausgang abbilden. Der Vorteil hierbei besteht darin, dass die Implementierung einer S-Box, wie z.B. einer 32-Bit-S-Box, weniger Hardwareaufwand bedeutet, wenn sie durch kleinere S-Boxen, wie z.B. acht 4x4-S- Boxen, implementiert wird.In the preceding exemplary embodiments of FIGS. 1 and 2, little attention has been paid to the implementation of the encryption and decryption device. In the following, exemplary embodiments are described with reference to FIGS. 3a, 3b and 4, in which the encryption mapping and the decryption mapping are implemented by 4x4-S boxes which each map four different bits of the data block at the encryption input to four different bits of the data block at the encryption output. The advantage here is that the implementation of an S-Box, such as a 32-bit S-Box, means less hardware effort if it is implemented by smaller S-Boxes, such as eight 4x4-S-Boxes.
Fig. 3a zeigt eine Verschlüsselung gemäß einem Ausführungs- beispiel der vorliegenden Erfindung. Wie bei dem Ausführungsbeispiel von Fig. 1 stehen zur Verschlüsselung mehrere Einrichtungen zur Verfügung, wobei für jede Einrichtung, die eine bestimmte Abbildung durchführt, eine weitere Einrichtung vorhanden ist, die die hierzu inverse Abbildung durchführt. Bei dem Ausführungsbeispiel von Fig. 3a dienen 4x4-S-Boxen Si - SQ als Verschlüsselungseinrichtung 12' , während acht dazu inverse S-Boxen S^1 - Sg 1 als Entschlüsselungseinrichtung 14' dienen. Ferner stehen zwei identische Abbildungseinrichtungen 40 und 42 zur Verfügung, die einen 32-Bit-Datenblock an ihrem 32-Bit-Dateneingang gemäß einer selbstinvertierenden linearen Abbildung bzw. linearen Transformation auf einen 32-Bit- Datenblock an ihrem Datenausgang ausgeben. Ferner sind zwei Rotationseinrichtungen 44 und 46 vorgesehen, die einen 32- Bit-Datenblock an ihrem Rotationseingang gemäß einer Bitrota- tion R um eine vorbestimmt Anzahl von Bits in eine vorbestimmte Richtung rotieren und das Ergebnis der Rotation an ihrem Rotationsausgang ausgeben. Schließlich sind noch zwei 32-Bit-XOR-Verknüpfungseinrichtungen vorgesehen, die aus jeweils 32 XOR-Gattern bestehen, die bitweise die 32 Bit eines 32-Bit-Datenblocks mit den Bits eines 32-Bit-3a shows an encryption according to an exemplary embodiment of the present invention. As in the exemplary embodiment in FIG. 1, a plurality of devices are available for encryption, with a further device being available for each device that carries out a specific mapping, which carries out the inverse mapping for this. In the embodiment of FIG. 3a, 4x4-S-boxes Si-SQ serve as encryption device 12 ', while eight S-boxes S ^ 1 -S g 1, which are inverse thereto, serve as decryption device 14'. Furthermore, two identical mapping devices 40 and 42 are available which output a 32-bit data block at their 32-bit data input in accordance with a self-inverting linear mapping or linear transformation to a 32-bit data block at their data output. Furthermore, two rotation devices 44 and 46 are provided, which rotate a 32-bit data block at their rotation input according to a bit rotation R by a predetermined number of bits in a predetermined direction and output the result of the rotation at their rotation output. Finally, two 32-bit XOR logic devices are provided, each consisting of 32 XOR gates, which bit by bit the 32 bits of a 32-bit data block with the bits of a 32-bit
Rundenschlüssels, und zwar einmal Ki und das andere Mal K2, einer XOR-Verknüpfung unterziehen und das Ergebnis als 32- Bit-Datenblock ausgeben. Diese XOR-Verknüpfungseinrichtungen sind mit 48 bzw. 50 angezeigt.Round key, namely once Ki and the other time K 2 , XOR and output the result as a 32-bit data block. These XOR links are indicated at 48 and 50, respectively.
Gemäß dem Verschlüsselungsbeispiel von Fig . 3a durchläuft ein Klartext-Datenblock B nur eine Doppelrunde 52 , d. h . eine
Verarbeitungsabfolge, die einmal bzw. in einer Teilrunde eine Verschlüsselung 12' und das andere Mal bzw. in der anderen Teilrunde eine Entschlüsselung 14' aufweist. Die Doppelrunde 52 ist also in zwei Teilrunden gegliedert, nämlich 52a und 52b, die sequentiell durchgeführt werden. Die erste Teilrunde 52a, die der Klartext-Datenblock B durchläuft, besteht aus der Abfolge von XOR-Verknüpfung 48 mit dem Rundenschlüssel Ki, Verschlüsselungsabbildung durch die S-Boxen Si - S8, lineare Transformation 40 und anschließende Rotation 44. Nach Durchlaufen der Teilrunde 52a erfolgt eine Verarbeitung durch die Teilrunde 52b, die eine Abfolge der XOR-Verknüpfung mit dem Rundenschlüssel K2, eine Entschlüsselungsabbildung durch die inversen S-Boxen ST/1 - S"1 , lineare Transformation 42 undAccording to the encryption example of Fig. 3a, a plaintext data block B only goes through a double round 52, i. H . a Processing sequence which has an encryption 12 'once or in one partial round and a decryption 14' the other time or in the other partial round. The double round 52 is thus divided into two partial rounds, namely 52a and 52b, which are carried out sequentially. The first sub-round 52a, which the plaintext data block B passes through, consists of the sequence of XOR link 48 with the round key Ki, encryption mapping by the S-boxes Si-S 8 , linear transformation 40 and subsequent rotation 44. After passing through the sub-round 52a, processing is carried out by the sub-round 52b, which includes a sequence of the XOR combination with the round key K 2 , a decryption mapping by the inverse S-boxes ST / 1 -S "1 , linear transformation 42 and
Rotation 46 aufweist. Nach der Teilrunde 52b ergibt sich das Chiffrat C bzw. der Chiffrat-Datenblock C.Rotation 46 has. After sub-round 52b, cipher C or cipher block C results.
Ein wenig genauer ausgedrückt, durchläuft nach dem Ausführungsbeispiel von Fig. 3a ein zu verschlüsselnder Datenblock B die XOR-Verknüpfungseinrichtung 48. Das Ergebnis am Ausgang der XOR-Verknüpfungseinrichtung 48 ist ein Datenblock, dessen Bits an den Stellen, an denen der Rundenschlüssel Kx eine logische Eins aufweist, zu den entsprechenden Bits des Datenblocks B invertiert ist, während die restlichen Bits zu den entsprechenden Bits des Datenblocks B identisch sind.Expressed a little more precisely, according to the exemplary embodiment in FIG. 3a, a data block B to be encrypted passes through the XOR logic device 48. The result at the output of the XOR logic device 48 is a data block, the bits of which at the points where the round key K x a has logic one, is inverted to the corresponding bits of data block B, while the remaining bits are identical to the corresponding bits of data block B.
Danach werden die Bits den S-Box-Eingängen der S-Boxen Si - S8 zugeführt, und zwar die höchstwertigen vier Bits 31 - 28 der S-Box Sx , die nächst niedrigwertigeren Bits 27 - 24 der S-Box S usw . Die S-Boxen Si - Sg bilden die an ihren S-Box- Eingängen anliegenden 4-Bit-Worte auf abgebildete 4-Bit-Worte gemäß einer ihnen zugeordneten Abbildungsvorschrift ab, die vorzugsweise nichtlinear und für alle S-Boxen unterschiedlich ist. Die vier Bits an den S-Box-Ausgängen der S-Boxen Si - S8 werden daraufhin als 32-Bit-Datenblock einem 32-Bit-Datenein- gang der Lineartransformationseinrichtung 40 zugeführt, und zwar wiederum die vier Bits der S-Box Si als die höchstwertigen vier Bits 31 - 28, die vier ausgegebenen Bits der S-Box
S2 als die nächst niedrigwertigeren Bits 27 - 24 ... und die Bits der S-Box S8 als die Bits 3 - 0.Then the bits are fed to the S-box inputs of the S-boxes Si - S 8 , namely the most significant four bits 31 - 28 of the S-Box S x , the next least significant bits 27 - 24 of the S-Box S, etc. The S-Boxes Si - Sg map the 4-bit words present at their S-Box inputs to 4-bit words shown in accordance with a mapping rule assigned to them, which is preferably non-linear and different for all S-Boxes. The four bits at the S-box outputs of the S-boxes Si-S 8 are then supplied as a 32-bit data block to a 32-bit data input of the linear transformation device 40, namely the four bits of the S-Box Si as the most significant four bits 31-28, the four output bits of the S-box S 2 as the next least significant bits 27 - 24 ... and the bits of the S-Box S 8 as bits 3 - 0.
Die Lineartransformationseinrichtung 40 bildet den Datenblock an ihrem Dateneingang durch eine lineare Abbildung auf einen anderen 32-Bit-Datenblock ab. Bei dem vorliegenden Ausführungsbeispiel ist die lineare Abbildung L sogar selbstinvertierend, so dass die zweimalige Ausführung von L an einem Datenblock hintereinander wieder den Datenblock ergäbe, d.h. L( (B)) = B. Der sich ergebende Datenblock am Datenausgang der Lineartransformationseinrichtung 40 wird an die Rotationseinrichtung 44 weitergeleitet, welche die Bits des an ihrem Dateneingang anliegenden Datenblocks um eine von der Rotation R abhängende Anzahl von Bits nach rechts oder links verschiebt, und die dabei herausgeschobenen Bits wieder an den freiwerdenden Bitstellen anhängt. Der Datenblock am Ausgang der Rotationseinrichtung 44 stellt damit das Ergebnis der ersten Teilrunde 52a dar.The linear transformation device 40 maps the data block at its data input by linear mapping to another 32-bit data block. In the present embodiment, the linear mapping L is even self-inverting, so that executing L twice on a data block would result in the data block again, i.e. L ((B)) = B. The resulting data block at the data output of the linear transformation device 40 is forwarded to the rotation device 44, which shifts the bits of the data block applied to its data input to the right or left by a number of bits depending on the rotation R, and appends the bits pushed out again to the bit positions that become free. The data block at the output of the rotating device 44 thus represents the result of the first partial round 52a.
Dieser 32-Bit-Datenblock wird dann wieder einer XOR-This 32-bit data block is then again an XOR
Verknüpfung 50 mit nun einem Rundenschlüssel K unterzogen, wobei sich wiederum die Bitstellen invertieren, an denen der Rundenschlüssel K2 eine logische Eins aufweist. Jeweils vier aufeinanderfolgende Bits des sich ergebenden Datenblocks werden dann den inversen S-Boxen S"1 - S"1 an ihren S-Box-Linkage 50 is now subjected to a round key K, in turn inverting the bit positions at which the round key K 2 has a logical one. In each case four successive bits of the resulting data block are then transferred to the inverse S-boxes S "1 - S " 1 on their S-box
Eingängen zugeführt, die dann inverse Abbildungen an den zugeführten 4-Bit-Wörtern durchführen, nämlich die S-Box S^1 eine zu der Abbildung der S-Box Si inverse Abbildung, die S- Box S"1 eine zu der Abbildung der S-Box S2 inverse Abbildung usw. Die 4-Bit-Wörter an den S-Box-Ausgängen der S-Boxen S^1 - Sg 1 bilden wiederum einen 32-Bit-Datenblock, der an dieInputs supplied, which then perform inverse mapping on the supplied 4-bit words, namely the S-box S ^ 1 one to the mapping of the S-box Si inverse mapping, the S-box S "1 one to the mapping of the S -Box S 2 inverse mapping, etc. The 4-bit words at the S-box outputs of the S-boxes S ^ 1 - S g 1 in turn form a 32-bit data block that is connected to the
Lineartransformationseinrichtung 42 angelegt wird, welcher dieselbe lineare Transformation ausführt wie die Lineartransformationseinrichtung 40. Das Ergebnis der linearen Abbildung ist ein 32-Bit-Datenblock, der dem Eingang der Rotationseinrichtung 46 zugeführt wird, und die diesen Datenblock um dieselbe Anzahl an Bits in dieselbe Richtung rotiert wie die
Rotationseinrichtung 44. Der sich ergebende 32-Bit-Datenblock ist das Chiffrat C bzw. der Chiffrat-Datenblock C.Linear transformation device 42 is applied, which carries out the same linear transformation as the linear transformation device 40. The result of the linear mapping is a 32-bit data block which is fed to the input of the rotation device 46 and which rotates this data block in the same direction by the same number of bits as the Rotation device 44. The resulting 32-bit data block is the ciphertext C or the ciphertext data block C.
Wie bei dem Ausführungsbeispiel von Fig. 2 könnte auch der Durchlauf mehrerer Doppelrunden 52 vorgesehen sein, um eine Verschlüsselung vorzunehmen, wie es auch bei der Implementierung der Verschlüsselung nach Fig. 3a nach dem Ausführungsbeispiel von Fig. 4 vorgesehen ist. Wie es aus der Darstellung der Verschlüsselungsabfolge von Fig. 3a zu entnehmen ist, wird zwischen jeder Verschlüsselungs- bzw. Entschlüsselungsabbildung 12' bzw. 14' eine Abbildung durchgeführt, die als Verschlüsselungsverknüpfungsabbildung bezeichnet werden kann. Während diese Verknüpfungsverschlüsselungsabbildung bei dem Ausführungsbeispiel von Fig. 1 beispielsweise die Permu- tation P war, ist dies bei dem Ausführungsbeispiel von Fig.As in the embodiment of FIG. 2, the passage of a plurality of double rounds 52 could also be provided in order to perform encryption, as is also provided for the implementation of the encryption according to FIG. 3a according to the embodiment of FIG. 4. As can be seen from the illustration of the encryption sequence in FIG. 3a, a mapping is carried out between each encryption or decryption map 12 'or 14', which can be referred to as an encryption link map. While this link encryption mapping was, for example, the permutation P in the exemplary embodiment of FIG. 1, this is the case in the exemplary embodiment of FIG.
3a die Abfolge der Lineartransformation L, Rotation R und der XOR-Rundenschlüsselverknüpfung 50. Während die S-Boxen Si - S8 und S"1 - Sg 1 für Konfusion im Chiffrat sorgen, d.h. dafür, dass die Beziehung zwischen den Rundenschlüsseln und dem Chiffrat so komplex wie möglich ist, sorgen die linearen3a shows the sequence of the linear transformation L, rotation R and the XOR round key combination 50. While the S boxes Si - S 8 and S "1 - S g 1 cause confusion in the cipher, that is to say that the relationship between the round keys and the Cipher is as complex as possible, ensure the linear
Abbildungen L durch mehrere XOR-Verknüpfungen der Bits in den einzelnen Datenblöcken dafür, dass kleine Änderungen im Klartext-Datenblock große Auswirkungen auf den Chiffrat- Datenblock haben. Vor allem sorgen die linearen Transformati- onen L aber dafür, dass wirksam die Bits, die von den S-Boxen Si - Sβ ausgegeben werden, mit anderen Bits anderer Bitpositionen vermischt und an andere Bitpositionen verschoben werden, damit dieselben nicht durch die einfache Rotation einfach an vorbestimmte nachfolgende inverse S-Boxen gelan- gen.Mapping L through multiple XOR operations of the bits in the individual data blocks to ensure that small changes in the plaintext data block have a major impact on the ciphertext data block. Above all, however, the linear transformations L ensure that the bits that are output by the S-boxes Si-Sβ are effectively mixed with other bits of other bit positions and shifted to other bit positions, so that they are not simply rotated get to predetermined subsequent inverse S-boxes.
Bezug nehmend auf Fig. 3a wird noch darauf hingewiesen, dass bei der Beschreibung des Verschlüsselungsvorgangs davon ausgegangen worden ist, dass zwei Lineartransformationsein- richtungen 40 und 42 sowie zwei Rotationseinrichtungen 44 und 46 sowie zwei XOR-Verknüpfungseinrichtungen 48 und 50 vorgesehen sind. Dies ist freilich nicht notwendig. Bei jeder
Teilrunde 52a - 52b könnte dieselbe Einrichtung durchlaufen werden, d.h. bei der Teilrunde 52a dieselbe Lineartransformationseinrichtung wie bei der Teilrunde 52b, bei der Teilrunde 52a dieselbe Rotationseinrichtung wie bei der Teilrunde 52b und bei der Teilrunde 52a dieselbe XOR-Verknüpfungseinrich- tung unter Verwendung des Schlüssels Kx wie bei der Teilrunde 52b, wobei bei letzterer jedoch der Rundenschlüssel K2 verwendet wird. Die mehrfache Nutzung dieser Einrichtungen würde lediglich den Steuerungsaufwand für die Steuerungseinrichtung (nicht gezeigt) erhöhen, um dafür zu sorgen, dass der Klartext-Datenblock B bzw. die aus demselben hergeleiteten Zwischenergebnisse die Einrichtungen in der geeigneten Reihenfolge durchlaufen. Das noch zu erörternde Ausführungsbeispiel von Fig. 4 bezieht sich auf ein Implementierungsbeispiel für den Verschlüsselungsablauf von Fig. 3a unter Verwendung jeweils zweier Einrichtungen, wie es in Fig. 3a dargestellt worden ist.With reference to FIG. 3a, it is also pointed out that in the description of the encryption process it was assumed that two linear transformation devices 40 and 42 as well as two rotation devices 44 and 46 and two XOR combination devices 48 and 50 are provided. Of course, this is not necessary. With everyone Partial round 52a-52b could be run through the same device, ie in the partial round 52a the same linear transformation device as in the partial round 52b, in the partial round 52a the same rotating device as in the partial round 52b and in the partial round 52a the same XOR combination device using the key K. x as in the partial round 52b, but in the latter the round key K 2 is used. The multiple use of these devices would only increase the control effort for the control device (not shown) in order to ensure that the plain text data block B or the intermediate results derived from the same pass through the devices in the appropriate order. The embodiment of FIG. 4 still to be discussed relates to an implementation example for the encryption process of FIG. 3a using two devices in each case, as has been illustrated in FIG. 3a.
Fig. 3b zeigt eine Entschlüsselungsrunde zur Entschlüsselung eines Chiffrat-Datenblocks C, wie er durch eine Verschlüsselungsrunde 52 von Fig. 3a erhalten wird. Die Entschlüsselungsrunde ist allgemein mit 60 angezeigt. Sie besteht wiederum aus zwei Teilrunden 62 und 64. Ein Chiffrat-Datenblock C durchläuft in einer Entschlüsselungsrunde dieselben S-Boxen Si - S8 bzw. S^1 - Sg 1 wie bei der Verschlüsselungsrunde vonFIG. 3b shows a decryption round for decrypting a cipher data block C, as is obtained by an encryption round 52 from FIG. 3a. The round of decryption is generally indicated at 60. It in turn consists of two sub-rounds 62 and 64. A cipher data block C runs in a decryption round the same S-boxes Si - S 8 or S ^ 1 - S g 1 as in the encryption round of
Fig. 3a, bzw. dieselbe Verschlüsselungs- und Entschlüsselungseinrichtung 12' und 14'. Die übrigen Einrichtungen können je nach Implementierung zu den Einrichtungen bei der Verschlüsselung teilweise identisch gewählt werden oder eigens für die Entschlüsselung vorgesehen werden. In Fig. 3b sind die übrigen Einrichtungen mit eigenen Bezugszeichen versehen, so als ob zu denjenigen von Fig. 3a verschieden wären, wobei das Ausführungsbeispiel bezüglich der Linearabbildungseinrichtungen eine gegenteilige Implementierungsmög- lichkeit darstellt.
Ein Chiffrat-Datenblock C durchläuft während einer Entschlüsselungsrunde 60 noch zwei Invers-Rotationseinrichtungen 66, 68, zwei Lineartransformationseinrichtungen 70 und 72 und zwei XOR—Verknüpfungseinrichtungen 74 und 76.Fig. 3a, or the same encryption and decryption device 12 'and 14'. Depending on the implementation, the other devices can be chosen to be identical to the devices in the encryption, or they can be provided specifically for the decryption. In FIG. 3b, the remaining devices are provided with their own reference numerals, as if they were different from those of FIG. 3a, the exemplary embodiment representing an opposite implementation option with respect to the linear imaging devices. A cipher block C goes through two inverse rotators 66, 68, two linear transformers 70 and 72 and two XOR links 74 and 76 during a decryption round 60.
Bei der Entschlüsselung werden an dem Chiffrat-Datenblock die Abbildungen durchgeführt, wie sie auch am Klartext-Datenblock im Fall der Verschlüsselung durchgeführt werden, allerdings in umgekehrter Reihenfolge und invertiert. Das heißt, dass der Rotation 46 von Fig. 3a entsprechend am Chiffrat- Datenblock C zunächst eine inverse Rotation durch die Rotationseinrichtung 66 durchgeführt wird, d.h. eine Verschiebung der Bits des Chiffrat-Datenblocks C um eine Anzahl von Bits, die zu derjenigen der Rotation R identisch ist, aber in die entgegengesetzte Richtung. Der so bitrotierte 32-Bit-During the decryption, the images are carried out on the cipher data block, as are also carried out on the plain text data block in the case of encryption, but in reverse order and inverted. That is, in accordance with the rotation 46 of FIG. 3a, an inverse rotation is first carried out by the rotation device 66 on the cipher data block C, i.e. a shift of the bits of the cipher frame C by a number of bits identical to that of the rotation R but in the opposite direction. The 32-bit bit-rotated
Datenblock wird an die Lineartransformationseinrichtung 70 weitergegeben. Diese führt dieselbe lineare Abbildung an dem eingehenden Datenblock durch wie auch die Lineartransformationseinrichtungen 40 und 42 und auch die Lineartransformati- onseinrichtung 72. Dies liegt daran, dass, wie im Vorhergehenden erwähnt, die lineare Abbildung gemäß dem vorliegenden Ausführungsbeispiel selbstinvertierend ist, so dass L(L(B)) = B gilt. Danach wird dem Durchlauf der S-1-Boxen von Fig. 3a entsprechend der sich am Ausgang der Lineartransformations- einrichtung 70 ergebende 32-Bit-Datenblock in Einheiten von 4-Bit-Wörtern den S-Boxen Si - S8 als der Verschlüsselungseinrichtung 12' zugeführt. Die sich ergebenden 32 Bits werden mit dem Rundenschlüssel K2 XOR-verknüpft . Diese Verknüpfung entspricht der Verknüpfung 50 von Fig. 3a. Auch die XOR- Verknüpfung 50 ist wie die selbstinvertierende Abbildung L eine selbstinvertierende Abbildung, da die nochmalige Invertierung der Bits an den Bitstellen, an denen der 2-Bit- Rundenschlüssel K2 eine Eins aufweist, wieder den ursprünglichen Datenblock liefert. Das Ergebnis der XOR-Verknüpfung 74 ist das Ergebnis der Teilrunde 62. Die Teilrunde 64, die sich an die Teilrunde 62 anschließt, entspricht dann einer Umkehr der Teilrunde 52a der Verschlüsselungsrunde 52 von Fig. 3a.
Dort wird der Datenblock dann sequentiell der Invers- Rotationseinrichtung 68, der Lineartransformationseinrichtung 72, den inversen S-Boxen 14' und der XOR-Verknüpfung mit dem Rundenschlüssel Ki zugeführt, woraufhin der Klartext- Datenblock M erhalten wird, wie er in Fig. 3a zu dem Chiffrat C verschlüsselt worden ist.Data block is passed on to the linear transformation device 70. This performs the same linear mapping on the incoming data block as the linear transformation devices 40 and 42 and also the linear transformation device 72. This is because, as mentioned above, the linear mapping according to the present exemplary embodiment is self-inverting, so that L ( L (B)) = B applies. Thereafter, the passage of the S -1 boxes of Figure 3a corresponding to the at the output of the linear transformation means 70 resulting 32-bit data block in units of 4-bit words of the S-boxes Si -. S 8 as the encryption device 12 'fed. The resulting 32 bits are XOR-linked with the round key K 2 . This link corresponds to link 50 of FIG. 3a. Like the self-inverting mapping L, the XOR link 50 is also a self-inverting mapping, since the repeated inversion of the bits at the bit positions at which the 2-bit round key K 2 has a one again supplies the original data block. The result of the XOR link 74 is the result of the sub-round 62. The sub-round 64, which follows the sub-round 62, then corresponds to a reversal of the sub-round 52a of the encryption round 52 from FIG. 3a. There, the data block is then sequentially fed to the inverse rotation device 68, the linear transformation device 72, the inverse S-boxes 14 'and the XOR linkage with the round key Ki, whereupon the plain text data block M is obtained, as shown in FIG. 3a the ciphertext C has been encrypted.
Bezug nehmend auf Fig. 4 wird nun eine Implementierung für eine Ver-/Entschlüsselungsvorrichtung beschrieben, die in der Lage ist, Verschlüsselung und Entschlüsselung auf die in Fig. 3a und 3b beschriebene Weise durchzuführen. Dabei umfasst die Ver-/Entschlüsselungsvorrichtung von Fig. 4 die Einrichtungen von Fig. 3a sowie zusätzlich einige Einrichtungen aus Fig. 3b. Zur Verschlüsselung und Entschlüsselung gemeinsam verwen- det werden jedoch die Lineartransformationseinrichtungen aus Fig. 3a, so dass diese in Fig. 4 lediglich die Bezugszeichen von Fig. 3a aufweisen, d.h. 40 und 42, und die Lineartransformationseinrichtungen 70 und 72 durch dieselben tatsächlichen Einrichtungen implementiert wurden.4, an implementation for an encryption / decryption device capable of performing encryption and decryption in the manner described in FIGS. 3a and 3b will now be described. The encryption / decryption device of FIG. 4 comprises the devices of FIG. 3a and additionally some devices of FIG. 3b. For encryption and decryption, however, the linear transformation devices from FIG. 3a are used together, so that in FIG. 4 they only have the reference numerals from FIG. 3a, i.e. 40 and 42, and the linear transformers 70 and 72 have been implemented by the same actual devices.
Die Ver-/Entschlüsselungsvorrichtung von Fig. 4 ist allgemein mit 100 angezeigt. Die Ver-/Entschlüsselungsvorrichtung 100 umfasst neben den Invers-Rotationseinrichtungen 66, 68, den Lineartransformationseinrichtungen 42, 40, den Rotationsein- richtungen 46, 44, den XOR-Verknüpfungseinrichtungen 48, 50,The encryption / decryption device of FIG. 4 is indicated generally at 100. The encryption / decryption device 100 comprises, in addition to the inverse rotation devices 66, 68, the linear transformation devices 42, 40, the rotation devices 46, 44, the XOR combination devices 48, 50,
74 und 76, den S-Boxen Si - S8 und den inversen S-Boxen S -1 174 and 76, the S-boxes Si - S 8 and the inverse S-boxes S -1 1
Sg 1 Schalter 102, 104, 106, 108, 110 und 112 sowie eine Steuereinheit 114. Ein Dateneingang 116 ist für den Empfang der zu verschlüsselnden Datenblöcke vorgesehen, ein Datenein- gang 118 für den Empfang der zu entschlüsselnden Datenblöcke, ein Ausgang 120 für die Ausgabe der verschlüsselten Datenblöcke und ein Ausgang 122 für die Ausgabe der entschlüsselten Datenblöcke .S g 1 switches 102, 104, 106, 108, 110 and 112 and a control unit 114. A data input 116 is provided for the reception of the data blocks to be encrypted, a data input 118 for the reception of the data blocks to be decrypted, an output 120 for the output of the encrypted data blocks and an output 122 for the output of the decrypted data blocks.
In Fig. 4 sind die die Einrichtung verbindenden Leitungen jeweils 32 -Bit-Leitungen und entweder durch eine gestrichelte Linie dargestellt oder durch eine durchgezogene Linie, wobei
gestrichelte Linien den Datenweg anzeigen, der für die Entschlüsselung relevant ist, während die durchgezogenen Leitungen bei der Verschlüsselung verwendet werden. Dateneingänge von Einrichtungen und Datenleitungen, die gemeinsam bei Entschlüsselung und Verschlüsselung verwendet werden, sind durch parallel laufende gestichelte und durchgezogene Linien dargestellt. Die Pfeile sollen das Lesen der Ver-/Entschlüs- selungsvorrichtung erleichtern.In Fig. 4, the lines connecting the device are each 32-bit lines and either represented by a broken line or by a solid line, wherein dashed lines indicate the data path that is relevant for decryption, while the solid lines are used for encryption. Data inputs from devices and data lines, which are used together for decryption and encryption, are shown by dashed and solid lines running in parallel. The arrows are intended to make it easier to read the encryption / decryption device.
Mit dem Verschlüsselungsteil beginnend ist die 32-Bit-XOR-Starting with the encryption part, the 32-bit XOR
Verknüpfungseinrichtung 48 mit ihrem Ausgang mit dem Eingang der S-Boxen Si - S8 verbunden. Der Ausgang der S-Boxen Sx - S8 ist mit einem 32-Bit-Eingang des 32-Bit-Schalters 106 verbunden. Der Schalter weist zwei 32-Bit-Ausgänge auf und ist vorgesehen, um gemäß einem Steuersignal c0 das derselbe an einem Steuereingang von der Steuereinheit 114 erhält, den Schaltereingang entweder mit dem einen Schalterausgang oder dem anderen Schalterausgang zu verbinden. Wie es im folgenden noch detailliert erörtert werden wird, ist ein erster der Schalterausgänge Verschlüsselungsrunden zugeordnet, während der andere Schalterausgang fest Entschlüsselungsrunden zugeordnet ist. Der Verschlüsselungsschalterausgang ist mit einem Eingang der Lineartransformationseinrichtung 40 verbunden. Der Ausgang der Lineartransformationseinrichtung 40 ist mit einem 32-Bit-Schaltereingang des Schalters 108 verbunden.Linking device 48 with its output connected to the input of the S-boxes Si - S 8 . The output of the S-boxes S x - S 8 is connected to a 32-bit input of the 32-bit switch 106. The switch has two 32-bit outputs and is provided in order to connect the switch input to either one switch output or the other switch output in accordance with a control signal c 0 which it receives at a control input from the control unit 114. As will be discussed in more detail below, a first of the switch outputs is assigned to encryption rounds, while the other switch output is permanently assigned to decryption rounds. The encryption switch output is connected to an input of the linear transformation device 40. The output of the linear transformation device 40 is connected to a 32-bit switch input of the switch 108.
Auch der Schalter 108 erhält an einem Steuereingang desselben das Signal c0 von der Steuereinheit 114 und verbindet dementsprechend den Schaltereingang entweder mit einem 32-Bit- Verschlüsselungsschalterausgang oder einem 32- BitEntschlüsselungsschalterausgang .The switch 108 also receives the signal c 0 from the control unit 114 at a control input thereof and accordingly connects the switch input to either a 32-bit encryption switch output or a 32-bit decryption switch output.
Der Verschlüsselungsschalterausgang des Schalters 108 ist mit einem Eingang der Rotationseinrichtung 44 verbunden. Ein Ausgang der Rotationseinrichtung 44 ist mit einem Datenein- gang der Verschlüsselungseinrichtung 50 verbunden, die an ihrem 32-Bit-Schlüsseleingang den Rundenschlüssel K2 enthält, während an dem Schlüsseleingang der Schlüsseleinrichtung 48
der Rundenschlüssel Ki anliegt. Der Ausgang der XOR- Verknüpfungseinrichtung 50 ist mit einem Eingang der ST/1 - S"1 verbunden. Die Ausgänge Letztgenannter sind mit einem 32-Bit- Schaltereingang des Schalters 110 verbunden, der wie die Schalter 106 und 108 an einem Steuereingang desselben das Steuersignal c0 von der Steuereinrichtung 114 erhält und abhängig von demselben den 32-Bit-Steuereingang entweder mit einem 32-Bit-Verschlüsselungsschalterausgang oder einem 32- Bit-Entschlüsselungsschalterausgang verbindet. Der Verschlüsselungsschalterausgang des Schalters 110 ist mit einem Eingang der Lineartransformationseinrichtung 42 verbunden, deren Ausgang wiederum mit einem 32-Bit- Schaltereingang des Schalters 102 verbunden ist. Dieser Schalter 102 erhält ebenfalls an einem Steuereingang desselben das Steuersignal Crj von der Steuereinheit 114 und schaltet demgemäss den Schaltereingang entweder auf einen 32- Bit-Verschlüsselungssteuerausgang oder einen 32-Bit- Entschlüsselungsschalterausgang. Der 32-Bit-Verschlüsselungsschalterausgang des Schalters 102 ist mit einem Eingang der Rotationseinrichtung 46 verbunden, deren Ausgang wiederum mit einem 32-Bit-Schaltereingang des Schalters 104 verbunden ist. Dieser Schalter 104 erhält an einem Steuereingang desselben ein Steuersignal bo von der Steuereinheit 114 und weist einen 32-Bit-Rundenbeendigungs- schalterausgang und einen 32-Bit-Rundenfortführungsschalter- ausgang auf. Der Schalter 104 verbindet den Schaltereingang je nach Signal b0 entweder mit dem Rundenbeendigungsschalter- ausgang oder dem Rundenfortführungsschalterausgang. Der Run- denfortführungsschalterausgang ist mit dem Eingang der XOR- Verknüpfungseinrichtung 48 verbunden, während der Rundenbeen- digungsschalterausgang mit dem Ausgang 120 der Vorrichtung 100 verbunden ist.The encryption switch output of the switch 108 is connected to an input of the rotation device 44. An output of the rotation device 44 is connected to a data input of the encryption device 50, which contains the round key K 2 at its 32-bit key input, while at the key input of the key device 48 the round key Ki is applied. The output of the XOR logic device 50 is connected to an input of the ST / 1 -S "1. The outputs of the latter are connected to a 32-bit switch input of the switch 110 which, like the switches 106 and 108, has the control signal at a control input thereof receives c 0 from the control device 114 and, depending on it, connects the 32-bit control input to either a 32-bit encryption switch output or a 32-bit decryption switch output The encryption switch output of the switch 110 is connected to an input of the linear transformation device 42, whose output is in turn connected to a 32-bit switch input of the switch 102. This switch 102 also receives the control signal Crj from the control unit 114 at a control input thereof and accordingly switches the switch input to either a 32-bit encryption control output or a 32-bit decryption switch output The 32-bit Ve The key switch output of the switch 102 is connected to an input of the rotation device 46, the output of which is in turn connected to a 32-bit switch input of the switch 104. This switch 104 receives a control signal b o from the control unit 114 at a control input thereof and has a 32-bit round termination switch output and a 32-bit round continuation switch output. Depending on the signal b 0 , the switch 104 connects the switch input either to the round termination switch output or to the round continuation switch output. The lap continuation switch output is connected to the input of the XOR logic device 48, while the lap termination switch output is connected to the output 120 of the device 100.
Hinsichtlich der Entschlüsselung ist der Eingang 118 mit einem Eingang der inversen Rotationseinrichtung 66 verbunden. Ihr Ausgang ist wiederum mit dem Eingang der Lineartransfor- mationseinrichtung 42 verbunden. Der Entschlüsselungsschal-
terausgang des Schalters 102 ist mit dem Eingang der S-Boxen Si - S8 verbunden. Der Entschlüsselungsschalterausgang des Schalters 106 ist mit einem Dateneingang der XOR-Verknüp- fungseinrichtung 74 verbunden, die an ihrem Schlüsseleingang den Rundenschlüssel K2 erhält und die mit ihrem Datenausgang mit einem Eingang der Invers-Rotationseinrichtung 68 verbunden ist. Der Ausgang der Invers-Rotationseinrichtung 68 ist mit dem Eingang der Lineartransformationseinrichtung 40 verbunden. Der Entschlüsselungsschalterausgang des Schalters 108 ist mit dem Eingang der inversen S-Boxen S"1 - Sg 1 verbunden. Der Entschlüsselungsschlüsselausgang des Schalters 110 ist mit dem Dateneingang der XOR-Verknüpfungseinrichtung 76 verbunden, die an ihrem Schlüsseleingang den Rundenschlüssel Ki erhält, und die mit ihrem Datenausgang mit einem Schalter- eingang des Schalters 112 verbunden ist. Der Schalter 112 erhält an einem Steuereingang desselben das Steuersignal bo von der Steuereinheit 114 und verbindet dementsprechend den Schaltereingang entweder mit einem Entschlüsselungsrundenbe- endigungsschalterausgang oder mit einem Entschlüsselungsrun- denfortführungsschalterausgang. Der Entschlüsselungsrunden- fortführungsschalterausgang des Schalters 112 ist mit dem Eingang der Invers-Rotationseinrichtung 66 verbunden, während der Entschlüsselungsrundenbeendigungsschalterausgang mit dem Ausgang 122 der Vorrichtung 100 verbunden ist.With regard to the decryption, the input 118 is connected to an input of the inverse rotation device 66. Its output is in turn connected to the input of the linear transformation device 42. The decryption switch ter output of the switch 102 is connected to the input of the S-boxes Si - S 8 . The decryption switch output of the switch 106 is connected to a data input of the XOR logic device 74, which receives the round key K 2 at its key input and which is connected to an input of the inverse rotation device 68 with its data output. The output of the inverse rotation device 68 is connected to the input of the linear transformation device 40. The decryption switch output of the switch 108 is connected to the input of the inverse S-boxes S "1 - S g 1. The decryption key output of the switch 110 is connected to the data input of the XOR logic device 76, which receives the round key Ki at its key input, and that is connected with its data output to a switch input of the switch 112. The switch 112 receives the control signal bo from the control unit 114 at a control input thereof and accordingly connects the switch input either to a decryption round termination switch output or to a decryption round continuation switch output. Continuation switch output of switch 112 is connected to the input of inverse rotator 66, while the decryption turn termination switch output is connected to output 122 of device 100.
Nachdem im Vorhergehenden der Aufbau der Vorrichtung von Fig. 4 beschrieben worden ist, wird im folgenden ihre Funktionsweise beschrieben.After the structure of the device of Fig. 4 has been described above, its operation will be described below.
Zum Zwecke der Veranschaulichung wird angenommen, dass die Ver-/Entschlüsselungsvorrichtung 100 von Fig. 4 ausgebildet ist, um zwei Verschlüsselungs (doppel) runden und zwei Entschlüsselungs (doppel) runden durchzuführen, wobei die Beschreibung jedoch ohne weiteres auch auf mehr Doppelrunden erweitert werden kann.
Zunächst sei eine Verschlüsselung betrachtet. Ein zu verschlüsselnder Datenblock liege am Dateneingang 116 an. Die Steuereinheit 114 steuert dann durch das Signal c0 alle Schalter 102, 106, 108 und 110 so an, dass sie ihren jeweili- gen Steuereingang mit dem Verschlüsselungssteuerausgang verbinden. Dies bedeutet nichts anderes, als dass die Reihenfolge von Einrichtungen, die der an dem Eingang 116 anliegende und zu verschlüsselnde Datenblock durchläuft, bis zum Schalter 104 festgelegt ist, nämlich auf die Folge von XOR- Verknüpfungseinrichtung 48, S-Boxen 12', Lineartransformationseinrichtung 40, Rotationseinrichtung 44, XOR- Verknüpfungseinrichtung 50, inverse S-Boxen 14', Lineartransformationseinrichtung 42, Rotationseinrichtung 46, ganz so wie es auch bereits Bezug nehmend auf Fig. 3a beschrieben worden ist.For purposes of illustration, it is assumed that the encryption / decryption device 100 of FIG. 4 is designed to carry out two encryption (double) rounds and two decryption (double) rounds, but the description can also be extended to more double rounds without further ado , First, encryption is considered. A data block to be encrypted is present at data input 116. The control unit 114 then uses the signal c 0 to control all the switches 102, 106, 108 and 110 in such a way that they connect their respective control input to the encryption control output. This means nothing other than that the sequence of devices through which the data block to be encoded and to be encrypted passes through to switch 104, namely to the sequence of XOR logic device 48, S-boxes 12 ', linear transformation device 40 , Rotation device 44, XOR combination device 50, inverse S-boxes 14 ', linear transformation device 42, rotation device 46, just as has already been described with reference to FIG. 3a.
Die Steuereinheit 114 muss das Signal c0, während der Datenblock diese Abfolge durchläuft, nicht verändern. Überhaupt verändert die Steuereinheit 114 das Signal c0 für den gesam- ten Verschlüsselungsvorgang, d.h. auch für die nachfolgenden Runden, nicht. Das Steuersignal c0 bleibt für den gesamten Verschlüsselungsvorgang gleich, so dass sich nur ein geringer Steueraufwand für die Steuereinheit 114 ergibt. Mit dem Steuersignal bo sorgt die Steuereinheit 114 dafür, dass der Schalter 104 nach dem ersten Rundendurchlauf, d.h. nach derThe control unit 114 need not change the signal c 0 while the data block is going through this sequence. In general, the control unit 114 does not change the signal c 0 for the entire encryption process, ie also for the subsequent rounds. The control signal c 0 remains the same for the entire encryption process, so that there is only a small amount of control for the control unit 114. With the control signal bo, the control unit 114 ensures that the switch 104 after the first round pass, ie after the
Verarbeitung durch die Rotationseinrichtung 46, seinen Schaltereingang mit dem Verschlüsselungsrundenfortführungsschal- terausgang verbindet, so dass das Zwischenergebnis bzw. der Datenblock, den die Rotationseinrichtung 46 ausgibt, wieder an die XOR-Verknüpfungseinrichtung 48 angelegt wird, die den Beginn der durch die Schalter 106, 108, 110 und 102 festgelegten Verschlüsselungsrunde bildet.Processing by the rotation device 46 connects its switch input to the encryption round continuation switch output, so that the intermediate result or the data block which the rotation device 46 outputs is again applied to the XOR logic device 48 which marks the start of the operation by the switches 106, 108 , 110 and 102 defined round of encryption forms.
Nach dem zweiten Durchlauf bzw. der zweiten Verarbeitung durch die Rotationseinrichtung 46 sorgt die Steuereinheit 114 dafür, dass der Schalter 104 den Schalterausgang nun auf den Verschlüsselungsrundenbeendigungsschalterausgang geschaltet
hat (gestrichelte Schalterstellung) , so dass das Chiffrat bzw. der Chiff at-Datenblock am Datenausgang 120 ausgegeben wird, wie er sich nach zweimaligem Rundendurchlauf 52, wie in Fig. 3a dargestellt ist, ergibt.After the second pass or the second processing by the rotating device 46, the control unit 114 ensures that the switch 104 now switches the switch output to the encryption round termination switch output has (dashed switch position), so that the cipher or the chiff-at data block is output at the data output 120, as it results after two round passes 52, as shown in Fig. 3a.
Ist eine Entschlüsselung durchzuführen, sorgt die Steuereinheit 114 durch das Steuersignal c0 dafür, dass die Schalter 102, 106, 108 und 110 ihren Steuereingang mit dem Entschlüsselungssteuerausgang verbinden (in Fig. 4 der nicht darge- stellter Schalterzustand) . Dadurch wird ein zu entschlüsselnder Datenblock, der am Datenausgang 118 anliegt, ohne weiteres durch eine Abfolge von Einrichtungen gelenkt, die der Abfolge von Fig. 3b entspricht, nämlich durch die Folge von inverser Rotationseinrichtung 66, Lineartransformationsein- richtung 42, S—Boxen Si - S8, XOR-Verknüpfungseinrichtung 74, Invers-Rotationseinrichtung 68, Lineartransformationseinrichtung 40, inverse S-Boxen 14', XOR-Verknüpfungseinrichtung 76. Das Steuersignal bo stellt die Steuereinheit 114 derart ein, dass der Schalter 112 den Datenblock, der sich nach der ersten Entschlüsselungsrunde ergeben hat, wieder an denIf a decryption is to be carried out, the control unit 114 uses the control signal c 0 to ensure that the switches 102, 106, 108 and 110 connect their control input to the decryption control output (the switch state (not shown in FIG. 4)). As a result, a data block to be decrypted, which is present at data output 118, is easily guided by a sequence of devices that corresponds to the sequence of FIG. 3b, namely by the sequence of inverse rotation device 66, linear transformation device 42, S boxes Si - S 8 , XOR logic device 74, inverse rotation device 68, linear transformation device 40, inverse S boxes 14 ', XOR logic device 76. The control signal bo sets the control unit 114 in such a way that the switch 112 switches the data block, which is after the first Decoding round has returned to the
Eingang der Invers-Rotationseinrichtung 66 angelegt wird, d.h. derart, dass der Schalter 112 seinen Schaltereingang mit dem Entschlüsselungsrundenfortführungsschalterausgang verbindet. Die Steuereinheit 114 sorgt dann durch Umschalten des Signals b0 dafür, dass nach dem zweiten Durchlaufen derInput of the inverse rotation device 66 is applied, that is, such that the switch 112 connects its switch input with the decryption round continuation switch output. By switching the signal b 0 , the control unit 114 then ensures that after the second run through the
Entschlüsselungsrunde der sich schließlich ergebende Datenblock als der entschlüsselte Datenblock am Ausgang 122 ausgegeben wird, indem nämlich der Schalter 112 seinen Steuereingang auf den Entschlüsselungsrundenbeendigungsschalterausgang schaltet (gestrichelte Schalterstellung) .Decryption round the resulting data block is output as the decrypted data block at output 122, namely switch 112 switching its control input to the decryption round termination switch output (dashed switch position).
Die vorhergehenden Ausführungsbeispiele sind geeignet, um als Verschlüsselung von Speicherinhalten als Schutz gegen unberechtigtes Auslesen dieser Speicherinhalte verwendet zu werden. Die Ausführungsbeispiele können aber auch zur Onlineoder Busverschlüsselung in anderen Anwendungen verwendet
werden, wenn beispielsweise die dahinterstehende Verschlüsselungshardware klein gehalten werden soll.The preceding exemplary embodiments are suitable for use as encryption of memory contents as protection against unauthorized reading out of these memory contents. However, the exemplary embodiments can also be used for online or bus encryption in other applications if, for example, the underlying encryption hardware is to be kept small.
Die vorhergehenden Ausführungsbeispiele von Fig. 3a - 4 bezogen sich auf eine Ver-/Entschlüsselung durch eine kryp- tographisch vollwertige Blockchiffre. Ein Zurückrechnen oder Rückschließen von den in verschlüsselter Form vorliegenden Daten auf den Klartext ist für einen Angreifer nicht oder nur mit unverhältnismäßig großem Aufwand möglich. Bei dem Ausfüh- rungsbeispiel von Fig. 4 beispielsweise oder von Fig. 2 beansprucht beispielsweise die Hardwareimplementierung keine große Fläche, da die Blockchiffre mit variabler Rundenzahl konzipiert ist. Damit ist die kryptographische Stärke der Verschlüsselung skalierbar auf Kosten der Performance bzw. Leistungsfähigkeit oder Geschwindigkeit, nicht aber aufThe previous exemplary embodiments of FIGS. 3a to 4 relate to encryption / decryption by a cryptographically complete block cipher. It is not possible for an attacker to calculate back or infer the data in encrypted form to the plain text, or only with disproportionate effort. For example, in the embodiment of FIG. 4 or of FIG. 2, the hardware implementation does not take up a large area, since the block cipher is designed with a variable number of rounds. This means that the cryptographic strength of the encryption is scalable at the expense of performance or performance or speed, but not at
Kosten der Fläche. Je mehr Runden durchlaufen werden, um so höher ist die Verschlüsselungsstärke.Cost of the area. The more rounds you go through, the higher the encryption strength.
Bei allen vorhergehenden Ausführungsbeispielen wurde die zur Implementierung notwendige Fläche klein gehalten, obwohlIn all of the previous exemplary embodiments, the area required for implementation was kept small, although
Verschlüsselung und Entschlüsselung gleichermaßen durchführbar sind. Das wurde erreicht, indem bei den Ausführungsbeispielen von Fig. 3a - 4 S-Box-Schichten durchlaufen wurden. Wenn die erste Schicht die S-Box S enthält, dann enthält die zweite Schicht die dazu inverse S-Box Inv(S') = S"1.Encryption and decryption are equally feasible. This was achieved by running through S-box layers in the exemplary embodiments of FIGS. 3a-4. If the first layer contains the S-Box S, then the second layer contains the inverse S-Box Inv (S ') = S "1 .
Bei den Ausführungsbeispielen von Fig. 3a - 4 wurde eine Rotation verwendet. Freilich wäre es auch möglich, die Rotation allgemein durch eine Permutation zu ersetzen. Auf jeden Fall stellt Permutation bzw. Rotation sicher, dass sich die Wirkungen der S-Boxen nicht gegenseitig abschwächen.A rotation was used in the embodiments of FIGS. 3a-4. Of course, it would also be possible to generally replace the rotation with a permutation. In any case, permutation or rotation ensures that the effects of the S-boxes do not weaken each other.
Bei den Ausführungsbeispielen von Fig. 3a - 4 wurde als weiteres Prinzip eine selbstinvertierende lineare Transforma- tion eingesetzt. Eine lineare Transformation L heißt selbstinvertierend, wenn (L(x)) = x gilt für alle Input-Vektoren x. In einer zweiten Realisierungsvariante könnte anstelle
einer selbstinvertierenden linearen Transformation L ein Paar linearer Transformationen i und L2 verwendet werden, die zueinander invers sind. Es gilt dann also Lχ(L2(x)) = 2( ι(x)) = x für alle Input-Vektoren x.3a - 4, a self-inverting linear transformation was used as a further principle. A linear transformation L is called self-inverting if (L (x)) = x applies to all input vectors x. In a second implementation variant, instead of a self-inverting linear transformation L, a pair of linear transformations i and L 2 are used which are inverse to one another. Then Lχ (L 2 (x)) = 2 (ι (x)) = x for all input vectors x.
Die S-Boxen der Ausführungsbeispiele 3a - 4 sorgten für Konfusion, die linearen Transformationen für Diffusion der Klartext-Bits. Durch das Einbringen einer entsprechenden Anzahl von Multiplexern oder Schaltern konnte ein und dassel- be Modul dann auch die Entschlüsselung bewerkstelligen, indem eine Steuereinheit über diese Schalter oder Multiplexer dafür sorgte, dass die Einrichtungen entsprechend zu einer entsprechenden Abfolge von Einrichtungen verschaltet werden. Anders als bei dem Ausführungsbeispiel von Fig. 4 kann die Steuerung jedoch auch während einer Doppelrunde dynamisch erfolgen, so dass eine Einrichtung während einer Doppelrunde zweimal durchlaufen wird. So könnten beispielsweise bei dem Ausführungsbeispiel von Fig. 4 die Lineartransformationseinrichtungen 40, 42, die Invers-Rotationseinrichtungen 66, 68 und die Rotationseinrichtungen 46 und 44 durch jeweils eine ersetzt werden. Der Nachteil wäre der erhöhte Steuerungsaufwand für die Steuereinheit 114, wohingegen der Vorteil in der geringeren Chipfläche läge.The S-boxes of the exemplary embodiments 3a-4 caused confusion, the linear transformations for diffusion of the plain text bits. By introducing a corresponding number of multiplexers or switches, one and the same module could then also perform the decryption by a control unit using these switches or multiplexers to ensure that the devices were appropriately connected to a corresponding sequence of devices. In contrast to the exemplary embodiment in FIG. 4, however, the control can also take place dynamically during a double round, so that a device is run through twice during a double round. For example, in the embodiment of FIG. 4, the linear transformation devices 40, 42, the inverse rotation devices 66, 68 and the rotation devices 46 and 44 could each be replaced by one. The disadvantage would be the increased control effort for the control unit 114, whereas the advantage would be the smaller chip area.
Im Endefekt bedeutet dies für jedes der im Vorhergehenden beschriebenen Ausführungsbeispiele, dass dasselbe Stück Hardware sowohl für die Verschlüsselung als auch für die Entschlüsselung genutzt wird.In the end, this means for each of the exemplary embodiments described above that the same piece of hardware is used both for encryption and for decryption.
In bezug auf die vorhergehende Beschreibung wird ferner noch darauf hingewiesen, dass, obwohl im Vorhergehenden beschrieben worden ist, dass bei den Verschlüsselungsabbildungen die Länge der Ursprungsdatenblöcke gleich oder kleiner ist als die der sich aus der Verschlüsselungsabbildung S ergebenden Datenblöcke (d. h. n ≤ m) , es auch möglich ist, gleichsam wie bei dem DES-Algorithmus n > m zu wählen, wie z.B. mehrere 6x4-S-Boxen, wenn dann beispielsweise eine Redundanz schaf-
fende Expansion des Datenblocks vor Verschlüsselung S bzw. Kompression nach Entschlüsselung S-1 durchgeführt wird.With regard to the preceding description, it is further pointed out that, although it has been described in the foregoing that the length of the original data blocks in the encryption maps is equal to or less than that of the data blocks resulting from the encryption map S (ie n m m), it is also possible to choose n> m as for the DES algorithm, such as several 6x4-S boxes, if, for example, redundancy is then created. fende expansion of the data block before encryption S or compression after decryption S -1 is carried out.
Im Gegensatz zu Feistel-Chiffren und deren implementierende Ver-/Entschlüsselungsvorrichtungen besitzen die Ausführungsbeispiele der vorliegenden Erfindung die Vorteile, dass keine so hohe Rundenzahl erforderlich ist, um dasselbe Sicherheitsniveau zu erreichen, was wiederum die Performance bzw. Leistungsfähigkeit bzw. Effektivität gegenüber diesen Feistel- Chiffre-Ver-/Entschlüsselungsvorrichtungen erhöht.In contrast to Feistel ciphers and their implementing encryption / decryption devices, the exemplary embodiments of the present invention have the advantages that a high number of rounds is not required to achieve the same level of security, which in turn improves the performance or performance or effectiveness compared to these Feistel ciphers. Cipher encryption / decryption devices increased.
Die vorhergehenden Ausführungsbeispiele benötigten lediglich ein Minimum an Elementarbausteinen, nämlich beispielsweise bei den Ausführungsbeispielen von Fig. 3a - 4 S-Boxen und lineare Transformationen. Mit jedem verwendeten Elementarbaustein ist auch der zugehörige inverse Elementarbaustein in die Ver-/Entschlüsselungsvorrichtung eingebaut. Dieser kann dann die Operation des Elementarbausteins wieder rückgängig machen, was für die Entschlüsselung ausgenutzt wird. Für die Verschlüsselung ist darauf geachtet worden, dass sich dieThe previous exemplary embodiments only required a minimum of elementary components, namely for example in the exemplary embodiments from FIGS. 3a-4 S-boxes and linear transformations. With each elementary element used, the associated inverse elementary element is also built into the encryption / decryption device. This can then undo the operation of the elementary block, which is used for decryption. For encryption, care has been taken to ensure that the
Wirkungen der Elementarbausteine und der inversen Elementarbausteine gegenseitig nicht abschwächen oder gar aufheben, sondern ergänzen. Wie dies im Vorhergehenden anhand der Rotation und Permutation beschrieben worden ist, kann dies durch eine geeignete Drahtführung erzielt werden, die keine Extrafläche kostet. Mathematisch entspricht eine solche Drahtführung eben einer Permutation bzw. Rotation von Datenbits .The effects of the elementary building blocks and the inverse elementary building blocks do not weaken or cancel each other, but complement each other. As described above with reference to the rotation and permutation, this can be achieved by a suitable wire guide that does not take up any extra space. Mathematically, such a wire guide corresponds to a permutation or rotation of data bits.
In bezug auf die vorhergehende Beschreibung wird noch darauf hingewiesen, dass die Rundenanzahlen, d.h. die Anzahl an Doppelrunden, nicht auf eins oder zwei festgelegt ist, sondern jeglichen anderen Wert annehmen kann. Die Verschlüsselungsrunden von Fig. 3a und 3b können beliebig oft durchlau- fen werden. Das Chiffrat C stellt dann je nachdem eine 1-, 2- , ... N-Doppelrundenverschlüsselung bzw. eine 2-, 4-, 6- ... 2N-Runden-Verschlüsselung dar, mit N e IN .
Die Verschlüsselungseinrichtung kann neutral auch als eine erste Abbildungseinrichtung mit einer ersten Abbildung und die Entschlüsselungseinrichtung als eine zweite Abbildungs- einrichtung mit einer dazugehörigen zu der ersten inversen Abbildung betrachtet werden.With regard to the preceding description, it is pointed out that the number of rounds, ie the number of double rounds, is not fixed to one or two, but can take any other value. The encryption rounds of FIGS. 3a and 3b can be run through as often as desired. The cipher C then represents a 1, 2, ... N double-round encryption or a 2, 4, 6 ... 2N-round encryption, with N e IN. The encryption device can also be viewed neutrally as a first imaging device with a first image and the decryption device as a second imaging device with an associated image that is inverse to the first.
Insbesondere wird darauf hingewiesen, dass abhängig von den Gegebenheiten das erfindungsgemäße Schema zur Ver/Entschlüsselung auch in Software implementiert sein kann. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder einer CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.
In particular, it is pointed out that, depending on the circumstances, the scheme for encryption / decryption according to the invention can also be implemented in software. The implementation can take place on a digital storage medium, in particular a floppy disk or a CD with electronically readable control signals, which can interact with a programmable computer system in such a way that the corresponding method is carried out. In general, the invention thus also consists in a computer program product with program code stored on a machine-readable carrier for carrying out the method according to the invention when the computer program product runs on a computer. In other words, the invention can thus be implemented as a computer program with a program code for carrying out the method if the computer program runs on a computer.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
10 Ver-/Entschlüsselungs orrichtung 12 Verschlüsselungseinrichtung 14 Entschlüsselungseinrichtung 16 Permutationseinrichtung 18 Invers-Permutationseinrichtung 20 Steuereinrichtung 22 Dateneingang 24 Dateneingang 26 Datenausgang 28 Datenausgang 30 Verschlüsselungsrunde 32 Entschlüsselungsrunde 40 Lineartransformationseinrichtung 42 Lineartransformationseinrichtung 44 Rotationseinrichtung 46 Rotationseinrichtung 48 XOR-Verknüpfungseinrichtung 50 XOR-Verknüpfungseinrichtung 52 Verschlüsselungsrunde 52a Teilrunde 52b Teilrunde 60 Entschlüsselungsrunde 62 Teilrunde 64 Teilrunde 66 Invers-Rotationseinrichtung 68 Invers-Rotationseinrichtung 70 Lineartransformationseinrichtung 72 Lineartransformationseinrichtung 74 XOR-Verknüpfungseinrichtung 76 XOR-Verknüpfungseinrichtung10 encryption / decryption device 12 encryption device 14 decryption device 16 permutation device 18 inverse permutation device 20 control device 22 data input 24 data input 26 data output 28 data output 30 encryption round 32 decryption round 40 linear transformation device 42 linear transformation device 44 rotation device 46 rotation device 48 XOR linking device 50 XOR linking device 52 encryption round 52a 52b partial round 60 decoding round 62 partial round 64 partial round 66 inverse rotation device 68 inverse rotation device 70 linear transformation device 72 linear transformation device 74 XOR logic device 76 XOR logic device
100 Ver-/EntschlüsselungsVorrichtung100 encryption / decryption device
102 Schalter 104 Schalter102 switches 104 switches
106 Schalter106 switches
108 Schalter
110 Schalter108 switches 110 switches
112 Schalter112 switches
114 Steuereinheit114 control unit
116 Dateneingang 118 Dateneingang116 Data input 118 Data input
120 Datenausgang120 data output
122 Datenausgang122 data output
900 Ver-/EntschlüsselungsVorrichtung900 encryption / decryption device
902 Verschlüsselungseinheit 904 Entschlüsselungseinheit
902 encryption unit 904 decryption unit