DE10136303A1 - Method and apparatus for performing a byte substitution operation of the Rijndael AES algorithm - Google Patents

Method and apparatus for performing a byte substitution operation of the Rijndael AES algorithm

Info

Publication number
DE10136303A1
DE10136303A1 DE2001136303 DE10136303A DE10136303A1 DE 10136303 A1 DE10136303 A1 DE 10136303A1 DE 2001136303 DE2001136303 DE 2001136303 DE 10136303 A DE10136303 A DE 10136303A DE 10136303 A1 DE10136303 A1 DE 10136303A1
Authority
DE
Germany
Prior art keywords
byte substitution
multiplicative
partial operation
affine mapping
partial
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.)
Withdrawn
Application number
DE2001136303
Other languages
German (de)
Inventor
Marcus Janke
Peter Bier
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE2001136303 priority Critical patent/DE10136303A1/en
Priority to PCT/EP2002/007296 priority patent/WO2003010919A1/en
Priority to TW91116730A priority patent/TW561435B/en
Publication of DE10136303A1 publication Critical patent/DE10136303A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

When executing a byte substitution operation of the AES algorithm according to Rijndael, whereby the byte substitution operation has a partial operation of the affine mapping and a partial operation of the multiplicative inverses, the partial operation of the multiplicative inverses is executed using a look-up table, whereas the partial operation of the affine mapping is calculated using a hardwired arithmetic-logic unit or in software. Instead of the S-box, only the multiplicative inverse is stored in tabular form so that the same look-up table can be used in a decrypting device and in an encrypting device of an AES cryptography system, whereby resulting in a savings in memory according to the size of the look-up table.

Description

Die vorliegende Erfindung bezieht sich auf den AES- Algorithmus nach Rijndael und insbesondere auf eine verbesserte Implementation der Bytesubstitutionsoperation dieses Algorithmus. The present invention relates to the AES Rijndael algorithm and in particular on one improved implementation of the byte substitution operation this Algorithm.

Fig. 6 zeigt ein Übersichtsdiagramm für den AES- Kryptoalgorithmus, der auch als Rijndael-Algorithmus bezeichnet wird. Der Rijndael-Algorithmus ist in dem Dokument "The Rjindael Block Cipher: AES Proposal" von Joan Daemen und Vincent Rijmen, Document Version 2, 9. März 1999, beschrieben. Der AES-Algorithmus ist ein iterativer Algorithmus, bei dem eine vorgegebene Anzahl (10, 12 oder 14) von Runden (rounds) berechnet wird. Nachfolgend wird anhand von Fig. 6 eine Runde des AES-Algorithmus für einen Modus exemplarisch dargestellt. Startpunkt einer Runde ist ein Block von 16 Bytes, wobei jedes Byte 8 Bit umfaßt, also ein Block von 8 × 16 Bits. Diese sind in Fig. 6 bei 600 als vertikale Linien dargestellt. Der AES-Algorithmus oder Rijndael-Algorithmus ist ein sogenannter Block-Cipher-Algorithmus, bei dem bei dem in Fig. 6 gezeigten Beispiel ein Block von 16 × 8 Bits an Eingangsdaten gemeinsam verschlüsselt werden. Fig. 6 shows an overview diagram for the AES encryption algorithm, which is also known as the Rijndael algorithm. The Rijndael algorithm is described in the document "The Rjindael Block Cipher: AES Proposal" by Joan Daemen and Vincent Rijmen, Document Version 2, March 9, 1999. The AES algorithm is an iterative algorithm, in which a predetermined number ( 10 , 12 or 14 ) of rounds is calculated. A round of the AES algorithm for one mode is exemplarily illustrated below with reference to FIG. 6. The starting point of a round is a block of 16 bytes, each byte comprising 8 bits, i.e. a block of 8 × 16 bits. These are shown in FIG. 6 at 600 as vertical lines. The AES algorithm or Rijndael algorithm is a so-called block-cipher algorithm, in which, in the example shown in FIG. 6, a block of 16 × 8 bits of input data is encrypted together.

Der erste Schritt einer Runde wird als "Add Round Key" (Hinzufügen des Schlüssels für eine Runde) bezeichnet. Diese Funktion wird durch die bei 620 dargestellten Kreise symbolisiert. Der AES-Rundenschlüssel, der üblicherweise von einem AES-Schlüssel abgeleitet wird und als Expanded Key bezeichnet wird, umfaßt ebenfalls 16 × 8 Bit. In der Stufe Add Round Key wird eine bitweise XOR-Verschlüsselung mit dem AES- Rundenschlüssel und den 16 × 8 Bit an Eingangsdaten durchgeführt, wie es bei 630 dargestellt ist. The first step in a round is called an "Add Round Key". This function is symbolized by the circles shown at 620 . The AES round key, which is usually derived from an AES key and is called the expanded key, also comprises 16 × 8 bits. In the Add Round Key stage, bit-wise XOR encryption is carried out with the AES round key and the 16 × 8 bits of input data, as shown at 630 .

