DE60302249T2 - Aes mixcolumn transformation - Google Patents

Aes mixcolumn transformation Download PDF

Info

Publication number
DE60302249T2
DE60302249T2 DE60302249T DE60302249T DE60302249T2 DE 60302249 T2 DE60302249 T2 DE 60302249T2 DE 60302249 T DE60302249 T DE 60302249T DE 60302249 T DE60302249 T DE 60302249T DE 60302249 T2 DE60302249 T2 DE 60302249T2
Authority
DE
Germany
Prior art keywords
multiplication
logic circuit
input
multiplicand
logic
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 - Lifetime
Application number
DE60302249T
Other languages
English (en)
Other versions
DE60302249D1 (en
Inventor
Gerardus T.M. Cross Oak Lane HUBERT
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.)
NXP BV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE60302249D1 publication Critical patent/DE60302249D1/de
Application granted granted Critical
Publication of DE60302249T2 publication Critical patent/DE60302249T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • Saccharide Compounds (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Storage Device Security (AREA)
  • Curing Cements, Concrete, And Artificial Stone (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und ein Gerät zum Implementieren des "Advanced Encryption Standard" (AES) Algorithmus und insbesondere auf ein Verfahren und ein Gerät zum Durchführen des Matrixmultiplikationsvorgangs, der die AES MixColumn-Transformation in jeder Verschlüsselungs- und Entschlüsselungsrunde des Algorithmus bildet.
  • Die vorliegende Erfindung wird insbesondere aber nicht ausschließlich in kryptographischen Anordnungen, wie denjenigen, die in Chipkarten und anderen Anordnungen installiert sind, wobei Prozessoren und Speichermittel etwas begrenzt sind und viele Vorgänge des kryptographischen Algorithmus in spezieller ASIC- oder FPGA-Hardware durchgeführt werden.
  • Der AES Algorithmus wird in einem weiten Bereich der Verschlüsselung von Daten, die auf sichere Art und Weise übertragen werden sollen, angewandt. Eine Anwendung ist in der Übertragung persönlicher und/oder finanzieller Information von einer Chipkarte zu einem Kartenleser. Vertrauliche Daten, die in der Karte gespeichert sind, sollen nicht von der Karte wieder erfasst werden können, ausgenommen in verschlüsselter Form um zu gewährleisten, dass die auf diese Weise wieder erfassten Daten nicht von unbefugten Dritten abgefangen und ausgelesen werden können. Nur der befugte Leser soll imstande sein, die von der Karte erfassten Daten zu entschlüsseln.
  • Auf gleiche Weise müssen Daten, die von dem Kartenleser in der Karte gespeichert werden sollen, in verschlüsselter Form der Karte zugeführt werden und zur Speicherung und nachfolgenden Wiedererfassung entschlüsselt werden.
  • Während der AES Algorithmus relativ eindeutig ist um in einem herkömmlichen Computersystem implementiert zu werden, wobei ein bekannter Prozessor und bekannte Speicherschaltungen verwendet werden, sind in einer Chipkartenapplikation der Prozessor und die Speichermittel sehr begrenzt und viele Funktionen müssen in spezieller Hardware, wie ASICs oder FPGAs durchgeführt werden.
  • Ein Beispiel einer herkömmlichen Hardwareimplementierung des AES Algorithmus lässt sich finden in: "High Performance Single-Chip FPGA Rijndael Algorithm Implementations", Maire McLoone und J.V. McCanny, "Cryptographic Hardware And Embedded Systems" 3rd International Workshop, Ches 2001, Paris, Frankreich, den 14.–16. Mai 2001 "Proceedings, Lecture Notes in Computer Science", Berlin: Springer, De (14-05-2001), 2162, 65–76.
  • Deswegen gibt es eine Anforderung für Hardwareimplementierungen der in dem AES Algorithmus erforderlichen Prozeduren, wobei diese Implementierungen die minimale Verwendung von Hardwaremitteln erfordern.
  • Es ist nun u. a. eine Aufgabe der vorliegenden Erfindung, eine geeignete Schaltungsanordnung zum Effektuieren der MixColumn Transformation zu schaffen, eingesetzt in dem Standard AES (Rijndael) kryptographischen Algorithmus, und zwar zur Verschlüsselung als auch zur Entschlüsselung.
  • Nach einem Aspekt schafft die vorliegende Erfindung eine logische Schaltung zum Multiplizieren einer (m × n) Matrix mit einer (1 × n) oder mit einer (m × 1) Matrix, wobei m eine Anzahl Reihen und n eine Anzahl Spalten ist, und wobei jede nachfolgende Reihe m mit n Elementen eine vorbestimmte Reihenpermutation einer vorhergehenden Reihe ist, wobei die Schaltungsanordnung Folgendes umfasst:
    • – n Multiplikationsschaltungen, die je einen Eingang und einen Ausgang haben, der den Wert des genannten Eingangs multipliziert mit einem vorbestimmten Multiplikanden zurückführt;
    • – n logische Schaltungen, je zum Durchführen einer vorbestimmten logischen Kombination eines ersten Eingangs und eines zweiten Eingangs zum Liefern eines logischen Ausgangs, wobei der erste Eingang mit dem Ausgang einer entsprechenden Schaltungsanordnung der n Multiplikationsschaltungen gekoppelt ist;
    • – n Register zum Empfangen des genannten logischen Ausgangs,
    • – Rückkopplungslogik zum Trassieren des Inhalts jedes Registers zu einem selektierten Eingang der zweiten Eingänge entsprechend einem Rückkopplungsplan, der mit der vorbestimmten Reihenpermutation übereinstimmt; und
    • – Steuermittel zum aufeinander folgenden Liefern jedes Elementes in der (1 × n) oder (m × 1) Matrix als Eingang zu jeder der n Multiplikationsschaltungen.
  • Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im Folgenden näher beschrieben. Es zeigen:
  • 1 ein Flussdiagramm, das die Implementierung eines Verschlüsselungsvorgangs unter Verwendung des AES Blockverschlüsselungsalgorithmus illustriert,
  • 2 eine schematische Darstellung eines funktionellen logischen Blocks zum Durchführen der MixColumns Transformation.
  • Der AES Algorithmus zur Verschlüsselung von Klartext in Geheimtext ist in 1 dargestellt. Der AES Algorithmus kann unter Verwendung eines 128-Bit, eines 192-Bit oder eines 256-Bit Schlüssels an aufeinander folgenden 128-Bit Blöcken der Eingangsdaten implementiert werden. Die vorliegende Erfindung ist auf all diese Implementierungen anwendbar. 1 wird nun im Kontext der Basisimplementierung unter Verwendung eines 128-Bit Schlüssels näher beschrieben.
  • Ein 128-Bit Anfangsblock des Eingangsklartextes 10 wird mit einem ursprünglichen 128-Bit Schlüssel 12 in einem Anfangsrunde 15 XOR-kombiniert 11. Der Ausgang 13 von dieser Anfangsrunde 15 wird danach über eine Anzahl wiederholter Transformationsstufen, in einer Verschlüsselungsrunde 28, welche die SubBytes Transformation 20, die ShiftRows Transformation 21 und die MixColumns Transformation 22 entsprechend dem definierten AES Algorithmus umfasst, weitergeleitet.
  • Der Ausgang von der MixColumns Transformation 22 wird mit einem neuen 128-Bit Rundenschlüssel 26 XOR-kombiniert 23, wobei dieser Schlüssel von dem (ursprünglichen) Anfangsschlüssel 12 hergeleitet ist. Der Ausgang von dieser XOR-Kombination 23 wird eine weitere Anzahl Male über die Verschlüsselungsrunde 28 zurückgekoppelt, wobei diese Anzahl von der speziellen Implementierung des Algorithmus abhängig ist.
  • Für jede nachfolgende Wiederholung über die Verschlüsselungsrunde 28 wird entsprechend dem AES Rundenschlüsselplan ein neuer Rundenschlüssel 26' von dem bestehenden Rundenschlüssel 26 hergeleitet.
  • Die Anzahl Wiederholungen (Nr – 1) der Verschlüsselungsrunde 28 ist neun, wenn ein 128-Bit Verschlüsselungsschlüssel verwendet wird, elf, wenn ein 192-Bit Verschlüsselungsschlüssel verwendet wird, und dreizehn, wenn ein 256-Bit Verschlüsselungsschlüssel verwendet wird.
  • Nach der erforderlichen Anzahl (Nr – 1) Verschlüsselungsrunden 28 wird eine Endrunde, Nr, unter Ansteuerung des Entscheidungsblocks 24 eingeführt. Die Endrunde 30 umfasst eine weitere SubBytes Transformation 31, eine weitere Verschiebungsreihentransformation 32 und eine nachfolgende XOR-Kombination 33 des Ergebnisses mit einem Endrundenschlüssel 36, erzeugt 35 aus dem vorhergehenden Rundenschlüssel. Der Ausgang dabei umfasst den Geheimtextausgang 39 und den Verschlüsselungsalgorithmus.
  • Die vorliegende Erfindung bezieht sich insbesondere auf die Durchführung der MixColumns Transformation 22. Durch die Runden 28, 30 werden die verarbeiteten 128-Bit Blöcke auf herkömmliche Weise als 16 8-Bit Blöcke in einer 4×4 Matrix als Srow, column dargestellt, und zwar entsprechend dem nachfolgenden Muster:
  • Figure 00040001
  • In der MixColumns Transformation 22 werden die Spalten dieses Zustandes als Polynome über GF(28) betrachtet und modulo (x4 + 1) mit einem vorbestimmten festen Polynom a(x) multipliziert, gegeben durch: a(x) = a3x3 + a2x2 + a1x + a0, wobei dargestellt als Hexadezimalwerte:
    a3 = 03 h
    a2 = 01 h
    a1 = 01 h
    a0 = 02 h.
  • Das Polynom ist koprim zu x4 + 1 und ist deswegen invertierbar.
  • Zur Verschlüsselung kann die MixColumns Transformation deswegen wie folgt ausgedrückt werden:
    sr,c → s'r,c, für jede der Spalten in s.
  • Figure 00040002
  • Die Bewertung dieses Matrixmultiplikation ist: s'0,c= {02}·s0,c⊕{03}·s1,c⊕s2,c⊕s3,c s'1,c = s0,c⊕{02}·s1,c⊕{03}·s2,c⊌s3,c s'2,c = s0,c⊕s1,c⊕{02}·s2,c⊕{03}s3,c s'3,c= {03}·s0,c⊕s1,c⊕s2,c⊕{02}·s3,c
  • Während der Entschlüsselung ist das Umgekehrte dieses Vorgangs erforderlich. Dies wird durch die nachfolgende Matrixmultiplikation gegeben:
  • Figure 00050001
  • Die Bewertung dieser Matrixmultiplikation ist: s'0,c= {0E}·s0,c⊕{0B}·s1,c⊕{0D}·s2,c⊕{09}·s3,c s'1,c= {09}·s0,c⊕{0E}·s1,c⊕{0B}·s2,c⊕{0D}·s3,c s'2,c= {0D}·s0,c⊕{09}·s1,c⊕{0E}·s2,c⊕{0B}·s3,c s'3,c= {0B}·s0,c⊕{0D}·s1,c⊕{09}·s2,c⊕{0E}·s3,c
  • Es sei bemerkt, dass die MixColumns Transformationsmatrix die spezielle Eigenschaft hat, dass jede nachfolgende Reihe eine verschobene oder gedrehte Version der vorhergehenden Reihe ist. Im Allgemeinen erscheint jedes Element in einer Reihe in jeder Reihe, aber an einer anderen Stelle in der Reihe, und insbesondere bildet für die MixColumns Transformationsmatrix die andere Stelle jedes Elementes für jede Reihe eine einzige Stelle nach rechts verschoben oder gedreht.
  • Nach der vorliegenden Erfindung wurde erkannt, dass diese Eigenschaft es ermöglicht, dass die Multiplikation jeder Spalte des Zustandes s mit wesentlich reduzierter Hardware erzielt werden kann.
  • 2 zeigt ein Ausführungsbeispiel von Hardwarelogik 50, vorgesehen für die Multiplikation einer m × n Matrix mit einer 1 × n Matrix, wobei die Beziehung zwischen jeder nachfolgenden Reihe von n Elementen der m × n Matrix eine vorbestimmte Reihenverschiebung ist. Für die AES MixColumns Transformation, m = 4, n = 4 und die vorbestimmte Beziehung ist eine einzige Verschiebung nach rechts.
  • Die logische Schaltung 50 umfasst vier 8-Bit Multiplikationsschaltungen 60...63, vier 8-Bit XOR-Gatter 70...73 und vier Rückkopplungs/Ausgangsregister 80...83, dargestellt als MixVol0 ... MixCol3. Jede Multiplikationsschaltung 70...73 ist vorgesehen zum Multiplizieren eines Eingangs mit einem der Matrixkoeffizienten c0, c1, c2, c3. Jede der XOR-Gatter 70...73 kann unter Verwendung einer geeigneten Kombination logischer Elemente, erforderlich zum Durchführen der betreffenden logischen Kombination zweier Eingänge, wie nachstehend beschrieben, implementiert werden.
  • Für Verschlüsselungsrunden sind die Werte von c0...c3 bzw. a0...a3 wie oben definiert. Für Entschlüsselungsrunden sind die Werte von c0...c3 bzw. b0...b3 wie oben definiert. Der Ausgang jeder Multiplikationsschaltung 60...63 ist mit einem ersten Eingang eines entsprechenden XOR-Gatters 70...73 gekoppelt. Der Ausgang jedes XOR-Gatters 70...73 ist mit einem entsprechenden MixCol Register 80...83 gekoppelt. Der Ausgang jedes MixCol Registers 80...83 ist mit dem zweiten Eingang eines der XOR-Gatter 70...73 gekoppelt, und zwar entsprechend einem Rückkopplungsplan 90...93, der der Reihenverschiebungsfunktion entspricht, welche die Beziehung zwischen aufeinander folgenden Reihen der Matrix definiert. In dem vorliegenden Fall implementiert der Rückkopplungsplan 90...93 die rechte Reihenverschiebungsfunktion zwischen aufeinander folgenden Reihen der Matrices ar,c (Verschlüsselung) und br,c (Entschlüsselung) – im Allgemeinen der Matrix cr,c.
  • Im Betrieb der Schaltungsanordnung 50 werden s0c, s1c, s2c, s3c sequentiell der Multiplizierlogik 60...63 in aufeinander folgenden Zyklen angeboten. Am Anfang jeder Spaltenmultiplikation werden die Register Mixcol0 bis MixCol3 auf Null voreingestellt.
  • Nach dem ersten Zyklus
    MixCol0 = c0.s0c
    MixCol1 = c1.s0c
    MixCol2 = c2.s0c
    MixCol3 = c3.s0c
  • Nach dem zweiten Zyklus:
    MixCol0 = c0.s1c⊕c1.s0c
    MixCol1 = c1.s1c⊕c2.s0c
    MixCol2 = c2.s1c⊕c3.s0c MixCol3 = c3.s1c⊕c0.s0c
  • Nach dem dritten Zyklus
    MixCol0 = c0.s2c⊕c1.s1c⊕c2.s0c
    MixCol1 = c1.s2c⊕c2.s1c⊕c3.s0c
    MixCol2 = c2.s2c⊕c3.s1c⊕c0.s0c
    MixCol3 = c3.s2c⊕c0.s1c⊕c1.s0c
  • Nach dem vierten Zyklus:
    MixCol0 = c0.s3c⊕c1.s2c⊕c2.s1c⊕c3.s0c
    MixCol1 = c1.s3c⊕c2.s2c⊕c3.s1c⊕c0.s0c
    MixCol2 = c2.s3 c⊕c3.s2c⊕c0.s1c⊕c1.s0c
    MixCol3 = c3.s3c⊕c0.s2c⊕c1.s1c⊕c2.s0c
  • Eine Neugliederung dieser Ausgänge, entsprechend dem Rückkopplungsplan 90...93 ergibt die nachfolgenden Ausgänge:
    MixCol1 = s'0,c
    MixCol2 = s'1,c
    MixCol3 = S'2,c
    MixColo = s'0,c
    was das erforderliche Ergebnis ist.
  • Es sei bemerkt, dass, allgemein gesprochen, die Anzahl Reihen, m, in der Matrix die Anzahl erforderlicher Zyklen bestimmt, während die Anzahl Spalten, n, die Anzahl erforderlichen logischer Gruppen (Multiplizierer 60...63, XOR-Gatter 70...73 und Register 80...83) bestimmt.
  • Die Multiplizierlogik 60...63 kann unter Verwendung jeder beliebigen logischen Schaltung implementiert werden. In einer bevorzugten Ausführungsform ist die logische Schaltung zur Verschlüsselung sowie zur Entschlüsselung vorgesehen, wobei bestimmte logische Schaltungen entsprechend dem nachfolgenden Plan kombiniert werden.
  • Für c0 × s0,c, da der Ausgang von der betreffenden Multiplizierschaltung 60...63 als ecycle,bit definiert ist, und d = 0 für Verschlüsselung und d = 1 für Entschlüsselung ist:
    e07 = s6 XNOR NAND(d, s45)
    e06 = s5 XNOR NAND (d, s347)
    e05 = s4 XNOR NAND (d, s236)
    e04 = s37 XNOR NAND (d, s125)
    e03 = s27 XNOR NAND (d, s0157)
    e02 = s17 XNOR NAND (d, s0567)
    e01 = s0 XNOR NAND (d, s67)
    e01 = s7 XNOR NAND (d, s56)
  • Auf gleiche Weise, für c1 × s1,c:
    e17 = s7 XNOR NAND (d, s4)
    e17 = s6 XNOR NAND (d, s37)
    e15 = s5 XNOR NAND (d, s267)
    e14 = s4 XNOR NAND (d, s1567)
    e13 = s3 XNOR NAND (d, s056)
    e12 = s2 XNOR NAND (d, s57)
    e11 = s1 XNOR NAND (d, s6)
    e10 = so XNOR NAND (d, s5)
  • Auf gleiche Weise, für c2 × s2,c:
    e27 = s7 XNOR NAND (d, s45)
    e26 = s6 XNOR NAND (d, s347)
    e25 = s5 XNOR NAND (d, S236)
    e24 = s4 XNOR NAND (d, s125)
    e23 = s3 XNOR NAND (d, s015)
    e22 = s2 XNOR NAND (d, s0567)
    e21 = s1 XNOR NAND (d, s67)
    e20 = s0 XNOR NAND (d, s56)
  • Auf gleiche Weise, für c3 × S3,c:
    e37 = s67 XNOR NAND (d, s4)
    e36 = s56 XNOR NAND (d, s37)
    e35 = s45 XNOR NAND (d, s267)
    e34 = s347 XNOR NAND (d, s1567)
    e33 = s23 XOR s7 XNOR NAND (d, s056)
    e32 = s12 XOR s7 XNOR NAND (d, s57)
    e31 = s01 XNOR NAND (d, s6)
    e30 = s07 XNOR NAND (d, s5)
    wobei :
    a57 = a5 XOR a7
    a07 = a0 XOR a7
    a34 = a3 XOR a4
    a567 = a7 XOR a56
    a125 = a12 XOR a5
    a1567 = a17 XOR a56
    a37 = a3 XOR a7
    a67 = a6 XOR a7
    a23 = a2 XOR a3
    a056 = a0 XOR a56
    a267 = a2 XOR a67
    a27 = a2 XOR a7
    a56 = a5 XOR a6
    a12 = a1 XOR a2
    a347 = a34 XOR a7
    a0157 = a01 XOR a57
    a17 = a1 XOR a7
    a45 = a4 XOR a5
    a01 = a0 XOR a1
    a236 = a23 XOR 6
    a0567 = a07 XOR a56
  • Dies erfordert 23 XOR-Gatter, 32 XNOR-Gatter und 32 NAND-Gatter.
  • Andere Ausführungsformen sind absichtlich innerhalb des Rahmens der beiliegenden Patentansprüche.
  • Text in der Zeichnung
  • 10
    Eingabe Klartext
    12
    Rundenschlüssel
    15
    Anfangsrunde
    20
    Sub Bytes Transformation
    21
    Verschiebungsreihentransformation
    22
    Mischspaltentransformation
    24
    Rundenzahl
    25
    Erzeugung eines neunen Rundenschlüssels
    26
    Rundenschlüssel
    28
    Runden
    30
    Endrunde
    31
    Sub Bytes Transformation
    32
    Verschiebungsreihentransformation
    35
    Erzeugung des Endrundenschlüssels
    36
    Endrundenschlüssel
    39
    Geheimtextausgang

Claims (15)

  1. Logische Schaltung zum Multiplizieren einer (m × n) Matrix mit einer (1 × n) oder mit einer (m × 1) Matrix, wobei m eine Anzahl Reihen und n eine Anzahl Spalten ist, und wobei jede nachfolgende Reihe m mit n Elementen eine vorbestimmte Reihenpermutation einer vorhergehenden Reihe ist, wobei die Schaltungsanordnung dadurch gekennzeichnet ist, dass sie Folgendes umfasst: – n Multiplikationsschaltungen (60...63), die je einen Eingang und einen Ausgang haben, der den Wert des genannten Eingangs multipliziert mit einem vorbestimmten Multiplikanden zurückführt; – n logische Schaltungen (70...73) je zum Durchführen einer vorbestimmten logischen Kombination eines ersten Eingangs und eines zweiten Eingangs zum Liefern eines logischen Ausgangs, wobei der erste Eingang mit dem Ausgang einer entsprechenden Schaltungsanordnung der n Multiplikationsschaltungen gekoppelt ist; – n Register (80...83) zum Empfangen des genannten logischen Ausgangs, – Rückkopplungslogik zum Trassieren des Inhalts jedes Registers zu einem selektierten Eingang der zweiten Eingänge entsprechend einem Rückkopplungsplan, der mit der vorbestimmten Reihenpermutation übereinstimmt; und – Steuermittel zum aufeinander folgenden Liefern jedes Elementes in der (1 × n) oder (m × 1) Matrix als Eingang zu jeder der n Multiplikationsschaltungen.
  2. Logische Schaltung nach Anspruch 1, wobei die Rückkopplungslogik einen Rückkopplungsplan entsprechend der genannten vorbestimmten Reihenpermutation schafft, der eine Reihenverschiebung ist.
  3. Logische Schaltung nach Anspruch 2, wobei die Reihenverschiebung eine Verschiebung um ein einziges Element nach rechts ist.
  4. Logische Schaltung nach Anspruch 1, wobei die n logischen Schaltungen je dazu vorgesehen sind, eine XOR-Kombination des genannten ersten Eingangs und des ge nannten zweiten Eingangs durchzuführen.
  5. Logische Schaltung nach Anspruch 1, wobei jeder der vorbestimmten Multiplikanden mit einem der Elemente in der AES Rijndael MixColumns Transformationsfunktion übereinstimmt,
  6. Logische Schaltung nach Anspruch 5, wobei die Zahl m = 4, die Zahl n = 4 ist, der Multiplikand für die erste Multiplikationsschaltung = 02, der Multiplikand für die zweite Multiplikationsschaltung = 03, der Multiplikand für die dritte Multiplikationsschaltung = 01, und der Multiplikand für die vierte Multiplikationsschaltung = 01 ist.
  7. Logische Schaltung nach Anspruch 5, wobei die Zahl m = 4, die Zahl n = 4, der Multiplikand für die erste Multiplikationsschaltung = 0E, der Multiplikand für die zweite Multiplikationsschaltung = 0B, der Multiplikand für die dritte Multiplikationsschaltung = 0D, und der Multiplikand für die vierte Multiplikationsschaltung = 09 ist.
  8. Logische Schaltung nach Anspruch 6 oder Anspruch 7, wobei die vier Multiplikanden zwischen den Werten in Anspruch 6 und den Werten in Anspruch 7 schaltbar sind.
  9. Logische Schaltung nach Anspruch 1, wobei die Steuermittel dazu vorgesehen sind, nacheinander als Eingang für jede der n Multiplikationsschaltungen jedes nachfolgende Element in der (1 × n) oder (m × 1) Matrix über jede von n oder m Operationszyklen vorzusehen.
  10. Logische Schaltung nach Anspruch 1, wobei jede der n Multiplikationsschaltungen, jede der n logische Schaltungen und jedes der n Register wenigstens acht Bits breit sind.
  11. Logische Schaltung nach Anspruch 1, wobei die Steuermittel weiterhin Mittel aufweisen um als Ausgang von der genannten logischen Schaltung den Inhalt der n Register nach jedem n. Zyklus zu schaffen.
  12. Logische Schaltung nach Anspruch 1, wobei die Steuermittel weiterhin Mittel aufweisen zum Rückstellen jedes der Register vor der ersten Berechnungszyklus.
  13. Logische Schaltung nach Anspruch 1, wobei jede aufeinander folgende Reihe m mit n Elementen eine vorbestimmte Reihenpermutation der unmittelbar vorhergehenden Reihe ist.
  14. AES MixColumns Transformationsschaltung mit der logischen Schaltung nach einem der Ansprüche 1 bis 13.
  15. AES Verschlüsselungs- und/oder Entschlüsselungsmaschine mit der logischen Schaltung nach einem der Ansprüche 1 bis 13 zum Durchführen der MixColumns Transformation.
DE60302249T 2002-06-07 2003-06-04 Aes mixcolumn transformation Expired - Lifetime DE60302249T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0213242.1A GB0213242D0 (en) 2002-06-07 2002-06-07 AES MixColumn transform
GB0213242 2002-06-07
PCT/IB2003/002583 WO2003104973A1 (en) 2002-06-07 2003-06-04 Aes mixcolumn transform

Publications (2)

Publication Number Publication Date
DE60302249D1 DE60302249D1 (en) 2005-12-15
DE60302249T2 true DE60302249T2 (de) 2006-08-03

Family

ID=9938259

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60302249T Expired - Lifetime DE60302249T2 (de) 2002-06-07 2003-06-04 Aes mixcolumn transformation

Country Status (9)

Country Link
US (1) US7464130B2 (de)
EP (1) EP1514174B1 (de)
JP (1) JP2005529365A (de)
CN (1) CN100541419C (de)
AT (1) ATE309570T1 (de)
AU (1) AU2003239700A1 (de)
DE (1) DE60302249T2 (de)
GB (1) GB0213242D0 (de)
WO (1) WO2003104973A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788902B1 (ko) 2006-12-06 2007-12-27 한국전자통신연구원 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법
EP2574602B1 (de) * 2010-10-12 2017-09-06 Olympus Corporation Glas für eine glasfaser in einem lichtleiter
RU2598781C1 (ru) 2015-07-31 2016-09-27 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ линейного преобразования (варианты)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149862A (ja) * 1992-11-13 1994-05-31 Sony Corp 行列データ乗算方法及び行列データ乗算装置
US6718465B1 (en) * 2000-02-25 2004-04-06 The Research Foundation Of State University Of New York Reconfigurable inner product processor architecture implementing square recursive decomposition of partial product matrices
US7209939B2 (en) * 2002-07-11 2007-04-24 Sun Microsystems, Inc. Precision improvement method for the Strassen/Winograd matrix multiplication method

Also Published As

Publication number Publication date
US7464130B2 (en) 2008-12-09
CN100541419C (zh) 2009-09-16
ATE309570T1 (de) 2005-11-15
GB0213242D0 (en) 2002-07-17
EP1514174B1 (de) 2005-11-09
AU2003239700A1 (en) 2003-12-22
WO2003104973A1 (en) 2003-12-18
EP1514174A1 (de) 2005-03-16
DE60302249D1 (en) 2005-12-15
US20050182812A1 (en) 2005-08-18
CN1659512A (zh) 2005-08-24
JP2005529365A (ja) 2005-09-29

Similar Documents

Publication Publication Date Title
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
DE69721439T2 (de) Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
KR100435052B1 (ko) 암호화장치
EP3219043B1 (de) Gehärtete white box implementierung 1
DE69938539T2 (de) Kryptographische Einrichtung mit parallel geschalteten Verschlüsselungsblöcken
DE60314055T2 (de) Verschlüsselung und Entschlüsselung in einem Schaltkreis, bei der eine nichtlineare Transformation wie die SUBBYTE-Operation maskiert wird
DE102005012098A1 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE102008013785A1 (de) Vorberechneter Verschlüsselungsschlüssel
DE102005005335A1 (de) Vorrichtung und Verfahren zur Hardware-Verschlüsselung
DE60221850T2 (de) Verfahren und vorrichtung zur datenverschlüsselung
DE102008010789B4 (de) Verfahren zur zugriffs- und kommunikationsbezogenen Zufallsver- und Entschlüsselung von Daten
WO1996025813A1 (de) Verschlüsselungsvorrichtung
DE10347455B4 (de) Pseudozufallszahlengenerator für einen Stream Cipher
DE10339999A1 (de) Pseudozufallszahlengenerator
DE69729297T2 (de) Verschlüsselungsvorrichtung für binärkodierte nachrichten
EP0616429B1 (de) Verfahren und Schaltungsanordnung zum Erzeugen einer Pseudozufallsfolge sowie deren Verwendung
DE102004042826A1 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE102004013480B4 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
DE60004409T2 (de) Schaltung und Verfahren zur Zufallszahlerzeugung
DE60302249T2 (de) Aes mixcolumn transformation
DE10345378B4 (de) Verfahren und Vorrichtung zur Ver-/Entschlüsselung
DE102004038594B4 (de) Verschlüsselungsverfahren und -vorrichtung
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: EISENFUEHR, SPEISER & PARTNER, 10178 BERLIN

8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL