-
Hintergrund
der Erfindung
-
Die
vorliegende Erfindung betrifft die Datenverschlüsselung und insbesondere die
Verbesserungen der Verarbeitungseffizienz der Verschlüsselung und
Chiffrefestigkeit gegen jegliche Kryptanalyse. Außerdem betrifft
die vorliegende Erfindung die Verschlüsselung, die eine Datenkomprimierung
umfasst, und insbesondere die Verbesserungen der Verarbeitungseffizienz
der Datenkomprimierung und -verschlüsselung und Festigkeit gegen
Kryptanalyse.
-
Mit
der Zunahme computergestützter
zentraler Informationen eines Systems und der Datenkommunikation über ein
Netzwerk wird nun einer Technik der Datenverschlüsselung, um die computergestützten Daten
vor Verfälschung
und Anzapfung zu bewahren, mehr Bedeutung beigemessen. Wie in "Introduction to Cryptography
Theory", Kyoritu,
Ausgabe 1993, auf den Seiten 27 bis 32 beschrieben ist, ist die
Verschlüsselung
in ein symmetrisches Schlüssel-Kryptosystem
und ein. asymmetrisches Schlüssel-Kryptosystem grob
unterteilt. Die vorliegende Erfindung ist zur Verbesserung des symmetrischen Kryptosystems
vorgesehen, das zum Verschlüsseln einer
großen
Datenmenge geeignet ist. Ein Geheimschlüssel-Kryptosystem wird später einfach
als Kryptosystem bezeichnet.
-
Zunächst geht
die Beschreibung auf die Grundbegriffe bezüglich des Kryptosystems ein.
Wie auf den Seiten 33 bis 59 der obigen Schrift beschrieben ist,
wird das Kryptosystem ausgeführt,
um Klartext durch geheime Parameter in Chiffretext umzuwandeln.
Das Dekryptosystem wird ausgeführt,
um den Chiffretext durch die Wirkung der umgekehrten Transformation
mit den gleichen geheimen Parametern wie die im Kryptosystem verwendeten
in den ursprünglichen
Klartext umzuwandeln. Die geheimen Parameter werden im Allgemeinen
als Krypt-Schlüssel
(oder einfach als Schlüssel)
bezeichnet. Die Verschlüsselungsprozedur
besteht aus der Wiederholung einer oder mehrerer Arten grundlegender
Funktionen. Die anzahl der Wiederholungen wird als Runden bezeichnet.
Bei der Anwendung der Verschlüsselungsprozedur
werden die Eingabedaten in Teile aufgeteilt, die jeweils gleich
groß sind,
und die Verschlüsselungsprozedur
wird auf jeden Datenteil angewendet. Jeder Datenteil wird als ein
Krypt-Block (oder einfach als Block) bezeichnet.
-
Beim
Entwerfen und bei der Weiterentwicklung der Verschlüsselung
ist ein wichtiger Faktor eine Abwehr für verschiedene Arten von Entschlüsselungsverfahren.
Das am häufigsten
verwendete Entschlüsselungsverfahren
ist eine umfassende Suche nach Schlüsseln. In jüngster Zeit wird jedoch mehr Gewicht
auf eine effizientere differentielle Kryptanalyse und lineare Kryptanalyse
als auf die umfassende Suche gelegt.
-
Auf
den Seiten 163 bis 166 der oben erwähnten Schrift und der linearen
Kryptanalyse des in "The 1993
Symposium on Cryptography and Information Security" veröffentlichten
Datenverschlüsselungsstandard
(Data Encryption Standard, DES) verwenden die differentiellen und
die linearen Kryptanalysen die Korrelation zwischen dem Klartext,
dem Chiffretext und den Schlüsseln,
die dem Verschlüsselungssystem
eigen sind, die ausgeführt
wird, um eine Menge Eingaben und Ausgaben (Klartext und Chiffretext),
die durch denselben Schlüssel
zu verschlüsseln
oder entschlüsseln
sind, zu sammeln und die statistische Operation bezüglich dieser
Eingaben und Ausgaben zum Schätzen
des Schlüssels
auszuführen.
-
Das
herkömmliche
Verfahren zur Abwehr der differentiellen oder linearen Kryptanalyse
beim herkömmlichen
Verschlüsselungssystem
wird ausgeführt,
um die Korrelation zwischen dem Klartext, dem Chiffretext und dem
Schlüssel
durch Vermehrung der Runden zu verringern.
-
Die
Verarbeitungszeit der Verschlüsselung oder
Entschlüsselung
ist proportional zu den Runden. Die Abwehr für die differentialen und linearen Kryptanalysen
durch die Wirkung der Vermehrung der Runden bringt einen großen Nachteil
mit sich, d. h. die Zunahme der Verarbeitungszeit.
-
Eine
Verschlüsselung
wird häufig
in Verbindung mit Datenkomprimierung ausgeführt. Wie auf den Seiten 21
bis 247 von "The
Data Compression Book",
Japanisch, Toppan (1994) beschrieben, wird die Komprimierung ausgeführt, um
eine Bitfolge des Klartextes durch eine kürzere Bitfolge zu ersetzen.
-
Die
US 5,479,512 offenbart ein
Verfahren und eine Vorrichtung zur integrierten Komprimierung und
Verschlüsselung
klarer Daten. Gemäß einer
in
3A dieses Dokuments dargestellten
Ausführungsform
werden die klaren Daten einer Vorkomprimierungsstufe unterzogen
und danach werden die vorkomprimierten Daten in N Segmente aufgeteilt. Die
so erhaltenen Segmente werden danach mittels eines Verschlüsselungsschlüssels verschlüsselt, wobei
der Verschlüsselungsprozess
eine Verkettungsoperation einschließlich einer Modifikation des
Verschlüsselungsschlüssels von
Segment zu Segment sein kann. Nach der Verschlüsselung wird bei den verschlüsselten
Segmenten ein Nachkomprimierungsschritt ausgeführt. Die letzte Komprimierungsstufe
kann irgendeine Art der Huffman-Komprimierung aufweisen. In den
Komprimierungsstufen verwendete Komprimierungstabellen werden mittels
eines geeigneten Schlüssels
ebenfalls verschlüsselt und
vor der Übertragung
der Daten an einen Empfangsort übertragen.
-
Die
WO 91/18460 A1 offenbart einen Prozess zum blockweisen Codieren
digitaler Daten, an dem eine Mehrzahl Operationsregister beteiligt
ist, die alle einen entsprechenden Schlüssel zum Ausführen einer
Umwandlung von darin enthaltenem Text anwenden. Textblöcke werden
so nacheinander durch die Folge von Operati onsregistern geschoben, wobei
sie jedes Mal eine weitere Umwandlung erfahren.
-
Eine
Aufgabe der vorliegenden Erfindung ist die Verbesserung der Sicherheit
eines Kryptosystems.
-
Zur
Lösung
dieser Aufgabe stellt die vorliegende Erfindung ein Informationsverarbeitungsverfahren
nach Anspruch 1, eine Informationsverarbeitungsvorrichtung nach
Anspruch 4 und ein computerlesbares Aufzeichnungsmedium nach Anspruch
5 bereit.
-
Bevorzugte
Ausführungsformen
sind in den Unteransprüchen
2 und 3 angegeben.
-
Gemäß der Erfindung
wird die Entsprechung zwischen der Bitfolge eines Blocks Klartext
und der Bitfolge komprimierter Daten für jeden Block auf Basis eines
im Prozess der Verschlüsselung
eines vorherigen Blocks gegebenen Zwischenergebnisses geändert.
-
Deshalb
ist es unmöglich
zu erkennen, wie die Entsprechung zwischen der Bitfolge des Blocks des
Klartextes und der Bitfolge der komprimierten Daten geändert wird,
es sei denn, der Schlüssel
wird erhalten. Das Verfahren ermöglicht
deshalb die Verwendung der Komprimierung als eine Art Kryptosystem,
bietet dieselben Wirkungen wie die Vermehrung der Runden und verhindert
dadurch, die differentiellen und linearen Kryptanalysen.
-
Kurzbeschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm, das eine funktionale Konfiguration gemäß einer
ersten Ausführungsform
der vorliegenden Erfindung zeigt;
-
2 ist
ein Flussdiagramm, das eine im Verfahren eines Steuerprozesses und
der Vorrichtung gemäß der ersten
Ausführungsform
der vorliegenden Erfindung ausgeführte Operation zeigt;
-
3 ist
ein Diagramm, das einen Huffman-Baum zeigt, der die Entsprechung
zwischen Klartextdaten und komprimierten Daten angibt, die gemäß der ersten
Ausführungsform
der vorliegenden Erfindung verwendet werden;
-
4 ist
ein Diagramm, das eine Transformation des Huffman-Baums zeigt, der
bei dem Verfahren und der Vorrichtung gemäß der ersten Ausführungsform
der vorliegenden Erfindung verwendet wird;
-
5 ist
ein Blockdiagramm, das eine funktionale Konfiguration gemäß einer
zweiten Ausführungsform
der vorliegenden Erfindung zeigt; und
-
6 ist
ein Flussdiagramm, das eine bei dem Verfahren eines Steuerprozesses
und der Vorrichtung gemäß der zweiten
Ausführungsform
der vorliegenden Erfindung ausgeführte Operation zeigt.
-
Beschreibung
der bevorzugten Ausführungsformen
-
Zwei
Ausführungsformen
der vorliegenden Erfindung werden unter Bezugnahme auf die 1 bis 6 beschrieben.
-
1 ist
eine funktionale Ausführung
der ersten Ausführungsform
der vorliegenden Erfindung. Ein Block 101 kennzeichnet
ein vollständiges
Informationsverarbeitungssystem. Ein Block 102 ist ein Prozess,
der durch eine Zentraleinheit und eine Eingabe-/Ausgabe- (E/A-)
Einheit implementiert ist. Der Block 102 enthält einen
E/A-Abschnitt 103, einen Steuerabschnitt 104,
einen Zufallszahlerzeugungsabschnitt 105, einen Schlüsselerzeugungsabschnitt 106,
einen Entsprechungsänderungsabschnitt 107, einen
Komprimierungsabschnitt 108, einen Vorverschlüsselungsabschnitt 109 und
einen Nachverschlüsselungsabschnitt 110.
Ein Block 111 ist eine Speichereinheit wie z. B. ein RAM
oder eine Disk und speichert Klartextdaten 112, Zufallszahlen 113,
gemeinsame Schlüssel 114,
Informationen bezüglich Entsprechungen 115,
Arbeitsschlüssel 116 und
komprimierte und verschlüsselte
Daten 117.
-
Der
E/A-Abschnitt 103 empfängt
Klartextdaten von außen
und gibt sie in den Speicher 111 ein. Ferner empfängt der
E/A-Abschnitt 103 eine Komprimierungs- und Verschlüsselungsanweisung
und übergibt
sie dem Steuerabschnitt 104. Andererseits liest der E/A-Abschnitt 103 die
komprimierten und verschlüsselten
Daten 117 aus dem Speicher 111 aus und gibt sie
nach außen
aus. Wenn der Steuerabschnitt 104 die Komprimierungs- und
Verschlüsselungsanweisung
vom E/A-Abschnitt 103 erhält, startet der Steuerabschnitt 104 den
Zufallszahlerzeugungsabschnitt 105 zum Erzeugen einer Zufallszahl; dann
startet er den Schlüsselerzeugungsabschnitt 106 zum
Erzeugen eines Arbeitsschlüssels.
Als Nächstes
liest der Steuerabschnitt 104 die Klartextdaten 112 aus
dem Speicher 111 aus und führt iterativ die fünf Prozesse
aus, die die Komprimierung 108, die Vorverschlüsselung 109,
die Nachverschlüsselung 110,
die Entsprechungsänderung 107 und
die Arbeitsschlüsseländerung
enthalten, wodurch er die Klartextdaten komprimiert und verschlüsselt. Der Steuerabschnitt 104 wird
nachstehend erläutert.
-
Zur
Implementierung des Zufallszahlerzeugungsabschnitts 105 ist
es möglich,
das herkömmliche
Verfahren zum Erzeugen einer Zufallszahl zu verwenden, wie es in
der Japanischen Fachliteratur "Introduction
to Cryptography Theory",
Kyoritu, Ausgabe (1993), auf den Seiten 61 bis 86 beschrieben ist.
Dieses Verfahren wird beispielsweise ausgeführt, um einen geeigneten Anfangswert
auf eine Zufallszahl 113 im Speicher 111 zu setzen,
die vorherige Zufallszahl 113 jedes Mal zu lesen, wenn
der Zufallszahlerzeugungsabschnitt 105 gestartet wird,
die Kryptanalyse auf die vorherige Zufallszahl 113 im Zufallszahlerzeugungsabschnitt 105 anzuwenden
und das verschlüsselte
Ergebnis als eine neue Zufallszahl einzustellen. Ferner wird die
Zufallszahl 113 im Speicher 111 durch eine neue
Zufallszahl ersetzt.
-
Der
Schlüsselerzeugungsabschnitt 106 wird ausgeführt, um
den Arbeitsschlüssel 116 aus
der Zufallszahl 13 und dem gemeinsamen Schlüssel 114 zu erzeugen.
Der Arbeitsschlüssel 116 wird
durch das in Institution for Electronic, Information and Communication
Engineers, Transactions, Bd. E74, Nr. 8, SS. 2153 bis 2159, beschriebene
Verfahren ausgeführt.
-
Der
Entsprechungsänderungsabschnitt 107 wird
ausgeführt,
um die Entsprechung 115 zwischen den Bitfolgen der Klartextdaten
und der komprimierten Daten auf Basis des Arbeitsschlüssels zu ändern. Ein
spezielles Beispiel für
die Entsprechung hängt von
einer speziellen Komprimierung 108 ab. Bei dieser Ausführungsform
verwendet der Komprimierungsabschnitt 108 die Huffman-Komprimierung. Die Entsprechung
zwischen den Bitfolgen des Klartextes und der komprimierten Daten
im Prozess der Huffman-Komprimierung
wird durch als Huffman-Baum bezeichnete Baumstrukturdaten dargestellt.
Dieser Huffman-Baum wird mit der Änderung der Entsprechung 107 geändert. Der
Entsprechungsänderungsabschnitt 107 wird
nachstehend erläutert.
-
Der
Komprimierungsabschnitt 108 nutzt die Huffman-Komprimierung, wie
oben erwähnt.
Gemäß dem Huffman-Baum
der Entsprechung 115 wird die Bitfolge der Klartextdaten
durch die Bitfolge der komprimierten Daten zum Komprimieren der
Klartextdaten ersetzt. Die Huffman-Komprimierung wird durch das
herkömmliche
Verfahren verwirklicht, wie es auf den Seiten 21 bis 103 des "Data Compression
Handbook", Toppan
1994, beschrieben ist.
-
Der
Vorverschlüsselungsabschnitt 109 wird ausgeführt, um
die Daten mit dem Arbeitsschlüssel 116 als
Parameter zu verschlüsseln,
wie in "Introduction
to Cipher Theory",
Kyouritu, Ausgabe 1993, auf den Seiten 33 bis 59 beschrieben. ist.
Wie der Vorverschlüsselungsabschnitt 109 wird
der Nachverschlüsselungsabschnitt 110 ausgeführt, um
die Daten mit dem Arbeitsschlüssel 116 als
Parameter durch das herkömmliche
Verfahren zu verschlüsseln.
-
2 zeigt
die Funktionsweise des Steuerabschnitts 104 im Detail.
Im Schritt 201 wird der Zufallszahlerzeugungsabschnitt 105 zum
Erzeugen einer Zufallszahl gestartet. Im Schritt 202 wird
der Schlüsselerzeugungsabschnitt 106 zum
Erzeugen des Arbeitsschlüssels
und dann Setzen des Anfangswerts des Arbeitsschlüssels 116 gestartet.
Dann liest der Steuerabschnitt 104 im Schritt 203 die
Klartextdaten 112.
-
Wenn
der Komprimierungsabschnitt 108 gestartet wird, wird im
Schritt 204 das nächste
Symbol der Klartextdaten komprimiert. Zum Komprimieren der Klartextdaten
wird hierin der Komprimierungsabschnitt 108 ausgeführt, um
das Symbol (Bitfolge) der Klartextdaten in die komprimierte Bitfolge
gemäß der Entsprechung 115 umzuwandeln.
Im Schritt 205 wird bestimmt, ob von den komprimierten
Daten mehr als die Blockgröße zur Kryptanalyse
gespeichert wird. Wenn ja, geht die Operation zum Schritt 206 weiter. Unterschreiten
die komprimierten Daten die Blockgröße, wird die Operation von
Schritt 204 wiederholt.
-
Im
Schritt 206 wird ein Block der komprimierten Daten auf
den Vorverschlüsselungsabschnitt 109 zum
Verschlüsseln
des Blocks angewendet. Der Vorverschlüsselungsabschnitt 109 verwendet
den Arbeitsschlüssel 116 als
Parameter. Im Schritt 207 wird das Ergebnis des Vorverschlüsselungsabschnitts 109 gespeichert.
Im Schritt 208 wird das vorverschlüsselte Ergebnis auf den Nachverschlüsselungsabschnitt 110 angewendet,
um es zu verschlüsseln. Hierin
verwendet der Nachverschlüsselungsabschnitt 110 wie
der Vorverschlüsselungsabschnitt 109 den
Arbeitsschlüssel 116 als
Parameter. Dann werden die zusätzlichen
Daten des Arbeitsschlüssels zu
den komprimierten und verschlüsselten
Daten als die komprimierten und verschlüsselten Daten 117 im Speicher 111 gespeichert.
-
Im
Schritt 209 wird die Entsprechung 115 zwischen
den Bitfolgen der Klartextdaten und der komprimierten Daten auf
Basis des vorverschlüsselten
Ergebnisses geändert.
Im Schritt 210 wird der Arbeitsschlüssel 116 durch das
vorverschlüsselte
Ergebnis ersetzt. Dann wird im Schritt 211 bestimmt, ob die
gesamten Klartextdaten verarbeitet sind. Wenn ja, wird der Prozess
beendet. Wenn nein, geht die Operation zum Schritt 212 weiter.
-
Im
Schritt 212 wird bestimmt, ob eine gegebene Anzahl Verschlüsselungsblöcke verarbeitet
ist. Wenn ja, kehrt die Operation zu Schritt 201 zurück. Wenn
nein, kehrt die Operation zu Schritt 204 zurück. Der
Grund dafür,
warum die Operation zu Schritt 201 zurückkehrt, wird unten beschrieben.
Computerprogramme, die die Schritte von 2 implementieren, können in
einem Aufzeichnungsmedium wie z. B. einem Halbleiterspeicher, einer
Diskette oder einer CD-ROM gespeichert werden.
-
Bei
dieser Ausführungsform
wird das Zwischenergebnis (vorverschlüsseltes Ergebnis) im Prozess
der Verschlüsselung
eines Blocks zu einem Parameter zum Komprimieren und Verschlüsseln des nächsten Blocks
gemacht. Beim Dekomprimieren und Wiederherstellen der komprimierten
und verschlüsselten
Daten, die eine Ausgabe dieser Ausführungsform sind, ist es erforderlich,
denselben Parameter zu verwenden wie den beim Komprimieren und Verschlüsseln der
Daten verwendeten. Daher muss das im Prozess des Entschlüsselns eines
Blocks gegebene Zwischenergebnis als ein Parameter zum Entschlüsseln und
Dekomprimieren des nächsten Blocks
gesetzt werden. Falls ein einziges fehlerhaftes Bit in den komprimierten
und verschlüsselten
Daten erscheint, während
die Daten übertragen
oder in einer Datei gespeichert werden, wird folglich das Zwischenergebnis
in dem entschlüsselten
Block, der das fehlerhafte Bit enthält, fehlerhaft. Als Folge wird
der Parameter zum Entschlüsseln
und Dekomprimieren des nächsten
Blocks fehlerhaft, Dieser Fehler pflanzt sich bis zum letzten Block
der Daten fort.
-
Die
Verbesserung der Fehlerkorrekturtechnik der Kommunikation und der
Dateispeicherung resultiert darin, dass eine Anwendungsschicht,
für die die
vorliegende Erfindung vorgesehen ist, im Wesentlichen davor geschützt wird,
fehlerhaft zu sein. Folglich ist die Fehlerfortpflanzung in einem
System, auf das die vorliegende Erfindung angewendet wird, vernachlässigbar.
Die angewendeten Systeme können
jedoch bereitgestellt werden, wo keine Fehlerkorrektur erfolgt.
Wenn die vorliegende Erfindung auf solche Systeme angewendet wird,
ist es erforderlich, die Anzahl Blöcke mit fortgepflanztem Fehler
zu beschränken.
-
Die
oben erwähnte
Rückkehroperation
von den Schritten 212 zu 201 erfüllt diese
Anforderung. Das heißt,
wenn die Anzahl der Blöcke
mit fortgepflanztem Fehler bei den Schritten 201 und 202 einen gegebenen
Wert erreicht, wird die Operation ausgeführt, um den Arbeitsschlüssel auf
einen Wert zurückzusetzen,
der vom Zwischenergebnis bei der Verschlüsselung des vorherigen Blocks
unabhängig
ist, was es ermöglicht,
die Fehlerfortpflanzung zu vermeiden.
-
Nunmehr
wird die Operation des Entsprechungsänderungsabschnitts 107 unter
Bezugnahme auf die 3 und 4 beschrieben.
Bei der Huffman-Komprimierung wird die Entsprechung 115 zwischen
den Bitfolgen der Klartextdaten und der komprimierten Daten durch
den Huffman-Baum dargestellt. 3 zeigt
ein Beispiel für
einen Huffman-Baum. Dieser Huffman-Baum ist ein binärer Baum,
bei dem sich bei jedem Zwischenknoten ein rechter und ein linker
Zweig ausbreiten. Die rechten und die linken Zweige enthalten einen
Wert 0 bzw. 1. Der Endknoten repräsentiert ein Symbol der Klartextdaten.
Die Verbindung der Zweigwerte vom Endknoten zum Wurzelknoten stellt
eine Bitfolge der komprimierten Daten für das durch den Endknoten repräsentierte
Symbol dar. Die Bitfolge der komprimierten Daten für i ist
z. B. 1000 und die Bitfolge der komprimierten Daten für h. ist
010.
-
Der
Entsprechungsänderungsabschnitt 107 wird
durch den Steuerabschnitt 104 gestartet. Der Entsprechungsänderungsabschnitt 107 wird
ausgeführt,
um Zahlen zu den Zwischenknoten des Huffman-Baums hinzuzufügen. Insbesondere
werden die Knoten derart nummeriert, dass eine erste zum Wurzelknoten
hinzugefügt
wird, eine zweite und eine dritte zu einem Knoten der zweiten Stufe
von links nach rechts hinzugefügt
werden, eine vierte und eine fünfte
zu einem Knoten der dritten Stufe von links nach rechts hinzugefügt werden
usw. Das heißt,
die Nummerierung wird von oben nach unten und von links nach rechts
ausgeführt.
Dann werden die den rechten und linken Zweigen des Zwischenknotens gegebenen
Werte gemäß dem Arbeitsschlüssel gegeneinander
ausgetauscht. Insbesondere wenn das i-te Bit des Arbeitsschlüssels 1
ist, werden die den rechten und den linken Zweigen des i-ten Zwischenknotens
gegebenen Werte gegenseitig gegeneinander ausgetauscht. (Ist es
null, erfolgt keine Austausch.)
-
In 4 gibt
ein Block 401 eine Transformation des in 3 dargestellten
Huffman-Baums unter der Annahme, dass der Arbeitsschlüssel 1100100... ist,
an. Ein Block 402 gibt eine Transformation des in Block 401 dargestellten
Huffman-Baums unter der Annahme, dass der Arbeitsschlüssel 1010110...
ist, an. Es wird angenommen, dass der Arbeitsschlüssel eine
ausreichend große
Anzahl Bits hat, und falls ein Bit des Arbeitsschlüssels die
Zwischenknotenzahl des Huffman-Baums überschreitet, wird das Bit
im Entsprechungsänderungsabschnitt 107 ignoriert.
-
Die
obige Beschreibung befasst sich mit der ersten Ausführungsform
der vorliegenden Erfindung. Das herkömmliche Verschlüsselungsverfahren
ist darauf ausgelegt worden, mehr Runden zum Verhindern der linearen
und der differentiellen Kryptanalysen sicherzustellen. Dieses Verhinderungsverfahren hat
jedoch den Nachteil, dass die Verarbeitungsdauer zunimmt. Das Verfahren
der obigen Ausführungsform
ist andererseits auf die Änderung
des Arbeitsschlüssels
für jeden
Block ausgelegt worden. Diese Änderung
ermöglicht
die Ausführung
einer statistischen Operation zur Schätzung des Schlüssels, wodurch
die Chiffretextdaten vor den differentiellen und linearen Kryptanalysen
bewahrt werden. Der Arbeitsschlüssel
für jeden
Block ist ein im Prozess der Verschlüsselung des vorherigen Blocks
gegebenes Zwischenergebnis. Dieses Verfahren benötigt daher keine zusätzliche
Verarbeitungszeit zum Ändern
des Arbeitsschlüssels.
Wie oben beschrieben, ermöglicht das
Verfahren dieser Ausführungsform
die Verhinderung der differentiellen und linearen Kryptanalysen ohne
Zunahme der Verarbeitungszeit, wodurch die Chiffreleistung und die
Widerstandsfähigkeit
gegenüber
der Kryptanalyse verbessert werden.
-
Gemäß der ersten
Ausführungsform
kann ferner im Komprimierungsprozess die Entsprechung zwischen den
Klartextdaten und den komprimierten Daten für jeden Block abhängig von
dem im Prozess der Verschlüsselung
des vorherigen Blocks gegebenen Zwischenergebnis geändert werden.
Das Zwischenergebnis kann nur dann geschätzt werden, wenn der Schlüssel erhalten
wird. Das bedeutet, dass die Entsprechung zwischen den Klartextdaten und
den komprimierten Daten nicht geschätzt wird. Das Verfahren dieser
Ausführungsform
kann die Komprimierung als eine Art Verschlüsselung verwenden. Die Komprimierung
kann dieselbe Wirkung darstellen wie die Zunahme der Runden und
verwendet werden, um die Chiffretextdaten vor den differentiellen
und den linearen Kryptanalysen zu bewahren.
-
5 zeigt
eine funktionale Auslegung eines Verfahrens gemäß einer zweiten Ausführungsform der
vorliegenden Erfindung. Diese ist zum Entschlüsseln und Dekomprimieren der
durch das Verfahren der ersten Ausführungsform komprimierten, verschlüsselten
Daten vorgesehen, um die ursprünglichen
Klartextdaten zu erhalten. Ein Block 501 kennzeichnet ein
vollständiges
Informationsverarbeitungssystem. Ein Block 502 kennzeichnet
einen durch eine Zentraleinheit und eine E/A-Einheit implementierten
Prozess, wobei der Prozess einen E/A-Abschnitt 503, einen
Steuerabschnitt 504, einen Zufallszahlleseabschnitt 505,
einen Schlüsselerzeugungsabschnitt 506,
einen Entsprechungsänderungsabschnitt 507,
einen Dekomprimierungsabschnitt 508, einen Vorentschlüsselungsabschnitt 509 und
einen Nachentschlüsselungsabschnitt 510 enthält. Ein
Block 111 kennzeichnet einen durch einen RAM, eine Disk
oder dgl. verwirklichten Speicher. Der Speicher 111 speichert
komprimierte und verschlüsselte
Daten 512, eine Zufallszahl 513, einen gemeinsamen
Schlüssel 514,
eine Entsprechung 515, einen Arbeitsschlüssel 516 und
Klartextdaten 517.
-
Der
E/A-Abschnitt 503 wird ausgeführt, um die komprimierten und
verschlüsselten
Daten von außen
anzuwenden und sie in einem Speicher 511 zu speichern.
Der E/A-Abschnitt 503 wird jeweils ausgeführt, um
eine Entschlüsselungs-
und Dekomprimierungsanweisung zu erhalten und sie dem Steuerabschnitt 504 zu übergeben.
Andererseits wird der E/A-Abschnitt 503 auch ausgeführt, um
die Klartextdaten 517 aus dem Speicher 511 auszulesen
und sie nach außen
zu geben. Wenn der Steuerabschnitt 504 die Entschlüsselungs-
und Dekomprimierungsanweisung vom E/A-Abschnitt 503 erhält, wird
der Steuerabschnitt 504 ausgeführt, um den Zufallszahlleseabschnitt 505 zu
starten und eine zu den komprimierten und verschlüsselten
Daten 512 hinzugefügte
Zufallszahl zu lesen. Dann wird der Steuerabschnitt 504 ausgeführt, um
den Schlüsselerzeugungsabschnitt 511 zum
Erzeugen des Arbeitsschlüssels
zu starten. Als Nächstes
wird auch der Steuerabschnitt 504 ausgeführt, um
die komprimierten und verschlüsselten Daten 512 aus
dem Speicher 511 auszulesen und fünf Operationen bestehend aus
der Vorentschlüsselung 509,
der Nachentschlüsselung 510,
der Dekomprimierung 508, der Entsprechungsänderung 507 und
der Änderung
des Arbeitsschlüssels
zu wiederholen, um die komprimierten und verschlüsselten Daten zu entschlüsseln und
zu dekomprimieren. Der Steuerabschnitt 504 wird später detailliert
erörtert.
-
Der
Zufallszahlleseabschnitt 505 wird ausgeführt, um
die zu den komprimierten und verschlüsselten Daten 512 hinzugefügte Zufallszahl
zu lesen. Diese Zufallszahl ist zum Erzeugen des Arbeitsschlüssels im
Verfahren der ersten Ausführungsform
verwendet worden.
-
Der
Schlüsselerzeugungsabschnitt 506 wird ausgeführt, um
einen Arbeitsschlüssel 516 aus
der Zufallszahl 513 und dem gemeinsamen Schlüssel 514 zu
erzeugen. Der gemeinsame Schlüssel 514 hat
den gleichen Wert wie der bei der ersten Ausführungsform verwendete gemeinsame
Schlüssel 114. Weil
die Zufallszahl und der gemeinsame Schlüssel die gleichen sind wie
die bei der ersten Ausführungsform
verwendeten, ist daher der durch das Verfahren der zweiten Ausführungsform
zu erzeugende Arbeitsschlüssel 516 der
gleiche wie der beim Verfahren der ersten Ausführungsform verwendete Arbeitsschlüssel 116.
-
Der
Entsprechungsänderungsabschnitt 507 wird
ausgeführt,
um eine Entsprechung 515 zwischen den Bitfolgen der komprimierten
Daten und der Klartextdaten auf Basis des Arbeitsschlüssels zu ändern. Die
konkrete Entsprechung hängt
von der konkreten Dekomprimierung 508 ab. Das Verfahren
dieser zweiten Ausführungsform
verwendet die Huffman-Dekomprimierung für den Dekomprimierungsabschnitt 508.
Wie auf den Seiten 21 bis 103 von "The Data Compression Book", Toppan (1994),
beschrieben, ist die Huffman-Dekomprimierung eine umgekehrte Transformation
der Huffman-Komprimierung. Wie bei der ersten Ausführungsform
wird die Entsprechung zwischen den Bitfolgen der komprimierten Daten
und der Klartextdaten durch einen Huffman-Baum repräsentiert.
Daher wird der Entsprechungsänderungsabschnitt 507 ausgeführt, um den
Huffman-Baum auf eine ähnliche
Weise zu ändern
wie bei dem im Verfahren der ersten Ausführungsform enthaltenen Entsprechungsänderungsabschnitt 107.
Da der Entsprechungsänderungsabschnitt 507 den
gleichen Arbeitsschlüssel
und das gleiche Verfahren zum Ändern
des Huffman-Baums verwendet wie die beim Verfahren der ersten Ausführungsform
verwendeten, ist der geänderte
Huffman-Baum der gleiche wie derjenige der ersten Ausführungsform.
-
Der
Dekomprimierungsabschnitt 508 wird ausgeführt, um
die Huffman-Dekomprimierung auszuführen, wie oben erwähnt. Das
heißt, gemäß dem Huffman-Baum
der Entsprechung 515 wird die Bitfolge der komprimierten
Daten durch diejenige der Klartextdaten ersetzt, um die komprimierten
Daten zu dekomprimieren. Der Dekomprimierungsabschnitt 508 ist
eine umgekehrte Transformation des Komprimierungsabschnitts 108 und
verwendet den gleichen Huffman-Baum wie derjenige der ersten Ausführungsform.
Daher ermöglicht
der Dekomprimierungsabschnitt 508 die Transformation der
durch das Verfahren der ersten Ausführungsform komprimierten Daten
zurück
zu den ursprünglichen
Daten.
-
Der
Vorentschlüsselungsabschnitt 509 ist eine
umgekehrte Transformation des im Verfahren der ersten Ausführungsform
enthaltenen Nachverschlüsselungsabschnitts.
Der Vorentschlüsselungsabschnitt 509 wird
ausgeführt,
um die Daten mit dem Arbeitsschlüssel 516 als
Parameter zu entschlüsseln.
Der Nachentschlüsselungsabschnitt 510 ist eine
umgekehrte Transformation des im Verfahren der ersten Ausführungsform
enthaltenen Vorverschlüsselungsabschnitts.
Der Nachentschlüsselungsabschnitt 510 wird
ausgeführt,
um die Daten mit dem Arbeitsschlüssel 516 als
Parameter zu entschlüsseln.
Wie oben erwähnt,
ist in der zweiten Ausführungsform
die Vorentschlüsselung
eine umgekehrte Transformation der in der ersten Ausführungsform
enthaltenen Nachverschlüsselung,
die Nachentschlüsselung
eine umgekehrte Transformation der Vorverschlüsselung darin, und der gleiche
Arbeitsschlüssel
wie derjenige der ersten Ausführungsform wird
zur Entschlüsselung
verwendet. Daher ermöglicht
das Verfahren der zweiten Ausführungsform,
die komprimierten und verschlüsselten
Daten in die komprimierten Daten zu entschlüsseln.
-
6 zeigt
die Operation des Steuerabschnitts 504 im Detail. Im Schritt 601 wird
die Operation ausgeführt,
um den Zufallszahlleseabschnitt 505 zum Lesen der Zufallszahl
zu starten. Im Schritt 602 wird der Schlüsselerzeugungsabschnitt 506 gestartet,
um den Arbeitsschlüssel
zu erzeugen. Als Ergebnis wird der Anfangswert des Arbeitsschlüssels 516 als
der gleiche Wert wie der Anfangswert des bei der ersten Ausführungsform
verwendeten Arbeitsschlüssels 116 eingestellt.
Dann wird im Schritt 603 die Operation ausgeführt, um
die komprimierten und verschlüsselten
Daten 512 zu lesen.
-
Im
Schritt 604 wird der Vorentschlüsselungsabschnitt 509 zum
Entschlüsseln
eines Blocks des komprimierten und verschlüsselten Textes gestartet. Der
Vorentschlüsselungsabschnitt 509 verwendet den
Arbeitsschlüssel 516 als
Parameter. Im Schritt 605 wird das vorentschlüsselte Ergebnis
gespeichert. Der Vorentschlüsselungsabschnitt 509 ist
eine umgekehrte Transformation des in der ersten Ausführungsform
enthaltenen Nachentschlüsselungsabschnitts 110.
Daher hat das vorentschlüsselte
Ergebnis den gleichen Wert wie der Wert unmittelbar vor der bei
der ersten Ausführungsform
ausgeführten Nachentschlüsselung,
d. h. das vorentschlüsselte
Ergebnis. Im Schritt 606 wird der Nachentschlüsselungsabschnitt 510 gestartet,
um das Ergebnis des Vorentschlüsselungsabschnitts 509 weiter
zu entschlüsseln.
Der Nachentschlüsselungsabschnitt 510 ist
eine umgekehrte Transformation des in der ersten Ausführungsform
enthaltenen Vorentschlüsselungsabschnitts 110.
Daher ist das nachentschlüsselte
Ergebnis das gleiche wie der Wert unmittelbar vor der bei der ersten
Ausführungsform
ausgeführten
Vorentschlüsselung,
d. h. der komprimierte Text eines Blocks, der durch den Komprimierungsabschnitt 108 erhalten
wird.
-
Im
Schritt 607 wird der Dekomprimierungsabschnitt 508 gestartet,
um ein Symbol aus dem Kopf des komprimierten Textes eines Blocks
zu dekomprimieren. Der Dekomprimierungsabschnitt 508 ist
eine umgekehrte Transformation des in der ersten Ausführungsform
enthaltenen Komprimierungsabschnitts 108. Wie oben erwähnt, ist
der Huffman-Baum zur Darstellung der Entsprechung zwischen dem komprimierten
Text und dem Klartext der gleiche wie der bei der ersten Ausführungsform
verwendete Baum. Im Schritt 607 wird die Operation ausgeführt, um
den Wert vor der Komprimierung zu erhalten, d. h. das bei der ersten
Ausfüh rungsform verwendete
Symbol des Klartextes. Im Schritt 608 wird bestimmt, ob
der Rest der komprimierten Daten eines Blocks größer als oder gleich einem Symbol des
Klartextes ist. Wenn ja, kehrt die Operation zu Schritt 607 zurück, in dem
die Dekomprimierung wiederholt wird. Wenn nein, kehrt die Operation
zu Schritt 609 zurück.
In diesem Schritt wird die Operation ausgeführt, um die übrigen Daten
eines Blocks des komprimierten Textes zu speichern und sie zum Kopf
des nächsten
Blocks des komprimierten Textes hinzuzufügen, wenn der Block erhalten
wird.
-
Im
Schritt 609 wird der Entsprechungsänderungsabschnitt 507 zum Ändern der
Entsprechung 515 gestartet, d. h. des vom vorentschlüsselten
Ergebnis abhängigen
Huffman-Baums. Das vorentschlüsselte
Ergebnis ist das gleiche wie das durch die erste Ausführungsform
vorverschlüsselte
Ergebnis. Die Entsprechung 515 vor der Änderung ist die gleiche wie
die Entsprechung 115 der ersten Ausführungsform. Daher ist die Entsprechung 515 die
gleiche wie die der ersten Ausführungsform,
selbst nachdem die Entsprechung 515 geändert worden ist. Im Schritt 610 wird
der Arbeitsschlüssel 516 durch
das vorentschlüsselte
Ergebnis ersetzt. Das vorentschlüsselte
Ergebnis hat den gleichen Wert wie das im Verfahren der ersten Ausführungsform
verwendete vorverschlüsselte
Ergebnis. Daher hat der Arbeitsschlüssel 516 den gleichen
Wert wie der im Verfahren der ersten Ausführungsform verwendete, selbst nachdem
er geändert
worden ist.
-
Im
Schritt 611 wird bestimmt, ob die gesamten Daten des komprimierten
und verschlüsselten Textes
verarbeitet worden sind. Wenn ja, wird die Operation beendet. Ist
dies nicht der Fall, geht die Operation zu Schritt 612.
In diesem Schritt 612 wird bestimmt, ob eine gegebene Anzahl
Blöcke
verarbeitet worden sind. Wenn ja, kehrt die Operation zu Schritt 601 zurück, bei
dem die Zufallszahl aus dem komprimierten und verschlüsselten
Text 512 erneut gelesen wird. Wenn nein, kehrt die Operation
zu Schritt 604 zurück,
in dem der nächste
Block der komprimierten und verschlüsselten Daten entschlüsselt wird.
Die Anzahl der zur Bestimmung im Schritt 612 verwendeten
Blöcke
wird als der gleiche Wert wie der im Verfahren der ersten Ausführungsform verwendete
eingestellt. Als Ergebnis ist die Periode der Aktualisierung der
Zufallszahl die gleiche wie die im Verfahren der ersten Ausführungsform
verwendete.
-
Computerprogramme
zur Implementierung der Schritte von 6 können in
einem Aufzeichnungsmedium gespeichert werden, um in das System geladen
zu werden.
-
Die
obige Beschreibung betrifft die zweite Ausführungsform. Wie oben beschrieben,
ist das Verfahren gemäß der zweiten
Ausführungsform
zur Dekomprimierung und Entschlüsselung
der durch das Verfahren der ersten Ausführungsform komprimierten und
verschlüsselten
Daten zum Wiederherstellen der ursprünglichen Klartextdaten ausgelegt worden.
Zahlreiche der derzeit verwendeten Verschlüsselungen sind so ausgelegt,
dass sie die grundlegenden Funktionen zum Verschlüsseln der Klartextdaten
wiederholen oder die Umkehrfunktionen dieser grundlegenden Funktionen
zum Entschlüsseln
der Chiffretextdaten wiederholen. Die Anzahl der Wiederholungen
der bei der Entschlüsselung
verwendeten Umkehrfunktionen ist gleich der Anzahl der Wiederholungen
der bei der Verschlüsselung
verwendeten Funktionen. Das Verfahren der ersten Ausführungsform
ist so ausgelegt, dass es die differentiellen und linearen Kryptanalysen
bewältigt, ohne
dass die Runden (Anzahl der Wiederholungen der grundlegenden Funktionen)
erhöht
werden müssen.
Das Verfahren der zweiten Ausführungsform muss
daher die Runden für
die Entschlüsselung
nicht erhöhen.
Wie oben beschrieben, ermöglichen
die Verfahren der ersten und zweiten Ausführungsform, die Daten zu verschlüsseln und
zu entschlüsseln,
wobei das hohe Verschlüsselungsniveau
beibehalten wird, ohne dass eine Verlängerung der Verarbeitungszeit
erforderlich ist.
-
Wie
aus der obigen Beschreibung offensichtlich ist, ist das Verfahren
gemäß der vorliegenden
Erfindung so ausgelegt, dass es die differentiellen und linearen
Kryptanalysen verhindert, ohne die Verarbeitungszeit im Verschlüsselungs-
und Komprimierungs- und Verschlüsselungsprozess
zu verlängern. Dies
ermöglicht
die Verbesserung der Verarbeitungsleistung und der Chiffrefestigkeit
gegen die differentiellen und linearen Kryptanalysen. Das Informationsverarbeitungssystem
gemäß der vorliegenden
Erfindung kann ein gewöhnlich
verwendetes Hardware- oder
Software-Mittel enthalten, um das Herunterladen der die Schritte
von 2 und/oder 6 implementierenden
Programme zu ermöglichen.