Die nächste Verarbeitungsstufe einer Runde des AES- Algorithmus besteht in einer Byte-Substitution, die in Fig. 6 als Byte-Sub bezeichnet wird. Die Byte-Substitution besteht in einer mathematischen Funktion, die beim AES-Algorithmus eine multiplikative Inverse mit affiner Abbildung umfaßt. Diese mathematische Funktion wird durch eine Nachschlagtabelle implementiert, welche üblicherweise als S-Box bezeichnet wird und in Fig. 6 durch Würfel 640 symbolisch dargestellt ist. Die Ausgangsdaten der Stufe 620 werden als Adresse für die S-Box, d. h. die Byte-Substitutions-Nachschlagtabelle, verwendet, um als Ausgangsdaten für jedes Byte ein Substitutionsbyte auszugeben, das die multiplikative Inverse mit affiner Abbildung der Eingangsadresse ist. Die S-Box enthält keine geheimen Informationen, sondern kann im voraus berechnet werden oder von einer öffentlich zugänglichen Stelle abgerufen werden. Die geheimen Informationen stecken in den Eingangsdaten, d. h. Eingangsadressen für die S-Box. The next stage of processing a round of the AES algorithm is byte substitution, which is referred to in FIG. 6 as the byte sub. The byte substitution consists of a mathematical function which, in the AES algorithm, comprises a multiplicative inverse with affine mapping. This mathematical function is implemented by a look-up table, which is usually referred to as an S-box and is symbolically represented in FIG. 6 by cubes 640 . The output data of stage 620 is used as the address for the S-Box, ie the byte substitution look-up table, in order to output a substitution byte as output data for each byte, which is the multiplicative inverse with affine mapping of the input address. The S-Box contains no secret information, but can be calculated in advance or called up from a publicly accessible location. The secret information is in the input data, ie input addresses for the S-Box.

Die Ausgangsdaten der Byte-Substitution 640 werden dann einer Zeilenverschiebungsoperation 650 unterzogen, die in Fig. 6 als "Shift Row" bezeichnet wird. Die Ausgangsdaten der Stufe 650 werden dann einer Spaltenvermischung unterzogen, die in Fig. 6 durch längliche Quader symbolisch dargestellt ist und in der Technik als "Mix Column" bezeichnet wird. Die Operationen 620, 640, 650 und 660 bilden eine von typischerweise zehn Runden des AES-Algorithmus, wobei eine Runde in der Technik auch als Round bezeichnet wird. Die Ausgangsdaten der Mix-Column-Operation, d. h. einer Runde oder Round, werden dann wieder einer Add-Round-Key-Operation 620' unterzogen, wobei wieder eine bitweise XOR-Verknüpfung der Daten mit einem Schlüssel 630' für die nächste Runde durchgeführt wird etc. Nach einer wählbaren Anzahl von Runden, welche üblicherweise 10 beträgt, liegen dann die AES-verschlüsselten Daten vor. The output data of byte substitution 640 is then subjected to a row shift operation 650 , which is referred to in FIG. 6 as "shift row". The output data of stage 650 are then subjected to a column mixing, which is symbolically represented in FIG. 6 by elongated cuboids and is referred to in the art as a "Mix Column". Operations 620 , 640 , 650 and 660 form one of typically ten rounds of the AES algorithm, one round also being referred to in the art as a round. The output data of the mix column operation, that is to say a round or round, are then subjected to an add-round key operation 620 ', in which case the data is again bitwise XORed with a key 630 ' for the next round etc. After a selectable number of rounds, which is usually 10, the AES-encrypted data is then available.

Nachteilig an der oben beschriebenen Ausführung der Bytesubstitution mittels einer Nachschlagtabelle ist, daß in einer Verschlüsselungseinrichtung, in der Eingangsdaten in substituierte Daten transformiert werden, also in der Einrichtung 640 von Fig. 6, eine andere Tabelle verwendet werden muß, als in einer Entschlüsselungseinrichtung, in der die korrespondierende inverse Operation des symmetrischen AES-Algorithmus, also eine Rücksubstitution der Daten, durchgeführt wird. Eine Vorrichtung, die sowohl eine Verschlüsselung als auch eine Entschlüsselung gemäß dem AES-Algorithmus nach Rijndael durchführt, benötigt somit zwei Nachschlagtabellen, nämlich eine für die Verschlüsselungskomponente und eine für die Entschlüsselungskomponente. Es sei darauf hingewiesen, daß die Bytesubstitutions-Nachschlagtabelle 256 × 8 Bits, also 256 Byte groß ist. Eine bekannte Vorrichtung benötigt daher 2 × 256 Byte Speicherplatz zum Speichern der Bytesubstitutionstabelle. A disadvantage of the above-described execution of byte substitution by means of a look-up table is that in an encryption device in which input data is transformed into substituted data, i.e. in device 640 of FIG. 6, a different table than in a decryption device must be used in which carries out the corresponding inverse operation of the symmetrical AES algorithm, that is to say a back-substitution of the data. A device that performs both encryption and decryption according to the Rijndael AES algorithm thus requires two lookup tables, one for the encryption component and one for the decryption component. It should be noted that the byte substitution look-up table is 256 x 8 bits, 256 bytes in size. A known device therefore requires 2 × 256 bytes of storage space for storing the byte substitution table.

Die obigen Speicherangaben gelten für eine serielle Berechnung der Bytesubstitution. Aus Schnelligkeitsgründen wird jedoch üblicherweise eine parallele Verarbeitung der z. B. 16 Bytes eingesetzt. Dann muß die Bytesubstitutionstabelle 16-fach vorhanden sein. Der benötigte Speicherplatz beträgt dann 16 × 2 × 256 Byte. The memory information above applies to a serial calculation byte substitution. For speed reasons, however usually a parallel processing of the z. B. 16 bytes used. Then the byte substitution table must be 16 times to be available. The required storage space is then 16 × 2 × 256 bytes.

