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.