PatentDe  


Dokumentenidentifikation DE69936024T2 10.01.2008
EP-Veröffentlichungsnummer 0000981223
Titel Vorrichtung zur Verschlüsselung/Entschlüsselung
Anmelder Kabushiki Kaisha Toshiba, Kawasaki, Kanagawa, JP
Erfinder Kawamura, Shinichi, Tokyo 105-8001, JP;
Sano, Fumihiko, Tokyo 105-8001, JP
Vertreter KRAMER - BARSKE - SCHMIDTCHEN, 80687 München
DE-Aktenzeichen 69936024
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 19.08.1999
EP-Aktenzeichen 993065473
EP-Offenlegungsdatum 23.02.2000
EP date of grant 09.05.2007
Veröffentlichungstag im Patentblatt 10.01.2008
IPC-Hauptklasse H04L 9/06(2006.01)A, F, I, 20051017, B, H, EP

Beschreibung[de]

Die vorliegende Erfindung betrifft eine Verschlüsselungs-/Entschlüsselungsvorrichtung und ein Verfahren und spezieller eine Verschlüsselungs-/Entschlüsselungsvorrichtung und ein Verfahren, die eine geheime Schlüsselblockverschlüsselung verwenden, und ein Programmspeichermedium hierfür.

DES (Data Encryption Standard) ist eine geheime Schlüsselblockchiffrierung, die augenblicklich am Häufigsten verwendet wird, die im Einzelnen in der japanischen Patentanmeldungsveröffentlichung KOKAI Nr. 51-108701 beschrieben ist.

DES ist in verschiedenen Standpunkten evaluiert worden, und eine Geheimschriftanalyse, beispielsweise Differentialgeheimschriftanalyse und lineare Geheimschriftanalyse, die wirkungsvoller sind als ein aufwändiges Schlüsselsuchverfahren, sind vorgeschlagen worden.

Man beachte, dass die Differentialgeheimschriftanalyse offenbart ist in E. Biham und A. Shamir, „Differential Cryptoanalysis of DES-like Cryptosystems", Journal of Cryptology, Ausgabe 4, Nr. 1, 1991. Das lineare Entschlüsselungsverfahren ist offenbart in Mitsuru Matsui, „Linear Cryptanalysis of DES Cipher", Cryptanalysis and Information Security Symposium, SCIS 93-3C, 1993.

Es gibt eine neue Kryptoanalyse, die auf Energieverbrauchsdifferenzen basiert. Bei diesem Verfahren werden Energieverbrauchsdifferenzen zwischen gegebenen Datenbits (Energieverbrauch entsprechend dem Bit 0 und Energieverbrauch entsprechend dem Bit 1) gemessen, um Bits zu schätzen. In dem Fall von DES werden beispielsweise eine Eingabe in eine S-Box und eine entsprechende Ausgabe basierend auf einer bekannten Chiffretextausgabe und basierend auf einem Schlüssel geschätzt. Eine Energieverbrauchsdifferenz, die auftritt, wenn ein gegebenes Bit 0 oder 1 ist, was geschätzt wird basierend auf der Ausgabe von der S-Box, wird gemessen, um die Gültigkeit der Schätzung zu prüfen, also die Gültigkeit der Schätzung des Schlüssels.

Aus diesem Grund gibt es eine Möglichkeit, dass ein DES Chiffretext durch das obige Verfahren geknackt wird, und folglich ist eine höhere Sicherheit erforderlich.

Das Dokument COPPERSMITH, D. et. al.: „A Proposed Mode for Triple-DES Encryption", IBM TECHNICAL DISCLOSURE BULLETIN IBM CORP. NEW YORK, US Ausgabe 40, Nr. 2, März 1996 (1996-03), Seiten 253-262, schlägt einen neuen Modus für eine Triple-DES Verschlüsselung vor, um den Chiffrecode vor Verzeichnisattacken und Gleichungschiffretextattacken zu schützen. Dieser Schutz wird erhalten durch die Einführung von geheimen Maskierungswerten, die exklusive ODER verknüpft sind mit den Zwischenausgaben jeder Triple-DES Verschlüsselungsoperation. Im Gegensatz zu dem hier vorgeschlagenen Verfahren wird der Einfluss dieser Maskierung vor einem Freigeben des Chiffretextes nicht entfernt.

Es ist eine Aufgabe der vorliegenden Erfindung eine Verschlüsselungs-/Entschlüsselungsvorrichtung und ein Verfahren zu schaffen, die es schwierig machen, eine Entschlüsselung durch eine Technik durchzuführen, die auf Energieverbrauchsdifferenzen basiert, ohne das Datenverschlüsselungsverarbeitungsergebnis zu ändern, das gewonnen wird durch eine herkömmliche Verschlüsselungs-/Entschlüsselungsvorrichtung, und ein Verfahren und ein Programmspeichermedium zu schaffen für die Vorrichtung und das Verfahren.