Für Anwendungen des AES-Algorithmus auf Allzweckcomputern stellt dies kein wesentliches Problem dar. Ganz anders verhält sich die Situation jedoch bei Chipkarten, bei denen aufgrund der Größe des Speicherchips sehr restriktive Speicheranforderungen vorhanden sind. Der Speicher auf Chipkarten liegt im Bereich von Kilobyte, so daß die Bytesubstitutionstabellen für die Entschlüsselungskomponente als auch für die Verschlüsselungskomponente der Schaltung einen wesentlichen Speicherplatz in Anspruch nehmen. Andererseits sind die auf einer Chipkarte auszuführenden Algorithmen mehr und mehr komplex, so daß auch die Anforderungen hinsichtlich des Arbeitsspeichers der Chipkarte ansteigen, damit die Chipkarte auch komplexere Algorithmen mit einem vernünftigen Durchsatz berechnen kann. For applications of the AES algorithm on general purpose computers this is not a major problem. Quite different however, the situation is the same for chip cards where very restrictive due to the size of the memory chip Storage requirements exist. The memory on chip cards is in the kilobyte range, so the Byte substitution tables for the decryption component as well as for the Encryption component of the circuit an essential Take up space. On the other hand, they're on algorithms to be executed more and more complex, so that the requirements in terms of RAM of the chip card increase, so the chip card too more complex algorithms with reasonable throughput can calculate.

Die Aufgabe der vorliegenden Erfindung besteht darin, ein effizienteres Konzept zum Ausführen einer Bytesubstitutionsoperation des AES-Algorithmus nach Rijndael zu schaffen. The object of the present invention is a more efficient concept of running a To create byte substitution operation of the AES algorithm according to Rijndael.

Diese Aufgabe wird durch ein Verfahren gemäß Patentanspruch 1, durch eine Vorrichtung gemäß Patentanspruch 7 oder durch ein Kryptographiesystem gemäß Patentanspruch 8 gelöst. This object is achieved by a method according to claim 1, by a device according to claim 7 or by a cryptography system according to claim 8 solved.

Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß die Bytesubstitutionsoperation z. B. des AES-Algorithmus nach Rijndael aufgesplittet werden muß und teils durch ein fest verdrahtetes Rechenwerk und teils z. B. durch eine Nachschlagtabelle oder anderweitig durchzuführen ist. Die Bytesubstitutionsoperation besteht aus zwei Teiloperationen, nämlich der Operation der multiplikativen Inversen und der Teiloperation der affinen Abbildung. In Analogie dazu besteht die Bytesubstitutionsoperation in einer Entschlüsselungsvorrichtung in einer Teiloperation der inversen affinen Abbildung und in der Teiloperation der multiplikativen Inversen. The present invention is based on the finding that the byte substitution operation e.g. B. the AES algorithm Rijndael must be split up and partly by a feast wired calculator and partly z. B. by a Lookup table or otherwise. The Byte substitution operation consists of two sub-operations, namely the operation of the multiplicative inverse and the Partial operation of the affine mapping. By analogy, there is the Byte substitution operation in one Decryption device in a partial operation of the inverse affine mapping and in the partial operation of the multiplicative inverses.

Erfindungsgemäß wird die affine Abbildung mittels eines fest verdrahteten Rechenwerks ausgeführt, während die multiplikative Inverse z. B. mittels einer Nachschlagtabelle ermittelt wird. Dies ermöglicht es, daß sowohl für die Verschlüsselungsoperation als auch für die Entschlüsselungsoperation dieselbe Nachschlagtabelle verwendet werden kann, nämlich einfach die Nachschlagtabelle der multiplikativen Inversen. Eine Kryptographievorrichtung mit einer Entschlüsselungskomponente und einer Verschlüsselungskomponente muß daher lediglich noch eine einzige Nachschlagtabelle für die Bytesubstitutionsoperation speichern, was in einer Speichereinsparung von beispielsweise 16 × 256 Byte für eine parallele Implementation resultiert. Für größere Nachschlagtabellen, d. h., wenn der AES-Algorithmus nicht byteweise, sondern auf größere Datenblöcke ausgeführt wird, ist die Speichereinsparung in Byte noch signifikanter. According to the invention, the affine mapping is fixed by means of a wired calculator while the multiplicative inverse z. B. determined using a lookup table becomes. This enables both for the Encryption operation as well as for the decryption operation the same lookup table can be used, namely simply the lookup table of multiplicative inverses. A cryptographic device with one Decryption component and an encryption component must therefore just a single lookup table for the Save byte substitution operation, resulting in a memory saving of, for example, 16 × 256 bytes for a parallel one Implementation results. For larger lookup tables, i. H., if the AES algorithm is not byte-wise, but larger Blocks of data is executed, the memory saving is in Bytes even more significant.

Falls die Berechnung der multiplikativen Inversen auf andere Weise als durch eine Nachschlagtabelle durchgeführt wird, so ist die vorliegende Erfindung vorteilhaft darin, daß z. B. nur ein einziges Rechenwerk oder nur ein einziges Softwareprogramm sowohl für die Verschlüsselung als auch die Entschlüsselung benötigt werden. If the calculation of the multiplicative inverses on others Way than is done through a lookup table the present invention is advantageous in that, for. B. just a single arithmetic unit or just a single one Software program for both encryption and encryption Decryption are needed.

