DE4016203A1 - Verfahren zur blockweisen chiffrierung von digitalen daten - Google Patents

Verfahren zur blockweisen chiffrierung von digitalen daten

Info

Publication number
DE4016203A1
DE4016203A1 DE19904016203 DE4016203A DE4016203A1 DE 4016203 A1 DE4016203 A1 DE 4016203A1 DE 19904016203 DE19904016203 DE 19904016203 DE 4016203 A DE4016203 A DE 4016203A DE 4016203 A1 DE4016203 A1 DE 4016203A1
Authority
DE
Germany
Prior art keywords
bit
block
key
register
elementary operations
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.)
Withdrawn
Application number
DE19904016203
Other languages
English (en)
Inventor
Rolf Prof Dr Trautner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE19904016203 priority Critical patent/DE4016203A1/de
Priority to PCT/DE1991/000413 priority patent/WO1991018460A1/de
Publication of DE4016203A1 publication Critical patent/DE4016203A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Description

Die Erfindung betrifft ein Verfahren zur blockweisen Chiffrierung von digitalen Daten oder von digitalisierten analogen Daten, bei welchem zu einem Zeitpunkt j der zu chiffrierende Klartext als binärer Datenblock T(j) von L Bit in ein erstes Operationsregister eingelesen und anschließend darin mittels eines temporären Schlüssels S₁(j) und einer umkehrbaren Funktion F zu einem Zwischentext C₁(j) umgewandelt wird, worauf der Zwischentext C₁(j) parallel in ein zweites Operationsregister übertragen wird, in welchem der Zwischentext C₁(j) mittels eines temporären Schlüssels S₂(j) und der umkehrbaren Funktion F zu einem Zwischentext C₂(j) umgewandelt wird, so daß nach insgesamt R solcher Umwandlungsschritte der den Chiffretext C(j) zum Zeitpunkt j darstellende Zwischentext CR (j) entsteht, wobei die Übertragung der einzelnen Zwischentexte von dem einen in das nachfolgende Operationsregister entsprechend dem systolischen Algorithmus gleichzeitig parallel erfolgt.
Ein derartiges Chiffrierverfahren ohne den systolischen Algorithmus ist unter der Bezeichnung DES-Verfahren bekannt und beispielsweise von J. Seberry et al. in "Cryptography: An Introduction to Computer Security", Prentice Hall beschrieben.
Nachteilig bei diesem bekannten Verfahren ist jedoch die nicht ausreichend hohe Verarbeitungsgeschwindigkeit, die bei heutigen kryptographischen Anwendungen und gebräuchlichen Datenübertragungsgeschwindigkeiten gefordert wird.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren der eingangs genannten Art so zu verbessern, daß auch bei den derzeit gebräuchlichen Datenübertragungsgeschwindigkeiten im Bereich von 140 MBit/sec eine synchrone Chiffrierung möglich ist, wobei zugleich eine Erhöhung der Datensicherheit bei nur geringem Mehraufwand an Hardware erreicht werden soll.
Diese Aufgabe wird nach der Erfindung dadurch gelöst, daß die Umwandlung des im Operationsregister k stehenden Datenblocks in mehreren Umwandlungsschritten erfolgt, wobei die Anzahl der Umwandlungsschritte festgelegt ist und die einzelnen Umwandlungsschritte von schnellablaufenden Elementaroperationen gebildet sind, deren Reihenfolge von einer variablen Permutation Pik (j) bestimmt wird, die Teil des Schlüssels Sk (j) und so gebildet ist, daß jeder der Umwandlungsschritte genau einmal vollzogen wird.
Der durch die Erfindung erreichte Fortschritt besteht im wesentlichen darin, daß durch Anwendung von Elementaroperationen außergewöhnlich hohe Verarbeitungsgeschwindigkeiten erreicht werden, da hierfür meist nur ein einziger Zeittakt erforderlich ist. Durch die frei wählbare und sich laufend ändernde Reihenfolge der ablaufenden Elementaroperationen wird dennoch bei vergleichsweise geringem Aufwand eine außergewöhnlich hohe Datensicherheit erreicht. Da die Permutation variabel ist und vom Zeitpunkt j abhängt und die Permutation als rekursive Funktion für jeden Zeitpunkt j neu bestimmt wird, stehen für jedes Operationsregister und jeden Zeitpunkt j insgesamt 10! verschiedene Permutationen zur Verfügung. Bei einer Anzahl von R Operationsregistern kann somit für jeden Zeitpunkt aus (10!)R verschiedenen Abbildungen jeweils eine neue ausgewählt werden. Bereits bei R=4 erhält man einen zusätzlichen Sicherheitsfaktor von (10!)⁴<1,73 · 10²⁶, wobei hierfür ein außerordentlich geringer Mehraufwand an Hardware von etwa 20% erforderlich ist. Für die Länge L des Datenblocks wird zweckmäßig eine Zweierpotenz gewählt.
Für den Beginn einer Datenübertragung sieht das Verfahren vor, daß die Schlüssel S₁(1), S₂(1), . . ., SR (1) zum ersten Zeitpunkt als Startschlüssel vorgegeben sind und für eine festgelegte Anzahl von Zeitpunkten unverändert übernommen werden. Der Satz von Startschlüsseln muß beiden Teilnehmern gemeinsam bekannt sein und kann etwa durch ein modernes Public Key Verfahren ausgeteilt sein. Die möglichen Vorteile eines gewählten Klartext-Angriffs (bei welchem dem Angreifer ein Chiffriergerät vorliegt) gegenüber einem bekannten Klartext-Angriff (bei welchem dem Angreifer Klar- und zugehöriger Chiffriertext vorliegen), können dadurch ausgeschlossen werden, daß grundsätzlich eine Vorphase von ca. 1 sec vorgeschaltet wird, in der ein (nicht beeinflußbares) physikalisches weißes Rauschen chiffriert übermittelt und erst dann der zu übermittelnde Text chiffriert wird.
Vorteilhaft kann hierbei sein, daß die Startschlüssel für 2R Zeitpunkte unverändert übernommen werden.
In bevorzugter Verfahrensweise nach der Erfindung werden die auf den Startschlüssel folgenden Schlüssel als rekursive Funktionen aus der Rückführung eines bestimmten Zwischentextes gebildet. Dies hat den Vorteil, daß ein Zugriff auf die die folgenden Schlüssel generierenden Zwischentexte von außen in der Regel nicht möglich ist.
Dabei kann auch vorgesehen sein, daß die Rückführung des Zwischentextes über Zwischenregister zeitlich verzögert erfolgt. Die Zeitverschiebung ist notwendig wegen der Zeitverschiebung durch den systolischen Algorithmus: Der Empfänger kann erst nach 2R Zeiteinheiten entschlüsselt haben und ist dann im Besitz sämtlicher zugehöriger Zwischentexte.
In besonders zweckmäßiger Ausgestaltung der Erfindung ist vorgesehen, daß die auf den Startschlüssel folgenden Schlüssel als rekursive Funktionen
Sk (j)=fk(Sk (j-1), CR/2 (j-2R)) berechnet werden.
Grundsätzlich kann die Zahl der in einem Operationsregister durchzuführenden Elementaroperationen frei gewählt werden. Im Hinblick auf die zur Verfügung stehende Zahl sinnvoller und zeitlich kurzer Operationen sieht die Erfindung vor, daß in jedem der Operationsregister insgesamt zehn Umwandlungsschritte erfolgen, wobei hierfür zehn unterschiedliche Elementaroperationen benutzt werden.
Als vorteilhaft hat sich dabei erwiesen, daß für jeden der Umwandlungsschritte der Datenblock zunächst in ein eigenes Unterregister übertragen, dort die Elementaroperation durchgeführt und dann der Datenblock an das Operationsregister rückübertragen wird, wobei die Elementaroperationen von speziellen Teilschlüsseln des temporären Schlüssels Sk (j) abhängen. Hierbei ist es weiter günstig, wenn das Operationsregister für jeden Umwandlungsschritt den Datenblock an sämtliche Unterregister überträgt, der Datenblock in allen Unterregistern der jeweiligen Elementaroperation unterworfen wird, und anschließend das Operationsregister den Datenblock des durch die Permutation Pik (j) bestimmten Unterregisters übernimmt.
Im Rahmen der Erfindung sind die folgenden Elementaroperationen vorgesehen:
Eine erste Elementaroperation kann aus einer Addition bestehen, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel a=(alphai)₀L-1 der Ausgabeblock y=(yi)₀L-1 berechnet wird durch yi=xi+alphai mod 2=xi ⊕ alphai.
Eine zweite Elementaroperation kann aus einem bedingten Austausch bestehen, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel b=(betai)₀L/2-1 der Ausgabeblock y=(yi) dadurch berechnet wird, daß xi und xi+L/2 ausgetauscht werden, falls betai=1 ist.
Eine dritte Elementaroperation kann aus einem bedingten Austausch bestehen, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel b=(betai)₀L/2-1 der Ausgabeblock y=(yi) dadurch berechnet wird, daß xi und xL-1-i ausgetauscht werden, falls betai=1 ist.
Eine vierte Elementaroperation kann aus einer 2er Matrix-Multiplikation bestehen, bei der der L-Bit Block zunächst in L/2 2-Bit Blöcke aufgespalten und anschließend auf einen jeden solchen eine der Matrix-Operationen
angewandt wird, wobei deren Auswahl durch jeweils einen 2-Bit-Schlüssel gesteuert wird.
Eine fünfte Elementaroperation kann aus 3er-Permutationen bestehen, für die der L-Bit Block zunächst in [L/3] 3-Bit Untermengen aufgespalten und auf jeder Untermenge eine Permutation ausgeführt wird, wobei die Auswahl jeweils durch einen 3-Bit Schlüssel erfolgt.
Eine sechste Elementaroperation kann aus einer 4-Bit-Abbildung bestehen, für die zunächst der L-Bit Block in L/4 4-Bit Blöcke aufgespalten wird, wobei das Element eines solchen 4-Bit Blocks als eine Zahl zwischen 0 und 15, d. h. als Element von Z₁₆={0, 1, 2, . . ., 15} aufgefaßt wird, worauf 4 bÿektive Abbildungen Phi₁, Phi₂, Phi₃, Phi₄ auf Z₁₆ betrachtet werden und jeweils eine davon auf einen 4-Bit Block angewandt wird, wobei die Auswahl durch einen 2-Bit Schlüssel erfolgt.
Eine siebte Elementaroperation kann aus einer 4-Bit zyklischen Faltung bestehen, bei der zunächst der L-Bit Block in L/4 4-Bit Blöcke aufgespalten und dann auf jedem der Blöcke eine zyklische Faltung y=x*c mit
ausgeführt wird, wobei c=(ci)₀³ ungerade Parität hat und ein 3-Bit Schlüssel pro 4-Bit-Block die Auswahl unter den Parameter-Vektoren c steuert.
Eine achte Elementaroperation kann aus einer 8-Bit zyklischen Faltung bestehen, bei der zunächst der L-Bit Block in L/8 8-Bit Blöcke aufgespalten und dann auf jedem der Blöcke eine zyklische Faltung y=x*c mit
ausgeführt wird, wobei c=(ci)₀⁷ ungerade Parität hat und ein 7-Bit Schlüssel pro 8-Bit-Block die Auswahl und den Parameter-Vektoren c steuert.
Eine neunte Elementaroperation kann aus einer zyklischen Verschiebung Cm bestehen, bei der der L-Bit Block um m=k · L/16 Bit zyklisch verschoben wird, wobei die Auswahl des Wertes k durch einen ₂log L/16 Bit-Schlüssel erfolgt.
Eine zehnte Elementaroperation kann aus einer 16-Bit variablen zyklischen Verschiebung bestehen, bei der zunächst der L-Bit Block in L/16 16-Bit Blöcke aufgeteilt, dann zu jedem der 16-Bit Blöcke das Hamming-Gewicht w(x) berechnet und schließlich jeder Block um w(x) Positionen zyklisch verschoben wird, so daß y=Cw(x) · x ist.
Schließlich besteht auch die Möglichkeit, daß der schon beschriebene bedingte Austausch ersetzt wird durch einen allgemeinen bedingten Austausch, wobei der Gesamtblock in L/2 Teilmengen aufgeteilt wird und die Elemente der i-ten Teilmenge ausgetauscht werden, falls betai=1 ist für einen L/2-Bit Teilschlüssel beta=(betai)₀L/2-1.
Im folgenden wird die Erfindung unter Bezugnahme auf die Zeichnung im einzelnen erläutert; es zeigen:
Fig. 1 eine schematische Darstellung einer Vorrichtung zur Durchführung des erfindungsgemäßen Verfahrens,
Fig. 2 eine ebenfalls schematische Detaildarstellung eines Ausschnitts des Gegenstands nach Fig. 1.
Das im folgenden beschriebene Verfahren dient zur blockweisen Chiffrierung von digitalen Daten oder von digitalisierten analogen Daten, bei welchem zu einem Zeitpunkt j der zu chiffrierende Klartext T(j) als binärer Datenblock von L Bit in ein erstes Operationsregister 1 eingelesen und anschließend darin mittels eines temporären Schlüssels S₁(j) und einer umkehrbaren Funktion F zu einem Zwischentext C₁(j) umgewandelt wird. Der Zwischentext C₁(j) wird anschließend parallel in ein zweites Operationsregister 2 übertragen, in welchem der Zwischentext C₁(j) mittels eines temporären Schlüssels S₂(j) und der umkehrbaren Funktion F zu einem Zwischentext C₂(j) umgewandelt wird. Nach insgesamt R solcher Umwandlungsschritte entsteht der den Chiffretext C(j) zum Zeitpunkt j darstellende Zwischentext CR (j). Die Übertragung der einzelnen Zwischentexte von dem einen in das nachfolgende Operationsregister erfolgt entsprechend dem systolischen Algorithmus gleichzeitig parallel, so daß eine Erhöhung der Anzahl der Operationsregister sich nicht auf die mittlere Durchlaufzeit auswirkt, sondern nur eine höhere Zeitverschiebung bewirkt. Die Umwandlung des im Operationsregister k stehenden Datenblocks erfolgt in mehreren Umwandlungsschritten, wobei die Anzahl der Umwandlungsschritte festgelegt ist und die einzelnen Umwandlungsschritte von schnellablaufenden Elementaroperationen gebildet sind. Die Reihenfolge dieser Elementaroperationen wird von einer variablen Permutation Pik (j) bestimmt, die Teil des Schlüssels Sk (j) und so gebildet ist, daß jeder der Umwandlungsschritte genau einmal vollzogen wird. Die Elementaroperationen können hardwaremäßig sehr schnell realisiert werden, so daß sie zumeist nach einer Taktzeit abgeschlossen sind.
Die Schlüssel S₁(1), S₂(1), . . ., SR (1) werden zum ersten Zeitpunkt als Startschlüssel vorgegeben und müssen beiden Teilnehmern etwa durch ein Public Key Verfahren bekannt sein. Diese Startschlüssel werden für eine festgelegte Anzahl von Zeitpunkten, etwa für 2R Zeitpunkte, unverändert übernommen.
Die auf den Startschlüssel folgenden Schlüssel werden dann als rekursive Funktionen aus der Rückführung eines bestimmten Zwischentextes gebildet. Die Verwendung eines Zwischentextes gegenüber dem Klartext oder dem Chiffriertext (die bei einem Chosen-Plaintext-Angriff beide bekannt sind) hat den Vorteil, daß dieser wegen der nur internen Verwendung nicht bekannt wird.
Hierbei ist im übrigen vorgesehen, daß die Rückführung des Zwischentextes über Zwischenregister zeitlich verzögert erfolgt. Im einzelnen werden die auf den Startschlüssel folgenden Schlüssel als rekursive Funktionen
Sk (j)=fk(Sk (j-1), CR/2 (J-2R))
berechnet.
In jedem der Operationsregister 1, 2, 3, 4 erfolgen, wie sich aus der Fig. 2 zeigt, insgesamt zehn Umwandlungsschritte, wobei hierfür zehn unterschiedliche Elementaroperationen benutzt werden. Für jeden der Umwandlungsschritte wird der Datenblock zunächst in ein eigenes Unterregister 5 übertragen und dort die Elementaroperation durchgeführt. Dann wird der Datenblock an das Operationsregister 1, 2, 3, 4 rückübertragen, wobei die Elementaroperationen von speziellen Teilschlüsseln des temporären Schlüssels Sk (j) abhängen.
Aus schaltungstechnischen Gründen ist es vorteilhaft, daß das Operationsregister für jeden Umwandlungsschritt den Datenblock an sämtliche Unterregister 5 überträgt. Dort wird der Datenblock in allen Unterregistern 5 der jeweiligen Elementaroperation unterworfen. Anschließend übernimmt das Operationsregister 1, 2, 3, 4 jedoch nur den Datenblock des Unterregisters 5, das durch die Permutation Pik (j) bestimmt ist.
Die Elementaroperation des ersten Unterregisters kann aus einer Addition bestehen, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel a=(alphai)₀L-1 der Ausgabeblock y=(yi)₀L-1 berechnet wird durch yi=xi+alphai mod 2=xi ⊕ alphai.
Die Elementaroperation des zweiten Unterregisters kann aus einem bedingten Austausch bestehen, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel b=(betai)₀L/2-1 der Ausgabeblock y=(yi) dadurch berechnet wird, daß xi und xi+L/2 ausgetauscht werden, falls betai=1 ist.
Die Elementaroperation des dritten Unterregisters kann aus einem bedingten Austausch bestehen, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel b=(betai)₀L/2-1 der Ausgabeblock y=(yi) dadurch berechnet wird, daß xi und xL-1-i ausgetauscht werden, falls betai=1 ist.
Die Elementaroperation des vierten Unterregisters kann aus einer 2er Matrix-Multiplikation bestehen, bei der der L-Bit Block zunächst in L/2 2-Bit Blöcke aufgespalten und anschließend auf einen jeden solchen eine der Matrix-Operationen
angewandt wird, wobei deren Auswahl durch jeweils einen 2-Bit-Schlüssel gesteuert wird.
Die Elementaroperation des fünften Unterregisters kann aus 3er-Permutationen bestehen, für die der L-Bit Block zunächst in [L/3] 3-Bit Untermengen aufgespalten und auf jeder Untermenge eine Permutation ausgeführt wird, wobei die Auswahl jeweils durch einen 3-Bit Schlüssel erfolgt.
Die Elementaroperation des sechsten Unterregisters kann aus einer 4-Bit-Abbildung bestehen, für die zunächst der L-Bit Block in L/4 4-Bit Blöcke aufgespalten wird, wobei das Element eines solchen 4-Bit Blocks als eine Zahl zwischen 0 und 15, d. h. als Element von Z₁₆={0, 1, 2, . . ., 15} aufgefaßt wird, worauf 4 bÿektive Abbildungen Phi₁, Phi₂, Phi₃, Phi₄ auf Z₁₆ betrachtet werden und jeweils eine davon auf einen 4-Bit Block angewandt wird, wobei die Auswahl durch einen 2-Bit Schlüssel erfolgt.
Die Elementaroperation des siebten Unterregisters kann aus einer 4-Bit zyklischen Faltung bestehen, bei der zunächst der L-Bit Block in L/4 4-Bit Blöcke aufgespalten und dann auf jedem der Blöcke eine zyklische Faltung y=x*c mit
ausgeführt wird, wobei c=(ci)₀³ ungerade Parität hat und ein 3-Bit Schlüssel pro 4-Bit-Block die Auswahl unter den Parameter-Vektoren c steuert.
Die Elementaroperation des achten Unterregisters kann aus einer 8-Bit zyklischen Faltung bestehen, bei der zunächst der L-Bit Block in L/8 8-Bit Blöcke aufgespalten und dann auf jedem der Blöcke eine zyklische Faltung y=x*c mit
ausgeführt wird, wobei c=(ci)₀⁷ ungerade Parität hat und ein 7-Bit Schlüssel pro 8-Bit-Block die Auswahl unter den Parameter-Vektoren c steuert.
Die Elementaroperation des neunten Unterregisters kann aus einer zyklischen Verschiebung Cm bestehen, bei der der L-Bit Block um m=k · L/16 Bit zyklisch verschoben wird, wobei die Auswahl des Wertes k durch einen ₂log L/16 Bit-Schlüssel erfolgt.
Die Elementaroperation des zehnten Unterregisters kann aus einer 16-Bit variablen zyklischen Verschiebung bestehen, bei der zunächst der L-Bit Block in L/16 16-Bit Blöcke aufgeteilt, dann zu jedem der 16-Bit Blöcke das Hamming-Gewicht w(x) berechnet und schließlich jeder Block um w(x) Positionen zyklisch verschoben wird, so daß y=Cw(x) · x ist.
Es ist jedoch auch möglich, daß der für das zweite bzw. dritte Unterregister beschriebene bedingte Austausch ersetzt wird durch einen allgemeinen bedingten Austausch, wobei der Gesamtblock in L/2 Teilmengen aufgeteilt wird und die Elemente der i-ten Teilmenge ausgetauscht werden, falls betai=1 ist für einen L/2-Bit Teilschlüssel beta=(betai)₀L/2-1.
Die Dechiffrierung erfolgt mit demselben Gerät wie die Chiffrierung dadurch, daß der Chiffriertext C(j) in das R-te Operationsregister eingelesen und dort in den Zwischentext CR-1 (j) umgewandelt wird. Dieser Zwischentext wird in entsprechender Weise wie bei der Chiffrierung, nur in umgekehrter Richtung, durch die einzelnen Operationsregister geschickt, wodurch sukzessiv die entsprechenden Zwischentexte und schließlich zuletzt der gewünschte Klartext geliefert wird. Die Umkehrabbildung durch die einzelnen Umwandlungsschritte wird durch dieselbe Abbildung F in den einzelnen Operationsregistern beschrieben. Die invertierende Wirkung wird dadurch erzielt, daß der jeweilige Schlüssel durch einen inversen Schlüssel ersetzt wird.
Bei der 3er-Permutation erfolgt die Invertierung dadurch, daß die zugehörigen inversen Permutationen in der analogen Reihenfolge aufgelistet werden. Wird durch den Schlüssel bei der Chiffrierung die k-te Permutation Pik ausgewählt, dann wird durch denselben Schlüssel bei der Dechiffrierung die inverse Permutation Pik -1 ausgewählt.
Bei der 4-Bit-Abbildung erfolgt die Invertierung dadurch, daß die inversen Abbildungen Phi₁-1, Phi₂-1, Phi₃-1, Phi₄-1 in der gleichen Reihenfolge aufgelistet und durch denselben Schlüssel ausgewählt werden.
Bei der 4-Bit zyklischen Faltung geschieht die Invertierung dadurch, daß die inversen Faktoren C-1 in derselben Reihenfolge aufgelistet und durch denselben Schlüssel ausgewählt werden.
Bei der zyklischen Verschiebung erfolgt die Invertierung durch zyklische Verschiebung um -m=-k · L/16 Bit.
Bei der 16-Bit variablen zyklischen Verschiebung erfolgt die Invertierung dadurch, daß das Hamming-Gewicht von y berechnet wird, also Cw(y) und um -w(y) Positionen zyklisch verschoben wird, so daß x=C-w(y) · y. Hier ist zu beachten, daß w(x)=w(y), wobei ein Schlüssel hier nicht auftritt.

