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 algorithmInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details 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
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)
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.
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.
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.
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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100296958B1 (en) * | 1998-05-06 | 2001-09-22 | 이석우 | Apparatus for encoding block data |
-
2001
- 2001-07-26 DE DE2001136303 patent/DE10136303A1/en not_active Withdrawn
-
2002
- 2002-07-02 WO PCT/EP2002/007296 patent/WO2003010919A1/en active Application Filing
- 2002-07-26 TW TW91116730A patent/TW561435B/en active
Non-Patent Citations (2)
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 |