Erfindungsgemäß werden in der Nachschlagtabelle somit nicht die üblicherweise verfügbaren S-Box-Werte abgelegt, sondern lediglich eine Tabelle der multiplikativen Inversen der Eingangs- (Adreß-) Werte. In einem weiteren Schritt wird dann die affine Abbildung fest verdrahtet realisiert. Eine bevorzugte Verdrahtung besteht darin, lediglich XOR-Gatter zu verwenden, wobei in einer weiteren Ausgestaltung der vorliegenden Erfindung lediglich XOR-Gatter mit zwei Eingängen eingesetzt werden, um die Anzahl der nötigen Transistoren zu begrenzen. Thus, according to the invention, the lookup table does not the usually available S-Box values, but just a table of the multiplicative inverses of the Input (address) values. Then in a further step the affine mapping is hard-wired. A preferred wiring is to only XOR gates use, in a further embodiment of the present invention, only two-input XOR gates used to increase the number of transistors required limit.

Dadurch kann die gleiche Tabelle zum Verschlüsseln und Entschlüsseln verwendet werden und es müssen nicht zwei getrennte Tabellen mit 256 × 8 Bits gespeichert werden. This allows the same table to be encrypted and Decryption can be used and it doesn't have to be two separate tables with 256 × 8 bits can be stored.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen: Preferred embodiments of the present invention are referred to below with reference to the enclosed Drawings explained in more detail. Show it:

Fig. 1 ein Blockschaltbild einer erfindungsgemäßen Vorrichtung zum Ausführen einer Bytesubstitutionsoperation des AES-Algorithmus nach Rijndael für die Verschlüsselungsoperation; Fig. 1 is a block diagram of a device according to the invention for performing a Bytesubstitutionsoperation of the AES algorithm according to Rijndael for encryption operation;

Fig. 2 ein Blockschaltbild einer Vorrichtung zum Ausführen einer Bytesubstitutionsoperation des AES- Algorithmus nach Rijndael für die Entschlüsselungsoperation; Fig. 2 is a block diagram of an apparatus for performing a Bytesubstitutionsoperation of the AES algorithm according to Rijndael for decryption operation;

Fig. 3a die Rechenvorschrift für die affine Abbildung; Fig. 3a, the calculation rule for the affine transformation;

Fig. 3b eine arithmetisch-logische Darstellung der Vorschrift von Fig. 3a; FIG. 3b is an arithmetic and logical representation of the procedure of FIG. 3a;

Fig. 4 ein Rechenwerk zum Berechnen der affinen Abbildung gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung; Fig. 4 is an arithmetic unit for calculating the affine transformation according to a first embodiment of the present invention;

Fig. 5 ein Rechenwerk zum Berechnen der affinen Abbildung gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung; und Fig. 5 is an arithmetic unit for calculating the affine transformation according to a further embodiment of the present invention; and

Fig. 6 ein Übersichtsdiagramm über eine Runde des AES- Algorithmus. Fig. 6 is an overview diagram over a round of the AES algorithm.

Die Bytesubstitutionsoperation des AES-Algorithmus ist eine nichtlineare Bytesubstitution, die auf jedes der Zustandsbytes des AES-Algorithmus unabhängig wirkt. Die Substitutionstabelle (oder S-Box) besteht aus zwei Transformationen. Zunächst muß die multiplikative Inverse in GF (28) ermittelt werden, und dann müssen die Ergebnisdaten einer affinen Transformation (über GF(2)) unterzogen werden. The byte substitution operation of the AES algorithm is a nonlinear byte substitution that acts independently on each of the state bytes of the AES algorithm. The substitution table (or S-Box) consists of two transformations. First, the multiplicative inverse in GF (2 8 ) must be determined, and then the result data must be subjected to an affine transformation (via GF (2)).

Erfindungsgemäß umfaßt die Vorrichtung zum Ausführen der Bytesubstitutionsoperation zunächst eine Einrichtung 10 zum Ausführen der Teiloperation der multiplikativen Inversen mittels einer Nachschlagtabelle und dann ein fest verdrahtetes Rechenwerk 12 zum Berechnen der affinen Abbildung der Ausgangsdaten der Einrichtung 10, um aus Eingangsdaten an einem Eingang 14 substituierte Daten an einem Ausgang 16 zu erhalten. According to the invention, the device for performing the byte substitution operation comprises first a device 10 for performing the partial operation of the multiplicative inverses by means of a look-up table and then a hard-wired arithmetic unit 12 for calculating the affine mapping of the output data of the device 10 in order to provide data substituted from input data at an input 14 to get an output 16 .

Während Fig. 1 für eine Verschlüsselungsvorrichtung gilt, ist Fig. 2 für eine Entschlüsselungsvorrichtung dargestellt. Substituierte Daten werden zunächst einem Rechenwerk 20, das fest verdrahtet ist, zugeführt. Das Rechenwerk berechnet die inverse affine Abbildung. Die Ausgangsdaten der Einrichtung 20 werden dann einer Einrichtung 22 zum Berechnen der multiplikativen Inversen zugeführt. Die Einrichtung 22 ist wieder, wie die Einrichtung 10 von Fig. 1, als Nachschlagtabelle für die multiplikative Inverse organisiert. An einem Ausgang 24 der in Fig. 2 gezeigten Vorrichtung liegen somit rücksubstituierte Daten vor, die aus substituierten Daten an einem Eingang 26 der in Fig. 2 gezeigten Vorrichtung berechnet worden sind. While Fig. 1 applies to an encryption device, Fig. 2 is shown for a decryption device. Substituted data are first fed to an arithmetic logic unit 20 , which is hard-wired. The arithmetic unit calculates the inverse affine mapping. The output data of the device 20 are then fed to a device 22 for calculating the multiplicative inverses. Device 22 , like device 10 of FIG. 1, is again organized as a lookup table for the multiplicative inverse. At an output 24 of the apparatus shown in Fig. 2 are thus reset substituted data that the have been calculated in Fig. 2 apparatus shown from substituted data at an input 26.