Claims (20)

1. Verfahren zur blockweisen Chiffrierung von digitalen Daten oder von digitalisierten analogen Daten, bei welchem zu einem Zeitpunkt j der zu chiffrierende Klartext als binärer Datenblock T(j) von L Bit in ein erstes Operationsregister (1) eingelesen und anschließend darin mittels eines temporären Schlüssels S₁(j) und einer umkehrbaren Funktion F zu einem Zwischentext C₁(j) umgewandelt wird, worauf der Zwischentext C₁(j) parallel in ein zweites Operationsregister (2) übertragen wird, in welchem der Zwischentext C₁(j) mittels eines temporären Schlüssels S₂(j) und der umkehrbaren Funktion F zu einem Zwischentext C₂(j) umgewandelt wird, so daß nach insgesamt R solcher Umwandlungsschritte der den Chiffretext C(j) zum Zeitpunkt j darstellende Zwischentext CR (j) entsteht, wobei die Übertragung der einzelnen Zwischentexte von dem einen in das nachfolgende Operationsregister entsprechend dem systolischen Algorithmus gleichzeitig parallel erfolgt, dadurch gekennzeichnet, daß die Umwandlung des im Operationsregister k stehenden Datenblocks in mehreren Umwandlungsschritten erfolgt, wobei die Anzahl der Umwandlungsschritte festgelegt ist und die einzelnen Umwandlungsschritte von schnellablaufenden Elementaroperationen gebildet sind, deren Reihenfolge von einer variablen Permutation Pik (j) bestimmt wird, die Teil des Schlüssels Sk (j) und so gebildet ist, daß jeder der Umwandlungsschritte genau einmal vollzogen wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Schlüssel S₁(1), S₂(1), . . ., SR (1) zum ersten Zeitpunkt als Startschlüssel vorgesehen sind und für eine festgelegte Anzahl von Zeitpunkten unverändert übernommen werden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die Startschlüssel für 2R Zeitpunkte unverändert übernommen werden.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß die auf den Startschlüssel folgenden Schlüssel als rekursive Funktionen aus der Rückführung eines bestimmten Zwischentextes gebildet werden.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß die Rückführung des Zwischentextes über Zwischenregister zeitlich verzögert erfolgt.
6. Verfahren nach einem der Ansprüche 2 bis 5, dadurch gekennzeichnet, daß die auf den Startschlüssel folgenden Schlüssel als rekursive Funktionen Sk (j)=fk(Sk (j-1), CR/2 (j-2R)) berechnet werden.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß in jedem der Operationsregister (1, 2, 3, 4) insgesamt zehn Umwandlungsschritte erfolgen, wobei hierfür zehn unterschiedliche Elementaroperationen benutzt werden.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß für jeden der Umwandlungsschritte der Datenblock zunächst in ein eigenes Unterregister (5) übertragen, dort die Elementaroperation durchgeführt und dann der Datenblock an das Operationsregister (1, 2, 3, 4) rückübertragen wird, wobei die Elementaroperationen von speziellen Teilschlüsseln des temporären Schlüssels Sk (j) abhängen.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß das Operationsregister (1, 2, 3, 4) für jeden Umwandlungsschritt den Datenblock an sämtliche Unterregister (5) überträgt, der Datenblock in allen Unterregistern (5) der jeweiligen Elementaroperation unterworfen wird, und anschließend das Operationsregister (1, 2, 3, 4) den Datenblock des durch die Permutation Pik (j) bestimmten Unterregisters (5) übernimmt.
10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einer Addition besteht, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel a=(alphai)₀L-1 der Ausgabeblock y=(yi)₀L-1 berechnet wird durch yi=xi+alphai mod 2=xi ⊕ alphai.
11. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einem bedingten Austausch besteht, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel b=(betai)₀L/2-1 der Ausgabeblock y=(yi) dadurch berechnet wird, daß xi und xi+L/2 ausgetauscht werden, falls betai=1 ist.
12. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einem bedingten Austausch besteht, wobei für den Eingabeblock x=(xi)₀L-1 und den Teilschlüssel b=(betai)₀L/2-1 der Ausgabeblock y=(yi) dadurch berechnet wird, daß xi und xL-1-i ausgetauscht werden, falls betai=1 ist.
13. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einer 2er Matrix-Multiplikation besteht, bei der der L-Bit Block zunächst in L/2 2-Bit Blöcke aufgespalten und anschließend auf einen jeden solchen eine der Matrix-Operationen angewandt wird, wobei deren Auswahl durch jeweils einen 2-Bit-Schlüssel gesteuert wird.
14. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus 3er-Permutationen besteht, für die der L-Bit Block zunächst in [L/3] 3-Bit Untermengen aufgespalten und auf jeder Untermenge eine Permutation ausgeführt wird, wobei die Auswahl jeweils durch einen 3-Bit-Schlüssel erfolgt.
15. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einer 4-Bit-Abbildung besteht, für die zunächst der L-Bit Block in L/4 4-Bit Blöcke aufgespalten wird, wobei das Element eines solchen 4-Bit Blocks als eine Zahl zwischen 0 und 15, d. h. als Element von Z₁₆= {0, 1, 2, . . ., 15} aufgefaßt wird, worauf 4 bÿektive Abbildungen Phi₁, Phi₂, Phi₃, Phi₄ auf Z₁₆ betrachtet werden und jeweils eine davon auf einen 4-Bit Block angewandt wird, wobei die Auswahl durch einen 2-Bit Schlüssel erfolgt.
16. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einer 4-Bit zyklischen Faltung besteht, bei der zunächst der L-Bit Block in L/4 4-Bit Blöcke aufgespalten und dann auf jedem der Blöcke eine zyklische Faltung y=x*c mit ausgeführt wird, wobei c=(ci)₀³ ungerade Parität hat und ein 3-Bit Schlüssel pro 4-Bit-Block die Auswahl unter den Parameter-Vektoren c steuert.
17. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einer 8-Bit zyklischen Faltung besteht, bei der zunächst der L-Bit Block in L/8 8-Bit Blöcke aufgespalten und dann auf jedem der Blöcke eine zyklische Faltung y=x*c mit ausgeführt wird, wobei c=(ci)₀⁷ ungerade Parität hat und ein 7-Bit Schlüssel pro 8-Bit-Block die Auswahl unter den Parameter-Vektoren c steuert.
18. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einer zyklischen Verschiebung Cm besteht, bei der der L-Bit Block um m=k · L/16 Bit zyklisch verschoben wird, wobei die Auswahl des Wertes k durch einen ₂log L/16 Bit-Schlüssel erfolgt.
19. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine der Elementaroperationen aus einer 16-Bit variablen zyklischen Verschiebung besteht, bei der zunächst der L-Bit Block in L/16 16-Bit Blöcke aufgeteilt, dann zu jedem der 16-Bit Blöcke das Hamming-Gewicht w(x) berechnet und schließlich jeder Block um w(x) Positionen zyklisch verschoben wird, so daß y=Cw(x) · x ist.
20. Verfahren nach Anspruch 11 oder 12, dadurch gekennzeichnet, daß der dort beschriebene bedingte Austausch ersetzt wird durch einen allgemeinen bedingten Austausch, wobei der Gesamtblock in L/2 Teilmengen aufgeteilt wird und die Elemente der i-ten Teilmenge ausgetauscht werden, falls betai=1 ist für einen L/2-Bit Teilschlüssel beta=(betai)₀L/2-1.
DE19904016203 1990-05-19 1990-05-19 Verfahren zur blockweisen chiffrierung von digitalen daten Withdrawn DE4016203A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE19904016203 DE4016203A1 (de) 1990-05-19 1990-05-19 Verfahren zur blockweisen chiffrierung von digitalen daten
PCT/DE1991/000413 WO1991018460A1 (de) 1990-05-19 1991-05-18 Verfahren zur blockweisen chiffrierung von digitalen daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19904016203 DE4016203A1 (de) 1990-05-19 1990-05-19 Verfahren zur blockweisen chiffrierung von digitalen daten

