Beschreibung
Verfahren und Vorrichtung zur Ver-/Entschlüsselung
Die vorliegende Erfindung bezieht sich allgemein auf ein
Ver/Entschlüsselungsschema, wie es beispielsweise zum Schutz von Speicherinhalten gegen unberechtigtes Auslesen anwendbar ist .
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.
Fig. 5 veranschaulicht noch einmal den Sachverhalt. Zu schüt- zende Daten werden, um sie nicht ungeschützt potentiellen
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 zur
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.
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.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Ver-/Entschlüsselungsschema zu schaffen, das effektiver ist.
Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, 13 oder 14 und ein Verfahren gemäß Anspruch 15, 16 oder 17 gelöst.
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.
Folglich werden sowohl bei Verschlüsselung als auch bei
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.
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.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeich- nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild einer Ver-/Entschlüsselungsvor- richtung gemäß einem allgemeinen Ausführungsbeispiel der vorliegenden Erfindung;
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. 3a eine schematische Darstellung eines Verschlüsselungsvorgangs gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung;
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;
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.
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.
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.
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.
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.
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.
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 die
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.
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.
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.
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.
Die Steuereinrichtung 20 ist nun in der Lage, zu verschlüs- selnde Datenblöcke am Eingang 22 und zu entschlüsselnde
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 .
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 den
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))) .
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 Datenblock
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 der
Permutation P an dem ursprünglich verschlüsselten Datenblock erhalten werden würde.
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.
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.
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.
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.
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.
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 einer
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.
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.
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.
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.
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.
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-
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.
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 und
Rotation 46 aufweist. Nach der Teilrunde 52b ergibt sich das Chiffrat C bzw. der Chiffrat-Datenblock C.
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.
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.
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.
Dieser 32-Bit-Datenblock wird dann wieder einer 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-
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 die
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.
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.
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 linearen
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.
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.
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 von
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.
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-
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.
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.
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,
74 und 76, den S-Boxen Si - S8 und den inversen S-Boxen 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 .
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.
Mit dem Verschlüsselungsteil beginnend ist die 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.
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 .
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.
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.
Nachdem im Vorhergehenden der Aufbau der Vorrichtung von Fig. 4 beschrieben worden ist, wird im folgenden ihre Funktionsweise beschrieben.
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.
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 der
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.
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.
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 den
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 der
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) .
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.
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 auf
Kosten der Fläche. Je mehr Runden durchlaufen werden, um so höher ist die Verschlüsselungsstärke.
Bei allen vorhergehenden Ausführungsbeispielen wurde die zur Implementierung notwendige Fläche klein gehalten, obwohl
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.
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.
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.
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.
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 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.
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.
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 die
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 .
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.
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.
Bezugszeichenliste
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üpfungseinrichtung
100 Ver-/EntschlüsselungsVorrichtung
102 Schalter 104 Schalter
106 Schalter
108 Schalter
110 Schalter
112 Schalter
114 Steuereinheit
116 Dateneingang 118 Dateneingang
120 Datenausgang
122 Datenausgang
900 Ver-/EntschlüsselungsVorrichtung
902 Verschlüsselungseinheit 904 Entschlüsselungseinheit