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 OrdnungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key 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.
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.
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.
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.
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.
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.
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;
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.
K4 = SCROL(S1)⊕S3;
K(i+1) = SCROL(Ki)⊕K(i-1); i=4, 5, . . ., 15.
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);
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.
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.
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)
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)
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 |
-
1997
- 1997-06-23 KR KR1019970026558A patent/KR100389902B1/ko not_active IP Right Cessation
-
1998
- 1998-06-04 GB GB9811900A patent/GB2327581B/en not_active Expired - Fee Related
- 1998-06-11 US US09/095,845 patent/US6314186B1/en not_active Expired - Lifetime
- 1998-06-19 FR FR9807753A patent/FR2765056B1/fr not_active Expired - Fee Related
- 1998-06-23 JP JP17584498A patent/JP3148181B2/ja not_active Expired - Fee Related
- 1998-06-23 DE DE19827904A patent/DE19827904C2/de not_active Expired - Fee Related
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 |