Im nachfolgenden wird bezugnehmend auf Fig. 3a auf die Berechnungsvorschrift zum Berechnen der affinen Abbildung eingegangen. Fig. 3a stellt somit die Rechenvorschrift dar, die das Rechenwerk 12 aus Fig. 1 umsetzen muß. Die Eingangsdaten in das Rechenwerk sind mit x0 bis x7 bezeichnet, während die Ausgangsdaten aus dem Rechenwerk, also die substituierten Daten von Fig. 1, mit y0 bis y7, bezeichnet sind. Es sei darauf hingewiesen, daß die affine Abbildung in Fig. 3a für acht Eingangsbits und acht Ausgangsbits dargestellt ist. Es sei jedoch auch darauf hingewiesen, daß der AES-Algorithmus prinzipiell auch mit einer anderen Anzahl von Bits pro Block implementiert werden könnte. In the following, the calculation rule for calculating the affine mapping is discussed with reference to FIG. 3a. FIG. 3a thus represents the calculation rule that the arithmetic unit 12 from FIG. 1 must implement. The input data into the arithmetic unit are denoted by x 0 to x 7 , while the output data from the arithmetic unit, ie the substituted data from FIG. 1, are denoted by y 0 to y 7 . It should be noted that the affine mapping in Figure 3a is shown for eight input bits and eight output bits. However, it should also be pointed out that the AES algorithm could in principle also be implemented with a different number of bits per block.

Durch Inversion der Vektorgleichung, die in Fig. 3a gezeigt ist, wird die mathematische Vorschrift zum Berechnen der inversen affinen Abbildung, die durch das Rechenwerk 20 von Fig. 2 zu implementieren ist, erhalten. By inversion of the vector equation shown in FIG. 3a, the mathematical rule for calculating the inverse affine mapping, which is to be implemented by the arithmetic unit 20 of FIG. 2, is obtained.

Fig. 3b zeigt die Berechnungsvorschrift der Gleichung von Fig. 3a mittels logischer Operatoren, wobei das Zeichen + für eine XOR-Verknüpfung steht, während das Zeichen - für eine NICHT- oder NOT-Operation steht. Die Addition, die durch die letzte Spalte von Fig. 3a dargestellt ist, kann im Dualsystem auch durch die NOT-Operation berechnet werden, je nachdem, was schaltungstechnisch günstiger ist. FIG. 3b shows the calculation rule of the equation from FIG. 3a by means of logical operators, where the symbol + stands for an XOR operation, while the symbol - stands for a NOT or NOT operation. The addition, which is represented by the last column of FIG. 3a, can also be calculated in the dual system by the NOT operation, depending on what is more favorable in terms of circuitry.

Fig. 4 zeigt eine schaltungstechnische Realisierung der in Fig. 3b gezeigten Gleichungen. Als Eingangswerte werden x0 bis x7 eingegeben, um als Ausgangswerte y0 bis y7 zu erhalten. Die in Fig. 4 gezeigte Schaltung umfaßt acht XOR-Gatter 40 bis 47, wobei die Ausgänge der XOR-Gatter 40, 41, 45 und 4-6, wie es durch die in Fig. 3b gezeigten entsprechenden Gleichungen vorgegeben ist, invertiert sind. FIG. 4 shows a circuit implementation of the equations shown in FIG. 3b. X 0 to x 7 are entered as input values to obtain y 0 to y 7 as output values. The circuit shown in FIG. 4 comprises eight XOR gates 40 to 47 , the outputs of the XOR gates 40 , 41 , 45 and 4-6 being inverted as dictated by the corresponding equations shown in FIG. 3b.

Wie es aus Fig. 4 zu sehen ist, hat jedes der XOR-Gatter 40 bis 47 mehr als zwei Eingänge. As can be seen from FIG. 4, each of the XOR gates 40 to 47 has more than two inputs.

Eine Transistor-sparendere Implementation der in Fig. 3b gezeigten Berechnungsvorschrift ist in Fig. 5 dargestellt. Fig. 5 umfaßt wieder ausschließlich XOR-Gatter 50 bis 65, wobei jedoch sämtliche Gatter ausschließlich zwei Eingänge und einen Ausgang haben. Mittels der XOR-Gatter 50 bis 53 werden erste Hilfsgrößen H1 bis H4 berechnet. Mittels der XOR-Gatter 54 bis 57 werden dann aus den ersten Hilfsgrößen H1 bis H4 zweite Hilfsgrößen H5 bis H8 berechnet. Die Ausgangswerte, also die substituierten Daten am Ausgang 16 von Fig. 1 bzw. y0 bis y7, werden schließlich durch die XOR-Gatter 58 bis 65 erhalten, wobei die Ausgänge der XOR-Gatter 58, 59, 63 und 64 invertiert sind, wie es durch die in Fig. 3b gezeigten Gleichungen vorgegeben ist. A transistor-saving implementation of the calculation rule shown in FIG. 3b is shown in FIG. 5. Fig. 5 again includes only XOR gates 50 to 65 , but all gates have only two inputs and one output. First auxiliary variables H1 to H4 are calculated using XOR gates 50 to 53 . The second auxiliary variables H5 to H8 are then calculated from the first auxiliary variables H1 to H4 by means of the XOR gates 54 to 57 . The output values, that is to say the substituted data at output 16 from FIG. 1 or y 0 to y 7 , are finally obtained by the XOR gates 58 to 65 , the outputs of the XOR gates 58 , 59 , 63 and 64 being inverted as dictated by the equations shown in Fig. 3b.

