VERFAHREN ZUR FEHLERERKENNUNG BEIM KRYPTOGRAFISCHEN TRANSFORMIEREN VON BINÄREN DATEN UND DAZUGEHÖRIGE SCHALTUNGSANORDNUNG
Die Erfindung liegt auf dem Gebiet der sicheren kryptografischen Verschlüsselung von binären elektronischen Daten.
Eine kryptografische Verschlüsselung von Daten, die in elektronischer Form vorliegen, kann beispielsweise mit Hilfe eines Substitutionsnetzwerkes ausgeführt werden. Substitutionsnetzwerke zur kryptographischen Verschlüsselung von Daten werden zum Beispiel in H. Heyes, „A tutorial on linear an differential cryptoanalysis" (vgl. http://citeeser.nj.nec.com /443539.html) und in Stern, J., Vaudenary, S., CS Cipher, FSE, LNCS 1372, Seiten 189-204, 1998 beschrieben.
In Substitutions-Permutationsnetzwerken und ähnlichen Schaltungen zur kryptographischen Verschlüsselung werden Operationen wie Permutationen, komponentenweise modulo-2- Addition der Daten und von Schlüsseln und/oder Konstanten, lineare Transformationen und Realisierung nichtlinearer Funktionen, die oft als nichtlineare Substitutionen bezeichnet werden, in aufeinanderfolgenden Schritten in unterschiedlicher Reihenfolge schrittweise hintereinander ausgeführt.
Es ist bekannt, die Bildung und die Überprüfung mehrerer Paritätsbits für die Fehlererkennung bei Substitutions-Permutationsnetzwerken zu nutzen, beispielsweise aus der Druckschrift US 5,432,848 und aus Bertoni, B., Breveglieri, L., Koren,!, Maistri,P. und PiceriN., „A Parity-Code Based Fault Detection for an Implementation of the Advanced Encryption Standard", Proc. DFT, Vancouver, 2002, S. 51-59.
In der Druckschrift US 5,432,848 werden zur Überwachung von acht nichtlinearen Substitutionsfunktionen, die durch acht so genannte S-Boxen mit jeweils sechs Eingängen und vier Ausgängen realisiert werden, acht Blöcke mit jeweils sechs Eingängen und einem Ausgang hinzugefügt. Die hinzugefügten Blöcke mit jeweils sechs Eingängen und einem Ausgang realisieren jeweils die invertierte Parität der vier Ausgänge der entsprechenden S-Boxen mit sechs Eingängen und vier Ausgängen. Insgesamt ist der erforderliche Aufwand für die Fehlererkennung bei der kryptografischen Tranformation hoch.
In Bertoni, B., Breveglieri, L., Koren,!, Maistri,P. und Piceri,V. „A Parity-Code Based Fault Detection for an Implementation of the Advanced Encryption Standard", Proc. DFT, Vancouver,
2002, S. 51-59 werden nichtlineare Funktionen betrachtet, die durch S-Boxen mit acht Bit breiten Dateneingängen und mit acht Bit breiten Datenausgängen versehen sind. Die acht Bit breiten Dateneingänge sind durch ein neuntes Paritätsbit ergänzt, das die Parität der Eingänge realisiert. Ebenso sind die acht Datenausgänge durch ein Paritätsbit ergänzt, das die Parität der Ausgänge realisiert, so daß zur Realisierung der nichtlinearen Funktionen mit acht Dateneingängen und acht Datenausgängen Schaltungen mit neun Eingängen und neun Ausgängen verwendet werden. Es wird ausgeführt, daß sich der Aufwand für eine in dieser Weise überwachte nichtlineare Funktion gegenüber einer nicht überwachten nichtlinearen Funktion mehr als verdoppelt, wenn, wie in Bertoni, B., Breveglieri, L., Koren,!, Maistri,P. und Piceri,V. „A Parity-Code Based Fault Detection for an Implementation of the Advanced Encryption Standard", Proc. DFT, Vancouver, 2002, S. 51- 59 dargestellt, die zugehörige S-Box als Speicherelement implementiert wird, was nachteilig ist.
Figur 1 zeigt ein bekanntes Substitutions-Permutationsnetzwerk ohne Fehlererkennung mit 16 Eingängen 1, die 16 binäre Eingangssignale pl,...,p 16 eines zu verschlüsselnden Textes („piain text") führen, und 16 Ausgängen 1, die binäre Ausgangssignale cl,...,cl6 des verschlüsselten Textes („ci- pher") führen. Die Eingangssignale pl,...,pl6 werden in einem ersten Schritt mit Komponenten eines Schlüssels kO in sechzehn XOR-Elementen 2 komponentenweise verknüpft. In einem zweiten Schritt werden jeweils vier aufeinanderfolgende Signale dieser verknüpften Signale in Blöcke 11, 12, 13 , 14, die jeweils eine nichtlineare Funktion mit vier binären Eingangs variablen und vier binären Ausgangsvariablen realisieren, eingegeben und hierin verarbeitet.
Ausgangssignale der Blöcke 11, 12, 13 , 14 (sl l-sl4) werden durch eine Permutation 8, die mit Hilfe einer geeigneten Verdrahtung der Ausgänge der Blöcke 11, 12, 13 , 14 mit den Eingängen von XOR-Elementen 3 realisiert ist, in einem dritten Schritt realisiert und in einem vierten Schritt mit den Komponenten eines zweiten Schlüssels kl in den 16 XOR-Elementen 3 komponentenweise XOR- erknüpft. In einem fünften Schritt werden die Signale in Blöcken 15, 16, 17, 18 (s21-s24) verarbeitet. In einem sechsten Schritt werden die Signale mittels einer Permutation 9 permutiert. Die Signale werden in einem siebenten Schritt mit Komponenten eines dritten Schlüssels k2 in XOR-Elementen 4 XOR- verknüpft. In einem achten Schritt findet in Blöcken 19, 20, 21, 22 (s31- s34) eine Verarbeitung statt, und in einem neunten Schritt werden die Signale mit Hilfe einer Permutation 10 permutiert. Anschließend werden die Signale in einem zehnten Schritt mit den Komponenten eines vierten Schlüssels k3 in XOR-Elementen 5 XOR- verknüpft, um in einem elften Schritt den Blöcken 23, 24, 25, 26 (s41-s44) verarbeitet zu werden. In einem zwölften Schritt werden die Signale dann mit Komponenten eines Schlüssels k4 in XOR-Elementen 6 XOR- verknüpft
und an Ausgängen 7 des Substitutions-Permutations-Netzwerkes als verschlüsselte Ausgangssignale cl,...,cl6 ausgegeben.
Nachteilig bei bekannten Verfahren zum kryptografischen Verschlüsseln mit Fehlererkennung ist, daß sie einen hohen Schaltungsaufwand erfordern, insbesondere die Einbeziehung von Schaltungsteilen zur Realisierung einer nichtlinearen Transformation in die Fehlererkennung.
Der Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren zur Fehlererkennung beim kryptografischen Transformieren von binären Eingangsdaten in binäre Ausgangsdaten und eine Schaltungsanordnung zum Ausführen des Verfahrens anzugeben, um den Aufwand für die Fehlererkennung zu vermindern, insbesondere bei Verwendung von Teilschaltungen mit nichtlinearer Transformationsfunktionen.
Die Aufgabe wird erfindungsgemäß durch ein Verfahren nach dem unabhängigen Anspruch 1, eine Schaltungsanordnung nach dem unabhängigen Anspruch 7 sowie eine Teilschaltung nach dem unabhängigen Anspruch 13 gelöst.
Die Erfindung umfaßt den Gedanken, zur Fehlererkennung beim kryptografischen Verschlüsseln von Texten, die in binärer Form vorliegen, Paritätsinformation wie folgt zu nutzen. Bei der kryptografischen Verschlüsselung werden mit Hilfe einer krytografischen Schaltung binäre Eingangsdaten in binäre Ausgangsdaten transformiert. Zu diesem Zweck weist die Schaltungsanordnung n binäre Eingänge zum Empfangen der binären Eingangsdaten und m binäre Ausgänge zum Ausgeben der binären Ausgangsdaten auf. Im Rahmen des kryptografischen Transforrήierens der binären Eingangsdaten in die binären Ausgangsdaten wir mit Hilfe einer von der kryptografischen Schaltung umfaßten Teilschaltung eine binäre Datentransformation ausgeführt. Zur Fehlererkennung wird zunächst eine Eingangsparität P auf Basis der binären Eingangsdaten an zumindest einem Teil der n binären Eingänge der kryptografischen Schaltung gebildet. Darüber hinaus wird eine Ausgangsparität PA auf Basis der binären Ausgangsdaten an zumindest einen Teil der m binären Ausgänge der kryptografischen Schaltung gebildet. Die Eingangsparität P wird in Abhängigkeit von der in der Teilschaltung ausgeführten, binären Datentransformation mittels einer Paritätsumwandlung in eine modifizierte Parität MP umgewandelt. Die Modifikation der Eingangsparität erfolgt hierbei unter Berücksichtigung der konkreten Ausprägung der binären Datentransformation. Zur Fehlererkennung wird dann die Ausgangsparität PA mit der modifizierten Parität MP verglichen, wobei ein Fehler erkannt wird, wenn festgestellt wird, daß die Ausgangsparität PA von der modifizierten Parität MP verschieden ist.
Ein wesentlicher Vorteil, welcher mit der Erfindung gegenüber mit dem Stand der Technik erreicht wird, besteht darin, daß ein Verfahren vorgeschlagen wird, das mit geringem Schaltungsaufwand einfach realisiert werden kann und es auf einfache Weise gestattet, die im Verfahren zur kryptografischen Verschlüsselung verwendeten Schaltungsteile, die nichtlineare Transformationen durchführen, in die Fehlererkennung einzubeziehen.
Um bei der kryptografischen Transformation der binären Eingangsdaten mehrere voneinander unabhängige Transformationsschritte durchfuhren zu können, sieht eine zweckmäßige Ausgestaltung der Erfindung vor, daß die kryptografische Schaltung zumindest eine weitere Teilschaltung umfaßt, die zwischen die n binären Eingängen der kryptografischen Schaltung und die Teilschaltung gekoppelt ist und mit der eine weitere binäre Datentransformation im Rahmen des kryptografischen Transformierens der binären Eingangsdaten in die binären Ausgangsdaten ausgeführt wird, wobei bei der Paritätsumwandlung der Eingangsparität P in die modifizierte Parität MP zunächst auf Basis der Eingangsparität P und in Abhängigkeit von der in der zumindest einen weiteren Teilschaltung ausgeführten, weiteren binären Datentransformation eine modifizierte Zwischenparität MP* und anschließend aus der modifizierten Zwischenparität MP* in Abhängigkeit von der in der Teilschaltung ausgeführten, binären Datentransformation die modifizierte Parität MP gebildet wird.
Zur Umwandlung der Parität in Abhängigkeit von der/den ausgeführten binären Datentransformati- on(en) können die folgenden Weiterbildungen der Erfindung vorgesehen sein, um die Paritätsumwandlung effektiv und mit wenig Aufwand zu realisieren. Eine Fortbildung der Erfindung sieht vor, daß bei der binären Datentransformation und/oder der weiteren binären Datentransformation eine Verschlüsselung mit Hilfe eines jeweiligen kryptografischen Schlüssels ausgeführt wird und daß die Eingangsparität P und/oder die modifizierte Zwischenparität MP* bei der Paritätsumwandlung durch die modulo-2-Summe der Parität des jeweiligen kryptografischen Schlüssels modifiziert werden.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, daß bei der binären Datentransformation und/oder der weiteren binären Datentransformation eine Permutation ausgeführt wird und daß die Eingangsparität P und/oder die modifizierte Zwischenparität MP* bei der Paritätsumwandlung nicht modifiziert werden.
Eine vorteilhafte Weiterbildung der Erfindung sieht vor, daß bei der binären Datentransformation und/oder der weiteren binären Datentransformation eine Konstante mit Komponenten komponentenweise modulo-2-addiert wird und daß die Eingangsparität P und/oder die modifizierte Zwi-
schenparität MP* bei der Paritätsumwandlung durch die modulo-2-Summe der Parität der Komponenten der Konstanten modifiziert werden.
Das neue Verfahren zur Fehlererkennung beim kryptografischen Transformieren von binären Eingangsdaten in binäre Ausgangsdaten entfaltet seine vorteilhafte Wirkung insbesondere in Verbindung mit binären Datentransformationen, bei denen eine nichtlineare Transformationsfunktion realisiert wird. Eine vorteilhafte Ausgestaltung der Erfindung sieht vor, daß bei der binären Datentransformation und/oder der weiteren binären Datentransformation eine nichtlineare Transformation mit Hilfe wenigstens einer nichtlinearen Transformationsteilschaltung, insbesondere einer S- Box, ausgeführt wird; daß eine Parität von Eingängen Ps und eine Parität von Ausgängen PAS der wenigstens einen nichtlinearen Transformationsteilschaltung ermittelt werden und an einem zusätzlichen Ausgang der wenigstens einen nichtlinearen Transformationsteilschaltung ein Paritäts- signal ausgegeben wird, welches einer XOR- Verknüpfung der Parität der Eingänge P und der Parität der Ausgänge PAS der wenigstens einen nichtlinearen Transformationsteilschaltung entspricht; und daß die Emgangsparität P und/oder die modifizierte Zwischenparität MP* bei der Paritätsumwandlung mit dem Paritätssignal XOR- erknüpft werden.
Weiterbildungen aus abhängigen Unteransprüchen der erfmdungsgemäßeri Schaltungsanordnung mit Fehlererkennung zum kryptografischen Transformieren von binären Eingangsdaten in binäre Ausgangsdaten weisen die in Verbindung mit den zugehörigen abhängigen Verfahrensansprüchen genannten Vorteile entsprechend auf.
Die Erfindung wird im folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf eine Zeichnung näher erläutert. Hierbei zeigen:
Figur 1 ein bekanntes Substitutions-Permutations-Netzwerk (SPN);
Figur 2 eine schematische Darstellung einer Schaltungsanordnung zum kryptografischen Verschlüsseln binärer Daten;
Figur 3 eine Realisierung eines Blockes (S-Box) mit vier Eingängen und fünf Ausgängen, die eine nichtlineare Funktion mit vier Eingangsvariablen und vier Ausgangsvariablen und einen zusätzlichen Ausgang realisiert;
Figur 4 eine weitere Realisierung eines Blockes (S-Box), der die gleiche Funktion wie in Figur 3 realisiert;
Figur 5 ein Substitutions-Permutations-Netzwerk mit Fehlererkennung, in dem Blöcke (S-
Boxen) zur Realisierung nichtlinearer Funktionen Verwendung finden;
Figur 6 eine Schaltung zur kryptographischen Verschlüsselung eines 64-Bit CS Cipher Systems;
Figur 7 eine Darstellung des Blockes zur Realisierung der „16-Bit Input, 16-Bit Output"-Mix-
Funktion m nach Figur 6 ohne Fehlererkennung; und
Figur 8 eine Fehlererkennungsschaltung für einen Block zur Realisierung der „16-Bit Input,
16-Bit Output"-Mix-Funktion m nach Figur 6.
Figur 2 zeigt einen schematische Darstellung einer Schaltungsanordnung 100 zum kryptografischen Transformieren eines zu verschlüsselnden Textes, der in binärer Form vorliegt. Die Schaltungsanordnung verfügt über 16 binäre Eingänge pl, ..., pl6. Auf die binären Eingänge pl-pl6 werden binäre Eingangsdaten gegeben. Innerhalb der Schaltungsanordnung 100 werden mehrere Teil-. Schaltungen 110-1, ..., 100-z für binäre Datentransformationen genutzt, um die binären Eingangsdaten mit Hilfe der Schaltungsanordnung 100 in binäre Ausgangsdaten umzuwandeln, die über binäre Ausgänge cl, ..., cl6 ausgegeben werden. Bei dem in Figur 2 gezeigten Ausführungsbeispiel ist die Anzahl der binären Eingänge pl-pl6 gleich der Anzahl der binären Ausgänge cl-cl6. In Abhängigkeit vom Anwendungsfall kann die Anzahl der binären Eingänge jedoch von der Anzahl der binären Ausgänge verschieden sein, dieses ist für die Erfindung nicht kritisch.
Um Fehler zu erkennen, die bei der kryptografischen Transformation mit Hilfe der Schaltungsanordnung 100 auftreten, wird eine Eingangsparität P gebildet, wobei die binären Eingangsdaten an zumindest einem Teil der binären Eingänge pl-pl6 herangezogen werden. Die Eingangsdaten pl- pl6 oder eine Teilmenge hiervon werden in einem XOR-Baum 111 zur Eingangsparität P XOR- verknüpft. Die Eingangsparität P wird nun in eine modifizierte Parität MP umgewandelt, wobei die Anzahl von Umwandlungsschritten zur Paritätsmodifikation von der Anzahl der Teilschaltungen 110-1, ..., 110-z abhängt, die von der Schaltungsanordnung 100 umfaßt sind. Gemäß Figur 2 wird die Eingangsparität P hierbei zunächst in Abhängigkeit von der binären Datentransformation in der Teilschaltung 110-1 in eine erste modifizierte Zwischenparität MP*1 umgewandelt. Hierbei wird die Eingangsparität P mit einem binären Korrektursignal Kl in dem XOR-Gatter 12-1 zur ersten modifizierten Zwischenparität MP*1 verknüpft. Das binäre Korrektursignal Kl ist durch die kon- rete Ausgestaltung der Teilschaltung 110-1 festgelegt.
Die erste modifizierte Zwischenparaität MP*1 bildet die Eingangsgröße für eine zweite Paritätsumwandlung, bei der die erste modifizierte Zwischenparität MP*1 in Abhängigkeit von der binären Datentransformation in der Teilschaltung 110-2 zu einer zweiten modifizierten Zwischparität MP*2 modifiziert wird. Die erste modifizierte Zwischenparität MP*1 wird mit einem binären Korrektursignal K2 in dem XOR-Gatter 12-2 zur zweiten modifizierten Zwischenparität MP*2 verknüpft, wobei das binäre Korrektursignal K2 durch die konkrete Ausgestaltung der Teilschaltung 110-2 bestimmt ist. Bei jeder folgenden Datentrasformation in einer folgenden Teilschaltung wird entsprechend verfahren, bis die modifizierte Zwischenparität MP*(z-l) mit dem binären Korrektursignal Kz in dem XOR-Gatter 12-z zur modifizierten Parität MP verknüpft wird.
Der Begriff der Paritätsumwandlung umfaßt hier auch Fälle, in denen eine Änderung der modifizierten Parität aus dem vorhergehenden Umwandlungsschritt nicht stattfindet, beispielsweise wenn mit Hilfe der zugehörigen Teilschaltung im Rahmen der binären Datentransformation lediglich eine Permutation ausgeführt wird. In einem solchen Fall ist das zugehörige binäre Korrektursignal konstant gleich Null, so daß das zugehörige XOR-Gatter zur Modifikation der Zwischenparität in einem derartigen Schritt entfallen kann.
Gemäß Figur 2 wird im Ergebnis eine modifizierte Parität MP gebildet. Die modifizierte Parität MP wird dann mit einer Ausgangsparität PA verglichen, die für die binären Ausgangsdaten an zumindest einem Teil der binären Ausgänge cl-cl6 der Schaltungsanordnung 100 ermittelt wird. Hierbei werden die Ausgänge cl-cl6 der Schaltungsanordnung 100 in einem XOR-Baum 112 zur Ausgangsparität PA XOR- erknüpft. Für die kryptografische Transformation mit Hilfe der Schaltungs- anordnung 100 wird ein Fehler erkannt, wenn die modifizierte Parität MP von der Ausgangsparität PA verschieden ist. Zur Realisierung des Vergleichs der modifizierten Parität MP mit der Ausgangsparität PA kann beispielsweise eine XOR- Verknüpfung 113 genutzt werden.
Das anhand der schematischen Darstellung in Figur 2 beschriebene Verfahren wird im folgenden unter Bezugnahme auf die Figuren 3 bis 8 für verschiedene Ausführungsbeispiele detaillierter erläutert.
Figur 3 zeigt eine Darstellung eines erfindungsgemäßen Blockes S27 (S-Box) zur Realisierung einer nichtlinearen Funktion S mit vier binären Eingangsvariablen ul,u2, u3 und u4 und vier binären Ausgangsvariablen vl, v2, v3 und v4 mit vier Eingängen a, b, c, d 28 und fünf Ausgängen e, f, g, h 29, und k 30, wie er in einem Substirutions-Permutations-Netzwerk mit Fehlererkennung durch Paritätskodes angewendet werden kann. Tabelle 1 beschreibt die Wertetabelle der Eingangs- und
Ausgangsbelegungen eines solchen Blockes mit vier Eingängen 28 und fünf Ausgängen 29, 30 realisiert.
Tabelle 1
Die Ausgänge e, f, g, h 29 dienen dazu, die nichtlineare Funktion mit vier Eingangsvariablen und vier Ausgangsvariablen als
vl = Sl(ul, u2, u3, u4) v2 = S2(ul, u2, u3, u4) v3 = S3(ul, u2, u3, u4) v4 = S4(ul, u2, u3, u4) zu realisieren.
Der Ausgang k 30 realisiert die Funktion v5 = (ul ® u2 ® u3 ® u4) ® (Sl(w)θ S2(u)® S3(«)θ S4(u)), wobei u = ul,u2,u3,u4 gilt.
Es ergibt sich, daß der Ausgang v5 30 die XOR- Verknüpfung der Parität P der Eingangsvariablen ul,u2,u3,u4 des Blockes 27 Ps(«) =( ul ® u2 ® u3 ® u4) und der Parität PAS der vier Ausgänge vl,v2,v3, v4 29 des Blockes 27 PAS-=(S1(«)Θ S2Θ S3(u)@ S4(u)) implementiert.
Es soll nun Tabelle 1 näher erläutert werden. Tabelle 1 beschreibt in hexadezimaler Darstellung die Funktionswerte einer nichtlinearen Funktion S mit vier binären Eingangsvariablen (ul,u2,u3 u4) = u und vier binären Ausgangsvariblen (vl,v2,v3,v4) = v, die erfindungsgemäß durch einen Ausgang v5 ergänzt wurde, der die XOR-Summe der Parität der Eingänge Ps und der Parität der
Ausgänge PA realisiert. In Tabelle 1 sind die Werte der Eingangs variablen ul,u2,u3 und u4 in der ersten Zeile, die dazugehörigen Werte der Ausgangs variablen vl,v2,v3 und v4 in der zweiten Zeile und der Wert der Variablen v5 in der dritten Zeile dargestellt.
Es ergibt sich aus der elften Spalte von Tabelle 1, daß bei Eingabe von A = 10 (hexadezimal) = 1010 (binär) an den Eingängen ul,u2,u3, u4 29 die Werte 6 (hexadezimal = 0110 (binär) an den Ausgängen vl,v2,v3,v4 29 und 0 an dem Ausgang v5 30 ausgegeben werden. Dieses bedeutet, daß
0 gleich der XOR-Summe der Eingabeparität 1 θ 0 θ 1 Θ 0 = 0 und der Ausgabeparität 0 θ 1 θ
1 θ 0 = 0 ist.
Figur 4 zeigt eine Realisierung eines Blockes S 27, der die in Tabelle 1 beschriebenen nichtlinearen Funktion einschließlich ihres zusätzlichen fünften Ausganges v5 30 realisiert, aus UND-Elementen 90 und ODER-Elementen 91, wobei nicht negierte Eingänge ul, u2, u3, u4 und negierte Eingänge ul\ u2\ u3' und u4λ verwendet werden. Es ergibt sich, daß in Figur 4 jeder Ausgang vl,v2,v3,v4
29 und v5 30 so durch logische Bauelemente realisiert ist, daß jeder Ausgang eines Bauelementes nur auf einen der Ausgänge vl,v2,v3,v429 oder v5 30 wirkt und alle Ausgänge separat realisiert sind, was für die Fehlererkennung der Fehler in den Bauelementen vorteilhaft ist. Ein Fehler in einem der Bauelemente kann sich dann jeweils nur auf einen der Ausgänge vl,v2,v3,v4 29 oder v5
30 auswirken. Es ergibt sich außerdem, daß die Realisierung des zusätzlichen Ausganges v5 zur Realisierung der XOR-Summe der Eingabe-Parität
PAs=Ps(v) = vl θ v2 θ v3 θ v4 nur vier UND-Elemente 90 mit drei Eingängen und einem Ausgang und ein ODER-Element 91 mit vier Eingängen und einem Ausgang erfordert.
Der Fachmann kann vorsehen, die Schaltung von Figur 4 zur Realisierung des Blockes S 27 zur Realisierung einer nichtlinearen Funktion bezüglich des Schaltungsaufwandes zu optimieren, so daß nach der Optimierung Schaltungsausgänge gemeinsam realisiert werden, wie das beim Schaltungsentwurf üblich ist. Hierdurch kann der erforderliche Schaltungsaufwand reduziert werden.
Darüber hinaus erkennt der Fachmann ohne weiteres, daß die in Tabelle 1 beschriebene Funktion des S-Blockes 27 auch als Speicherelement, etwa als ein ROM, realisiert werden kann.
Figur 5 zeigt ein Substitutions-Permutations-Netzwerk mit erfindungsgemäßer Fehlererkennung für einen Paritätsbit-Code unter Verwendung erfindungsgemäßer Blöcke zur Realisierung nichtlinearer Funktionen.
Das Substitutions-Permutationsnetzwerk nach Figur 5 realisiert funktionell die gleiche kryptografische Verschlüsselung von Daten, wie das Substitutions-Permutationsnetzwerk ohne Fehlererkennung von Figur 1. Die entsprechenden Blöcke zur Realisierung nichtlinearer Funktionen, die in Figur 1 mit 11,...,26 (sij) bezeichnet wurden, werden in Figur 6 mit 31,...,38 (Sij) bezeichnet.
Die Eingänge 1, die die Eingangssignale pl,p2,...,pl6 tragen werden durch einen XOR-Baum 39 verknüpft, dessen Ausgang ein Signal ausgibt, welches der Parität der Eingänge P entspricht. Wie in dem Substitutions-Permutationsnetzwerk nach Figur 1 werden in den Schritten 1,4,7,10 und 12 die Daten komponentenweise mit den Komponenten der Schlüssel kO, kl , k2, k3 und k4 XOR- verknüpft. In Figur 5 sind der besseren Übersicht halber nur die Verarbeitungsschritte 1, 2, 3,10, 11 und 12 und auch nur die Gruppen von XOR-Elementen 2, 5 und 6 dargestellt, die die XOR- Verknüpfüngen mit den Komponenten der Schlüssel kO, k4 und k5 realisieren.
In den Verarbeitungsschritten 1, 4, 7, 10 und 12, in denen die Daten mit den Schlüsseln kO, kl, k2, k3 und k4 komponentenweise XOR- verknüpft werden, ist die Eingangsparität schrittweise jeweils durch die Parität P(kj) = kjO θ kj 1 ® ... θ kj 16, j= 1,...,4 über eine XOR- Verknüpfung in die entsprechenden modifizierten Zwischenparitäten zu modifizieren. Diese den Verarbeitungsschritten 1, 4, 7, 10 und 12 zugeordneten Modifikationen der Eingangsparität P läßt sich hier vorteilhaft zu einer einzigen Modifikation der Eingangs arität P zusammenfassen, die bei dem Ausführungsbeispiel in ihrer Funktion den einzelnen Verarbeitungsschritten 1, 4, 7, 10 und 12 nach dem allgemeinen Verfahren zugeordneten Modifikationen gleichwertig ist, indem die Eingangsparität P durch die XOR-Summe der den Schritten 1, 4, 7, 10 und 12 zugeordneten Paritäten der Komponenten der jeweiligen Schlüssel entspricht, in einem Schritt in die modifizierte Zwischenparität MP*1 modifiziert wird. So werden in dem XOR-Element 40 die Eingangsparität P mit dem binären Korrektursignal Kl, das den Wert P(k) führt, mit
?(k) = kOι ® k0
2 ® ... ® k 0ιβ ® kU ® kl
2 ® ... ® klu ® k 2
x ® ... ® k2
X6 ® k 3ι ® ...
XOR-verknüpft, der bereits bei der Bestimmung der Schlüssel kO, kl, k2, k3 und k4 ermittelt werden kann.
Es wurde festgestellt, daß es zur Berücksichtigung des Einflusses der nichtlinearen Transformationen auf die Parität genügt, die Parität der Eingänge jeweils im dritten, fünften, achten und elften Schritt durch die modulo-2-Summe der jeweils zusätzlichen fünften Ausgänge 30 der Blöcke 31 ... 38 zur Realisierung der nichtlinearen Funktionen durch eine einfache XOR- Verknüpfung zu modifizieren. In Figur 5 ist das für den zweiten und elften Verarbeitungsschritt ausführlich dargestellt. Im zweiten Schritt wird die modifizierte Zwischenparität MP*1 durch eine XOR- Verknüpfung mit dem binären Korrektursignal K2 in dem XOR-Element 41 in die modifizierte Zwischenparität MP*2 modifiziert. Den Verarbeitungsschritten 3, 6 und 9, denen jeweils Permutationen zugeordnet sind, entsprechen keine Modifikationen der Zwischenparitäten, da die entsprechenden binären Korrektursignale konstant gleich 0 sind.
Im Schritt 5, der eine nichtlineare Transformation beinhaltet, wird die modifizierte Zwischenparität MP*2 in die modifizierte Zwischenparität MP*3 modifiziert, und im Schritt 8, der ebenfalls eine nichtlineare Transformation beinhaltet, wird die modifizierte Zwischenparität MP*3 in die modifizierte Zwischenparität MP*4 modifiziert. Diese beiden Schritte sind, wie schon erwähnt, in Figur 5 nicht eingezeichnet. Im elften Schritt wird die modifizierte Zwischenparität durch das binäre Korrektursignal K4 in die modifizierte Parität MP modifiziert. Da alle Modifikationen, die den Verar- beitungsschritten 1,4, 7 und 10 entsprechen, in denen die Schlüssel kO, kl, k2, k3 und k4 mit den Daten komponentenweise XOR- verknüpft werden, in eine einzige Modifikation zusammengefaßt werden können, und da den Verarbeitungsschritten 3, 6 und 9, in denen eine Permutation der Daten ausgeführt wird, keine Modifikation der Zwischenparitäten erfordern, sind hier nur vier Zwischenparitäten MP*1, MP*2, MP*3 und MP*4 erforderlich.
Im zweiten Verarbeitungsschritt werden die jeweils 5-ten Ausgänge 30 der Blöcke 31, 32, 33, 34 (S11-S14) durch den XOR-Baum 43 mit vier Eingängen und einem Ausgang verknüpft, und der Ausgang dieses OR-Baumes 43 wird über das XOR-Element 41 zur der dem zweiten Schritt entsprechenden Modifikation der Eingangsparität in die modofizierte Parität genutzt.
Im elften Verarbeitungsschritt werden die jeweils 5-ten Ausgänge 30 der Blöcke 35, 36, 37, 38 (S41-S44) durch den XOR-Baum 44 verknüpft und der Ausgang dieses OR-Baumes 44 wird über das XOR-Element 42 zur der dem elften Schritt entsprechenden Modifikation der Parität der Eingänge in die modofizierte Parität genutzt.
Entsprechend wird in den Verarbeitungsschritten 5 und 8 verfahren. Aus Gründen der besseren Übersichtlichkeit sind diese Schritte in Figur 5 nicht eingezeichnet worden.
Die Permutation 8, ebenso wie die Permutationen 9 und 10, die in Figur 1 dargestellt sind, wirken sich auf die Parität der Daten nicht aus, und so ist in den Verarbeitungsschritten, in denen eine Permutation ausgeführt wird, keine Modifikation der Parität vorzunehmen.
In dem XOR-Baum 44 wird die Parität der Ausgänge 7, die die Ausgangssignale cl,c2,...,cl6 tragen als
PA = cl Θ c2 θ ... © cl6 gebildet, die mit der modifizierten Parität MP verglichen wird. Liegt ein Fehler innerhalb des Sub- stitutions-Permutationsnetzwerkes vor, der die Parität verändert, so wird der Fehler daran erkannt, daß PA und die modifizierte Parität MP nicht übereinstimmen.
Obwohl sich Fehler nach Durchlaufen mehrerer Verarbeitungschritte auf viele Bits ausdehnen, wird überraschender Weise in der erfindungsgemäßen Schaltung jeder einzelne Fehler, der in einem Schritt des Substitutionsnetzwerk eine ungerade Anzahl von Bits verfälscht, am Vergleich der Parität der Ausgänge mit der modifizierten Parität erkannt.
Figur 6 zeigt eine weitere Schaltung zur kryptographischen Verschlüsselung.
Die 64 Bit breiten Datenemgänge xo ... 63 45 werden in einem ersten Schritt koniponentenweise in 64 XOR-Elementen 46 XOR- verknüpft, wobei jedes XOR-Symbol der XOR- Verknüpfungen eine komponentenweise 8 Bit breite Verknüpfung darstellt.
In einem zweiten Schritt werden jeweils 8 aufeinanderfolgende dieser XOR- verknüpften Signale in den Blöcken 47, 48, 49 und 50 verarbeitet, die jeweils eine Funktion m (Mix-Funktion) realisieren. Die Ausgangssignale der Blöcke 47, 48, 49 und 50 werden jeweils 8-Bit-weise durch eine Permutation 51 in einem dritten Schritt permutiert, in einem vierten Schritt in den 64 XOR-Elementen 52 komponentenweise mit den 84 Komponenten einer Konstanten c XOR-verknüpft, in einem fünften Schritt in den Blöcken 53, 54, 55 und 56, die jeweils die Funktion m realisieren, verarbeitet, in einem sechsten Schritt jeweils 8-Bit-weise durch eine Permutation 57 permutiert, in einem siebenten Schritt in den 64 XOR-Elementen 58 mit den 64 Komponenten einer weiteren Konstanten c' komponentenweise XOR-verknüpft, in einem achten Schritt in den Blöcken 59, 60, 61 und 62, die die Funktion m realisieren, verarbeitet und in einem neunten Schritt jeweils 8-Bit-weise durch eine Permutation 63 permutiert, wobei die Permutationen in dritten, sechsten und neunten Schritt jeweils gleich sind.
Die Verarbeitung der eingegebenen Bits x15,...,xo in ersten und im zweiten Schritt soll nun noch näher beschrieben werden.
Für den ersten und zweiten Verarbeitungsschritt sind die XOR-Elemente 65 und 66, die jeweils acht aufeinanderfolgende Bits ihrer Dateneingänge komponentenweise mit den entsprechenden Komponenten des anliegenden Schlüssels XOR-verknüpfen und eine Realisierimg der Misch- Funktion m in Figur 7 dargestellt.
In dem XOR-Element 65, welches 8 einzelne XOR-Elemente mit zwei binären Eingängen und einem binären Ausgang veranschaulicht, werden die Dateneingänge xη,..., x0 = xτ mit den entsprechenden Komponenten kj,..., ko - kτ des Schlüssels k= k\, kτ verknüpft. In dem XOR-Element 66, welches 8 einzelne XOR-Elemente mit zwei binären Eingängen und einem binären Ausgang veranschaulicht, werden die Dateneingänge x15 ... x8 = x\ mit den entsprechenden Komponenten des Schlüssels £15 ... k& = k\ verknüpft und in den Block 68 zur Realisierung der Funktion φ geführt.
Bei Eingabe von w - w15 ... w 8 gibt der Block 69 zur Realisierung der Funktion φ den Wert φ(w)= (wu,... w8, w15)Λ(010101))Θ(w 15,w14,...,Ws)= w i5,W].3 Θ w14,w13,w π θ w12,
Wπ,W9 θ Wιo,Wg Wg ® Wi5.
Mit w= xj.5 θ kis, ... , x8 θ &g ergibt sich:
φ(w) = xj.5 θ k^ , xι3 θ ku ® x14 @ k , xι3 θ kn, xπ ® i ® xn ® kγχ, \\ ® Äπ,x9 θ k?
ΘXJO Φkjo,, X9 θ kg, Xg θ k% Θ,X15 ® k\s .
In den XOR-Elementen 65 werden die Dateneingänge x7, ...,x0 mit den Komponenten kη, ...,ko des Schlüssels k zu x7 θ Är ,...,x0 θ ko verknüpft. Die Ausgänge des Blockes 68 zur Realisierung der Funktion φ und die Ausgänge der XOR-Elemente 65 werden durch die XOR-Elemente 69 komponentenweise XOR-verknüpft, so daß für die Ausgänge y\ -y ,...,yo der XOR-Elemente 69 gilt:
y\ = φ(w)Φ (x7 θ kη, x6 θ &6,...,xo ® fa).
Für die Parität ?(y) =yη ® yβ Θ...Θ yo gilt dann:
POO = x © *i2 © *ιo θ x8 θ P(xr) θ γ,
mit
P(xι) =X7 ® X6 θ X5 Φ θ X4 Φ X3 © X2 ® Xj @ Xj θ x0
und y = ku® ku Φ 0 ®ks® ?(k)
mit
P(r) = kη © k6 © ks Φ ® © h © *ι © Ab.
Der Block 67 zur Realisierung der Funktion R\ realisiert die Funktion
Rl(Xj © ki) = R\(X\5 © ^5,-^8 © )= *14 © l4,*13 © .»^8 © &8Λ5 © #15-
Der 8 Bit breite Ausgang des Blockes 67 wird mit dem 8 Bit breiten Ausgang der XOR-Elemente 65 in den XOR-Elementen 70 komponentenweise zu >r verknüpft, so daß für die Parität P(yr) dieser Ausgänge gilt:
POr) =yη®y6® ... yι®yo = P(*ι) © P(*r) © P(*ι) © P(fc) mit P(x]) = x7©...Φ 0
?(Xr)=Xl5®...®XS P(kr) = k ®...®k0
P(AD = *15 ®-© *β-
Die Ausgänge ^1 der XOR-Elemente 69 und die Ausgänge^ der XOR-Elemente 70 γ werden jeweils in einem Block 71, 72 zur Realisierung einer nichtlinearen Funktion p verarbeitet, deren Wahrheitstafel in Tabelle 2 in hexadezimaler Darstellung beschrieben ist.
Tabelle 2
Den Eingangsbelegungen 00 = 00000000,01 = 00000001,10 = 00010000,...,FF = 1111 1111 in der ersten Spalte von Tabelle 2 sind in der zweiten Spalte die funktionalen Ausgangsbelegungen 29 =00101001,0D = 00001101,97 = 10010111,...55 = 01010101 zugeordnet.
Bei Eingabe von j in den Block 71 zur Realisierung der nichtlinearen Funktion p werden die Werte z\ entsprechend der ersten und zweiten Spalte von Tabelle 2 ausgegeben. Ebenso werden bei Eingabe von γ in den Block 72 zur Realisierung der nichtlinearen Funktion p die Werte zr ebenfalls entsprechend der ersten und zweiten Spalte von Tabelle angegeben.
Ein erfmdungsgemäßer Block mit acht Eingängen und neun Ausgängen, der die durch die Spalten 1 und 2 von Tabelle 2 beschriebene nichtlineare Funktion p mit acht binären Eingängen und acht binären Ausgängen an seinen ersten acht Ausgängen realisiert und der an seinem neunten Ausgang die XOR-Summe der Parität der Eingabenwerte und der Parität der Ausgabewerte realisiert ist durch die Spalten 1,2 und 3 von Tabelle 2 festgelegt.
Es ergibt sich, daß der Block zur Realisierung der Funktion p bei Eingabe von 0 0 = 0000 0000 und Ausgaben von 2 9 = 0010 1001 an seinen ersten acht Ausgängen an seinem neunten Ausgang entsprechend der ersten und zweiten Spalte von Tabelle 2 an seinem neunten Ausgang den Wert 1 ausgibt, wie das in Spalte 3 von Tabelle 2 beschrieben ist, der der XOR Summe der Eingabeparität
P(00000000)= 0 Φ 0 Φ 0 Φ 0 © 0 Φ 0 © 0 © 0 = 0 und der Ausgangsparität
P(00101001 = 0 © O Φ 1 Φ O Φ 1 Φ O © 0 © 1 = 1 entspricht.
Die Realisierung einer durch eine Wertetabelle gegebene kombinatorische Schaltung kann vom Fachmann ohne weiteres ausgeführt werden. Eine spezielle Realisierung dieser Funktion ist nicht Gegenstand der Erfindung. Es wird deshalb eine spezielle Implementierung dieser Funktion auf Gatterebene oder unter Verwendung eines ROMs hier nicht beschrieben.
Die Anwendung eines Blockes 73, 74 mit acht binären Eingängen und acht binären Ausgängen zur Realisierung einer Funktion mit acht binären Eingangsvariablen und acht binären Ausgangsvariablen und einem weiteren binären Ausgang, der die XOR-Summe der Parität der Eingänge P und der Parität der Ausgänge PA ausgibt, soll nun für die Schaltung zur kryptographischen Verschlüsselung von Figur 6 anhand von Figur 8 erläutert werden.
Figur 8 beschreibt eine Fehlererkennungsschaltung für die Eingabewerte x = x15,...,x8 und xr = x ,...,xo für eine kryptographischen Verschlüsselung. Gleiche Blöcke sind in Figur 8 und in Figur 9 mit gleichen Bezugszeichen bezeichnet.
Der XOR-Baum 76 realisiert die XOR-Summe π = x14 © x12 © xio © x8, während der XOR-Baum 75 die XOR-Summe
und der XOR-Baum 77 die XOR-Summe π
3 = x
7 Φ x
6 © xs ® x
4 Φ x
3 Φ x
2 Φ x
\ ® XQ = P(x
r) realisieren.
Hierbei gilt: πi © π2 =x-.5 Φ x14 Φ x13 Φ ι2 © Xu Φ x10 © x Φ x8 = P(xι).
In dem XOR-Element 78 wird der Ausgang des XOR-Baumes 76 mit dem Ausgang des XOR- Baumes 77 zu π2 Φ π3 = x14 © x12 © CIO Φ x8 Φ P(xr) = P verknüpft. In dem XOR-Element 79 werden der Ausgang des XOR-Baumes 75 und der Ausgang des XOR-Elementes 78 zu
πi Φ π2 Φ π3 = P(xr) Φ P(xj) = P verknüpft. In dem XOR-Element 80 werden π2 Φ π3 und γ zu π2 © π3 © γ zur modifizierten Zwischenparität MP'*1 verknüpft.
In dem XOR-Element 81 werden P(Λ = P( ) Φ P(/q) mit dem Ausgang des XOR-Elementes 79, der den Wert P(x) führt, zur modifizierten Zwischenparität MP*1 verknüpft. Man bemerkt, daß das entsprechende binäre Konektursignal den Wert P(k) führt. Der Block 71 mit acht binären Eingängen und acht binären Ausgängen zur Realisierung der Funktion p in Figur 7 ist durch den Block 73 mit acht Eingängen und neun Ausgängen, wie er durch die Spalten 1,2 und 3 von Tabelle 2 beschrieben ist, ersetzt worden. Ebenso ist der Block 72 mit acht Eingängen und acht Ausgängen zur Realisierung der Funktion p in Figur 7 durch den Block 74 mit acht Eingängen und neun Ausgängen ersetzt worden, wie er ebenfalls in den Spalten 1,2 und 3 von Tabelle 2 beschrieben ist. An
ihrem jeweils neunten Ausgang realisieren die Blöcke 73 und 74 die XOR-Summe der Parität ihrer Eingabewerte und der Parität ihrer Ausgabewerte.
Der neunte Ausgang des Blockes 73 wird als binäres Korrektursignal in den ersten Eingang des XOR-Elementes 82 geführt, an dessen zweitem Eingang der Ausgang des XOR-Elementes 80 angeschlossen ist und der die modifizierte Parität MP' ausgibt. Der neunte Ausgang des Blockes 74 wird als binäres Korrektursignal in den ersten Eingang des XOR-Elementes 83 geführt, an dessen zweitem Eingang der Ausgang des XOR-Elementes 81 angeschlossen ist und der die modifizierte Parität MP ausgibt.
In dem XOR-Baum 84 mit acht Eingängen und einem Ausgang werden die ersten acht Ausgänge des Blockes 73 zu PAj XOR-verknüpft. Es ergibt sich, daß die Ausgänge des XOR-Baumes 84 und des XOR-Elementes 82 gleich sind, wenn kein Fehler vorliegt. Sind die Ausgänge des XOR- Elementes 82 und des XOR-Baumes 84 ungleich, liegt ein Fehler vor. Es ergibt sich, daß hier die Parität PAj der 8 höherwertigen Bits der Ausgänge, d.h. eines Teiles aller 16 Ausgänge mit der modifizierten Parität P' eines Teiles der Eingänge, nämlich der Eingänge 14, 12, 10, 8, 7, 6, 5, 4, 3, 2 und 1 und die Parität PAr der 8 niederwertigsten Bits der Ausgänge, d. h. eines Teiles aller 16 Ausgänge mit der Parität P aller 16 Eingänge zur Fehlererkennung verglichen werden.
In dem XOR-Baum 85 mit acht Eingängen und einem Ausgang werden die ersten acht Ausgänge des Blockes 74 zu PAr XOR-verknüpft. Es ergibt sich, daß die Ausgänge des XOR-Baumes 85 und des XOR-Elementes 83 gleich sind, solange kein Fehler vorliegt. Sind die Ausgänge des XOR- Elementes 83 und des XOR-Baumes 85 ungleich, liegt ein Fehler vor.
Die in der vorstehenden Beschreibung und der Zeichnung offenbarten Merkmale der Erfindung können sowohl einzeln als auch in beliebiger Kombination für die Verwirklichung der Erfindung in ihren verschiedenen Ausführungsformen von Bedeutung sein.