DE19827904C2 - Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung - Google Patents
Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtungInfo
- Publication number
- DE19827904C2 DE19827904C2 DE19827904A DE19827904A DE19827904C2 DE 19827904 C2 DE19827904 C2 DE 19827904C2 DE 19827904 A DE19827904 A DE 19827904A DE 19827904 A DE19827904 A DE 19827904A DE 19827904 C2 DE19827904 C2 DE 19827904C2
- Authority
- DE
- Germany
- Prior art keywords
- block
- result
- byte
- cycle
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
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 Erfindung bezieht sich auf ein Blockchiffrier- oder -
dechiffrierverfahren sowie eine Blockchiffrier- oder -
dechiffriervorrichtung, die gegenüber einer einfachen diffe
renziellen Kryptoanalyse, einer linearen Kryptoanalyse und
einer differenziellen Kryptoanalyse hoher Ordnung sicher
sind, leicht implementiert und schnell ausgeführt werden kön
nen.
Konventionelle Verschlüsselungsalgorithmen werden intuitiv
oder durch die praktische Erfahrung eines Entwicklers entwor
fen. Daher kann es sein, daß viele Feldversuche benötigt wer
den, 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 Klartextblock dient als Eingabe an einem Ende des.
Algorithmus und ein 64-Bit verschlüsselter Textblock wird am
anderen Ende ausgegeben.
Derselbe Algorithmus und derselbe Schlüssel werden sowohl für
die Verschlüsselung als auch die Entschlüsselung verwendet.
DES ist daher ein symmetrischer Algorithmus. Die Schlüssel
länge beträgt 56 Bits. Der Schlüssel wird gewöhnlicherweise
jedoch als 64-Bit Zahl ausgedrückt, wobei 8 Bits für eine Pa
rity-Prüfung verwendet und daher während der Verschlüsse
lung/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. Ge
wisse 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. Dieser Baustein wird 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 fundamentalen Bau
steins im Algorithmus machte ihn ideal geeignet für die Ver
wendung auf einem Spezialchip. Anfängliche Softwareimplemen
tierungen waren schwerfällig, wiewohl die aktuellen Implemen
tierungen sich verbessert haben.
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 aufgeteilt, die jeweils 32 Bits lang
sind. Dann werden 16 Zyklen identischer Operationen, ein
schließlich einer sogenannten Funktion f, in welcher die Da
ten 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 Permuta
tion 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-Boxen gesandt, um neue 32 Bits zu erzeugen, und wieder per
mutiert. 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 einfachen differentiellen Kryptoanalyse,
einer linearen Kryptoanalyse und einer differentiellen Kryp
toanalyse höherer Ordnung ist DES attackierbar unter Verwen
dung von 247 gewählten Chiffriertexten über eine differenti
elle Kryptoanalyse und unter Verwendung von 243 bekannter
Chiffriertexte ü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.
"Structured Design of Substitution -Permutation Encryption
Networks" von KAM, J. et al. in IEEE Transactions on Compu
ters, Band C-28, Nr. 10, Oktober 1979, Seiten 747-753 be
schreibt Ersetzungspermutationsverschlüsselungsnetzwerke (SP-
Verschlüsselungsnetzwerke), die Feistelnetzwerken ähnlich
sind. Beispielsweise wird ein SP-Netzwerk mit 9 Eingabebit, 3
Ersetzungsboxen auf jeder SP-Stufe und 3 SP-Stufen beschrie
ben. Jede Ersetzungsbox (Substitution Box, S-Box) ist eine
logische Schaltung, die eine umkehrbare Entsprechung imple
mentiert, wobei unterschiedlich S-Boxen unterschiedliche um
kehrbare Entsprechungsfunktionen implementieren. Darüber hin
aus wird eine modifizierte Version eines SP-Netzwerks mit zu
sätzlichen exklusiv Oder-Einrichtungen beschrieben, die die
Ausgabe einer Ersetzungsstufe mit einem beliebigen 27-Bit
Vektor durch eine exklusiv Oder-Operation verknüpfen.
JP5-249 891 A1 offenbart einen Blockchiffrierprozessor, der
als Eingabe normale Satzblöcke und einen fakulatativen Wert,
der die gleiche Länge wie die normalen Satzblöcke hat, an
nimmt. Der Prozessor gibt verschlüsselte Blöcke aus. Ein er
stes exklusiv Oder-Gatter verknüpft den fakultativen Wert und
den ersten normalen Satzblock über eine exklusiv Oder-
Operation. Verbleibende exklusiv Oder-Gatter verknüpfen je
weils einen verbleibenden normalen Satzblock mit einem vorher
verschlüsselten Block über eine exklusiv Oder-Operation. Vor
bestimmte arithmetische Funktionen werden mit den Ergebnissen
der exklusiv Oder-Gatter ausgeführt, bevor die Ergebnisse
dieser arithmetischen Funktionen als verschlüsselte Blöcke
ausgegeben werden.
WO 98/949 A1 offenbart ein Blockchiffriersystem in dem Klar
textdaten in Blöcke aufgeteilt werden, die wiederum in Unter
blöcke unterteilt werden können. Diese Blöcke oder Unterblöc
ke werden durch Ersetzen der Klartext (Unter) Blöcke durch
verschlüsselte (Unter) Blöcke unter Benutzung von Ersetzungs
tabellen verschlüsselt. Diese Druckschrift konzentriert sich
auf die Erstellung der Ersetzungstabellen.
"Angewandte Kryptographie" von Schneier, B., Bonn, Addison-
Wesley Publishing Company, 1996, beschreibt unter anderem
drei Blockchiffrierverfahren, nämlich "GOST" in Kapitel 14,
Punkt 1, "Blowfish" in Kapitel 14, Punkt 3 und "RC5" in Kapi
tel 14, Punkt 8. Der GOST-Blockalgorithmus benutzt 64-Bit
Blöcke und einen 256-Bit Schlüssel. Er iteriert 32 Zyklen
durch einen einfachen Verschlüsselungsalgorithmus. Jeder 64-
Bit Block wird in eine linke Hälfte L und eine rechte Hälfte
R aufgeteilt. Im Zyklus i werden die folgenden Gleichungen
ausgeführt:
Li = Ri-1
Ri = Li-1 ⊕ f(Ri-1, Ki)
Ri = Li-1 ⊕ f(Ri-1, Ki)
Ki ist dabei ein Teilschlüssel für Zyklus i und f ist eine
Funktion, die eine Addition der rechten Hälfte Ri-1 mit einem
Teilschlüssel Ki Modulo 232, eine S-Box Ersetzung und eine zy
klische Verschiebung nach links umfaßt.
Der RC5-Algorithmus kann mit einer beliebigen Blocklänge ar
beiten. Es wird jedoch eine Blocklänge von 64 Bit bevorzugt.
Wie auch beim GOST-Algorithmus wird jeder Block in zwei Hälf
ten A und B aufgeteilt, von denen dann jede 32 Bit enthält.
Für die Verschlüsselung werden (2r + 2) schlüsselabhängige 32-
Bit Wörter S0, S1, ..., S2r+1 benutzt, wobei r die Zahl von
Zyklen ist. Im ersten Zyklus wird S0 zu der ersten Hälfte A
sowie S1 zur zweiten Hälfte B hinzuaddiert. Während jedem Zy
klus werden die folgenden Gleichungen berechnet:
Ai = ((Ai-1 ⊕ Bi-1) <<< Bi-1) + S2i
Bi = ((Bi-1 XOR Ai) <<< Ai) + S2i+3
Bi = ((Bi-1 XOR Ai) <<< Ai) + S2i+3
Jede Addition ist ein Additionmodulo 232. Das Symbol <<< steht
für eine zyklische Verschiebung nach links.
Auch der Blowfish-Algorithmus teilt einen Klartextdatenstrom
in 64-Bitblöcke und teilt jeden Block in zwei Hälften xL0 und
xR0 ein. Während 16 Zyklen werden die folgenden Gleichungen
berechnet:
XLi = XL(I-1) ⊕ Pi
XRi = F(XLi) ⊕ XR(i-1)
swap XLi and XRi
XRi = F(XLi) ⊕ XR(i-1)
swap XLi and XRi
In diesen Gleichungen läuft i von 1 bis 16. Pi werden als
Teilschlüssel bezeichnet. Nach der letzten Runde hebt eine
zusätzliche Vertauschung der linken Hälfte xL16 und der rech
ten Hälfte xR16 die Vertauschung während des 16. Zyklusses auf
und die rechte Hälfte xR16 wird mit einem 17. Teilschlüssel
P17 exklusiv Oder-verknüpft. Auch die linke Hälfte xL16 wird
mit einem 18. Teilschlüssel P18 exklusiv Oder-verknüpft. Bei
der Funktion F werden 32 Eingabebit in 48-Bitblöcke aufge
teilt. Jeder 8-Bit Block wird einer unterschiedlichen S-Box
zugeführt und jede S-Box gibt 32 Bit aus. Die Ausgaben der
ersten und zweiten S-Box werden Modulo 232 addiert, dieses
Ergebnis wird mit der Ausgabe der dritten S-Box exklusiv
Oder-verknüpft und dieses Ergebnis wird Modulo 232 auf die
Ausgabe der vierten S-Box addiert, um das Ergebnis der Funk
tion zu berechnen.
Es ist Aufgabe der Erfindung, ein Blockchiffrier- oder -
dechiffrierverfahren sowie eine Chiffrier- oder Dechiffrier
vorrichtung anzugeben, die ein hohes Sicherheitsniveau gegen
über verschiedenen Kryptoanalyseverfahren aufweist aber ins
besondere gegenüber dem Blowfish-Algorithmus einen geringeren
Rechenaufwand erfordert.
Diese Aufgabe wird durch die Gegenstände der Patentansprüche
1 und 9 gelöst.
Weiterbildungen sind Gegenstand der Unteransprüche.
Eine Ausführungsform der Erfindung, die hier als SNAKE be
zeichnet wird, hat eine Zyklusfunktion, die sich von den kon
ventionellen Blockchiffrieralgorithmen unterscheidet. Die Zy
klusfunktion von SNAKE hat eine sehr einfache Struktur, die
eine logische Basisoperation (Exklusiv-Oder-Operator) und ei
ne 8 Bit Rotieroperation aufweist (mit Ausnahme der S-Boxen,
die erforderlich sind, um aus Sicherheitsgründen eine hohe
Nichtlinearität zu ermöglichen), um die Ausführungsform zu
vereinfachen. SNAKE hat jedoch nicht dieselbe rekursive
Struktur wie der MISTY-Algorithmus, sondern gibt einen Ausga
bedatenblock einer S-Box zur nächsten linken S-Box zurück,
wobei der Ausgabedatenblock um 8 Bits nach links verschoben
wird. Diese Struktur bringt eine strenge Lawinendiffusion für
den Datenfluß, um somit die Linearität und differentielle
Gleichmäßigkeit der Zyklusfunktion gering zu machen. Bei der
Verifizierung des Widerstands gegen differentielle und linea
re Kryptoanalyse wurde das Konzept der Erfinder der
"Differenzfolge" und der "Fundamentalen Differentialmatrix"
entwickelt, von dem eine theoretische Ableitung 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 Vorteile der vorliegenden Erfindung werden beim Lesen
der folgenden detaillierten Beschreibungen und unter Bezug
nahme auf die folgenden Zeichnungen deutlich.
Fig. 1 zeigt die Zyklusfunktionsstruktur der vorliegenden Er
findung, 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 Funktion
SCROL, die direkt für die praktische Zyklusschlüsselerzeugung
in Fig. 2B verwendet wird.
Fig. 3 zeigt die ganze Feistel-Typ Struktur der vorliegenden
Erfindung.
Es wird ein schneller Blockchiffrieralgorithmus ausgegeben,
der gegen eine einfache differentielle Kryptoanalyse, eine
lineare Kryptoanalyse und eine differentielle Kryptoanalyse
hoher Ordnung sicher 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
am Anfang des Algorithmuses eingegeben, und ein 64-Bit Block
verschlüsselten Textes wird am Ende ausgegeben. SNAKE ist ein
symmetrischer Algorithmus, das heißt, es wird derselbe Algo
rithmus 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 Ausgangs
schlüssellänge beträgt 128 Bits. Vor der Datenverschlüsselung
und der Datenentschlüsselung werden die sechzehn Zyklus
schlüssel, die in jedem Zyklus verwendet werden sollen, durch
ein Schlüsselplanverfahren aus dem Ausgangsschlüssel berech
net, wie das nachfolgend beschrieben wird.
Der 128-Bit Ausgangsschlüssel S wird in vier 32-Bit Blöcke,
beispielsweise S = S4∥S3∥S2∥S1 aufgeteilt, wobei von rechts
der niederwertigste Teil der 128-Bit Ganzzahl angeordnet ist.
Dann sind S1 und S2 der erste beziehungsweise zweite Zyklus
schlü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 ge
plant 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-Box, der eine nichtlineare Funktion der 8-Bit Einga
bedaten 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-Box. 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
SCROL für die Zyklusschlüsselerzeugung. Block 80 zeigt unter
teilte 8-Bit Datenblöcke vom 32-Bit Eingabedatenblock zur
Funktion SCROL. Block 90 zeigt einen 8-Bit Modulo-Additions-
Operator (mod 256-Operator). Block 100 zeigt einen logischen
Exklusiv-Oder-Operator. Block 110 zeigt das Kombinier
verfahren (über den Exklusiv-Oder-Operator) mit der 32-Bit
Zahl GN, die die Kennzeichen einer Folge von Zufallsbits auf
weist. Block 120 zeigt die 5-Bit Linksrotation der 32-Bit Da
ten, die sich aus dem vorhergehenden Schritt ergeben. Block
130 zeigt die endgültigen 32-Bit Ausgabedaten der Funktion
SCROL.
In Fig. 2 zeigt Block 140 den 128-Bit Ausgangsschlüssel S,
der in 32-Bit Unterblöcke S1, S2, S3 und S4 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 für den i-ten 32-Bit-Zyklusschlüssel steht.
Wenn 32-Bit Daten X = X4∥X3∥X2∥X1 (Xi: 8-Bits) in die Funktion
SCROL eingegeben werden, so kann dessen Ausgangssignal, bei
spielsweise 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 Modulo-Addition und '(*) <<< 5 die
Linksrotation von * um 5 Bits bezeichnet.
Schließlich werden unter Verwendung der Funktion SCROL 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-Boxen werden in der Zyklusfunktion F verwendet. Es gibt
vier S-Boxen in der beispielhaften Ausführungsform SNAKE, und
es wird empfohlen, daß die S-Boxen S1, S2, S3, S4 die folgen
den 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 ei
nem Schaltungsdesign für einen Chip auf der Gatterebene an
stelle 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, de
ren 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 Ein
zyklusverfahren 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 aufgeteilt, 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 kombiniert werden.
Nach der sechzehnten Runde werden die rechten und linken
Hälften vereinigt, und der Algorithmus wird beendet. In jedem
Zyklus werden die rechte Hälfte (32 Bits) der Ausgabedaten
des vorherigen Zyklusses mit dem Zyklusschlüssel über einen
XOR-Operator 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 einen XOR-Operator 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 neu
en linken Hälfte). Diese Operationen werden 16 Mal wieder
holt, 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 be
schrieben wurde, wobei dann eine Zyklus folgendermaßen aus
sieht:
Lj = Rj+1;
Rj = Lj-1 ⊕ F(Rj-1 ⊕ Kj)
Rj = Lj-1 ⊕ F(Rj-1 ⊕ Kj)
In der vorliegenden Erfindung kann die Sicherheit von SNAKE
aus der Betrachtung der Ausgabedifferenzdaten jedes S-Kastens
abgeleitet werden, wenn ein Paar Datenwerte mit einer Diffe
renz (Eingabedifferenz) als variable Parameter vorgegeben
wird, und der Konstruktion eines linearen Systems von Glei
chungen der Differenzvariablenparametern, um deren Koeffizi
entenmatrix zu erhalten, die 'Transiente Differentialmatrix'
genannt wird. Durch das Bilden oder Finden einiger Bedingun
gen, 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 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, erreicht das Verschlüsselungsverfahren der Er
findung 16 Mbps, während DES auf derselben Maschine lediglich
10,4 Mbps erreicht.
Die Erfindung kann in einem allgemeinen Computer implemen
tiert werden, der ein Programm oder Programmsegmente aus
führt, die von einem Medium stammen, das durch den Computer
lesbar oder von ihm verwendbar ist. Als Medien kommen magne
tische Speichermedien (beispielsweise ROMs, Floppy-Disks,
Hard-Disks, etc), optisch lesbare Medien (beispielsweise CD-
ROMs, DVDs, etc.), Trägerwellen (beispielsweise eine Übertra
gung über das Internet) oder andere Medien in Frage. Ein
funktionelles Programm, ein Kode und Kodesegmente, die für
die Implementierung der vorliegenden Erfindung verwendet wer
den, können von einem erfahrenen Computerprogrammierer aus
der Beschreibung der vorliegenden Erfindung abgeleitet wer
den.
Claims (13)
1. Blockchiffrier- oder -dechiffrierverfahren mit:
- a) einem Schlüsselplanalgorithmus;
- b) Aufbrechen eines flexiblen Verschlüsselungsblockteilungsdatenstroms in 2N-Byte Datenblöcke, die wiederum in eine erste Hälfte (170) und eine zweite Hälfte (180) unterteilt werden;
- c) Ausführen einer logischen Exklusiv-Oder-Operation (210) mit dem zweiten Halbblock in (180) und einem N-Bytezyklusschlüssel (200), der durch den Schlüsselplanalgorithmus erzeugt wird;
- d) Teilen des Ergebnisses von Schritt c) in N Byte-Blöcke (20), Senden des geteilten ersten Blocks (20) an eine erste S-Box S1 und Senden jedes verbleibenden geteilten Blocks (X2, X3, X4) an eine entsprechende S- Box (S2, S3, S4), nach dem Ausführen einer logischen exklusiv Oder- Operation (30) mit ihm und den Ausgabedaten der vorigen S-Box (S1, S2, S3);
- e) Rotieren (50) einer sich aus Schritt d) ergebenden N-Byte Ausgabe um 8 Bit nach links; und
- f) Ersetzen des zweiten Halbblocks (180) mit dem Ergebnis des Ausfüh rens einer Operation mit dem ersten Halbblock (170) und dem Ergebnis von Schritt e), um es als ein neuer zweiter Halbblock im nächsten Zyklus zu benutzen.
2. Blockchiffrier- oder -dechiffrierverfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß die Operation in Schritt (f) eine logische Exklusiv-Oder-
Operation ist und es die weiteren Schritte umfaßt:
- a) Ersetzen des ersten Halbblocks (170) durch den zweiten Halbblock (180), um ihn als einen ersten Halbblock im nächsten Zyklus zu ver wenden;
- b) Wiederholen der Schritte c) bis einschließlich g) bis zum vorletzten Zy klus;
- c) Senden des letzten neuen zweiten Halbblocks an die zweite Hälfte (230) der endgültigen Ausgabe und Ausführen einer logischen Exklusiv-Oder- Operation mit dem letzten neuen zweiten Halbblock (230) und einem N- Byte runden Schlüssel, der durch den Schlüsselplanalgorithmus erzeugt wird;
- d) Teilen des Ergebnisses von Schritt i) in N Byte-Blöcke, Senden des er sten geteilten Blocks an eine erste S-Box und Senden jedes verbleiben den geteilten Blocks an eine entsprechende S-Box, nach dem Ausführen einer logischen Exklusiv-Oder-Operatiori mit ihm und den Ausgabedaten der vorigen S-Box;
- e) Rotieren einer sich aus Schritt j) ergebenden N-Byte Ausgabe um 8 Bit nach links;
- f) Senden des Ergebnisses des Ausführens einer logischen Exklusiv-Oder- Operation mit dem letzten ersten Halbblock und dem Ergebnis von Schritt k) an die erste Hälfte (220) der endgültigen Ausgabe.
3. Blockchiffrier- oder -dechiffrierverfahren nach Anspruch 1 oder 2, dadurch
gekennzeichnet, daß der Schlüsselplanalgorithmus die Schritte umfaßt:
- 1. Aufbrechen (140) von M-Byte Keimdaten in N Byte-Blöcke (S1, S2, S3, S4); und
- 2. Erzeugen von Zyklusschlüsseln (K1 ... K8) aufgrund der N Byte-Blöcke und einer Scrol-Funktion.
4. Blockchiffrier- oder -dechiffrierverfahren nach Anspruch 3, dadurch gekenn
zeichnet, daß die Scrol-Funktion die Schritte umfaßt:
- 1. Aufbrechen (70) eines N Byte-Blocks (X) in N Byte-Unterblöcke (X1, X2, X3; X4);
- 2. Ausführen (90) einer 256-Moduloaddition mit dem ersten Unterblock (X1) und dem N-ten Unterblock (X4) und Senden des Ergebnisses der Operation an den ersten Unterblock (Y1) der N-Byte Ausgabe;
- 3. Ausführen (100) einer logischen Exklusiv-Oder-Operation mit dem zweiten Unterblock (X2) und dem Ergebnis von Schritt 4b) und Senden des Er gebnisses der Operation an den zweiten Unterblock (Y2) der N-Byte Ausgabe;
- 4. Ausführen einer 256-Moduloaddition mit dem dritten Unterblock (X3) und dem Ergebnis von Schritt 4c) und Senden des Ergebnisses der Operati on an den dritten Unterblock (Y3) der N-Byte Ausgabe;
- 5. Ausführen einer logischen Exklusiv-Oder-Operation mit dem vierten Un terblock (X4) und dem Ergebnis von Schritt 4d) und Senden des Ergeb nisses der Operation an den vierten Unterblock (Y4) der N-Byte Ausga be;
- 6. Abwechselndes Wiederholen der Schritte 4d) und 4e) bis der N-te Un terblock (Y4) der N-Byte Ausgabe erzeugt wird;
- 7. Ausführen (110) einer logischen Exklusiv-Oder-Operation mit N-Byte Aus gabe und einer irrationalen Zahl, die N-Byte zufällige Konstanten aufweist; und
- 8. Ausführen (120) einer Rotationsoperation auf dem Ergebnis von Schritt 4g) nach links um 5 Bit.
5. Blockchiffrier- oder -dechiffrierverfahren nach Anspruch 3 oder 4, dadurch
gekennzeichnet, daß der Schlüsselplanalgorithmus die Schritte umfaßt:
- 1. Auswählen eines ersten Blocks (S1) als einen ersten Zyklusschlüssel (K1);
- 2. Auswählen eines zweiten Blocks (S2) eines zweiten runden Schlüssels (K2);
- 3. Erhalten eines dritten Zyklusschlüssels (K3) durch Anwenden der Scrol- Funktion auf den ersten Block und Ausführen einer Exklusiv-Oder- Operation mit diesem Ergebnis und einem dritten Block (S4);
- 4. Erhalten eines vierten Zyklusschlüssels (K4) durch Anwenden der Scrol- Funktion auf den ersten Block (S1) und Ausführen einer Exklusiv-Oder- Operation mit diesem Ergebnis und einem vierten Block (S3);
- 5. Erhalten eines k-ten Zyklusschlüssels (K5) durch Anwenden der Scrol- Funktion auf den (k - 1)-ten runden Schlüssel (K4) und Ausführen einer Exklusiv-Oder-Operation mit diesem Ergebnis und dem (K - 2)-ten Zyklus schlüssels (K3); und
- 6. Wiederholen von Schritt (5e) um die weiteren runden Schlüssel (K6, K7, K8) zu erhalten.
6. Blockchiffrier- oder -dechiffrierverfahren nach einem der Ansprüche 1 bis 5,
dadurch gekennzeichnet, daß die S-Boxen (S1, S2, ..., Sn) von ei
nem aus zwei Typen wie diesen ausgewählt werden:
Typ 1: S1 = S2 = ... = Sn = f(x)
Typ 2: S1 = S3 = S5 = ... = f(x)
S2 = S4 = S6 = ... = g(x)
wobei f(x) = x-1, die algebraische Version des galoiaschen Feldes GF (256), und g(x) = h (h(x)), die Selbstzusammensetzung der Moduloexponentfunktion zur Basis 45, d. h. h(x) = 45x mod257.
Typ 1: S1 = S2 = ... = Sn = f(x)
Typ 2: S1 = S3 = S5 = ... = f(x)
S2 = S4 = S6 = ... = g(x)
wobei f(x) = x-1, die algebraische Version des galoiaschen Feldes GF (256), und g(x) = h (h(x)), die Selbstzusammensetzung der Moduloexponentfunktion zur Basis 45, d. h. h(x) = 45x mod257.
7. Blockchiffrier- oder -dechiffrierverfahren nach einem der Ansprüche 3 bis 5,
dadurch gekennzeichnet, daß Schritte c) bis g) sich 15 × wiederholen und
dann die Anzahl der Zyklen und der Zyklusschlüssel 16 beträgt.
8. Blockchiffrier- oder -dechiffrierverfahren nach einem der Ansprüche 3 bis 5,
dadurch gekennzeichnet, daß die irrationale Zahl "0xb7e15163" im Fall von
N = 4 ist.
9. Chiffrier- oder Dechiffriervorrichtung zum Ausführen einer Blockchiffrierung
oder -dechiffrierung, die eine Zyklusschlüsselerzeugungseinrichtung zum Er
zeugen einer Vielzahl von Zyklusschlüsseln und eine Vielzahl von Ausfüh
rungseinrichtungen aufweist, die ausführbar sind, um durchzuführen:
- a) Aufbrechen eines flexiblen Ver- oder -Entschlüsselungsblockteilungs datendstroms in zwei N Byte Datenblöcke, wobei sie in eine erste Hälfte (170) und eine zweite Hälfte (180) geteilt werden;
- b) Ausführen einer logischen Exklusiv-Oder-Operation (210) mit dem zweiten Halbblock (180) und einem N Byte Zyklusschlüssel (200), der durch die Zyklusschlüsselerzeugungseinrichtung erzeugt wird;
- c) Teilen des Ergebnisses von Schritt b) in N Byte-Blöcke (20), Senden des geteilten ersten Blocks (20) an eine erste S-Box (51) und Senden jedes verbleibenden geteilten Blocks (X2, X3, X4) an eine entsprechende S- Box (S2, S3, S4) nach Ausführen einer logischen Exklusiv-Oder- Operation (30) mit ihm und den Ausgabedaten von der vorigen S-Box (S1, S2, S3);
- d) Rotieren (50) einer sich aus Schritt c) ergebenden N Byte Ausgabe um 8 Bit nach links;
- e) Ersetzen des zweiten Halbblocks (180) durch das Ergebnis des Ausfüh rens einer Operation mit dem ersten Halbblock (170) und dem Ergebnis von Schritt d), um es als einen neuen zweiten Halbblock in dem näch sten Zyklus zu verwenden.
10. Chiffrier- oder Dechiffriervorrichtung nach Anspruch 9, dadurch gekenn
zeichnet, daß die Operation in Schritt e) eine logische Exklusiv-Oder-
Operation und die Ausführungseinrichtung ferner ausführbar ist, um die fol
genden Schritte durchzuführen:
- a) Ersetzen des ersten Halbblocks (170) durch den zweiten Halbblock (180), um ihn als einen neuen ersten Halbblock in dem nächsten Zyklus zu verwen den;
- b) Wiederholen der Schritte b) bis f) bis zum vorletzten Zyklus;
- c) Senden des letzten neuen zweiten Halbblocks an die zweite Hälfte (230) der endgültigen Ausgabe und Ausführen einer logischen Exklusiv-Oder- Operation mit dem letzten neuen zweiten Halbblock (230) und einem N-Bit Zyklusschlüssel, der durch die Zyklusschlüsselerzeugungseinrichtung erzeugt wird;
- d) Teilen des Ergebnisses von Schritt h) in N Byte-Blöcke, Senden des ersten geteilten Blocks an eine erste S-Box und Senden jedes verbleibenden geteil ten Blocks an eine entsprechende S-Box, nach dem Ausführen einer logi schen Exklusiv-Oder-Operation mit ihm und den Ausgabedaten von der vori gen S-Box;
- e) Rotieren einer sich aus Schritt i) ergebenden N Byte-Ausgabe um 8 Bit nach links;
- f) Senden des Ergebnisses des Ausführens einer logischen Exklusiv-Oder- Operation mit dem letzten ersten Halbblock und dem Ergebnis von Schritt j) an die erste Hälfte (220) der endgültigen Ausgabe.
11. Chiffrie- oder Dechiffriervorrichtung nach Anspruch 9 oder 10, dadurch ge
kennzeichnet, daß die Zyklusschlüsselerzeugungseinrichtung die Schritte
durchführt:
- 1. Aufbrechen (140) von M Byte-Keimdaten in N Byte-Blöcke (S1, S2, S3, S4); und
- 2. Erzeugen von Zyklusschlüsseln (K1 ... K8) aufgrund der N Byte-Blöcke und einer Scrol-Funktion.
12. Chiffrier- oder Dechiffriervorrichtung nach Anspruch 11, dadurch gekenn
zeichnet, daß die Scrol-Funktion die Schritte umfaßt:
- 1. Aufbrechen (70) eines N Byte-Blocks (X) in N Byte-Unterblöcke (X1, X2, X3, X4);
- 2. Ausführen (90) einer 256-Moduloaddition mit dem ersten Unterblock (X1) und dem N-ten Unterblock (X4) und Senden des Ergebnisses der Ope ration an den ersten Unterblock (Y1) der N Byte-Ausgabe;
- 3. Ausführen (100) einer logischen Exklusiv-Oder-Operation mit dem zweiten Unterblock (X2) und dem Ergebnis von Schritt 12b) und Sen den des Ergebnisses der Operation an den zweiten Unterblock (Y2) der N Byte-Ausgabe;
- 4. Ausführen einer 256-Moduloaddition mit dem dritten Unterblock (X3) und dem Ergebnis von Schritt 12c) und Senden des Ergebnisses der Operation an den dritten Unterblock (Y3) der N Byte-Ausgabe;
- 5. Ausführen einer logischen Exklusiv-Oder-Operation mit dem vierten Unterblock (X4) und dem Ergebnis von Schritt 12d) und Senden des Ergebnisses der Operation an den vierten Unterblock (Y4) der N Byte- Ausgabe;
- 6. Abwechselndes Wiederholen der Schritte 12d) und 12e) bis der N-te Unterblock (Y4) der N Byte-Ausgabe erzeugt wird;
- 7. Ausführen 110 einer logischen Exklusiv-Oder-Operation mit der N Byte-Ausgabe und einer irrationalen Zahl, die N-Byte Zufallskonstanten aufweist; und
- 8. Ausführen (120) auf dem Ergebnis von Schritt 12g) einer Rotationsope ration um 5 Bit nach links.
13. Chiffrier- oder Dechiffriervorrichtung nach Anspruch 11 oder 12, dadurch ge
kennzeichnet, daß die Zyklusschlüsselerzeugungseinrichtung die folgenden
Schritte durchführt:
- 1. Auswählen eines ersten Blocks (51) als einen ersten Zyklusschlüssel (K1);
- 2. Auswählen eines zweiten Blocks (52) als einen zweiten Zyklusschlüs sel (K2);
- 3. Erhalten eines dritten Rundenschlüssels (K3) durch Anwenden der Scrol-Funktion auf den ersten Block und Ausführen einer Exklusiv- Oder-Operation mit diesem Ergebnis und einem dritten Block (S4);
- 4. Erhalten eines vierten Zyklusschlüssels (K4) durch Anwenden der Scrol-Funktion auf den ersten Block (51) und Ausführen einer Exklusiv- Oder-Operation mit diesem Ergebnis und einem vierten Block (S3);
- 5. Erhalten eines k-ten Zyklusschlüssels (K5) durch Anwenden der Scrol- Funktion auf den (k - 1)-ten Zyklusschlüssel (K4) und Ausführen einer Exklusiv-Oder-Operation mit diesem Ergebnis und (k - 2)-ten Zyklus schlüssel (K3); und
- 6. Wiederholen von Schritt 13e), um weitere Rundenschlüssel (K6, K7, K8) zu erhalten.
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 DE19827904A1 (de) | 1999-01-14 |
DE19827904C2 true 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 | 삼성전자주식회사 | 고속블록암호화방법및이를위한키스케쥴링방법 |
EP1001569A4 (de) * | 1998-06-02 | 2002-03-13 | Nippon Telegraph & Telephone | Vorrichtung und verfahren zum auswerten der zufallsverteilung einer funktion, vorrichtung und verfahren zur erzeugung einer zufallsfunktion und aufzeichnungsmedium auf welchem programme zur ausführung dieser verfahren aufgezeichnet sind. |
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 | シャープ株式会社 | 暗号鍵生成回路 |
KR100850825B1 (ko) * | 2001-02-26 | 2008-08-06 | 나그라비젼 에스에이 | 압축 비디오 스트림의 암호화 |
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株式会社 | 圧力センサ |
Citations (3)
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 |
JPH05249891A (ja) * | 1992-03-06 | 1993-09-28 | Hitachi Ltd | 暗号処理装置およびこれを用いる暗号処理方法 |
WO1998000949A1 (en) * | 1996-06-28 | 1998-01-08 | Teledyne Industries Inc. | Methods for generating variable s-boxes from arbitrary keys of arbitrary length |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5003597A (en) * | 1989-12-21 | 1991-03-26 | Xerox Corporation | Method and apparatus for data encryption |
JP3029381B2 (ja) * | 1994-01-10 | 2000-04-04 | 富士通株式会社 | データ変換装置 |
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
Patent Citations (3)
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 |
JPH05249891A (ja) * | 1992-03-06 | 1993-09-28 | Hitachi Ltd | 暗号処理装置およびこれを用いる暗号処理方法 |
WO1998000949A1 (en) * | 1996-06-28 | 1998-01-08 | Teledyne Industries Inc. | Methods for generating variable s-boxes from arbitrary keys of arbitrary length |
Non-Patent Citations (3)
Title |
---|
KAM, J.u.a.: Structured Design of Substitution- Permutation Encryption Networks, In: IEEE Trans- actions on Computers, Vol.C-28, No.10, Oct.1979, S. 747-753 * |
McARDLE, B.: Block encryption, In: Electronics + Wireless World, 1989, H.1635, S. 21-22 * |
SCHNEIER, B.: Angewandte Kryptographie, Bonn, Addison-Weseley Publishing Company, 1996, S. 383-406 * |
Also Published As
Publication number | Publication date |
---|---|
JP3148181B2 (ja) | 2001-03-19 |
GB2327581A (en) | 1999-01-27 |
US6314186B1 (en) | 2001-11-06 |
KR19990002840A (ko) | 1999-01-15 |
GB2327581B (en) | 1999-08-04 |
KR100389902B1 (ko) | 2003-09-22 |
DE19827904A1 (de) | 1999-01-14 |
FR2765056B1 (fr) | 2000-09-01 |
GB9811900D0 (en) | 1998-07-29 |
FR2765056A1 (fr) | 1998-12-24 |
JPH1173101A (ja) | 1999-03-16 |
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 | |
DE69728465T2 (de) | Nichtparalleler Mehrzyklus-Verschlüsselungsapparat | |
DE69931606T2 (de) | Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung | |
DE602005002632T2 (de) | Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten | |
DE60222052T2 (de) | Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA) | |
EP2605445B1 (de) | Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken | |
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 | |
DE10201449C1 (de) | Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor | |
DE69736148T2 (de) | Verfahren und Einrichtung zur Datenverschlüsselung | |
EP1298834B1 (de) | Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten | |
WO1991018459A2 (de) | Vorrichtung für das umwandeln eines digitalblockes und verwendung derselben | |
DE602004007904T2 (de) | Verschlüsselungsverfahren und -system | |
DE60221850T2 (de) | Verfahren und vorrichtung zur datenverschlüsselung | |
DE112006001221T5 (de) | Pseudozufallszahlenerzeugungssystem, Verschlüsselungssystem und Entschlüsselungssystem | |
DE102009050493A1 (de) | Blockdatenverschlüsselungsverfahren | |
DE69911815T2 (de) | Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren | |
DE69729297T2 (de) | Verschlüsselungsvorrichtung für binärkodierte nachrichten | |
DE60301750T2 (de) | Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem | |
DE4016203A1 (de) | Verfahren zur blockweisen chiffrierung von digitalen daten | |
DE602004003675T2 (de) | Sicherheitsgegenmassnahmen gegen Angriffe durch Stromverbrauchsanalysen | |
DE102004018874B4 (de) | Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses | |
DE10345378B4 (de) | Verfahren und Vorrichtung zur Ver-/Entschlüsselung | |
DE102004038594B4 (de) | Verschlüsselungsverfahren und -vorrichtung | |
DE10352680A1 (de) | Verschlüsselungsvorrichtung und Verschlüsselungsverfahren |
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 |