Obgleich die in Fig. 5 gezeigte Schaltung mehr XOR-Gatter als die in Fig. 4 gezeigte Schaltung aufweist, wird sie dennoch bevorzugt, da jedes der in Fig. 5 gezeigten XOR-Gatter lediglich zwei Eingänge aufweist, so daß insgesamt eine Transistoreinsparung erreicht werden kann. Although the circuit shown in FIG. 5 has more XOR gates than the circuit shown in FIG. 4, it is still preferred because each of the XOR gates shown in FIG. 5 has only two inputs, so that overall transistor savings are achieved can.

Es sei darauf hingewiesen, daß weitere schaltungstechnische Implementationen der Teiloperation der affinen Abbildung bzw. der inversen affinen Abbildung implementiert werden können. Unabhängig davon, welche spezielle Implementation für das fest verdrahtete Rechenwerk zum Berechnen der affinen Abbildung gewählt wird, oder ob die Berechnung der affinen Abbildung softwaremäßig implementiert wird, wird immer der Vorteil erhalten, daß sowohl die Entschlüsselungskomponente als auch die Verschlüsselungskomponente einer Kryptographievorrichtung dieselbe Nachschlagtabelle verwenden können, in der die multiplikative Inverse tabellarisch abgespeichert ist. Bezugszeichenliste 10 Einrichtung zum Ausführen der Teiloperation der multiplikativen Inversen
12 Rechenwerk zum Berechnen der affinen Abbildung
14 Eingang einer Verschlüsselungseinrichtung
16 Ausgang der Verschlüsselungseinrichtung
20 Rechenwerk zum Berechnen der inversen affinen Abbildung
22 Einrichtung zum Ausführen der Teiloperation der multiplikativen Inversen mittels einer Nachschlagtabelle
24 Ausgang der Entschlüsselungseinrichtung
26 Eingang der Entschlüsselungseinrichtung
40-47 XOR-Gatter mit mehr als zwei Eingängen
50-57 erster Satz von XOR-Gattern mit zwei Eingängen
58-65 zweiter Satz von XOR-Gattern mit zwei Eingängen
600 Eingangsbyte
620 Add-Round-Key-Funktion
630 XOR-Verschlüsselung mit dem AES-Rundenschlüssel
640 Bytesubstitutionsoperation mittels einer S-Box
650 Shift-Row-Funktion
660 Mix-Column-Funktion
620' Add-Round-Key-Funktion der nächsten Runde
630' XOR-Verschlüsselung für die nächste Runde
It should be pointed out that further circuitry implementations of the partial operation of the affine mapping or the inverse affine mapping can be implemented. Regardless of which specific implementation is chosen for the hard-wired arithmetic unit for computing the affine mapping or whether the computing of the affine mapping is implemented in software, the advantage is always obtained that both the decryption component and the encryption component of a cryptography device can use the same look-up table , in which the multiplicative inverse is stored in a table. Reference numeral list 10 apparatus for performing the partial operation of the multiplicative inverse
12 arithmetic unit for calculating the affine mapping
14 Entry of an encryption device
16 Output of the encryption device
20 arithmetic unit for calculating the inverse affine mapping
22 Means for performing the partial operation of the multiplicative inverse using a look-up table
24 Output of the decryption device
26 Entrance of the decryption device
40-47 XOR gate with more than two inputs
50-57 first set of two-input XOR gates
58-65 second set of two-input XOR gates
600 input bytes
620 Add round key function
630 XOR encryption with the AES round key
640 byte substitution operation using an S-Box
650 shift row function
660 mix column function
620 'Add round key function of the next round
630 'XOR encryption for the next round

Claims (11)

