-
Die
vorliegende Erfindung bezieht sich auf einen Generator für erweiterte
Schlüssel,
eine Verschlüsselungs/Entschlüsselungseinheit
und ein Speichermedium, die auf geheime Schlüsselblockchiffren angewendet
werden.
-
Auf
dem Gebiet neuerer Computer- und Kommunikationstechnologien überwiegt
eine Kryptographietechnologie zur Übertragung verschlüsselter Übertragungsdaten
und Wiederherstellen der empfangenen Inhalte durch Entschlüsseln der
empfangenen Daten. Bei solch einer Verschlüsselungstechnologie wird ein
kryptographischer Algorithmus, der einen geheimen Schlüssel (der
nachfolgend als gemeinsamer Schlüssel
bezeichnet wird) sowohl bei der Verschlüsselung als auch bei der Entschlüsselung
verwendet, eine gemeinsame Schlüsselchiffre genannt.
Bei der gemeinsamen Schlüsselchiffre
wird eine Eingabenachricht in Eingabeblöcke segmentiert, die alle eine
feststehende Länge
haben, und die segmentierten Blöcke
erfahren eine Randomisierung basierend auf einen Schüssel, um
chiffrierten Text zu erzeugen. Als solche gemeinsame Schlüsselchiffre wird überwiegend
ein beispielsweise DES (Data Encryption Standard, Datenverschlüsselungsstandard) genanntes
Schema verwendet.
-
Bei
auf DES basierender Verschlüsselung, wie
in 1A gezeigt, durchlaufen über anfängliche Permutations-IP von
Klartext erhaltene Daten 16 Prozesse unter Verwendung von Rundungsfunktionen.
Darüber
hinaus durchlaufen die Daten, die 16 Runden durchlaufen haben, eine
inverse Permutation IP–1 der Anfangspermutation,
wodurch Chiffrentext erhalten wird. Andererseits wird, indem jeder Rundungsfunktion
ein aus dem Originalschlüssel
erzeugter erweiterter Schlüssel
gegeben wird, ein Prozess in dieser Rundungsfunktion ausgeführt.
-
Das
heißt,
ein auf DES basierender Verschlüsselungsapparat
hat als Hauptaufbaukomponenten einen Datenrandomisierungsteil zum
Randomisieren von zu verschlüsselnden
Daten unter Verwendung einer großen Zahl von Rundungsfunktionen und
einen Schlüsselgenerator,
um jeder Rundungsfunktion des Datenrandomisierungsteils einen erweiterter
Schlüssel
zu geben. Man beachte, dass der konventionelle Schlüsselgenerator
einen Schlüssel durch
Rearrangieren von Bits unter Verwendung einer Tabelle oder von Verdrahtungsleitungen
erzeugt, wobei er denselben Schlüssel
wie derjenige der Datenverschlüsselungseinheit
verwendet oder aus Schlüsselbits
zufällig
extrahiert.
-
Bei
auf DES basierender Entschlüsselung, wie
in 1B gezeigt, durchlaufen zu entschlüsselnde
Daten 16 Runden in einer Reihenfolge, die zu derjenigen bei der
Verschlüsselung
umgekehrt ist. Also erzeugt ein Schlüsselgenerator erweiterte Schlüssel der
Reihe nach aus einem Schlüssel,
der bei der letzten Rundungsfunktion beim Verschlüsseln verwendet wurde.
-
Der
erste Vorteil bei DES liegt in der Anordnung der Verschlüsselungs-
und Entschlüsselungsschaltungen;
sie können
die meisten Komponenten teilen. Das heißt, wie in 1A und 1B gezeigt, wird
eine identische Schaltung für
die Rundungsfunktionen des Datenrandomisierungsteils verwendet, obwohl
die Eingangsreihenfolge von erweiterten Schlüsseln beim Verschlüsseln und
Entschlüsseln umgekehrt
wird.
-
Der
zweite Vorteil von DES ist die kleine Anzahl von zu verwaltenden
Schlüsseln,
da Verschlüsselung
und Entschlüsselung
unter Verwendung eines einzelnen gemeinsamen Schlüssels vorgenommen werden.
Bei DES führt,
um erweiterte Schlüssel
in normaler und umgekehrter Reihenfolge auf Basis eines einzigen
gemeinsamen Schlüssels
zu erzeugen, der Schlüsselgenerator
die folgenden Prozesse aus.
-
Das
heißt,
ein gemeinsamer Schlüssel durchläuft eine
linke Rotationsverschiebung (Linksrotation), um jeden erweiterten
Schlüssel
zu erzeugen. Man beachte, dass der Gesamtwert der Rotationsbeträge so definiert
ist, dass sie zu der Anzahl von Bits des gemeinsamen Schlüssels passen
und schließlich
ein Zwischenschlüssel
in einen Ausgangszustand (gemeinsamer Schlüssel) zurückgeführt wird. Auf diese Weise kann
der letzte erweiterte Schlüssel bei
Verschlüsselung
so erzeugt werden, dass er denselben Wert wie derjenige des ersten
erweiterten Schlüssels
bei Entschlüsselung
aufweist. Beim Entschlüsseln
durchläuft
ein gemeinsamer Schlüssel eine
Rechtsrotationsverschiebung (Rechtsrotation), um den erweiterten
Schlüssel
in umgekehrter Reihenfolge zu erzeugen.
-
Da
jedoch die Prozesse des Schlüsselgenerators
nur durch Permutationsprozesse bei DES implementiert werden, sind
allgemein schwache Schlüssel
genannte Schlüssel
vorhanden, die eine niedrige Sicherheit haben. Man beachte, dass
die schwachen Schlüssel
erweiterte Schlüssel
bedeuten, die identische Werte haben, und einen Fall enthalten,
bei dem alle erweiterten Schlüssel
K1 bis K16 einander gleich sind (K1 = K2 = ... K16) und einen Fall,
bei dem die Hälfte
der erweiterten Schlüssel
K1 bis K8 und K9 bis K16 jeweils einander gleich sind (K1 = K16,
K2 = K15, ..., K8 = K9).
-
Jedoch
stellt die Erzeugung solcher schwacher Schlüssel keine Bedrohung das, sondern
kann durch Hinzufügen
einer Vorrichtung zum Entfernen der Eingabe eines gemeinsamen Schlüssels mit
einem Muster zum Erzeugen schwacher Schlüssel an einen erweiterten Schlüsselgenerator
hinreichend verhindert werden oder durch Hinzufügen, zu einem Chiffre-Erzeugungsapparat,
einer Vorrichtung, um zu bestimmen, ob erzeugte erweiterte Schlüssel schwache
Schlüssel
sind oder nicht, und um sie zu entfernen, falls sie schwache Schlüssel sind.
-
Wenn
jedoch eine solche Vorrichtung, welche die Erzeugung schwacher Schlüssel verhindert, hinzugefügt wird,
steigen die Preise des erweiterten Schlüsselgenerators und der Verschlüsselungs/Entschlüsselungseinheit
und es wachsen auch ihre Schaltungsmaßstäbe.
-
Zusätzlich zu
DES ist ein Kryptosystem verlangt worden, das kryptologische Robustheit
bei Verwendung verschiedener erweiterter Schlüssel in Einheiten von Rundungsfunktionen
durch Verhindern der Erzeugung von schwachen Schlüsseln anbieten kann
und die kryptologische Robustheit verbessern kann.
-
Wie
oben beschrieben, steigen bei dem konventionellen erweiterten Schlüsselgenerator
und der Verschlüsselungs/Entschlüsselungseinheit,
wenn eine Vorrichtung, welche die Erzeugung schwacher Schlüssel verhindert,
hinzugefügt
wird, um die niedrige Sicherheit zu vermeiden, die Preise des erweiterten
Schlüsselgenerators
und der Verschlüsselungs/Entschlüsselungseinheit
und es steigen auch ihre Schaltungsmaßstäbe.
-
Selbst
wenn die Erzeugung von schwachen Schlüsseln verhindert wird, tragen
Prozesse im Schlüsselgenerator
nicht zur Verbesserung der kryptologischen Robustheit bei, und es
wird eine Verbesserung der kryptologischen Robustheit verlangt.
-
Die
vorliegende Erfindung ist im Hinblick auf die obige Situation gemacht
worden und hat als ihre Aufgabe die Bereitstellung eines erweiterten
Schlüsselgenerators,
einer Verschlüsselungs/Entschlüsselungseinheit,
eines erweiterten Schlüsselerzeugungsverfahrens
und eines Speichermittels, welches die Zufälligkeit von erweiterten Schlüsseln verbessern
kann, während
ein Anwachsen des Vorrichtungspreises und des Schaltungsmaßstabs unterdrückt wird
und die Erzeugung von schwachen Schlüsseln verhindert wird und welches
die kryptologische Robustheit verbessern kann.
-
Die
Veröffentlichung "Applied Cryptography", Zweite Ausgabe,
1996, von Atherine Schowalter, USA XP002204408 offenbart (13.5, S. 310) eine Mehrzahl von in Kaskade verbundenen
Schlüsselumwandlungsvorrichtungen,
die (13.6) ein Exklusiv-ODER-Element
zum Berechnen eines Exclusiv-ODER einer Konstante umfassen, die
für jede
der Schlüsseltransformationsvorrichtungen
bestimmt ist und ein aus dem Eingangsschlüssel erhaltener erster Schlüssel; und
einer nicht-linearen Transformationseinheit zum nichtlinearen Umwandeln
einer Ausgabe vom Exklusiv-ODER-Element unter Verwendung einer vorgegebenen
Substitutionstabelle.
-
Gemäß dem ersten
Aspekt der vorliegenden Erfindung wird eine Verschlüsselungsvorrichtung
bereitgestellt, die eine Erweiterungsschlüsselerzeugungsvorrichtung umfasst,
welche Erweiterungsschlüssel
basierend auf Eingabeschlüsseln
erzeugt, wobei die Vorrichtung eine Mehrzahl von in Kaskade verbundenen
Schlüsselumwandlungsvorrichtungen umfasst,
dadurch gekennzeichnet, dass jede Schlüsselumwandlungsvorrichtung
umfasst:
ein Exklusiv-ODER-Element zum Berechnen eines Exklusiv-ODER
einer Konstanten, die für
jede der Schlüsselumwandlungsvorrichtungen
bestimmt wird, und eines aus dem Eingabeschlüssel erhaltenen ersten Schlüssels;
eine
nicht-lineare Umwandlungseinheit zum nicht-linearen Umwandeln einer
Ausgabe vom Exklusiv-ODER-Element unter Verwendung einer vorbestimmten
Substitutionstabelle;
eine Erweiterungseinheit zum Durchführen einer
Erweiterungsverarbeitung an der Ausgabe aus der nichtlinearen Umwandlungseinheit;
und
eine Erweiterungsschlüsselberechnungseinheit
zum Berechnen des Erweiterungsschlüssels, basierend auf der Ausgabe
von der Erweiterungseinheit und einem zweiten, aus dem Eingangsschlüssel erhaltenen Schlüssel.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung wird ein Erweiterungsschlüsselerzeugungsverfahren
bereitgestellt, welches Erweiterungsschlüssel basierend auf Eingabeschlüsseln unter
Verwendung einer Mehrzahl von in Kaskade verbundenen Schlüsselumwandlungsvorrichtungen
erzeugt, dadurch gekennzeichnet, dass jede der Schlüsselumwandlungsvorrichtungen
die Erweiterungsschlüssel
durch ein Verfahren erzeugt, welches die Schritte umfasst:
Berechnen
eines Exklusiv-ODER einer Konstanten, die für jede der Schlüsselumwandlungsvorrichtungen bestimmt
wird, und eines aus dem Eingabeschlüssel erhaltenen ersten Schlüssels;
nicht-lineares
Umwandeln des Ergebnisses des Exklusiv-ODER unter Verwendung einer
vorgegebenen Substitutionstabelle;
Durchführen einer Erweiterungsverarbeitung
am Ergebnis der nicht-linearen Umwandlung; und
Berechnen des
Erweiterungsschlüssels
basierend auf dem Ergebnis der Erweiterungsverarbeitung und eines
aus dem Eingabeschlüssel
erhaltenen zweiten Schlüssels.
-
Somit
führt gemäß der vorliegenden
Erfindung in jedem Schlüsselumwandlungsfunktionsabschnitt
das erste Schlüsselumwandlungsmittel
einen Umwandlungsprozess unter Verwendung einer vorgegebenen Substitutionstabelle
auf Basis des aus einem Eingabeschlüssel erhaltenen ersten Schlüssels aus
und berechnet das erweiterte Schüsselberechnungsmittel
einen erweiterten Schlüssel
auf Basis des umgewandelten Ergebnisses des ersten Schlüsselumwandlungsmittels
und eines aus dem Eingabeschlüssel
erhaltenen zweiten Schlüssels.
-
Auf
diese Weise kann, da eine einfache Anordnung ohne Hinzufügen jeglicher
externer Vorrichtung verwendet wird und ein nicht-linearer Umwandlungsprozess
unter Verwendung einer Substitutionstabelle beim Erzeugen jedes
erweiterten Schlüssels vorgenommen
wird, der Vorrichtungspreis und der Maßstab klein gehalten werden
und die Zufälligkeit von
erweiterten Schlüsseln
kann verbessert werden, während
die Erzeugung schwacher Schlüssel
verhindert wird, womit die kryptologische Robustheit verbessert
wird.
-
Darüber hinaus
weist ein Datenrandomisierungsteil eine Mehrzahl von Substitutionstabellen
für Verschlüsselung
und Entschlüsselung
auf und eine der Substitutionstabellen des Datenrandomisierungsteils
ist mit jenen des ersten Schlüsselumwandlungsmittels
gemein, wodurch der Schaltungsmaßstab der Vorrichtung reduziert
wird.
-
So
kann eine bevorzugte Ausführungsform der
Erfindung einen erweiterten Schlüsselgenerator, eine
Verschlüsselungs/Entschlüsselungseinheit,
ein erweitertes Schlüsselerzeugungsverfahren
und ein Speichermedium bereitstellen, das die Zufälligkeit
erweiteter Schlüssel
verbessern kann, während
ein Anwachsen des Vorrichtungspreises und des Schaltungsmaßstabes
unterdrückt
und die Erzeugung schwacher Schlüssel
verhindert werden kann, und das die kryptologische Robustheit verbessern
kann.
-
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 aus der nachfolgenden detaillierten Beschreibung
in Verbindung mit den beigefügten
Zeichnungen besser verstanden werden, wobei:
-
1A und 1B Blockdiagramme
zum Erläutern
von DES als ein Beispiel eines konventionellen gemeinsamen Schlüsselschiffre
sind;
-
2 ein
Blockdiagramm ist, welches die Anordnung einer Verschlüsselungs-/Entschlüsselungseinheit
gemäß der ersten
Ausführungsform
der vorliegenden Erfindung zeigt;
-
3 ein
Blockdiagramm ist, welches die Anordnung eines erweiterten Schlüsselgenerators bei
der Verschlüsselungs-/Entschlüsselungseinheit der
ersten Ausführungsform
zeigt;
-
4A und 4B Ansichten
zum Erläutern
der Einstellwerte von Konstantenregistern in der ersten Ausführungsform
sind;
-
5 eine
Ansicht zum Erläutern
der Konfiguration einer S-Box in der ersten Ausführungsform ist;
-
6 eine
Ansicht zum Erläutern
der Einstellungen eines Rotationsschiebers in der ersten Ausführungsform
ist;
-
7 ein
Blockdiagramm ist, welches die Struktur einer Rundungsfunktion in
der ersten Ausführungsform
zeigt;
-
8 ein
Flussdiagramm ist, welches den Betrieb der Verschlüsselungs-/Entschlüsselungseinheit
zeigt;
-
9 ein
Diagramm zum Erläutern
des Betriebs der ersten Ausführungsform
ist;
-
10 ein
Blockdiagramm ist, welches die Anordnung einer Schlüsselumwandlungsfunktion zeigt,
die auf einen erweiterten Schlüsselgenerator gemäß der zweiten
Ausführungsform
der vorliegenden Erfindung angewendet wird;
-
11 ein
Blockdiagramm ist, welches die Anordnung eines erweiterten Schlüsselgenerators gemäß der dritten
Ausführungsform
der vorliegenden Erfindung zeigt;
-
12 eine
Ansicht zum Erläutern
der Einstellungen des Substitutionsteils in der dritten Ausführungsform
ist;
-
13 ein
Flussdiagramm ist, welches den Betrieb der in 11 gezeigten
Ausführungsform zeigt;
-
14 ein
Funktionsblockdiagramm ist, welches die Anordnung einer Smartcard
zeigt, die den erweiterten Schlüsselgenerator,
die Verschlüsselungs-/Entschlüsselungseinheit
und ein Speichermedium der vorliegenden Erfindung verkörpert;
-
15 ein
Diagramm zum Erläutern
einer Verschlüsselungs-/Entschlüsselungseinheit
gemäß der vierten
Ausführungsform
der vorliegenden Erfindung ist;
-
16 ein
Diagramm zum Erläutern
einer Modifikation der vierten Ausführungsform ist;
-
17 ein
Diagramm zum Erläutern
einer anderen Modifikation der vierten Ausführungsform ist; und
-
18A und 18B Diagramme
zum Erläutern
von Modifikationen der vierten Ausführungsform sind.
-
Die
bevorzugten Ausführungsformen
der vorliegenden Erfindung werden nachstehend unter Bezugnahme auf
die beigefügten
Zeichnungen beschrieben.
-
(Erste Ausführungsform)
-
2 ist
ein Blockdiagramm, welches die Anordnung einer Verschlüsselungs-/Entschlüsselungseinheit
gemäß der ersten
Ausführungsform
der vorliegenden Erfindung zeigt und 3 ist ein
Blockdiagramm, welches die Anordnung eines erweiterten Schlüsselgenerators
in der in 2 gezeigten Verschlüsselungs-/Entschlüsselungseinheit
zeigt.
-
Diese
Verschlüsselungs-/Entschlüsselungseinheit
wird als ein Verschlüsselungs-/Entschlüsselungsprozessor
für einen
Computer implementiert, wie etwa einen Personal Computer, eine Workstation oder
dergleichen, und führt
die Verschlüsselung
und Entschlüsselung
durch Hardware oder Software aus. Genauer gesagt, umfasst die Verschlüsselungs-/Entschlüsselungseinheit
einen erweiterten Schlüsselgenerator 10 zum
Erzeugen von n erweiterten Schlüsseln
K1 bis Kn aus einem gemeinsamen Schlüssel und einen Datenrandomisierungsteil 20 zum
Verschlüsseln
oder Entschlüsseln
unter Verwendung der erweiterten Schlüssel K1 bis Kn, die vom erweiterten Schlüsselgenerator 10 erzeugt
worden sind, der Reihe nach in Runden R1 bis Rn. Das heißt, dass
der erweiterte Schlüsselgenerator 10 und
der Datenrandomisierungsteil 20 bei Verschlüsselung
und Entschlüsselung
gemeinsam verwendet werden und wenn die Verschlüsselungs-/Entschlüsselungseinheit
durch Software implementiert wird, werden Programme, die ihren Betrieb
anzeigen, vorab aus einem Speichermedium installiert. Man beachte,
dass ein Permutationsprozess zwischen dem erweiterten Schlüsselgenerator 10 und
dem Datenrandomisierungsteil 20 eingefügt werden kann.
-
Der
erweiterte Schlüsselgenerator 10 hat
in Kaskade verbundene Schlüsseltransformationsfunktionen
fk1 bis fkn (die nachfolgend auch einfach als Schlüsseltransformationsfunktion
fk bezeichnet werden), die jeweils den Runden R1 bis Rn entsprechen. Beim
Empfangen eines gemeinsamen Schlüssels KC
oder von zwischenschlüsseltransformierten
Ergebnissen Kc1 bis kcn-1 geben die Schlüsseltransformationsfunktionen
fk1 bis fkn die erweiterten Schlüssel
K1 bis Kn, die durch Transformieren dieser Eingaben erhalten worden
sind, an Rundungsfunktionen fr1 bis frn des Datenrandomisierungsteils 20 aus
und geben getrennt erhaltene Zwischenschlüsseltransformationsfunktionen
kc1 bis kcn-1 an Schlüsseltransformationsfunktionen
fk2 bis fkn der nächsten
Stufe ein.
-
Die
Schlüsselumwandlungsfunktionen
fk1 bis fkn umfassen jeweils temporäre Schlüsselregister 111 bis 11n ,
Konstantenregister 121 bis 12n , XOR-Elemente 131 bis 13n , S-Boxen 141 bis 14n , erweiterte Umwandler 151 bis 15n ,
Addierer 161 bis 16n und Rotationsschieber 171 bis 17n–1 ,
wie in 3 gezeigt. Man beachte, dass ein Rotationsschieber 17n der letzten Stufe weggelassen wird,
da es in der nächsten
Stufe keine Schlüsselumwandlungsfunktion
fk(n + 1) gibt.
-
Das
Temporärschlüsselregister 11i (mit 1 ≤ i ≤ n; das gleiche gilt für die nachfolgende
Beschreibung) hält
eine gemeinsame Schlüsseleingabe
an den erweiterten Schlüsselgenerator 10 oder
eine zwischenschlüsselumgewandelte
Ergebniseingabe aus einer Schlüsselumwandlungsfunktion
kf(i – 1)
der vorherigen Stufe und bei dieser Ausführungsform wird ein 56-Bitregister
verwendet.
-
Das
Konstantenregister 12i wird mit
einer Konstante entsprechend der Anzahl von Runden eingestellt,
zu der eine Schlüsselumwandlungsfunktion fki
gehört
und kann diese Konstante an das XOR-Element 13i liefern.
Genauer gesagt, wie in 4A gezeigt, welche die Anzahl
n von Runden = 16 exemplifiziert, werden im Konstantenregister 12i zu haltende Konstanten symmetrisch
eingestellt (früher
und spätere
Hälften
haben symmetrische Konstanten), um Zentralwerte (n = 8,9) der Anzahl
von Runden als Zentrum aufzuweisen, da die Konstantenregister 12i auch in der Lage sein müssen, erweiterte
Schlüssel K1
bis K16 in umgekehrter Reihenfolge (K16 bis K1) zu erzeugen. Jedoch
ist die vorliegende Erfindung nicht auf so ein spezifisches Setup
beschränkt
und zu haltende Konstanten können
willkürlich
gesetzt werden, solange die erweiterten Schlüssel K1 bis K16 auch in der
Lage sein müssen,
in umgekehrter Reihenfolge (K16 bis K1) erzeugt zu werden. Wie beispielsweise
in 4B gezeigt, können
die Konstanten zwischen Verschlüsselung
und Entschlüsselung umgekehrt
werden. Man beachte, dass das Konstantenregister 12 nur
zumindest eine der zu haltenden Konstanten so setzen muss, dass
sie sich von denen der anderen Register unterscheidet, wie in 4A gezeigt.
Beispielsweise kann die Konstante so eingestellt werden, dass CONST12i
= i.
-
Das
XOR-Element 13i berechnet das XOR (exklusive
logische Summe) eines ersten Schlüssels KA, der aus 8-Bitdaten
im temporären
Schlüsselregister 11i besteht, und der Konstante im Konstantenregister
und gibt das erhaltene 8-Bit Berechnungsergebnis an der S-Box ein.
-
Die
S (Substitutions)-Box 14i verhindert
die Erzeugung von schwachen Schlüsseln
(identischen erweiterten Schlüsseln
in allen Stufen). Genauer gesagt, hat die S-Box 14i eine
Funktion des nicht-linearen Umwandelns einer 8-Bit Werteingabe vom XOR-Element 13i und des Eingebens des erhaltenen umgewandelten
8-Bit-Ergebnisses an den erweiterten Umwandler 15i .
Die S-Box 14i transformiert unter Verwendung
einer Substitutionstabelle zum Substituieren von Eingabe- und Ausgabebits,
wie beispielsweise in 5 gezeigt, nicht-linear. Falls
beispielsweise die Eingabebits (00000001) sind, nimmt die S-Box 14i diese Information (00000001) als binären Ausdruck
an und wandelt diesen binären
Ausdruck in einen Wert "1" als Dezimalausdruck
um.
-
Die
S-Box 14i schlägt dann in der in 5 gezeigten
Substitutionstabelle nach. Unter der Annahme, dass "48", was zuerst erscheint,
das 0-te Element ist, bestimmt die S-Box 14i das "erste" Element "54" (dezimaler Ausdruck)
und gibt (00110110) als seinen binären Ausdruck als Ausgabebits
aus.
-
Auf
diese Weise können
die Eingabebits (00000001) mit Ausgabebits (00110110) substituiert werden.
-
Man
beachte, dass die in 5 gezeigte Substitutionstabelle
die 0-ten bis 255-ten Elemente entsprechend 256 Eingaben hält, wie
oben beschrieben, und verwendet wird, um einen Wert im Bereich von
0 bis 255 beim Empfang eines Wertebereichs von 0 bis 255 zu bestimmen.
-
Auch
wird die S-Box 14i vorzugsweise
als gewisse S-Boxen in der Rundungsfunktion fk gemeinsam verwendet,
was später
beschrieben wird, um eine Maßstabsreduktion
der Vorrichtung zu erzielen.
-
Der
erweiterte Umwandler 15i wandelt
die umgewandelte 8-Bit Ergebniseingabe aus der S-Box 14i in einen größeren Wert um. Bei dieser Ausführungsform
hat der erweiterte Umwandler 15i die Funktion
des Erweiterns des umgewandelten 8-Bit Ergebnisses durch seine Verschiebung
nach links um 4 Bits und Einbetten von "0" in
den unteren 4 Bits und Eingeben des erhaltenen, erweiterten umgewandelten
12-Bit-Ergebnisses an den Addierer 16i .
-
Man
beachte, dass der Schiebebetrag des erweiterten Umwandlers 15i vorzugsweise äquivalent zur halben Anzahl
(= 4 Bits) von Ausgabebits (= 8) der S-Box 14i ist,
da die Ausgabebits der S-Box 14i im
Datenrandomisierungsteil 20 in zwei S-Boxen S3 und S4 reflektiert
sind. Man beachte, dass der Ausdruck "äquivalent" bedeutet, dass eine
Modifikation, die ein Ganzzahlvielfaches der Anzahl von Ausgabebits,
wie 12 (= 4 + 8 × 1)
Bitverschiebung oder 20 (= 4 + 8 × 2) Bitverschiebung (in anderen
Worten, eine Modifikation, die einen Schiebebetrag hat, der den Rest
gleich der Anzahl von der Hälfte
von Bits des Divisors (= 4) macht) zusätzlich zur 4-Bitverschiebung hinzufügt, beinhaltet
ist. Wenn die Ausgabebits der S-Box 14i eine
12-Bitverschiebung durchlaufen, sind sie in den S-Boxen S2 und S3
anstelle der S-Boxen S3 und S4 reflektiert; wenn die Ausgabebits
eine 20-Bitverschiebung
durchlaufen, sind sie in den S-Boxen S1 und S2 reflektiert. Wenn
die Ausgabebits der S-Box 14i in
den zwei S-Boxen S3 und S4 (einschließlich S2 und S3 oder S1 und
S2) reflektiert sind, ist die Kombination von Bits nicht auf die
von 4 Bits beschränkt,
sondern kann eine Kombination von 1 Bit und 7 Bits, 2 Bits und 6
Bits oder 3 Bits und 5 Bits sein, die in jeglicher Reihenfolge verwendet
werden können.
Das heißt, äquivalente
1 nach 3 und 5 nach 7 Bitverschiebungen können zusätzlich zu einer äquivalenten
4-Bitverschiebung
verwendet werden.
-
Der
Addierer 16i hat die Funktion des
Addierens (normale Addition mit Übertrag)
der erweiterten umgewandelten 12-Bit-Ergebniseingabe aus dem erweiterten
Umwandler 15i und eines zweiten
Schlüssels
KB, der aus 32-Bitdaten im Temporärschlüsselregister 11i besteht, und Eingeben der erhaltenen Summe
(32 Bits (das ausgeführte
(Bit) wird ignoriert) an der Rundungsfunktion fri des Datenrandomisierungsteils 20 als
ein erweiterter Schlüssel
Ki einer Runde Ri.
-
Man
beachte, dass die ersten und zweiten Schlüssel KA und KB individuell
aus kontinuierlichen Bereichen des Temporärschlüsselregisters 11i extrahiert werden. Jedoch ist die
vorliegende Erfindung nicht darauf beschränkt und diese Schlüssel können aus
diskontinuierlichen Bereichen extrahiert werden. Das bedeutet, der
erste Schlüssel
KA kann die Summe von willkürlichen
8-Bitdaten im Temporärschlüsselregister 11i sein und der zweite Schlüssel KB
kann die Summe von willkürlichen
32-Bitdaten im Temporärschlüsselregister 11i sein. Die ersten und zweiten Schlüssel KA
und KB können
miteinander überlappen.
Man beachte, dass die Bitlänge
des ersten Schlüssels
KA vorzugsweise gleich der Eingangsbitlänge der S-Box des Datenrandomisierungsteils 20 ist,
um die S-Boxen gemeinsam zu nutzen. Die Bitlänge des zweiten Schlüssels KB
ist vorzugsweise gleich derjenigen des erweiterten Schlüssels Ki,
um das Design zu vereinfachen (man beachte, dass die Bitlänge des
zweiten Schlüssels
KB sich von der des erweiterten Schlüssels Ki nach Bedarf unterscheiden kann
und in einem solchen Fall die Bitlänge des erweiterten Schlüssels Ki
schließlich
durch beispielsweise kontrahierte oder erweiterte Permutation eingestellt
werden kann).
-
Der
Rotationsschieber 17i rotiert den
Wert des Temporärschlüsselregisters 11i um einen vorgegebenen Schiebebetrag
und gibt den rotierten Wert am Temporärschlüsselregister 11i+1 der nächsten Stufe ein. Bei dieser
Ausführungsform
sind die Schiebebeträge
in Einheiten der Schlüsseltransformationsfunktionen
fk1 bis fkn, wie in 6 gezeigt. Man beachte, dass
der Schiebebetrag des Rotationsschiebers 17i vorzugsweise
teilerfremd zu mindest entweder der Anzahl von Bits des gemeinsamen
Schlüssels
KC oder der Anzahl von Ausgabebits der S-Box 14i ist,
um somit die Zufälligkeit
von Schlüsseln
zu verbessern, und diese drei Werte sind am bevorzugtesten teilerfremd
zueinander. Die Schiebebeträge sind
symmetrisch gesetzt (die früheren
und späteren Hälften haben
symmetrische Konstanten), um einen Zentralwert (n = 8) der Schlüsselumwandlungsfunktionen
fk1 bis fk(n + 1) außer
für die
letzte Stufe aufzuweisen, da die erweiterten Schlüssel K1
bis K16 auch in der Lage sein müssen,
erweiterte Schlüssel
K1 bis K16 in umgekehrter Reihenfolge (K16 bis K1) zu erzeugen.
Jedoch ist die vorliegende Erfindung nicht auf so ein spezifisches
Setup beschränkt
und die Schiebebeträge
und die Rotationsrichtung der Rotationsschieber 17i können willkürlich eingestellt
werden, solange wie erweiterte Schlüssel K1 bis K16 auch in der
Lage sind, erweiterte Schlüssel
K1 bis K16 in umgekehrter Reihenfolge (K16 bis K1) zu erzeugen.
-
Andererseits
weist der Datenrandomisierungsteil 20 eine Verschlüsselungsfunktion
des Verschlüsselns
von Eingabeklartext und des Ausgebens von Chiffretext auf, wenn
er erweiterte Schlüssel
K1 bis K16 der Reihe nach vom erweiterten Schlüsselgenerator 10 in
n Runden von den Runden 1 bis Rn empfängt. Andererseits hat der Teil 20 eine
Entschlüsselungsfunktion
des Entschlüsselns
von eingegebenem Chiffretext und der Ausgabe von Klartext, wenn
er die erweiterten Schlüssel
K16 bis K1 aus dem erweiterten Schlüsselgenerator 10 in
einer zu derjenigen bei der Verschlüsselung umgekehrten Reihenfolge
erhält.
Der Datenrandomisierungsteil 20 weist die Rundungsfunktionen
fr1 bis frn auf, die in Kaskade in dieser Reihenfolge entsprechend
den Runden R1 bis R16 verbunden sind.
-
Die
Rundungsfunktion fri ist eine Funktion des Umwandelns von Klartext
oder eines verschlüsselten
Zwischenergebnisses auf Basis der Eingabe des erweiterten Schlüssels Ki
aus dem erweiterten Schlüsselgenerator 10 und
des Ausgebens eines verschlüsselten
Zwischenergebnisses oder von Chiffretext in der Verschlüsselung
und ist ebenfalls eine Funktion des Umwandelns von Chiffretext oder
eines entschlüsselten
Zwischenergebnisses auf Basis der erweiterten Schlüsseleingabe
K(n + 1 – i)
in der umgekehrten Reihenfolge aus dem erweiterten Schlüsselgenerator 10 und
des Ausgebens eines entschlüsselten
Zwischenergebnisses oder von Klartext im Entschlüsselungsprozess. Bei dieser
Ausführungsform
verwendet beispielsweise die Rundungsfunktion fri die in 7 gezeigte
Feistel-Struktur.
-
Die
in 7 gezeigte Feistel-Struktur umfasst die folgende
Anordnung. Das heißt,
dass von den aus zwei Unterblöcken
Li und Ri gebildeten Eingangsdatenblöcken ein Unterblock Ri unter
Verwendung einer F-Funktion auf Basis des erweiterten Schlüssels Ki
nicht-linear umgewandelt wird, das XOR dieses umgewandelten Ergebnisses
und des anderen Unterblocks Li durch ein XOR-Element 21 berechnet
wird und das Berechnungsergebnis Ri + l und ein Unterblock Li +
l (= Ri) der nächsten
Stufe zugeführt
werden, während
sie ihre Positionen tauschen.
-
Man
beachte, dass die F-Funktion in 7 ein XOR-Element 22 umfasst,
welches den erweiterten Schlüssel
K und den Unterblock Ri (oder Li) „XOR-t" und vier S-Boxen S1 bis S4 zum Segmentieren
der Ausgabe aus dem XOR-Element 22 in vier Elemente und
jeweils nicht-lineare Umwandlung dieser Elemente. Man beachte, dass
die S-Boxen S1 bis S4 eine in beispielsweise 5 gezeigte
Substitutionstabelle aufweisen und die entsprechenden S-Boxen können eine
gemeinsame Substitutionstabelle aufweisen, können aber auch verschiedene
aufweisen.
-
Man
beachte, dass die von jeder Rundungsfunktion fr durchgeführte Transformation
eine Involution genannte Natur hat, d.h., dass Ursprungsdaten wiederhergestellt
werden, wenn eine identische Umwandlung zweimal wiederholt wird.
Aus diesem Grund kann, wenn ein Chiffretext durch Umwandeln von
Klartext in der Reihenfolge der erweiterten Schlüssel K1 bis K16 erzeugt wird,
der Datenrandomisierungsteil 20 Klartext durch Retransformieren dieses
Chiffretextes in der Reihenfolge der erweiterten Schlüssel K16
bis K1 erzeugen.
-
Der
Betrieb der Verschlüsselungs-/Entschlüsselungseinheit
mit der vorstehenden Anordnung wird untenstehend auch unter Bezugnahme
auf das in 8 gezeigte Flussdiagramm erläutert.
-
Beim
Verschlüsseln,
wie in 2 gezeigt, wird ein gemeinsamer Eingabeschlüssel KC
oder ein zwischenschlüsseltransformiertes
Ergebnis kci in einen erweiterten Schlüssel ki in jeder Runde unter Verwendung
der Schlüsselumformungsfunktion
fki umgewandelt.
-
Genauer
gesagt, wie in 9 gezeigt, wendet bei der Schlüsseltransformationsfunktion
fki das XOR-Element 13i den aus
dem Temporärschlüsselregister 11i extrahierten ersten 8-Bitschlüssel KA
und eine Konstante im Konstantenregister 12i (Schritt
S1 in 8) mittels XOR um und die S-Box 14i transformiert diesen XOR (Schritt
S3 in 8) linear. Als nicht-ineare Transformation werden
Eingabe und Ausgabe in Biteinheiten substituiert, um die beispielsweise
in 5 gezeigte Beziehung zu haben. Dieses Substitutionsergebnis
wird vom erweiterten Umwandler 15i um
4 Bits (= 16-mal) nach links verschoben, um 12 Datenbits zu erhalten.
Weiterhin wird das Substitutionsergebnis durch Hinzuaddieren von 20
Bits von führenden "0" auf 32 Bits erweitert. Das 32-Bit-Substitutionsergebnis
wird dann am Addierer 16i eingegeben
(Schritt S5 in 8).
-
Der
Addierer 16i addiert das Eingabeschiebeergebnis
(32 Bit) und den aus dem Temporärschlüsselregister 11i extrahierten zweiten 32-Bitschlüssel KB
und gibt die Summe als den erweiterten 32-Bit-Schlüssel Ki
an den Datenrandomisierungsteil 20 (Schritt S7 in 8)
aus.
-
Bei
diesem erweiterten Schlüssel
Ki ist der von der S-Box 14i umgewandelte
erste 8-Bitschlüssel KA
an den 5. bis 12. Bits von rechts (dem am wenigsten signifikanten
Bit) lokalisiert. Diese Positionen entsprechen einer Eingabe an
den dritten und vierten S-Boxen S3 und S4. Daher kann der Randomisierungseffekt
der S-Box 14i im erweiterten Schlüsselgenerator 10 in
den zwei S-Boxen S3 und S4 im Datenrandomisierungsteil 20 reflektiert
werden, wodurch die Zufälligkeit
des erweiterten Schlüssels
verbessert wird.
-
Im
Datenrandomisierungsteil 20 wird Klartext basierend auf
erweiterten Schlüsseln
K1 bis Kn in Einheiten von Rundungsfunktionen fr1 bis frn transformiert
und wird schließlich über verschlüsselte Zwischenergebnisse
im Chiffretext transformiert.
-
Andererseits
führt beim
Verschlüsseln
der erweiterte Schlüsselgenerator 10 Schlüsselumwandlungsprozesse
in umgekehrter Reihenfolge zu der bei Verschlüsselung beim Empfangen des
gemeinsamen Schlüssels
durch, wie im vorstehenden Fall und gibt den erweiterten Schlüssel Kn
bis K1 sequentiell an den Datenrandomisierungsteil 20 aus.
-
Der
Datenrandomisierungsteil 20 wandelt den eingegebenen Chiffretext
auf Basis der erweiterten Schlüssel
Kn bis K1 in umgekehrter Reihenfolge zu derjenigen bei der Verschlüsselung
um und wandelt ihn schließlich über entschlüsselte Zwischenergebnisse
in Klartext um.
-
Um
es zu wiederholen, führt
gemäß dieser Ausführungsform
jeder der Schlüsselumwandlungsfunktionen
fk1 bis fkn einen nicht-linearen Umwandlungsprozess unter Verwendung
der S-Box 14i (Substitutionstabelle)
auf Basis des aus dem Eingabeschlüssel erhaltenen ersten Schlüssels KA
aus und der Addierer 16i berechnet
einen entsprechenden der erweiterten Schlüssel K1 bis K16 auf Basis des durch
Linksverschieben des umgewandelten Ergebnisses der S-Box 14i erhaltenen Werts und des aus dem Eingabeschlüssel erhaltenen
zweiten Schlüssels
KB.
-
Auf
diese Weise wird eine einfache Anordnung ohne irgendeine zusätzliche
externe Vorrichtung verwendet und es wird ein nicht-linearer Umwandlungsprozess
unter Verwendung der Substitutionstabelle (S-Box 14i )
beim Erzeugen des erweiterten Schlüssels Ki durchgeführt. Daher
kann der Vorrichtungspreis und Maßstab unterdrückt werden
und die Zufälligkeit
von erweiterten Schlüsseln
kann verbessert werden, während
die Erzeugung von schwachen Schlüsseln
vermieden wird, was die kryptologische Robustheit verbessert.
-
Bei
jeder Schlüsselumwandlungsfunktion
fki, da der Rotationsschieber 17i den
Eingangsschlüssel nach
links (oder rechts) Rotations-verschiebt und den rotationsverschobenen
Schlüssel
an der Schlüsselumwandlungsfunktion
fk(i + 1) der nächsten
Runde eingibt, können
in den entsprechenden Runden eingegebene Schlüssel leicht und zuverlässig voneinander
unterschiedlich werden.
-
Weiterhin
können
unter der Annahme, dass der Shift-Betrag des Rotationsschiebers 17i relativ zu z.B. der Anzahl von Ausgabebits
der S-Box 14i teilerfremd ist,
nahezu alle ersten Schlüssel
KA in den Runden R1 bis Rn zueinander unterschiedlich sein und der
vorstehend erwähnte
Effekt kann leichter und zuverlässiger
erhalten werden.
-
Weiterhin
kann in jeder Schlüsseltransformationsfunktion
fki, da der erweiterte Umwandler 15i das umgewandelte
Ergebnis der S-Box 14i erweitert
und umwandelt und das Ergebnis am Addierer 16i eingibt, der
Randomisierungseffekt des ersten Schlüssels KA in einem beliebigen
Bereich des erweiterten Schlüssels
Ki zusätzlich
zu den vorstehenden Effekten reflektiert werden.
-
Da
die erweiterte Umwandlung des erweiterten Umwandlers 15i durch Verschieben um die vorgegebene
Anzahl von Bits implementiert wird, kann der vorgenannte Effekt
leicht und zuverlässlich
erzielt werden.
-
Darüber hinaus
kann, da der Datenrandomisierungsteil 20 eine Mehrzahl
von S-Boxen S1 bis S4 zum Verschlüsseln und Entschlüsseln aufweist
und einige S-Boxen des Datenrandomisierungsteils 20 mit
den S-Boxen 14i der Schlüsseltransformationsfunktionen
fk1 bis fkn gemein sind, der Vorrichtungsmaßstab vermindert werden.
-
In
jeder der Schlüsseltransformationsfunktionen
fk1 bis fkn, da der erweiterte Umwandler 15i das umgewandelte
Ergebnis, das von der S-Box 14i empfangen
ist, um die vorgegebene Anzahl von Bits nach links verschiebt, welche
die Hälfte
des umgewandelten Ergebnisses sind oder die Anzahl von Bits, die durch
ein Ganzzahlenvielfaches der Anzahl von Bits im umgewandelten Ergebnis
zur halben Anzahl von Bits ist, und das Schiebeergebnis an den Addierer 16i eingibt, kann der Randomisierungseffekt
des ersten Schlüssels
KA in einen vom erweiterten Schlüssel
Ki linksverschobenen Bereich reflektiert werden. In diesem Fall
kann, da der Randomisierungseffekt des ersten Schlüssels KA
in einem an den S-Boxen S3 und S4 des Datenrandomisierungsteils 20 eingegebenen
Bereichs reflektiert werden kann, die kryptologische Robustheit
weiter verbessert werden.
-
(Zweite Ausführungsform)
-
10 ist
ein Blockdiagramm, welches die Anordnung einer Schlüsselumwandlungsfunktion zeigt,
die auf einen erweiterten Schlüsselgenerator gemäß der zweiten
Ausführungsform
der vorliegenden Erfindung angewendet wird. Dieselben Bezugszeichen
in 10 kennzeichnen dieselben Teile wie diejenigen
in 3, eine detaillierte Beschreibung derselben wird
weggelassen und nur Unterschiede werden unten erläutert. Man
beachte, dass in den später
zu beschreibenden Ausführungsformen
eine wiederholte Beschreibung ebenfalls vermieden wird.
-
Das
heißt,
diese Ausführungsform
ist eine Modifikation der ersten Ausführungsform und zielt auf weitere
Verbesserungen der Zufälligkeit
der erweiterten Schlüssel
ab. Genauer gesagt, werden in jeder Schlüsselübertragungsfunktion die zuvor
erwähnten
Umwandlungselemente einschließlich
der Konstantenregister 12i , der
XOR-Elemente 13i , der S-Boxen 14i und der erweiterte Umwandler 15i parallel zwischen dem Temporärschlüsselregister 11i und dem Addierer 16i verbunden,
wie in 10 gezeigt.
-
Die
zwei S-Boxen 14i können entweder
von einer Sorte oder von einer Mehrzahl von Sorten sein. Wenn eine
Mehrzahl von Sorten von S-Boxen verwendet wird, sind solche Sorten
vorzugsweise so gesetzt, dass die erstere Gruppe von Schlüsselumwandlungsfunktionen
fk1 bis fk8 und die letztere Gruppe von Schlüsselumwandlungsfunktionen fk9 bis
fk16 vertikal symmetrisch von den Zentralwerten (fk8 und fk9) wird,
da erweiterte Schlüssel
Ki in der Lage sein müssen,
in sowohl der normalen als auch der umgekehrten Reihenfolge auf
Basis des gemeinsamen Schlüssels
KC erzeugt zu werden.
-
Die
zwei erweiterten Umwandler 15i können identische
Schiebebeträge
aufweisen. Da der Randomisierungseffekt der zwei S-Boxen 14i über
einen breiteren Bereich reflektiert werden muss, werden die Ausgaben
aus den S-Boxen 14i unter Verwendung
verschiedener Schiebebeträge
vorzugsweise nach links verschoben. Falls ein erweiteter Umwandler 15i eingestellt ist, um eine 4-Bit Linksverschiebung zu
implementieren, und der andere erweiterte Umwandler 15i eingestellt ist, eine 20-Bit Linksverschiebung
zu implementieren, kann in diesem Fall der Randomisierungseffekt
des ersten Schlüssels
KA bequem in allen S-Boxen S1 bis S4 des Datenrandomisierungsteils 20 reflektiert
werden.
-
Bei
der zuvor erwähnten
Anordnung kann, da die Zufälligkeit
unter Verwendung des ersten Schlüssels
KA weiter verbessert werden kann, die Zufälligkeit von erweiterten Schlüsseln Ki
weiter zusätzlich
zu den Effekten der ersten Ausführungsform verbessert
werden.
-
(Dritte Ausführungsform)
-
11 ist
ein Blockdiagramm, welches die Anordnung eines erweiterten Schlüsselgenerators gemäß der dritten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
Diese
Ausführungsform
ist eine Modifikation der ersten oder der zweiten Ausführungsform
und umfasst an Stelle des Temporärschieberegisters 11i und des Rotationsschiebers 17i einen Substitutionsteil 18i , der entsprechende Bits eines gemeinsamen Eingabeschlüssels KC
oder eines der Zwischenschlüssel
kc1 bis kcn–1
nicht-linear substituiert, einige Bits des erhaltenen Zwischenschlüssels an
dem XOR-Element 13i und dem Addierer 16i der eigenen Stufe eingibt und auch
den gesamten Zwischenschlüssel
am Substitutionsteil 18(i+1) der
nächsten Stufe
eingibt. Man beachte, dass der Substitutionsteil 181 die
entsprechenden Bits des gemeinsamen Eingabeschlüssels KC nicht ersetzt.
-
Die
entsprechenden Substitutionsteile 18i werden
so eingestellt, dass das Ergebnis nach n Substitutionen des gemeinsamen
Schlüssels
KC in normaler Reihenfolge gleich dem ursprünglichen gemeinsamen Schlüssel KC
wird, da sie in der Lage sein müssen,
erweiterte Schlüssel
Ki auf Basis des gemeinsamen Schlüssels KC in sowohl normalen
als auch umgekehrten Reihenfolgen zu erzeugen. Auch wird die Umwandlung
in aufsteigender Reihenfolge bei Verschlüsselung vorgenommen und es
wird eine inverse Umwandlung in absteigender Reihenfolge bei der
Entschlüsselung
vorgenommen, wie in 12 gezeigt, welches die Anzahl
n von Runden = 16 exemplifiziert. Beispielsweise wird der Prozess
für jeden
Substitutionsteil 18i durch Rotationsverschieben
des gemeinsamen Schlüssels
KC nach links um eine beliebige Anzahl von Bits implementiert.
-
In
der in 11 gezeigten Ausführungsform führt jeder
Substitutionsteil 18i einen Prozess
zum nicht-linearen Umwandeln des gemeinsamen Schlüssels KC
im Schritt S21 in 13 aus. Im Schritt S23 verknüpft das
XOR-Element 13i einen ersten aus
dem Substitutionsteil 18i erhaltenen Schlüssel KA
und eine im Konstantenregister 12i gehaltene
Konstante per XOR. Im Schritt S25 wandelt die S-Box 14i die XOR-Ausgabe aus dem XOR-Element 13i unter Verwendung einer Substitutionstabelle
nicht-linear um. Im Schritt S27 verschiebt der Umwandler 15i den nicht-linearen umgewandelten Wert um
4 Bit nach links, so dass er ein erweitertes umgewandeltes 12-Bitergebnis
erhält.
Darüber
hinaus wird das transformierte 12-Bitergebnis durch Hinzuaddieren
von 20 Bit führender "0" expandiert. Im Schritt S29 wird das
erweiterte umgewandelte 32-Bitergebnis zu einem zweiten Schlüssel KB
hinzuaddiert, der aus dem Substitutionsteil 18i erhalten
ist, um einen erweiterten Schlüssel
zu bilden.
-
Auch
bei dieser Anordnung können
dieselben Effekte wie in der ersten oder zweiten Ausführungsform
erzielt werden. Zusätzlich
können
die an den Schlüsselumwandlungsfunktionen
fk1 bis fkn einzugebenden Schlüssel
KC und kc1 bis kcn–1 leicht
und zuverlässig
zueinander unterschiedlich werden.
-
In
den obigen Ausführungsformen
ist das XOR-Element 13i zum XOR-Verknüpfen der
Konstante mit der Eingangsseite der S-Box 14i verbunden.
Jedoch ist die vorliegende Erfindung nicht auf eine solche spezifische
Anordnung beschränkt.
Beispielsweise kann das XOR-Element 13i weggelassen werden
oder es kann eine S-Box 14xi nachdem
das XOR mit einer Konstanten berechnet ist, anstelle der S-Box 14i vorgesehen werden, so dass die vorliegende
Erfindung ähnlich
praktiziert wird und derselbe Effekt erzielt wird. Genauer gesagt,
können
die XORs des Wertes KA und von Konstanten vorab berechnet werden
und sie werden in Form einer Tabelle gehalten und die S-Box 14i kann die Tabelle unter Verwendung
des Wertes KA als Eingabeparameter nachschlagen, um einen gegebenen
XOR zu erhalten.
-
14 ist
ein Funktionsblockdiagramm, welches die Anordnung einer Smartcard
zeigt, welche den vorstehend erwähnten
erweiterten Schlüsselgenerator,
die Verschlüsselungs-/Entschlüsselungseinheit
und das Speichermittel der vorliegenden Erfindung ausführt. Wie
in 14 gezeigt, weist eine Smartcard 51 eine
CPU 53, RAM 55, ROM 57, EEPROM 59 und
einen Verbinder 61 auf. Das RAM 55 wird verwendet,
um verschiedene Daten zu speichern und wird als Arbeitsbereich oder
dergleichen verwendet. Das ROM 57 wird verwendet, um verschiedene
Daten, Programme und dergleichen zu speichern. Das EEPROM 59 speichert
Programme und dergleichen, die in Flussdiagrammen der 8 und 13 gezeigt
sind. Der Verbinder 61 stellt elektrische Kontakte mit
einem Smartcard-Leser/-Schreiber
her (nicht gezeigt). Man beachte, dass die in den 8 und 13 gezeigten
Programme im RAM 55 oder ROM 57 anstelle des EEPROM 59 gespeichert sein
können.
-
(Vierte Ausführungsform)
-
Es
wird unter Verwendung von 15 eine Verschlüsselungs-/Entschlüsselungseinheit
gemäß der vierten
Ausführungsform
der vorliegenden Erfindung unten gezeigt. Diese Verschlüsselungs/Entschlüsselungseinheit 30 weist
eine in einer der ersten bis dritten Ausführungsformen beschriebene Anordnung
auf und wird verwendet, um digitale Informationen wie etwa Bilddaten,
Musikdaten und dergleichen zu schützen (die nachfolgend als Rohdaten
bezeichnet werden).
-
Man
nehme an, dass die Verschlüsselungs-/Entschlüsselungseinheit 30 in
einem Personal-Computer PC durch Installieren eines Programms von
einem Speichermedium implementiert ist, wie in 15 gezeigt.
Die Verschlüsselungs-/Entschlüsselungseinheit 30 verschlüsselt eine
Rohdateneingabe an den Personal-Computer PC unter Verwendung beispielsweise
einer Benutzer-ID als gemeinsamer Schlüssel und speichert die erhaltenen verschlüsselten
Daten (entsprechend dem zuvor erwähnten Chiffretext) in einem
tragbaren Speicherelement 31. Als ein solches Speicherelement 31 können eine
Smartcard, Smartmedien, eine Speicherkarte oder dergleichen verwendet
werden.
-
Das
Speicherelement 31 wird an das Heim des Anwenders verteilt
und eine Verschlüsselungs/Entschlüsselungseinheit
(nicht gezeigt) im Heim des Benutzers entschlüsselt die verschlüsselten
Daten im Speicherelement 13 auf Basis der eigenen Benutzer-ID
und reproduziert erhaltene Bilddaten oder Musikdaten von z.B. einem
Lautsprecher oder dergleichen. Auf diese Weise können Rohdaten (Inhalte) nur
an solche Benutzer verteilt werden, die einen Abonnementvertrag
vorab hergestellt haben.
-
Verschiedene
Modifikationen dieser Ausführungsform
sind wie folgt erhältlich.
Beispielsweise, wie in 16 gezeigt, kann eine die Verschlüsselungs-/Entschlüsselungseinheit 30 als
eine Hardwareschaltung umfassende Aufzeichnungseinheit 32 anstelle
des Personal-Computers PC vorgesehen sein. Bei dieser Anordnung
verschlüsselt
beim Schreiben von Inhalten in das Speicherelement 31 die
Verschlüsselungs-/Entschlüsselungseinheit 30 Roh-Daten
basierend beispielsweise auf einer Anwender-ID und speichert verschlüsselte Daten
im Speicherelement 31. Die Prozesse von der Lieferung nach
Hause bis zur Entschlüsselung
sind dieselben wie oben beschrieben. Auf diese Weise kann die Verschlüsselungs-/Entschlüsselungseinheit 30 der
dezidierten Aufzeichnungseinheit 32, anstelle eines Universal-Computers,
wie etwa des Personal-Computers PC oder dergleichen, bereitgestellt
werden.
-
Wie
in 17 gezeigt, kann ein Wirtscomputer 33 mit
der Verschlüsselungs-/Entschlüsselungseinheit 30 auch
mit dem Personal-Computer PC über ein
Netzwerk NW verbunden werden. In diesem Fall werden vom Wirtscomputer 33 heruntergeladene verschlüsselte Daten
im Speicherelement 32 über den
Personal-Computer
PC im verschlüsselten
Zustand gespeichert. Die Prozesse von der Lieferung nach Hause bis
zum Entschlüsseln
sind dieselben wie die oben beschriebenen. Gemäß dieser Modifikation kann
zusätzlich
zum vorbeschriebenen Effekt das Abhören der Inhalte (Rohdaten)
auf dem Netzwerk NW verhindert werden.
-
Wie
weiterhin in den 18A und 18B gezeigt,
kann eine DVD (Digital Versatile Disc) als Speicherelement verwendet
werden. Im in 18A gezeigten Fall wird eine
DVD 34, welche verschlüsselte
Daten vorspeichert, dem Anwender geliefert. Die Verschlüsselungs-/Entschlüsselungseinheit 30 zu
Hause beim Anwender entschlüsselt
die verschlüsselten
Daten in der DVD 34 und reproduziert die erhaltenen Bilddaten
oder Musikdaten mit einem Lautsprecher oder dergleichen.
-
Auch
im in 18B gezeigten Fall werden Rohdaten,
wie etwa Bilddaten, Musikdaten oder dergleichen durch die Verschlüsselungs-/Entschlüsselungseinheit 30 zu
Hause beim Anwender unter Verwendung eines vorgegebenen gemeinsamen Schlüssels verschlüsselt werden
und die erhaltenen verschlüsselten
Daten werden auf einer DVD-RAM 35 gespeichert.
-
Diese
verschlüsselten
Daten werden durch den vom Benutzer eingestellten vorgegebenen gemeinsamen
Schlüssel
entschlüsselt,
können
aber von Dritten nicht entschlüsselt
werden, wenn nicht der gemeinsame Schlüssel offenbart wird. Daher können persönliche Bilddaten
und Musikdaten gesichert werden, während sie gegenüber Drittparteien geschützt sind.
-
(Andere Ausführungsformen)
-
Als
Speichermedium, das ein Programm zum Implementieren der Prozesse
des erweiterten Schlüsselgenerators
und der Verschlüsselungs/Entschlüsselungseinheit
der vorliegenden Erfindung speichert, kann eine Magnetplatte, Floppy
Disk, Festplatte, optische Platte (CD-ROM, CD-R, DVD, oder dergleichen)
eine magnetooptische Platte (MO oder dergleichen), Halbleiterspeicher
und dergleichen verwendet werden. In der Praxis ist das Speicherformat nicht
besonders beschränkt,
solange wie ein Speichermedium das Programm speichern kann und von einem
Computer gelesen werden kann.
-
Ein
BS (Betriebssystem), das auf einem Computer oder auf MW (Middleware)
wie etwa einem Datenbankmanagementprogramm, Netzwerk-Software oder
dergleichen läuft,
kann einige der Prozesse ausführen,
welche die obige Ausführungsform
implementieren, auf Basis einer Anweisung des aus dem Speichermedium
im Computer installierten Programms.
-
Weiterhin
ist das Speichermedium in der vorliegenden Erfindung nicht auf ein
Medium beschränkt,
das unabhängig
vom Computer ist, sondern beinhaltet ein Speichermedium, welches
ein von einem Netzwerk, dem Internet oder dergleichen heruntergeladenes
Programm speichert oder temporär
speichert.
-
Die
Anzahl von Speichermedien ist nicht auf Eins beschränkt und
das Speichermedium der vorliegenden Erfindung beinhaltet einen Fall,
bei dem die Prozesse der obigen Ausführungsformen von einer Mehrzahl
von Medien implementiert sind und jede Medienanordnung verwendet
werden kann.
-
Man
beachte, dass der Computer in der vorliegenden Erfindung Prozesse
der obigen Ausführungsform
auf Basis von im Speichermedium gespeicherten Programmen ausführt und
entweder eine Apparatur sein kann, die aus einer einzelnen Vorrichtung
wie etwa einem Personal-Computer besteht oder aus einem System,
das durch Verbinden einer Mehrzahl von Vorrichtungen über ein
Netzwerk aufgebaut wird.
-
Der
Computer ist in der vorliegenden Erfindung nicht auf einen Personal-Computer
beschränkt und
beinhaltet eine arithmetische Prozessierungsvorrichtung, einen Mikrocomputer
und dergleichen, die in einem informationsverarbeiteten Apparat
beinhaltet sind, d.h. beinhaltet alle Vorrichtungen und Apparate,
welche die Funktionen der vorliegenden Erfindung über Programme
implementieren können.
-
Die
vorliegende Erfindung ist nicht auf ein DES-Kryptosystem limitiert,
sondern kann auf jedes andere Blockkryptosystem angewendet werden,
das Rundungsfunktionen benutzt. Beispielsweise kann die vorliegende
Erfindung auf Kryptosysteme wie etwa Lucifer, LOKI, MISTY1, MISTY2
und SAFER (Secure and Fast Encryption Routine) und dergleichen angewendet
werden.
-
Bei
den obigen Ausführungsformen
führt die S-Box
eine nicht-lineare Umwandlung unter Verwendung einer Substitutionstabelle
durch. Alternativ kann die S-Box eine nicht-lineare Transformation
unter Verwendung eines Verdrahtungsmusters durchführen.
-
In
der in 10 gezeigten Ausführungsform sind
zwei Sätze
von Umwandlungselementen einschließlich der Konstantenregister 12i , XOR-Elemente 13i ,
S-Boxen 14i und erweiterten Umwandler 15i parallel angeordnet. Alternativ können drei
oder mehr Sätze
von Umwandlungselementen parallel angeordnet sein.
-
Verschiedene
Modifikationen der vorliegenden Erfindung können innerhalb des Schutzumfangs der
Erfindung gemacht werden.