Um die obige Aufgabe zu lösen, wird gemäß einem ersten Aspekt der vorliegenden Erfindung eine Verschlüsselungsvorrichtung geschaffen zum Umwandeln eines Klartextblocks in einen Chiffretextblock in Abhängigkeit von gelieferter Schlüsselinformation, enthaltend ein Mittel zum zufälligen Auswählen eines Musters jedes der Paare ai, ai (wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird, ein Mittel zum Maskieren der Bits in Abhängigkeit von einem Klartext innerhalb der Vorrichtung mit dem Maskenmuster, das durch das Auswahlmittel ausgewählt wurde, und ein Mittel zum Entfernen eines Einflusses der Maske von dem Chiffretext, bevor der Chiffretext ausgegeben wird.

Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird eine Verschlüsselungsvorrichtung geschaffen zum Umwandeln eines Klartextblocks in einen Chiffretextblock in Abhängigkeit von gelieferter Schlüsselinformation, enthaltend ein Mittel zum zufälligen Auswählen eines Musters von jedem der Paare ai, ai (wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist) von einer oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird, ein Mittel zum Maskieren von Zwischenbitdaten innerhalb der Vorrichtung mit dem Maskenmuster, das durch das Auswahlmittel ausgewählt wurde, und ein Mittel zum Entfernen eines Einflusses der Maske a von den Zwischenbitdaten, die durch das Maskenmittel maskiert worden sind.

Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein Verschlüsselungsverfahren geschaffen zum Umwandeln eines Klartextblocks in einen Chiffretextblock in Abhängigkeit von gelieferter Schlüsselinformation, enthaltend die Schritte eines zumfälligen Auswählens eines Musters von jedem von Paaren, ai, ai (wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird, Maskieren der Bits in Abhängigkeit von einem Klartext innerhalb des Verfahrens mit dem ausgewählten Maskenmuster, und Entfernen eines Einflusses der Maske a von einem Chiffretext, bevor der Chiffretext ausgegeben wird.

Gemäß einem vierten Aspekt der vorliegenden Erfindung wird ein Verschlüsselungsverfahren geschaffen zum Umwandeln eines Klartextblocks in einen Chiffretextblock in Abhängigkeit von gelieferter Schlüsselinformation, enthaltend die Schritte des zufälligen Auswählen eines Musters von jedem der Paare ai, ai (wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die gewonnen werden durch Bitinversion der vorbestimmten Maskenmuster, jedes Mal, wenn eine Verschlüsselung durchgeführt wird durch die Technik, die auf Energieverbrauchsdifferenzen basiert.

Gemäß der vorliegenden Erfindung wird die Konsistenz einer Verschlüsselung und Entschlüsselung sichergestellt, und die Sicherheit gegenüber der Verschlüsselungstechnik, die auf Energieverbrauchsdifferenzen basiert, kann verbessert werden, indem es schwierig gemacht wird die Daten durch die Technik zu entschlüsseln, die auf Energieverbrauchsdifferenzen basiert.

Diese Zusammenfassung der Erfindung beschreibt nicht notwendigerweise alle notwendigen Merkmale, so dass die Erfindung auch eine Unterkombination dieser beschriebenen Merkmale sein kann.

Die Erfindung kann besser verstanden werden durch die folgende detaillierte Beschreibung in Verbindung mit den beigefügten Zeichnungen. Es zeigen:

1 ein Blockdiagramm, das die gesamte Anordnung eines DES Algorithmus zeigt;

2 ein Blockdiagramm, das die Anordnung der Rundenfunktionen des DES zeigt;

3 einen Tisch, der ein Beispiel der Inhalte einer S-Box in Übereinstimmung mit einer DES Standardtabelle zeigt;

4 ein Blockdiagramm, das eine Anordnung zeigt, in der Masken hinzugefügt werden zu den Rundenfunktionen gemäß der vorliegenden Erfindung;

5A ein Schaltungsdiagramm, das eine Anordnung zeigt, in der eine Maske hinzugefügt wird zu der Eingangsrunde gemäß der vorliegenden Erfindung;

5B ein Schaltungsdiagramm, das eine Anordnung zeigt, bei der eine Maske hinzugefügt wird zu der Endrunde gemäß der vorliegenden Erfindung;

6 eine Tabelle, die eine Expansion E zeigt;

7 eine Tabelle, die eine Permutation P zeigt;

8 eine Ansicht, die eine verborgene Ausgabe von S1 zeigt, die einer Eingabe (000000, 000001, ..., 111111) entspricht, bei der Verwendung einer Maske a;

9 zeigt eine Tabelle einer Maske a (Bitinversion von a);

10 ein Blockdiagramm, das eine Anordnung eines DES Algorithmus gemäß einem Ausführungsbeispiel zeigt;

11 ein Blockdiagramm, das eine Anordnung zeigt, die gewonnen wird durch Hinzufügen einer Maske zu den Rundenfunktionen in der Anordnung in 10;

12 ein Blockdiagramm, das die Anordnung von S^ in 11 zeigt;

13 ein Blockdiagramm, das eine andere Anordnung eines DES Algorithmus gemäß einem Ausführungsbeispiel zeigt;

14 ein Blockdiagramm, das eine Anordnung zeigt, die gewonnen wird durch Hinzufügen von Masken zu den Rundenfunktionen in der Anordnung in 13;

15 ein Blockdiagramm, das die Anordnung von S^ in 14 zeigt;

16 ein Blockdiagramm, das die Anordnung eines Schlüsselplaners eines DES Algorithmus zeigt;

17 ein Blockdiagramm, das eine Anordnung zeigt, in der eine Maske hinzugefügt ist zu dem Schlüsselplaner gemäß der vorliegenden Erfindung;

18 ein Blockdiagramm, das eine Anordnung zeigt, bei der die Maske, die zu dem Schlüsselplaner hinzugefügt ist, zu jeder Rundenfunktion hinzugefügt wird gemäß der vorliegenden Erfindung;

19 ein Flussdiagramm, das den Fluss einer Verarbeitung bei einem Verschlüsselungsverfahren gemäß einem Ausführungsbeispiel zeigt, das den Schritt des Maskierens von Bits in Abhängigkeit von einem Klartext mit ausgewählten Maskenmustern enthält, und den Schritt des Entfernens des Einflusses der oben beschriebenen Masken von dem Chiffretext, bevor dieser ausgegeben wird;

20 ein Flussdiagramm, das den Fluss der Verarbeitung in einem Verschlüsselungsverfahren gemäß einem Ausführungsbeispiel zeigt;

21 ein Flussdiagramm, das den Fluss der Verarbeitung in einem Verschlüsselungsverfahren gemäß einem Ausführungsbeispiel zeigt, das den Schritt des Entfernens des Einflusses von Masken von Zwischenbitdaten während einer Verschlüsselungsprozedur enthält, und den Schritt des Maskieren der Daten mit Maskenmustern;

22 ein Flussdiagramm, das zu einer Verschlüsselungsprozedur gemäß einem Ausführungsbeispiel der vorliegenden Erfindung gehört; und

23 ein Blockdiagramm, das die Anordnung einer IC Karte zeigt, die das Verschlüsselungs-/Entschlüsslungsverfahren implementiert, und ein Programmspeichermedium dafür gemäß der oben beschriebenen vorliegenden Erfindung.

Ein Ausführungsbeispiel der vorliegenden Erfindung wird im Folgenden unter Bezugnahme auf die Ansichten in den beigefügten Zeichnungen beschrieben.

1 zeigt eine Anordnung eines Verschlüsselungsalgorithmus DES, auf den die vorliegende Erfindung angewendet wird. Diese Anordnung enthält eine Datenzufallsgenerator 1 enthaltend Runden 1 bis 16 zum Verwürfeln eines Klartexts (64 Bits) 3 in Abhängigkeit von einem extern eingegebenen Schlüssel 8 und zum Ausgeben eines entsprechenden Chiffretexts und einen Schlüsselplaner 2 zum Expandieren von Schlüsselinformation k in einen Zwischenschlüssel, der an die Datenzufallsgenerator 1 zu liefern ist.

Bezugnehmend auf 1 wird der Klartext (64 Bits) 3 einer Anfangspermutation IP 4 zuerst unterworfen, und dann in zwei gleiche Hälften geteilt. Die linken 32-Bit Daten und die rechten 32-Bit Daten der zwei gleichen Hälften werden jeweils in eine Rundenfunktion 5 eingegeben. Die Struktur der Rundenfunktion wird später beschrieben. Die linken 32-Bit Daten und die rechten 32-Bit Daten, die von der Rundenfunktion ausgegeben werden, werden ausgetauscht und in die nächste Rundenfunktion eingegeben.

Nachdem diese Daten durch die 16 Rundenfunktionen verarbeitet worden sind, wird ein Chiffretext 7 ausgegeben durch eine Endpermutation IP–1 6.

2 zeigt ein Blockdiagramm, das die Einzelheiten der Rundenfunktion 5 in 1 zeigt. Eine Rundenfunktion 17 ist gebildet durch eine Permutation E 11, eine exklusive ODER-Verknüpfung 13, S-Boxen 14, Permutation P 15 und eine exklusive ODER-Verknüpfung 16.

Die rechten 32-Bit Daten werden erweitert in 48-Bit Daten durch die Permutation E 11. Die resultierenden Daten werden an das exklusive ODER 13 ausgegeben. Das exklusive ODER 13 gibt das exklusive ODER der Ausgabe von der Permutation E 11 und einen erweiterten Schlüssel 12 aus. Die 48 Bit Daten, die von dem exklusiven ODER 13 ausgegeben werden, werden gleichmäßig unterteilt in 6-Bit Daten. Jedes der 6-Bit Daten wird in eine entsprechende der S-Boxen 14 eingegeben. In diesem Ausführungsbeispiel ist jede S-Box durch eine Tabelle gebildet, und gibt 4-Bit Daten bezüglich einer 64-Eintrag 6-Bit Eingabe aus. Gemäß S1, basierend auf DES, wenn das linke und das rechte Ende der 6-Bit Eingabe jeweils betrachtet werden als das erste und sechste Bit, wird eine Reihe in der Tabelle der S-Box in 3 bestimmt durch das erste und sechste Bit, als Binärzahl. Die Spaltennummern werden ebenfalls gezählt von dem linken Ende als die 0-te, 1-te, 2-te, 3-te, ..., 15-te Spalte. Wenn beispielsweise 011011 in S1 eingegeben wird, ist die Reihennummer gleich 01. Die zweite Reihe von oben wird also bestimmt. Da die Spaltennummer gleich 01101 ist, also 13 (14-te Spalte von links), ist der Wert in der Tabelle gleich 15. Folglich gibt s1 diesen Wert in Binärnotation aus, also 0101. Bezugnehmend auf 3 wird jede Ausgabe von der S-Box bestimmt durch eine Reihe und eine Spalte. Im Allgemeinen ist jedoch eine derartige S-Box als eine Tabelle gebildet, die Eingaben im Bereich von 0 bis 63 entsprechen. Die 32-Bit Daten, die durch Kombinieren von Ausgaben von den jeweiligen S-Boxen gewonnen werden, werden einer Bitpermutationsoperation durch die Permutation P 15 unterworfen. Die resultierenden Daten werden an das exklusive ODER 16 ausgegeben. Das exklusive ODER 16 gibt das exklusive ODER der linken 32-Bit Daten und der Ausgabe von der Permutation P 15 aus.

4 zeigt ein Schaltungsdiagramm, das die Details der Rundenfunktion 5 in 4 und der Rundenfunktion 17 in 2 zeigt. 5A zeigt eine Anordnung für eine Eingabe in die erste Rundenfunktion. 5B zeigt eine Anordnung für eine Ausgabe von der 16-ten Rundenfunktion.

Ein Ausführungsbeispiel der vorliegenden Erfindung wird im Einzelnen im Folgenden unter Bezugnahme auf die 4, 5A und 5B beschrieben.

Bezugnehmend auf 4 kennzeichnen die Referenzsymbole a und b jeweils 32-Bit Masken; und a die Inversion aller Bits. In einer Rundenfunktion 35 in 4 berechnet ein exklusives ODER 25 das exklusive ODER der rechten 32-Bit Daten und einer Ausgabe von einem Schalter SW23 und gibt dies an eine Expansion E 26. Eine Ausgabe von der Expansion E 26 ist exklusiv ODER-verknüpft mit einem erweiterten Schlüssel Ki durch ein exklusives ODER 27. Die resultierenden Daten werden an einen Schalter SW12 ausgegeben. Der Schalter SW12 veranlasst die Daten sich aufzuzweigen gemäß einer zufälligen Nummernsequenz Rij. Wenn Rij gleich 0 ist, veranlasst der Schalter SW12 die Daten sich aufzuzweigen zu der 0-Seite. Wenn Rij gleich 1 ist, veranlasst der Schalter SW12 die Daten sich zu der 1-Seite zu verzweigen.

4 zeigt die Anordnung jeder S-Box nach einem Verzweigen bei dem Schalter SW12. Eine S-Box 29 entspricht S1 bis S8 basierend auf dem DES.

Wenn der Schalter SW12 die Daten veranlasst, sich zu der 0-Seite zu verzweigen, wird der Prozess, der angegeben ist durch die gestrichelte Linie 34a, durchgeführt. Spezieller berechnet ein exklusives ODER 32a das exklusive ODER der Ausgabe von dem exklusiven ODER 27 und 6 Bits (E(a)) des Ergebnisses, das erhalten wird durch Durchführen der Expansion E für die Maske a, das einer Eingabe der S-Box entspricht, und Ausgeben der resultierenden Daten an die S-Box 29. Die S-Box 29 gibt das Ergebnis, das erhalten wird durch Nachschlagen der Tabelle der S-Box, an das exklusive ODER 33a.

Das exklusive ODER 33a berechnet das exklusive ODER der Bits von p–1 (a) als das Ergebnis, das gewonnen wird durch Durchführen einer inversen Permutation p–1 für die Maske a und der Ausgabe von der S-Box 29, und gibt die resultierenden Daten an den Schalter SW11 aus.

Wenn der Schalter SW12 die Daten veranlasst, sich zu der 1-Seite zu verzweigen, wird der Prozess durchgeführt, der durch die gestrichelte Linie 34b angegeben ist. Spezieller berechnet ein exklusives ODER 32b das exklusive ODER der Ausgabe von dem exklusiven ODER 27 und der Bits des Ergebnisses, das erhalten wird durch Durchführung der Expansion E für die Maske a , das einer Eingabe der S-Box entspricht, und gibt die resultierenden Daten an die S-Box 29 aus. Die S-Box 29 schlägt die Tabelle der entsprechenden S-Box nach und gibt die resultierenden Daten an das exklusive ODER 33b aus.

Das exklusive ODER 33b berechnet das exklusive ODER von 4 Bits von p–1 ( a ) als das Ergebnis, das erhalten wird durch Durchführen der inversen Permutation p–1 einer Permutation p(30) für Maske a , was einer Ausgabe von der S-Box und der Ausgabe von der S-Box 29 entspricht, und gibt die resultierenden Daten an den Schalter SW11.

Man beachte, dass die Prozesse, die durch die gestrichelten Linien 34a und 34b angegeben sind, nicht während einer Verschlüsselung und Entschlüsselung durchgeführt werden müssen. Dies liegt daran, dass, selbst wenn Daten mit der obigen Maske verdeckt werden, da die Eingabe/Ausgabe-Operation der S-Box 29 nicht verdeckt ist, eine Kryptoanalyse versucht werden kann unter Verwendung von Energieverbrauchsdifferenzen in der S-Box Verarbeitung.

In diesem Ausführungsbeispiel der vorliegenden Erfindung werden die Ergebnisse der Prozesse, die durch die gestrichelten Linien 34a und 34b angegeben sind, zuerst erhalten durch eine Vorberechnung, die durchgeführt wird vor einer Verschlüsselung und Entschlüsselung, und eine Verschlüsselungsverarbeitung und Entschlüsselungsverarbeitung werden dann durchgeführt werden. Beispielsweise werden eine Tabelle, in der der Index jeder Eingabe in jede S-Box und eine entsprechende Ausgabe neu geschrieben sind, vorbereitet für jede S-Box, und für das Verschlüsseln und Entschlüsseln verwendet. In diesem Fall werden eine Tabelle einer S-Box entsprechend der Maske a und eine Tabelle einer S-Box entsprechend der Maske a vorbereitet. Beispielsweise ist das Folgende das Ergebnis, das gewonnen wird durch Berechnen des Prozessblocks 34a in 4 unter Verwendung der Maske a. Es sei angenommen, dass die Maske a gleich (0110 1111, 1100 1010 0110 1100 1100 0011) ist. Die Expansion E wird ausgedrückt durch die in 6 gezeigte Tabelle. In der Tabelle gemäß 6 entsprechen die jeweiligen Reihen Eingaben in S1, S2, ..., S8 von oben. Zusätzlich entspricht das erste Bit auf dem linken Ende jeder Spalte dem ersten Bit einer Eingabe in eine entsprechende S-Box. Jede Nummer in der Tabelle stellt das X-te Bit einer entsprechenden Eingabe in die Expansion E dar. Die Eingabe zu S1 enthält also das 32., 1., 2., 3., 4. und 5. Bit der Eingabe in E. Mit der obigen Maske a ist folglich eine Bitmaske (a), die jeder Eingabe in S1 entspricht, gleich (101101). 7 zeigt eine Tabelle der Permutation P. Gemäß 7 entsprechen die Nummern der Reihe nach dem 1-sten bis 32-sten Bit der Ausgabe von P von links (die erste und zweite Reihe sind fortlaufend). Jeder Term entspricht dem X-ten Bit einer Eingabe. Das erste Bit der Ausgabe von der Permutation P ist also das 16-te. Bit der Eingabe. Die Bits, die S1 entsprechen, sind das 1., 2., 3. und 4. Bit der Eingabe in die Permutation P, und entsprechen folglich jeweils dem 9., 17., 23. und 31. Bit der Ausgabe von P. Da eine Maske, die der Ausgabe von S1 entspricht, gleich p–1(a) ist, also die Ausgabe von P gleich a ist, werden das 9., 17., 23. und 31. Bit der Maske a gleich p–1(a). Die Maske, die der Ausgabe von S1 entspricht, ist folglich (1001). Mit der obigen Maske a ist eine Bitmaske E(a), die jeder Eingabe in S1 entspricht, also (101101), und eine Bitmaske p–1(a), die der Ausgabe von S1 entspricht, ist (1001). Gemäß der tatsächlich gebildeten Tabelle, die der Maske a entspricht, wird die Ausgabe von S1 berechnet unter Verwendung des Ergebnisses des exklusiven ODER der Eingabe und der Bitmaske E(a) als die Eingabe in S1, und eine Ausgabe von der Tabelle wird gewonnen durch Hinzufügen der Bitmaske p–1(a) zu der Ausgabe von S1 durch ein exklusives ODER. 8 zeigt eine Ausgabe (entsprechend einer Eingabe von 0 bis 63) einer verdeckten S1, wenn die Eingabe gleich (000000, 000001, ..., 111111) entspricht, im Falle der obigen Maske a. 9 zeigt eine Tabelle der Maske a (Bitinversion von a).

Die Ausgaben von den jeweiligen Prozessblöcken, die durch die gestrichelten Linien 34a und 34b angegeben sind, werden permutiert durch eine Permutation P30. Die resultierenden Daten werden an ein exklusives ODER 31 ausgegeben. Das exklusive ODER 31 berechnet das exklusive ODER der linken 32-Bit Daten und der Ausgabe von der Permutation P30. Ein exklusives ODER 24 berechnet das exklusive ODER der rechten 32-Bit Daten und der Ausgabe von dem Schalter SW13, um neue rechte 32-Bit Daten zu gewinnen.

Wie in 5A gezeigt, wird das Ergebnis, das gewonnen wird durch Permutieren des Klartexts (64 Bits) mit der Anfangspermutation IP 41a in gleiche Hälften unterteilt, also in rechte 32-Bit Daten und linke 32-Bit Daten. Ein exklusives ODER 44a berechnet das exklusive ODER der linken 32-Bit Daten und einer Ausgabe von einem Schalter SW21. Die Ausgabe von diesem exklusiven ODER 44a wird zu den linken 32-Bit Daten einer Eingabe der ersten Rundenfunktion. Ein exklusives ODER 42a berechnet das exklusive ODER der rechten 32-Bit Daten und einer Ausgabe von einem Schalter SW14. Ein exklusives ODER 43a berechnet das exklusive ODER der Ausgabe von dem exklusiven ODER 42a und einer Ausgabe von einem Schalter SW22.

Die Ausgabe von dem exklusiven ODER 43a wird zu den rechten 32 Bit Daten einer Eingabe der ersten Rundenfunktion. In dem Fall gemäß 5A kann die Sequenz von exklusiven ODERn 42a und 43a ausgetauscht werden gemäß den Charakteristiken der exklusiven ODER.

Bezugnehmend auf 5B wird das Ergebnis, das gewonnen wird durch Permutieren des Klartexts (64 Bits) mit einer Anfangspermutation IP 41a in gleiche Hälften unterteilt, also rechte 32 Bit Daten und linke 32 Bit Daten. Ein exklusives ODER 44b berechnet das exklusive ODER der linken 32 Bit Daten und der Ausgabe von dem Schalter SW21. Dies eliminiert den Einfluss der Maske in dem exklusiven ODER 43a in 5A. Die Ausgabe von dem exklusiven ODER 44b wird eingegeben in eine Endpermutation IP–1 41b. Ein exklusives ODER 42b berechnet das exklusive ODER der rechten 32 Bit Daten und der Ausgabe von dem Schalter SW14. Ein exklusives ODER 43b berechnet das exklusive ODER der Ausgabe von dem exklusiven ODER 42b und der Ausgabe von dem Schalter SW22. Dies eliminiert den Einfluss der Maske in dem exklusiven ODER 44a in 5A. Die Ausgabe von dem exklusiven ODER 43b wird eingegeben in die Endpermutation IP–1 41b. Bezugnehmend auf 5B kann die Sequenz von exklusiven ODERn 42b und 43b ausgetauscht werden gemäß den Charakteristiken der exklusiven ODER.

Die Charakteristiken der Anordnung, die in den 4, 5A und 5B gezeigt sind, werden im Folgenden beschrieben.

Die exklusiven ODER 44a, 42a und 43a verbergen Daten durch Verwenden von Masken, wie die Masken a und b. Mit dieser Operation ist es in dem Datenverwürfler schwierig die linken 32-Bit Daten und die rechten 32-Bit Daten von der Außenwelt aus zu beobachten. Wenn die Daten jedoch durch Verwenden der obigen Masken verdeckt werden, in die jeweiligen S-Boxen 14 in 2 eingegeben werden, unterscheiden sich von den Originalklartextdaten, und folglich unterscheiden sich Ausgaben von den S-Boxen. Folglich entspricht der ausgegebene Chiffretext nicht den Originalklartextdaten.

Um das obige Problem zu lösen, berechnet in jeder Rundenfunktion das exklusive ODER 25 in 4 das exklusive ODER der Maske b oder der Maske b . Dies eliminiert den Einfluss der Verborgenheit unter Verwendung der Maske b oder b , die in 5A hinzugefügt wird. Wenn der Schalter SW12 die Daten veranlasst sich zu der 0-Seite zu verzweigen, eliminiert das exklusive ODER 32a den Einfluss der Verborgenheit unter Verwendung der Maske a in 5A. Die Eingabe in S29 wird also die gleiche wie die ursprüngliche Klartexteingabe. Die Ausgabe von S29 wird erneut verdeckt durch das exklusive ODER 33a unter Verwendung der Maske a. In diesem Fall wird der Prozessblock 34a durchgeführt im Voraus durch Nachschlagen der Tabelle, keine signifikanten Änderungen in Energieverbrauchsdaten, die direkt zu der Eingabe/Ausgabeoperation von S29 gehören, können von der Außenwelt beobachtet werden.

Das exklusive ODER 24 in 4 eliminiert zeitweise den Einfluss der Maske a oder a auf die rechten 32-Bit Daten. Die rechten 32-Bit Daten sind jedoch immer noch verborgen durch die Maske b oder b , und folglich wird die Sicherheit gewährleistet. Die rechten 32-Bit Daten werden zu linken 32-Bit Daten auf der nächsten Runde. Das exklusive ODER 31 berechnet das exklusive ODER der linken 32-Bit Daten und der Ausgabe von der Permutation P30. Als eine Konsequenz werden die Daten verdeckt durch die Maske a (oder a ) und die Maske b (oder b ) und werden zu einer rechten Eingabe auf der nächsten Runde. Wie oben beschrieben, wird folglich die Konsistenz zwischen den jeweiligen S-Boxen in Termen von DES für die Translation aufrechterhalten.

Bei der Ausgabe der Endrunde, um den Einfluss jeder Maske auf die Verdeckung in 5A zu eliminieren, wird das exklusive ODER unter Verwendung jeder Maske in 5B durchgeführt.

Die Schalter SW11, SW12, SW13 und SW14 werden gesteuert durch eine Zufallszahlsequenz {R1i}. Die Schalter SW21, SW22 und SW23 werden gesteuert durch die Zufallszahlsequenz {R2i}. Beispielsweise wählt jeder Schalter einen Zweig zu der 0-Seite, wenn Rji = 0, und wählt einen Zweig zu der 1-Seite, wenn Rji = 1. Die Zufallszahlsequenzen {R1i} und {R2i} zum Steuern der Schalter sind charakterisiert dadurch, dass sie geändert werden für jeden der Verschlüsselungs- und Entschlüsselungsprozesse für die jeweiligen Blöcke. In einem gegebenen Verschlüsselungsprozess führen beispielsweise alle Schalter SW11, SW12, SW13 und SW14 auf den jeweiligen Runden eine Verarbeitung auf der 0-Seite durch. In einem anderen Verschlüsselungsprozess führen alle Schalter SW11, SW12, SW13 und SW14 auf der jeweiligen Runde eine Verarbeitung auf der 1-Seite durch.

Wenn es eine eindeutig klare Beziehung einer Abhängigkeit zwischen den Zufallszahlsequenzen {R1i} und {R2i} gibt, hat ein Angreifer einen Hinweis für die Schätzung der Masken a und b, die Zufallszahlsequenzen, die keine klare Beziehung einer Abhängigkeit haben, werden verwendet als die Zufallszahlsequenzen {R1i} und {R2i}. Ideal ist die Verwendung von zwei Zufallszahlsequenzen, die statistisch unabhängig sind. In der Praxis jedoch, selbst wenn es eine statistische Abhängigkeitsbeziehung gibt, ist diese Technik wirkungsvoll als eine Maßnahme gegen eine Kryptoanalyse, die auf Energieverbrauchsdifferenzen basiert, solange die Beziehung ausreichend schwach ist. Zwei m Sequenzgeneratoren können vorbereitet werden als ein Mittel zum Implementieren der vorliegenden Erfindung, und Ausgaben von dem ersten und zweiten m Sequenzgenerator können jeweils gesetzt werden auf {R1j} und {R2j}. Wenn die Periode einer m Sequenz ausreichend lang ist, und die Sequenzlängen der 2 m Sequenzgeneratoren herkömmlichen Polynomen entsprechen, und ein Teil oder alle Anfangswerte gebildet sind, um voneinander verschieden zu sein, kann die obige Bedingung ausreichend erfüllt sein. Als ein anderes Mittel zum Implementieren von Zufallszahlsequenzen kann ein m Sequenzgenerator vorbereitet werden, um zwei Bits für jede Verschlüsselung oder Entschlüsselungsprozess zu erzeugen. Dieses erste und zweite Bit werden jeweils verwendet als {R1j} und {R2j}.

Obwohl die m Sequenzgeneratoren präsentiert werden als praktikable Beispiele in diesem Fall kann irgendein Zufallszahlsequenzgenerator verwendet werden, solange die Sicherheit in der Praxis gewährleistet werden kann. Man beachte, dass diese Zufallszahlsequenzen implementiert werden müssen, um nicht von der Außenwelt aus geschätzt zu werden. Gemäß einem noch anderen Implementierungsmittel können die Zufallszahlsequenzen in einem Speicher im Voraus gespeichert sein, um sequenziell darauf Bezug zu nehmen. Man beachte, dass diese Zufallszahlsequenzen implementiert werden müssen, so dass sie nicht von der Außenwelt aus geschätzt werden können.

Bezugnehmend auf die 4, 5A und 5B wird die Anzahl von 1s einer Bitsequenz, also eine Hamming-Gewichtung definiert als H(a). In der Kryptoanalyse unter Verwendung der Technik, die auf Energieverbrauchsdifferenzen basiert, werden die Energieverbrauchsdifferenzen in einem Datenverschlüsselungsprozess beobachtet, um Information über einen Verschlüsselungsschlüssel zu erfassen.

Die Verborgenheit von Daten unter Verwendung der obigen Masken macht es schwierig eine Energieverbrauchsmessung von der Außenwelt aus in Beziehung mit verarbeiteten Daten zu bringen. Wenn jedoch die Hamming-Gewichtungen der Masken voneinander verschieden sind, können nur Daten, die nur die Masken a und b verwenden, extrahiert werden gemäß einer Messung einer Mehrzahl von Verschlüsselungsdaten und statistischer Information. Wenn nur derartige Daten extrahiert werden können, kann ein Schlüssel wie beim Stand der Technik extrahiert werden unter Verwendung der Kryptoanalysetechnik die auf Energieverbrauchsdifferenzen basiert. Da die gegenwärtig verwendete Maske unterschieden werden kann als Maske a oder a in dieser Weise, kann eine zufriedenstellende Gegenmaßnahme nicht ergriffen werden. Wenn beispielsweise die Hamming-Gewichtungen der Masken a und a oder der Masken b und b gleichgesetzt sind, ist es schwierig die Masken durch eine Messung von außen zu unterscheiden, wodurch die Sicherheit gewährleistet wird. Wenn jedoch die Bitgewichtungen der Masken verschoben sind, wird die Sicherheit stark beeinträchtigt.

Bezugnehmend auf die 4, 5A und 5B, wenn folglich Masken, die die Sicherheit H(a) = H( a ) und H( b ) = H( b ) = n/2 = 16 erfüllen, ausgewählt werden (die Hamming-Gewichtungen der Masken sind gleich zueinander), wird eine hohe Sicherheit gewährleistet. In diesem Fall, da ein Bitzählwert n von jeder der Masken a und b gleich 32 ist, wird ein Maskenwert von 16 vorzugsweise verwendet als Bitgewichtung für jede der Masken a und b, und als die Bitinversionen der Masken a und b. Idealerweise, wie oben beschrieben, wird eine Maske mit einer Hamming-Gewichtung entsprechend der Hälfte der Bitlänge der Maske bevorzugt verwendet. Der gleiche Effekt, wie oben beschrieben, kann jedoch auch erhalten werden, indem zwei Masken verwendet werden, die fast die gleiche Hamming-Gewichtung haben. In anderen Worten, wenn die Hamming-Gewichtung, die die Anzahl von Bits 1 einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), erfüllt die Hamming-Gewichtung H(a) der Maske a 0 < H(a) < n. Alternativ ist der absolute Wert der Differenz zwischen der Hamming-Gewichtung H(a) und der Maske a und der Hamming-Gewichtung H( a ) der Bitinversion a der Maske a kleiner als n/2.

Wenn also die Hamming-Gewichtungen der jeweiligen Masken nicht extrem versetzt sind, ist es nicht einfach von außen die Masken durch eine Messung zu unterscheiden. Folglich kann die Wirkung einer Gegenmaßnahme gegen die Technik, die auf Energieverbrauchsdifferenzen basiert, gewonnen werden.

Betrachtet werden die Charakteristiken der Expansion E 26, die basiert auf DES in 4. Aus dem gleichen Grund wie für die Auswahl eines Maskenwerts bei der Betrachtung von Hamming-Gewichtungen, werden Masken, deren Hamming-Gewichtungen E(a) und E( a ), die angewendet werden auf die exklusiven ODER 32a und 32b, gleich zueinander ausgewählt. Masken, die H(E(a)) = H(E( a )) erfüllen, werden ausgewählt.

Wenn die obige Maskenbedingung auf die Implementierung des DES beispielsweise angewendet wird, ist es erforderlich, dass die Nummer von 1s der „ersten Bits" (die Bits auf den linken Enden) der jeweiligen 4-Bit Blöcke der Maske a und die Nummer von ls der „vierten Bits" (die Bits auf den rechten Enden) der jeweiligen 4-Bit Blöcke der Maske a jeweils 4 sind. Dieses Ausführungsbeispiel ist also gekennzeichnet durch Auswählen der Masken a und b, die die obige Bedingung erfüllen. Als Maskenwert, der die obige Bedingung erfüllt, können (10000011111011011110010100100001)2, (1101101001100101001101011001010)2 und dergleichen verwendet werden.

Idealerweise wird die Verwendung von Maskenwerten empfohlen, die die obige Bedingung erfüllen. Eine ähnliche Wirkung kann jedoch erhalten werden, wenn „die Nummer von 1s der „ersten Bits" der jeweiligen 4-Bit Blöcke der Maske a" und „die Nummer von 1s der „vierten Bits" der jeweiligen 4-Bit Blöcke der Maske a" nicht extrem versetzt sind.

Bei der Verwendung der Maskenwerte, die die obige Bedingung erfüllen, wenn es keine entsprechend klare Korrespondenz zwischen den Zufallszahlsequenzen {R1j} und {R2j} gibt zum Steuern der Schalter, selbst wenn der gleiche Maskenwert für die Masken a und b verwendet wird, kann eine effektive Gegenmaßnahme gegen ein Verschlüsseln unter Verwendung der Technik basierend auf Energieverbrauchsdifferenzen genommen werden.

Die DES Anordnung, wie in 1 gezeigt, ist am weitesten verbreitet und bekannt. Die DES Anordnungsverfahren, die verschiedenen gleich äquivalenten Modifikationen unterzogen wurden, um eine Erhöhung der Verarbeitungsgeschwindigkeit zu erhalten, sind bekannt.

Modifikationen, in denen die vorliegende Erfindung angewendet wird auf DES, werden im Folgenden beschrieben.

10 zeigt eine äquivalente Modifikation des DES. In der Implementierung des DES in 10, um die Verarbeitungseffizienz zu verbessern, sind die Permutation E 11 und die Permutation P 15 integriert in eine Permutation und verarbeitet als EP 53. Die Ausgabe, die erhalten wird durch Permutieren eines eingegebenen Klartextes 58 mit einer Anfangspermutation IP 57 wird in gleiche Hälften unterteilt. Die rechten 32 Bit Daten werden eingegeben in eine Expansion E 51a und die linken 32 Bit Daten werden eingegeben in eine Expansion E 51b. Die 48 Bits, die von der Expansion E 51a ausgegeben werden, sind die rechten 48 Bits einer Eingabe in die erste Runde. Die 48 Bits, die von der Expansion E 51b ausgegeben werden, sind die linken 48 Bits einer Eingabe in die erste Runde. Ein exklusives ODER 55 berechnet das exklusive ODER der rechten 48 Bits der Eingabe und eines erweiterten Schlüssels K1, und gibt die resultierenden Daten an die S-Box 54. Die S-Box 54 gibt eine entsprechende Ausgabe an EP 53 durch Nachschlagen der Tabelle. EP 53 permutiert die Eingabe und gibt die resultierenden Daten an eine exklusive ODER 56 aus. Das exklusive ODER 56 berechnet das exklusive ODER der linken 48 Bits, die von der Expansion E 51a ausgegeben werden und der Ausgabe von EP 53. Die resultierenden Daten werden zu den rechten 48 Bits einer Eingabe für die nächste Runde. Die obige Verarbeitung für die erste Runde wird wiederholt bis zur 16. Runde. Die rechten 48 Bits, die ausgegeben werden von der 16. Runde, werden eingegeben in eine Kontraktionspermutation E–1 52a, und die linken 48 Bits werden eingegeben in eine Kontraktionspermutation E–1 52b. Die jeweiligen 32-Bit Ausgaben werden eingegeben in eine Endpermutation IP–1 59. Als eine Konsequenz wird ein 64-Bit Chiffretext 60 ausgegeben.

Ein Verfahren zum Verhindern einer Kryptoanalyse, die die Technik verwendet, die auf Energieverbrauchsdifferenzen basiert, durch Anwenden der vorliegenden Erfindung auf ein derartiges modifiziertes DES wird im Folgenden beschrieben.

11 zeigt ein Ausführungsbeispiel der Implementierung des DES in 10 gemäß der vorliegenden Erfindung. Bezugnehmend auf 11 gibt „E(a)/E( a )" an, wie der Schalter SW23 eine Maske anwendet basierend auf einem exklusiven ODER. „E(a)/E( a )" gibt also die Maske E(a) oder E( a ) an.

11 zeigt ein Ausführungsbeispiel, das angibt, dass die vorliegende Erfindung, wie in den 4, 5A und 5B gezeigt, angewendet werden kann auf die Implementierung des DES in 10.

Die Ausgabe, die gewonnen wird durch Durchführen einer Anfangspermutation für einen eingegebenen Klartext, wird unterteilt in zwei gleiche Hälften. Die rechten 32-Bit Daten werden eingegeben in eine Expansion E 61a, und die linken 32-Bit Daten werden eingegeben in eine Expansion E 61b. Ein exklusives ODER 64 berechnet das exklusive ODER der 48-Bit Daten, die ausgegeben werden von der Expansion E61a, und der Maske E(a)/E( a ) und gibt die resultierenden Daten an ein exklusives ODER 65 aus. Das exklusive ODER 65 berechnet das exklusive ODER der Ausgabe von dem exklusiven ODER 64 und der Maske E(b)/E( b ), um die rechten 48 Bits einer Eingabe in die erste Runde zu erhalten. Man beachte, dass die Sequenz der exklusiven ODER 64 und 65 ausgetauscht werden kann in Abhängigkeit von den Charakteristiken der exklusiven ODER.

Ein exklusives ODER 69 berechnet das exklusive ODER der 48-Bit Daten, die von der Expansion E 61b, und der Maske E(b)/E( b ) ausgegeben werden, um die linken 48 Bits einer Eingabe in die erste Runde zu erhalten.

Ein exklusives ODER 66 berechnet das exklusive ODER der rechten 48 Bits der Eingabe und der Maske E(a)/E( a ), um die linken 48 Bits einer Eingabe in die nächste Runde zu erhalten. Ein exklusives ODER 67 berechnet das exklusive ODER der rechten 48 Bits der Eingabe und von E(b)/E( b ), und gibt die resultierenden Daten an ein exklusives ODER 68 aus. Das exklusive ODER 68 berechnet das exklusive ODER der Ausgabe von dem exklusiven ODER 67 und den erweiterten Schlüssel K1 und gibt die resultierenden Daten zu S^ 62 („^" gibt die Exponentation an). Die Struktur von S^ 62 wird später beschrieben. Die Ausgabe von S^ 62 wird permutiert durch EP 63 und an ein exklusives ODER 70 ausgegeben.

Das Schieberegister 70 berechnet das exklusive ODER der linken 48 Bits der eingegebenen Daten und der Ausgabe von EP 63, um die rechten 48 Bits einer Eingabe in die nächste Runde zu erhalten. Das Verarbeiten auf der ersten Runde wird wiederholt bis zur sechzehnten Runde. Die Ausgabe der Endrunde wird einer Verarbeitung umgekehrt zu der für die Eingabe der ersten Runde unterworfen. Spezieller werden die rechten 48 Bits einem exklusiven ODER 65, einem exklusiven ODER 64 und einer Kontraktionspermutation E–1 unterworfen, wobei die linken 48 Bits einem exklusiven ODER 65 und einer Kontraktionspermutation E–1 unterworfen werden. Die resultierenden zwei 32-Bit Daten werden ausgegeben an die Endpermutation.

12 zeigt die Struktur von S^ 62 in 11.

Bezugnehmend auf 12 ist &agr; = E(a) und &agr; = E( a ). Ein exklusives ODER 71 berechnet das exklusive ODER einer Eingabe in S^ 62 und einer Maske &agr; oder &agr; und gibt die resultierenden Daten in eine S-Box 72 ein. Ein exklusives ODER 73 berechnet das exklusive ODER der Ausgabe von der S-Box 72 und einer Maske p–1E–1(&agr;) oder p–1 E–1( &agr; ), um eine Ausgabe von S^ 62 zu erhalten.

Ein Block 74 in 12 entspricht also den Prozessblöcken 34a und 34b enthaltend die Schalter SW12 und SW11 in 4. Beachte, dass jedoch der Prozess in dem Block 74 nicht durchgeführt werden muss während einer Verschlüsselung und Entschlüsselung. Dies liegt daran, dass, selbst wenn Daten mit der oben genannten Maske verdeckt sind, da die Eingabe/Ausgabe-Operation der S-Box 72 nicht verdeckt ist, eine Kryptoanalyse versucht werden kann unter Verwendung von Energieverbrauchsdifferenzen in der S-Box Verarbeitung.

Das Ausführungsbeispiel der vorliegenden Erfindung ist dadurch gekennzeichnet, dass das Ergebnis des Prozesses in dem Block 74 gewonnen wird zuerst durch eine Berechnung, die im Voraus vor dem Verschlüsseln und dem Entschlüsseln durchgeführt wird, und dann für den Verschlüsselungsprozess und Entschlüsselungsprozess verwendet wird. Beispielsweise wird eine Tabelle, in der der Index jeder Eingabe in jede S-Box und eine entsprechende Ausgabe erneut geschrieben sind, vorbereitet für jede S-Box und verwendet als S^ für eine Verschlüsselungsverarbeitung und Entschlüsselungsverarbeitung. In diesem Fall werden eine S^ Tabelle, die der Maske &agr; entspricht und eine S^ Tabelle, die der Maske &agr; entspricht, in jeder S-Box vorbereitet.

13 zeigt eine andere äquivalente Modifikation des DES.

In der Implementierung des DES in 13, um die Verarbeitungseffizienz zu verbessern, sind die Expansion E 11 und die Permutation P 15 in eine Permutation integriert und als ein EP 83 verarbeitet. Die Ausgabe, die gewonnen wird durch Permutieren eines eingegebenen Klartextes 88 durch eine Anfangspermutation EP 87 wird in zwei gleiche Hälften unterteilt. Die rechten 32-Bit Daten werden in eine Permutation p–1 81a eingegeben, und die linken 32-Bit Daten werden in eine Permutation p–1 81b eingegeben. Die 32 Bits, die ausgegeben werden von der Permutation p–1 sind die rechten 32 Bits einer Eingabe in die erste Runde. Die 32 Bits, die ausgegeben werden von der Permutation p–1 81b sind die linken 32 Bits einer Eingabe in die dritte Runde. Die rechten 32 Bits der Eingabe werden in EP 83 eingegeben, und die resultierenden Daten, die gewonnen werden durch Durchfüren einer Expansion für die Eingabe werden ausgegeben an ein exklusives ODER 85. Der Erregungsrekonstruktionsabschnitt 85 berechnet das exklusive ODER der Daten und des erweiterten Schlüssels K1 und gibt die resultierenden Daten an eine S-Box 84aus. Die S-Box 84 gibt eine entsprechende Ausgabe an ein exklusives ODER 86 aus durch Nachschlagen der Tabelle. Das exklusive ODER 86 berechnet das exklusive ODER der linken 32 Bits, die ausgegeben werden von der Expansion E 81b und der Ausgabe von der S-Box 84, um die rechten 32 Bits einer Eingabe in die nächste Runde zu erhalten. Die Verarbeitung in der ersten Stufe wird wiederholt bis zu der 16-ten Runde.

Bei der Ausgabe der 16-ten Stufe werden die rechten 32 Bits eingegeben in eine Permutation P 82a, und die linken 32 Bits werden eingegeben in eine Permutation P 82b. Die jeweiligen 32-Bit Daten werden eingegeben in eine Endpermuation IP–1 89. Als Konsequenz wird ein 64-Bit Chiffretext 90 ausgegeben. Ein Verfahren zum Verhindern einer Kryptoanalyse unter Verwendung der Technik basierend auf Energieverbrauchsdifferenzen durch Anwenden der vorliegenden Erfindung auf eine derartige Modifikation des DES wird im Folgenden beschrieben.

14 zeigt ein Ausführungsbeispiel der äquivalenten Modifikation des DES in 13 gemäß der vorliegenden Erfindung.

Bezugnehmend auf 14 gibt „P–1(a)/P–1( a )" an, wie der Schalter SW23 eine Maske verwendet basierend auf einem exklusiven ODER. „P–1(a)/P–1( a )" gibt also eine Maske P–1(a) oder P–1 ( a )an.

14 zeigt ein Ausführungsbeispiel, das angibt, dass die vorliegende Erfindung, wie in den 4, 5A und 5B gezeigt, angewendet werden kann auf die Implementierung des DES in 13.

Die Ausgabe, die gewonnen wird durch Durchführen einer Anfangspermutation für einen Anfangsklartext wird unterteilt in zwei gleiche Hälften. Die rechten 32-Bit Daten werden eingegeben in eine Permutation P–1 91a und die linken 32-Bit Daten werden eingegeben in eine Permutation P–1 91b. Ein exklusives ODER 94 berechnet das exklusive ODER der 32 Bits, die ausgegeben werden von der Permutation P–1 91a und P–1(a)/P–1( a ) und gibt die resultierenden Daten an eine exklusive ODER 95 aus. Die Inverterschaltung 95 berechnet das exklusive ODER der Ausgabe von dem exklusiven ODER 95 und der Maske P–1(a)/P–1( a ), um die rechten 32 Bits einer Eingabe für die erste Runde zu erhalten. Beachte, dass die Sequenz von exklusiven ODERs 94und 95 ausgetauscht werden kann in Abhängigkeit von den Charakteristiken der exklusiven ODER.

Ein exklusives ODER 96 berechnet das exklusive ODER der rechten 32 Bits der Eingabe und der Maske P–1(a)/P–1( a ), um die linken 34 Bits einer Eingabe für die nächste Runde zu erhalten. Ein exklusives ODER 97 berechnet das exklusive ODER der rechten 32 Bits der Eingabe und der Maske P–1(b)/P–1( b ) und gibt die resultierenden Daten an EP 93. Die 48-Bit Ausgabe, die gewonnen wird durch Expansion an EP 93 wird ausgegeben an ein exklusives ODER 98, um exklusiv ODER verknüpft zu werden mit dem vergrößerten Schlüssel K1. Die resultierenden Daten werden ausgegeben an S^ 92. Die Struktur von S^ 92 wird später beschrieben. Die Ausgabe von S^ 92 wird ausgegeben an ein exklusives ODER 100, um exklusiv ODER verknüpft zu werden mit den linken 32 Bits der Eingabedaten, um die rechten 32 Bits einer Eingabe für die nächste Runde zu erhalten. Die obige Verarbeitung in der ersten Stufe wird wiederholt bis zur sechzehnten Runde.

Die Ausgabe von der Endrunde wird unterworfen einer Verarbeitung umgekehrt zu der für die Eingabe in die erste Runde. Spezieller werden die rechten 32 Bits, die dem exklusiven ODER 95 unterworfen werden, exklusiv ODER verknüpft 94 und eine Permutation P, wohingegen die linken 32 Bits der exklusiven ODER 95 und der Permutation P unterworfen werden. Die resultierenden zwei 32-Bit Daten werden an die Endpermutation ausgegeben.

15 zeigt die Struktur von S^ 92 in 14.

Bezugnehmend auf 15 ist &agr; = P–1(a) und &agr; = P–1(a^ ). Ein exklusives ODER 101 berechnet das exklusive ODER einer Eingabe in S^ 92 und einer Maske &agr; oder &agr; und gibt die resultierenden Daten an eine S-Box 102.

Ein exklusives ODER 103 berechnet das exklusive ODER der Ausgabe von der S-Box 102 und einer Maske P–1E–1(&agr;) oder P–1W–1( &agr; ), um eine Ausgabe von S^ 92 zu gewinnen. Ein Block 104 in 15 entspricht also den Prozessblöcken 34a und 34b, die die Schalter SW12 und SW11 in 4 enthalten. Man beachte, dass jedoch der Prozess in Block 104 nicht durchgeführt werden muss während einer Verschlüsselung und Entschlüsselung. Dies liegt daran, dass, selbst wenn Daten mit der obigen Maske verdeckt werden, da die Eingabe/Ausgabe-Operation der S-Box 102nicht verdeckt ist, eine Entschlüsselung versucht werden kann unter Verwendung von Energieverbrauchsdifferenzen in der S-Box Verarbeitung. Das Ausführungsbeispiel der vorliegenden Erfindung ist dadurch gekennzeichnet, dass das Ergebnis des Prozesses in dem Block 104 zuerst gewonnen wird durch eine Berechnung, die im Voraus vor einer Verschlüsselung und Entschlüsselung durchgeführt wird, und dann für die Verschlüsselungsverarbeitung und Entschlüsselungsverarbeitung verwendet wird. Beispielsweise werden eine Tabelle, in der der Index jeder Eingabe in jede S-Box und eine entsprechende Ausgabe geschrieben sind, für jede S-Box vorbereitet und als S^ verwendet für eine Verschlüsselungsverarbeitung und Entschlüsselungsverarbeitung.

In diesem Fall werden eine S^ Tabelle, die der Maske &agr; entspricht, und eine S^ Tabelle, die der Maske &agr; entspricht, in jeder S-Box vorbereitet.

Ein Ausführungsbeispiel, in dem die vorliegende Erfindung auf einem Schlüsselplaner angewendet wird, wird als nächstes unter Bezugnahme auf die 16, 17 und 18 beschrieben.

Ein Maskenmuster c für das Maskieren eines Bitmusters K eines wahren Schlüssels und ein Bitinversionsmuster c werden vorbereitet. Es sei Kc der Wert, der gewonnen wird durch Konvertieren von K mit c durch Verwenden einer bestimmten dyadischen Operation, und K c sei der Wert, der gewonnen wird durch Konvertieren von K mit c^ unter Verwendung der gleichen dyadischen Operation. Die Werte Kc und Kc^ werden in dem Speicher im Voraus gespeichert. Jedes Mal, wenn eine Verschlüsselung oder Entschlüsselung durchgeführt wird, wird einer der Werte Kc und Kc^c^ zufällig ausgewählt und in der gleichen Art und Weise der wahre Schlüssel verarbeitet. Die resultierenden Daten werden angewendet auf einen Klartext durch die obige dyadische Operation, und eine Inversion der dyadischen Operation wird durchgeführt, um den Einfluss des Musters c oder c von der Ausgabe, die durch die dyadische Operation erhalten wird, zu entfernen. Ein Fall, bei dem die vorliegende Erfindung angewendet wird auf ein DES Schema als ein Verschlüsselungsschema unter Verwendung einer exklusiven ODER Operation als dyadische Operation, wird zuerst beschrieben. Zuallererst werden zwei maskierte Schlüssel Kc und K c vorbereitet: Kc = K(+)c Kc = K(+)c wobei (+) ein exklusives ODER für jedes Bit darstellt.

Vor der Verschlüsselung oder Entschlüsselung wird einer der Schlüssel Kc und K c zufällig ausgewählt, und ein Schlüsselplanprozess des DES wird durchgeführt, um sequenziell erweiterte Schlüssel zu erzeugen 16. Die 16 erweiterten Schlüssel, die von Kc erweitert wurden, werden durch Kci ausgedrückt (i = 1, ..., 16), und die Schlüssel, die erweitert wurden von K c werden ausgedrückt durch K ci (i = 1, ..., 16). Die Schlüssel, die erweitert wurden von Kc sind durch die Maske c beeinflusst, und die Schlüssel, die erweitert wurden von K c sind durch die Maske c beeinflusst. Dieser Einfluss wird bestimmt durch den Schlüsselplanprozess von DES. In diesem Fall werden jedoch die Schlüssel, die von dem wahren Schlüssel K erweitert werden, nicht maskiert, gemäß einem Schlüsselplan ausgedrückt durch Ki (i = 1, ..., 16), das exklusive ODER von Ki und Kci wird ausgedrückt durch ci, und das exklusive ODER von Ki und K ci wird ausgedrückt durch ci . ci = Ki (+) Kci ci = Ki (+) K ci .

In dem DES wird jeder erweiterte Schlüssel Ki angewendet auf eine Nachricht durch ein exklusives ODER für jedes Bit unmittelbar nach der Expansion E. In der vorliegenden Erfindung wird Kci oder K ci angewendet anstelle von Ki. Wenn Kci angewendet wird, wird dessen Einfluss entfernt durch Anwenden von ci durch eine exklusive ODER Operation nach der Anwendung von Kci. Wenn K ci angewendet wird, wird dessen Einfluss entfernt durch Anwenden von ci durch eine exklusive ODER Operation nach der Anwendung von ci . Die Werte ci und ci werden gewonnen durch Vergrößern von c und c gemäß dem Schlüsselplan von DES in der gleichen Art und Weise, wie die erweiterten Schlüssel. Der Wert ci oder ci kann erzeugt werden aus der Maske c oder c , ausgewählt jedes Mal, wenn eine Verschlüsselung oder eine Entschlüsselung durchgeführt werden. Das Verfahren zum Berechnen von ci und ci im Voraus ist jedoch das Verfahren, dass die Leckage von Information am besten gegenüber einer Observierung von außen unterdrücken kann. In diesem Fall werden zwei Sätze von sechzehn 48-Bit Masken, also insgesamt 1.536 Bits vorbereitet. Wenn beispielsweise die vorliegende Erfindung angewendet wird für IC Karten, da diese Masken zumindest für jede Karte fixiert werden können, kann ci und ci in dem ROM geschrieben werden. Dies ist wichtig speziell für IC Karten, deren Speicherkapazitäten eingeschränkt sind. Im Allgemeinen, wenn die gleiche Anzahl an Bits zu speichern ist, ist der Bereich eines ROM kleiner als der eines RAM oder eines EERPOM. Wenn eine 1.536-Bit Maske in einem ROM gespeichert wird, wird die Benutzungseffizienz eines LSI Chipbereichs größer, als wenn die Maske in einem RAM oder einem EEPROM gespeichert wird.

16 zeigt einen Schlüsselplan des DES.

Bezugnehmend auf 16 kennzeichnen die Referenzsymbole (PC-1) 111 und (PC-2) 113 Funktionen, die jeweils gebildet sind durch eine Kombination einer Bitauswahl und einer Permutation; und ROT 112, zyklische Verschiebungsoperation. (PC-1) 111 verwirft 8 Bits eines extern eingegebenen 64-Bitschlüssels K 115 und transferiert zwei 28-Bitsequenzen an die zyklische Verschiebung 112. Die zyklisch verschobenen Daten, die gebildet sind aus insgesamt 56 Bits werden eingegeben in (PC-2) 113, um einen 48-Bit erweiterten Schlüssel auszugeben. Bezugnehmend auf 16 wird nur der erweiterte Schüssel, der einer Runde entspricht, ausgegeben. Die erweiterten Schlüssel, die der 2., 3., ..., 16. Runde entsprechen, werden jedoch durch Wiederholen der zyklischen Verschiebung und PC-2 erzeugt.

17 zeigt den Verarbeitungsfluss in einem Fall, bei dem die vorliegende Erfindung angewendet wird auf den Schlüsselplaner.

Auf der Schlüsseleingaberunde des Schlüsselplaners werden Kc und K c zufällig ausgewählt durch einen Schalter SW31 mit einer Wahrscheinlichkeit von fast 1/2 und in einen Schlüsselplaner 122 eingegeben. Die nachfolgende Verarbeitung in dem Schlüsselplaner ist die gleiche, wie die Schlüsselplanverarbeitung in dem allgemeinen DES. Ein erweiterter Schlüssel 123, der auszugeben ist, ist Kci, wenn der Eingabeschlüssel gleich Kc ist, und K ci , wenn der Eingabeschlüssel Kci ist.

18 zeigt, wie ein erweiterter Schlüssel, der durch eine Maske beeinflusst ist, angewendet wird auf eine Nachricht in jeder Rundenfunktion.

Ein Verfahren zum Anwenden von Kci oder K ci auf eine Nachricht ist im Allgemeinen gleich dem Verfahren zum Anwenden von Ki auf eine Nachricht. Ein exklusives ODER 132 wendet den erweiterten Schlüssel Kci oder K ci auf die 48 Bit Ausgabe von einer Expansion E 131 in Einheiten von Bits an durch eine exklusive ODER Operation. Da die resultierenden Daten beeinflusst sind durch die Maske c oder c , wenn diese Daten angegeben werden in eine S-Box ohne irgendeine Änderung, kann eine korrekte Verschlüsselung nicht durchgeführt werden. Aus diesem Grund muss der Einfluss der Maske c oder c auf die Daten entfernt werden, bevor sie in die S-Box eingegeben werden. Spezieller, wenn der Einfluss der Maske durch ci, dargestellt ist, wird ci angewendet auf die Daten durch ein exklusives ODER 133, bevor die Daten an die S-Box 134 ausgegeben werden. Da die Inversion eines exklusiven ODERs ein exklusives ODER ist, kann der Einfluss von ci entfernt werden. Dies gilt für einen Fall, bei dem der Einfluss der Masken dargestellt ist durch ci .

In diesem Ausführungsbeispiel, wenn die Maske ci ausgewählt wird als Bittranslation der Maske c, nehmen die jeweiligen Bits des erweiterten Schlüssels gleichmäßig die Werte „1" und „0" an. Dies kann einen Verlust von Information über den Schlüssel gegenüber verschiedenen Typen von Beobachtungen von außerhalb der Verschlüsselungsvorrichtung verhindern. Um den Verlust von Information zu minimieren, haben ci und ci vorzugsweise ähnliche Hamming-Gewichtungen. Beachte jedoch, dass ci gewonnen wird durch Verarbeiten c durch einen Schlüsselplan. Es ist folglich schwierig die Hamming-Gewichtungen von ci für alle Runden zu steuern. Unter Verwendung der Umstände kann ein Verfahren zum Auswählen einer Maske mit einer Hamming-Gewichtung entsprechend 1/2 der Bitgröße wie die ursprüngliche Maske c verwendet werden.

19 ist ein Flussdiagramm, das den Verarbeitungsfluss in einem Verschlüsselungsverfahren gemäß einem Ausführungsbeispiel zeigt, das die Schritte des Maskierens von Bits in Abhängigkeit von einem Klartext mit ausgewählten Maskenmustern enthält und den Schritt des Entfernens des Einflusses der Masken, die oben beschrieben wurden, von dem Chiffretext, bevor dieser ausgegeben wird.

Wenn Klartextdaten eingegeben (Schritt U1), wird mindestens ein i-tes Maskenpaar ausgewählt (Schritt U2). Mit dieser Operation werden Maskenmuster ai (Schritt U3) oder invertierte Maskenmuster a der Maskenmuster ai ausgewählt. Die Daten werden maskiert mit den ausgewählten Masken (Schritt U5). Es wird geprüft, ob das nächste Maskenpaar ausgewählt ist (Schritt U6). Wenn die Auswahl der nächsten Masken erforderlich ist, wird die Verarbeitung wiederholt von dem Schritt des Auswählens des neuen i-ten Maskenpaars (Schritt U2). Wenn die Auswahl des erforderlichen Maskenpaars beendet ist, wird ein Verschlüsselungsprozess der Daten durchgeführt (Schritt U7).

Da die Zwischenausgabedaten, die durch den Verschlüsselungsprozess (Schritt U7) erhalten werden, mit den Maskenmustern maskiert worden sind, wird das i-te Maskenpaar zuerst bestimmt (Schritt U8), um zu bestimmen, ob die Maskenmuster ai verwendet wurden (Schritt U9) oder die invertierten Maskenmuster a verwendet wurden (Schritt U10). Die Masken, die für die Daten angewendet wurden, werden entfernt (Schritt U11). Es wird dann geprüft, ob das Maskenentfernen beendet ist (Schritt U12). Wenn die Masken verbleiben, wird die Verarbeitung wiederholt von dem Schritt des Bestimmens des neuen Maskenpaars aus (Schritt 8). Wenn das Maskenentfernen beendet ist durch die obigen Schritte, wird der Chiffretext ausgegeben (Schritt U13).

20 zeigt ein Flussdiagramm, das den Fluss der Verarbeitung bei einem Verschlüsselungsverfahren gemäß einem Ausführungsbeispiel zeigt, enthaltend den Schritt des Entfernens des Einflusses von Masken von Eingangsdaten auf eine Datentranslation, und den Schritt des Maskierens der Ausgangsdaten von der Datentranslation mit Maskenmustern.

Wenn Daten in die Datentranslation eingegeben werden (Schritt V1), wird ein i-tes Maskenpaar geprüft (Schritt V2), um zu bestimmen, ob die Maskenmuster ai verwendet wurden (Schritt V3) oder invertierte Maskenmuster a der Maskenmuster ai verwendet wurden (Schritt V4). Die Masken, die auf die Daten angewendet wurden, werden entfernt (Schritt V5).

Es wird geprüft, ob das Maskenentfernen beendet ist (Schritt V6). Wenn Masken verbleiben, wird die Verarbeitung wiederholt von dem Schritt des Prüfens eines neuen Maskenpaars (Schritt V2). Wenn ein Maskenentfernen beendet ist durch die obigen Schritte wird die Datentranslation durchgeführt (Schritt V7).

Für die Ausgangsdaten bei der obigen Datentranslation (Schritt V7) wird mindestens ein i-tes Maskenpaar ausgewählt (Schritt V8) und die Maskenmuster ai (Schritt V9) oder Maskenmuster a (Schritt V10) werden ausgewählt. Die Daten werden mit den ausgewählten Masken maskiert (Schritt V11). Es wird dann geprüft, ob das nächste Maskenpaar ausgewählt ist (Schritt V12). Wenn die Auswahl eines Maskenpaars, die die Auswahl des nächsten Maskenpaars fordert und ein Maskieren beendet ist, werden die Daten von der Datentranslation ausgegeben (Schritt V12).

21 zeigt ein Flussdiagramm, das den Fluss der Verarbeitung in einem Verschlüsselungsverfahren gemäß einem Ausführungsbeispiel zeigt, das den Schritt des Entfernens des Einflusses der Masken von Zwischenbitdaten während einer Verschlüsselungsprozedur enthält, und den Schritt des Maskieren der Daten mit Maskenmustern.

Wenn der Chiffretextzwischenwert als Zwischenverschlüsselungsbitdaten eingegeben wird (Schritt W1) wird ein i-tes Maskenpaar geprüft (Schritt W2), um zu bestimmen, ob Maskenmuster ai verwendet wurden (Schritt W3) oder invertierte Maskenmuster a der Maskenmuster ai verwendet wurden (Schritt W4). Die Masken, die für die Daten angewendet werden, werden entfernt (Schritt W5).

Es wird dann geprüft, ob die Maskenentfernung beendet ist (Schritt W6). Wenn Masken übrig bleiben, wird die Verarbeitung wiederholt von dem Schritt des Prüfens eines neuen Maskenpaars an (Schritt W2). Wenn das Maskenentfernen beendet ist durch die obigen Schritte, wird ein Verschlüsselungsprozess durchgeführt durch eine Expansions-E-Rundenfunktion (Schritt W7).

Für die ausgegebenen Daten von der Verschlüsselungsrundenfunktion (Schritt 7W) wird mindestens ein i-tes Maskenpaar ausgewählt, um die Maskenmuster ai auszuwählen (Schritt W9) oder die invertierten Maskenmuster a (Schritt W10). Die Daten sind maskiert mit dem ausgewählten Maskenpaar (Schritt W11). Es wird ferner geprüft, ob das nächste Maskenpaar ausgewählt ist (Schritt W12). Wenn die Auswahl eines Maskenpaars, die die Auswahl des nächsten Maskenpaars erfordert und ein Maskieren beendet sind, wird der Chiffretextzwischenwert ausgegeben (Schritt W13).

22 zeigt ein Flussdiagramm, das zu einer Verschlüsselungsprozedur gemäß einem Ausführungsbeispiel der vorliegenden Erfindung gehört. Wenn ein Klartext eingegeben wird (Schritt X1), werden Maskenmuster zum Maskieren des Klartextes ausgewählt (Schritt X2). Bits, die von dem Klartext abhängen, werden maskiert mit den ausgewählten Maskenmustern (Schritt X3).

Für einen Zwischenwert der Verschlüsselungsdaten, die dem obigen Maskierungsprozess unterzogen wurden (Schritt X4), werden die Maskenmuster zum Maskieren der Eingangsdaten einer Rundenfunktion ausgewählt (Schritt X5). Die Masken werden entfernt von den Eingangsdaten der Rundenfunktion (Schritt X6). Maskenmuster zum Maskieren einer Eingabe in die Datentranslation werden ausgewählt (Schritt X7). Die Masken werden entfernt von den in die Datentranslation eingegebenen Daten (Schritt X8). Die Datentranslation wird dann umgewandelt in Eingangsdaten (Schritt X9).

Maskenmuster zum Maskieren der Ausgabe von der Datentranslation (Schritt X9) werden ausgewählt (Schritt X10) und die ausgegebenen Daten von der Datentranslation werden mit den Maskenmustern maskiert (Schritt X11). Die Maskenmuster für das Maskieren der ausgegebenen Daten der Rundenfunktion werden ausgewählt (Schritt X12), und die ausgegebenen Daten der Rundenfunktion werden mit den Maskenmustern maskiert (Schritt X13).

Es wird geprüft, ob die obige Prozedur beendet ist bei der n-ten Runde (Schritt X14). Wenn die Verarbeitung nicht beendet ist, wird die Verarbeitung von Schritt X4 wiederholt. Wenn die Verarbeitung zu der n-ten Runde beendet ist, werden die Maskenmuster, die den Chiffretext maskieren, ausgewählt (Schritt X15), und die Masken werden von den Bits in Abhängigkeit von dem Chiffretext entfernt (Schritt X16). Der letztendlich gewonnene Chiffretext wird ausgegeben (Schritt X17).

Als Verarbeitung in den Schritten X2, X3, X15 und X16 wird die Verarbeitung, die unter Bezugnahme auf 19 beschrieben wurde, durchgeführt. Als Verarbeitung in den Schritten X5, X6, X12 und X13 wird die Verarbeitung durchgeführt, die unter Bezugnahme auf 20 beschrieben wurde. Als Verarbeitung von Schritt S7 bis Schritt X11 werden eine Maskenbestimmungsverarbeitung, ein Maskenentfernen und eine Verdeckungsverarbeitung unter Verwendung der Masken durchgeführt in einem Prozess, in dem Tabellen verwendet werden, die im Voraus berechnet wurden, und dergleichen, um ein Leck von Zwischendaten in der Verarbeitung zu verhindern.

23 zeigt ein Blockdiagramm, das die Anordnung einer IC Karte zeigt, die die Verschlüsselungs/Entschlüsselungs-Vorrichtung implementiert, das Verschlüsselungs/Entschlüsselungs-Verfahren implementiert und ein Programmspeichermedium davon gemäß der oben beschriebenen Erfindung. Wie in 23 gezeigt, enthält eine IC Karte 201 eine CPU 203, ein RAM 205, ein ROM 207, ein EEPROM 209 und einen Schalter (Kontaktor) 211. Das RAM 205 wird verwendet, um verschiedene Daten zu speichern, und als ein Arbeitsbereich oder dergleichen. Das ROM 207 wird verwendet, um verschiedene Daten, Programme und dergleichen zu speichern. Das EEPROM 209 wird verwendet, um Programme zu speichern, die angegeben sind durch die Flussdiagramme gemäß den 19 bis 22 und dergleichen. Der Kontaktor 211 hält einen elektrischen Kontakt mit einem IC Kartenleser/Schreiber (nicht gezeigt). Man beachte, dass die in den 19 bis 22 gezeigten Programme in dem RAM 205 oder ROM 207 gespeichert sein können, anstatt in dem EEPROM 209.

In dem obigen Ausführungsbeispiel ist die Anwendung der vorliegenden Erfindung für das DES Schema im Einzelnen beschrieben worden. Die vorliegende Erfindung ist jedoch nicht darauf beschränkt und kann angewendet werden auf allgemeine Verschlüsselungsschemen, die teilweise oder vollständig Bestandteil der folgenden drei Typen von Funktionen sind, nämlich dyadische Operation, wie exklusive ODER Operationen, Permutationsäquivalente gegenüber Bitaustausch, und Chiffresystemäquivalente an S-Box.


Anspruch[de]
Verschlüsselungsvorrichtung zum Umwandeln eines Klartextblocks in einen Chiffretextblock in Abhängigkeit von gelieferter Schlüsselinformation, enthaltend mehrere Zustände eines Datenübersetzungsmittels (17, 35) zum Durchführen einer Datenübersetzung in Zwischendaten in der Vorrichtung, und ein Mittel zum Maskieren der Zwischendatenausgaben der Datenübersetzung mit Maskenmustern, gekennzeichnet durch:

ein Mittel (SW13, SW23) zum zufälligen Auswählen eines Musters von jedem von den Paaren (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion aller Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

ein Mittel (33a, 33b) zum Maskieren aller Bits von Eingabedaten in das Datenübersetzungsmittel mit Maskenmustern, die durch das Auswahlmittel ausgewählt werden; und

ein Mittel (32a, 32b) zum Entfernen eines Einflusses der ausgewählten Maske a von einer Ausgabe von dem Datenübersetzungsmittel, die durch das Maskierungsmittel maskiert worden ist.
Verschlüsselungsvorrichtung nach Anspruch 1, ferner gekennzeichnet durch:

ein Mittel zum zufälligen Auswählen eines Musters von jedem der Paare (ai, a i), wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist, von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird;

ein Mittel (43a, 44a, 42a) zum Maskieren von Bits des Klartextblocks in der Vorrichtung mit den Maskenmustern, die durch das Auswahlmittel ausgewählt werden; und

ein Mittel (42b, 43b, 44b) zum Entfernen eines Einflusses der ausgewählten Maske a von einem Chiffretext, bevor der Chiffretext ausgegeben wird.
Verschlüsselungsvorrichtung nach Anspruch 2, ferner gekennzeichnet durch:

ein Mittel (44a, 42a, 43a) zum Maskieren der Zwischenbitdaten in der Vorrichtung mit den Maskenmustern, die durch das Auswahlmittel ausgewählt worden sind; und

ein Mittel (24, 25) zum Entfernen eines Einflusses der Maske a von den Daten, die durch das Maskenmittel maskiert worden sind.
Verschlüsselungsvorrichtung nach Anspruch 2, ferner dadurch gekennzeichnet, dass das Mittel (43a, 44a, 42a) zum Maskieren der Bits des Klartextblocks in der Vorrichtung mit den ausgewählten Maskenmustern und das Mittel (42b, 43b, 44b) zum Entfernen des Einflusses der Maske a von dem Chiffretext von einem exklusiven ODER, einer Addition oder einer Subtraktion bezüglich eines Modulus w, und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Verschlüsselungsvorrichtung nach Anspruch 2, ferner dadurch gekennzeichnet, dass das Paar (a, a ) der Maskenmuster und Maskenmuster, die durch Bitinversion gewonnen werden, ein Paar (a, a ) der vorbestimmten festen Maskenmuster und Maskenmuster enthalten, die durch Bitinversion der festen Maskenmuster gewonnen werden. Verschlüsselungsvorrichtung nach Anspruch 2, ferner dadurch gekennzeichnet, dass das Paar (a, a ) der Maskenmuster und die Maskenmuster, die durch Bitinversion gewonnen werden, nicht notwendigerweise verborgen werden. Verschlüsselungsvorrichtung nach Anspruch 2, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), und die Hamming-Gewichtung H(a) der Maske a 0 < H(a) < n erfüllt. Verschlüsselungsvorrichtung nach Anspruch 1, ferner gekennzeichnet durch enthaltend:

ein Mittel zum zufälligen Auswählen eines Musters von jedem von Paaren (ai, a i), wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist, von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird;

ein Mittel (33a, 33b) zum Maskieren von Daten in der Vorrichtung mit den Maskenmustern, die durch das Auswahlmittel ausgewählt worden sind; und

ein Mittel (32a, 33b) zum Entfernen eines Einflusses der ausgewählten Maske a von den Daten, die durch das Maskenmittel maskiert worden sind.
Verschlüsselungsvorrichtung nach Anspruch 8, ferner dadurch gekennzeichnet, dass das Mittel (33a, 33b) zum Maskieren der Zwischenbitdaten in der Vorrichtung mit den ausgewählten Maskenmustern und das Mittel (32a, 33b) zum Entfernen des Einflusses der Maske a von den maskierten Daten von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Verschlüsselungsvorrichtung nach Anspruch 1, ferner dadurch gekennzeichnet, dass das Übersetzungsmittel (17, 35), das Mittel (33a, 33b) zum Maskieren der Eingaben in das Datenübersetzungsmittel (17, 35) mit den ausgewählten Maskenmustern, und das Mittel (24, 25) zum Entfernen des Einflusses der Maske a von den maskierten Ausgaben von dem Datenübersetzungsmittel (17, 35) von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Verschlüsselungsvorrichtung nach Anspruch 1, ferner gekennzeichnet durch:

ein erstes Speichermittel (34a) zum Speichern, in der Form einer Tabelle, des Mittels (SW13, SW23) zum zufälligen Auswählen eines Musters von jedem der Paare (ai, a i), wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist, von einem oder der Mehrzahl von vorbestimmten Maskenmustern oder Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird, des Mittels (33a) zu maskierender Eingaben in das Datenübersetzungsmittel mit den Maskenmustern ai, und des Mittels (24, 25) zum Entfernen des Einflusses der Masken ai von den maskierten Ausgaben von dem Datenübersetzungsmittel;

ein zweites Speichermittel (34b) zum Speichern, in der Form einer Tabelle, des Mittels (33b) zum Maskieren der Eingaben in das Datenübersetzungsmittel mit Maskenmustern a i, und des Mittels (24, 25) zum Entfernen eines Einflusses der Masken a i von den maskierten Ausgaben von dem Datenübersetzungsmittel; und

ein maskierte-Daten Übersetzungsmittel (EEPROM, RAM, ROM) zum zufälligen Auswählen von einem von dem ersten und zweiten Speichermittel, jedes Mal, wenn eine Verschlüsselung durchgeführt wird, und zum Durchführen der Verarbeitung durch das Datenübersetzungsmittel für die maskierten Daten.
Verschlüsselungsvorrichtung nach Anspruch 1, ferner gekennzeichnet durch:

ein Mittel (SW31) zum zufälligen Auswählen eines, Musters von jedem von Paaren (ai, a i), wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist, von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird;

ein Mittel (122) zum Maskieren von Bits in Abhängigkeit von einem Schlüssel in der Vorrichtung mit Maskenmustern, die durch das Auswahlmittel ausgewählt worden sind;

ein Datenübersetzungsmittel (132) zum Umwandeln von Daten in der Vorrichtung mit dem Schlüssel; und

ein Mittel (133) zum Entfernen eines Einflusses der ausgewählten Maske a von einer Ausgabe von dem Datenübersetzungsmittel.
Verschlüsselungsvorrichtung nach Anspruch 12, ferner dadurch gekennzeichnet, dass das Paar (a, a ) der Maskenmuster und Maskenmuster, die durch Bitinversion gewonnen werden, ein Paar (a, a i) von vorbestimmten festen Maskenmustern und Maskenmustern, die durch Bitinversion der festen Maskenmuster gewonnen werden, enthalten. Verschlüsselungsvorrichtung nach Anspruch 12, ferner dadurch gekennzeichnet, dass das Paar (a, a ) der Maskenmuster und Maskenmuster, die durch Bitinversion gewonnen werden, nicht notwendigerweise verborgen werden. Verschlüsselungsvorrichtung nach Anspruch 12, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), und die Hamming-Gewichtung H(a) der Maske a 0 < H(a) < n erfüllt. Verschlüsselungsvorrichtung nach Anspruch 12, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), und ein absoluter Wert einer Differenz zwischen der Hamming-Gewichtung H(a) der Maske a und einer Hamming-Gewichtung H( a ) einer Bitinversion a der Maske a kleiner als n/2 ist. Verschlüsselungsverfahren zum Umwandeln eines Klartextblocks in einen Chiffretextblock in Abhängigkeit von gelieferter Schlüsselinformation, mit den Schritten:

Durchführen (V7) mehrerer Stufen von Datenübersetzung in Daten in dem Verfahren und Maskieren der Zwischendatenausgaben jeder Stufe mit Maskenmustern; gekennzeichnet durch die Schritte

zufälliges Auswählen (V8, V9, V10) eines Musters von jedem von Paaren (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn die Verschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

Maskieren (V11) einer Eingabe in den Datenübersetzungsschritt mit den ausgewählten Maskenmustern; und

Entfernen (V5) eines Einflusses der ausgewählten Maske a von einer maskierten Ausgabe von dem Datenübersetzungsschritt.
Verschlüsselungsverfahren nach Anspruch 17, ferner gekennzeichnet durch die Schritte:

zufälliges Auswählen (U2, U3, U4) eines Musters von jedem der Paare (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

Maskieren (U5) von Bits in Abhängigkeit von einem Klartext in dem Verfahren mit den ausgewählten Maskenmustern; und

Entfernen (U11) eines Einflusses der ausgewählten Maske a von einem Chiffretext, bevor der Chiffretext ausgegeben wird.
Verschlüsselungsverfahren nach Anspruch 18, ferner dadurch gekennzeichnet, dass der Schritt des Maskierens der Bits des Klartextblocks in dem Verfahren mit den ausgewählten Maskenmustern und der Schritt des Entfernens des Einflusses der Maske a von dem Chiffretext von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Verschlüsselungsverfahren nach Anspruch 18, ferner dadurch gekennzeichnet, dass das Paar (a, a ) der Maskenmuster und Maskenmuster, die durch Bitinversion gewonnen werden, ein Paar (a, a ) von vorbestimmten festen Maskenmustern und Maskenmustern, die durch Bitinversion der festen Maskenmustern gewonnen werden, enthalten. Verschlüsselungsverfahren nach Anspruch 18, ferner dadurch gekennzeichnet, dass das Paar (a, a ) der Maskenmuster und Maskenmuster, die durch Bitinversion gewonnen werden, nicht notwendigerweise verborgen sind. Verschlüsselungsverfahren nach Anspruch 18, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), und die Hamming-Gewichtung H(a) der Maske a 0 < H(a) < n erfüllt. Verschlüsselungsverfahren nach Anspruch 18, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, als H(x) definiert ist, und ein absoluter Wert einer Differenz zwischen der Hamming-Gewichtung H(a) der Maske a und einer Hamming-Gewichtung H( a ) einer Bitinversion a der Maske a kleiner als n/2 ist. Verschlüsselungsverfahren nach Anspruch 17, ferner gekennzeichnet durch die Schritte:

zufälliges Auswählen (W2, W3, W4) eines Musters von jedem von Paaren (ai, a i), wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist, von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Verschlüsselung durchgeführt wird;

Maskieren (W5) von Zwischenbitdaten in dem Verfahren mit den ausgewählten Maskenmustern; und

Entfernen (W11) eines Einflusses der ausgewählten Maske a von den maskierten Daten.
Verschlüsselungsvorrichtung nach Anspruch 24, ferner dadurch gekennzeichnet, dass der Schritt des Maskierens der Daten in dem Verfahren mit den ausgewählten Maskenmustern und der Schritt des Entfernens des Einflusses der Maske a von den maskierten Daten von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Verschlüsselungsverfahren nach Anspruch 17, ferner dadurch gekennzeichnet, dass der Datenübersetzungsschritt, der Schritt des Maskieren der Eingabe in den Datenübersetzungsschritt mit den ausgewählten Maskenmustern, und der Schritt des Entfernens des Einflusses der Maske a von der maskierten Ausgabe von dem Datenübersetzungsschritt von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Verschlüsselungsverfahren nach Anspruch 17, ferner gekennzeichnet durch die Schritte:

Speichern, in der Form einer Tabelle, des Schritts des zufälligen Auswählens eines Musters von jedem der Paare (ai, a i) von einem oder der Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn die Verschlüsselung durchgeführt wird, des Schritts des Maskieren der Eingabe in den Datenübersetzungsschritt mit den Maskenmustern ai, und des Schritts des Entfernens des Einflusses der Masken ai von den maskierten Ausgaben von dem Datenübersetzungsschritt, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

Speichern, in der Form einer Tabelle, des Schritts des Maskierens der Eingabe in den Datenübersetzungsschritt mit Maskenmustern a i, und des Schritts des Entfernens eines Einflusses der Masken a i von der maskierten Ausgabe von dem Datenübersetzungsschritt; und

zufälliges Auswählen von einem von dem ersten und zweiten Speicherschritt, jedes Mal, wenn die Verschlüsselung durchgeführt wird, und Durchführen der Verarbeitung in dem Datenübersetzungsschritt für die maskierten Daten.
Entschlüsselungsvorrichtung zum Umwandeln eines Chiffretextblocks in einen Klartextblock in Abhängigkeit von gelieferter Schlüsselinformation, enthaltend mehrere Zustande eines Datenübersetzungsmittels (17, 35) zum Durchführen der Datenübersetzung in Zwischendaten in der Vorrichtung, und ein Mittel zum Maskieren der Zwischendatenausgaben des Datenübersetzungsmittels mit Maskierungsmustern, gekennzeichnet durch:

ein Mittel (SW13, SW23) zum zufälligen Auswählen eines Musters von jedem von Paaren (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn die Entschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

ein Mittel (33a, 33b) zum Maskieren einer Eingabe in das Datenübersetzungsmittel mit Maskenmustern, die durch das Auswahlmittel ausgewählt werden; und

ein Mittel (24, 25) zum Entfernen eines Einflusses der ausgewählten Maske a von einer Ausgabe von dem Datenübersetzungsmittel, die durch das Maskierungsmittel maskiert worden sind.
Entschlüsselungsvorrichtung nach Anspruch 28, ferner gekennzeichnet durch

ein Mittel (SW21, SW22) zum zufälligen Auswählen eines Musters von jedem von Paaren (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn die Entschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

ein Mittel (43a, 44a, 42a) zum Maskieren von Bits des Chiffretextblocks in der Vorrichtung mit den Maskenmustern, die durch das Auswahlmittel ausgewählt werden; und

ein Mittel (42b, 43b, 44b) zum Entfernen eines Einflusses der ausgewählten Maske a von einem Klartext, bevor der Klartext ausgegeben wird.
Entschlüsselungsvorrichtung nach Anspruch 29, ferner dadurch gekennzeichnet, dass das Mittel (43a, 44a, 42a) zum Maskieren der Bits in Abhängigkeit von dem Klartext in der Vorrichtung mit den ausgewählten Maskenmustern und das Mittel (24, 25) zum Entfernen des Einflusses der Maske a von dem Klartext von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Entschlüsselungsvorrichtung nach Anspruch 30, ferner dadurch gekennzeichnet, dass das Datenübersetzungsmittel (17, 35), das Mittel (33a, 33b) zum Maskieren der Eingabe in das Datenübersetzungsmittel (17, 35) mit den ausgewählten Maskenmustern, und das Mittel (24, 25) zum Entfernen des Einflusses der Maske a von der maskierten Ausgabe von dem Datenübersetzungsmittel von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Entschlüsselungsvorrichtung nach Anspruch 29, ferner dadurch gekennzeichnet, dass das Paar (a, a ) von Maskenmustern und Maskenmustern, die durch Bitinversion gewonnen werden, ein Paar (a, a ) von vorbestimmten festen Maskenmustern und Maskenmuster, die durch Bitinversion der festen Maskenmuster gewonnen werden, enthalten. Entschlüsselungsvorrichtung nach Anspruch 29, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), und die Hamming-Gewichtung H(a) der Maske a 0 < H(a) < n erfüllt. Entschlüsselungsvorrichtung nach Anspruch 29, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), und ein absoluter Wert einer Differenz zwischen der Hamming-Gewichtung H(a) der Maske a und einer Hamming-Gewichtung H( a ) einer Bitinversion a der Maske a kleiner als n/2 ist. Entschlüsselungsvorrichtung nach Anspruch 28, ferner gekennzeichnet durch:

ein Mittel zum zufälligen Auswählen eines Musters von jedem von Paaren (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmuster, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Entschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

ein Mittel (33a, 33b) zum Maskieren von Daten in der Vorrichtung mit den Maskenmustern, die durch das Auswahlmittel ausgewählt werden; und

ein Mittel (32a, 33b) zum Entfernen eines Einflusses der ausgewählten Maske a von den Daten, die durch das Maskenmittel maskiert worden sind.
Entschlüsselungsvorrichtung nach Anspruch 35, ferner dadurch gekennzeichnet, dass das Mittel (33a, 33b) zum Maskieren der Daten in der Vorrichtung mit den ausgewählten Maskenmustern und das Mittel (32a, 33b) zum Entfernen des Einflusses der Maske a von den maskierten Daten von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Entschlüsselungsvorrichtung nach Anspruch 35, ferner dadurch gekennzeichnet, dass das Paar (ai, a i) von Maskenmustern und Maskenmustern, die durch Bitinversion gewonnen werden, nicht notwendigerweise verborgen sind. Entschlüsselungsvorrichtung nach Anspruch 28, ferner gekennzeichnet durch

ein erstes Speichermittel (34a) zum Speichern, in der Form einer Tabelle, des Mittels (SW13, SW23) zum zufälligen Auswählen eines Musters von jedem der Paare (ai, a i) von einem oder der Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion aller Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn eine Entschlüsselung durchgeführt wird, des Mittels (33a, 33b) zum Maskieren der Eingabe in das Datenübersetzungsmittel mit den Maskenmustern ai, und des Mittels (24, 25) zum Entfernen des Einflusses der Masken ai von der maskierten Ausgabe von dem Datenübersetzungsmittel, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

ein zweites Speichermittel (34b) zum Speichern, in der Form einer Tabelle, des Mittels (33b) zum Maskieren der Eingabe in das Datenübersetzungsmittel mit Maskenmustern a i, und des Mittels (24, 25) zum Entfernen eines Einflusses der Masken a i von der maskierten Ausgabe von dem Datenübersetzungsmittel; und

ein maskierte-Daten Übersetzungsmittel (EEPROM, RAM, ROM) zum zufälligen Auswählen von einem von dem ersten und zweiten Speichermittel, jedes Mal, wenn die Entschlüsselung durchgeführt wird, und zum Durchführen der Verarbeitung durch das Datenübersetzungsmittel für die maskierten Daten.
Entschlüsselungsverfahren zum Umwandeln eines Chiffretextblocks in einen Klartextblock in Abhängigkeit von gelieferter Schlüsselinformation, gekennzeichnet durch die Schritte:

Durchführen (V7) von mehreren Stufen einer Datenübersetzung in Daten in dem Verfahren und Maskieren der Zwischendatenausgaben der Datenübersetzung mit Maskierungswerten, gekennzeichnet durch die Schritte:

zufälliges Auswählen (V8, V9, V10) eines Musters von jedem der Paare (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskierungsmustern und Maskierungsmustern, die durch Bitinversion von allen Bits der vorbestimmten Maskierungsmuster gewonnen werden, jedes Mal, wenn die Entschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

Maskieren (V11) einer Eingabe in den Datenübersetzungsschritt mit den ausgewählten Maskenmustern; und

Entfernen (V5) eines Einflusses der ausgewählten Maske a von der maskierten Ausgabe von dem Datenübersetzungsschritt.
Entschlüsselungsverfahren nach Anspruch 39, ferner gekennzeichnet durch die Schritte:

zufälliges Auswählen (U2, U3, U4) eines Musters von jedem von Paaren (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion aller Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn die Entschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

Maskieren (U5) von Bits in Abhängigkeit von einem Chiffretext in dem Verfahren mit den ausgewählten Mustern; und

Entfernen (U11) eines Einflusses der ausgewählten Maske a von einem Klartext, bevor der Klartext ausgegeben wird.
Entschlüsselungsverfahren nach Anspruch 40, ferner dadurch gekennzeichnet, dass der Schritt des Maskierens der Bits des Chiffretextblocks in dem Verfahren mit den ausgewählten Maskenmustern und der Schritt des Entfernens des Einflusses der Maske a von dem Klartext von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Entschlüsselungsverfahren nach Anspruch 40, ferner dadurch gekennzeichnet, dass das Paar (a, a ) von Maskenmustern und Maskenmustern, die durch Bitinversion gewonnen werden, ein Paar (a, a ) der vorbestimmten festen Maskenmuster und Maskenmuster, die durch Bitinversion der festen Maskenmuster gewonnen werden, enthalten. Entschlüsselungsverfahren nach Anspruch 40, ferner dadurch gekennzeichnet, dass das Paar (a, a ) der Maskenmuster und Maskenmuster, die durch Bitinversion gewonnen werden, nicht notwendigerweise verborgen werden. Entschlüsselungsverfahren nach Anspruch 40, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), und die Hamming-Gewichtung H(a) der Maske a 0 < H(a) < n erfüllt. Entschlüsselungsverfahren nach Anspruch 40, ferner dadurch gekennzeichnet, dass eine Hamming-Gewichtung, die die Anzahl an Bits „1" einer n-Bit langen Bitsequenz x angibt, definiert ist als H(x), und ein absoluter Wert einer Differenz zwischen der Hamming-Gewichtung H(a) der Maske a und einer Hamming-Gewichtung H( a ) einer Bitinversion a der Maske a kleiner als n/2 ist. Entschlüsselungsverfahren nach Anspruch 39, ferner gekennzeichnet durch:

zufälliges Auswählen (W2, W3, W4) eines Musters von jedem der Paare (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion aller Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn die Entschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist; Maskieren (W5) der Daten in dem Verfahren mit den ausgewählten Maskenmustern; und

Entfernen (W11) eines Einflusses der ausgewählten Maske a von den maskierten Daten.
Entschlüsselungsverfahren nach Anspruch 46, ferner dadurch gekennzeichnet, dass der Schritt des Maskierens der Daten in dem Verfahren mit den ausgewählten Maskenmustern und der Schritt des Entfernens des Einflusses der Maske a von den maskierten Daten von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Entschlüsselungsverfahren nach Anspruch 39, ferner dadurch gekennzeichnet, dass der Datenübersetzungsschritt, der Schritt des Maskierens der Eingabe in den Datenübersetzungsschritt mit den ausgewählten Maskenmustern, und der Schritt des Entfernens des Einflusses der Maske a von der maskierten Ausgabe von dem Datenübersetzungsschritt von einem exklusiven ODER, einer Addition oder Subtraktion bezüglich eines Modulus w und einer Multiplikation oder Division bezüglich des Modulus w eines enthalten. Entschlüsselungsverfahren nach Anspruch 39, ferner gekennzeichnet durch die Schritte:

Speichern, in der Form einer Tabelle, des Schritts des zufälligen Auswählens eines Musters von jedem der Paare (ai, a i) von einem oder einer Mehrzahl der vorbestimmten Maskenmuster und Maskenmuster, die durch Bitinversion von allen Bits der vorbestimmten Maskenmuster gewonnen werden, jedes Mal, wenn die Entschlüsselung durchgeführt wird, des Schritts des Maskierens der Eingabe in den Datenübersetzungsschritt mit den Maskenmustern ai, und des Schritts des Entfernens des Einflusses der Masken ai von der maskierten Ausgabe von dem Datenübersetzungsschritt, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

Speichern, in der Form einer Tabelle, des Schritts des Maskierens der Eingabe in den Datenübersetzungsschritt mit Maskenmustern a i, und des Schritts des Entfernens eines Einflusses der Masken a i von der maskierten Ausgabe von dem Datenübersetzungsschritt; und

zufälliges Auswählen von einem der ersten und zweiten Speicherschritte, jedes Mal, wenn die Entschlüsselung durchgeführt wird, und Durchführen der Verarbeitung in dem Datenübersetzungsschritt für die maskierten Daten.
Computerverwendbares Programmspeichermedium (205, 207, 209), das ein computerlesbares Programmcodemittel speichert zum Umwandeln eines Klartextblocks in einen Chiffretextblock in Abhängigkeit von einer gelieferten Schlüsselinformation, unter Verwendung mehrerer Zustände eines Datenübersetzungsmittels zum Durchführen einer Datenübersetzung in Zwischendaten in der Vorrichtung, und ein Mittel zum Maskieren der Zwischendatenausgaben der Datenübersetzung mit Maskierungsmustern, gekennzeichnet durch

ein computerlesbares Programmcodemittel (U2, U3, U4) zum Veranlassen eines Computers ein Muster von jedem von Paaren (ai, a i) von einem oder einer Mehrzahl von vorbestimmten Maskenmustern und Maskenmustern, die durch Bitinversion von allen Bits der vorbestimmten Maske gewonnen werden, zufällig auszuwählen, jedes Mal, wenn die Entschlüsselung durchgeführt wird, wobei i ein positiv ganzzahliger Wert nicht kleiner als 1 ist;

ein computerlesbares Programmcodemittel (U5) zum Veranlassen des Computers Bits des Klartextblocks in dem Verfahren mit den ausgewählten Maskenmustern zu maskieren; und

ein computerlesbares Programmcodemittel (U11) zum Veranlassen des Computers einen Einfluss der ausgewählten Maske a von einem Chiffretext zu entfernen, bevor der Chiffretext ausgegeben wird.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com