1. Verfahren zum Ausführen einer Bytesubstitutionsoperation, wobei die Bytesubstitutionsoperation eine Teiloperation der affinen Abbildung und eine Teiloperation der multiplikativen Inversen aufweist, mit folgenden Schritten:
Ausführen (10) der Teiloperation der multiplikativen Inversen; und
Ausführen (12) der Teiloperation der affinen Abbildung mittels eines Rechenwerks.
1. A method for performing a byte substitution operation, the byte substitution operation comprising a partial operation of the affine mapping and a partial operation of the multiplicative inverse, with the following steps:
Performing ( 10 ) the multiplicative inverse suboperation; and
Execution ( 12 ) of the partial operation of the affine mapping by means of an arithmetic unit.
2. Verfahren nach Anspruch 1, bei dem die Bytesubstitutionsoperation die Bytesubstitutionsoperation des AES-Algorithmus nach Rijndael ist. 2. The method according to claim 1, wherein the Byte substitution operation the byte substitution operation of the AES algorithm according to Rijndael. 3. Verfahren nach Anspruch 1 oder 2, bei dem der Schritt des Ausführens (10) der Teiloperation der multiplikativen Inversen mittels einer Nachschlagtabelle durchgeführt wird. 3. The method of claim 1 or 2, wherein the step of performing ( 10 ) the sub-operation of the multiplicative inverses is performed using a look-up table. 4. Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem das Rechenwerk zum Berechnen der Teiloperation der affinen Abbildung eine CPU ist und die Berechnung in Software ausgeführt wird. 4. The method according to any one of the preceding claims, at which the arithmetic unit for calculating the suboperation of affine mapping is a CPU and the calculation in software is performed. 5. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem das Rechenwerk zum Berechnen der affinen Abbildung ein fest verdrahtetes Rechenwerk ist. 5. The method according to any one of claims 1 to 3, wherein the Calculator for calculating the affine mapping a fixed wired calculator. 6. Verfahren gemäß Anspruch 5, bei dem das fest verdrahtete Rechenwerk zum Ausführen der Teiloperation der affinen Abbildung lediglich XOR-Gatter aufweist. 6. The method of claim 5, wherein the hardwired Arithmetic unit for executing the partial operation of the affine Figure shows only XOR gates. 7. Verfahren gemäß Anspruch 6, bei dem jedes XOR-Gatter des fest verdrahteten Rechenwerks lediglich zwei Eingänge und einen Ausgang aufweist. 7. The method of claim 6, wherein each XOR gate of the hardwired calculator only two inputs and has an output. 8. Verfahren gemäß Anspruch 7,
bei dem ein Dateneingangsblock für die Bytesubstitutionsoperation eine Anzahl von Bits aufweist und ein Datenausgangsblock für die Bytesubstitutionsoperation dieselbe Anzahl von Bits aufweist, und
bei dem der Schritt des Ausführens der Teiloperation der affinen Abbildung folgende Schritte aufweist:
Berechnen einer Anzahl von Hilfsgrößen (H1-H8) unter Verwendung eines ersten Satzes von XOR-Gattern (50-57) mit jeweils genau zwei Eingängen, dessen Anzahl gleich der Anzahl der Hilfsgrößen ist, wobei die Anzahl der Hilfsgrößen gleich der Anzahl von Bits des Dateneingangsblocks ist; und
Berechnen der Bits (y0-y7) des Datenausgangsblocks unter Verwendung eines zweiten Satzes von XOR-Gattern (58-65) mit jeweils zwei Eingängen unter Verwendung der Bits.des Dateneingangsblocks und der Hilfsgrößen, wobei die Anzahl der XOR- Gatter (58-65) des zweiten Satzes gleich der Anzahl von Bits des Datenausgangsblocks ist.
8. The method according to claim 7,
a data input block for the byte substitution operation has a number of bits and a data output block for the byte substitution operation has the same number of bits, and
in which the step of performing the suboperation of affine mapping comprises the following steps:
Calculate a number of auxiliary variables (H1-H8) using a first set of XOR gates ( 50-57 ), each with exactly two inputs, the number of which is equal to the number of auxiliary variables, the number of auxiliary variables being equal to the number of bits of the Data input block; and
Calculate the bits (y 0 -y 7 ) of the data output block using a second set of XOR gates ( 58-65 ), each with two inputs, using the bits of the data input block and the auxiliary variables, the number of XOR gates ( 58 -65 ) of the second set is equal to the number of bits of the data output block.
9. Vorrichtung zum Ausführen einer Bytesubstitutionsoperation, wobei die Bytesubstitutionsoperation eine Teiloperation der affinen Abbildung und eine Teiloperation der multiplikativen Inversen aufweist, mit folgenden Merkmalen:
einer Einrichtung zum Ausführen (10) der Teiloperation der multiplikativen Inversen; und
einer Einrichtung zum Ausführen (12) der Teiloperation der affinen Abbildung mittels eines Rechenwerks.
9. Device for performing a byte substitution operation, the byte substitution operation comprising a partial operation of the affine mapping and a partial operation of the multiplicative inverses, having the following features:
means for performing ( 10 ) the multiplicative inverse suboperation; and
a device for executing ( 12 ) the partial operation of the affine mapping by means of an arithmetic unit.
10. Symmetrisches Kryptographiesystem zum Ausführen einer Verschlüsselungsoperation und einer Entschlüsselungsoperation unter Verwendung eines Algorithmus, der eine Bytesubstitutionsoperation aufweist, die eine Teiloperation der affinen Abbildung und eine Teiloperation der multiplikativen Inversen aufweist, mit folgenden Merkmalen:
in einer Verschlüsselungseinrichtung:
eine Einrichtung zum Ausführen der Teiloperation der multiplikativen Inversen; und
ein Rechenwerk (12) zum Ausführen der Teiloperation der affinen Abbildung;
in einer Entschlüsselungseinrichtung:
ein Rechenwerk (20) zum Ausführen einer Operation, die zur Teiloperation der affinen Abbildung invers ist; und
eine Einrichtung (22) zum Ausführen der Teiloperation der multiplikativen Inversen,
wobei die Einrichtung (10) zum Ausführen der Teiloperation der multiplikativen Inversen in der Verschlüsselungseinrichtung und der Entschlüsselungseinrichtung ausgebildet sind, um gemeinsam eine einzige Einrichtung zu verwenden, durch die die Teiloperation der multiplikativen Inversen bestimmbar ist.
10. A symmetrical cryptographic system for performing an encryption operation and a decryption operation using an algorithm having a byte substitution operation that has a partial operation of the affine mapping and a partial operation of the multiplicative inverse, with the following features:
in an encryption facility:
means for performing the multiplicative inverse suboperation; and
an arithmetic unit ( 12 ) for performing the partial operation of the affine mapping;
in a decryption facility:
an arithmetic unit ( 20 ) for performing an operation inverse to the partial operation of the affine mapping; and
means ( 22 ) for performing the partial operation of the multiplicative inverses,
wherein the means ( 10 ) for executing the partial operation of the multiplicative inverses in the encryption device and the decryption device are designed to jointly use a single device by which the partial operation of the multiplicative inverses can be determined.
11. Symmetrisches Kryptographiesystem nach Anspruch 10, bei dem die einzige Einrichtung eine einzige Nachschlagtabelle aufweist, in der die Teiloperation der multiplikativen Inversen tabellarisch gespeichert ist. 11. A symmetrical cryptography system according to claim 10, which the only facility has a single lookup table in which the sub-operation of the multiplicative Inverses is tabulated.
DE2001136303 2001-07-26 2001-07-26 Method and apparatus for performing a byte substitution operation of the Rijndael AES algorithm Withdrawn DE10136303A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE2001136303 DE10136303A1 (en) 2001-07-26 2001-07-26 Method and apparatus for performing a byte substitution operation of the Rijndael AES algorithm
PCT/EP2002/007296 WO2003010919A1 (en) 2001-07-26 2002-07-02 Method and device for executing a byte substitution operation of the aes algorithm according to rijndael
TW91116730A TW561435B (en) 2001-07-26 2002-07-26 Method and device for executing a byte substitution operation of the AES algorithm according to Rijndael

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001136303 DE10136303A1 (en) 2001-07-26 2001-07-26 Method and apparatus for performing a byte substitution operation of the Rijndael AES algorithm

