DE19827904C2 - Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung - Google Patents

Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung

Info

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
Application number
DE19827904A
Other languages
English (en)
Other versions
DE19827904A1 (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 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)
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
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
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.
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
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.
(1) SCHLÜSSELPLANUNG
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;
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.
2. S-BOXEN; ZYKLUSFUNKTION
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);
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.
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)
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.
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.
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 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)

* Cited by examiner, † Cited by third party
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)

* 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
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* 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
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)

* Cited by examiner, † Cited by third party
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