Publications (1)

Publication Number Publication Date
DE4016203A1 true DE4016203A1 (de) 1991-11-21

Family

ID=6406813

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19904016203 Withdrawn DE4016203A1 (de) 1990-05-19 1990-05-19 Verfahren zur blockweisen chiffrierung von digitalen daten

Country Status (2)

Country Link
DE (1) DE4016203A1 (de)
WO (1) WO1991018460A1 (de)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997044935A1 (en) * 1996-05-20 1997-11-27 Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
EP0874496A2 (de) * 1997-04-23 1998-10-28 Matsushita Electric Industrial Co., Ltd. Verfahren und Einrichtung zur kryptographischen Verarbeitung und Speichermedium zur Speicherung eines kryptographischen Verarbeitungsprogramms zur Verbesserung der Sicherheit ohne beachtliche Vergrösserung der Hardware und der Verarbeitungzeit
DE19724072A1 (de) * 1997-06-07 1998-12-10 Deutsche Telekom Ag Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
WO1999000930A1 (fr) * 1997-11-28 1999-01-07 Otkrytoe Aktsionernoe Obschestvo 'moskovskaya Goro Procede de transformation cryptographique de blocs d'entree de donnees numeriques a l bits en blocs de sortie a l bits
FR2778519A1 (fr) * 1998-02-27 1999-11-12 Mosaid Technologies Inc Processeur de chiffrement avec interconnexion a memoire partagee
WO2002073878A1 (fr) * 2001-03-13 2002-09-19 Gemplus Dispositif de permutation de fils electriques commande electroniquement
CN108848073A (zh) * 2018-05-31 2018-11-20 唐山智能电子有限公司 对实时数据采集系统的数据进行加密解密的方法以及系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3746098B2 (ja) * 1996-02-28 2006-02-15 株式会社日立製作所 データの暗号化装置
AU716807B2 (en) * 1996-02-28 2000-03-09 Hitachi Limited Method and apparatus for encrypting data
DE19707288A1 (de) * 1997-02-24 1998-08-27 Andreas Kuehnl Mittel zur sicheren Chiffrierung jeglicher Art von Daten
FI107669B (fi) * 1998-02-13 2001-09-14 Nokia Mobile Phones Ltd Menetelmä ja järjestely tiedonsiirron salaamiseksi
DE19807020A1 (de) * 1998-02-19 1999-08-26 Kuehnl Mittel zur sicheren Chiffrierung von Daten
US6711624B1 (en) * 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
GB2387088B (en) * 2002-03-26 2005-06-01 Gordon Geoffrey Hodson Method and apparatus for data encryption/decryption

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH558993A (de) * 1973-03-19 1975-02-14 Patelhold Patentverwertung Verfahren und einrichtung zur verschluesselten nachrichtenuebertragung.
DE2658065A1 (de) * 1976-12-22 1978-07-06 Ibm Deutschland Maschinelles chiffrieren und dechiffrieren
SE7714587L (sv) * 1977-12-21 1979-06-22 Brendstrom Hugo System for meddelanden
FR2582174B1 (fr) * 1985-05-15 1990-03-09 Thomson Csf Dispositif de chiffrement par substitutions-permutations
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
US5008935A (en) * 1989-06-30 1991-04-16 At&T Bell Laboratories Efficient method for encrypting superblocks of data

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997044935A1 (en) * 1996-05-20 1997-11-27 Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
US6459792B2 (en) 1997-04-23 2002-10-01 Matsushita Electric Industrial Co., Ltd. Block cipher using key data merged with an intermediate block generated from a previous block
EP0874496A2 (de) * 1997-04-23 1998-10-28 Matsushita Electric Industrial Co., Ltd. Verfahren und Einrichtung zur kryptographischen Verarbeitung und Speichermedium zur Speicherung eines kryptographischen Verarbeitungsprogramms zur Verbesserung der Sicherheit ohne beachtliche Vergrösserung der Hardware und der Verarbeitungzeit
EP0874496A3 (de) * 1997-04-23 2000-04-05 Matsushita Electric Industrial Co., Ltd. Verfahren und Einrichtung zur kryptographischen Verarbeitung und Speichermedium zur Speicherung eines kryptographischen Verarbeitungsprogramms zur Verbesserung der Sicherheit ohne beachtliche Vergrösserung der Hardware und der Verarbeitungzeit
DE19724072A1 (de) * 1997-06-07 1998-12-10 Deutsche Telekom Ag Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
WO1998057461A1 (de) * 1997-06-07 1998-12-17 Deutsche Telekom Ag Vorrichtung zur durchführung eines blockchiffrierverfahrens
DE19724072C2 (de) * 1997-06-07 1999-04-01 Deutsche Telekom Ag Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
US6760439B1 (en) 1997-06-07 2004-07-06 Deutsche Telekom Ag Device for implementing a block-ciphering process
US7142673B1 (en) 1997-11-28 2006-11-28 Otkrytoye aktsionernoye obschestvo “Moskovskaya Gorodskaya Telefonnaya Set” Method for the cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks
WO1999000930A1 (fr) * 1997-11-28 1999-01-07 Otkrytoe Aktsionernoe Obschestvo 'moskovskaya Goro Procede de transformation cryptographique de blocs d'entree de donnees numeriques a l bits en blocs de sortie a l bits
FR2778519A1 (fr) * 1998-02-27 1999-11-12 Mosaid Technologies Inc Processeur de chiffrement avec interconnexion a memoire partagee
USRE44697E1 (en) 1998-02-27 2014-01-07 Mosaid Technologies Incorporated Encryption processor with shared memory interconnect
FR2822310A1 (fr) * 2001-03-13 2002-09-20 Gemplus Card Int Dispositif de permutation de fils electriques commande electroniquement
WO2002073878A1 (fr) * 2001-03-13 2002-09-19 Gemplus Dispositif de permutation de fils electriques commande electroniquement
CN108848073A (zh) * 2018-05-31 2018-11-20 唐山智能电子有限公司 对实时数据采集系统的数据进行加密解密的方法以及系统
CN108848073B (zh) * 2018-05-31 2021-04-13 唐山智能电子有限公司 对实时数据采集系统的数据进行加密解密的方法以及系统

