DE2558206C3 - Verfahren und Einrichtung zum Chiffrieren und autorisierten Dechiffrieren von Informationsblöcken - Google Patents
Verfahren und Einrichtung zum Chiffrieren und autorisierten Dechiffrieren von InformationsblöckenInfo
- Publication number
- DE2558206C3 DE2558206C3 DE19752558206 DE2558206A DE2558206C3 DE 2558206 C3 DE2558206 C3 DE 2558206C3 DE 19752558206 DE19752558206 DE 19752558206 DE 2558206 A DE2558206 A DE 2558206A DE 2558206 C3 DE2558206 C3 DE 2558206C3
- Authority
- DE
- Germany
- Prior art keywords
- bits
- memory
- encryption key
- information
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 230000015654 memory Effects 0.000 claims description 40
- UIIMBOGNXHQVGW-UHFFFAOYSA-M buffer Substances [Na+].OC([O-])=O UIIMBOGNXHQVGW-UHFFFAOYSA-M 0.000 claims description 37
- 241001442055 Vipera berus Species 0.000 claims description 30
- 238000006467 substitution reaction Methods 0.000 claims description 24
- 230000001131 transforming Effects 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000006011 modification reaction Methods 0.000 claims description 4
- 230000000295 complement Effects 0.000 claims description 3
- 230000002441 reversible Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000875 corresponding Effects 0.000 description 4
- 101700044946 Ouib Proteins 0.000 description 3
- 230000005669 field effect Effects 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000000717 retained Effects 0.000 description 3
- 235000010678 Paulownia tomentosa Nutrition 0.000 description 1
- 240000002834 Paulownia tomentosa Species 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 235000013601 eggs Nutrition 0.000 description 1
- 238000000819 phase cycle Methods 0.000 description 1
- FAPWRFPIFSIZLT-UHFFFAOYSA-M sodium chloride Chemical compound [Na+].[Cl-] FAPWRFPIFSIZLT-UHFFFAOYSA-M 0.000 description 1
Description
Die Erfindung bezieht sich auf ein Verfahren und auf eine Einrichtung zum Chiffrieren und zum autorisierten
Dechiffrieren von Informationsblöcken unter Steuerung eines vorgegebenen Satzes von Chiffrierschlüsselbits.
Elektronische Datenverarbeitungsanlagen werden in erheblichem Maße als Dienstleistungssysteme verwendet,
die mehreren am Ort der Datenverarbeitungsanlage oder an entfernten Orten befindlichen Benutzern
gemeinsam zur Verfügung stehen. Bei solchen Systemen gewinnt das Problem der Diskretion und Sicherung der
Daten gegen unbefugten Zugriff erhebliche Bedeutung.
Es ist bekannt, zum Zwecke der Datensicherung Einrichtungen zur Chiffrierung der Daten an solchen
Stellen des Systems vorzusehen, die gegen unbefugten Zutritt besonders exponiert sind.
Bekannte Einrichtungen dieser Art beruhen auf dem Substitutionsverfahren, wonach die Elemente eines
Informationsblocks gemäß einem vorgegebenen Chiffrierschlüssel durch andere Informationselemente ersetzt
werden. Die Dechiffrierung erfolgt unter Benutzung des gleichen Schlüssels in umgekehrter Weise.
Dieses auch als nichtlineare Transformierung bezeichnete Verfahren ist unter anderem in dem Artikel
»Cryptographiy and Computer Privacy« von Horst F e i s t e 1 in der Zeitschrift »Scientific Americans vom
Mai 1973, Volume 228, Nr. 5, Seiten 15 bis 23, beschrieben. Andere bekannte Einrichtungen führen
eine Chiffrierung durch Permutation der Informationselemente durch. Hierzu werden beispielsweise die Bits
eines Informationsblocks nach einem vorgegebenen Schema untereinander vertauscht Man nennt diese
Methode auch lineare Transformierung (vgl. F e i s t e 1 a.a.O.). Es sind ferner Einrichtungen bekannt, bei denen
die nichtlineare und die lineare Transformierung kombiniert angewandt werden, indem Substitutionsschaltungen und Permutationsschaltungen in Serie
fio angeordnet sind. Einen Informationsblock, der mit Hilfe
einer solchen Einrichtung chiffriert worden ist, nennt man wegen der multiplikativen Wirkung der beiden
Transformierungsoperationen Produkt-Blockchiffre (vgl. Feiste! a.a.O.). Es ist theoretisch möglich, eine
Vielzahl derartiger Kombinationsstufen vorzusehen. Der Schaltungsaufwand steigt jedoch mit Zunahme der
Kombinationsstufen in erheblichem Maße an.
Eine andere bekannte Schaltung dieser Art (DT-OS
Eine andere bekannte Schaltung dieser Art (DT-OS
22 31 849) sieht vor, daß die Bits des Informationsblocks
zunächst nichtlinear transformiert werden und das Ergebnis einer linearen Transformierung zugeführt
wird. Das sich hieraus ergebende Resultat und das Schlüsselwort sind daraufhin Gegenstand einer Modulo-2-Addition,
mit deren Ergebnis anschließend eine weitere Modulo-2-Addition mit dem ursprünglichen, zur
Chiffrierung vorgesehenen Informationsblock vorgenommen wird. Diese Operationsschritte werden nach
einer Stellenverschiebung des Chiffrierschlüssels mit dem bis dahin gebildeten Resultat wiederholt Dieser
Vorgang wird fortgesetzt, bis ein vollständiger Verschiebezyklus des Chiffrierschlüssels ausgeführt worden
ist. Das zu diesem Zeitpunkt vorliegende Resultat stellt die vollständig chiffrierte Version des ursprünglichen
Datenblocks dar.
Bei einer anderen bekannten Chiffrierschaltung (DT-OS 22 52 670) sind zwei in Serie geschaltete Sätze
von Schieberegistern vorgesehen, die eine Ausgangs-Eingangs-Rückkopplung aufweisen und von denen der
erste als Eingangsregistersatz für zu chiffrierende Informationsblöcke und der andere als Mischregistersatz
dient. Der im Eingangsregistersatz stehende Informationsblock ist zusammen mit einem Chiffrierschlüssel
Gegenstand einer nichtlinearen Transformierung, deren Ergebnis gemeinsam mit den Bits des
Chiffrierschlüssels mit den Datenbits in den Mischregistern logisch verknüpft wird. Bei dieser Einrichtung
verläuft die Chiffrierung in hohem Grade serial, was ihre Leistungsfähigkeit vermindert.
Aufgabe der Erfindung ist es, ein Chiffrier-Dechiffrier-Verfahren
anzugeben, das eine erhöhte Sicherheit gegen unbefugte Dechiffrierung sowie bei erträglichem
Schaltungsaufwand eine hochgradig parallele und damit schnelle Arbeitsweise gestattet. Aufgabe der Erfindung
ist es auch, eine vorteilhafte Einrichtung zur Ausführung dieses Verfahrens anzugeben.
Die Merkmale des erfindungsgemäßen Verfahrens sind im Anspruch 1 und die der erfindungsgemäßen
Einrichtung im Anspruch 9 angegeben. Verschiedene vorteilhafte Ausgestaltungen und Weiterbildungen der
Erfindung sind aus den Unteransprüchen zu ersehen. Nachfolgend ist ein Ausführungsbeispiel der Erfindung
anhand von Zeichnungen dargestellt. Es zeigt
F i g. 1 ein vereinfachtes Blockschaltbild eines Datenverarbeitungssystems
mit Markierung derjenigen Stellen, wo eine Chiffrier-Dechiffrier-Einrichtung gemäß
der Erfindung vorteilhaft angewendet werden kann,
F i g. 2 ein Blockdiagramm der Chiffrier-Dechiffrier-Einrichtung
gemäß der Erfindung,
F i g. 3 die Zusammengehörigkeit der F i g. 3a bis 3j,
Fig.3a bis 3j ein detailliertes Blockdiagramm der Einrichtung von F i g. 2,
Fig.4 ein Schaltbild einer Verriegelungsschaltung,
wie sie in der Einrichtung von F i g. 3a bis 3j verwendbar ist,
Fig.5 ein Impuls/Zeit-Diagramm zur Erläuterung
der Arbeitsweise der Schaltung von F i g. 4,
F i g. 6 ein detailliertes Blockschaltbild einer Substitutionsschaltung,
wie sie in der Einrichtung von F i g. 3a bis 3j verwendbar ist,
F i g. 7 die Zusammengehörigkeit der F i g. 7a und 7b,
F i g. 7a und 7b ein Impulszeitdiagramin zur Erläuterung
der Wirkungsweise der Einrichtung von F i g. 3a bis 3j und
F i g. 8 ein Ablaufdiagramm zur allgemeinen Erläuterung der Operation der dargestellten Einrichtung.
Innerhalb eines Datenverarbeitungsnetzwerkes gibt
es verschiedene Bereiche, die der Gefahr eines unbefugten Zugriffs zu Daten oder Datenträgern sowie
der unbefugten Änderung von Daten unterliegen. Dieses Problem tritt in erhöhtem Maße auf, wenn Daten
s zwischen einer Verarbeitungseinheit und einer entfernten Steuereinheit oder einem entfernten Terminal zu
übertragen sind oder wenn sich zwischen einer Verarbeitungseinheit und den an diese angeschlossenen
Terminals oder Eingabe-Ausgabe-Einheiten sehr lange ίο Übertragungsleitungen befinden. Das Problem tritt
ferner an den Stellen des Systems auf, wo sich entfernbare Datenspeichermedien befinden. Um in
diesen Bereichen eine ausreichende Datensicherheit und Diskretion zu erreichen, werden Chiffriereinrichj
tungen an strategisch wichtigen Plätzen des Netzwerkes angeordnet. An der Sendestation werden die unverschlüsselten
Daten chiffriert und in dieser Form zur Empfangsstation übertragen, wo sie vor ihrer Verwendung
einer Dechiffrieroperation zugeführt werden. Die F i g. 1 zeigt ein System der vorausgehend beschriebenen
Art mit einer Anzahl von Chiffriereinrichtungen in den verschiedenen Netzwerk-Verbindungen.
Eine Chiffriereinrichtung der dort verwendbaren Art ist in Form eines Blockschaltbildes in F i g. 2 dargestellt.
Diese Einrichtung eignet sich zur Chiffrierung oder Dechiffrierung von jeweils 64 Bits umfassenden
Informationsblöcken, die sich aus 8 Bytes mit je 8 Bits zusammensetzen. Die Bytes eines jeden Blocks werden
nacheinander über eine Eingangssammelleitung der Chiffriereinrichtung zugeführt, so daß 8 Zyklen zur
vollständigen Übertragung des Informationsblocks benötigt werden. Jedes von der Chiffriereinrichtung
empfangene Byte ist Gegenstand einer anfänglichen linearen Permutation, die durch gewöhnliche Leitungs-Überkreuzung
in einer Permutationsschaltung 50 ausgeführt wird. Jedes permutierte Byte wird in zwei Hälften
unterteilt, von denen die eine die geradzahligen Bitstellen 0, 2, 4 und 6 enthält und einem oberen
Eingangspuffer (UIB) 100 zugeführt wird und die andere Hälfte die ungeraden Bitstellen 1,3,5 und 7 enthält und
einem niederen Eingangspuffer (LIB) 150 zugeführt wird. Jeder der Puffer 100 und 150 führt eine
Serien/Parallel-Umsetzung durch, so daß nach dem Empfang der 8 Bytes eines jeden Informationsblockes
die Puffer 100 und 150 zwei Hälften zu je 32 Bits des Informationsblockes in Paralleldarstellung an ein oberes
Datenregister (UDR) 200 und an ein niederes Datenregister (LDR)TSfS liefern.
Zur gleichen Zeit, wenn der Nachrichtenblock von s<>
der Einrichtung gemäß F i g. 2 empfangen und in den Puffern 100 und 150 gespeichert worden ist, wird der
Chiffrierumgsschlüssel von einem 64 Bitstellen umfassenden externen Register 299 empfangen, der aus 8
Bytes besteht, von denen jedes 7 Datenbits und 1 ss Paritätsbit enthält, das als extern benutztes Prüfbit dient.
Die Bytes des Chiffrierschlüssels werden unter Weglassung des jeweils 8-ten Bits (Paritätsbit) nacheinander
über eine Chiffrierschlüssel-Eingangssammelleitung zugeführt, so daß 8 Zyklen zum Empfang des vollständigen
du Schlüssels notwendig sind. Jedes empfangene Byte wird
einer anfänglichen Permutation in der Schaltung 300 unterzogen, wonach das permutierte Byte in zwei
Hälften unterteilt wird. Die ersten 4 Bits eines jeden aus 7 Bits bestehenden Byte werden einem oberen
('s Schlüsselregister (UKR) 350 zugeführt, und die verbleibenden
3 Bits werden einem niederen Schlüsselregister (LKR) 400 zugeführt. Die Register 350 und 400
enthalten jeweils 28 Bitstellen. Sie besitzen außerdem
s
e
ι.
e
ι.
eine Verbindung von der letzten Bitstelle des Registers 350 zur 25sten Bitstelle des Registers 400. Die Register
350 und 400 führen eine Serien/Parallel-Umsetzung
durch. Während des serialen Empfangs der 8 Bytes zu je 7 Bits, die als 7 Gruppen von je 8 Bits behandelt werden, s
werden 3 dieser 7 Gruppen zu den Stufen 0,8 und 16 des
Registers 350 geleitet, und 3 weitere der 7 Gruppen werden zu den Stufen 0, 8 und 16 des Registers 400
geleitet Diese von den Registern 350 und 400 empfangenen Bitgruppen werden zu je 3 parallelen ,0
Gruppen von 8 Bits umgesetzt, die als zwei parallele Gruppen von 24 Bits ausgehend von den Registern 350 ·
und 400 weiterbehandelt werden. Die verbleibende 7. Gruppe von 8 Bits wird serial von der Stufe 24 des
Registers 350 empfangen. Die Verbindung der letzten ι s
Stufe des Registers 350 zur Stufe 24 des Registers 400 gestattet den ersten vier Bits dieser letzten Gruppe
einen Übergang zum Register 400, so daß während des Empfangs dieser letzten Gruppe die ersten vier Bits in
eine parallele Teilgruppe von vier Bits in den letzten vier Stufen des Registers 400 umgesetzt werden und die
zweiten vier Bits in eine parallele Teilgruppe von vier Bits in den letzten vier Stufen des Registers 350
umgesetzt werden. Die Register 350 und 400 enthalten nun den Chiffrierschlüssel in Form von zwei parallelen
Gruppen zu je 28 Bits.
Zu diesem Zeitpunkt befindet sich die erste und die zweite Hälfte des Informationsblockes in den Registern
200 und 250, und der Chiffrierschlüssel ist in den Registern 350 und 400 enthalten. Wenn die letztgenannten
Register einmal geladen sind, wird die Verbindung zwischen ihnen nicht langer benutzt; die Register 350
und 400 arbeiten dann als unabhängige 28-Bit-Schieberegister. Während der Chiffrieroperation wird eine
Serie von 16 Iterationen, wobei zuvor der Chiffrierschlüssel in den Registern 350 und 400 um eine Bitstelle
verschoben wird, ausgeführt. Während der einzelnen Interationsoperationen mit Ausnahme der ersten wird
der Chiffrierschlüssel in den Registern 350 und 400 ebenfalls jeweils um eine oder um zwei Bitpositionen
verschoben. Hierdurch wird eine Ausrichtung der Bits des Chiffrierschlüssels erreicht, da der Inhalt von jedem
Register genau 28 Positionen verschoben wird gemäß einem vorbestimmten Stellenverschiebeplan.
Während der ersten Iteration der Chiffrieroperation wird die erste Hälfte des Informationsblocks, die im
Register 200 enthalten ist und aus 8 Segmenten zu je vier Datenbits besteht, auf 48 Bitpositionen ausgedehnt,
die in acht Segmente zu je sechs Datenbits unterteilt sind. Diese Expansion wird durch Verdoppelung der
Endbits von jedem der acht 4-Bit-Segmente erreicht. Der expandierte 48-Datenbit-Bereich wird daraufhin
parallel acht Modulo-2-Addierern 500 bis 514 zugeführt.
Jeder dieser Addierer besteht aus sechs Exklusiv-Oder-Schaltungen.
Zur gleichen Zeit wird ein ausgewählter ss Satz von 48 vorausbestimmten Bits der 56 Bits des
Chiffrierschlüssels, von denen 24 aus dem Register 350 und 24 aus dem Register 400 ausgewählt worden sind,
linear permutiert. Dies geschieht in einer Permutationsschaltung 450, deren Ausgangssignale von acht Segmen- <
>g ten zu je sechs Bits parallel an die zweiten Eingänge der Exklusiv-Oder-Schaltungen in den Modulo-2-Addierern
500 bis 514 weitergeleitet werden. Die Addierer 500 bis 514 verknüpfen somit die expandierten Datenbits, die
sich aus 48 Bits zu acht Segmenten mit je sechs Bits pro <<5
Segment darstellen, parallel mit den permutierten Bits des Chiffrierschlüssels, die sich ebenfalls als 48 Bits zu
acht Segmenten mit je sechs Bits pro Segment darstellten. Die sich aus dieser Verknüpfungsoperation
ergebenden acht Segmente zu je sechs Bits bilden die eigentlichen Argumente für acht Schaltungen 550 bis
564, die eine nichtaffine Substitutionsfunktion ausführen und die nachfolgend auch als S-Schaltungen bezeichnet
werden, jede dieser Schaltungen führt eine nichtlineare Transformierungsfunktion durch. Die diesen Schaltungen
zugeführten Endbits, die sich aus der Modulo-2-Addition eines duplizierten Endbits des vorausgehenden
6-Bit-Datensegments und einem permutierten Chiffrierschlüssel-Bit ergeben sowie aus der Modulo-2-Addition
eines duplizierten Endbits des nachfolgenden 6-Bit-Datensegments und einem unterschiedlich permutierten
Chiffrierschlüssel-Bit ergeben, werden decodiert zur Auswahl einer von vier Funktionstabellen, von denen
jede 16 Einträge enthält Zur Speicherung dieser Funktionstabellen weist jede der Schaltungen 550 bis
564 einen Festwertspeicher auf, der für jeden Eintrag vier Bitstellen enthält Durch Decodierung der restlichen
vier Bits der 6-Bit-Segmente die den Schaltungen 550 bis 564 zugeführt werden, wird einer der 16 Anträge
in der ausgewählten Funktionstabelle adressiert Die S-Schaltungen 515 bis 564 unterscheiden sich voneinander,
indem sie acht unterschiedliche Transformierungsfunktionen ausführen, wodurch acht Segmente zu je vier
Bits erzeugt werden, die einen Substitutionssatz von 32 Bits bilden, der daraufhin in einer Permutationsschaltung
600 einer linearen Transformierung unterzogen wird in Form einer beliebigen aber festen Permutation.
Die Kombination der nichtlinearen und der linearen Transformation ergibt eine aus 32 Bits bestehende
Ergebnis-Blockchiffre der ersten Hälfte des zu chiffrierenden Informationsblocks, die Modulo-2-Addierern
650 bis 664 zugeführt wird. Die 32 Datenbits der zweiten Hälfte des Informationsblocks werden aus dem Register
250 ebenfalls den Modulo-2-Addierern 650 bis 664 zugeführt und durch diese Schaltungen entsprechend
der Ergebnis-Biockchiffre modifiziert. Das Ergebnis dieser Operation isx eine modifizierte zweite Hälfte des
Informationsblockes, die aus acht Gruppen zu je vier Bits besteht. Dieser modifizierte Teil des Informationsblockes wird dazu benutzt, die erste Hälfte des
ursprünglichen Informationsblockes im Register 200 zu ersetzen. Diese Hälfte wird jedoch zuvor dem Register
250 zugeführt und ersetzt dort die zweite Hälfte des Informationsblockes. Während der nächsten Iteration
der Chiffrierungsoperationen wird der Chiffrierschlüssel, der sich zu dieser Zeit in den Registern 350 und 4OC
befindet, entsprechend einem vorgegebenen Stellenverschiebeplan verschoben, um einen neu permutierter
Satz von Chiffrierschlüssel-Bits zu erhalten. Die zi dieser Zeit im Register 200 gespeicherte modifizier«
zweite Hälfte des Informationsblockes wird nun mit der neuen Chiffrierschlüssel-Bits der oben erläuterter
Chiffrieroperation unterzogen. Das Resultat diesel Operation wird wiederum den Modulo-2-Addierern 65<
bis 654 zugeführt, um die erste Hälfte des Informations blockes, die zu dieser Zeit im Register 250 gespeicher
ist, zu modifizieren. Das Ergebnis der Modifizierungs operation wird wiederum dem Register 200 zugeführ
und ersetzt dort die modifizierte zweite Hälfte de Informationsblocks, die jedoch zuvor dem Register 251
zugeführt wird, um dort die erste Hälfte de Informationsblocks zu ersetzen. Während jeder de
restlichen Iterationen mit Ausnahme der letzten werdei die Chiffrierschlüssel-Bits in den Registern 360 und 4Ö
entsprechend dem Stellenverschiebeplan verschober um jeweils einen neuen Satz permutierter Chiffrier
ίο
schlüssel-Bits verfügbar zu machen. Des weiteren wird
in jeder Iteration die jeweils im Register 250 enthaltene modifizierte Hälfte des Informationsblocks remodifiziert
gemäß der Ergebnis-Blockchiffre der vorausgehend modifizierten Hälfte des Informationsblocks, die
jeweils im Register 200 enthalten ist. Die sich ergebende remodifizierte Hälfte des Informationsblocks ersetzt
jeweils die vorausgehend modifizierte Hälfte des Informationsblocks im Register 200, die jeweils zuvor in
das Register 250 übertragen wird und den dortigen ,0
Inhalt ersetzt Während der letzten Iteration werden die Chiffrierschlüssel-Bits in den Registern 350 und 400 ein
letztes Mal verschoben zur Bildung eines letzten Satzes von permutierten Chiffrierschlüssel-Bits, und es findet
eine letzte Remodifizierung der bereits mehrfach modifizierten Hälfte des Informationsblocks im Register
250 statt gemäß der Ergebnis-Blockchiffre der vorausgehend zuletzt modifizierten Hälfte des Informationsblockes,
die im Register 200 enthalten ist. Das sich hierbei ergebende Resultat und der Inhalt des Registers
200 stellen die chiffrierte Version des ursprünglichen Informationsblocks dar. Dies ist der Fall nach Ablauf der
16. Iteration. Der chiffrierte Informationsblock wird einem oberen Ausgangspuffer (LJOB) 700 und einem
unteren Ausgangspuffer (LOB) 750 zugeführt. Der chiffrierte Block besteht aus 64 Bits, von denen vier
Bytes zu je acht Bits im Puffer 700 und die restlichen Bytes im Puffer 750 enthalten sind. Die in den Puffern
700 und 750 zwischengespeicherten Bytes sind daraufhin Gegenstand einer Parallel/Serien-Umsetzung, die in
der Umsetzerschaltung 800 ausgeführt wird. Es sind acht Zyklen notwendig, um alle 64 Bits des chiffrierten
Blocks umzusetzen. Dabei wird jedes Byte linear
permutiert, um die chiffrierten Informationsbits den richtigen Bitleitungen der zur Empfangsstation führenden
Ausgangssammelleitung zuzuführen.
An der Empfangsstation findet eine Dechiffrierung des übertragenen Informationsblockes unter der Steuerung
des gleichen Chiffrierschlüssels in 16 Iterationen statt. Die hierzu benützte Schaltung entspricht der in
F i g. 2 dargestellten. Es findet jedoch keine Vorausverschiebung des Chiffrierschlüssels in den Registern 350
und 400 statt, wie dies am Beginn der Chiffrieroperation der Fall war. Im übrigen wird jedoch während der
Dechiffrier-Iterationen der Inhalt der Register 350 und 400 gemäß einem vorgegebenen Stellenverschiebeplan
um eine oder zwei Bitpositionen verschoben, und zwar in entgegengesetzter Richtung zu den Stellenverschiebungen,
die während der Chiffrieroperation ausgeführt worden sind. Hierdurch werden die in der Sendestation
ausgeführten Chiffrier-Schritte sukzessive rückgängig gemacht und der Informationsblock in seiner Originalform reproduziert. Der Inhalt der Register 300 und 400
wird während der Dechiffrier-Iterationen zusätzlich um 27 Bitpositionen verschoben. Da die Register 350 und ss
400 Schieberegister mit 28 Bitstellen sind, findet hierdurch eine Verschiebung des Chiffrierschlüssels in
den Registern 350 und 400 um eine zusätzliche Bitposition statt. Dies ermöglicht einen vollständigen
Umlauf des Chiffrierschlüssels in den Registern 350 und im
400 gemäß dem vorgegebenen Stellenverschiebeplan, um die Ausrichtung der Bits des Chiffrierschlüssels
während jeder Iteration sicherzustellen und um den nächsten Dechiffrierprozeß vorzubereiten.
Die oben erläuterte Chiffrieroperation kann durch ds
eine Chiffrierfunktion und eine Schlüsselplanfunktion beschrieben werden. Wenn der aus 64 Bits bestehende
Eingangs-Informationsblock aufgeteilt wird in einen 32 Bit umfassenden Teilblock L und einen 32 Bits
umfassenden Teilblock R kann der zu chiffrierende Informationsblock mit LR bezeichnet werden. Wenn
des weiteren die Chiffrierschlüsselbits aus einem Chiffrierschiüssel KEY ausgewählt werden, kann der
benutzte Satz von Chiffrierschlüsselbits mit K bezeichnet werden. Für alle Iterationen mit Ausnahme der
letzten kann das Resultat mit L' R' bezeichnet werden bei einem Eingang von LR. Es gilt dann folgendes:
L = R,
0)
Hierin bedeutet Θ eine bitweise Modulo-2-Addition
und K der vor jeder Iteration aus dem Chiffrierschlüssel KEY ausgewählte Satz von Chiffrierschlüsselbits. Da
nach jeder Iteration mit Ausnahme der letzten das Resultat weiter verwendet wird, kann das Ergebnis uer
letzten Iteration mit einem Eingang von LR mit L' R' bezeichnet und wie folgt definiert werden:
L=L + f{R,K),
R' = R.
(2)
Wenn zusätzlich ein Schlüsselplan KS definiert wird als Funktion einer ganzzahligen Größe η im Eiereich
zwischen 1 und 16, kann die permutierte Auswahl der Chiffrierschlüsselbits aus dem Chiffrierschlüssel KEY
mit Knbezeichnet und wie folgt definiert werden:
Kn= KS (n, KEY).
(3)
Wenn danach L0 und R0 den Größen L und R
entspricht und Ln und Rn den Größen L' und R'
entspricht, bzw. wenn L„_, und «„_, den Größen L und
R entspricht, kann das Ergebnis einer Iteration wie folgt definiert werden bei π von 1 bis 15:
Ln =
(4)
/(K11-,, Kn).
Da das Resultat ihrer Iteration mit Ausnahme der letzten erneut zum Eingang der Chiffriereinrichtung
zurückgeführt wird, kann der Ausgang der letzten Iteration wie folgt definiert werden bei n= 16:
L11 = L11., θ/(Kn-,, KJ,
Kn= Rn..,.
(5)
In der Chiffrieroperation wird K, zur Bezeichnung
der ersten Iteration K2 zur Bezeichnung der zweiten
Iteration usw. bis K\b zur Bezeichnung der sechzehnten
Iteration verwendet. Es wird hierzu auf das Ablaufdiagramm von F i g. 8 Bezug genommen, das die einzelnen
Iterationsdurchläufe in vereinfachter Darstellung zeigt.
Die Chiffrierfunktionen /γ/?, K) können in Begriffen
der primitiven Funktionen als Auswahlfunktionen und Permutationsfunktionen bezeichnet werden. Wenn
daher ein 32 Bits umfassender Informationsblock R erweitert wird zu einem Block von 48 Bits, kann der
letztere Block E(R)bezeichnet werden. Dieser erweiterte Block E(R) wird durch eine Modulo-2-Addition
kombiniert mit einem Satz Chiffrierschlüsselbits K, die nach einer willkürlichen gewählten, aber gleichbleiben
de B bil
S je d;
Bits
:nde
'enn
nem
:nde
'enn
nem
der
:ich-
:ich-
der
•den
•den
ition
jssel
. Da
das
> der
I' R'
jssel
. Da
das
> der
I' R'
wird
eich
der
eich
der
R
R'
und
>lgt
>lgt
der
ung
ten
ung
ten
den Permutation ausgewählt werden, um acht Segmente ö 1 bis 08 zu je sechs Bits zu erzeugen. Diese Segmente
bilden die Argumente für acht unterschiedliche Auswahlfunktionen S1 bis 58. Die Modulo-2-Addition kann
daher wie folgt definiert werden:
E(R) ® K = B1,B2,B3, B4, BS, 86, B7undß8.
Jede unterschiedliche Auswahlfunktion S1 transformiert
ein unterschiedliches 6-Bit-Segment Bi in ein 4-Bit-Segment, wobei die acht unterschiedlichen Auswahlfunktionen
wie folgt definiert werden können: Sl(Bl),S2(B2),S3(ß3),S4(fl4),S5 (B5),S6(B6),
57 (B 7) und 5 8 (B 8). Die acht Ausgangssegmente zu
je vier Bits der acht Auswahlfunktionen werden daraufhin zu einem einzelnen 32 Bits umfassenden Block
zusammengefaßt, der durch eine Permutationsfunktion Pin einen neuen Block mit 32 Bits permutiert wird, der
wie folgt definiert ist:
P[Sl (Bl), S2{B2), S3 (B3), S4(B4), S5 (B5), S6 (B6),
S7(B7),S8(B8)] (?)
und der die Chiffrierfunktion f(R, /^darstellt
Die oben erläuterte Dechiffrieroperation kann ebenfalls in den Begriffen einer Chiffrierfunktion und
einer Schlüsselplanfunktion beschrieben werden. Wenn dementsprechend der chiffrierte Eingangs-Informationsblock
aus einem 31 Bits umfassenden Teilblock L' und einem 32 Bits umfassenden Teilblock R' besteht,
kann der chiffrierte Eingangs-lnformationsblock mit L'R' bezeichnet werden. Der Ausgang der ersten
Iteration mit einem Eingang L' R' kann nach der Rückführung umbenannt werden in LR und wie folgt
definiert sein:
L = L'®f(R',K),
R = R'.
Hierbei wird nach jeder Iteration ein unterschiedlicher Satz K von Chiffrierschlüsselbits aus dem
Chiffrierschlüssel KEY ausgewählt in umgekehrter Reihenfolge wie bei der Chiffrieroperation. Nach der
ersten Iteration wird jede nachfolgende Iteration umgesetzt mit Ausnahme der letzten, so daß das
Resultat jeder nachfolgenden Iteration bei einem Eingang von L1R' die Bezeichnung LR trägt und wie
folgt definiert werden kann:
L = R' φ J(L, K),
R =- /Λ
Wenn Ln und Rn für L und R geschrieben wird und
dementsprechend Ln-1 und Rn _i für U und R'
geschrieben wird, kann damit der Ausgang der ersten Iteration bei n-16 wie folgt definiert werden:
/.„ , - /„(])./(Kn. K„).
Rn , = R11.
(10) jeder folgenden Iteration für η im Bereich von 15 bis 1
wie folgt definiert werden:
n-, = R„0/(L„, K„),
(H)
Da das Ergebnis nach jeder Iteration umgesetzt wird mit Ausnahme der letzten Itcration, kann das Ergebnis
ίο In der Dechiffrieroperation wird Kn zur Bezeichnung
der ersten Iteration, /C15 zur Bezeichnung der zweiten
Iteration bis K\ zur Bezeichnung der sechzehnten Iteration benützt, wie aus F i g. 8 ersichtlich ist.
In einer Datenverarbeitungsanlage führt eine Sende-
is station eine Chiffrieroperation aus, in welcher eine
Produkt-Blockchiffre der ersten Hälfte eines Informationsblocks abgeleitet wird durch eine erste Modifikation
der ersten Hälfte des Informationsblockes in Übereinstimmung mit einem permutierten Chiffrierschlüssel,
gefolgt von einer nichtlinearen Substitution und einer sich anschließenden linearen Permutation.
Das Resultat dieser Operationen wird daraufhin zur Modifikation der zweiten Hälfte des Informationsblokkes
verwendet Die modifizierte zweite Hälfte des Informationsb'ockes und die ursprüngliche erste Hälfte
des Informationsblockes werden daraufhin ausgetauscht, so daß die modifizierte zweite Hälfte des
Informationsblockes als Argument für eine Iteration der Produkt-Blockchiffre-Operation dient unter der Steuere
rung des permutierten, in Übereinstimmung mit einem vorgegebenen Verschiebeplan verschobenen Chiffrierschlüssels,
um die erste Hälfte des Informationsblocks zu modifizieren. Es werden 16 Iterationen der
Produkt-Blockchiffre-Operationen ausgeführt, in wel-
.15 chen jeweils das Resultat der einen als Argument der
nächsten dient und an deren Ende das dann vorliegende Resultat die chiffrierte Version des ursprünglichen
Informationsblockes darstellt. An der Empfangsstation wird eine Dechiffrieroperation unter der Steuerung des
gleichen Chifl'rierschlüssels in ähnlicher Weise in 16 Iterationen der Produkt-Blockchiffre-Operation ausgeführt
wobei der Chiffrierschlüssel in entgegengesetzter Richtung wie beim Chiffriervorgang verschoben wird,
um so jede während der Chiffrierung ausgeführte Iteration rückgängig zu machen und die Originalversion
des Informationsblockes zu reproduzieren.
Im folgenden wird anhand der F i g. 3a bis 3j die oben erläuterte Chiffriereinrichtung unter Bezugnahme auf
die Impulszeitdiagramme von F i g. 7a und 7b im Detail
so beschrieben.
Zuvor wird anhand von F i g. 4 eine Verriegelungsschaltung erläutert, wie sie in der hierin beschriebener
Chiffriereinrichtung für verschiedene Funktionen ver wendet wird. Die Verriegelungsschaltungg 10 besteh
ss aus dynamischen Feldeffekt-Transistoren, die nacl
einem 4-Phasen-Takt arbeiten, wie es die Fig.5 zeigl
wobei jede Phase 250 Nanosekunden lang ist, so dal sich eine Dauer von einer Mikrosekunde für einei
vollständigen Taktzyklus ergibt. Ein FET 22 ist zwische:
ι«, Pluspotential und einer Leitung 28 angeordnet und mi seiner Torelektrode an eine Eingangsleitung ange
schlossen, die wiederkehrend ein Taktsignal 01 zugt führt erhält. Parallelgeschaltete Paare von FETs 23, 2
und 25,26 sind zwischen Leitungen 28 und 29 geschalte Die Tcrelektroden dieser Transistoren sind m
Eingangsleitungen D 3, G 3 und D 4, G 4 verbunden. Ei FET 30 befindet sich zwischen der Leitung 29 ur
Erdpotential und erhält an seiner Torelektrode wiede
auftretende Taktrignale 02 zugeführt. Eine Gruppe
von drei in Serie geschalteten FET 32, 33 und 24 sind
zwischen Pluspotential und Erdpotential geschaltet Der Transistor 32 erhält über seine Torelektrode wiederholt
auftretende Taktsignale 03 zugeführt, und der Transistor 34 erhält über seine Torelektrode wiederholte
auftretende Taktsignale 04 zugeführt Die Torelektrode des Transistors 33 ist an die Leitung 28 angeschlossen.
Die Verbindung zwischen den Transistoren 32 und 33 ist mit einer Ausgangsleitung 36 gekoppelt, die den
Signalausgang der Verriegelungsschaltung 10 darstellt und die über eine Rückführleitung zur Eingangsleitung
D 4 der Torelektrode des Transistors 25 zurückgeführt ist Die Streukapazitäten und die internen Elektrodenkapazitäten
der Schaltung sind zusammengefaßt als strichlierte Kondensatoren 31 und 35 dargestellt Die
FET-Paare 23, 24 und 25, 26 haben die Funktion von Und-Schaltungen, und die Leitung 28 dient als
Oder-Zusammenschaltung, während der FET 23 die Funktion eines Inverters hat
Unter Bezugnahme auf das Impulszeitdiagramm von F i g. 5 wird angenommen, daß die Verriegelungsschaltung
10 ihren 0-Zustand einnimmt. Wenn zu dieser Zeit ein Taktsignal 01 zugeführt wird, um den Transistor 22
leitend zu machen, wird die Leitung 28 aud Phsspotential gebracht zumal der Transistor 30 wegen der Abwesenheit
des Taktsignals 02 nichtleitend ist Wenn als nächstes das Taktsignal 02 auftritt wird das Potential
der Leitung 28 aufrechterhalten oder reduziert in Abhängigkeit von den Signalen, die an den Eingängen
D3, G3 oder DA, GA auftreten. Da die Verriegelungsschaltung 10 im 0-Zustand steht, hält ein Signal mit
niedrigem Signalpegel am Eingang DA den Transistor 25 nichtleitend, und ein Signal mit niedrigem Signalpegel
am Eingang GA hält den Transistor 26 nichtleitend, wodurch ein Entladepfad über die Transistoren 25, 26
und 30 blockiert ist Wenn ein 1-Bit (hoher Signalpegel) am Eingang D 3 gleichzeitig mit einem Torsignal
(ebenfalls hoher Signalpegel) am Eingang G 3 auftritt,
werden die Transistoren 23 und 24 leitend und bilden einen Entladepfad über den Transistor 30 für das
Potential auf Leitung 28. Wenn andererseits ein O-Bit
(niedriger Signalpegel) an den Eingang D 3 gleichzeitig mit einem Torsignal an den Eingang G 3 angelegt wird,
dann bleibt während der Taktzeit 02 der Transirtor 23 gesperrt und blockiert so den Entladepfad über die
Transistoren 24 und 30, so daß der hohe Signalpegel auf Leitung 28 erhalten bleibt
Wenn das Taktsignal 03 als nächstes an die Torelektrode des Transistors 32 angelegt wird, tritt ein
Potentialanstieg auf der Leitung 36 auf, da der Transistor 34 nichtleitend bleibt wegen der Abwesenheit
des Taktsignals 04. Bei Anlegen des Taktsignals 04 an die Torelektrode des Transistors 34 bleibt das hohe
Signalpotential auf der Leitung 36 erhalten oder fließt ab in Abhängigkeit vom Signal auf der Leitung 28. Wenn
die letztere Leitung auf niedrigem Signalpegel ist und damit ein 1-Bit darstellt, bleibt der Transistor 33 zur
Taktzeit 04 nichtleitend, wodurch der Entladepfad von der Leitung 36 über den Transistor 34 gesperrt bleibt
und der hohe Signalpegel auf der Leitung 36, der die Anwesenheit eines 1-Bits anzeigt, erhalten bleibt.
Während der Taktzeit 04 wird ein positives Eingangssigna!
am Eingang DA zusammen mit einem positiven Eingangssignal am Eingang GA wirksam, um den
Entladepfad für die Leitung 28 aufrechtzuerhalten, so daß diese Leitung auf niedrigem Potential bleibt
unabhängig von den Signalen an den Eingängen D 3 und
G 3. Wenn andererseits die Leitung 28 ein hohes Potential führt, was den Empfang eines O-Bits am
Eingang anzeigt wird während der Taktzeit 04 der Transistor 33 leitend und stellt damit einen Entladepfad
über den Transistor 34 her, so daß der die Anwesenheit eines O-Bits anzeigende niedrige Signalpegel auf der
Leitung 36 anwesend bleibt In diesem Falle wird während der Taktzeit 04 ein Signal mit niedrigem Pegel
am Eingang DA wirksam, um den Transistor 25 nichtleitend zu halten, wodurch der Entladepfad für die
Leitung 28 blockiert wird und der hohe Signalpegel dieser Leitung erhalten bleibt Dies hat zur Folge, daß
der Transistor 33 nichtleitend bleibt und damit den Entladepfad über den Transistor 34 aufrechterhält so
daß die Leitung 36 auf niedrigem Potential bleibt Während der Taktzeit 04 wird daher eine gültige
Ausgangsanzeige der Verricgelungsschaltung 10 gewährleistet
Wenn sich die Verriegelungsschaltung 10 im 1-Zustand
befindet, wird ein Taktzyklus eingeleitet durch
Auftreten ei.ies Signals am Eingang 01, das den
Transistor 22 leitend hält und damit für ein Pluspotential auf der Leitung 28 sorgt Das als nächstes auftretende
Taktsignal 02 bewirkt eine Aufrechterhaltung oder eine Verminderung des Potentials auf der Leitung 28 in
Abhängigkeit von den Signalen, die den Eingängen D 3, G3 oder DA und G4 zugeführt werden. Wird ein
1-Datenbit an den Eingang DZ angelegt, so stellt sich
ein niedriger Signalpegel auf der Leitung 28 ein, während bei Anlegen eines O-Bits am gleichen Eingang
der hohe Signalpegel auf der Leitung 28 erhalten bleibt Ein Taktsignal 03 an der Torelektrode des Transistors
32 bewirkt einen Potentialanstieg auf der Leitung 36, da zu dieser Zeit der Transistor 34 nichtleitend ist Bei
Auftreten des Taktsignals 04 wird das zuvor eingestellte Potential auf der Leitung 36 erhalten oder wieder
abgesenkt in Abhängigkeit vom Potential der Leitung 28. Wenn ein niedriges Potential auf Leitung 28
vorhanden ist, entsprechend einem 1-Bit am Eingang der Schaltung, bleibt das hohe Potential auf Leitung 36
erhalten und zeigt damit die Anwesenheit eines 1-Bits an. Wenn dagegen auf der Leitung 28 ein Signal mit
hohem Pegel erscheint, das ein 0-Eingangsbit darstellt,
geht die Leitung 36 auf ein niedriges Potential über und zeigt damit, wie vorausgehend beschrieben, ein O-Bit an.
Die Verriegelungsschaltung 10 kann durch Hinzufügung von Feldeffekttransistoren 18 und 19 in eine Schaltung
mit zwei Eingängen erweitert werden, der zusätzliche
Eingangssignale Ober D1 und G1 zugeführt werden,
oder durch Hinzufügung der Transistoren 20 und 21 zu einer Schaltung mit drei Eingängen erweitert werden,
der die zusätzlichen Eingangssignale über D 2 und G 2 zugeführt werden. In der hierin beschriebenen Chiffriereinrichtung
wird die Verriegelungsschaltung von F i g. 4 wahlweise als Schaltung mit einem, mit zwei oder mit
drei Eingängen benutzt
Die F i g. 3a zeigt die Permutationsschaltung 50 von F i g. 2, welcher der zu chiffrierende Informationsblock
byteweise zugeführt wird. Jedes Byte wird einer Anfangspermutation unterzogen und in der beschriebenen
Weise in zwei Hälften unterteilt, von denen die eine dem Puffer 100 und die andere dem Puffer 150 zugeführt
wird. Jeder dieser beiden Puffer besteht aus vier Schieberegistern OUIB, WIB, 2UIB, 3UIB und OLIB,
XLIB, 2LIB, 3LIB, von denen jedes acht Stufen bzw. Bitstellen aufweist Die erste und die letzte Stufe des
Schieberegisters OUIB ist in Fig.3a dargestellt; die
anderen Stufen gleichen diesen beiden und ebenso
L b( D
di S, L st ei ei ir d el
P F
;s
τι
:r
d
it
;r
d
gleichen die anderen Schieberegister dem Schieberegister OUIB.
Zur Erläuterung der Operation der Schieberegister wird auf das Impulszeitdiagramm von Fig.7a Bezug
genommen. Während des Zyklus 0, wenn ein gültiges Datenbyte den Puffern 100 und 150 über die Schaltung
50 zugeführt wird, werden Taktsignale an Leitungen LIB (G 3) und LIB (G 4) angelegt Diese Signale
bewirken, daß das erste aus acht Bits bestehende Datenbyte in die Verriegelungsschaltungen der ersten ι ο
Stufe eines jeden der Schieberegister in den Puffern 100 und 150 eingestellt wird. Während der folgenden Zyklen
1 bis 7 werden die restlichen Bytes des Informationsblockes in der gleichen Weise den Puffern 100 und 150
zugeführt Hierbei wird jeweils jedes Bit des betreffenden Bytes der ersten Stufe (D 3) des betreffenden
Schieberegisters zugeführt Da die Signale auf den Leitungen LIB und LIB an jede Stufe der Schieberegister
angelegt werden, erfolgt während der Zyklen 1 bis 7 eine Verschiebung der jeweils in der ersten Stufe
eingestellten Datenbits jeweils um eine Bitstelle parallel in allen Schieberegistern. Am Ende des Zyklus 7 sind
daher die Puffer 100 und 150 mit den zwei Hälften des zu chiffrierenden Informationsblockes geladen. Die beiden
Puffer führen eine Serien/Parallel-Umsetzung aus in der Form, daß die in jedem Puffer gespeicherten acht Bytes
parallel auf 32 Ausgangsleitungen UIBO bis UIB 31 und LIBO bis LIB 31 der Puffer 100 und 150 erscheinea
Zur gleichen Zeit, wenn der Informationsblock den Puffern 100 und 150 zugeführt wird, erfolgt eine
byteweise Zuführung des Chiffrierschlüssels über die Schlüsseleingangssammelleitung zur Permutationsschaltung
300. Jedes dieser Bytes wird in der Schaltung 300 einer Anfangspermutation unterzogen, dergestalt,
daß es in der beschriebenen Weise in zwei Teile aufgeteilt wird, von denen der eine aus vier Bits ,
bestehende Teil dem Register 350 und der andere aus drei Bits bestehende Teil dem Register 400 zugeführt
wird. Die Register 350 und 400 bestehen aus je drei Schieberegistern OUKR, WKR, 2UKR und OLKR,
XLKR, 2LKR, von denen jedes acht Stufen aufweist,
sowie aus je einem vierstufigen Schieberegister 3UKR und 3LKR. Der Ausgang der vierten Stufe des
Schieberegisters 3UKR ist mit dem Eingang der ersten Stufe des Schieberegisters 3LKR verbunden. Das
achtstufige Schieberegister OUKR besteht aus einer Verriegelungsschaltung 352 mit drei Eingängen, welche
die erste Stufe bildet, sowie aus sieben Verriegelungsschaltungen mit je zwei Eingängen, von denen in
F i g. 3b lediglich zwei in Form der zweiten Verriegelungsschaltung
354 und der letzten Verriegelungsschaltung 366 dargestellt sind. Ebenso besteht das Schieberegister
1UKR aus einer Verriegelungsschaltung 368 mit
drei Eingängen für die erste Stufe und sieben Verriegelungsschaltungen mit je zwei Eingängen, von
denen die Verriegelungsschaltung 370 der zweiten Stufe und 382 der letzten Stufe dargestellt sind. Das
Schieberegister 2UKR ist in Fig.3c lediglich als ein
Block dargestellt da es in seinem Aufbau dem Schieberegister XUKR entspricht. Das vierstufige do
Schieberegister 3UKR weist eine Verriegelungsschaltung 384 mit drei Eingängen auf für die erste Stufe sowie
drei Verriegelungsschaltungen mit je zwei Eingängen für die übrigen Stufen, von denen lediglich die
Verriegelungsschaltung 390 der letzten Stufe dargestellt ist. Die achtstufigen Schieberegister OLKR, XLKR und
2LKR des Registers 400 sind in Blockform in den FiE. 3c und 3d gezeigt; sie sind identisch den
Schieberegistern OUKR, XUKR und 2UKR des Registers
350. Das vierstufige Schieberegister 3LKR besteht aus einer Verriegelungsschaltung 402 mit drei Eingängen,
die die erste Stufe bildet und die an die Verriegelungsschaltung 390 der letzten Stufe des
Schieberegisters 3UKR angeschlossen ist, sowie aus drei Verriegelungsschaltungen mit je zwei Eingängen,
von denen lediglich die Verriegelungsschaltung 408 der letzten Stufe in F i g. 3d gezeigt ist Die Register 350 und
500 weisen somit zusammen sieben Schieberegister mit je acht Stufen zur Speicherung der Bits des Chiffrierschlüssels
auf.
Nach dem Zeitdiagramm von Fig.7a werden während der Zykluszeit O1 wenn ein gültiges Byte des
Chiffrierschlüssels den Registern 350 und 400 über die Permutationsschaltung 300 zugeführt wird, Taktsignale
an Leitungen LDK (G 3) und LDK (G 4) angelegt Diese Leitungen sind mit den ersten Stufen der Schieberegister
OUKR, XUKR, 2UKR, 3UKR, OLKR, XLKR und
2LKR verbunden und bewirken, daß das erste Byte des Schlüssels in die ersten Stufen der vorgenannten
Schieberegister eingegeben wird, z. B. in die Verriegelungsschaltungen
352,368,384 und 4OZ
Während des Zyklus 1 wird das zweite Byte des Chiffrierschlüssels zugeführt und in die ersten Stufen
der Schieberegister in den Registerschaltungen 350 und 400 geladen. Zur gleichen Zeit wird der vorausgehende
Inhalt dieser Stufen, nämlich das erste Byte des Schlüssels, um eine Bitstelle verschoben unter der
Wirkung von Taktsignalen auf einer Leitung SR (G 3) und auf der Leitung LDK, die jeweils mit der zweiten
Stufe eines jeden Schieberegisters OUKR, XUKR, 2UKR,3UKR,OLKR, XLKRund 2LKR verbunden sind.
Die Schaltzeit innerhalb der Verriegelungsschaltungen ist ausreichend kurz, um eine Verschiebeoperation
auszuführen, bevor ein Signalwechsel am Ausgang der vorausgehenden Stufe in Erscheinung tritt
Während des Zyklus 2 wird das dritte Byte des Chiffrierschlüssels in den ersten Stufen der Schieberegister
in den Registerschaltungen 350 und 400 geladen. Zur gleichen Zeit wird der vorherige Inhalt der ersten
und der zweiten Stufen dieser Schieberegister um eine Bitstelle verschoben. Dies geschieht unter der Wirkung
von Taktsignalen auf den Leitungen SR und LDK, die jeweils mit den zweiten und dritten Stufen der
Schieberegister verbunden sind.
Während der Zyklen 3 und 4 werden das vierte und fünfte Byte des Schlüssels zugeführt und der Inhalt der
Schieberegister in den Schaltungen 350 und 400 erneut um je eine Bitposition verschoben. Hierbei wird
während des Zyklus 4 das Bit in der letzten Stufe des Schieberegisters 3 UKR in die erste Stufe des Schieberegisters
3LKR verschoben. Während der Zyklen 5,6 und
7 werden die restlichen Bytes des Schlüssels den ersten Stufen der Schieberegister in den Schaltungen 350 und
400 zugeführt bei gleichzeitiger Verschiebung des Inhalts dieser Schieberegister um eine Bitposition, so
daß am Ende des Zyklus 7 die Registerschaltungen 350 und 400 die zwei Hälften des Chiffrierschlüssels
enthalten. Diese Register führen eine Serien/Parallel-Umsetzung durch, so daß die acht in den Registern 350
und 400 enthaltenen Bytes als zwei parallele Bitketten zu je 28 Bits am Ausgang dieser Register in Erscheinung
treten. Die Zuordnung der Schieberegisternositionen in
den Registern 350 und 400 zu den einzelnen Bits des Chiffrierschlüssels ist aus den folgenden Tabellen 1 und
2 ersichtlich. Die Tabelle 1 gibt die Zuordnung für das Register 350 an und die Tabelle 2 für das Register 400.
AA
Tabelle 1 | I | Register 350 | 7 | Chiffrierschlüsselbits | 48 | 40 | 32 | 24 | 16 | 8 | 0 |
Stufen im | - UKR | 15 | 56 | 49 | 41 | 33 | 25 | 17 | 9 | 1 | |
UKR O | - UKR | 23 | 57 | 50 | 42 | 34 | 26 | 18 | 10 | 2 | |
UKR 8 | - UKR | 27 | 58 | 51 | 43 | 35 | |||||
UKR 16 | - UKR | 59 | |||||||||
UKR 24 | Tabelle 2 | Register 400 | Chiffrierschlüsselbits | ||||||||
Stufen im | |||||||||||
LKR 0 - LKR 7 LKR 8 - LKR 15
LKR 16 - LKR 23
LKR 24 - LKR 27
62 54 46 38 30 22 14 6
61 53 45 37 29 21 13 5
60 52 44 36 28 20 12 4
27 19 11 3
27 19 11 3
Die in F i g. 3a dargestellten Register (UDR) 200 und (LDR) 250 bestehen aus je 32 Stufen, von denen jede
durch eine Verriegelungsschaltung OUDR bis 31UDR
und OLDR bis 31LDR gebildet wird. Während des
Zyklus 8 werden Taktsignale auf Leitungen IBT und LDR erzeugt die eine Parallelübertragung der 32 Datenbits
im Puffer 100 und der 32 Datenbits im Puffer 150 in die Register 200 und 250 veranlassen. Es ergibt sich
daraufhin die aus den Tabellen 3 und 4 ersichtliche Bitverteilung für die Speicherstellen der Register 200
und 250, wobei sich die Tabelle 3 auf das Register 200 und die Tabelle 4 auf das Register 250 bezieht
Stufen im Register 200
Oatenbits
UDR 0 - UDR 7 UDR 8 - UDR 15
UDR 16 - UDR 23
UDR 24 - UDR 31
56 48 40 32 24 16 8 0
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
Stufen im Register 250
Datenbits
LDR 0 - LDR 7 LDR 8 - LDR 15
LDR 16 - LDR 23
LDR 24 - LDR 31
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
Nach dem Zyklus 7 werden auf der Leitung LDK keine weiteren Taktsignal erzeugt Dementsprechend
wird die Verbindung von der letzten Verriegelungsschaltung 390 des Schieberegisters 3UKR zur ersten
Verriegelungsschaltung 402 des Schieberegisters 3LKR nicht länger aufrechterhalten. Der Ausgang der
Verriegelungsschaltung 390 im Schieberegister 3UKR wird nun mit dem Eingang der ersten Stufe 352 des
Schieberegisters OUKR verbunden, und der Ausgang der letzten Verriegelungsschaltung 4OB im Schieberegister
3LKR wird zur ersten Verriegelungsschaltung im Schieberegister OLKR durchgeschaltet Damit können
die beiden Register 350 und 400 die Funktion von zwei unabhängigen Schieberegistern mit je 28 Bitpositionen
übernehmea Vor dem Chiffrierprozeß werden die in den Registern 350 und 400 enthaltener. Bits des
Chiffrierschlüssels zunächst um eine Bitposition aufwärts (= vorwärts) verschoben, wobei das in der ersten
Verriegelungsschaltung 352 des Registers 350 enthalte-
25
35
40 ne Bits zur letzten Verriegelungsschaltung 390 dieses Schieberegisters zurückverschobem wird und wobei das
Bit in der ersten Stufe des» Registers 400 in die letzte Stufe 408 dieses Registers verschoben wird. Dies
geschieht im Zyklus 8 durch ein Taktsignal auf einer Leitung SL, die an jede Stufe der Register 350 und 400
angeschlossen ist Der Ausgang einer jeden Verriegelungsschaltung ist mit der vorausgehenden Verriegelungsschaltung
verbunden. Diese Verbindung wird durch das Taktsignal auf der Leitung SL zur
Übertragung der Bits in die jeweils vorausgehende Verriegelungsschaltung wirksam gemacht Beispielsweise
ist der Ausgang UKR1 der Verriegelungsschaltung
354 mit einem Eingang der Verriegelungsschaltung 352 verbunden, der durch das Signal auf der Leitung SL
wirksam wird zur Verschiebung des Speiicherinhalts der Verriegelungsschaltung 354 in die Verriegelungsschaltung
352 Diese Vorausverschiebung des Chiffrierschlüssels um eine Bitposition vor dem Beginn der
eigentlichen Chiffrieroperation ist notwendig zur korrekten Ausrichtung der Schlüsselbits in der ersten
Iteration der Chiffrieroperation. Während der folgenden Chiffrieroperation wird der Inhalt der Register 350
und 400 während jeder Iteration jeweils um eine oder zwei Bitpositionen in Vorwärtsrichtung verschoben mit
Aufnahme der ersten Operation, so daß insgesamt 27 zusätzliche Verschiebungen der Bits des Chiffrierschlüssels
stattfinden. Da die Register 350 und 400 als rückgekoppelte Schieberegister wirksam sind, bewirken
die insgesamt 28 Stellenverschiebungen, die sich aus einer Vorausverschiebung und 27 Operationsverschiebungen
zusammensetzen, eine korrekte Ausrichtung der Bits des Chiffrierschlüssels am Beginn der Chiffrieroperation.
Der Stellenverschiebeplan für den Chiffriervorgang ist aus der nachfolgenden Tabelle 5 zu ersehen:
Tabelle 5
Chiffrierschlüssel-Stellenverschiebeplan
Chiffrierschlüssel-Stellenverschiebeplan
Iteration Nr. Chiffrieren
(Vorwärtsverschiebung)
(Vorwärtsverschiebung)
Dechiffrieren
(Rückwärts-
verschiebung)
45 (Vorausverschiebung)
55 4
60 6
65 9 1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
;es las tte ies ier
ird ur de ei-
er il-.ser ar ;n n-K>
lit >7 s-Is η is
19
20
Fortsetzung Bit Nr. im Register 350
Iteration Nr.
Chiffrieren (Vorwärtsverschiebung)
Dechiffrieren (Rückwärtsverschiebung) Permutierte Bit Nr, bezogen
auf Register
10 U 12 13 14 15 16
2 2 2 2 2 2 1
(Nachverschiebung) t/JKT? 6
UKR 7 UKR 10 UKR 11 12
UKR 7 UKR 10 UKR 11 12
t/KÄ 27 UKR 5
20 9
2 2 2 2
io UKR t/KR
1/KÄ UKR L/KÄ
.5 UKR 20
UKR 22
23
25
23
25
20 UKR 27 UKR 22
t7K7? 18 UKR 11
3 25 UKR 7
UKR 15 UKR 6 (TK/? 26
t/KÄ 19 UKR 12 1
Eine 1 in Tabelle 5 zeigt eine Verschiebung um eine Bitposition in den Registern 350 und 400 an, und eine
in der Tabelle zeigt eine Verschiebung um zwei Bitpositionen in beiden Registern an.
Die Chiffrieroperation
Im folgenden wird unter Bezugnahme auf die F i g. 3b und 3d und das Zeitdiagramm von Fig.7a die
Chirfrierope.-ation beschrieben. Die oben bereits erwähnte
Vorausverschiebung des Inhalts der Register 350 und 400 wird durch Signale auf den Leitungen SL
und LDR entsprechend dem Verschiebeplan von Tabelle 5 ausgeführt Am Ende des Zyklus 8 steht daher
der Chiffrierschlüssel für die erste von 16 auszuführenden Chiffrier-Iterationen zur Verfügung. Diese erste
Iteration wird während der Zyklen 9 und 10 ausgeführt. Sie wird durch eine lineare Transformation von 24 Bits
aus dem Register 350 und von 24 Bits ais dem Register 400 eingeleitet, die in der Permutationsschaltung
ausgeführt wird. Diese Schaltung erzeugt eine nach beliebiger Wahl festgelegte Permutation der ihr
zugeführten 48 Bits entsprechend den nachstehenden Tabellen 6 und 7, wobei die Tabelle 6 die auszuführenden
Permutationen unter Bezugnahme auf die Positionen des Registers 350 und die Tabelle 7 die auszuführenden
Permutationen unter Bezugnahme auf die Positionen des Registers 400 angibt
Permutationstafel der Schaltung Tabelle 7
Permutationstafel der Schaltung 450
Permutationstafel der Schaltung 450
Bit Nr. im Register 400
Permutierte Bit Nrn bezogen auf Register
LKR
7
8
8
LKR
LKR
LKR
LKR
35
35
LKR
LKR
LKR 10
LKK 11
LKR 12
LKR 12
LKK 13
LKR 15
LKÄ 16
LKÄ 17
LKR 18
LKK 19
LKR 20
LKÄ 16
LKÄ 17
LKR 18
LKK 19
LKR 20
LKÄ 21
„ LKR 22
LKÄ 23
LKR 24
LKK 26
LKK 27
„ LKR 22
LKÄ 23
LKR 24
LKK 26
LKK 27
LKR 12 LKR 23 LKR 2 LKR 8
LKR 18 LKR 26
LKR 1 LKR 11 LKR 22 LKR 16
LKR 4 LKR 19
LKR 15 LKR 20 LKR 10 LKR 27 LKR 5
LKR 24
LKR 17 LKR 13 LKR 21 LKR 7 LKR 0 LKR 3
Bit Nr. im Register
Permutierte Bit Nr., bezogen auf Register
UKR | 0 | L/KÄ 13 |
T JtSD | j | UKR 16 |
UKR | 2 | t/K/? 10 |
UKR | 3 | t/Kfl 23 |
UKR | 4 | UKR 0 |
UKR | 5 | L//CÄ 4 |
55
Die von der Permutationsschaltung 450 erzeugten acht Segmente zu je sechs Bits werden acht
Modulo-2-Addierern 500, 502, 504, 506, 508, 510, und 514 zugeführt, von denen jeder aus sechs
Exklusiv-Oder-Schaltungen besteht. Zur gleichen Zeit wird die erste Hälfte des im Register 200 (Fig.3a)
enthaltenen Informationsblocks, die aus acht Datensegmenten zu je vier Bits besteht zu 48 Datenbits erweitert,
so daß aus jedem 4-Bit-Segment ein 6-Bit-Segment entsteht. Diese erweiterten Segmente werden den
zweiten Eingängen dieser Modulo-2-Addierer zugeführt
Die Expansion wird durch Verdoppelung der End-Bits in jedem 4-Bit-Datensegment erreicht, wie es
22
die aus den F i g. 3e, 3f und 3g ersichtlichen Anschlüsse der Addierwerkseingänge an die Adern der mit dem
Ausgang des Registers 200 verbundenen Sammelleitung 201 zeigen. Die Modulo-2-Addierer 500, 502, 504, 506,
508, 510, 512 und 514 verknüpfen die erweiterten Datenbits parallel mit den permutierten Bits des
Chiffrierschlüssels und erzeugen acht Segmente zu je sechs Bits, die die eigentlichen Argumente für eine
nichtaffine Substitutionsoperation darstellen, die in den Substitutionsschaltungen 550, 552, 554, 556, 558, 560,
562 und 564 ausgeführt wird. Die Zuordnung der permutierten Schlüsselbits zu den expandierten Datenbits
für die Modulo-2-Verknüpfung ist am Eingang der Addierer an den F i g. 3e, 3f und 3g angegeben.
Die F i g. 6 zeigt den Aufbau der Substitutionsschaltung 550. Diese Schaltung weist einen Dekodierer 552
und einen Festwertspeicher (ROS) 584 auf. Die Schaltung 550 erhält sechs Bits vom Ausgang des
Modulo-2-Addierers 500 zugeführt Innerhalb dieser Signale nehmen die Randbits bzw. End-Bits eine
Sonderstellung ein. Diese Bits werden als Resultate der Modulo-2-Addition des duplizierten Datenbits UDR3i
und des Schlüsselbits UKR13 sowie des duplizierten
Datenbits UDR 4 und des Schlüsselbits UKR 4 erzeugt.
Diese End-Bit-Verknüpfungsresultate werden Inverterschaltungen 554 und 556 zugeführt, um die entsprechenden
Komplementsignale Verfügbar zu machen. Wenn die End-Bit-Resultate die Werte 0,0 darstellen, wird die
erste von vier Gruppen mit je 16 Und-Schaltungen ausgewählt, nämlich die Und-Schaltungen 568 bis 570.
Wenn die End-Bit-Resultate die Werte 0, 1 aufweisen, wird die zweite Gruppe von Und-Schaltungen ausgewählt,
welche die Und-Schaltungen 572 bis 574 umfaßt. Wenn die End-Bit-Resultate 1, 0 sind, wird die dritte
Gruppe ausgewählt, die aus den Und-Schaltungen 576 bis 578 besteht. Schließlich wird bei den End-Bit-Resultaten
1, 1 die vierte Gruppe ausgewählt, die aus den Und-Schaltungen 580 bis 582 besteht. Die vier inneren
Bits des der Schaltung 550 zugeführten Segments von sechs Bits werden zu lnverterschaltungen 558,560,562
und 564 geleitet, um die Komplementwerte der entsprechenden Eingangssignale herzustellen. Diese
Bits werden jeweils durch eine der 16 Und-Schaltungen der ausgewählten Gruppe dekodiert, um ein Treibersignal
an einer Adressierungsleitung des Festwertspeichers 584 zu erzeugen. Der Speicher 584 enthält vier
Funktionstabellen OROS, iROS, 2ROS und 3ROS, von
denen jede 16 Einträge zu je vier Bits enthält Zur Speicherung der vier Bits eines Eintrags dienen jeweils
vier Feldeffekttransistoren, wie beispielsweise 586 bis 589 oder 590 bis 593. Von diesen Elementen ist in jeder
Gruppe nur eine bestimmte Kombination an die Treiberleitung angeschlossen, die mit einem zugeordneten
Ausgang der Und-Schaltungen 568 bis 582 verbunden ist. Die durch die signalführende Treiberleitung
ausgewählte Speicherstellengruppe erzeugt eine bestimmte Kombination von Ausgangssignalen auf
Speicherausgangsleitungen 594 bis 597, die allen Speicherstellengruppen gemeinsam sind und die mit den
Ausgangsleitungen 50, 51, 52 und 53 der Substitutionsschaltung
550 verbunden sind. Der Aufbau der Substitutionsschaltungen 552,554,556,558,560,562 und
564 ist ähnlich dem vorausgehend beschriebenen Aufbau der Schaltung 550. Die Funktionstabellen dieser
Schaltungen weichen jedoch voneinander ab, so daß acht verschiedene Transformationsfunktionen erzeugt
werden. Die folgenden Tabellen 8 bis 11 enthalten eine
vollständige Liste der von den verschiedenen Funktionstabellen erzeugten Ausgangssignale in hexadezimaler Darstellung. Jede zweistellige Dezimalzahl
entspricht nach dem hexadezimalen Verschlüsselungsschema einer vierstelligen Binärzahl (Beispiel: 14 =
UlO).
Schaltung 558
Rand-Adreßbits
01 10 11
(0) (1) (2) (3)
(0)
(1)
(2)
(3)
14 4 11
11 2 8
2 1 12
12 11 7
Schaltung 560 Rand-Adreßbits
00 01 10 U (0) (1) (2) (^
12 10 9 4
1 15 14 3
10 4 15 2
15 2 5 12
Innere AdreBbits | Funktionstabellen: | 550 | 01 | 10 | 11 | 01 | 10 | 11 | Schaltung | 552 | 01 | to | 11 | Rand-Adreßbits | 01 | 10 | 11 | - | |
IO | Schaltung | U) | (2) | (3) | (D | (2) | (3) | (1) | (2) | (3) | 00 | U) | (2) | (3) | 0 | ||||
Rand-Adreßbits | 0 | 4 | 15 | 13 | 13 | 1 | 3 | 0 | 13 | (0) | 13 | 10 | 3 | 0 | |||||
00 | 15 | 1 | 12 | 7 | 6 | 10 | Rand-Adreßbits | 13 | 14 | 8 | 7 | 8 | 6 | 15 | C | ||||
(0) | 7 | 14 | 8 | 0 | 4 | 13 | 00 | 4 | 7 | 10 | 13 | 11 | 9 | 0 | 0 1 |
||||
15 | 0000 (0) | 14 | 4 | 8 | 2 | 9 | 9 | 0 | (0) | 7 | 11 | 1 | 14 | 5 | 0 | 6 | 1 | ||
0001 (1) | 4 | 14 | 13 | 4 | 3 | 8 | 6 | 15 | 15 | 10 | 3 | 3 | 6 | 12 | 10 | 1 | |||
0010 (2) | 13 | 2 | 6 | 9 | 4 | 15 | 9 | 1 | 2 | 4 | 15 | 0 | 15 | 11 | 1 | ||||
0011 (3) | 1 | 13 | 2 | 1 | 6 | 3 | 8 | 8 | 8 | 13 | 4 | 6 | 0 | 7 | 13 | ||||
0100 (4) | 2 | 1 | 11 | 7 | 10 | 0 | 7 | 14 | 14 | 1 | 2 | 9 | 3 | 13 | 8 | ||||
20 | 0101 (5) | 15 | 10 | 15 | 5 | 2 | 11 | 4 | 6 | 12 | 5 | 11 | 10 | 4 | 15 | 9 | |||
0110 (6) | 11 | 6 | 12 | 11 | 8 | 1 | 15 | 11 | 0 | 8 | 6 | 1 | 7 | 1 | 4 | ||||
Olli (7) | 8 | 12 | 9 | 3 | 5 | 2 | 14 | 3 | 1 | 12 | 7 | 2 | 2 | 3 | 5 | ||||
1000 (8) | 3 | U | 7 | 14 | 14 | 12 | 3 | 4 | 10 | 6 | 12 | δ | 12 | 14 | 11 | ||||
1001 (9) | 10 | 9 | 3 | 10 | 12 | 5 | 11 | 9 | 6 | 9 | 0 | 5 | 1 | 5 | 12 | ||||
25 | 1010(10) | 6 | 5 | 10 | 0 | 11 | 10 | 5 | 7 | 9 | 3 | 5 | 11 | 10 | 2 | 7 | |||
1011(11) | 12 | 3 | 5 | 6 | 15 | 14 | 2 | 2 | 11 | 2 | 14 | 12 | 14 | 8 | 2 | ||||
1100(12) | 5 | 8 | 0 | 13 | 1 | 7 | 12 | 13 | 5 | 15 | 9 | 4 | 9 | 4 | 14 | ||||
1101(13) | 9 | 12 | 15 | ||||||||||||||||
1110(14) | 0 | Funktionstabellen: | 0 | ||||||||||||||||
.ΙΟ | 1111(15) | 7 | Schaltung 554 | 5 | Schaltung | 556 | |||||||||||||
Tabelle 9 | 10 | ||||||||||||||||||
Innere Adreßbits | Rand-Adreßbits | ||||||||||||||||||
00 | |||||||||||||||||||
35 | (0) | ||||||||||||||||||
10 | |||||||||||||||||||
0 | |||||||||||||||||||
40 | 0000 (0) | 9 | |||||||||||||||||
t" | 0001 (1) | 14 | |||||||||||||||||
ooio (2) | 6 | ||||||||||||||||||
0011 (3) | 3 | ||||||||||||||||||
0100 (4) | 15 | ||||||||||||||||||
4S | 0101 (5) | 5 | |||||||||||||||||
0110 (6) | 1 | ||||||||||||||||||
Olli (7) | 13 | ||||||||||||||||||
1000 (8) | 12 | ||||||||||||||||||
1001 (9) | 7 | ||||||||||||||||||
SO | 1010(10) | 11 | |||||||||||||||||
1011(11) | 4 | ||||||||||||||||||
1100(12!) | 2 | ||||||||||||||||||
1101(13) | 8 | ||||||||||||||||||
1110(14) | |||||||||||||||||||
55 | 1111(15) | ||||||||||||||||||
Tabelle 10 |
Fortsetzung
Innere Adreßbus Funklionstabcllen:
Schaltung 558
Rand-Adreßbiis
Rand-Adreßbiis
Schaltung 560 Rand-Adreßbits
00 01
(0) (D
(0) (D
10
(2)
(2)
Π (3)
00 (0)
01 (1)
10 (2)
M (3)
0100 (4)
0101 (5)
ΟΠΟ (6)
Olli (7)
ΟΠΟ (6)
Olli (7)
1000 (8)
1001 (9)
1010(10)
1011(11)
1100(12)
1101(13)
1110(14)
1111(15)
1010(10)
1011(11)
1100(12)
1101(13)
1110(14)
1111(15)
7 4 10 1
10 7 13 14
11 13 7 2 6 1 8 13
8 5 15 6 5 0 9 15
9 7 2 12
2 8
3 15 12
15 10 5
15 10 5
13
0
0
14
9
9
9
8
6
8
6
6
3
0
14
10
4 5 3
6 9 12 15
8 5
O 6 13 1
3 13
3 10 7 11 0 14
4 1
4 14 10 14 0 1
7 U 13
5 3 11 11 8
6 13
Innere Adreßbus Funktionstabellen:
Schaltung 562
Rand-Adreßbits
Rand-Adreßbits
Schaltung 564 Rand-Adreßbits
00
(0)
01
(1)
(1)
10
(2)
11 (3)
00 (0)
01 (1)
10 (2)
U (3)
0000 (0)
0001 (1)
0010 (2)
0011 (3)
0100 (4)
0101 (5)
0110 (6)
OUl (7)
0110 (6)
OUl (7)
1000 (8)
1001 (9)
1010(10)
1011(11)
1100(12)
1101(13)
1110(14)
1111(15)
1010(10)
1011(11)
1100(12)
1101(13)
1110(14)
1111(15)
4
11
11
2
14
15
14
15
13
0
0
7 13
4 12
9 3
4 12
9 3
11
11 13 8 1 4
13 10 14
3 14 10
3 14 10
12
9
7
5
9
7
5
15
6
6
10 7 9 5 0
8 15 0 14
13 1 7
2 15 11
8 13 4
4 8 1 6
15
11 7
1 4
10 12
9 5
3 6 10
14 il 13
5 0 15
14 7 4
10 15
6 8
1 6
6 8
1 6
5
9
2
9
2
0 14 12 9
10 9 3 12 10 14 8 2 13 0 15 6 12 9 0. 3 5 6
8 11
Ausgänge der Substitutionsschaltungen
Permutierte Bit Nr., bezogen auf die Ausgange der Subslilutionsschaltungcn
S 8
516
S 22
S 30
516
S 22
S 30
Die Ausgangssignale der Schaltungen 550, 552, 554, 556, 558,560, 562 und 564 werden einer Permutationsschaltung
600 zugeführt, welche eine in beliebiger Form fest vorgegebene lineare Transformierung durchführt.
Die im dargestellten Ausführungsbeispiel von der Schaltung 600 ausgeführte lineare Permutation ist aus
der nachstehenden Tabelle 12 ersichtlich. Die Ausgangssignale der Permutationsschaltung 600 stellen das
Blockchiffre-Produkt der ersten Hälfte des zu chiffrierenden Informationsblockes dar.
Ausgänge der Substitutionsschaltungen
S 8
S 9
StO
StI
Permutiert Bit Nr., bezogen auf die Ausgänge der Substilutionsschallungen
S12
S 27
S 1
S17
S 27
S 1
S17
S23
S15
S29
S 5
S25
S19
S 9
S 0
S19
S 9
S 0
S 7
513
S 24
S 2
S 3
S 28
SlO
S18
S 28
SlO
S18
S31
SIl
S2i
S 6
SIl
S2i
S 6
S 4
S26
514
S20
S20
Die F i g. 3h, 3i und 3j zeigen acht Modulo-2-Addierer
650,652,654,656,658,660,662 und 664, von denen jeder
aus vier Exklusiv-Oder-Schaltungen EO besteht. Diesen
Schaltungen wird die zweite Hälfte des Informationsblockes aus dem Register 250 (F i g. 3a) in Form von
acht Segmenten zu je vier Bits zugeführt zusammen mit den 32 Bits vom Ausgang der Permutationsschaltung
600, die die Produkt-Blockchiffre der ersten Hälfte des Informationsblockes darstellen. Die Modulo-2-Addierer
650 bis 664 modifizieren damit die 32 Datenbits der zweiten Hälfte des Informationsblockes parallel in
Abhängigkeit von den Bits der Produkt-Blockchiffre der ersten Hälfte des Informationsblocks. Es werden auf
diese Weise acht Segmente zu je vier Bits als ein neuer Satz von 32 Bits £O0 bis EO31 vom Ausgang der
Modulo-2-Addierer 650 bis 664 erhalten und über eine Sammelleitung 202 dem Eingang des Registers 200 in
F i g. 3a zugeführt.
Die F i g. 7a zeigt, daß vä'nrend des ersten Teils des
Zyklus 10 zunächst Signale auf den Leitungen LB und LDR erzeugt werden, die mit allen Verriegelungsschaltungen
des Registers 200 verbunden sind. Diese Signale bewirken, daß die am Ausgang der Addierer 650 bis 664
auftretende modifizierte zweite Hälfte des Informationsblockes im Register 200 gespeichert wird. Zur
gleichen Zeit werden aber die Signale auf den Leitungen LB und LDR auch an alle Verricgelungsschaltungen des
Registers 250 angelegt, wodurch die zu dieser Zeit im Register 200 gespeicherte erste Hälfte des Informationsblockes
über einen Zweig 2Oi' in die Verricgelungsschaltungen
des Registers 250 übertragen wird. Diese Ladeoperationen der Register 200 und 250 dienen
70!l (ihü/3«jb
der Vorbereitung der nächsten Iteration der Chiffrieroperation. Damit ist die erste Iteration der Chiffrieroperation
beendet, die nach der Vorausverschiebung des Chiffrierschlüssels im Zyklus 8 begonnen hatte.
Die zweite Iteration wird während der Zyklen 10, 11
und 12 ausgeführt und durch eine Verschiebeoperation
im Zyklus 10 eingeleitet. Während des Zyklus 10 werden
allen Stufen der Register 350 und 400 erneu? Taktsignale
über die Leitungen SL und LDR zugeführt, wodurch eine weitere 1-Bit-Verschiebung des Chiffrierschlüssels
in Vorwärtsrichtung erfolgt gemäß dem Stellenverschiebeplan von Tabelle 5. Es wird so ein zweiter Satz
von Chiffrierschlüssel-Bits für die zweite Iteration bereitgestellt. Während des Zyklus U wird die
modifizierte zweite Hälfte des Informationsblocks, die sich zu diesem Zeitpunkt im Register 200 befindet, einer
Chiffrieroperation der oben beschriebenen Art zugeführt, deren Resultat erneut in den Modulo-2-Addierern
650 bis 664 benutzt wird, um die im Register 250 gespeicherte erste Hälfte des Informationsblockes zu
modifizieren. V/ährend des Zyklus 12 werden wiederum Taktsignale auf den Leitungen LB und LDR erzeugt, die
an alle Verriegelungsschaltungen des Registers 200 angelegt werden und die Übertragung der Resultate
vom Ausgang der Addierer 650 bis 664 in das Register 200 bewirken. Die gleichen Taktsignale werden auch an
die Verriegelungsschaltungen des Registers 250 angelegt und veranlassen, daß die in der vorausgehenden
Iteration modifizierte zweite Hälfte des Informationsblockes aus dem Register 200 in das Register 250
übertragen wird. Diese Übertragungen beenden die zweite Iteration und bereiten die dargestellte Einrichtung
zur Ausführung der nächsten Iteration der Chiffrieroperation vor.
Gemäß dem Stellenverschiebeplan von Tabelle 5 ist während der dritten Iteration, die sich.über die Zyklen
11,12,13 und 14 erstreckt, eine Stellenverschiebung des
Chiffrierschlüssels um zwei Bitpositionen auszuführen. Dementsprechend wird während des Zyklus 11 die erste
der zwei Verschiebeoperationen des Chiffrierschlüssels ausgeführt durch Anlegen des dritten Taktsignals an die
Leitungen SL und LDR. Diese Stellenverschiebung hat keinen Einfluß auf die Schaltvorgänge der zweiten
Iteration, die zur Zeit des Zyklus 11 noch in den Schaltungsteilen ablaufen, die den Registern 350 und
400 nachgeschaltet sind. Während des Zyklus 12 werden erneut Taktsignale an die Leitungen SL und LDR
angelegt, die eine weitere Verschiebung des Chiffrierschlüssels um eine Bitposition bewirken. Damit sind die
zwei Stellenverschiebungen der dritten Iterationsoperation ausgeführt.
In einer ähnlichen Weise werden die folgenden Iterationsoperationen ausgeführt in Übereinstimmung
mit dem Stellenverschiebeplan gemäß Tabelle 5. Während jeder der restlichen Iterationen, mit Ausnahme der
letzten, werden die Bits des Chiffrierschlüssels in den Registern 350 und 400 gemäß den Eintragungen in der
Tabelle 5 in Vorwärtsrichtung verschoben, ferner wird eine modifizierte Hälfte des Nachrichtenblockes, die im
Register 250 gespeichert ist, erneut modifiziert entsprechend der Produkt-Blockchiffre der vorausgehend
modifizierten Hälfte des Informationsblockes, die im Register 200 gespeichert ist, und die an den Ausgängen
der Modulo-2-Addierer 650 bis 664 erhaltene, erneut modifizierte Hälfte des Informationsblocks ersetzt die
vorausgehend modifizierte Hälfte des Informationsblocks im Register 200, während die letztere Hälfte zur
gleichen Zeit dem Register 250 zugeführt wird, um den dortigen Inhalt zu ersetzen. Während der letzten erst<
Iteration der Chiffrieroperation, die während der Chif Zyklem 28 und 29 ausgeführt wird, werden die Bits des Pos
Chiffirierschlüssels in den Registern 350 und ein letztes befi
Mal verschoben entsprechend dem Stellenverschiebe- Vor plan von Tabelle 5, und es findet eine letzte Remodifizie- Infc
rung einer bereits mehrfach modifizierten Hälfte des tion Informationsblockes statt, die im Register 25Cl gespei- Chi
chert ist, entsprechend einem von der Produkt-Block- erst
ι ο chiffre vorausgehend modifizierten Hälfte des Morma- 750
tionsblocks, die sich im Register 200 befindet Das vom näc Ausgang der Modulo-2-Addierer 650 bis 664 erhaltene und
Resultat und die im Register 200 enthaltene vorausge- Tak hend modifizierte Hälfte des Informationsblockes in
ι? stellen jedoch nun die verschlüsselte Version des Chi
ursprünglichen Informationsblocke!! dar. Eine Rück- chil
Übertragung zum Register 200 unterbleibt weßen der Abwesenheit des Taktsignals auf der Leitung LB. 8OC
Vielmehr erfolgt eine Übertragung der beiden Teile des die
Endresultats der Chiffrieroperation in die Ausgabepuf- ricl
fer 700 und 750. Jeder dieser Puffer besteht aus vier bei Schieberegistern OUOB, XUOB, 2UOB, 3UOB und au;
OLOB, X LOB, 2LOB, 3LOB, von denen jedes acht Stufen üb umfaßt Die erste, zweite und letzte Stufe des ge<
Schieberegisters OUOB sind in Fig.3a exemplarisch an
dargestellt Die übrigen Schieberegister, die dem an Schieberegister OUOB gleichen, sind in Blockform sei
dargestellt. de
Während des Zyklus 40 (F i g. 7b) werden Taktsignale
an die Leitungen LDOB und LDOB angelegt, die mit allen Verriegelungsschaltungen in jedem Schieberegister
der Puffer 700 und 750 verbunden sind. Diese In Taktsignale bewirken eine parallele Einspeicherung des Ei
32-Bit-Ausgangs des Registers 200 in den Puffer 700 und St
vs gleichzeitig eine parallele Einspeicherung der 32 Resul- d(
tatbits vom Ausgang der Modulo-2-Addierer 650 bis 664 C in den Puffer 750. C
Der chiffrierte Informationsblock befindet sich nun in den Puffern 700 und 750 und wird dort einer π
Parallel/Serien-Umsetzung unterzogen, indem jeweils d< ein Byte, bestehend aus acht Bits, einer Permutations- C
schaltung 800 zugeführt wird. Zu diesem Zweck sind die letzten Stufen der acht Schieberegister in den Puffern
700 und 750 mit dem Eingang der Permutationsschal- a tung 800 verbunden. Die letztere Schaltung führt eine d
abschließende lineare Permutation der Bits im zugeführten Byte durch und führt diese den entsprechenden
Adern in der Daten-Ausgangssammelleitung zu. Hierzu werden Taktsignale an die Leitungen LDOB und LDOB t
so angelegt, die jeweils mit der zweiten bis achten Stufe in t
jedem der acht Schieberegister OUOB, XUOB, 2UOB, 3UOB und OLOB, XLOB, 2LOB, 3LOB verbunden sind.
Während der Zyklen 41 bis 47 werden daher die Datenbits in jedem der acht Schieberegister um eine
5s Position abwärts verschoben, un ein aus acht Bits
bestehendes Byte wird in der Schaltung 800 permutiert und der Daten-Ausgangssammelleitung zugeführt. Am
Ende des Zyklus 48 ist das letzte Byte des chiffrierten Informationsblockes zur Ausgangssammeileitung über-
(Hi tragen worden, womit die Chiffrieroperation beendet
ist.
Nachfolgende Informationsblöcke werden in der gleichen Weise chiffriert, wie es vorausgehend für einen
Informationsblock exemplarisch beschrieben wurde.
(-5 Jeweils während der Chiffrierung eines Informationsblockes kann bei Auftreten des nächsten Informationsblockes dieser in die Puffer 100 und 150 geladen werden.
Am Ende des Zyklus 39, wenn die letzte Itcration der
ersten Chiffrieroperation ausgeführt ist, hat der Chiffrierschlüssel einen vollständigen Umlauf durch die
Positionen der Register 350 und 400 ausgeführt und befindet sich wieder in seiner ursprünglichen Stellung in
Vorbereitung der Chiffrieroperation für den nächsten Informationsblock. Diese nachfolgende Chiffrieroperation
kann daher bereits zur Zeit des Zyklus 40 der ersten Chiffrieroperation beginnen, während der chiffrierte
erste Informationsblock in die Ausgangspuffer 700 und 750 eingegeben wird. Zu dieser Zeit kann der als
nächstes folgende Informationsblock in die Register 200 und 250 eingestellt werden unter Steuerung von
Taktsignalen auf den Leitungen IBTund LDR, wie dies
; in Fig.7b strichliert dargestellt ist. Die nächste ι Chiffrieroperation läuft daher bereits ab, während die
chiffrierte Version des ersten Informationsblockes aus ι den Puffern 700 und 750 über die Permutationsschaltung
I 800 der Ausgangssammelleitung zugeführt wird. Wenn i die Zuführrate der Informationsblöcke zur Chiffriereinrichtung
zu hoch wird, so daß ein nachfolgender Block r bereits zugeführt wird, bevor der vorausgehende Block
i aus den Puffern 100 und 150 in die Register 200 und 250 ι übertragen worden ist, so ist dieser Zustand durch eine
s geeignete Schaltung in Form eines Besetzt-Signals h anzuzeigen. Hierdurch wird gewährleistet, daß aufeinn
anderfolgende Datenblöcke synchron zur Arbeitsgen schwindigkeit der Chiffriereinrichtung zugeführt werden,
e
jt Die Dechiffrieroperation
e
jt Die Dechiffrieroperation
i- Die Dechiffrierung eines aus 64 Bits bestehenden ie Informationsblockes wird unter Verwendung einer
:s Einrichtung der oben beschriebenen Art und unter id Steuerung des gleichen Chiffrierschlüssels ausgeführt,
1- der zur Chiffrierung benutzt wird. Im Gegensatz zur »4 Chiffrieroperation, wo eine Vorausverschiebung des
Chiffrierschlüssels stattfand, erfolgt bei der Dechiffrierin operation eine nachträgliche Verschiebung des Chiffer
rierschlüssels nach der letzten Iteration. Außerdem wird ils der Schlüssel in der umgekehrten Richtung wie bei der
s- Chiffrieroperation verschoben. Die einzelnen Verschiebe beschritte sind aus der Tabelle 5 ersichtlich. Ihre
rn Ausführung stellt sicher, daß die Schlüsselbits korrekt il- ausgerichtet in den Registern 350 und 400 stehen, wenn
ne die Dechiffrierung begonnen wird und während der ir- Ausführung der 16 Dechiffrier-Iterationen.
en Während der Zyklen 0 bis 7 wird der chiffrierte zu Informationsblock über die Daten-Eingangssammellei- ")B tung in der oben beschriebenen Weise zugeführt und in in den Registern 100 und 150 gespeichert. Gleichzeitig )B, wird der Chiffrierschlüssel (bzw. Dechiffrierschlüssel) id. über die Schlüssel-Eingangssammelleitung in aer belie schriebenen Weise empfangen und in den Registern 350 ne und 400 gespeichert. Während des Zyklus 8 wird der iiis verschlüsselte Nachrichtenblock parallel aus den Pufert fern 100 und 150 in die Register 200 und 250 übertragen, im Im Zyklus 9 wird die erste Hälfte des verschlüsselten en Informationsblockes aus dem Register 200 zusammen er- 'nit einem permutierten Satz der Chiffrierschlüsselbits jet der oben erläuterten Operation zur Bildung einer Produkt-Blockchiffre unterworfen, deren Resultat in jcr den Modulo-2-Addierern 650 bis 664 zur Modifizierung ,en der zweiten Hälfte des chiffrierten Informationsblockes de. dient, der im Register 250 gespeichert ist. Diese ns- Operation erfolgt in der gleichen Weise, wie vorausgenshend anhand der Fig.3a bis 3j beschrieben wurde, en, Während des Zyklus 10 wird ein Taktsignal auf der der Leitung LB erzeugt, das im Register 200 die erste Hälfte
en Während der Zyklen 0 bis 7 wird der chiffrierte zu Informationsblock über die Daten-Eingangssammellei- ")B tung in der oben beschriebenen Weise zugeführt und in in den Registern 100 und 150 gespeichert. Gleichzeitig )B, wird der Chiffrierschlüssel (bzw. Dechiffrierschlüssel) id. über die Schlüssel-Eingangssammelleitung in aer belie schriebenen Weise empfangen und in den Registern 350 ne und 400 gespeichert. Während des Zyklus 8 wird der iiis verschlüsselte Nachrichtenblock parallel aus den Pufert fern 100 und 150 in die Register 200 und 250 übertragen, im Im Zyklus 9 wird die erste Hälfte des verschlüsselten en Informationsblockes aus dem Register 200 zusammen er- 'nit einem permutierten Satz der Chiffrierschlüsselbits jet der oben erläuterten Operation zur Bildung einer Produkt-Blockchiffre unterworfen, deren Resultat in jcr den Modulo-2-Addierern 650 bis 664 zur Modifizierung ,en der zweiten Hälfte des chiffrierten Informationsblockes de. dient, der im Register 250 gespeichert ist. Diese ns- Operation erfolgt in der gleichen Weise, wie vorausgenshend anhand der Fig.3a bis 3j beschrieben wurde, en, Während des Zyklus 10 wird ein Taktsignal auf der der Leitung LB erzeugt, das im Register 200 die erste Hälfte
des verschlüsselten Informationsblockes durch die modifizierte zweite Hälfte dieses Blockes ersetzt und
zur gleichen Zeit die zweite Hälfte des verschlüsselten Informationsblockes in das Register 250 bringt zur
Vorbereitung der nächsten Iteration.
Die zweite Iteration der Dechiffrierung wird während der Zyklen 10,11 und 12 ausgeführt. Sie wird eingeleitet
durch eine Verschiebung der Schlüsselbits um eine Stelle während des Zyklus 10. Dies wird durch ein
Taktsignal auf der Leitung SRR ausgeführt, das zu den ersten Stufen der Register 350 und 400 gelangt.
Außerdem wird ein erstes Signal auf Leitung SR an die restlichen Stufen der Schieberegister in den Schaltungen
350 und 400 angelegt. Des weiteren wird ein Taktsignal auf der Leitung LDK allen Stufen der
Registerschaltungen 350 und 400 zugeführt. Das Signal auf der Leitung SRR bewirkt zusammen mit dem Signal
auf der Leitung LDK eine Übertragung des Inhalts der letzten Stufe in jeden der Register 350 und 400 in die
erste Stufe eines jeden dieser Register. Das Signal auf der Leitung SR bewirkt zusammen mit dem Signal auf
der Leitung LDK, daß der Inhalt einer jeden Stufe der Register 350 und 400 in die jeweils nachfolgende Stufe
dieser Register verschoben wird. Hiermit wurde der Chiffrierschlüssel um eine Bitposition nach unten
verschoben gemäß dem Stellenverschiebeplan nach Tabelle 5. Mit der neuen Biteinstellung in den Registern
350 und 400 wird die zweite Iteration der Dechiffrieroperation begonnen. Diese Iteration wird mit dem Ende
des Zyklus 12 abgeschlossen.
Aus dem Stellenverschiebeplan von Tabelle 5 ist ersichtlich, daß am Beginn der dritten Iteration der
Chiffrierschlüssel um zwei Bitpositionen zu verschieben ist. Dementsprechend wird während des Zyklus 11 die
erste dieser beiden Verschiebungen ausgeführt durch Anlegen eines zweiten Taktsignals an die Leitungen
SRR und SR sowie eines Taktsignals an die Leitung LDK. Während des Zyklus 12 wird ein drittes Taktsignal
an die Leitungen SRR und SR angelegt sowie ein weiteres Signal an die Leitung LDK, wodurch eine
weitere Abwärtsverschiebung des Schlüssels um eine Bitstelle veranlaßt wird. In ähnlicher Weise werden in
Übereinstimmung mit dem Stellenverschiebeplan von Tabelle 5 die übrigen Iterationen der Dechiffrieroperation
nacheinander ausgeführt bis zum Zyklus 30. Zu dieser Zeit sind die Iterationen beendet. Während der
16, Iteration wird durch Abwesenheit des Taktsignals
auf der Leitung LB eine Übertragungsoperation verhindert, wie dies in Verbindung mit der 16. Iteration
der Chiffrieroperation erläutert wurde. Während des Zyklus 40 erfolgt eine nachträgliche Verschiebung des
Chiffrierschlüssels, um einen vollen Umlauf des Schlüssels in Registern 350 und 400 sicherzustellen zur
Vorbereitung der Dechiffrierung des nächsten Informationsblockes. Während der folgenden Zyklen 40 bis 48
wird der dechiffrierte Informationsblock parallel von den Ausgängen des Registers 200 und der Modulo-2-Addierer
650 bis 664 in die Ausgabepuffer 700 und 750 übertragen und danach byteweise über die Permutationsschaltung
800 zur Daten-Ausgangsleitung weitergeleitet.
Am Ende des Zyklus 48 wird das letzte Byte des dechiffrierten Blocks auf die Ausgangssammelleitung
gegeben, womit die Dechiffrieroperation beendet ist. In der gleichen Weise werden aufeinanderfolgende verschlüsselte
Informationsblöcke dechiffriert.
Ergänzend sei erwähnt, daß die Modulo-2-Addition,
die während der Chiffrierung in den Addierern 650 bis 664 ausgeführt wird, ein sich selbst umkehrender Prozeß
isi; eier auch während der Dechiffrieroperation auftritt.
Während in der dargestellten Einrichtung Modulo-2-Aiidierer
Verwendung finden, ist die Erfindung nicht auf diesen Addierertyp beschränkt. Es können andere
Addierer, Addierer anderen Moduls oder eine Kombination von Addierern verwendet werden, ohne den
Rahmen der Erfindung zu verlassen.
Im obigen Beispiel wurde davon ausgegangen, daß
Im obigen Beispiel wurde davon ausgegangen, daß
eine Chiffriereinrichtung unverschlüsselte (Klartext) Informationen chiffriert und daß eine zweite Einrichtung
diese chiffrierten Informationen in unverschlüsselte (Klartext) Informationen dechiffriert Abweichend
hiervon kann eine einzige Einrichtung sowohl die Chiffrieroperation als auch die Dechiffrieroperation in
der oben erläuterten Weise ausführen, ohne daß hierzu Schaltungsänderungen notwendig sind.
Hierzu 15 Blatt Zeichnungen
Claims (23)
1. Verfahren zum Chiffrieren und autorisierten Dechiffrieren von Informationsblöcken unter Steuerung
eines vorgegebenen Chiffrierschlüssels, dadurch gekennzeichnet, daß zunächst aus
einem Teil eines Informationsblocks unter Verwendung des Chiffrierschlüssels durch kombinierte
lineare und nichtlineare Transformierung eine ι ο Produkt-Blockchiffre gebildet wird, die mit dem Rest
des Informationsblocks zum Resultat einer ersten Iteration verknüpft wird, daß danach aus dem Rest
des Informationsblocks (oder dem Resultat der jeweils vorletzten Iteration) unter Verwendung
einer stellenverschobenen Version des Chiffrierschlüssels durch kombinierte lineare und nichtlineare
Transformierung eine weitere Produkt-Blockchiffre gebildet wird, die mit dem Resultat der ersten
Iteration zum Resultat einer weiteren Iteration verknüpft wird, und daß die Resultate von zwei
aufeinanderfolgenden Iterationen die chiffrierte (bzw. dechiffrierte) Version des Informationsblocks
darstellen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
daß ein Informationsblock in zwei Hälften unterteilt wird, die separat aufrufbar gespeichert
werden, daß die erste Hälfte zusammen mit den Chiffrierschlüsselbits einer Schaltung zur nichtlinearen
Transformierung zugeführt werden, deren Ergebnis in einer sich anschließenden Schaltung
linear transformiert wird, und daß die Resultatsignale der letzteren Schaltung zur arithmetisch/logischen
Modifizierung der zweiten Hälfte des Informationsblockes dienen.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das Ergebnis der Modifizierung der
zweiten Hälfte anstelle der ersten Hälfte tritt und zusammen mit einer stellenverschobenen Version
der Chiffrierschlüsselbits zur Ausführung einer weiteren Iteration den Schaltungen zur kombinierten
nichtlinearen und linearen Transformierung zugeführt wird und daß das von diesen Schaltungen
erhaltene Ergebnis zur Modifizierung der ursprünglichen ersten Hilfe des Informationsblockes dient.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß mehrere Chiffrieriterationen
ausgeführt werden, wobei jeweils das Ausgangssignal der vorausgehenden Iteration als
Eingangssignal benutzt und das Eingangssignal der vorausgehenden Iteration mit dem Ergebnis der
kombinierten nichtlinearen/linearen Transformierung modifiziert wird, bis die Chiffrierschlüsselbits
um insgesamt einen Umlauf stellenverschoben worden sind, wonach das Resultat der letzten
Iteration zusammen mit dem Resultat der vorletzten Iteration die chiffrierte Version des Informationsblocks darstellt
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß der Dechiffrierprozeß
in der gleichen Weise mit dem gleichen Chiffrierschlüssel, jedoch mit Umkehrung der Stellenverschieberichtung
ausgeführt wird.
6. Verfahren nach einem der Ansprüche i-5, dadurch gekennzeichnet, daß die Zahl der Chiffrier- f>5
schlüsselbits höher ist als die Zahl der Bits der zu chiffrierenden (dechiffrierenden) Information, daß
zunächst eine lineare Transformierung der Chiffrierschlüsselbits vorgenommen wird, daß danach die
Zahl der Bitstellen der Information erweitert wird durch Verdoppelung eines Teiles der Informationsbits, bis die Stellenzahl des Chiffrierschlüssels
erreicht ist, daß eine nichtlineare Transformierung der Informationsbits und der Schlüsselbits durch
Substitution ausgeführt wird, wobei das Substitutionsergebnis die gleiche Bitstellenzahl wie die zu
chiffrierende (dechiffrierende) Information aufweist, und daß dieses Resultat linear transformiert wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß zur nichtlinearen
Transformierung zunächst eine Modulo-2-Addition
der Informationsbits und der diesen zugeordneten Chiffrierschlüsselbits erfolgt und daß die Resultatbits
zur Entnahme-Adressierung eines Speichers benutzt werden, der den Adressen zugeordnete
Sätze von Substitutionsbits enthält
8. Verfahren nach Anspruch 6 oder 7, dadurch gekennzeichnet, daß die Resultatbits der Modulo-2-Addition
in Gruppen zusammengefaßt werden, von denen jede die Adresse für den Zugriff einer
Speicherzelle darstellt, die Substitutionsbits in einer Anzahl enthält, welche um die erweiterte Bitstellenzühl
kleiner ist als die Bitstellenzahl der Adresse.
9. Einrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 5, dadurch
gekennzeichnet, daß ein erster Speicher (200) zur Aufnahme einer Hälfte eines Informationsblocks
und ein zweiter Speicher (250) zur Aufnahme der zweiten Hälfte dieses Blocks vorgesehen ist, daß ein
dritter Speicher (350, 400) zur Aufnahme der Chiffrierschlüsselbits vorgesehen ist, daß die Ausgänge
des ersten und des dritten Speichers an die Eingänge einer ersten arithmetischen/logischen
Verknüpfungsschaltung (500 bis 514) angeschlossen ist, deren Ausgangssignale als Adressen eines
vierten Speichers (584) dienen, der vorgegebene Substitutionswerte enthält, daß der Ausgang des
vierten Speichers über eine Permutationsschaltung (600) mit einem Eingang einer zweiten arithmetischen/logischen
Verknüpfungsschaltung (650 bis 664) verbunden ist, deren zweiter Eingang an den Ausgang des zweiten Speichers angeschlossen ist
und deren Ausgang wahlweise zum Eingang des ersten Speichers oder zum Ausgang der Einrichtung
durchschaltbar ist.
10. Einrichtung nach Anspruch 9, dadurch gekennzeichnet, daß der erste Speicher (200) eine
Ausgangsverbindung (201') zum zweiten Speicher (250) aufweist, die jeweils am Ende einer Iteration
wirksam wird, noch bevor die Ausgangssignale der zweiten arithmetischen/logischen Verknüpfungsschaltung
(650 bis 664) zum eirsten Speicher durchgeschaltet übertragen worden iiind.
11. Einrichtung nach Anspruch 9 oder 10, dadurch
gekennzeichnet, daß der dritte Speicher (350, 400) als Schieberegister ausgebildet ist und daß eine
Iterationssteuerschaltung (265) vorgesehen ist, die nach jeder Iteration eine Verschiebung des Chiffrierschlüssels
um eine vorgegebene Stellenzahl veranlaßt und nach einem vollständigen Umlauf des
Chiffrierschlüssels die Ausgänge des ersten Speichers (2SSO) und der zweiten Verknüpfungsschaltung
(650 bis 664) zum Ausgang der Einrichtung durchschaltet
12. Einrichtung nach einem der Ansprüche 9 bis 11,
dadurch gekennzeichnet, daß der Ausgang des
ersten Speichers (200) und der zweiten Verknüpfungsschaltung
(650 bis 664) an je eiren Ausgabepuffer (700,750) angeschlossen ist, die beide gemeinsam
als Parallel/Serien-Umsetzer zur byteweisen Ausgabe des chiffrierten (dechiffrierten) Informationsblocks dienen.
13. Einrichtung nach einem der Ansprüche 9 bis 12,
dadurch gekennzeichnet, daß zwischen den dritten Speicher (350, 400) und der erste« Verknüpfungsschaltung
(500 bis 514) eine Permutationsschaltung (450) angeordnet ist
14. Einrichtung nach einem der Ansprüche 9 bis 13,
dadurch gekennzeichnet, daß sie wahlweise am Infcrmationssendeort als Chiffriereinrichtung und
am Informationsempfangsort als Dechiffriereinrichtung verwendbar ist, indem die Iterationssteuereinrichtung
(265) wahlweise Chiffrier-' faktsignale (SL)
und Dechiffrier-Taktsignale (SRR) erzeugt, von denen die einen eine Stellenverschiebung im dritten
Speicher (350, 400) in der einen Richtung bewirken und die anderen eine Stellenverschiebung in der
entgegengesetzten Richtung.
15. Einrichtung nach einem der Ansprüche 9 bis 14, dadurch gekennzeichnet, daß die Iterationssteuerschaltung
(265) am Anfang und/oder am Ende einer Chiffrier- oder Dechiffrieroperation Ergänzungsverschiebungen
im dritten Speicher (350,400) veranlaßt, um einen Stellenverschiebeumlauf des Chiffrierschlüssels
zu vervollständigen.
16. Einrichtung zur Ausführung des Verfahrens nach Anspruch 5, dadurch gekennzeichnet, daß ein
erster Speicher (200) zur Aufnahme der zu chiffrierenden Informationsbits und ein zweiter
Speicher (350, 400) zur Aufnahme der Chiffrierschlüsselbits vorgesehen ist, deren Stellenzahl höher
ist als die der Informationsbits im ersten Speicher, daß beide Speicher mit einer arithmetischen/logischen
Verknüpfungsschaltung (500 bis 514) verbunden sind, wobei ein Teil der Ausgangsbitleitungen
des ersten Speichers mit wenigstens zwei Eingangsbitleitungen der Verknüpfungsschaltung verbunden
ist, daß die Ausgangssignale der Verknüpfungsschaltung
als Adressen eines dritten Speichers (584) dienen, der vorgegebene Substitutionswerte enthält,
und daß der Ausgang des dritten Speichers mit einer Permutationsschaltung verbunden ist.
17. Einrichtung nach Anspruch 16, dadurch gekennzeichnet, daß die Stellenzahl der von den
Ausgangssignalen der Verknüpfungsschaltung (500 bis 514) parallel im dritten Speicher (584) aufrufbaren
Substitutionswerte der Bitstellenzahl der Informationsbits im ersten Speicher (200) entspricht.
18. Einrichtung nach Anspruch 16 oder 17, dadurch gekennzeichnet, daß die Stellenzahl-Differenz
zwischen den zu chiffrierenden Informationsbits und den Chiffrierschlüsselbits in der Größenordnung
der halben Stellenzahl der Informationsbits liegt
19. Einrichtung nach einem der Ansprüche 16 bis 18, dadurch gekennzeichnet, daß die Stufen der
Verknüpfungsschaltung (500 bis 514) in Gruppen unterteilt sind, von denen jede eine Adresse einer
mehrere Substitutionsbits enthaltende Speicherzelle (586 bis 589) liefert, und daß die vom ersten Speicher
(200) mehrfach zugeführten Eingänge jeweils mit den Stufen der Randbitstellen benachbarter Gruppen
(z. B. 500 und 502) verbunden sind.
20. Einrichtung nach einem der Ansprüche 9 bis 19,
dadurch gekennzeichnet, daß zwischen die Ausgangsleitungen
der arithmetischen/logischen Verknüpfungsschaltung (500 bis 514) und den die
Substitutionswerte enthaltenden Speicher (584) ein Dekodierer (552) geschaltet ist
21. Einrichtung nach einem der Ansprüche 8 bis 20, dadurch gekennzeichnet, daß als arithmetische/logische
Verknüpfungsschaltungen (500 bis 514 und 650 bis 664) mehrstufige Modulo-2-Addierer dienen.
22. Einrichtung nach einem der Ansprüche 9 bis 21, dadurch gekennzeichnet, daß der die Substitutionswerte enthaltende Speicher (584) ein Festwertspeicher
ist
23. Einrichtung nach einem der Ansprüche 9 bis 22, dadurch gekennzeichnet, daß in den Permutationsschaltungen
(300, 450, 600, 800) jeweils die Zuordnung zwischen den Bitstellen der Eingangsleitungen
und den Bitstellen der Ausgangsleitungen nach einem vorgegebenen Schema geändert ist
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/552,684 US3962539A (en) | 1975-02-24 | 1975-02-24 | Product block cipher system for data security |
US05/552,685 US3958081A (en) | 1975-02-24 | 1975-02-24 | Block cipher system for data security |
US55268475 | 1975-02-24 | ||
US55268575 | 1975-02-24 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2558206A1 DE2558206A1 (de) | 1976-09-09 |
DE2558206B2 DE2558206B2 (de) | 1977-04-21 |
DE2558206C3 true DE2558206C3 (de) | 1977-12-15 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0986872B1 (de) | Vorrichtung zur durchführung eines blockchiffrierverfahrens | |
DE2607784C3 (de) | Datenchiffrierverfahren und Vorrichtung zur Durchführung dieses Verfahrens | |
DE2658065A1 (de) | Maschinelles chiffrieren und dechiffrieren | |
DE2510278C2 (de) | Pseudozufalls-Wortgenerator | |
DE2231849A1 (de) | Einrichtung zum chiffrieren oder dechiffrieren eines blocks binaerer daten | |
DE2710173A1 (de) | Nachrichtenanlage | |
DE1189294B (de) | Datenverarbeitungsanlage | |
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE1115488B (de) | Datenverarbeitungssystem | |
DE1449784A1 (de) | Schieberegister | |
DE3138698A1 (de) | Verfahren zur potenzierung grosser binaerzahlen in einer restklasse modulo n, insbesondere zur verschluesselung und entschluesselung digital dargestellter nachrichten | |
DE10324422B4 (de) | Verfahren und Vorrichtung zur Abbildung eines abzubildenden Eingangswertes auf einen verschlüsselten abgebildeten Ausgangswert | |
DE10345378B4 (de) | Verfahren und Vorrichtung zur Ver-/Entschlüsselung | |
EP3127272B1 (de) | Verschlüsselungsverfahren und pseudo-zufallszahlengenerator | |
EP1683029B1 (de) | Verfahren zur speicherung von daten in einem wahlzugriffspeicher und verschlüsselungs- und entschlüsselungsvorrichtung | |
DE2558206C3 (de) | Verfahren und Einrichtung zum Chiffrieren und autorisierten Dechiffrieren von Informationsblöcken | |
DE2335661A1 (de) | Arithmetische und logische schaltung | |
DE2459476C3 (de) | ||
DE2121490A1 (de) | Orthogonaler Datenspeicher | |
EP0453600B1 (de) | Paralleladdierwerk | |
DE2558206A1 (de) | Verfahren und einrichtung zum chiffrieren und autorisierten dechiffrieren von informationsbloecken | |
DE3331043C2 (de) | ||
DE2639806C2 (de) | Verfahren und Einrichtung zum Verschlüsseln oder Entschlüsseln von Datenblöcken in binärer Darstellung | |
DE2450669A1 (de) | Verfahren und schaltungsanordnungen zur verschluesselung und entschluesselung | |
DE1200868B (de) | Anordnung zur Chiffrierung von Signalen nach Art von Telegraphiesignalen |