Publications (1)

Publication Number Publication Date
DE10136303A1 true DE10136303A1 (en) 2003-02-13

Family

ID=7693091

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001136303 Withdrawn DE10136303A1 (en) 2001-07-26 2001-07-26 Method and apparatus for performing a byte substitution operation of the Rijndael AES algorithm

Country Status (3)

Country Link
DE (1) DE10136303A1 (en)
TW (1) TW561435B (en)
WO (1) WO2003010919A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW527783B (en) * 2001-10-04 2003-04-11 Ind Tech Res Inst Encryption/deciphering device capable of supporting advanced encryption standard
US7873161B2 (en) 2002-12-13 2011-01-18 Nxp B.V. Small hardware implementation of the subbyte function of rijndael
EP1465365A1 (en) * 2003-04-04 2004-10-06 STMicroelectronics S.r.l. Method and Hardware Device for Implementing a one-to-one Binary Function, especially a Rijdael S-Box
CN110417540B (en) * 2019-08-05 2023-01-03 中国航天科工集团六院情报信息研究中心 Information encryption method for resisting differential power analysis

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100296958B1 (en) * 1998-05-06 2001-09-22 이석우 Apparatus for encoding block data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAEMEN, J. *
RIJMEN, V.: AES Proposal: Rijndael, Version 2, (online), September 1999. Im Internet: <URL: http://www.esat.kuleuven.ac.be/-rijmen/nindael/rijndaeldocV2.zip> *

Also Published As

Publication number Publication date
WO2003010919A1 (en) 2003-02-06
TW561435B (en) 2003-11-11

Similar Documents

Publication Publication Date Title
DE102005012098B4 (en) Data cipher processor as well as AES cipher system and AES ciphers
DE60314055T2 (en) Encryption and decryption in a circuit that masks a non-linear transformation such as the SUBBYTE operation
EP1668515B1 (en) Word-individual key generation
EP3218893B1 (en) Hardened white box implementation
DE60222052T2 (en) Encryption secured against attacks through the analysis of power consumption (DPA)
DE602005002349T2 (en) Key masking for cryptographic processes
DE69931606T2 (en) DATA TRANSMITTER AND RECORDING MEDIUM FOR RECORDING A PROGRAM FOR DATA TRANSFORMATION
DE102007052656B4 (en) Digital encryption hardware accelerator
DE60121284T2 (en) Method and apparatus for performing a cryptographic function
DE102005028662A1 (en) Polynom multiplication calculating method e.g. for elliptical curve cryptography, making available coefficients with two polynomials each polynomial fragmented into two or more fragments, being operands partial multiplication
DE102005005335A1 (en) Device and method for hardware encryption
DE112011102765T5 (en) Apparatus and method for block encryption methods for unsafe environments
DE10148415A1 (en) Method and device for encrypting and decrypting data
DE60301750T2 (en) Device for generating an extended key, encryption device and encryption system
DE10136303A1 (en) Method and apparatus for performing a byte substitution operation of the Rijndael AES algorithm
DE102004018874B4 (en) Method and device for determining a result
WO2005043803A1 (en) Cryptographic method and device
DE102009052454A1 (en) Method and system for confidential provision of software components
DE19936918A1 (en) Encryption method for performing cryptographic operations
DE102020134618A1 (en) SECURITY CONTROLLERS AND METHODS FOR PROCESSING DATA ELEMENTS OF A DATA FIELD
DE60034944T2 (en) Countermeasure procedure in a secret and dynamic encryption algorithm exporting electronic circuit
DE19828936A1 (en) Method and device for processing data
DE69829566T2 (en) ENCRYPTION DEVICE
DE10149191C2 (en) Method and device for determining original source data from original input data on the basis of a cryptographic operation
EP1446711B1 (en) Shifting device and shifting method

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R002 Refusal decision in examination/registration proceedings
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120201