Also Published As

Publication number Publication date
WO1991018460A1 (de) 1991-11-28

Similar Documents

Publication Publication Date Title
DE19827904C2 (de) Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung
DE69731470T2 (de) Spiral-verwürfelungsverfahren
DE4016203A1 (de) Verfahren zur blockweisen chiffrierung von digitalen daten
EP0482154B1 (de) Vorrichtung für das umwandeln eines digitalblockes und verwendung derselben
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
DE69916160T2 (de) Vorrichtung und Verfahren zur kryptographischen Verarbeitung sowie Aufzeichnungsmedium zum Aufzeichnen eines kryptographischen Verarbeitungsprogramms zur Ausführung einer schnellen kryptographischen Verarbeitung ohne Preisgabe der Sicherheit
DE602005002632T2 (de) Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten
DE19744961A1 (de) Erzeugen eindeutiger und unvorhersagbarer Werte
DE69831982T2 (de) Kryptographisches vermittlungsverfahren und gerät
DE2341627A1 (de) Digitaldatenverschluesselungsvorrichtung
DE10148415C2 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE2231835A1 (de) Verfahren zur in mehreren stufen erfolgenden ver- und entschluesselung binaerer daten
DE102008010789B4 (de) Verfahren zur zugriffs- und kommunikationsbezogenen Zufallsver- und Entschlüsselung von Daten
DE60221850T2 (de) Verfahren und vorrichtung zur datenverschlüsselung
DE2146752B2 (de) Nachrichtenübertragungsverfahren mit wählbarer Codierung und Sender zur Durchführung dieses Verfahrens
DE2805294C2 (de) Codierende Übertragungsanlage für Faksimile-Signale
DE69729297T2 (de) Verschlüsselungsvorrichtung für binärkodierte nachrichten
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
DE1512173A1 (de) Demodulator
DE10345378B4 (de) Verfahren und Vorrichtung zur Ver-/Entschlüsselung
DE102004038594B4 (de) Verschlüsselungsverfahren und -vorrichtung
DE10352680A1 (de) Verschlüsselungsvorrichtung und Verschlüsselungsverfahren
DE60128309T2 (de) Schaltung zur Erzeugung eines Verschlüsselungsnebenschlüssels
DE3828864A1 (de) Mehrstufen-quadraturamplitudenmodulations- und demodulationssystem
DE69829566T2 (de) Verschlüsselungsgerät

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee