-
Die
Erfindung bezieht sich auf eine Schlüsseldispositionsvorrichtung
nach dem Oberbegriff des Anspruchs 1 sowie auf ein System zur Verschlüsselung
und/oder Entschlüsselung
von Daten nach dem Oberbegriff des Anspruchs 27.
-
Es
ist in der Kryptographietechnik bekannt, dass ein Blockchiffrieralgorithmus,
wie ein AES(Advanced Encription Standard)-Algorithmus einen Echtzeit-Datenstrom
in Datenblöcke
aufteilt und diese ver- oder entschlüsselt. Die Blocklänge beträgt z.B.
128 Bit, wobei der Algorithmus in Software und/oder Hardware implementiert
sein kann. Ein in Hardware implementiertes Ver-/Entschlüsselungssystem
wird häufig
für Produktanwendungen
benutzt, die eine hohe Geschwindigkeit erfordern.
-
Eine
Verschlüsselung
unter Verwendung eines Blockchiffrieralgorithmus kann z.B. durch
Prozesse wie SubBytes-Wandlung, ShiftRows-Wandlung, MixedColumns-Wandlung
und/oder AddRoundKey-Wandlung durchgeführt werden. Eine Entschlüsselung
unter Verwendung eines Blockchiffrieralgorithmus kann beispielsweise
durch Prozesse wie InvShiftRows-Wandlung, InvSubBytes-Wandlung,
InvMixColumns-Wandlung und AddRoundKey-Wandlung durchgeführt werden.
Praktisch alle Wandlungsprozesse zur Ver- oder Entschlüsselung
werden in sogenannten Runden bzw. Durchläufen ausgeführt. Nach Abschluss eines Durchlaufs
kann der Durchlauf gegebenenfalls einmal oder mehrmals wiederholt
werden, um Daten zu ver- oder entschlüsseln.
-
Im
AddRoundKey-Wandlungsprozess werden Datenblöcke gegebenenfalls nach Verarbeitung
in vorherigen Wandlungsprozessläufen
mit sogenannten Rundenschlüsseln
gemischt, die von einer Schlüsseldispositionsvorrichtung,
auch Schlüsselbereitstellungseinheit
oder Schlüsselplaner
genannt, erzeugt werden, wonach die Datenblöcke in einen verschlüsselten
bzw. entschlüsselten
Datenstrom gewandelt werden. Ein anfänglicher Eingabeschlüssel, welcher
der Schlüsseldispositionsvorrichtung
zugeführt
werden kann, um einen Rundenschlüssel
zu erzeugen, kann beispielsweise eine Schlüssellänge von 180 Bit, 192 Bit oder
256 Bit haben. Mit größerer Länge des
anfänglichen
Eingabeschlüssels
steigt in der Regel das Maß an
Datenverschlüsselung.
Die Anzahl an Rundenwiederholungen kann durch die Länge des
anfänglichen
Eingabeschlüssels
bestimmt sein. So können
z.B. bei einer Länge
des anfänglichen
Eingabeschlüssels
von 128 Bit für
das Verschlüsselungs-/Entschlüsselungssystem
zehn Durchläufe,
bei einer Länge
des anfänglichen
Eingabeschlüssels
von 192 Bit zwölf
Durchläufe
und bei einer Länge
des anfänglichen
Eingabeschlüssels
von 256 Bit vierzehn Durchläufe
vorgesehen sein. Der Schlüsselplaner
stellt den Rundenschlüssel
immer dann bereit, wenn das Verschlüsselungs-/Entschlüsselungssystem
einen Durchlauf ausführt.
-
Der
Schlüsselplan
kann beispielsweise begleitend oder durch Vorausberechnung erstellt
werden. Bei der begleitenden Methode kann der jeweilige Rundenschlüssel gleichzeitig
mit dem Verschlüsseln
bzw. Entschlüsseln
von Daten erzeugt werden, z.B. für
jeden Durchlauf immer dann, wenn der Durchlauf ausgeführt wird.
Bei der vorausberechnenden Methode können die Rundenschlüssel für alle Durchläufe im voraus
erzeugt und in einem Speicher abgelegt werden, wonach dann der jeweils
benötigte
Rundenschlüssel
für jeden
Durchlauf aus dem Speicher ausgelesen wird.
-
Die
vorausberechnende Methode benötigt
dementsprechend eine größere Speicherkapazität zum Speichern
der im voraus erzeugten Rundenschlüssel. Da der Rundenschlüssel für den jeweiligen
Durchlauf aus dem Speicher gelesen werden muss, kann sich eine geringere
Betriebsgeschwindigkeit für
die Verschlüsselung
ergeben. Die Länge
praktisch aller Rundenschlüssel
entspricht typischerweise der Bitanzahl eines Blocks, der ver- bzw.
entschlüsselt
wird. Wenn beispielsweise zehn Durchläufe ausgeführt werden und die Länge jedes
Rundenschlüssels
128 Bit beträgt,
beträgt
der zur Speicherung aller Rundenschlüssel im Speicher benötigte Speicherplatz
128×(Rundenanzahl+1)
Bit, d.h. 1408 Bit. Alternativ beträgt der erforderliche Speicherplatz
für die
Variante mit zwölf
Durchläufen
und 192-Bit-Rundenschlüsseln
1644 Bit und mit vierzehn Durchläufen
und 256-Bit-Rundenschlüsseln
1920 Bit.
-
Zur
Speicherung der Rundenschlüssel
kann ein Register benutzt werden, und eine Hardware-Variante mit
mindestens 15.000 Gate-Einheiten kann eingesetzt werden, wenn die
Rundenschlüssellänge 256
Bit beträgt.
Der Schlüsselplaner
braucht dann keinen Speicher hoher Kapazität zur Speicherung der Rundenschlüssel aufweisen,
vielmehr genügt
ein geringerer Speicherplatz zum Speichern nur jeweils eines Rundenschlüssels.
-
1 veranschaulicht ein herkömmliches
Verschlüsselungs-/Entschlüsselungssystem 10,
das einen Blockchiffrieralgorithmus, wie einen AES-Algorithmus,
benutzt und einen Schlüsselplaner,
der einen Chiffrierschlüsselplaner 12 und
einen Dechiffrierschlüsselplaner 13 umfasst,
sowie eine Steuereinheit 11 und einen Blockrundenprozessor 14 bein haltet.
Der Chiffrierschlüsselplaner 12 erzeugt
aus einem anfänglichen
Rundenschlüssel
E_INKEY, der von einer externen Einheit empfangen wird, einen Chiffrierrundenschlüssel R_KEY, den
er an den Blockrundenprozessor 14 abgibt. Der Dechiffrierschlüsselplaner 13 erzeugt
aus einem anfänglichen
Rundenschlüssel
D_INKEY, den er von einer externen Einheit empfängt, einen Dechiffrierrundenschlüssel IR_KEY,
den er an den Blockrundenprozessor 14 abgibt. Herkömmlicherweise
sind der Chiffrierschlüsselplaner 12 und
der Dechiffrierschlüsselplaner 13 durch
entsprechende Hardware-Einheiten realisiert.
-
Der
Chiffrierschlüsselplaner 12 und
der Dechiffrierschlüsselplaner 13 führen Wortersetzungsprozesse aus,
um den Chiffrierrundenschlüssel
R_KEY bzw. den Dechiffrierrundenschlüssel IR_KEY zu erzeugen. Bei diesen
Wortsubstitutionsprozessen teilen der Chiffrierschlüsselplaner 12 und
der Dechiffrierschlüsselplaner 13 Schlüsseldaten
von z.B. 32 Bit in vier Worte mit je 8 Bit und führen eine Substitution mit
den vier Worten unter Verwendung von vier zugehörigen Ersetzungstabellen aus.
Der anfängliche
Chiffrierrundenschlüssel
E_INKEY und der anfängliche
Dechiffrierrundenschlüssel
D_INKEY können
z.B. eine Länge
von je 256 Bit haben, und der Chiffrierschlüsselplaner 12 sowie
der Dechiffrierschlüsselplaner 13 führen den
Wortsubstitutionsprozess zweimal pro Zyklus eines vorgegebenen Taktes
aus. Der Chiffrierschlüsselplaner 12 und
der Dechiffrierschlüsselplaner 13 beinhalten
in diesem Fall acht Ersetzungstabellen, die typischerweise in Hardware
mit je zwischen 800 Gate-Einheiten
und 2200 Gate-Einheiten aufgebaut sind, so dass für 8 Ersetzungstabellen
zwischen 6400 Gate-Einheiten und 17.600 Gate-Einheiten benötigt werden. Der Chiffrierschlüsselplaner 12 und
der Dechiffrierschlüsselplaner 13 haben
daher eine vergleichsweise große
Abmessung des Verschlüsselungs-/Entschlüsselungssystems 10 zur
Folge.
-
Die
Steuereinheit 11 empfängt
ein Schlüsselinformationssignal
KEY_IF und leitet es an den Chiffrierschlüsselplaner 12 und
den Dechiffrier schlüsselplaner 13 weiter.
Des weiteren empfängt
die Steuereinheit 11 ein Moduseinstellsignal EN_DE und
gibt dieses an den Chiffrierschlüsselplaner 12,
an den Dechiffrierschlüsselplaner 13 und
an den Blockrundenprozessor 14 ab. Der Blockrundenprozessor 14 führt dann
die eigentliche Verschlüsselung
bzw. Entschlüsselung
von zugeführten
Daten DAT_IN aus und gibt entsprechende Daten DAT_OUT ab.
-
Der
Erfindung liegt als technisches Problem die Bereitstellung einer
Schlüsseldispositionsvorrichtung und
eines Systems zur Ver-/Entschlüsselung
von Daten der eingangs genannten Art zugrunde, mit denen sich die
oben erwähnten
Schwierigkeiten des Standes der Technik wenigstens teilweise vermeiden
lassen und insbesondere Systemrealisierungen mit vergleichsweise
geringen Abmessungen ermöglichen.
-
Die
Erfindung löst
dieses Problem durch die Bereitstellung einer Schlüsseldispositionsvorrichtung
mit den Merkmalen des Anspruchs 1 und eines Systems zur Verschlüsselung
und/oder Entschlüsselung
von Daten mit den Merkmalen des Anspruchs 27.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie das zu deren besserem Verständnis oben erläuterte herkömmliche
Ausführungsbeispiel
sind in den Zeichnungen dargestellt, in denen zeigen:
-
1 ein
Blockdiagramm eines herkömmlichen
Verschlüsselungs-/Entschlüsselungssystems
mit einem Schlüsselplaner,
-
2 ein
Blockdiagramm eines erfindungsgemäßen Verschlüsselungs-/Entschlüsselungssystems
mit einem Schlüsselplaner,
-
3 ein
Blockschaltbild eines erfindungsgemäßen Schlüsselplaners,
-
4 ein
Blockdiagramm möglicher
Realisierungen von Ladefreigabeschaltungen und Registern im Schlüsselplaner
von 3,
-
5 ein
Blockdiagramm einer möglichen
Realisierung eines Ausgabeselektors im Schlüsselplaner von 3,
-
6 ein
Zeitsteuerungsdiagramm zur Veranschaulichung einer Zeitsteuerung
für Ausgangssignale von
Registern, wenn der Schlüsselplaner
von 3 einen ersten Chiffrier- oder Dechiffrierrundenschlüssel erzeugt,
-
7A und 7B je
ein Zeitsteuerungsdiagramm zur Veranschaulichung einer Zeitsteuerung
für die Ausgangssignale
der Register, wenn der Schlüsselplaner
von 3 einen zweiten Chiffrierrundenschlüssel bzw.
einen zweiten Dechiffrierrundenschlüssel erzeugt,
-
8A und 8B je
ein Zeitsteuerungsdiagramm zur Veranschaulichung einer Zeitsteuerung
für die Ausgangssignale
der Register, wenn der Schlüsselplaner
von 3 einen dritten Chiffrierrundenschlüssel bzw.
einen dritten Dechiffrierrundenschlüssel erzeugt,
-
9 ein
Blockdiagramm eines weiteren erfindungsgemäßen Schlüsselplaners und
-
10 ein
Blockdiagramm einer möglichen
Realisierung von Takt-Gateschaltungen
und Registern im Schlüsselplaner
von 9.
-
2 zeigt
ein erfindungsgemäßes Verschlüsselungs-/Entschlüsselungssystem
600 mit einer Steuereinheit 601, einer Schlüsseldispositionsvor richtung 700,
nachfolgend auch als Schlüsselplaner
bezeichnet, und einem z.B. als Blockrundenprozessor ausgelegten
Prozessor 602. Die Steuereinheit 601 legt die
Länge eines
anfänglichen,
dem Schlüsselplaner 700 zugeführten Rundenschlüssels basierend
auf einem externen Schlüsselinformationssignal
KEY_LEG fest. Des weiteren stellt die Steuereinheit 601 basierend
auf einem externen Moduseinstellsignal ENC_DEC fest, ob sich das
Verschlüsselungs-/Entschlüsselungssystem
600 momentan in einem Verschlüsselungsmodus
oder einem Entschlüsselungsmodus
befindet. Basierend auf dem externen Moduseinstellsignal ENC_DEC
gibt die Steuereinheit 601 außerdem ein Taktsignal CLK,
Ladefreigabesignale LD1, LD1B, LD2, LD2B, LD3, LD3B, LD4 und LD4B,
interne Auswahlsignale M1, M2, M3 und M4, Ausgabeauswahlsignale
S1 und S2, Berechnungssteuersignale P1, P2, P3 und P4 sowie ein
Rundensteuersignal RCTL ab.
-
Der
Schlüsselplaner 700 empfängt von
einer externen Einrichtung einen von drei anfänglichen Rundenschlüsseln EIKEY1,
EIKEY2, EIKEY3. Die Längen
des ersten, zweiten und dritten anfänglichen Rundenschlüssels EIKEY1,
EIKEY2 und EIKEY3 betragen z.B. 128 Bit, 192 Bit bzw. 256 Bit. Der
Schlüsselplaner 700 erzeugt
einen von drei möglichen
Chiffrierrundenschlüsseln
ERKEY1, ERKEY2, ERKEY3 oder einen von drei möglichen Dechiffrierrundenschlüsseln DRKEY1,
DRKEY2, DRKEY3 in Reaktion auf das Taktsignal CLK, die Ladefreigabesignale
LD1 bis LD4B, die internen Auswahlsignale M1 bis M4, die Ausgabeauswahlsignale
S1 und S2 und die Berechnungssteuersignale P1 bis P4.
-
Der
Prozessor 602 führt
wiederholt Verschlüsselungs-
bzw. Entschlüsselungsdurchläufe aus,
wobei die Anzahl an Chiffrierrundenschlüsseln oder Dechiffrierrundenschlüsseln, die
vom Schlüsselplaner 700 erzeugt
werden, abhängig
von der Länge
des anfänglichen
Rundenschlüssels
festgelegt werden kann. Beispielsweise erzeugt der Schlüsselplaner 700,
wenn er den ersten anfänglichen
Rundenschlüssel
EIKEY1 empfängt,
zehn erste Dechiffrierrundenschlüssel
ERKEY1 oder zehn erste Dechiffrierrundenschlüssel DRKEY1 für zehn entsprechende
Durchläufe.
Wenn der Schlüsselplaner 700 den
zweiten anfänglichen
Rundenschlüssel EIKEY2
empfängt,
erzeugt er z.B. zwölf
zweite Chiffrierrundenschlüssel
DRKEY2 oder zwölf
zweite Dechiffrierrundenschlüssel
DRKEY2 für
zwölf Durchläufe. Wenn
der Schlüsselplaner 700 den
dritten anfänglichen Rundenschlüssel EIKEY3
empfängt,
erzeugt er beispielsweise vierzehn dritte Chiffrierrundenschlüssel ERKEY3
oder vierzehn dritte Dechiffrierrundenschlüssel DRKEY3 für vierzehn
Durchläufe.
Der Prozessor 602 verarbeitet wenigstens einen Datenblock
mit z.B. 128 Bit, wobei jeder der ersten, zweiten und dritten Chiffrierrundenschlüssel ERKEY1,
ERKEY2, ERKEY3 bzw. jeder der ersten, zweiten und dritten Dechiffrierrundenschlüssel DRKEY1,
DRKEY2, DRKEY3, die vom Schlüsselplaner 700 erzeugt
werden, eine Länge
von 128 Bit haben kann.
-
Der
Prozessor 602 empfängt
einen von dem ersten, dem zweiten und dritten anfänglichen
Rundenschlüssel
EIKEY1, EIKEY2, EIKEY3 und einen von dem ersten, dem zweiten und
dem dritten Chiffrierrundenschlüssel
ERKEY1, ERKEY2, ERKEY3 oder einen von dem ersten, dem zweiten und
dem dritten Dechiffrierrundenschlüssel DRKEY1, DRKEY2, DRKEY3.
Der Prozessor 602 teilt einen zugeführten Datenstrom SDAT_IN in
Reaktion auf das Rundensteuersignal RCTL in Datenblöcke, mischt
die Datenblöcke
mit dem empfangenen Chiffrierrundenschlüssel ERKEY1, ERKEY2 oder ERKEY3
bzw. Dechiffrierrundenschlüssel DRKEY1,
DRKEY2 oder DRKEY3, um die Datenblöcke zu verschlüsseln oder
zu entschlüsseln,
und gibt einen entsprechenden Datenstrom SDAT_OUT ab. Der Prozessor 602 wiederholt
mehrmals die Verschlüsselungs- oder
Entschlüsselungsdurchläufe, wobei
der Schlüsselplaner 700 jeden
vom Prozessor 602 benutzten Chiffrier- oder Dechiffrierrundenschlüssel erzeugt.
-
3 zeigt
eine mögliche
Realisierung für
den Schlüsselplaner 700 gemäß der Erfindung.
In diesem Beispiel beinhaltet der Schlüsselplaner 700 eine
Schlüsselspeichereinheit 701,
eine Schlüsselberechnungseinheit 702 und
eine Schlüsselausgabeeinheit 703.
Die Schlüsselspeichereinheit 701 umfasst
Ladefreigabeschaltungen 711 bis 718 und Register 721 bis 728.
Jeder Ladefreigabeschaltung 711 bis 718 wird je
ein anfänglicher
Schlüsseldatenbestandteil
w[0] bis w[7], ein Berechnungsschlüsseldatenbestandteil c[8m]
bis c[8m+7], mit m als einer natürlichen
Zahl, und ein Speicherschlüsseldatenbestandteil
r[8n] bis r[8n+7], mit n als einer natürlichen Zahl, zugeführt und
die jeweilige Ladefreigabeschaltung 711 bis 718 wählt von
den drei zugeführten
Bestandteilen jeweils einen in Reaktion auf je zwei ihr gemäß 3 zugeführte Ladefreigabesignale
aus. Speziell wird das Ladefreigabesignalpaar LD1 und LD1B den Ladefreigabeschaltungen 711 bzw. 712 zugeführt, das
Ladefreigabesignalpaar LD2 und LD2B wird den Ladefreigabeschaltungen 713 bzw. 714,
das Ladefreigabesignalpaar LD3 und LD3B wird den Ladefreigabeschaltungen 715 bzw. 716 und
das Ladefreigabesignalpaar LD4 und LD4B wird den Ladefreigabeschaltungen 717 bzw. 718 zugeführt. Die
ausgewählten Datenbestandteile
werden von den Ladefreigabeschaltungen 711 bis 718 als
Eingabeschlüsseldatenbestandteile
w[8n] bis w[8n+7] abgegeben. Die Berechnungsschlüsseldatenbestandteile c[8m]
bis c[8m+7] werden von der Schlüsselberechnungseinheit 702 abgegeben,
dies ist jedoch optional.
-
Die
Anzahl an den Ladefreigabeschaltungen 711 bis 718 zugeführten Schlüsseldatenbestandteilen
ist durch den dem Schlüsselplaner 700 zugeführten, anfänglichen
Rundenschlüssel
festgelegt. Der erste anfängliche
Rundenschlüssel
EIKEY1 beinhaltet die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[3], der zweite anfängliche
Rundenschlüssel
EIKEY2 beinhaltet die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[5] und der dritte anfängliche
Rundenschlüssel
EIKEY3 beinhaltet die anfänglichen
Schlüsseldatenbestandteile w[0]
bis w[7]. Der erste anfängliche
Rundenschlüssel
EIKEY1 kann dem Schlüsselplaner 700 zugeführt werden,
indem die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[3] je einer der Ladefreigabeschaltungen 711 bis 714 zugeführt werden.
Der zweite anfängliche
Rundenschlüssel
EIKEY2 kann dem Schlüsselplaner 700 zugeführt werden,
indem die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[5] je einer der Ladefreigabeschaltungen 711 bis 716 zugeführt werden.
Der dritte anfängliche
Rundenschlüssel
EIKEY3 kann dem Schlüsselplaner 700 zugeführt werden,
indem die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[7] je einer der Ladefreigabeschaltungen 711 bis 718 zugeführt werden.
-
Die
Register 721 bis 728 speichern die zugeführten Schlüsseldatenbestandteile
w[n] bis w[8n+7] in Reaktion auf das Taktsignal CLK und geben sie
als die Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+7] wieder aus. Die Ladefreigabeschaltungen 711 bis 718 und
die Register 721 bis 728 werden nachstehend in Verbindung
mit 4 näher
erläutert.
-
Die
Schlüsselberechnungseinheit 702 beinhaltet
Kettenberechnungseinheiten 731 bis 738, eine davon
unabhängige
Berechnungseinheit 739, Auswahlschaltungen 741, 742 und 743,
eine Wortrotationseinheit 751, eine Wordsubstitutionseinheit 752 und
einen Rundenkonstantengenerator 753.
-
Die
Kettenberechnungseinheiten 731 bis 738 sind als
Kette seriell miteinander verbunden und außerdem mit je einem der Register 721 bis 728 verbunden.
Sie empfangen je einen der Speicherschlüsseldatenbestandteile r[8n]
bis r[8n+7] von den Registern 721 bis 728 und
geben in Reaktion darauf sowie auf Wandlungsschlüsseldaten SUC je einen der
Berechnungsschlüsseldatenbestandteile
c[8m] bis c[8m+7] ab. Speziell empfängt die Kettenberechnungseinheit 731 die
Wandlungsschlüsseldaten
SUC, und die weiteren Kettenberechnungseinheiten 732 bis 738 empfangen
jeweils den von der vorherigen Kettenberechnungseinheit 731 bis 737 abgegebenen
Berechnungsschlüsseldatenbestandteil
c[8m] bis c[8m+6]. Die Kettenberechnungseinheiten 731 bis 738 führen z.B.
Exklusiv-ODER-Verknüpfungen
aus. Speziell führt
dann die Kettenberechnungseinheit 731 eine Exklusiv-ODER-Verknüpfung des
Speicher schlüsselbestandteils
r[8n] mit den Wandlungsschlüsseldaten
SUC durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[8m] ab. Die Kettenberechnungseinheiten 732 bis 738 führen jeweils
eine Exklusiv-ODER-Verknüpfung
eines der Speicherschlüsseldatenbestandteile
r[8n+1] bis r[8n+7] mit je einem der Berechnungsschlüsseldatenbestandteile
c[8m] bis c[8m+6] aus und geben den entsprechenden Berechnungsschlüsseldatenbestandteil
c[8m+1] bis c[8m+7] ab.
-
Die
unabhängige
Berechnungseinheit 739 führt eine Exklusiv-ODER-Verknüpfung von
Substitutionsschlüsseldaten
SUB mit einer Rundenkonstanten RNC aus und gibt die Wandlungsschlüsseldaten
SUC als Resultat ab.
-
Die
Auswahlschaltung 741 gibt in Reaktion auf das Berechnungssteuersignal
P1 von der Steuereinheit 601 entweder die Substitutionsschlüsseldaten
SUB oder den Berechnungsschlüsseldatenbestandteil
c[8m+3] an die Kettenberechnungseinheit 735 ab. Beispielsweise
gibt sie die Substitutionsschlüsseldaten
SUB ab, wenn das Berechnungssteuersignal P1 aktiviert ist, und den
Berechnungsschlüsselbestandteil
c[8m+3], wenn das Berechnungssteuersignal P1 deaktiviert ist.
-
Die
Auswahlschaltung 742 gibt einen von drei Ausgabeschlüsseldatenbestandteilen
x3, x5 und x7 in Reaktion auf die Berechnungssteuersignale P2 und
P3 von der Steuereinheit 601 an die Wortrotationseinheit 751 ab.
Beispielsweise gibt sie den Ausgabeschlüsseldatenbestandteil x3 ab,
wenn beide Berechnungssteuersignale P2 und P3 deaktiviert sind,
während
sie den Ausgabeschlüsseldatenbestandteil
x5 abgibt, wenn das Berechnungssteuersignal P2 aktiviert und das
Berechnungssteuersignal P3 deaktiviert sind. Wenn das Berechnungssteuersignal
P2 deaktiviert und das Berechnungssteuersignal P3 aktiviert sind,
gibt die Auswahlschaltung 742 den Ausgabeschlüsseldatenbestandteil
x7 an die Wortrotationseinheit 751 ab.
-
Die
Auswahlschaltung 743 gibt in Reaktion auf das Berechnungssteuersignal
P4 von der Steuereinheit 601 entweder den Berechnungsschlüsseldatenbestandteil
c[8m+3] oder Rotationsschlüsseldaten
ROT an die Wortsubstitutionseinheit 752 ab. Beispielsweise
gibt sie den Berechnungsschlüsseldatenbestandteil
c[8m+3] ab, wenn das Berechnungssteuersignal P4 aktiviert ist, während sie
die Rotationsschlüsseldaten
ROT abgibt, wenn das Berechnungssteuersignal P4 deaktiviert ist.
Die Auswahlschaltungen 741, 742 und 743 können jeweils
einen Multiplexer umfassen.
-
Die
Wortrotationseinheit 751 empfängt einen der Ausgabeschlüsseldatenbestandteile
x3, x5 und x7 von der Auswahlschaltung 742, führt eine
Rotation der Bits des empfangenen Ausgabeschlüsseldatenbestandteils x3, x5,
x7 um beispielsweise 8 Bit aus und gibt die entsprechenden Rotationsschlüsseldaten
ROT ab. Eine solche Betriebsweise einer Wortrotationseinheit ist
dem Fachmann als solche allgemein bekannt und bedarf hier keiner
näheren
Erläuterung.
-
Die
Wortsubstitutionseinheit 752 empfängt den Berechnungsschlüsseldatenbestandteil
c[8m+3] oder die Rotationsschlüsseldaten
ROT von der Auswahlschaltung 743, nimmt eine Substitution
der empfangenen Daten vor und gibt die entsprechenden Substitutionsschlüsseldaten
SUB ab. Die Wortsubstitutionseinheit 752 kann hierfür z.B. vier
nicht gezeigte, interne Ersetzungstabellen beinhalten und den empfangenen
Berechnungsschlüsseldatenbestandteil
c[8m+3] oder die empfangenen Rotationsschlüsseldaten ROT durch Werte aus
den vier Ersetzungstabellen substituieren. Der Rundenkonstantengenerator 753 erzeugt
die Rundenkonstante RNC.
-
Die
Schlüsselausgabeeinheit 703 umfasst
interne Auswahlschaltungen 761 bis 768 und einen
Ausgabeselektor 770. Die internen Auswahlschaltungen 761 bis 768 wählen in
Reaktion auf die internen Auswahlsignale M1 bis M4, die ihnen von
der Steuereinheit 601 zugeführt werden, jeweils den entsprechenden
Eingabeschlüsseldatenbestandteil
w[8n] bis w[8n+7] oder den entsprechenden Speicherschlüsseldatenbestandteil r[8n]
bis r[8n] aus und geben den ausgewählten Datenbestandteil als
die Ausgabeschlüsseldatenbestandteile x0
bis x7 ab. Speziell wird dazu das interne Auswahlsignal M1 den internen
Auswahlschaltungen 761 und 762, das interne Auswahlsignal
M2 den internen Auswahlschaltungen 763 und 764,
das interne Auswahlsignal M3 den internen Auswahlschaltungen 765 und 766 und
das interne Auswahlsignal M4 den internen Auswahlschaltungen 767 und 768 zugeführt.
-
Die
internen Auswahlschaltungen 761 und 762 geben
beispielsweise die Eingabeschlüsseldatenbestandteile
w[8n] und w[8n+1] als die Ausgabeschlüsseldatenbestandteile x0 bzw.
x1 ab, wenn das interne Auswahlsignal M1 aktiviert ist, während sie
die Speicherschlüsseldatenbestandteile
r[8n] und r[8n+1] als die Ausgabeschlüsseldatenbestandteile x0 bzw.
x1 abgeben, wenn das interne Auswahlsignal M1 deaktiviert ist. In gleicher
Weise geben die internen Auswahlschaltungen 763 bis 768 als
die weiteren Ausgabeschlüsseldatenbestandteile
x3 bis x7 z.B. die Eingabeschlüsseldatenbestandteile
w[8n+2] bis w[8n+7] ab, wenn die internen Auswahlsignale M2, M3
und M4 aktiviert sind, und die Speicherschlüsseldatenbestandteile r[8n+2]
bis r[8n+7], wenn die internen Auswahlsignal M2, M3 und M4 deaktiviert
sind. Die internen Auswahlschaltungen 761 bis 768 können jeweils
einen Multiplexer beinhalten.
-
Der
Ausgabeselektor 770 wählt
einen Teil der Ausgabeschlüsseldatenbestandteile
x0 bis x7 in Reaktion auf die Ausgabeauswahlsignal S1 und S2 von
der Steuereinheit 601 aus und gibt diesen ausgewählten Teil
als den ersten, den zweiten oder den dritten Chiftrierrundenschlüssel ERKEY1,
ERKEY2, ERKEY3 bzw. als den ersten, den zweiten oder den dritten
Dechiffrierrundenschlüssel
DRKEY1, DRKEY2, DRKEY3 ab. Der Ausgabeselektor 770 wird
weiter unten in Verbindung mit 5 näher erläutert.
-
4 veranschaulicht
mögliche
Realisierungen für
die Ladefreigabeschaltungen 711 und 712 und die Register 721 und 722.
Die Ladefreigabeschaltungen 713 bis 718 können identisch
oder im wesentlichen gleich aufgebaut sein wie die Ladefreigabeschaltungen 711 und 712.
Ebenso können
die Register 723 bis 728 einen identischen oder
im wesentlichen gleichen Aufbau haben wie die Register 721 und 722.
-
Im
Beispiel von 4 umfasst die Ladefreigabeschaltung 711 zwei
UND-Gatter 71 und 73 sowie ein ODER-Gatter 81,
und in gleicher Weise umfasst die Ladefreigabeschaltung 712 zwei
UND-Gatter 72 und 74 sowie ein ODER-Gatter 82.
Die UND-Gatter 71 und 72 geben logische Signale
T1 und T2 in Reaktion auf das Ladefreigabesignal LD1 und entweder
dem zugehörigen
anfänglichen
Schlüsseldatenbestandteil
w[0] bzw. w[1] oder dem zugehörigen
Berechnungsschlüsseldatenbestandteil
c[8m] bzw. c[8m+1] ab. Die UND-Gater 73 und 74 geben
logische Signale T3 und T4 in Reaktion auf das invertierte Ladefreigabesignal
LD1 B und entweder den zugehörigen
Speicherschlüsseldatenbestandteil
r[0] bzw. r[1] oder den zugehörigen
Speicherschlüsseldatenbestandteil
r[8n] bzw. r[8n+1] ab. Das ODER-Gatter 81 empfängt die
logischen Signale T1 und T3 und gibt daraus den Eingabeschlüsseldatenbestandteil
w[0] oder w[8n] ab, während
das ODER-Gatter 82 die logischen Signale T2 und T4 empfängt und
daraus den Eingabeschlüsseldatenbestandteil
w[1] oder w[8n+1] abgibt.
-
Beispielsweise
geben die UND-Gatter 71 und 72 die anfänglichen
Schlüsseldatenbestandteile
w[0] und w[1] oder alternativ die Berechnungsschlüsseldatenbestandteile
c[8m] und c[8m+1] als die logischen Signale T1 und T2 ab, wenn das
Ladefreigabesignal LD1 auf einen hohen Logikpegel ansteigt. Analog
geben die UND-Gatter 73 und 74 die logischen Signale
T3 und T4 mit einem niedrigen Logikpegel ab, wenn sich das invertierte
Ladefreigabesignal LD1B auf einem niedrigen Logikpegel befindet.
Die ODER-Gatter 81 und 82 geben dann die logischen Signale
T1 und T2 als die Eingabeschlüsseldatenbestandteile
w[8n] und w[8n+1] oder alternativ als die Eingabeschlüsseldatenbestandteile
w[0] und w[1] ab. Wenn andererseits das Ladefreigabesignal LD1 auf
niedrigem Logikpegel deaktiviert ist, geben die UND-Gatter 71 und 72 die
logischen Signale T1 und T2 mit niedrigem Logikpegel ab. Das invertierte
Ladefreigabesignal LD1 B ist dann auf hohem Logikpegel, wodurch
die UND-Gatter 73 und 74 die Speicherschlüsseldatenbestandteile
r[8n] und r[8n+1] oder die Speicherschlüsseldatenbestandteile r[0]
und r[1] als die logischen Signale T3 und T4 abgeben. Die ODER-Gatter 81 und 82 geben
dann die logischen Signale T3 und T4 als die Eingabeschlüsseldatenbestandteile
w[8n] und w[8n+1] oder alternativ w[0] und w[1] ab.
-
Zusammengefasst
geben somit die Ladefreigabeschaltungen 711 und 712 die
anfänglichen
Schlüsseldatenbestandteile
w[0] und w[1] oder alternativ die Berechnungsschlüsseldatenbestandteile
c[8m] und c[8m+1] als die Eingabeschlüsseldatenbestandteile w[8n]
und w[8n+1] ab, wenn das Ladefreigabesignal LD1 auf hohen Logikpegel
aktiviert ist, während
sie die Speicherschlüsseldatenbestandteile
r[8n] und r[8n+1] oder alternativ r[0] und r[1] als die Eingabeschlüsseldatenbestandteile
w[8n] und w[8n+1] oder alternativ w[0] und w[1] abgeben, wenn das
Ladefreigabesignal LD1 auf niedrigen Logikpegel deaktiviert ist.
-
Ausgangsanschlüsse der
Ladefreigabeschaltungen 711 und 712 sind mit je
einem Eingangsanschluss der Register 721 und 722 verbunden.
Jedes Register 721 und 722 kann aus einem D-Flip-Flop
bestehen. Die Register 721 und 722 speichern in
Reaktion auf das Taktsignal CLK die Eingabeschlüsseldatenbestandteile w[8n]
und w[8n+1] und geben sie als die Speicherschlüsseldatenbestandteile r[8n]
und r[8n+1] aus.
-
5 veranschaulicht
eine mögliche
Realisierung für
den Ausgabeselektor 770 von 3. Der Ausgabeselektor 770 umfasst
in diesem Beispiel Ausgabeauswahlschaltungen 771 bis 774,
die jeweils einen Multiplexer aufweisen können. Die Ausgabeauswahlschaltung 771 wählt ei nen
der Ausgabeschlüsseldatenbestandteile
x0, x2 und x4 in Reaktion auf die Ausgabeauswahlsignale S1 und S2
von der Steuereinheit 601 aus und gibt ihn ab. Sie gibt
beispielsweise den Ausgabeschlüsselbestandteil
x0 ab, wenn beide Ausgabeauswahlsignale S1 und S2 deaktiviert sind,
während
sie den Ausgabeschlüsseldatenbestandteil
x4 abgibt, wenn nur eines der beiden Ausgabeauswahlsignale S1 und
S2 aktiviert ist, und sie den Ausgabeschlüsseldatenbestandteil x2 abgibt,
wenn beide Ausgabeauswahlsignale S1 und S2 aktiviert sind.
-
Die
Ausgabeauswahlschaltung 772 wählt einen der Ausgabeschlüsseldatenbestandteile
x1, x3 und x5 in Reaktion auf die Ausgabeauswahlsignale S1 und S2
aus und gibt ihn ab. Beispielsweise gibt sie den Ausgabeschlüsseldatenbestandteil
x1 ab, wenn beide Ausgabeauswahlsignale S1 und S2 deaktiviert sind,
während
sie den Ausgabeschlüsseldatenbestandteil
x5 abgibt, wenn nur eines der beiden Ausgabeauswahlsignale S1 und
S2 aktiviert ist, und sie den Ausgabeschlüsseldatenbestandteil x3 abgibt,
wenn beide Ausgabeauswahlsignale S1 und S2 aktiviert sind.
-
Die
Ausgabeauswahlschaltung 773 wählt einen der Ausgabeschlüsseldatenbestandteile
x0, x2, x4 und x6 in Reaktion auf die Ausgabeauswahlsignale S1 und
S2 aus. Beispielsweise gibt die Ausgabeauswahlschaltung 773 den
Ausgabeschlüsseldatenbestandteil
x2 ab, wenn beide Ausgabeauswahlsignale S1 und S2 deaktiviert sind,
den Ausgabeschlüsseldatenbestandteil
x6 ab, wenn das Ausgabeauswahlsignal S1 aktiviert und das Ausgabeauswahlsignal
S2 deaktiviert ist, den Ausgabeschlüsseldatenbestandteil x0 ab,
wenn das Ausgabeauswahlsignal S1 deaktiviert und das Ausgabeauswahlsignal
S2 aktiviert ist, und den Ausgabeschlüsseldatenbestandteil x4 ab,
wenn beide Ausgabeauswahlsignale S1 und S2 aktiviert sind.
-
Die
Ausgabeauswahlschaltung 774 wählt einen der Ausgabeschlüsseldatenbestandteile
x1, x3, x5 und x7 in Reaktion auf die Ausgabeaus wahlsignale S1 und
S2 aus und gibt ihn ab. Beispielsweise gibt sie den Ausgabeschlüsseldatenbestandteil
x3 ab, wenn beide Ausgabeauswahlsignale S1 und S2 deaktiviert sind,
den Ausgabeschlüsseldatenbestandteil
x7 ab, wenn das Ausgabeauswahlsignal S1 aktiviert und das Ausgabeauswahlsignal
S2 deaktiviert ist, den Ausgabeschlüsseldatenbestandteil x1 ab,
wenn das Ausgabeauswahlsignal S1 deaktiviert und das Ausgabeauswahlsignal
S2 aktiviert ist, und den Ausgabeschlüsseldatenbestandteil x5 ab,
wenn beide Ausgabeauswahlsignale S1 und S2 aktiviert sind. Im Beispiel
von 5 werden den Ausgabeauswahlschaltungen 771 bis 774 nur
die Ausgabeauswahlsignale S1 und S2 zugeführt, alternativ kann ihnen
aber auch zusätzlich
das Ausgabeauswahlsignal S3 zugeführt werden, wobei die Ausgabeauswahlschaltungen 771 bis 774 dann
die oben erwähnten
Ausgabeschlüsseldatenbestandteile
in Reaktion auf die Ausgabeauswahlsignale S1 und S2 abgeben, wenn
das Ausgabeauswahlsignal S3 z.B. deaktiviert ist, während für den Fall
eines aktivierten Ausgabeauswahlsignals S3 vorgesehen sein kann,
dass die Ausgabeauswahlschaltungen 771 bis 774 keine
Ausgabeschlüsseldatenbestandteile
abgeben.
-
Nachfolgend
wird eine mögliche
Betriebsweise der erfindungsgemäßen Schlüsseldispositionsvorrichtung 700 unter
Bezugnahme auf 3 näher erläutert, wobei auf einen Prozess
Bezug genommen wird, bei dem der erste anfängliche Rundenschlüssel EIKEY1
mit den anfänglichen
Schlüsseldatenbestandteilen
w[0], w[1], w[2] und w[3] empfangen und der erste Chiffrierrundenschlüssel ERKEY1
erzeugt wird.
-
Der
erste anfängliche
Rundenschlüssel
EIKEY1 mit den anfänglichen
Schlüsseldatenbestandteilen w[0],
w[1], w[2] und w[3] wird dem Schlüsselplaner 700 zugeführt, und
die Ladefreigabesignale LD1, LD1B, LD2 und LD2B sowie die internen
Auswahlsignale M1 und M2 werden aktiviert und im aktivierten Zustand
gehalten, bis der Schlüsselplaner 700 z.B.
zehn erste Chiffrierrundenschlüssel
ERKEY1 erzeugt. Die Ladefreigabesignale LD3, LD3B, LD4 und LD4B,
die internen Auswahlsignale M3 und M4, die Ausgabeauswahlsignale S1
und S2 sowie die Berechnungssteuersignale P1 bis P4 werden in einem
deaktivierten Zustand gehalten, bis der Schlüsselplaner 700 beispielsweise
die zehn ersten Chiffrierrundenschlüssel ERKEY1 erzeugt. Die Ladefreigabeschaltungen 711 bis 714,
die Register 721 bis 724 und die Kettenberechnungseinheiten 731 bis 734 werden
betrieben, während
der Schlüsselplaner 700 beispielsweise
die zehn ersten Chiffrierrundenschlüssel ERKEY1 erzeugt.
-
Die
Ladefreigabeschaltungen 715 bis 718 geben vorzugsweise
kontinuierlich die Speicherschlüsseldatenbestandteile
r[8n+4], r[8n+5], r[8n+6] und r[8n+7] als jeweiligen Eingabeschlüsseldatenbestandteil w[8n+4],
w[8n+5], w[8n+6] und w[8n+7] ab, wenn die Ladefreigabesignale LD3,
LD3B, LD4 und LD4B deaktiviert sind. Die Ausgabesignale der Register 725 bis 728 werden
beibehalten, wobei der Stromverbrauch der Register 725 bis 728 verringert
werden kann.
-
Die
Ladefreigabeschaltungen 711 bis 714 geben in Reaktion
auf die Ladefreigabesignale LD1, LD1B, LD2 und LD2B die anfänglichen
Schlüsseldatenbestandteile
w[0], w[1], w[2] bzw. w[3] als die Eingabeschlüsseldatenbestandteile w[0],
w[1], w[2] und w[3] ab. Die Register 721 bis 724 empfangen
und speichern die Eingabeschlüsseldatenbestandteile
w[0] bis w[3] in Reaktion auf das Taktsignal CLK und geben die gespeicherten Eingabeschlüsseldatenbestandteile
w[0] bis w[3] als die Speicherschlüsseldatenbestandteile r[0]
bis r[3] ab.
-
Die
internen Auswahlschaltungen 761 bis 764 wählen die
Eingabeschlüsseldatenbestandteile
w[0] bis w[3] aus und geben sie als die Ausgabeschlüsseldatenbestandteile
x0 bis x3 in Reaktion auf die internen Auswahlsignale M1 und M2
aus. Die Ausgabeauswahlsignale S1 und S2 sind deaktiviert, und der
Ausgabeselektor 770 gibt die Ausgabeschlüsseldatenbestandteile
x0 bis x3, welche die Eingabeschlüsseldatenbestandteile w[0]
bis w[3] sein können,
als den ersten Chiffrierrunden schlüssel ERKEY1 ab. Der Prozessor 602 kann
direkt die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[3] empfangen und braucht daher den ersten Chiffrierrundenschlüssel ERKEY1
mit den Eingabeschlüsseldatenbestandteilen
w[0] bis w[3], wie vom Ausgabeselektor 770 abgegeben, nicht
empfangen. Der Prozessor 602 kann aber den ersten Chiffrierrundenschlüssel ERKEY1,
der vom Ausgabeselektor 770 abgegeben wird, in Reaktion
auf das Rundensteuersignal RCTL empfangen.
-
Die
Auswahlschaltung 742 wählt
in Reaktion auf die Berechnungssteuersignale P2 und P3 den Ausgabeschlüsseldatenbestandteil
x3 aus und gibt ihn ab. Die Wortrotationseinheit 751 rotiert
die Bits des Ausgabeschlüsseldatenbestandteils
x3 und gibt die entsprechenden Rotationsschlüsseldaten ROT ab. Die Auswahlschaltung 743 wählt die
Rotationsschlüsseldaten
ROT in Reaktion auf das Berechnungssteuersignal P4 aus und gibt
sie ab.
-
Die
Wortersetzungseinheit 752 ersetzt die Rotationsschlüsseldaten
ROT unter Verwendung der z.B. vier Ersetzungstabellen und gibt die
entsprechenden Substitutionsschlüsseldaten
SUB ab. Die unabhängige Berechnungseinheit 739 führt eine
logische Verknüpfung
der Substitutionsschlüsseldaten
SUB und der vom Rundenkonstantengenerator 753 empfangenen
Rundenkonstante RNC aus und gibt die entsprechenden Wandlungsschlüsseldaten
SUC ab.
-
Die
Kettenberechnungseinheit 731 führt eine logische Verknüpfung der
Wandlungsschlüsseldaten SUC
mit dem Speicherschlüsseldatenbestandteil
r[0] durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[4] ab. Die Kettenberechnungseinheit 732 führt eine
logische Verknüpfung
des Speicherschlüsseldatenbestandteils
r[1] mit dem Berechnungsschlüsseldatenbestandteil
c[4] von der Kettenberechnungseinheit 731 durch und gibt
den entsprechenden Berechnungsschlüsseldatenbestandteil c[5] ab.
Die Kettenberechnungseinheit 733 führt eine logische Verknüpfung des
Speicherschlüsseldatenbe standteils
r[2] mit dem Berechnungsschlüsseldatenbestandteil
c[5] von der zweiten Kettenberechnungseinheit 732 durch
und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil c[6] aus.
Die Kettenberechnungseinheit 743 führt eine logische Verknüpfung des
Speicherschlüsseldatenbestandteils
r[3] mit dem Berechnungsschlüsseldatenbestandteil
c[6] von der Kettenberechnungseinheit 733 durch und gibt
den entsprechenden Berechnungsschlüsseldatenbestandteil c[7] ab.
Die Ladefreigabeschaltungen 711 bis 714 geben
die Berechnungsschlüsseldatenbestandteile
c[4] bis c[7] als jeweiligen Eingabeschlüsseldatenbestandteil w[4] bis
w[7] in Reaktion auf die Ladefreigabesignale LD1, LD1 B, LD2 und
LD2B ab.
-
Die
internen Auswahlschaltungen 761 bis 764 wählen die
Eingabeschlüsseldatenbestandteile
w[4] bis w[7] aus und geben sie als die Ausgabeschlüsseldatenbestandteile
x0 bis x3 in Reaktion auf die internen Auswahlsignale M1 und M2
ab. Der Ausgabeselektor 770 wählt die Ausgabeschlüsseldatenbestandteile
x0 bis x3 in Reaktion auf die Ausgabesteuersignale S1 und S2 aus
und gibt sie als den ersten Chiffrierrundenschlüssel ERKEY1 ab. Der Schlüsselplaner 700 erzeugt
somit den ersten Chiffrierrundenschlüssel ERKEY1 mit den Ausgabeschlüsseldatenbestandteilen
x0 bis x3, bei denen es sich um die Eingabeschlüsseldatenbestandteile w[4]
bis w[7] handeln kann, beispielsweise während eines ersten Zyklus des
Taktsignals CLK. Der erste Chiffrierrundenschlüssel ERKEY1 mit den Eingabeschlüsseldatenbestandteilen
w[4] bis w[7] und der erste anfängliche
Rundenschlüssel
EIKEY1 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[3] werden dem Prozessor 602 z.B. während des
ersten Zyklus des Taktsignals CLK zugeführt.
-
Der
Schlüsselplaner 700 wiederholt
die vorstehenden Berechnungsschritte und gibt beispielsweise den
ersten Chiffrierrundenschlüssel
ERKEY1 aus, bis dieser mit den Eingabeschlüsseldatenbestandteilen w[40]
bis w[43] erzeugt wird. Der erste Chiffrierrundenschlüssel ERKEY1
mit den Eingabeschlüsseldatenbestandteilen
w[40] bis w[43] wird dann vom Schlüsselplaner 700 erzeugt,
und die Register 721 bis 724 speichern den jeweiligen
Eingabeschlüsseldatenbestandteil
w[40] bis w[43]. Die gespeicherten Eingabeschlüsseldatenbestandteile w[40]
bis w[43] werden dann beispielsweise eingesetzt, wenn der erste
Dechiffrierrundenschlüssel
DRKEY1 erzeugt wird und im Speicherzustand gehalten wird. Die nachstehende
Tabelle 1 veranschaulicht die Erzeugung des ersten Chiffrierrundenschlüssels ERKEY1
durch den Schlüsselplaner 700.
-
-
Wie
aus Tabelle 1 ersichtlich, wird während eines ersten Zyklus des
Taktsignals CLK der erste Chiffrierrundenschlüssel ERKEY1 mit den Eingabeschlüsseldatenbestandteilen
w[4] bis w[7] und den anfänglichen Schlüsseldatenbestandteilen
w[0] bis w[3] des ersten anfänglichen
Rundenschlüssels
EIKEY1 dem Prozessor 602 zugeführt.
-
6 veranschaulicht
im Zeitsteuerungsdiagramm die zeitliche Abstimmung der Ausgabe der
Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+7] aus den Registern 721 bis 728,
wenn der Schlüsselplaner 700 die
ersten zehn Chiffrierrundenschlüssel
erzeugt. Wie aus 6 ersichtlich, werden die von
den Registern 721 bis 724 ausgegebenen Spei cherschlüsseldatenbestandteile
r[8n] bis r[8n+3] bei jedem Zyklus des Taktsignals CLK getriggert.
Die Speicherschlüsseldatenbestandteile
r[8n+4] bis r[8n+7], die von den Registern 725 bis 728 ausgegeben
werden, werden beibehalten, während
der Schlüsselplaner 700 beispielsweise
alle oder im Wesentlichen alle zehn ersten Chiffrierrundenschlüssel ERKEY1
erzeugt, so dass der Stromverbrauch der Register 725 bis 728 gering
gehalten werden kann.
-
Der
erste Dechiffrierrundenschlüssel
DRKEY1 wird z.B. erzeugt, wenn der Schlüsselplaner 700 den ersten
anfänglichen
Rundenschlüssel
EIKEY1 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[3] empfängt.
Die Ladefreigabesignale LD1, LD1 B, LD2 und LD2B werden aktiviert,
und die Ladefreigabesignale LD3, LD3B, LD4 und LD4B werden deaktiviert.
Die Ladefreigabesignale LD1, LD1 B, LD2 und LD2B werden im aktivierten
Zustand gehalten, und die Ladefreigabesignale LD3, LD3B, LD4 und
LD4B werden im deaktivierten Zustand gehalten, bis der Schlüsselplaner 700 den
ersten Dechiffrierrundenschlüssel
DRKEY1 erzeugt.
-
Die
Ladefreigabeschaltungen 711 bis 714 geben in Reaktion
auf die Ladefreigabesignale LD1, LD1B, LD2 und LD2B die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[4] als Eingabeschlüsseldatenbestandteile
w[0] bis w[3] aus. Die Register 721 bis 724 empfangen
und speichern die Eingabeschlüsseldatenbestandteile
w[0] bis w[3] in Reaktion auf das Taktsignal CLK und geben die gespeicherten
Eingabeschlüsseldatenbestandteile
w[0] bis w[3] als die Speicherschlüsseldatenbestandteile r[0]
bis r[3] aus.
-
Der
Schlüsselplaner 700 wiederholt
die Erzeugung des ersten Chiffrierrundenschlüssels ERKEY1 z.B. bis von den
Kettenberechnungseinheiten 731 bis 734 die Berechnungsschlüsseldatenbestandteile
c[40] bis c[43] ausgegeben werden. Der Schlüsselplaner 700 kann
diesen Erzeugungsvorgang z.B. in Reaktion auf das Rundensteuersignal
RCTL wie derholen, während
der Prozessor 602 den vom Schlüsselplaner 700 abgegebenen
ersten Chiffrierrundenschlüssel
ERKEY1 nicht empfangen braucht. Der Schlüsselplaner 700 wiederholt die
obigen Vorgänge
beispielsweise, bis die Kettenberechnungseinheiten 731 bis 734 die
Berechnungsschlüsseldatenbestandteile
c[40] bis c[43] abgeben, während
der Ausgabeselektor 770 den ersten Chiffrierrundenschlüssel ERKEY1
nicht abgibt.
-
Die
Kettenberechnungseinheiten 731 bis 734 geben die
Berechnungsschlüsseldateneinheiten
c[40] bis c[43) z.B. in Reaktion auf die Ladefreigabesignale LD1,
LD1 B, LD2 und LD2B ab, und die Ladefreigabeschaltungen 711 bis 714 geben
die Berechnungsschlüsseldatenbestandteile
c[40] bis c[43] als die Eingabeschlüsseldatenbestandteile w[40]
bis w[43] ab. Die Register 721 bis 724 empfangen
und speichern die Eingabeschlüsseldatenbestandteile
w[40] bis w[43] z.B. in Reaktion auf das Taktsignal CLK und geben
die gespeicherten Eingabeschlüsseldatenbestandteile
w[40] bis w[43] als die Speicherschlüsseldatenbestandteile r[40] bis
r[43] ab. Die internen Auswahlsignale M1 und M2 können deaktiviert
sein, und alle oder im Wesentlichen alle Berechnungssteuersignale
P1 bis P4 sowie die Ausgabeauswahlsignale S1 und S2 können deaktiviert sein
und im deaktivierten Zustand gehalten werden, bis der Schlüsselplaner 700 den
letzten ersten Dechiftrierrundenschlüssel DRKEY1 erzeugt.
-
Die
internen Auswahlschaltungen 761 bis 764 geben
die Speicherschlüsseldatenbestandteile
r[40] bis r[43] z.B. in Reaktion auf die internen Auswahlsignale
M1 und M2 als die Ausgabeschlüsseldatenbestandteile x0
bis x3 ab. Der Ausgabeselektor 770 wählt z.B. die Ausgabeschlüsseldatenbestandteile
x0 bis x3, bei denen es sich um die Speicherschlüsseldatenbestandteile r[40]
bis r[43] handeln kann, in Reaktion auf die Ausgabeauswahlsignale
S1 und S2 aus und gibt sie ab.
-
Die
Auswahlschaltung 742 gibt z.B. den Ausgabeschlüsseldatenbestandteil
x3, bei dem es sich um den Speicherschlüsseldatenbestandteil r[43]
handeln kann, in Reaktion auf die Berechnungssteuersignale P2 und
P3 an die Wortrotationseinheit 751 aus. Die Wortrotationseinheit 751 rotiert
die Bits des Speicherschlüsseldatenbestandteils
r[43], um die Rotationsschlüsseldaten
ROT abzugeben. Die Auswahlschaltung 743 wählt die
Rotationsschlüsseldaten
ROT z.B. in Reaktion auf das Berechnungssteuersignal P4 aus und
gibt sie an die Wortersetzungseinheit 752 ab. Die Wortersetzungseinheit 752 substituiert
die Rotationsschlüsseldaten ROT
unter Verwendung der Ersetzungstabelle und gibt die entsprechenden
Substitutionsschlüsseldaten
SUB ab. Die unabhängige
Berechnungseinheit 739 führt eine logische Verknüpfung der
Substitutionsschlüsseldaten
SUB mit der Rundenkonstanten RNC durch und gibt die entsprechenden
Wandlungsschlüsseldaten
SUC ab.
-
Die
Kettenberechnungseinheit 731 führt eine logische Verknüpfung des
Speicherschlüsseldatenbestandteils
r[40] mit den Wandlungsschlüsseldaten
SUC durch und gibt die entsprechenden Berechnungsschlüsseldaten
c[36] ab. Die Kettenberechnungseinheiten 732, 733, 734 führen je
eine logische Verknüpfung des
Speicherschlüsseldatenbestandteils
r[41], r[42] bzw. r[43] mit dem Berechnungsschlüsseldatenbestandteil c[36],
c[37] bzw. c[38] durch und geben den entsprechenden Berechnungsschlüsseldatenbestandteil
c[37], c[38] bzw. c[39] ab. Die Ladefreigabeschaltungen 711 bis 714 geben
z.B. in Reaktion auf die Ladefreigabesignale LD1, LD1B, LD2 und
LD2B die Berechnungsschlüsseldatenbestandteile
c[36] bis c[39] als den jeweiligen Eingabeschlüsseldatenbestandteil w[36],
w[37], w[38] bzw. w[39] ab.
-
Die
internen Auswahlsignale M1 und M2 werden aktiviert und im aktivierten
Zustand gehalten, bis der Schlüsselplaner 700 den
letzten ersten Dechiffrierrundenschlüssel DRKEY1 erzeugt. Die internen
Auswahlschaltungen 761 bis 764 geben die Eingabeschlüsseldatenbestandteile
w[36] bis w[39] als den jeweiligen Ausgabeschlüsseldatenbestandteil x0, x1,
x2 bzw. x3 in Reaktion auf die internen Auswahlsignale M1 und M2
ab. Der Ausgabeselektor 770 wählt in Reaktion auf die Ausgabeauswahlsignale
S1 und S2 die Ausgabeschlüsseldatenbestandteile
x0 bis x3 aus und gibt sie als den ersten Dechiffrierrundenschlüssel DRKEY1
ab. Der Schlüsselplaner 700 erzeugt
so den ersten Dechiffrierrundenschlüssel DRKEY1 mit den Ausgabeschlüsseldatenbestandteilen
x0 bis x3, d.h. den Eingabeschlüsseldatenbestandteilen
w[36] bis w[39], während
eines elften Zyklus des Taktsignals CLK. Während des elften Zyklus des
Taktsignals CLK werden somit der erste Dechiffrierrundenschlüssel DRKEY1,
der aus den Eingabeschlüsseldatenbestandteilen
w[36] bis w[39] bestehen kann, und die Speicherschlüsseldatenbestandteile
r[40] bis r[43] dem Prozessor 602 zugeführt.
-
Die
Register 721 bis 724 empfangen und speichern die
Eingabeschlüsseldatenbestandteile
w[36] bis w[39] in Reaktion auf das Taktsignal CLK und geben die
gespeicherten Eingabeschlüsseldatenbestandteile w[36]
bis w[39] als die Speicherschlüsseldatenbestandteile
r[36] bis r[39] ab. Der Schlüsselplaner 700 wiederholt
die Berechnungsschritte und gibt den ersten Dechiffrierrundenschlüssel DRKEY1
ab, bis der erste Dechiffrierrundenschlüssel DRKEY1 mit den Eingabeschlüsseldatenbestandteilen
w[0] bis w[3] erzeugt wird.
-
Nachfolgend
wird ein Prozess zur Erzeugung des ersten Dechiffrierrundenschlüssels DRKEY1
beschrieben, wenn der Schlüsselplaner 700 den
ersten anfänglichen
Rundenschlüssel
EIKEY1 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[3] nicht empfängt.
-
Die
Register 721 bis 724 geben in diesem Fall die
gespeicherten Eingabeschlüsseldatenbestandteile w[40]
bis w[43] als die Speicherschlüsseldatenbestandteile
r[40] bis r[43] in Reaktion auf das Taktsignal CLK ab. Die internen
Auswahlsignale M1 und M2 sind deaktiviert, und die Berechnungssteuersignale
P1 bis P4 sowie die Ausgabeauswahlsignale S1 und S2 sind deaktiviert
und werden in einem deaktivierten Zustand gehalten, bis der Schlüsselplaner 700 den
letzten ersten Dechiffrierrundenschlüssel DRKEY1 erzeugt.
-
Die
internen Auswahlschaltungen 761 bis 764 geben
die Speicherschlüsseldatenbestandteile
r[40] bis r[43] als die Ausgabeschlüsseldatenbestandteile x0 bis
x3 in Reaktion auf die internen Auswahlsignale M1 und M2 ab. Der
Ausgabeselektor 770 wählt
die Ausgabeschlüsseldatenbestandteile
x0 bis x3, bei denen es sich um die Speicherschlüsseldatenbestandteile r[40]
bis r[43] handeln kann, in Reaktion auf die Ausgabeauswahlsignale
S1 und S2 aus und gibt sie ab. Die anschließenden Betriebsvorgänge des
Schlüsselplaners 700 sind gleich
oder im Wesentlichen gleich wie die Vorgänge bei der Erzeugung des ersten
Dechiftrierrundenschlüssels
DRKEY1 im Fall, dass der Schlüsselplaner 700 den
ersten anfänglichen
Rundenschlüssel
EIKEY1 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[3] empfängt.
-
-
Der
Schlüsselplaner 700 erzeugt
den ersten Dechiffrierrundenschlüssel
DRKEY1 und die Register 721 bis 724 speichern
die aktualisierten Eingabeschlüsseldatenbestandteile
w[4n] bis w[4n+3] bei jedem Zyklus des Taktsignals CLK. Die vorstehende
Tabelle 2 veranschaulicht die Erzeu gung des ersten Dechiffrierrundenschlüssels DRKEY1
durch den Schlüsselplaner 700 für jeden
Taktzyklus.
-
Die
zeitliche Steuerung der Ausgabe der Speicherschlüsseldatenbestandteile r[8n]
bis r[n+7] aus den Registern 721 bis 728 bei Erzeugung
des ersten Dechiffrierrundenschlüssels
DRKEY1 durch den Schlüsselplaner 700 entspricht
im Wesentlichen der in 6 gezeigten Zeitsteuerung. Wie
aus Tabelle 2 und 6 ersichtlich, wird die Ausgabe
der Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+3] aus den Registern 721 bis 724 bei
jedem Zyklus des Taktsignals CLK getriggert und die Speicherschlüsseldatenbestandteile
r[8n+4] bis r[8n+7], die von den Registern 725 bis 728 abgegeben
werden, werden beibehalten, während
der Schlüsselplaner 700 den
ersten Dechiffrierungsschlüssel
DRKEY1 erzeugt, so dass der Stromverbrauch der Register 725 bis 728 niedrig
gehalten werden kann.
-
Der
Schlüsselplaner 700 empfängt den
zweiten anfänglichen
Rundenschlüssel
EIKEY2 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[5], woraus der zweite Chiffrierrundenschlüssel ERKEY2
erzeugt werden kann. Der zweite anfängliche Rundenschlüssel EIKEY2
mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[5] wird dem Schlüsselplaner 700 zugeführt, und
die Ladefreigabesignale LD1, LD1 B, LD2, LD2B, LD3 und LD3B sowie
die internen Auswahlsignale M1, M2 und M3 werden aktiviert. Das
Berechnungssteuersignal P2 wird aktiviert und im aktivierten Zustand
gehalten, bis der Schlüsselplaner
den zweiten Chiffrierrundenschlüssel
ERKEY2 erzeugt. Die Berechnungssteuersignale P1, P3 und P4 und die
Ladefreigabesignale LD4 und LD4B werden deaktiviert und im deaktivierten
Zustand gehalten, bis der Schlüsselplaner 700 den
zweiten Chiffrierrundenschlüssel
ERKEY2 erzeugt. Die Ladefreigabeschaltungen 711 bis 716,
die Register 721 bis 726 und die Kettenberechnungseinheiten 731 bis 736 werden
betrieben, während
der Schlüsselplaner 700 z.B.
zwölf zweite
Chiffrierrundenschlüssel
ERKEY2 erzeugt.
-
Die
Ladefreigabeschaltungen 717 und 718 geben vorzugsweise
kontinuierlich die Speicherschlüsseldatenbestandteile
r[8n+6] und r[8n+7] als die Eingabeschlüsseldatenbestandteile w[8n+6]
bzw. w[8n+7] ab, da die Ladefreigabesignale LD4 und LD4B deaktiviert
sind. Die Ausgabesignale der Register 727 und 728 werden beibehalten,
so dass der Stromverbrauch der Register 727 und 728 niedrig
gehalten werden kann.
-
Die
Ladefreigabeschaltungen 711 bis 716 geben die
anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[5] als die Eingabeschlüsseldatenbestandteile w[0]
bis w[5] in Reaktion auf die Ladefreigabesignale LD1, LD1B, LD2,
LD2B, LD3 und LD3B ab. Die Register 721 bis 726 empfangen
und speichern die Eingabeschlüsseldatenbestandteile
w[0] bis w[5] in Reaktion auf das Taktsignal CLK und geben die gespeicherten
Eingabeschlüsseldatenbestandteile
w[0] bis w[5] als jeweilige Speicherschlüsseldatenbestandteile r[0]
bis r[5] ab.
-
Die
internen Auswahlschaltungen 761 bis 766 wählen in
Reaktion auf die internen Auswahlsignale M1, M2 und M3 die Eingabeschlüsseldatenbestandteile
w[0] bis w[5] aus und geben sie als jeweilige Ausgabeschlüsseldatenbestandteile
x0 bis x5 ab.
-
Die
Auswahlschaltung 742 wählt
den Ausgabeschlüsseldatenbestandteil
x5, bei dem es sich um den Eingabeschlüsseldatenbestandteil w[5] handeln
kann, in Reaktion auf die Berechnungssteuersignale P2 und P3 aus
und gibt ihn an die Wortrotationseinheit 751 ab. Die Wortrotationseinheit 751 rotiert
die Bits des Eingabeschlüsselbestandteils
w[5] und gibt die entsprechenden Rotationsschlüsseldaten ROT ab. Die Auswahlschaltung 743 wählt die
Rotationsschlüsseldaten
ROT in Reaktion auf das Berechnungssteuersignal P4 aus und gibt
sie an die Wortersetzungseinheit 752 ab. Die Wortersetzungseinheit 752 substituiert
die Rotationsschlüsseldaten
ROT und gibt die entsprechenden Substitutionsschlüsseldaten
SUB ab. Die unabhängige
Berechnungseinheit 739 führt eine logische Verknüpfung der
Substitutionsschlüsseldaten
SUB mit der Rundenkonstanten RNC durch und gibt die entsprechenden
Wandlungsschlüsseldaten
SUC ab.
-
Die
Kettenberechnungseinheit 731 führt eine logische Verknüpfung der
Wandlungsschlüsseldaten SUC
mit dem Speicherschlüsseldatenbestandteil
r[0] durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[6] ab. Die Kettenberechnungseinheit 732 führt eine
logische Verknüpfung
des Speicherschlüsseldatenbestandteils
r[1] mit dem Berechnungsschlüsseldatenbestandteil
c[6] von der Kettenberechnungseinheit 731 durch und gibt
den entsprechenden Berechnungsschlüsseldatenbestandteil c[7] ab.
Die Kettenberechnungseinheit 733 führt eine logische Verknüpfung des
Speicherschlüsseldatenbestandteils
r[2] mit dem Berechnungsschlüsseldatenbestandteil
c[7] von der Kettenberechnungseinheit 732 durch und gibt
den entsprechenden Berechnungsschlüsseldatenbestandteil c[8] ab.
Die Kettenberechnungseinheit 734 führt eine logische Verknüpfung des
Speicherschlüsseldatenbestandteils
r[3] mit dem Berechnungsschlüsseldatenbestandteil
c[8] von der Kettenberechnungseinheit 733 durch und gibt
den entsprechenden Berechnungsschlüsseldatenbestandteil c[9] ab.
Die Auswahlschaltung 741 gibt den Berechnungsschlüsseldatenbestandteil
c[9] in Reaktion auf das Berechnungssteuersignal P1 an die Kettenberechnungseinheit 735 ab.
Die Kettenberechnungseinheiten 735 und 736 führen Verknüpfungen
der Speicherschlüsseldatenbestandteile
r[4] und r[5] mit den Berechnungsschlüsseldatenbestandteilen c[9]
bzw. c[10] durch und geben jeweils den entsprechenden Berechnungsschlüsseldatenbestandteil
c[10] und c[11] ab.
-
Die
Ladefreigabeschaltungen 711 bis 716 geben durch
die Freigabe der Ladefreigabesignale LD1, LD1B, LD2, LD2B, LD3 und
LD3B die Berechnungsschlüsseldatenbestandteile
c[6] bis c[11] als die Eingabeschlüsseldatenbestandteile w[6]
bis w[11] ab.
-
Das
interne Auswahlsignal M1 wird in einem aktiven Zustand gehalten,
und die internen Auswahlsignale M2 und M3 werden deaktiviert. Die
internen Auswahlschaltungen 761 und 762 geben
in Reaktion auf das interne Auswahlsignal M1 die Eingabeschlüsseldatenbestandteile
w[6) und w[7] als die Ausgabeschlüsseldatenbestandteile x0 bzw.
x1 ab. Die internen Auswahlschaltungen 763 bis 766 geben
die Speicherschlüsseldatenbestandteile
r[2] bis r[5] als die jeweiligen Ausgabeschlüsseldatenbestandteile x2 bis
x5 in Reaktion auf die internen Auswahlsignale M2 und M3 ab.
-
Das
Ausgabeauswahlsignal S1 wird aktiviert, und das Ausgabeauswahlsignal
S2 wird deaktiviert. Der Ausgabeselektor 770 wählt in Reaktion
auf die Ausgabeauswahlsignale S1 und S2 aus den Ausgabeschlüsseldatenbestandteilen
x0 bis x7 die Ausgabeschlüsseldatenbestandteile
x4, x5, x0 und x1 aus und gibt diese als den zweiten Chiffrierrundenschlüssel ERKEY2
aus. Der Schlüsselplaner 700 erzeugt
somit den zweiten Chiffrierrundenschlüssel ERKEY2 mit den Ausgabeschlüsseldatenbestandteilen
x0 und x1, bei denen es sich um die Eingabeschlüsseldatenbestandteile w[6]
und w[7] handeln kann, und den Ausgabeschlüsseldatenbestandteilen x4 und
x5, bei denen es sich um die Speicherschlüsseldatenbestandteile r[4]
und r[5] handeln kann, während
des ersten Zyklus des Taktsignals CLK. Außerdem werden während des
ersten Zyklus des Taktsignals CLK der zweite Chiffrierrundenschlüssel ERKEY2
und die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[5] des zweiten anfänglichen
Rundenschlüssels
EIKEY2 dem Prozessor 602 zugeführt. Die Speicherschlüsseldatenbestandteile
r[4] und r[5] des zweiten Chiffrierrundenschlüssels ERKEY2 können identisch
oder im Wesentlichen gleich den anfänglichen Schlüsseldatenbestandteilen
w[4] und w[5] sein, wobei der Prozessor 602 die Speicherschlüsseldatenbestandteile
r[4] und r[5) nicht empfangen braucht. Der Prozessor 602 empfängt den
zweiten Chiffrierrundenschlüssel
ERKEY2 mit den Eingabeschlüsseldatenbestandteilen
w[6] und w[7] und den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[5].
-
Die
Register 721 bis 726 speichern den jeweiligen
Eingabeschlüsseldatenbestandteil
w[6] bis w[11] in Reaktion auf das Taktsignal CLK und geben ihn
als den jeweiligen Speicherschlüsseldatenbestandteil
r[6] bis r[11] ab.
-
Die
Ladefreigabesignale LD1, LD1B. LD2, LD2B. LD3 und LD3B und die internen
Auswahlsignale M1, M2 und M3 werden deaktiviert, und die Ausgabeauswahlsignale
S1 und S2 werden aktiviert. Die Ladefreigabeschaltungen 711 bis 716 geben
vorzugsweise kontinuierlich die Speicherschlüsseldatenbestandteile r[6]
bis r[11] als die Eingabeschlüsseldatenbestandteile
w[6] bis w[11] in Reaktion auf die Ladefreigabesignale LD1, LD1
B, LD2, LD2B, LD3 und LD3B ab. Die internen Auswahlschaltungen 761 bis 766 geben
die Speicherschlüsseldatenbestandteile
r[6] bis r[11] als die jeweiligen Ausgabeschlüsseldatenbestandteile x0 bis
x5 in Reaktion auf die internen Auswahlsignale M1, M2 und M3 ab.
-
Der
Ausgabeselektor 770 wählt
in Reaktion auf die Ausgabeauswahlsignale S1 und S2 die Ausgabeschlüsseldatenbestandteile
x2 bis x5 aus und gibt sie als den zweiten Chiffrierrundenschlüssel ERKEY2
ab. Der Schlüsselplaner 700 erzeugt
so den zweiten Chiffrierrundenschlüssel ERKEY2 mit den Ausgabeschlüsseldatenbestandteilen
x2 bis x5, d.h. den Speicherschlüsseldatenbestandteilen
r[8] bis r[11], während
des zweiten Zyklus des Taktsignals.
-
Die
Ladefreigabesignale LD1, LD1B, LD2, LD2B, LD3 und LD3B werden aktiviert.
Die Ladefreigabeschaltungen 711 bis 716 geben
die Berechnungsschlüsseldatenbestandteile
c[12] bis c[17], die von den Kettenberechnungseinheiten 731 bis 736 abgegeben
werden, als die Eingabeschlüsseldatenbestandteile
w[12] bis w[17] in Reaktion auf die Ladefreigabesignale LD1, LD1B,
LD2, LD2B, LD3 und LD3B ab.
-
Der
Schlüsselplaner 700 wiederholt
die obigen Berechnungsschritte und das Ausgeben des zweiten Chiffrierrundenschlüssels ERKEY2,
bis von den Kettenberechnungseinheiten 731 bis 736 die
Berechnungsschlüsseldatenbestandteile
c[46] bis c[51] abgegeben werden. Die Register 721 bis 726 speichern
dann die Eingabeschlüsseldatenbestandteile
w[45] bis w[51], die sie von den Ladefreigabeschaltungen 711 bis 716 empfangen,
und behalten den Speicherungszustand bei. Die Eingabeschlüsseldatenbestandteile
w[46] bis w[51] werden beispielsweise benutzt, wenn der Schlüsselplaner 700 den
zweiten Dechiffrierrundenschlüssel DRKEY2
erzeugt.
-
Somit
erzeugt der Schlüsselplaner 700 den
zweiten Chiffrierrundenschlüssel
ERKEY2, und die Register 721 bis 726 speichern
nach je zwei Zyklen des Taktsignals CLK die aktualisierten Eingabeschlüsseldatenbestandteile
w[6n] bis w[6n+5]. Die Erzeugung des zweiten Chiffrierrundenschlüssels ERKEY2
durch den Schlüsselplaner 700 ist
in der nachfolgenden Tabelle 3 für
die einzelnen Taktzyklen veranschaulicht.
-
-
7A veranschaulicht
die zeitliche Abstimmung der Ausgabe der Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+7] aus den Registern 721 bis 728, wenn der
Schlüsselplaner 700 den
zweiten Chiffrierrundenschlüssel
ERKEY2 erzeugt. Wie aus Tabelle 3 und 7A ersichtlich,
werden die aus den Registern 721 bis 726 ausgegebenen
Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+5] bei jedem zweiten Zyklus des Taktsignals CLK getriggert.
Die aus den Registern 727 und 728 ausgegebenen
Speicherschlüsseldatenbestandteile
r[8n+6] und r[8n+7] werden beibehalten, während der Schlüsselplaner 700 den
zweiten Chiffrierrundenschlüssel
ERKEY2 erzeugt. Dies hält
den Stromverbrauch der Register 727 und 728 gering.
-
Der
zweite anfängliche
Rundenschlüssel
EIKEY2 mit den anfänglichen
Schlüsseldatenbestandteilen w[0]
bis w[5] wird dem Schlüsselplaner 700 zugeführt, und
die Ladefreigabesignale LD1, Ld1B, LD2, LD2B, LD3 und LD3B werden
aktiviert. Das Berechnungssteuersignal P2 wird aktiviert und im
aktivierten Zustand gehalten, bis der Schlüsselplaner 700 den
zweiten Dechiffrierrundenschlüssel
DRKEY2 erzeugt. Die Berechnungssteuersignale P1, P3 und P4 sowie
die Ladefreigabesignale LD4 und LD4B werden deaktiviert und im deaktivierten
Zustand gehalten, bis der Schlüsselplaner 700 den
zweiten Dechiffrierrundenschlüssel
DRKEY2 erzeugt. Die Ladefreigabeschaltungen 711 bis 716,
die Register 721 bis 726 und die Kettenberechnungseinheiten 731 bis 736 werden
betrieben, während
der Schlüsselplaner 700 z.B.
zwölf zweite
Dechiffrierungsschlüssel
DRKEY2 erzeugt.
-
Die
Ladefreigabeschaltungen 711 bis 716 geben die
anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[5] als die Eingabeschlüsseldatenbestandteile w[0]
bis w[5] in Reaktion auf die Ladefreigabesignale LD1, LD1B, LD2,
LD2B, LD3 und LD3B ab. Die Register 721 bis 726 speichern
die Eingabeschlüsseldatenbestandteile
w[0] bis w[5] in Reaktion auf das Taktsignal CLK und geben die gespeicherten
Eingabeschlüsseldatenbestandteile
w[0] bis w[5] als die Speicherschlüsseldatenbestandteile r[0]
bis r[5] ab. Der Schlüsselplaner 700 wiederholt
diese Berechnungsvorgänge
und erzeugt den zweiten Chiffrierrundenschlüs sel ERKEY2, bis die Berechnungsschlüsseldatenbestandteile
c[46] bis c[51] von den Kettenberechnungseinheiten 731 bis 736 abgegeben
werden.
-
Der
Prozessor braucht den vom Schlüsselplaner 700 in
Reaktion auf das Rundensteuersignal RCTL abgegebenen zweiten Chiffrierrundenschlüssel ERKEY2
nicht empfangen, während
die Kettenberechnungseinheiten 731 bis 736 die
Berechnungsschlüsseldatenbestandteile
c[46] bis c[51] abgeben. Der Ausgabeselektor 770 braucht
den zweiten Chiffrierrundenschlüssel
ERKEY2 nicht ausgeben, während
der Schlüsselplaner 700 den
Berechnungsvorgang zur Erzeugung des zweiten Dechiffrierrundenschlüssels DRKEY2
wiederholt, bis die Berechnungsschlüsseldatenbestandteile c[46]
bis c[51] von den Kettenberechnungseinheiten 731 bis 736 abgegeben
werden.
-
Die
Berechnungsschlüsseldatenbestandteile
c[46] bis c[51] werden von den Kettenberechnungseinheiten 731 bis 736 abgegeben,
und die Ladefreigabesignale LD1, LD1B, LD2, LD2B, LD3 und LD3B werden aktiviert.
Die Ladefreigabeschaltungen 711 bis 716 geben
in Reaktion auf die Ladefreigabesignale LD1, LD1B, LD2, LD2B, LD3
und LD3B die Berechnungsschlüsseldatenbestandteile
c[46] bis c[51] als die Eingabeschlüsseldatenbestandteile w[46]
bis w[51] ab. Die Register 721 bis 726 empfangen
und speichern die Eingabeschlüsseldatenbestandteile
w[46] bis w[51] in Reaktion auf das Taktsignal CLK und geben die
gespeicherten Eingabeschlüsseldatenbestandteile
w[46] bis w[51 ] als die Speicherschlüsseldatenbestandteile r[46]
bis r[51] ab.
-
Die
internen Auswahlsignale M1, M2 und M3 werden deaktiviert, und die
Ausgabeauswahlsignale S1, S2 und S3 werden aktiviert. Die internen
Auswahlschaltungen 761 bis 766 geben in Rektion
auf die internen Auswahlsignale M1, M2 und M3 die Speicherschlüsseldatenbestandteile
r[46] bis r[51] als die Ausgabeschlüsseldatenbestandteile x0 bis
x5 ab. Der Ausgabeselektor 770 wählt in Reaktion auf die Ausgabeauswahlsig nale S1
und S2 die Ausgabeschlüsseldatenbestandteile
x2 bis x5, d.h. die Speicherschlüsseldatenbestandteile r[48]
bis r[51], aus und gibt sie ab. Die Auswahlschaltung 742 wählt in Reaktion
auf die Berechnungssteuersignale P2 und P3 den Ausgabeschlüsseldatenbestandteil
x5, d.h. den Speicherschlüsseldatenbestandteil
r[51], aus und gibt ihn an die Wortrotationseinheit 751 ab.
Die Wortrotationseinheit 751 rotiert die Bits des Speicherschlüsseldatenbestandteils
r[51] und gibt die entsprechenden Rotationsschlüsseldaten ROT ab. Die Auswahlschaltung 743 wählt die
Rotationsschlüsseldaten
ROT in Reaktion auf das Berechnungssteuersignal P4 aus und gibt
sie an die Wortsubstitutionseinheit 752 ab. Die Wortsubstitutionseinheit 752 substituiert
die Rotationsschlüsseldaten
ROT und gibt die entsprechenden Substitutionsschlüsseldaten
SUB ab. Die unabhängige
Berechnungseinheit 739 führt eine logische Verknüpfung der
Substitutionsschlüsseldaten
SUB mit der Rundenkonstanten RNC durch und gibt die entsprechenden
Wandlungsschlüsseldaten
SUC ab.
-
Die
Kettenberechnungseinheit 731 führt eine logische Verknüpfung der
Wandlungsschlüsseldaten SUC
mit dem Speicherschlüsseldatenbestandteil
r[46] durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[40] ab. Die Kettenberechnungseinheiten 732, 733 und 734 führen jeweils
eine logische Verknüpfung
des Speicherschlüsseldatenbestandteils
r[47], r[48] bzw. r[49] mit dem Berechnungsschlüsseldatenbestandteil c[40],
c[41] bzw. c[42] durch geben den entsprechenden Berechnungsschlüsseldatenbestandteil
c[41], c[42] bzw. c[43] ab. Die Auswahlschaltung 741 gibt
den Berechnungsschlüsseldatenbestandteil
c[43] in Reaktion auf das Berechnungssteuersignal P1 an die Kettenberechnungseinheit 735 ab.
Die Kettenberechnungseinheit 735 führt eine logische Verknüpfung des
Berechnungsschlüsseldatenbestandteils c[43]
mit dem Speicherschlüsseldatenbestandteil
r[50] durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[44] ab. Die Kettenberechnungseinheit 736 führt eine
logische Verknüpfung
des Berechnungsschlüsseldatenbestandteils
c[44] mit dem Spei cherschlüsseldatenbestandteil
r[51] durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[45] ab.
-
Die
Ladefreigabeschaltungen 711 bis 716 geben die
Berechnungsschlüsseldatenbestandteile
c[40] bis c[45] als die Eingabeschlüsseldatenbestandteile w[40]
bis w[45] ab, da die Ladefreigabesignale LD1, LD1 B, LD2, LD2B,
LD3 und LD3B aktiviert sind.
-
Das
interne Auswahlsignal M3 wird aktiviert, und die internen Auswahlsignale
M1 und M2 werden deaktiviert. Das Ausgabeauswahlsignal S1 wird deaktiviert,
und das Ausgabeauswahlsignal S2 wird aktiviert. Die internen Auswahlschaltungen 765 und 766 geben
in Reaktion auf das interne Auswahlsignal M3 die Eingabeschlüsseldatenbestandteile
w[44] und w[45] als die jeweiligen Ausgabeschlüsseldatenbestandteile x4 bzw.
x5 ab. Die internen Auswahlschaltungen 761 bis 764 geben
die Speicherschlüsseldatenbestandteile
r[46] bis r[49] in Reaktion auf die internen Auswahlsignale M1 und
M2 als die jeweiligen Ausgabeschlüsseldatenbestandteile x0, x1,
x2 bzw. x3 ab. Der Ausgabeselektor 770 wählt in Reaktion
auf die Ausgabeauswahlsignale S1 und S2 die Ausgabeschlüsseldatenbestandteile
x4, x5, x0 und x1 aus und gibt sie als den zweiten Dechiffrierrundenschlüssel DRKEY2
aus. Der Schlüsselplaner 700 erzeugt
somit den zweiten Dechiffrierrundenschlüssel DRKEY2 mit den Ausgabeschlüsseldatenbestandteilen
x4, x5, x0 und x1, d.h. den Speicherschlüsseldatenbestandteile r[46]
und r[47] und den Eingabeschlüsseldatenbestandteilen
w[44] und w[45], während eines
dreizehnten Zyklus des Taktsignals CLK. Außerdem werden während des
dreizehnten Zyklus des Taktsignals CLK der zweite Dechiffrierrundenschlüssel DRKEY2
mit den Speicherschlüsseldatenbestandteilen r[46]
und r[47] und den Eingabeschlüsseldatenbestandteilen
w[44] und w[45] ebenso wie die Speicherschlüsseldatenbestandteile r[48]
bis r[51] dem Prozessor 602 zugeführt.
-
Die
Register 721 bis 726 speichern die Eingabeschlüsseldatenbestandteile
w[40] bis w[45] in Reaktion auf das Taktsignal und geben die gespeicherten
Eingabeschlüsseldatenbestandteile
w[40] bis w[45] als die jeweiligen Speicherschlüsseldatenbestandteile r[40]
bis r[45] ab.
-
Die
internen Auswahlsignale M1, M2 und M3 werden dann ebenso wie die
Ladefreigabesignale LD1, LD1B, LD2, LD2B, LD3 und LD3B sowie die
Ausgabeauswahlsignale S1 und S2 deaktiviert. Die internen Auswahlschaltungen 761 bis 766 geben
in Reaktion auf die internen Auswahlsignale M1, M2 und M3 die Speicherschlüsseldatenbestandteile
r[40] bis r[45] als die jeweiligen Ausgabeschlüsseldatenbestandteile x0 bis
x7 ab. Der Ausgabeselektor 770 wählt in Reaktion auf die Ausgabeauswahlsignale
S1 und S2 die Ausgabeschlüsseldatenbestandteile
x0, x1, x2 und x3 aus und gibt sie als den zweiten Dechiffrierrundenschlüssel DRKEY2
ab. Somit erzeugt der Schlüsselplaner 700 den
zweiten Dechiffrierrundenschlüssel
DRKEY2 mit den Ausgabeschlüsseldatenbestandteilen
x0 bis x3, d.h. den Speicherschlüsseldatenbestandteilen
r[40] bis r[43], während eines
vierzehnten Zyklus des Taktsignals CLK, und die Ladefreigabesignale
LD1, LD1B, LD2, LD2B, LD3 und LD3B werden aktiviert.
-
Der
Schlüsselplaner 700 wiederholt
die obigen Berechnungsvorgänge
und das Ausgeben des zweiten Dechiffrierschlüssels DRKEY2, bis von den Kettenberechnungseinheiten 731 bis 736 die
Berechnungsschlüsseldatenbestandteile
c[0] bis c[5] abgegeben werden. Der Schlüsselplaner 700 braucht
den zweiten anfänglichen
Rundenschlüssel
EIKEY2 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[5] nicht empfangen, und es wird der zweite Dechiffrierrundenschlüssel DRKEY2
erzeugt. Die sechs Register 721 bis 726 geben
die zuvor in ihnen gespeicherten Eingabeschlüsseldatenbestandteile w[46]
bis w[51] als die jeweiligen Speicherschlüsseldatenbestandteile r[46]
bis r[51] ab.
-
Die
internen Auswahlsignale M1, M2 und M3 werden deaktiviert, und die
Ausgabeauswahlsignale S1 und S2 werden aktiviert. Die internen Auswahlschaltungen 761 bis 766 geben
in Reaktion auf die internen Auswahlsignale M1, M2 und M3 die Speicherschlüsseldatenbestandteile
r[46] bis r[51] als die jeweiligen Ausgabeschlüsseldatenbestandteile x0 bis
x5 ab. Der Ausgabeselektor 770 wählt in Reaktion auf die Ausgabeauswahlsignale
S1 und S2 die Ausgabeschlüsseldatenbestandteile
x2 bis x5 aus, d.h. die Speicherschlüsseldatenbestandteile r[48]
bis r[51]. Die nachfolgenden Betriebsvorgänge des Schlüsselplaners 700 sind
gleich oder im Wesentlichen gleich denen bei der Erzeugung des zweiten
Dechiffrierrundenschlüssels
DRKEY2 im Fall, dass der Schlüsselplaner 700 den
anfänglichen
Rundenschlüssel
EIKEY2 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[5] empfängt.
-
Der
Schlüsselplaner 700 erzeugt
somit den zweiten Dechiffrierrundenschlüssel DRKEY2, und die Register 721 bis 726 speichern
die jeweils aktualisierten Eingabeschlüsseldatenbestandteile w[6n]
bis w[6n+5] nach je zwei Zyklen des Taktsignals CLK. Die nachstehende
Tabelle 4 veranschaulicht diese Erzeugung des zweiten Dechiffrierrundenschlüssels DRKEY2
durch den Schlüsselplaner 700 in
den einzelnen Taktzyklen.
-
-
7B zeigt
ein Beispiel der zeitlichen Abstimmung für die Ausgabe der Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+7], wenn der Schlüsselplaner 700 den
zweiten Dechiffrierrundenschlüssel
DRKEY2 erzeugt. Wie aus Tabelle 4 und 7B ersichtlich,
werden die von den Registern 721 bis 726 abgegebenen Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+5] nach je zwei Zyklen des Taktsignals CLK getriggert.
Die von den Registern 727 und 728 abgegebenen
Speicherschlüsseldatenbestandteile
r[8n+6] und r[8n+7] werden nicht getriggert, während der Schlüsselplaner 700 den
zweiten Dechiffrierrundenschlüssel
DRKEY2 erzeugt, so dass der Stromverbrauch der Register 727 und 728 gering
gehalten wird.
-
Der
Schlüsselplaner 700 empfängt den
anfänglichen
Rundenschlüssel
EIKEY3 mit den anfänglichen Schlüsseldatenbestandteilen
w[0] bis w[7] und erzeugt den dritten Chiffrierrundenschlüssel ERKEY3.
Der anfängliche
Rundenschlüssel
EIKEY3 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[7] wird dem Schlüsselplaner 700 zugeführt, und
die Ladefreigabesignale LD1, LD1B, LD2, LD2B, LD3, LD3B, LD4 und LD4B
sowie die internen Auswahlsignale M1 bis M4 werden aktiviert.
-
Die
Ladefreigabeschaltungen 711 bis 718 geben in Reaktion
auf die Ladefreigabesignale LD1, LD1B, LD2, LD2B. LD3, LD3B, LD4
und LD4B die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[7] als die Eingabeschlüsseldatenbestandteile w[0]
bis w[7] ab. Die internen Auswahlschaltungen 761 bis 768 geben
in Reaktion auf die internen Auswahlsignale M1 bis M4 die Eingabeschlüsseldatenbestandteile
w[0] bis w[7] als die jeweiligen Ausgabeschlüsseldatenbestandteile x0 bis
x7 ab. Die Register 721 bis 728 empfangen und
speichern in Reaktion auf das Taktsignal CLK die Eingabeschlüsseldatenbestandteile
w[0] bis w[7] und geben die gespeicherten Eingabeschlüsseldatenbestandteile
w[0] bis w[7] als die Speicherschlüsseldatenbestandteile r[0]
bis r[7] ab.
-
Die
Berechnungssteuersignale P2 und P4 werden deaktiviert, und das Berechnungssteuersignal
P3 wird aktiviert. Die Auswahlschaltung 742 wählt in Reaktion
auf die Berechnungssteuersignale P2 und P3 den Ausgabeschlüsseldatenbestandteil
x7, d.h. den Eingabeschlüsseldatenbestandteil
w[7], aus und gibt ihn an die Wortrotationseinheit 751 ab.
Die Wortrotationseinheit 751 rotiert die Bits des Speicherschlüsseldatenbestandteils
r[7] und gibt die entsprechenden Rotationsschlüsseldaten ROT ab. Die Auswahlschaltung 743 wählt die
Rotationsschlüsseldaten
ROT in Reaktion auf das Berechnungssteuersignal P4 aus und gibt
sie an die Wortersetzungseinheit 752 ab. Die Wortersetzungseinheit 752 substituiert
die Rotationsschlüsseldaten
ROT um einen vorgegebenen Wert und gibt die entsprechenden Substitutionsschlüsseldaten
SUB ab. Die unabhängige
Berechnungseinheit 739 führt eine logische Verknüpfung der
Substitutionsschlüsseldaten
SUB mit der Rundenkonstanten RNC durch und gibt die entsprechenden
Wandlungsschlüsseldaten
SUC ab.
-
Die
Kettenberechnungseinheit 731 führt eine logische Verknüpfung der
Wandlungsschlüsseldaten SUC
mit dem Speicherschlüsseldatenbestandteil
r[0] durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[8] ab. Die Kettenberechnungseinheiten 732, 733 und 734 führen jeweils
eine logische Verknüpfung
des Speicherschlüsseldatenbestandteils
r[1], r[2] bzw. r[3] mit dem Berechnungsschlüsseldatenbestandteil c[8],
c[9] bzw. c[10] durch und geben die entsprechenden Berechnungsschlüsseldatenbestandteile c[9],
c[10] bzw. c[11] ab.
-
Die
Ladefreigabesignale LD1, LD1B, LD2 und LD2B und die internen Auswahlsignale
M1 und M2 werden aktiviert, während
die Ladefreigabesignale LD3, LD3B, LD4 und LD4B sowie die internen
Auswahlsignale M3 und M4 deaktiviert werden. Die Ausgabeauswahlsignale
S1 und S2 werden deaktiviert, und die Berechnungssteuersignale P1
und P4 werden aktiviert.
-
Die
Ladefreigabeschaltungen 711 bis 714 geben in Reaktion
auf die Ladefreigabesignale LD1, LD1B, LD2 und LD2B die Berechnungsschlüsseldatenbestandteile
c[8] bis c[11] als die Eingabeschlüsseldatenbestandteile w[8]
bis w[11] ab. Die Ladefreigabeschaltungen 715 bis 718 geben
vorzugsweise kontinuierlich die Speicherschlüsseldatenbestandteile r[4]
bis r[7] in Reaktion auf die Ladefreigabesignale LD3, LD3B, LD4
und LD4B als die Eingabeschlüsseldatenbestandteile
w[4] bis w[7] ab. Die internen Auswahlschaltungen 761 bis 764 wählen in
Reaktion auf die internen Auswahlsignale M1 und M2 die Eingabeschlüsseldatenbestandteile w[8]
bis w[11] aus und geben sie als die jeweiligen Ausgabeschlüsseldatenbestandteile
x0, x1, x2 bzw. x3 ab. Der Ausgabeselektor 770 wählt die
Ausgabeschlüsseldatenbestandteile
x0 bis x4 in Reaktion auf die Ausgabeauswahlsignale S1 und S2 aus
und gibt sie als den dritten Chiffrierrundenschlüssel ERKEY3 ab. Der Schlüsselplaner 700 erzeugt
somit den dritten Chiffrierrundenschlüssel ERKEY3 mit den Ausgabeschlüsseldatenbestandteilen
x0 bis x4, d.h. den Eingabeschlüsseldatenbestandteilen
w[8] bis w[11], während
des zweiten Zyklus des Taktsignals CLK. Während des ersten Zyklus des
Taktsignals CLK werden die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[7] des anfänglichen
Rundenschlüssels
EIKEY3 direkt dem Prozessor 602 von einer externen Einrichtung
zugeführt,
wie in 2 gezeigt.
-
Die
Auswahlschaltung 743 wählt
in Reaktion auf das Berechnungssteuersignal P4 den Berechnungsschlüsseldatenbestandteil
c[11] aus und gibt ihn an die Wortsubstitutionseinheit 752 ab.
Die Wortsubstitutionseinheit 752 substituiert den Berechnungsschlüsseldatenbestandteil
c[11] durch einen bestimmten Wert und gibt die entsprechenden Substitutionsschlüsseldaten
SUB ab. Die Auswahlschaltung 741 gibt die Substitutionsschlüsseldaten
SUB in Reaktion auf das Berechnungssteuersignal P1 an die Kettenberechnungseinheit 735 ab.
-
Die
Kettenberechnungseinheit 735 führt eine logische Verknüpfung des
Speicherschlüsseldatenbestandteils
r[4] mit den Substitutionsschlüssel daten
SUB durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[12] ab. Die Kettenberechnungseinheiten 736, 737 und 738 führen jeweils
eine logische Verknüpfung
des Speicherschlüsseldatenbestandteils
r[5], r[6] bzw. r[7] mit dem Berechnungsschlüsseldatenbestandteil c[12],
c[13] bzw. c[14] durch und geben den entsprechenden Berechnungsschlüsseldatenbestandteil
c[13], c[14] bzw. c[15] ab.
-
Die
Ladefreigabesignale LD3, LD3B, LD4 und LD4B, die internen Auswahlsignale
M3 und M4 und das Ausgabeauswahlsignal S1 werden aktiviert. Die
Ladefreigabesignale LD1, LD1 B, LD2 und LD2B sowie die internen
Auswahlsignale M1 und M2 und das Ausgabeauswahlsignal M2 werden
deaktiviert. Die Ladefreigabeschaltungen 715 bis 718 geben
in Reaktion auf die Ladefreigabesignale LD3, LD3B, LD4 und LD4B
die Berechnungsschlüsseldatenbestandteile
c[12] bis c[15] als die Eingabeschlüsseldatenbestandteile w[12]
bis w[15] ab. Die internen Auswahlschaltungen 765 bis 768 wählen in
Reaktion auf die internen Auswahlsignale M3 und M4 die Eingabeschlüsseldatenbestandteile
w[12] bis w[15] aus und geben sie als die jeweiligen Ausgabeschlüsseldatenbestandteile
x4, x5, x6 bzw. x7 ab. Der Ausgabeselektor 770 wählt die
Ausgabeschlüsseldatenbestandteile
x4 bis x7 in Reaktion auf die Ausgabeauswahlsignale S1 und S2 aus
und gibt sie als den dritten Chiffrierrundenschlüssel ERKEY3 aus. Der Schlüsselplaner 700 erzeugt
somit den dritten Chiffrierrundenschlüssel ERKEY3 mit den Ausgabeschlüsseldatenbestandteilen
x4 bis x7, d.h. den Eingabeschlüsseldatenbestandteilen
w[12] bis w[15], während
des entsprechenden Zyklus des Taktsignals CLK.
-
Die
Register 721 bis 728 speichern in Reaktion auf
das Taktsignal CLK die Eingabeschlüsseldatenbestandteile w[8]
bis w[15] und geben die gespeicherten Eingabeschlüsseldatenbestandteile
w[8] bis w[15] als die jeweiligen Speicherschlüsseldatenbestandteile r[8]
bis r[15] ab. Der Schlüsselplaner 700 wiederholt
die obigen Berechnungsvorgänge
und das Ausgeben des dritten Chiffrierrundenschlüssels ERKEY3, bis von den Kettenberechnungseinheiten 731 bis 738 die
Berechnungsschlüsseldatenbestandteile
c[52] bis c[59] abgegeben werden.
-
Die
Berechnungsschlüsseldatenbestandteile
c[52] bis c[59] werden von den Kettenberechnungseinheiten 731 bis 738 abgeben
und die Register 721 bis 728 speichern die Eingabeschlüsseldatenbestandteile w[52]
bis w[59], die sie von den Ladefreigabeschaltungen 711 bis 718 empfangen,
und verbleiben im Speicherzustand. Die Eingabeschlüsseldatenbestandteile
w[52] bis w[59] werden verwendet, wenn der Schlüsselplaner 700 den
dritten Dechiffrierrundenschlüssel
DRKEY3 erzeugt.
-
Der
Schlüsselplaner 700 erzeugt
somit den dritten Chiffrierrundenschlüssel ERKEY3, und die Register 721 bis 724 sowie
die Register 725 bis 728 speichern die z.B. alternierend
aktualisierten Berechnungsschlüsseldateneinheiten
c[8n] bis c[8n+3] beziehungsweise c[8n+4] bis c[8n+7] für jeden
Zyklus des Taktsignals CLK mit Ausnahme des ersten Zyklus. Die Wortersetzungseinheit 752 führt eine
Ersetzung z.B. jeweils einmal pro Zyklus des Taktsignals CLK durch,
wobei sie z.B. vier Ersetzungstabellen umfasst. Die nachstehende
Tabelle 5 veranschaulicht diese Erzeugung des dritten Chiffrierrundenschlüssels ERKEY3
durch den Schlüsselplaner 700 in
den jeweiligen Taktzyklen.
-
-
8A veranschaulicht
ein Beispiel der zeitlichen Abstimmung für die Ausgabe der Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+7] aus den Registern 721 bis 728,
wenn der Schlüsselplaner 700 den
dritten Chiffrierrundenschlüssel
ERKEY3 erzeugt. Wie aus Tabelle 5 und 8A ersichtlich,
werden die von den Registern 721 bis 724 abgegebenen
Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+3] sowie die von den Registern 725 bis 728 abgegebenen
Speicherschlüsseldatenbestandteile
r[8n+4] bis r[8n+7] vorzugsweise alternierend bei jedem Zyklus des
Taktsignals CLK getriggert.
-
Der
Schlüsselplaner 700 empfängt den
anfänglichen
Rundenschlüssel
EIKEY3 mit den anfänglichen Schlüsseldatenbestandteilen
w[0] bis w[7], und es kann der dritte Dechiftrierrundenschlüssel DRKEY3
erzeugt werden. Der dritte anfängliche
Rundenschlüssel
EIKEY3 mit den anfänglichen
Schlüsseldatenbestandteilen w[0]
bis w[7] wird dem Schlüsselplaner 700 zugeführt, und
die Ladefreigabesignale LD1 bis LD4B werden aktiviert. Die Ladefreigabeschaltungen 711 bis 718 geben
in Reaktion auf die Ladefreigabesignale LD1 bis LD4B die anfänglichen
Schlüsseldatenbestandteile
w[0] bis w[7] als die Eingabeschlüsseldatenbestandteile w[0]
bis w[7] ab. Die Register 721 bis 728 speichern
die Eingabeschlüsseldatenbestandteile
w[0] bis w[7] in Reaktion auf das Taktsignal und geben die gespeicherten
Eingabeschlüsseldatenbestandteile
w[0] bis w[7] als die Speicherschlüsseldatenbestandteile r[0]
bis r[7] ab.
-
Der
Schlüsselplaner 700 wiederholt
die vorstehenden Berechnungsvorgänge
zur Erzeugung des dritten Chiffrierrundenschlüssels ERKEY3, bis von den Schlüsselberechnungseinheiten 731 bis 738 die
Berechnungsschlüsseldatenbestandteile
c[521] bis c[59] abgegeben werden. Der Prozessor 602 braucht
den vom Schlüsselplaner 700 in
Reaktion auf das Rundensteuersignal RCTL abgegebenen dritten Chiffrierrundenschlüssel ERKEY3
nicht empfangen. Der Ausgabeselektor 770 braucht den dritten
Chiffrierrundenschlüssel ERKEY
nicht abzugeben, während der
Schlüsselplaner 700 den
Berechnungsvorgang wiederholt, wie oben in Verbindung mit 5 erläutert.
-
Die
Berechnungsschlüsseldatenbestandteile
c[52] bis c[59] werden von den Kettenberechnungseinheiten 731 bis 738 abgegeben,
und die Ladefreigabeschaltungen 711 bis 718 geben
die Berechnungsschlüsseldatenbestandteile
c[52] bis c[59] als die Eingabeschlüsseldatenbestandteile w[52]
bis w[59] in Reaktion auf die Ladefreigabesignale LD1 bis LD4B ab.
Die Register 721 bis 728 empfangen und speichern
die Eingabeschlüsseldatenbestandteile
w[52] bis w[59] in Reaktion auf das Taktsignal CLK und geben die
gespeicherten Eingabeschlüsseldatenbestandteile
w[52] bis w[59] als die Speicherschlüsseldatenbestandteile r[59]
ab.
-
Die
internen Auswahlsignale M1 bis M4 und die Berechnungssteuersignale
P2 und P4 werden deaktiviert und das Berechnungssteuersignal P3
wird aktiviert. Das Ausgabeauswahlsignal S1 wird aktiviert, und das
Ausgabeauswahlsignal S2 wird deaktiviert. Die internen Auswahlschaltungen 761 bis 768 geben
in Reaktion auf die internen Auswahlsignale M1 bis M4 die Speicherschlüsseldatenbestandteile
r[52] bis r[59] als die Ausgabeschlüsseldatenbestandteile x0 bis
x7 ab. Der Ausgabeselektor 770 wählt in Reaktion auf die Ausgabeauswahlsignale
S1 und S2 die Ausgabeschlüsseldatenbestandteile
x4 bis x7 aus, d.h. die Speicherschlüsseldatenbestandteile r[56]
bis r[59], und gibt sie ab.
-
Dann
werden die beiden Ausgabeauswahlsignale S1 und S2 deaktiviert. Der
Ausgabeselektor 770 wählt
in Reaktion auf die Ausgabeauswahlsignale S1 und S2 die Ausgabeschlüsseldatenbestandteile
x0 bis x3 aus, d.h. die Speicherschlüsseldatenbestandteile r[52]
bis r[55], und gibt sie ab. Der Schlüsselplaner 700 erzeugt
so den dritten Dechiffrierrundenschlüssel DRKEY3 mit den Ausgabeschlüsseldatenbestandteilen
x0 bis x3, d.h. den Speicherschlüsseldatenbestandteilen
r[52] bis r[55], während
eines fünfzehnten
Zyklus des Taktsignals CLK. Außerdem
werden während
des fünfzehnten
Zyklus des Taktsignals CLK der dritte Dechiffrierrundenschlüssel DRKEY3
mit den Speicherschlüsseldatenbestandteilen
r[52] bis r[55] sowie die Speicherschlüsseldatenbestandteile r[56]
bis r[59] dem Prozessor 602 zugeführt.
-
Die
Auswahlschaltung 742 wählt
in Reaktion auf die Berechnungssteuersignale P2 und P3 den Ausgabeschlüsseldatenbestandteil
x7, d.h. den Speicherschlüsseldatenbestandteil
r[59), aus und gibt ihn an die Wortrotationseinheit 751 ab.
Die Wortrotationseinheit 751 rotiert die Bits des Speicherschlüsseldatenbestandteils
r[59], und gibt die entsprechenden Rotationsschlüsseldaten ROT ab. Die Auswahlschaltung 743 wählt in Reaktion
auf das Berechnungssteuersignal P4 die Rotationsschlüsseldaten
ROT aus und gibt sie an die Wortersetzungseinheit 752 ab.
Die Wortersetzungseinheit 752 substituiert die Rotationsschlüsseldaten
ROT durch einen vorgegebenen Wert und gibt die entsprechenden Substitutionsschlüsseldaten
SUB ab. Die unabhängige Berechnungseinheit 739 führt eine
logische Verknüpfung
der Substitutionsschlüsseldaten
SUB mit der Rundenkonstanten RNC durch und gibt die entsprechenden
Wandlungsschlüsseldaten
SUC ab.
-
Die
Kettenberechnungseinheit 731 führt eine logische Verknüpfung der
Wandlungsschlüsseldaten SUC
mit dem Speicherschlüsseldatenbestandteil
r[52] durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[44) ab. Die Kettenberechnungseinheiten 732, 733 und 734 führen je
eine logische Verknüpfung
des Speicherschlüsseldatenbestandteils
r[53], r[54] bzw. r[55] mit dem Berechnungsschlüsseldatenbestandteil c[44],
c[45] bzw. c[46] durch und geben den entsprechenden Berechnungsschlüsseldatenbestandteil
c[45], c[46] bzw. c[47] ab. Die Ladefreigabesignale LD1, LD1B, LD2
und LD2B werden deaktiviert, und die Berechnungssteuersignale P1
und P4 werden aktiviert. Die Ladefreigabeschaltungen 711 bis 714 geben
vorzugsweise kontinuierlich in Reaktion auf die Ladefreigabesignale
LD1, LD1B, LD2 und LD2B die Speicherschlüsseldatenbestandteile r[52]
bis r[55] als die Eingabeschlüsseldatenbestandteile
w[52] bis w[55] ab.
-
Die
Auswahlschaltung 743 wählt
in Reaktion auf das Berechnungssteuersignal P4 den Berechnungsschlüsseldatenbestandteil
c[47] aus und gibt ihn an die Wortersetzungseinheit 752 ab.
Die Wortersetzungseinheit 752 substituiert den Berechnungsschlüsseldatenbestandteil
c[47] durch einen vorgegebenen Wert und gibt die entsprechenden
Substitutionsschlüsseldaten
SUB ab. Die Auswahlschaltung 741 gibt die Substitutionsschlüsseldaten
SUB in Reaktion auf das Berechnungssteuersignal P1 an die Kettenberechnungseinheit 735 ab.
Die Kettenberechnungseinheit 735 führt eine logische Verknüpfung des
Speicherschlüsseldatenbestandteils
r[56] mit den Substitutionsschlüsseldaten
SUB durch und gibt den entsprechenden Berechnungsschlüsseldatenbestandteil
c[48] ab. Die Kettenberechnungseinheiten 736, 737 und 738 führen je
eine logische Verknüpfung
des Speicherschlüsseldatenbestandteils
r[57], r[58] bzw. r[59] mit dem Berechnungsschlüsseldatenbestandteil c[48],
c[49] bzw. c[50] durch und geben den entsprechenden Berechnungsschlüsseldatenbestandteil
c[49], c[50] bzw. c[51] ab.
-
Die
Ladefreigabesignale LD3, LD3B, LD4 und LD4B, die internen Auswahlsignale
M3 und M4 und das Ausgabeauswahlsignal S1 werden aktiviert, und
das Ausgabeauswahlsignal S2 wird deaktiviert. Die Ladefreigabeschaltungen 715 bis 718 geben
dadurch in Reaktion auf die Ladefreigabesignale LD3, LD3B, LD4 und LD4B
die Berechnungsschlüsseldatenbestandteile
c[48] bis c[51] als die Eingabeschlüsseldatenbestandteile w[48]
bis w[51] ab. Die internen Auswahlschaltungen 765 bis 768 wählen in
Reaktion auf die internen Auswahlsignale M3 und M4 die Eingabeschlüsseldatenbestandteile
w[48] bis w[51 ] aus und geben sie als die jeweiligen Ausgabeschlüsseldatenbestandteile
x4 bis x7 aus. Der Ausgabeselektor 770 wählt die
Ausgabeschlüsseldatenbestandteile
x4 bis x7 in Reaktion auf die Ausgabeauswahlsignale S1 und S2 aus
und gibt sie als den dritten Dechiffrierrundenschlüssel DRKEY3
ab. Der Schlüsselplaner 700 erzeugt
so den dritten Dechiftrierrundenschlüssel DRKEY3 mit den Ausgabeschlüsseldatenbestandteilen
x4 bis x7, d.h. den Eingabeschlüsseldatenbestandteilen
w[48] bis w[51], während
eines sechzehnten Zyklus des Taktsignals CLK.
-
Die
Register 725 bis 728 speichern die Eingabeschlüsseldatenbestandteile
w[48] bis w[51] und geben sie als die Speicherschlüsseldatenbestandteile
r[48] bis r[51] ab. Die Ladefreigabesignale LD3, LD3B, LD4 und LD4B
und die internen Auswahlsignale M3 und M4 werden dann deaktiviert,
während
die Ladefreigabesignale LD1, LD1 B, LD2 und LD2B sowie die internen
Auswahlsignale M1 und M2 aktiviert werden. Die Ausgabeauswahlsignale
S1 und S2 und die Berechnungssteuersignale P2 und P4 werden deaktiviert,
und das Berechnungssteuersignal P3 wird aktiviert.
-
Die
Ladefreigabeschaltungen 711 bis 714 geben dann
in Reaktion auf die Ladefreigabesignale LD1, LD1 B, LD2 und LD2B
die Berechnungsschlüsseldatenbestandteile
c[44] bis c[47] als die Eingabeschlüsseldatenbestandteile w[44]
bis w[47] ab. Die internen Auswahlschaltungen 761 bis 764 wählen in
Reaktion auf die internen Auswahlsignale M1 und M2 die Eingabeschlüsseldatenbestandteile
w[44] bis w[47] aus und geben sie als die jeweiligen Ausgabeschlüsseldatenbestandteile
x0 bis x3 ab. Die internen Auswahlschaltungen 765 bis 768 wählen in
Reaktion auf die internen Auswahlsignale M3 und M4 die Speicherschlüsseldatenbestandteile
r[48] bis r[51 ] aus und geben sie als die jeweiligen Ausgabeschlüsseldatenbestandteile
x4 bis x7 ab. Der Ausgabeselektor 770 wählt in Reaktion auf die Ausgabeauswahlsignale
S1 und S2 die Ausgabeschlüsseldatenbestandteile
x0 bis x3 aus und gibt sie als den dritten Dechiffrierrundenschlüssel DRKEY3
aus. Der Schlüsselplaner 700 erzeugt
so den dritten Dechiffrierrundenschlüssel DRKEY3 mit den Ausgabeschlüsseldatenbestandteilen
x0 bis x3, d.h. den Eingabeschlüsseldatenbestandteilen
[44] bis w[47], während
eines siebzehnten Zyklus des Taktsignals CLK.
-
Die
Register 721 bis 724 speichern in Reaktion auf
das Taktsignal CLK die Eingabeschlüsseldatenbestandteile w[44]
bis w[47] und geben die gespeicherten Eingabeschlüsseldatenbestandteile
w[44] bis w[47] als die Speicherschlüsseldatenbestandteile r[44]
bis r[47] ab. Die Auswahlschaltung 742 wählt den
Ausgabeschlüsseldatenbestandteil
x7, d.h. den Speicherschlüsseldatenbestandteil
r[51], in Reaktion auf das Berechnungssteuersignal P4 aus und gibt
ihn an die Wortrotationseinheit 751 ab. Der Schlüsselplaner 700 wiederholt den
Berechnungsvorgang und die Ausgabe des dritten Dechiffrierrundenschlüssels DRKEY3,
bis die Kettenberechnungseinheiten 731 bis 738 die
Berechnungsschlüsseldatenbestandteile
c[0] bis c[7] abgeben. Der Schlüsselplaner 700 braucht
den anfänglichen
Rundenschlüssel
EIKEY3 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[7] nicht empfangen, und es kann der dritte Dechiffrierrundenschlüssel DRKEY3
erzeugt werden.
-
Die
Register 721 bis 728 geben die gespeicherten Eingabeschlüsseldatenbestandteile
w[52] bis w[59] als die Speicherschlüsseldatenbestandteile r[52]
bis r[59] ab. Die Ladefreigabesignale LD1 bis LD4B und die internen
Auswahlsignale M1 bis M4 werden deaktiviert. Die Ladefreigabeschaltungen 711 bis 718 geben
dann in Reaktion auf die Ladefreigabesignale LD1 bis LD4B vorzugsweise
kontinuierlich die Speicherschlüsseldatenbestandteile
r[52] bis r[59] als die Eingabeschlüsseldatenbestandteile w[52]
bis w[59] ab. Die internen Auswahlschaltungen 761 bis 768 geben
in Reaktion auf die internen Auswahlsignale M1 bis M4 die Speicherschlüsseldatenbestandteile
r[52] bis r[59] als die jeweiligen Ausgabeschlüsseldatenbestandteile x0 bis
x7 ab. Nachfolgende Betriebsvorgänge
des Schlüsselplaners 700 sind
identisch oder im Wesentlichen gleich den entsprechenden Vorgängen bei
der Erzeugung des dritten Dechiffrierrundenschlüssels DRKEY1 im Fall, dass
der Schlüsselplaner 700 den
anfänglichen
Rundenschlüssel
EIKEY3 mit den anfänglichen
Schlüsseldatenbestandteilen
w[0] bis w[7] empfängt.
-
Der
Schlüsselplaner 700 erzeugt
so den dritten Dechiffrierrundenschlüssel DRKEY3, und die Register 721 bis 728 sowie
die Register 725 bis 728 speichern die vorzugsweise
alternierend aktualisierten Eingabeschlüsseldatenbestandteile w[8n]
bis w[8n+3] bzw. w[8n+4] bis w[8n+7] bei jedem Zyklus des Taktsignals
CLK. Die nachstehende Tabelle 6 veranschaulicht diese Erzeugung
des dritten Dechiffrierrundenschlüssels DRKEY3 durch den Schlüsselplaner 700 für die einzelnen
Taktzyklen.
-
-
8B veranschaulicht
ein Beispiel einer zeitlichen Abstimmung für die Ausgabe der Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+7] aus den Registern 721 bis 728,
wenn der Schlüsselplaner 700 den
dritten Dechiffrierrundenschlüssel
DRKEY3 erzeugt. Wie aus Tabelle 6 und 8B ersichtlich,
werden die Speicherschlüsseldatenbestandteile
r[8n] bis r[8n+3], die von den Registern 721 bis 724 abgegeben
werden, und die Speicherschlüsseldatenbestandteile
r[8n+4] bis r[8n+7], die von den Registern 725 bis 728 abgegeben
werden, vorzugsweise alternierend bei jedem Zyklus des Taktsignals
CLK getriggert.
-
9 veranschaulicht
einen weiteren erfindungsgemäßen Schlüsselplaner 800,
der eine Schlüsselspeichereinheit 801,
eine Schlüsselberech nungseinheit 802 und
eine Schlüsselausgabeeinheit 803 umfasst. Der
Aufbau und die Betriebsweise des Schlüsselplaners 800 sind
im Wesentlichen gleich wie beim Schlüsselplaner 700 von 3.
Jedoch weist die Schlüsselspeichereinheit 801 des
Schlüsselplaners 800 mehrere Takt-Gateschaltungen 811 bis 814 und
Register 821 bis 828 auf. Jede Takt-Gateschaltung 811 bis 814 ist
mit zwei der Register 821 bis 828 verbunden. Im
Detail ist eine erste Takt-Gateschaltung 811 mit den Registern 821 und 822 verbunden,
eine zweite Takt-Gateschaltung 812 ist mit den Registern 823 und 824 verbunden, eine
dritte Takt-Gateschaltung 813 ist
mit den Registern 825 und 826 verbunden, und eine
vierte Takt-Gateschaltung 814 ist mit den Registern 827 und 828 verbunden.
Die Takt-Gateschaltungen 811 bis 814 liefern das Taktsignal
CLK für
die Register 821 bis 828 oder unterbrechen die
Zufuhr des Taktsignals CLK in Reaktion auf Ladefreigabesignale LD1
bis LD4. Die Register 821 bis 828 speichern davon
abhängig
Signale, die ihnen zugeführt
werden.
-
10 veranschaulicht
eine mögliche
Realisierung der Takt-Gateschaltung 811 und der Register 821 und 822.
Die weiteren Takt-Gateschaltungen 812, 813 und 814 können in
Aufbau und Funktionsweise gleich oder im Wesentlichen gleich der
Takt-Gateschaltung 811 sein. Wie aus 10 ersichtlich,
ist die Takt-Gateschaltung 811 in diesem Fall als UND-Gateschaltung
realisiert und empfängt
das Ladefreigabesignal LD1 und das Taktsignal CLK. Die Takt-Gateschaltung 811 gibt
wahlweise in Reaktion auf das Ladefreigabesignal LD1 das Taktsignal
CLK an die Register 821 und 822 ab. Beispielsweise
gibt sie das Taktsignal CLK ab, wenn das Ladefreigabesignal LD1
aktiviert ist, während
sie das Taktsignal CLK nicht weiterleitet, wenn das Ladefreigabesignal
LD1 deaktiviert ist. Die Register 821 und 822 speichern
ein zugeführtes
Eingabesignal w[0] bzw. w[1] oder c[8n] bzw. c[8n+1], wenn sie das
Taktsignal CLK empfangen.
-
In
den oben erläuterten,
exemplarischen Ausführungsbeispielen
der Erfindung wurden hauptsächlich anfängliche
Rundenschlüssel
EIKEY1, EIKEY2 und EIKEY3 mit einer Länge von 128Bit, 192Bit oder
256Bit betrachtet, es versteht sich jedoch, dass die anfänglichen
Rundenschlüssel
EIKEY1 , EIKEY2 bzw. EIKEY3 auch jede beliebige andere Bitlänge haben
können.
Gleiches gilt für
alle anderen, oben erwähnten
Rundenschlüssel.
Es versteht sich außerdem,
dass anstelle der beschriebenen Erzeugung von z.B. zehn Chiffrierschlüsseln ERKEY1
bzw. zehn Dechiffrierschlüsseln
DRKEY1 erfindungsgemäß auch jede
andere Anzahl von Chiffrier- bzw. Dechiffrierschlüsseln verwendet
werden kann.
-
Die
Erfindung umfasst des weiteren modifizierte Ausführungsformen mit ausgetauschten
Komponenten des Schlüsselplaners 700 von 3 bzw.
des Schlüsselplaners 800 von 9,
z.B. Ausführungsformen, bei
denen die Schlüsselspeichereinheit 801 des
Schlüsselplaners 800 von 9 anstelle
der Schlüsselspeichereinheit 701 im
Schlüsselplaner 700 von 3 implementiert
ist.
-
Ebenso
versteht es sich, dass die Erfindung zusätzlich zu den beschriebenen
Ausführungsformen auch
solche umfasst, bei denen der niedrige und der hohe Logikpegel in
ihrer Bedeutung vertauscht sind.
-
Wie
die obige Erläuterung
vorteilhafter Ausführungsbeispiele
zeigt, umfasst die Erfindung einen Schlüsselplaner, der in der Lage
ist, selektiv einen Chiffrierrundenschlüssel und einen Dechiffrierrundenschlüssel entsprechend
der Länge
eines anfänglichen
Rundenschlüssels
zu erzeugen und dadurch die Anzahl an Ersetzungstabellen, die zur
Rundenschlüsselerzeugung
benötigt
werden, zu verringern und/oder die Abmessung des zugehörigen Verschlüsselungs-
und/oder Entschlüsselungssystems
zu verringern, in welchem ein solcher Schlüsselplaner benutzt wird. Der
erfindungsgemäße Schlüsselplaner
kann zudem das Triggern der Ausgangssignale von Registern entsprechend
der anfängli chen
Rundenschlüssellänge verringern
und außerdem
den Stromverbrauch reduzieren.