DE19827904A1 - Blockchiffrieralgorithmus mit robuster Sicherheit gegen eine differentielle Kryptoanalyse, eine lineare Kryptoanalyse und eine differentielle Kryptoanalyse höherer Ordnung - Google Patents

Blockchiffrieralgorithmus mit robuster Sicherheit gegen eine differentielle Kryptoanalyse, eine lineare Kryptoanalyse und eine differentielle Kryptoanalyse höherer Ordnung

Info

Publication number
DE19827904A1
DE19827904A1 DE19827904A DE19827904A DE19827904A1 DE 19827904 A1 DE19827904 A1 DE 19827904A1 DE 19827904 A DE19827904 A DE 19827904A DE 19827904 A DE19827904 A DE 19827904A DE 19827904 A1 DE19827904 A1 DE 19827904A1
Authority
DE
Germany
Prior art keywords
block
bit
key
cycle
data
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.)
Granted
Application number
DE19827904A
Other languages
English (en)
Other versions
DE19827904C2 (de
Inventor
Chang-Hyi Lee
Young-Tae Cha
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE19827904A1 publication Critical patent/DE19827904A1/de
Application granted granted Critical
Publication of DE19827904C2 publication Critical patent/DE19827904C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Description

Die koreanische Anmeldung 1997-26558, eingereicht am 23. Juni 1998, deren Priorität beansprucht wird, wird hiermit unter Bezugnahme eingeschlossen.
GEBIET DER ERFINDUNG
Die vorliegende Erfindung bezieht sich auf ein Datenver­ schlüsselungsverfahren und auf einen schnellen Blockver­ schlüsselungsalgorithmus, der gegenüber einer differentiellen Kryptoanalyse, einer linearen Kryptoanalyse und einer diffe­ rentiellen Kryptoanalyse höherer Ordnung sicher ist. Insbe­ sondere kann er im Vergleich mit konventionellen Blockver­ schlüsselungsalgorithmen leicht ausgebildet und schnell aus­ geführt werden.
BESCHREIBUNG DES STANDES DER TECHNIK
Konventionelle Verschlüsselungsalgorithmen werden intuitiv oder durch die praktische Erfahrung eines Gestalters gestal­ tet. Daher kann es sein, daß viele Feldversuche benötigt werden, um die Sicherheit des Verschlüsselungsalgorithmuses zu gewährleisten.
Ein üblicher Blockchiffrieralgorithmus basiert auf DES, der als United States Data Processing Standard 46 (FIPS PUB 46) durch die amerikanische Normungsbehörde angenommen wurde. DES ist ein Blockchiffrieralgorithmus, der Daten in 64-Bit Blöc­ ken verschlüsselt.
Ein 64-Bit Block Klartextes dient als Eingabe an einem Ende des Algorithmus und ein 64-Bit Block verschlüsselten Textes wird am anderen Ende ausgegeben. DES ist daher ein symmetri­ scher Algorithmus.
Derselbe Algorithmus und derselbe Schlüssel werden sowohl für die Verschlüsselung als auch die Entschlüsselung verwendet. Die Schlüssellänge beträgt 56 Bits. Der Schlüssel wird ge­ wöhnlicherweise jedoch als 64-Bit Zahl ausgedrückt, wobei 8 Bits für eine Parity-Prüfung verwendet und daher während der verschlüsselung/Entschlüsselung ignoriert werden. Es handelt sich bei den Paritybits auch um die niederwertigsten Bits der Bytes des Schlüssels. Der Schlüssel kann aus einer beliebigen 56-Bit Zahl bestehen, und er kann jederzeit geändert werden. Gewisse Zahlen werden als schwache Schlüssel angesehen, aber diese schwache Schlüssel können leicht vermieden werden, da die ganze Sicherheit innerhalb des Schlüssels liegt.
Auf der einfachsten Ebene ist ein Algorithmus nicht mehr als eine Kombination der zwei Basistechniken der Verschlüsselung, das heißt, Konfusion und Diffusion. Der fundamentale Baustein von DES ist eine einfache Kombination dieser Techniken, das heißt, eine Ersetzung gefolgt von einer Permutation im Text, basierend auf dem Schlüssel, der allgemein als Zyklus oder Runde bezeichnet wird.
DES hat 16 Zyklen. Er wendet dieselbe Kombination von Techni­ ken auf den reinen Textblock 16 Mal an. Der DES-Algorithmus verwendet nur arithmetische und logische Standardoperationen auf ein Maximum von 64 Bits an, so daß er in der Hardware­ technologie der späten siebziger Jahre leicht implementiert werden konnte. Die Wiederholungsweise des Algorithmus machte ihn ideal geeignet für die Verwendung auf einem Spezialchip. Anfängliche Softwareimplementierungen waren schwerfällig, wiewohl die aktuellen Implementierungen sich verbessert ha­ ben.
Der DES arbeitet auf einem 64-Bit Block Klartext. Nach einer anfänglichen Permutation wird der Block in eine rechte Hälfte und eine linke Hälfte, die jeweils 32 Bits lang sind, zerbro­ chen. Dann werden 16 Zyklen identischer Operationen, eine sogenannte Funktion f, in welcher die Daten mit dem Schlüssel kombiniert werden, durchgeführt. Nach dem sechzehnten Zyklus werden die rechten und linken Hälften vereinigt, und eine letzte Permutation, die inverse Permutation der anfänglichen Permutation, beendet den Algorithmus.
Bei jedem Zyklus werden die Schlüssel-Bits verschoben, und dann werden 48 Bits von den 56 Bits des Schlüssels ausge­ wählt. Die rechte Hälfte der Daten wird auf 48 Bits über eine Expansionspermutation erweitert, mit 48 Bits eines verschobe­ nen und permutierten Schlüssels über XOR kombiniert, durch 8 S-Kasten gesandt, um neue 32 Bits zu erzeugen, und wieder permutiert. Diese vier Operationen ergeben die Zyklusfunktion f. Die Ausgabe der Funktion f wird dann mit der linken Hälfte über ein anderes XOR kombiniert. Die Ergebnisse dieser Opera­ tionen ergeben die neue rechte Hälfte; und die alte rechte Hälfte ergibt die neue linke Hälfte. Die Operationen werden 16 Mal wiederholt, was die 16 Zyklen des DES ergibt.
Basierend auf einer differentiellen Kryptoanalyse, einer linearen Kryptoanalyse und einer differentiellen Kryptoana­ lyse höherer Ordnung ist DES attackierbar unter Verwendung von 247 gewählten Chiffriertexten über eine differentielle Kryptoanalyse und unter Verwendung von 243 bekannter Chif­ friertexte über eine lineare Kryptoanalyse.
Es wurden viele Chiffrieralgorithmen für das Handhaben der obigen Kryptoanalysen vorgeschlagen, wobei man daran gedacht hat, daß ein Chiffrieralgorithmus, der den obigen Angriffen (differentiell und linear) widersteht, als sicher angesehen werden kann. Für diese zusätzliche Sicherheit wurde ein Ver­ fahren entwickelt, um einen Verschlüsselungsalgorithmus mit theoretischen und logischen Prüfungen der Widerstandsfähig­ keit des Algorithmus gegenüber differentieller und linearer Kryptoanalyse, zu entwickeln. Aber dieses Kryptoanalysever­ fahren ist sehr schwierig.
Der erste Versuch, diese Probleme zu lösen, bestand im MISTY-Algorithmus von Japan. Im MISTY-Algorithmus haben S-Kästen (S-Boxes), die aus 7 Bits oder 9 Bits bestehen, eine einfache algebraische Form. Ein Nachteil des MISTY-Algorithmus besteht darin, daß seine Implementierung eine komplizierte rekursive Struktur erforderlich macht.
ZUSAMMENFASSUNG DER ERFINDUNG
Eine Aufgabe der vorliegenden Erfindung besteht darin, einen schnellen Blockchiffrieralgorithmus zu schaffen, um das Pro­ blem anzugehen, das seine Sicherheit gegenüber Angriffen mittels differentieller Kryptoanalyse und linearer Kryptoana­ lyse und darüberhinaus gegenüber differentieller Kryptoana­ lyse höherer Ordnung gewährleistet.
Die vorliegende Erfindung, die hier als SNAKE bezeichnet wird, hat eine Zyklusfunktion, die sich von den konventionel­ len Blockchiffrieralgorithmen unterscheidet. Die Zyklusfunk­ tion von SNAKE hat eine sehr einfache Struktur, die eine logische Basisoperation (Exklusiv-Oder-Operator) und eine 8 Bit Rotieroperation aufweist (mit Ausnahme der S-Kästen, die erforderlich sind, um aus Sicherheitsgründen eine hohe Nicht­ linearität zu ermöglichen), um die Ausführungsform zu verein­ fachen. SNAKE hat jedoch nicht dieselbe rekursive Struktur wie der MISTY-Algorithmus, sondern ist statt dessen struktu­ riert, um einen Ausgabedatenblock eines S-Kastens zum näch­ sten linken S-Kasten zurückzugeben, wobei er um 8 Bits nach links verschoben wird. Diese Struktur bringt eine strenge Avalanchdiffusion für den Datenfluß, um somit die Linearität und differentielle Gleichmäßigkeit der Zyklusfunktion gering zu machen. Bei der Verifizierung des Widerstands gegen diffe­ rentielle und lineare Kryptoanalyse wurde das Konzept der Erfinder der "Differenzfolge" und der "Fundamentalen Diffe­ rentialmatrix" entwickelt, von dem eine theoretische Ablei­ tung errichtet wurde.
Das Schlüsselplanverfahren von SNAKE wird nun beschrieben. Anfänglich wird das Verfahren mit einem zufälligen 128-Bit Ausgangsschlüssel versehen, und der Ausgangsschlüssel wird in vier 32-Bit Unterblöcke zerbrochen. Die Unterblöcke durchlau­ fen das in Fig. 2 gezeigte Verfahren mit einer Goldzahl (golden number) GN über den drei Operationen, Exklusiv-Oder-Operation, 256-Modulo-Addition und 5-Bit Linksrotation. Diese Verfahren verhindern die Erkennung des vorherigen Zyklus­ schlüssels sogar dann, wenn die Schlüssel der nächsten Zyklen gefunden werden.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
Andere Aufgaben und Vorteile der vorliegenden Erfindung wer­ den beim Lesen der folgenden detaillierten Beschreibungen und unter Bezugnahme auf die folgenden Zeichnungen deutlich.
Fig. 1 zeigt die Zyklusfunktionsstruktur der vorliegenden Erfindung, die den Hauptkernteil des SNAKE-Algorithmus dar­ stellt.
Fig. 2A-2B zeigen das Schlüsselplanverfahren der vorlie­ genden Erfindung von den 128 Bits des Ausgangsschlüssels für die Erzeugung der Zyklusschlüssel. Fig. 2A zeigt die SCROL-Funktion, die direkt für die praktische Zyklusschlüsselerzeu­ gung in Fig. 2B verwendet wird.
Fig. 3 zeigt die ganze Feistel-Typ Struktur der vorliegenden Erfindung.
Während die Erfindung verschiedene Modifikationen und alter­ native Formen erfahren kann, werden spezielle Ausführungsfor­ men beispielhaft in den Zeichnungen dargestellt und im Detail beschrieben. Es sollte jedoch verständlich sein, daß die Erfindung nicht auf die speziellen beschriebenen Formen be­ schränkt sein soll, sondern daß die Erfindung vielmehr alle Modifikationen, Äquivalente und Alternativen abdecken soll, die unter die Idee und den Umfang der Erfindung fallen, wie diese durch die angefügten Ansprüche beschrieben sind.
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
Es wird ein schneller Blockchiffrieralgorithmus geliefert, der gegen eine differentielle Kryptoanalyse, eine lineare Kryptoanalyse und eine differentielle Kryptoanalyse höherer Ordnung widerstandsfähig ist.
Eine Ausführungsform des Algorithmus der vorliegenden Erfin­ dung wird SNAKE genannt, wobei er Daten in 64-Bit Blöcken verschlüsselt. Ein 64-Bit Block unverschlüsselten Textes wird an einem Ende des Algorithmuses eingegeben, und ein 64-Bit Block verschlüsselten Textes wird am anderen Ende ausgegeben. SNAKE ist ein symmetrischer Algorithmus, das heißt, es wird derselbe Algorithmus und derselbe Schlüssel sowohl für die Verschlüsselung als auch die Entschlüsselung verwendet, mit Ausnahme von kleinen Unterschieden bei der Schlüsselplanung. Die Ausgangsschlüssellänge beträgt 128 Bits. Vor der Daten­ verschlüsselung und der Datenentschlüsselung werden die sech­ zehn Zyklusschlüssel, die in jedem Zyklus verwendet werden sollen, durch ein Schlüsselplanverfahren aus dem Ausgangs­ schlüssel berechnet, wie das nachfolgend beschrieben wird.
(1) SCHLÜSSELPLANUNG
Der 128-Bit Ausgangsschlüssel S wird in vier 32-Bit Blöcke, beispielsweise S = S4||S3||S2||S1 zerbrochen, wobei von rechts der niederwertigste Teil der 128-Bit Ganzzahl angeordnet und verkettet ist. Dann sind S1 und S2 die ersten beziehungsweise zweiten Zyklusschlüssel.
In Fig. 1 zeigt der Block 10 einen 32-Bit Eingabedatenblock, der (über einen Exklusiv-Oder-Operator) mit dem 32-Bit Zy­ klusschlüssel, der durch das Schlüsselerzeugungsverfahren geplant wurde, zur Zyklusfunktion kombiniert wird. Block 20 zeigt einen 8-Bit unterteilten Datenblock der gesamten 32-Bit Eingabedaten X vom 32-Bit Eingabedatenblock. Block 30 zeigt einen logischen Exklusiv-Oder-Operator. Block 40 zeigt einen 256 × 8 S-Kasten, der eine nichtlineare Funktion der 8-Bit Eingabedaten zu den 8-Bit Ausgabedaten darstellt. Block 50 zeigt eine 1-Byte (8-Bit) Rotation der verketteten 32-Bit Daten von den 8-Bit Ausgangsblöcken der S-Kästen. Block 60 zeigt die 32-Bit Ausgabedaten der Zyklusfunktion.
Für die Erzeugung der verbleibenden Zyklusschlüssel wird eine Funktion SCROL eingeführt, die die 32-Bit Daten empfängt und dieselbe Länge der Daten ausgibt. Unter Bezug auf Fig. 2A zeigt Block 70 einen 32-Bit Eingabedatenblock zur Funktion, mit Namen SCROL, für die Zyklusschlüsselerzeugung. Block 80 zeigt unterteilte 8-Bit Datenblöcke vom 32-Bit Eingabedaten­ block zur SCROL-Funktion. Block 90 zeigt einen 8-Bit Modula­ radditions-(mod.256)-Operator. Block 100 zeigt einen logi­ schen Exklusiv-Oder-Operator. Block 110 zeigt das Kombinier­ verfahren (über den Exklusiv-Oder-Operator) mit der irratio­ nalen 32-Bit Zahl GN, die die Kennzeichen einer Folge von Zufallsbits aufweist. Block 120 zeigt die 5-Bit Linksrotation der 32-Bit Daten, die sich aus dem vorhergehenden Schritt ergeben. Block 130 zeigt die endgültigen 32-Bit Ausgabedaten der SCROL-Funktion.
In Fig. 2 zeigt Block 140 den 128-Bit Ausgangsschlüssel S, der in 32-Bit Unterblöcke 51, 52, 53 und 54 für das Zyklus­ schlüsselerzeugungsverfahren zerbrochen werden soll. Block 150 zeigt die unterteilten 32-Bit Ausgangsschlüsselblöcke aus den 128-Bit Ausgangsschlüsseln. Block 160 zeigt die durch das Schlüsselerzeugungsverfahren erzeugten Zyklusschlüssel, wobei Ki den i-ten 32-Bit-Zyklusschlüssel zeigt.
Wenn 32-Bit Daten X = X4||X3||X2||X1 (Xi: 8-Bits) in SCROL einge­ geben werden, so kann dessen Ausgangssignal, beispielsweise Y folgendermaßen dargestellt werden:
T1 = X1 + X4; (8-Bits)
T2 = X2 ⊕ T1; (8-Bits)
T3 = X3 + T2; (8-Bits)
T4 = X4 ⊕ T3; (8-Bits)
T = T4||T3||T2||T1; (32-Bits)
Y = (T⊕0xb7e15163)<<<5;
wobei die Notation '|' eine Verkettung; '⊕' den Exklusiv- Oder-Operator; '+' die 256 Modularaddition und '(*)'<<<5 die Linksrotation von * um 5 Bits bezeichnet.
Schließlich werden unter Verwendung der SCROL-Funktion die verbleibenden Zyklusschlüssel Ki, i=3, 4, . . ., 16 erzeugt, bei­ spielsweise
K3 = SCROL(S2)⊕S4
K4 = SCROL(S1)⊕S3;
K(i+1) = SCROL(Ki)⊕K(i-1); i=4, 5, . . ., 15.
2. S-KÄSTEN; ZYKLUSFUNKTION
Die S-Kästen werden in der Zyklusfunktion F verwendet. Es gibt vier S-Kästen in der beispielhaften Ausführungsform SNAKE, und es wird empfohlen, daß die S-Kästen S1, S2, S3, S4 die folgenden zwei Typen annehmen:
Typ 1: S1 = S2 = S3 = S4 = f(x);
Typ 2: S1 = S3 = f(x); S2 = S4 = g(x);
wobei f(x) = x', die algebraische Inversion des Galois-Feldes GF(256), und g(x) = h(h(x)): die Selbstzusammensetzung der modularen Exponentenfunktion auf der Basis 45, das ist h(x) =45*mod257 ist.
Darüberhinaus wird in einer beispielhaften Ausführungsform Typ 1 für die Hardware- und Softwareimplementierung und Typ 2 für die Softwareimplementierung verwendet. Typ 1 kann in einem Schaltungsdesign für einen Chip auf der Gatterebene anstelle der Verwendung von ROM-Tabellen verwendet werden.
Es wird nun die Zyklusfunktion beschrieben. Wenn die 32-Bit Daten X⊕Ki = X4||X3||X2||X1 (Xi: 8-Bit Unterblöcke, die in der Reihenfolge vom niederwertigsten Block vom am weitesten rechts stehenden Teil aus verkettet werden; wobei Ki der i-te Zyklusschlüssel ist) in die Zyklusfunktion F eingegeben wer­ den, dann wird deren Ausgabe Y = Y4||Y3||Y2||Y1 von F durch die folgende Formel angegeben:
Y1 = S1(X1);
Y2 = S2(X2 ⊕ Y1);
Y3 = S3(X3 ⊕ Y2);
Y4 = S4(X4 ⊕ Y3);
Y = Y4||Y3||Y2||Y1.
In Fig. 3 bezeichnet Block 170 die linke 32-Bit Hälfte des unverschlüsselten 64-Bit Eingabetextes in die Chiffrierung SNAKE. Block 190 bezeichnet die Zyklusfunktion von SNAKE, deren Struktur in Fig. 1 beschrieben wurde. Block 200 be­ zeichnet einen Zyklusschlüssel, der vom SNAKE Schlüsselplan­ verfahren, das in den Fig. 2A-2B gezeigt wurde, erzeugt wurde. Block 210 zeigt einen logischen Exklusiv-Oder-Opera­ tor. Block 220 zeigt die linke 32-Bit Hälfte der endgültigen 64-Bit Ausgabedaten, wie verschlüsselte Daten oder chiffrier­ ter Text durch das 16-Zyklusverfahren von SNAKE, das ein Einzyklusverfahren 16 Mal wiederholt ausführt. Block 230 zeigt die rechten 32-Bit Hälfte der endgültigen 64-Bit Ausga­ bedaten, wie verschlüsselte Daten oder Chiffriertext durch das 16 Zyklus-Verfahren von SNAKE, das ein Einzyklusverfahren 16 Mal ausführt.
Insgesamt arbeitet SNAKE mit einem 64-Bit Block unverschlüs­ selten Textes. Der Block wird in eine rechte und eine linke Hälfte aufgebrochen, die jeweils 32 Bits lang sind. Dann finden 16 Zyklen identischer Operationen statt, die unter Bezug auf Fig. 3 Zyklusfunktion F genannt werden, in denen die Daten über eine XOR-Operation mit dem Schlüssel kombi­ niert werden. Nach der sechzehnten Runde werden die rechten und linken Hälften vereinigt, und der Algorithmus wird been­ det. In jedem Zyklus werden die rechte Hälfte (32 Bits) der Ausgabedaten des vorherigen Zyklusses mit dem Zyklusschlüssel (über XOR) kombiniert, und die sich ergebende Daten werden in vier 8-Bit Datenblöcke X1, X2, X3 und X4 aufgebrochen.
Die Datenblöcke bilden die Eingabedaten der vorher beschrie­ benen Zyklusfunktion F. Diese Ausgabedaten von F werden wie­ derum mit den 32 Bits der Daten der linken Hälfte des Daten­ blocks über XOR kombiniert, damit sie die nächste rechte Hälfte des Datenblocks oder die neue Hälfte des Datenblocks ergeben (die alte rechte Hälfte wird zur neuen linken Hälf­ te). Diese Operationen werden 16 Mal wiederholt, um somit 16 Zyklen von SNAKE zu ergeben.
Wenn Bj das Ergebnis der j-ten Iteration ist, so sind Lj und Rj die linken und rechten Hälften von Bj Kj ist der Schlüssel für den Zyklus j und F ist die Zyklusfunktion, die vorher beschrieben wurde, wobei dann eine Zyklus folgendermaßen aussieht:
Lj = Rj+1;
Rj = Lj-1 ⊕ F(Rj-1 ⊕ Kj)
In der vorliegenden Erfindung kann die Sicherheit (der Wider­ stand) von SNAKE aus der Betrachtung der Ausgabedifferenzda­ ten jedes S-Kastens abgeleitet werden, wenn ein Paar Daten­ werte mit einer Differenz (Eingabedifferenz) als variable Parameter vorgegeben wird, und der Konstruktion eines linea­ ren Systems von Gleichungen der Differenzvariablenparametern, um deren Koeffizientenmatrix zu erhalten, die "Transiente Differentialmatrix" genannt wird. Durch das Bilden oder Fin­ den einiger Bedingungen, um die Verschlüsselung auf ihren "Rang" zu beschränken, kann die Zyklusfunktionsstruktur von SNAKE abgeleitet werden. Der Beweis der Sicherheit wurde in der Veröffentlichung von Chang-hyi Lee und Young-tae Cha "The Block Cipher: SNAKE with Provable Resistance against DC und LC Attacks", JW-ISC, (1997) beschrieben, die hiermit durch Bezugnahme eingeschlossen wird.
Die Verarbeitungsgeschwindigkeit der vorliegenden Erfindung ist schneller als die von DES. In der Simulation von SNAKE, die in der C++ Sprache auf einem 120 MHz PENTIUM PC implemen­ tiert wurde, führt das Verschlüsselungsverfahren der vorlie­ genden Erfindung 16 Mbps durch, während DES 10,4 Mbps auf derselben Maschine durchführt.
Die Erfindung kann in einem allgemeinen Computer verkörpert werden, der ein Programm oder Programmsegmente ausführt, die von einem Medium, das durch den Computer lesbar oder von ihm verwendbar ist, stammen, wie ein Medium, das ein magnetisches Speichermedium (beispielsweise ROMs, Floppy-Disks, Hard-Disks, etc.), optisch lesbare Medien (beispielsweise CD-ROMs, DVDs, etc.) und Trägerwellen (beispielsweise eine Übertragung über das Internet) einschließt, aber nicht auf diese be­ schränkt ist. Ein funktionelles Programm, ein Kode und Kode­ segmente, die für die Implementierung der vorliegenden Erfin­ dung verwendet werden, können von einem erfahrenen Computer­ programmierer aus der Beschreibung der vorliegenden Erfindung abgeleitet werden.
Die vorliegende Beschreibung beispielhafter Ausführungsformen wird bereitgestellt, um es jedem Fachmann zu ermöglichen, die vorliegende Erfindung herzustellen oder zu benutzen. Die verschiedenen Modifikationen dieser Ausführungsformen werden Fachleuten leicht deutlich, und allgemeine Prinzipien, die hierin definiert sind, können auf andere Ausführungsformen angewandt werden, ohne eine erfinderische Tätigkeit auf zuwen­ den. Somit soll die vorliegende Erfindung nicht auf die hier gezeigten Ausführungsformen beschränkt sein, sondern sie soll den weitesten Umfang umfassen, der mit dem Prinzipien und neuen Merkmalen, die hierin beschrieben sind, vereinbar ist.

Claims (4)

1. Schnelles Blockchiffrierverfahren mit einem Schlüssel­ planalgorithmus, umfassend:
  • (a) Aufbrechen eines flexiblen Verschlüsselungsblocktei­ lungsdatenstroms in 2N-Byte Datenblöcke, die in eine erste Hälfte und eine zweite Hälfte des Blocks aufgeteilt werden;
  • (b) Ausführen einer logischen Exklusiv-Oder-Operation mit der zweiten Hälfte und eines M-Byte Zyklusschlüssels;
  • (c) Teilen des Ergebnisses des Schrittes (b) in L 8-Bit Blöcke, Senden des ersten Blockes zu einem ersten S-Kasten und Senden jedes verbleibenden Blocks zu einem entsprechenden S-Kasten, nachdem sie mit Ausgabedaten vom L-1 S-Kasten kom­ biniert wurden;
  • (d) Rotieren des Ausgangssignals jedes der S-Kästen um 8 Bits nach links; und
  • (e) Senden des Ergebnisses der Schrittes (d) an eine neue zweite Hälfte und die alte zweite Hälfte zu einer neuen ersten Hälfte.
2. Schnelles Blockchiffrierverfahren mit einem Schlüssel­ planalgorithmus umfassend:
  • (a) Aufbrechen von N-Byte Daten in M 8-Bit Blöcke;
  • (b) Kombinieren beliebiger benachbarter Blöcke über eine logische Exklusiv-Oder-Operation und eine 256-Modular-Additi­ on;
  • (c) Kombinieren des Ergebnisses von Schritt (b) und einer nicht rationale Zahl mit einer XOR-Operation;
  • (d) Ausführen einer Rotationsoperation um 5 Bits nach links mit dem Ergebnis des Schrittes (c); und
  • (e) Erzeugen von Zyklusschlüsseln aus einem 128 Anfangs­ schlüssel.
3. Ein vom Computer verwendbares Medium, auf dem ein Compu­ terprogramm für die Kodierung von Audiosignalen in einem geschichteten Datenstrom ausgeführt ist, wobei der Datenstrom eine Basisschicht und eine vorbestimmte Zahl von Erweite­ rungsschichten hat, wobei das Computerprogramm durch eine Maschine ausführbar ist, um folgendes durchzuführen:
  • (a) Aufbrechen eines flexiblen Verschlüsselungsblockauf­ teilungsdatenstroms in 2N-Byte Datenblöcke, wobei dieser Block in eine erste Hälfte und eine zweite Hälfte aufgeteilt wird;
  • (b) Ausführen einer logischen Exklusiv-Oder-Operation mit der zweiten Hälfte und einem M-Byte Zyklusschlüssel;
  • (c) Aufteilen des Ergebnisses von Schritt (b) in L 8-Bit Blöcke, Senden des ersten Blockes an einen ersten S-Kasten und Senden jedes verbleibenden Blockes an einen entsprechen­ den S-Kasten, nachdem er mit Ausgabedaten vom L-1 S-Kasten kombiniert wurde;
  • (d) Rotieren des Ausgangssignals jeder der S-Kästen um 8 Bits nach links; und
  • (e) Senden des Ergebnisses des Schrittes (d) an eine neue zweite Hälfte und der alten zweiten Hälfte an eine neue erste Hälfte.
4. Ein vom Computer verwendbares Medium, auf dem ein Compu­ terprogramm für die Kodierung von Audiosignalen in einem geschichteten Datenstrom ausgeführt wird, wobei der Daten­ strom eine Basisschicht und eine vorbestimmte Zahl von Erwei­ terungsschichten hat, wobei das Computerprogramm durch eine Maschine ausführbar ist, um folgendes durchzuführen:
  • (a) Aufbrechen von N-Byte Daten in M 8-Bit Blöcke;
  • (b) Kombinieren irgendwelcher zweier benachbarter Blöcke über einen logische Exklusiv-Oder-Operation und eine 256-Modular-Operation;
  • (c) Kombinieren des Ergebnisses von Schritt (b) und einer irrationale Zahl mit einer XOR-Operation;
  • (d) Ausführen einer Rotieroperation um 5 Bits nach links mit dem Ergebnis von Schritt (c); und
  • (e) Erzeugen von Zyklusschlüsseln aus dem 128 Ausgangs­ schlüssel.
DE19827904A 1997-06-23 1998-06-23 Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung Expired - Fee Related DE19827904C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970026558A KR100389902B1 (ko) 1997-06-23 1997-06-23 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법

Publications (2)

Publication Number Publication Date
DE19827904A1 true DE19827904A1 (de) 1999-01-14
DE19827904C2 DE19827904C2 (de) 2000-05-11

Family

ID=19510735

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19827904A Expired - Fee Related DE19827904C2 (de) 1997-06-23 1998-06-23 Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung

Country Status (6)

Country Link
US (1) US6314186B1 (de)
JP (1) JP3148181B2 (de)
KR (1) KR100389902B1 (de)
DE (1) DE19827904C2 (de)
FR (1) FR2765056B1 (de)
GB (1) GB2327581B (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100434558B1 (ko) * 1997-12-09 2004-09-30 삼성전자주식회사 고속블록암호화방법및이를위한키스케쥴링방법
CA2299538C (en) * 1998-06-02 2004-08-03 Nippon Telegraph And Telephone Corporation Apparatus and method for evaluating randomness of functions, random function generating apparatus and method, and recording medium having recorded thereon programs for implementing the methods.
GB2345229B (en) * 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
KR100316025B1 (ko) * 1999-06-30 2001-12-12 박종섭 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
KR100362170B1 (ko) * 2000-05-04 2002-11-23 한국전자통신연구원 라운드 키 생성 및 암호처리용 암호화장치
KR100377175B1 (ko) * 2000-06-08 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
WO2002003605A1 (en) * 2000-07-04 2002-01-10 Koninklijke Philips Electronics N.V. Substitution-box for symmetric-key ciphers
KR100425956B1 (ko) * 2000-07-15 2004-04-03 (주)시큐어피아 동작 진행 중 라운드 키 계산 방식을 이용한 seed 암호 및 복호 회로
JP3770584B2 (ja) * 2000-10-31 2006-04-26 シャープ株式会社 暗号鍵生成回路
WO2002069638A1 (fr) * 2001-02-26 2002-09-06 Nagravision Sa Encryption d'un flux video compresse
US7212631B2 (en) * 2001-05-31 2007-05-01 Qualcomm Incorporated Apparatus and method for performing KASUMI ciphering
JP3851115B2 (ja) * 2001-06-28 2006-11-29 富士通株式会社 暗号回路
JP2003023421A (ja) * 2001-07-09 2003-01-24 C4 Technology Inc 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置
DE10149191C2 (de) * 2001-10-05 2003-12-18 Infineon Technologies Ag Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation
US7099469B2 (en) * 2001-10-17 2006-08-29 Motorola, Inc. Method of scrambling and descrambling data in a communication system
US7103180B1 (en) * 2001-10-25 2006-09-05 Hewlett-Packard Development Company, L.P. Method of implementing the data encryption standard with reduced computation
JP2003223098A (ja) * 2002-01-29 2003-08-08 Sony Corp ブーリアン・マトリクスに基づく暗号化処理方法、および復号処理方法、並びにデータ通信システム
KR100418575B1 (ko) * 2002-04-03 2004-02-14 주식회사 하이닉스반도체 암호블럭연쇄 방식의 디이에스 암호화 장치
US7343011B2 (en) * 2002-07-15 2008-03-11 Conexant, Inc. Secure telecommunications system for wireless local area networks
FR2853424B1 (fr) * 2003-04-04 2005-10-21 Atmel Corp Architecture de multiplicateurs polynomial et naturel combines
US7310421B2 (en) * 2003-10-06 2007-12-18 National Institute Of Information And Communications Technology Particular plaintext detector
US7580519B1 (en) 2003-12-08 2009-08-25 Advanced Micro Devices, Inc. Triple DES gigabit/s performance using single DES engine
US7545928B1 (en) 2003-12-08 2009-06-09 Advanced Micro Devices, Inc. Triple DES critical timing path improvement
JP4574344B2 (ja) 2004-01-20 2010-11-04 キヤノン株式会社 情報処理装置及び方法
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
US7885405B1 (en) * 2004-06-04 2011-02-08 GlobalFoundries, Inc. Multi-gigabit per second concurrent encryption in block cipher modes
US8817979B2 (en) * 2004-06-04 2014-08-26 Broadcom Corporation Standalone hardware accelerator for advanced encryption standard (AES) encryption and decryption
US7526085B1 (en) 2004-07-13 2009-04-28 Advanced Micro Devices, Inc. Throughput and latency of inbound and outbound IPsec processing
US7760874B2 (en) * 2004-07-14 2010-07-20 Broadcom Corporation Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
US7783037B1 (en) 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
US7546461B2 (en) * 2005-06-28 2009-06-09 Microsoft Corporation Strengthening secure hash functions
CN104683096B (zh) * 2013-11-29 2017-12-22 中国航天科工集团第三研究院第八三五七研究所 动态s盒变换方法及系统
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
US9578469B2 (en) 2014-10-02 2017-02-21 Motorola Solutions, Inc. Method and system for direct mode communication within a talkgroup
US20160105276A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Rotation-based cipher
US10341090B2 (en) * 2014-10-14 2019-07-02 Sony Corporation Cipher processing apparatus and cipher processing method
US9960909B2 (en) 2014-12-08 2018-05-01 Open-Silicon Inc. High speed and low power hashing system and method
US10015009B2 (en) * 2015-11-25 2018-07-03 Nxp B.V. Protecting white-box feistel network implementation against fault attack
US10742405B2 (en) * 2016-12-16 2020-08-11 The Boeing Company Method and system for generation of cipher round keys by bit-mixers
KR102424922B1 (ko) 2020-03-02 2022-07-26 국방과학연구소 Dlbn이 3 이상인 조건을 만족하는 확장 에스박스 및 이를 이용한 비트 연산 방법
JP7443833B2 (ja) 2020-03-05 2024-03-06 Tdk株式会社 圧力センサ

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4195200A (en) * 1976-06-30 1980-03-25 International Business Machines Corporation Key controlled block-cipher cryptographic system employing a multidirectional shift matrix
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
JPH05249891A (ja) * 1992-03-06 1993-09-28 Hitachi Ltd 暗号処理装置およびこれを用いる暗号処理方法
JP3029381B2 (ja) * 1994-01-10 2000-04-04 富士通株式会社 データ変換装置
US5778074A (en) * 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
US5838794A (en) 1996-01-11 1998-11-17 Teledyne Electronic Technologies Method and apparatus for inter-round mixing in iterated block substitution systems

Also Published As

Publication number Publication date
DE19827904C2 (de) 2000-05-11
GB2327581A (en) 1999-01-27
KR19990002840A (ko) 1999-01-15
JPH1173101A (ja) 1999-03-16
JP3148181B2 (ja) 2001-03-19
GB9811900D0 (en) 1998-07-29
FR2765056B1 (fr) 2000-09-01
KR100389902B1 (ko) 2003-09-22
FR2765056A1 (fr) 1998-12-24
US6314186B1 (en) 2001-11-06
GB2327581B (en) 1999-08-04

Similar Documents

Publication Publication Date Title
DE19827904C2 (de) Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung
DE69721439T2 (de) Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
DE60105788T2 (de) AES Verschlüsselungsschaltung
DE69731470T2 (de) Spiral-verwürfelungsverfahren
DE69736148T2 (de) Verfahren und Einrichtung zur Datenverschlüsselung
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
DE60221850T2 (de) Verfahren und vorrichtung zur datenverschlüsselung
EP1298834B1 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE112006001221T5 (de) Pseudozufallszahlenerzeugungssystem, Verschlüsselungssystem und Entschlüsselungssystem
DE602004007904T2 (de) Verschlüsselungsverfahren und -system
DE102008010789B4 (de) Verfahren zur zugriffs- und kommunikationsbezogenen Zufallsver- und Entschlüsselung von Daten
DE102009050493A1 (de) Blockdatenverschlüsselungsverfahren
DE69729297T2 (de) Verschlüsselungsvorrichtung für binärkodierte nachrichten
US20040247117A1 (en) Device and method for encrypting and decrypting a block of data
DE4016203A1 (de) Verfahren zur blockweisen chiffrierung von digitalen daten
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
CN110247754B (zh) 一种分组密码fbc的实现方法及装置
EP1676394A1 (de) Verfahren und vorrichtung zur ver-/ entschlüsselung
DE102008023577A1 (de) Symmetrischer Ein-Block-Verschlüsselungs-Algorithmus mit variabler Schlüssellänge
DE19757370C2 (de) Verfahren zur taktilen Erzeugung pseudo-zufälliger Datenworte
EP1322062B1 (de) Verfahren zum rechnergestützten Ver- und Entschlüsseln von Daten
KR100434558B1 (ko) 고속블록암호화방법및이를위한키스케쥴링방법
DE102018208851A1 (de) Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee