Verfahren zum Schutz von Schlüsseln Method for protecting keys
Die vorliegende Erfindung betrifft ein Verfahren zum Schutz von Schlüsseln, ins¬ besondere ein Verfahren zum Verbergen von Schlüsseln während der Verwen¬ dung, sowie einen Verschlüsselungsalgorithmus mit einem darin verborgenen Schlüssel.The present invention relates to a method for protecting keys, in particular a method for concealing keys during Verwen¬ tion, and an encryption algorithm with a key hidden therein.
Bei der Verwendung von Verschlüsselungsverfahren ist es grundsätzlich ein Prob¬ lem den zu verwendenden Schlüssel vor unberechtigtem Zugriff zu schützen. Bei verschiedenen Anwendungen besteht die Gefahr, dass der verwendete Schlüssel zumindest kurzzeitig „sichtbar" ist, da er während der Abarbeitung des Verschlüs¬ selungsalgorithmus als Parameter in den Arbeitsspeicher geladen wird. Mit Hilfe von geeigneten „debugging tools" kann ein derart sichtbarer Schlüssel erkannt und kopiert werden. Um den Schlüssel auch vor derartigen Angriffen schützen zu können, werden im Stand der Technik algorithmische Transformationstechniken als zusätzliche Sicherheitsfunktionen vorgeschlagen. Derartige zusätzlichen Si¬ cherheitsfunktionen sind unter dem Schlagwort „program obfuscation" bekannt.When using encryption methods, it is basically a problem to protect the key to be used against unauthorized access. In various applications, there is a risk that the key used is at least "visible" for a short time, since it is loaded into the main memory as a parameter during processing of the encryption algorithm be copied. In order to protect the key against such attacks, algorithmic transformation techniques are proposed as additional security functions in the prior art. Such additional safety functions are known under the keyword "program obfuscation".
Das derzeitige Hauptanwendungsgebiet für derartige Sicherheitsfunktionen ist der software-basierte Kopierschutz beziehungsweise allgemeiner die Absicherung von Lizenzen und Rechten an medialen Inhalten aller Art im Rahmen eines „digital rights management". In diesem Fall soll der autorisierte Benutzer beziehungswei- se Anwender an der unkontrollierten Weiterverbreitung beziehungsweise Weiter¬ gabe der Inhalte oder der Programme an nicht autorisierte Dritte gehindert wer¬ den. Typischerweise geschieht dies durch Ausgabe der Inhalte in verschlüsselter Form, wobei die Berechtigungsinformation dann in Form eines Passworts oder auch eines „license key" übermittelt wird. Diese Berechtigungsinformation hängt
dann mit dem Schlüssel zur Entschlüsselung der Inhalte auf eine mehr oder weni¬ ger explizite Weise zusammen.The current main area of application for such security functions is software-based copy protection or, more generally, the protection of licenses and rights to media content of all kinds within the framework of "digital rights management." In this case, the authorized user or user is to be responsible for the uncontrolled retransmission It is typically done by outputting the contents in encrypted form, the authorization information then being transmitted in the form of a password or even a "license key". This authorization information hangs then together with the key to decrypt the contents in a more or less explicit way.
Im Stand der Technik sind verschiedene Verfahren zur „program obfuscation" bekannt. Gängige Techniken zur Sicherung allgemeiner Algorithmen und belie¬ biger Computerprogramme sind unter anderem in „A Taxonomy of Obfuscating Transformations" von C. Collberg, C. Thomborson, und D. Low in Technical Re¬ port #148, Department of Computer Science, The University of Auckland, 1997 und in „Manufacturing cheap, resilient, and stealthy opaque constracts" von C. Collberg, C. Thomborson, und D. Low in 25th ACM SIGPLAN-SIGACT Sympo¬ sium on Principles of Programming Languages (POPL 98), Seiten 184-196; ACM Press beschrieben.Various techniques for "program obfuscation" are known in the art Common techniques for securing general algorithms and arbitrary computer programs are described, inter alia, in "A Taxonomy of Obfuscating Transformations" by C. Collberg, C. Thomborson, and D. Low in Technical Re- port # 148, Department of Computer Science, University of Auckland, 1997, and "Manufacturing cheap, resilient, and stealthy opaque construc- ts" by C. Collberg, C. Thomborson, and D. Low in 25 th ACM SIGPLAN®. SIGACT Symposium on Principles of Pro- gramming Languages (POPL 98), pages 184-196; ACM Press.
Spezifische Techniken zur zufälligen Transformation, insbesondere krypto- graphischer Algorithmen' werden in der Patentanmeldung WO01/31422 beschrie¬ ben.Specific techniques for random transformation, in particular cryptographic algorithms , are described in patent application WO 01/31422.
Diese im Stand der Technik bekannten Verfahren haben allerdings den Nachteil, dass der Schlüssel trotzdem noch hinreichend sichtbar ist. Darüber hinaus führen diese Verfahren zu einer Vergrößerung des Codes und damit auch zu einer Ver¬ schlechterung des Laufzeitverhaltens und einer Verschlechterung der Speicheref¬ fizienz.However, these known in the prior art method have the disadvantage that the key is still sufficiently visible. In addition, these methods lead to an enlargement of the code and thus to a deterioration of the transit time behavior and a deterioration of the storage efficiency.
Die Aufgabe der vorliegenden Erfindung ist es daher ein Verfahren bereitzustellen mit dem Schlüssel auf einfache und sichere Weise in Computeranwendungen mit kryptographischer Funktionalität eingebunden werden können ohne dass die oben beschriebenen Nachteile auftreten. Durch die Verwendung des Verfahrens sollen Schlüssel insbesondere bei den Computeranwendungen mit integriertem symmet¬ rischen Verschlüsselungsalgorithmus geschützt werden, bei denen mindestens ein Schlüssel Teil des Programmcodes ist und dieser Programmcode nicht in einer
geschützten Umgebung, beispielsweise einer separaten Hardwareumgebung ent¬ halten ist.The object of the present invention is therefore to provide a method with the key in a simple and secure manner in computer applications with cryptographic functionality can be integrated without the disadvantages described above occur. The use of the method is intended to protect keys, in particular in computer applications with an integrated symmetric encryption algorithm, in which at least one key is part of the program code and this program code is not contained in one protected environment, for example, a separate hardware environment is ent.
Erfindungsgemäß wird diese Aufgabe durch eine Verfahren zum Verbergen min- destens eines Schlüssels in einem Verschlüsselungsalgorithmus zum Verschlüs¬ seln von Daten gelöst, wobei das Verfahren folgende Schritte aufweist: Aufteilen mindestens eines Teils des Verschlüsselungsalgorithmus mit dem mindestens ei¬ nen Schlüssel in elementare Operationen und Ersetzen mindestens einer elementa¬ ren Operation durch eine auf der Grundlage einer invertierbaren Funktion gebilde- te äquivalente elementare Operation.According to the invention, this object is achieved by a method for concealing at least one key in an encryption algorithm for encrypting data, the method having the following steps: splitting at least a part of the encryption algorithm with the at least one key into elementary operations and replacing of at least one elementary operation by an equivalent elementary operation formed on the basis of an invertible function.
Mit Hilfe dieses erfmdungemäßen Verfahrens wird es ermöglicht einen in eine Verschlüsselungsfunktion eingebetteten Schüssel zu verbergen, indem dieser mit den elementaren Operationen der Verschlüsselungsfunktion und den Elementen einer invertierbaren Funktion zu einer Einheit verschmolzen wird, die nach derzei¬ tiger Kenntnis von einem Unberechtigten mit systematischen Ansätzen nicht wie¬ der aufgelöst werden kann.With the aid of this method according to the invention, it is possible to conceal a key embedded in an encryption function by merging it with the elementary operations of the encryption function and the elements of an invertible function to form a unit that does not have the systematic knowledge of an unauthorized person with systematic approaches wie¬ can be resolved.
Im Rahmen der vorliegenden Erfindung bezeichnet der Begriff Schlüssel jegliche Information, die von einem Unberechtigten in vorteilhafter Weise genutzt werden könnte und deshalb gegen Ermittlung durch einen Unberechtigten geschützt wer¬ den soll. Dieser Schlüssel wird erfindungsgemäß mit einem Verschlüsselungsal¬ gorithmus verwendet. Hierbei handelt es sich um jegliche Funktion, die den Schlüssel bestimmungsgemäß verwendet. Ein Beispiel hierfür ist eine Funktion, die die Richtigkeit des Schlüssels überprüft.In the context of the present invention, the term "key" denotes any information that could be used by an unauthorized person in an advantageous manner and should therefore be protected against being determined by an unauthorized person. This key is used according to the invention with an encryption algorithm. This is any function that uses the key as intended. An example of this is a function that verifies the correctness of the key.
Erfindungsgemäß wird der Verschlüsselungsalgorithmus mit dem Schlüssel in einem ersten Schritt in elementare Operationen zerlegt. Grundsätzlich können alle Algorithmen in eine Komposition von Einzeloperationen zerlegt werden, wobei jede Einzeloperation einen Schritt des Algorithmus abarbeitet. Ein Beispiel für eine Einzeloperation ist eine Veränderung einer Komponente der dem Verschlüs-
selungsalgorithmus zugeführten Information mit Hilfe einer bestimmten Funktion. Gemäß dieser Funktion kann beispielsweise zu einer Komponente der zugeführten Information ein bestimmter Betrag addiert werden. Einzeloperationen bei denen nur eine Komponente verändert wird werden als elementare Operationen bezeich- net.According to the invention, the encryption algorithm with the key is decomposed in a first step into elementary operations. Basically, all algorithms can be decomposed into a composition of individual operations, each individual operation executing one step of the algorithm. An example of a single operation is a change in a component of the encryption selungsalgorithmus supplied information using a specific function. According to this function, for example, a certain amount may be added to a component of the supplied information. Single operations in which only one component is changed are called elementary operations.
Nach der Aufteilung mindestens eines Teils des Verschlüsselungsalgorithmus in elementare Operationen, wird erfmdungsgemäß mindestens ein Teil dieser ele¬ mentaren Operationen durch sogenannte äquivalente elementare Operationen er- setzt. Im Rahmen der vorliegenden Erfindung werden diese äquivalenten elemen¬ taren Operationen auf der Grundlage einer invertierbaren Funktion gebildet. Hier¬ durch werden die Zwischenergebnisse der elementaren Operationen maskiert, das heißt verdeckt. Dieser Schritt wird auch als Transformation bezeichnet. Diese invertierbare Funktion kann beliebig gewählt werden. Die invertierbare Funktion wird vorzugsweise zufällig aus der Menge der 1*2*...*256 verschiedenen inver¬ tierbaren Funktionen gewählt.After the division of at least part of the encryption algorithm into elementary operations, according to the invention at least a part of these elementary operations is replaced by so-called equivalent elementary operations. In the context of the present invention, these equivalent elementary operations are formed on the basis of an invertible function. In this way, the intermediate results of the elementary operations are masked, ie hidden. This step is also called transformation. This invertible function can be chosen arbitrarily. The invertible function is preferably selected randomly from the set of 1 * 2 *... * 256 different inveratable functions.
Mit Hilfe dieses Verfahrens kann auf einfache Weise ein Schlüssel in einem Ver¬ schlüsselungsalgorithmus verdeckt beziehungsweise maskiert werden. Das Erset- zen von einzelnen elementaren Operationen durch entsprechende äquivalente e- lementare Operationen kann ohne größeren Aufwand ermöglicht werden. Durch dieses Ersetzen wird allerdings das Auffinden des Schlüssels in dem Verschlüsse¬ lungsalgorithmus wesentlich erschwert. Dies ermöglicht eine Beschränkung der Weitergabe eines entsprechenden Programms oder einer entsprechenden Datei auf die vom Urheber des Programms oder der Daten erlaubte Form. Erreicht wird dadurch auch eine robuste Individualisierung des Codes und somit die potentielle Nachverfolgbarkeit bei illegitimer Weiterverbreitung.With the aid of this method, a key can be concealed or masked in a simple manner in an encryption algorithm. The replacement of single elementary operations with equivalent equivalent elementary operations can be accomplished without much effort. However, this replacement makes it much more difficult to find the key in the encryption algorithm. This makes it possible to restrict the transmission of a corresponding program or file to the form permitted by the originator of the program or data. This also achieves a robust individualization of the code and thus the potential traceability in the event of illegitimate retransmission.
Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird die äquivalente elementare Operation durch eine Verkettung der elementaren Opera¬ tion mit der invertierbaren Funktion und der Invertierten der invertierbaren Funk-
tion gebildet. Hierbei handelt es sich um eine besonders einfache, aber auch effek¬ tive Bildung der äquivalenten elementaren Operationen.According to a preferred embodiment of the present invention, the equivalent elementary operation is performed by concatenating the elementary operation with the invertible function and the inverted invertible radio frequency. formed. This is a particularly simple, but also effective formation of the equivalent elementary operations.
Vorzugsweise wird nach der Bildung der äquivalenten elementaren Operationen die Verkettung aller elementaren Operationen — mit den äquivalenten elementaren Operationen an den Stellen, wo sie vorher ersetzt wurden - noch einmal mit der invertierbaren Funktion verkettet. Durch diese erneute Verkettung mit der inver¬ tierbaren Funktion wird ein Algorithmus bereitgestellt, mit dem eine entsprechen¬ de Anwendung auf einfache Weise das Vorhandensein des richtigen Schlüssels überprüfen kann, ein Unberechtigter aber keine Informationen über den Schlüssel an sich erlangen kann.Preferably, after the formation of the equivalent elementary operations, the concatenation of all elementary operations-with the equivalent elementary operations at the locations where they were previously replaced-is concatenated once more with the invertible function. This reconnection with the inveratable function provides an algorithm with which a corresponding application can easily check the presence of the correct key, but an unauthorized person can not obtain information about the key per se.
Gemäß einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung werden die äquivalenten elementaren Operation mit Hilfe von Wertetabellen ge- bildet. In einer weiter bevorzugten Ausführungsform werden die äquivalenten elementaren Operationen schrittweise mit Hilfe von Projektionen gebildet.According to a further preferred embodiment of the present invention, the equivalent elementary operation is formed by means of value tables. In a further preferred embodiment, the equivalent elementary operations are formed stepwise by means of projections.
Die Sicherheit des Verfahrens kann gemäß einer weiter bevorzugten Ausfüh¬ rungsform weiter erhöht werden, indem nach dem Aufteilen mindestens eines Teils des Verschlüsselungsalgorithmus mit mindestens einem Schlüssel in ele¬ mentare Operationen mindestens zwei aufeinander folgende elementare Operatio¬ nen zu einer neuen elementaren Operation verbunden werden. Im Rahmen dieser bevorzugten Ausfuhrungsform werden dann in dem danach folgenden Ersetzen- Schritt auch die neuen elementaren Operation durch entsprechende äquivalente elementare Operationen ersetzt.In accordance with a further preferred embodiment, the security of the method can be further increased by connecting at least two successive elementary operations to a new elementary operation after dividing at least part of the encryption algorithm by at least one key into elementary operations. In the context of this preferred embodiment, in the subsequent replacement step, the new elementary operation is then replaced by corresponding equivalent elementary operations.
Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird die Verkettung aus elementaren Operationen, äquivalenten elementaren Operationen und der invertierbaren Funktion an einer sicheren, d.h. an einer geschützten Stelle gebildet und an eine unsichere Stelle übergeben. An der unsicheren Stelle kann aufgrund des erfmdungsgemäßen Verfahren nicht mehr auf den Schlüssel ge-
schlossen werden. Allerdings kann unter Zuhilfenahme der Invertierten der inver- tierbaren Funktion das Ergebnis aus der Anwendung des Verschlüsselungsalgo¬ rithmus auf den Schlüssel berechnet werden und dadurch eine Information über die Berechtigung erzielt werden.According to a preferred embodiment of the present invention, the concatenation of elementary operations, equivalent elementary operations and the invertible function is formed in a secure, ie protected, location and transferred to an insecure location. Due to the method according to the invention, it is no longer possible to rely on the key at the insecure point. be closed. However, with the aid of the inverted function of the invisible function, the result from the application of the encryption algorithm to the key can be calculated, and information about the authorization can thus be obtained.
Gemäß einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung kann die Sicherheit des verborgenen Schlüssels noch weiter erhöht werden, wenn der zu verarbeitende Datenvektor in zwei Vektoren aufgespalten wird. Vorzugs¬ weise werden für diese Aufspaltung zwei Projektionen - weiter bevorzugt zwei xor-lineare orthogonale Proj ektionen - verwendet.According to another preferred embodiment of the present invention, the security of the hidden key can be further increased if the data vector to be processed is split into two vectors. Preferably, two projections - more preferably two xor-linear orthogonal projections - are used for this splitting.
In einer weiteren bevorzugten Ausfuhrungsform der vorliegenden Erfindung wer¬ den symmetrische Schlüssel verwendet. Weiter bevorzugt wird der AES- Algorithmus (Advanced Encryption Standard) für die Verschlüsselung verwendet.In a further preferred embodiment of the present invention, the symmetrical key is used. More preferably, the AES algorithm (Advanced Encryption Standard) is used for the encryption.
In einer weiteren bevorzugten Ausführungsform sollen die zu übertragenden Da¬ ten an verschiedene Empfänger übertragen werden. Hierfür werden die Daten vor der Übertragung auf der Grundlage einer gemeinsamen invertierbaren Funktion transformiert. Bei jedem Empfanger wird dann eine Prätransformation mit einer invertierbaren Funktion durchgeführt, wobei diese invertierbare Funktion auf der Grundlage der Invertierten der gemeinsamen invertierbaren Funktion und einer für den Empfänger spezifischen invertierbaren Funktion beruht.In a further preferred embodiment, the data to be transmitted are to be transmitted to different receivers. For this, the data is transformed before transmission based on a common invertible function. Each receiver then performs a pre-transformation with an invertible function, this invertible function being based on the inverters of the common invertible function and a receiver-specific invertible function.
Das erfmdungsgemäße Verfahren kann in vorteilhafter Weise für das Verbergen von unterschiedlichsten Informationen verwendet werden. Ein Beispiel ist einThe inventive method can be used in an advantageous manner for the hiding of a variety of information. An example is one
Authentisierungsverfahren, bei dem die sichere Instanz, beispielsweise eineAuthentication method in which the secure instance, such as a
SmartCard, die Authentizität einer unsicheren Instanz, beispielsweise einer SetSmartCard, the authenticity of an insecure instance, such as a set
Top Box verifiziert. In diesem Fall kann die Verifikation mit Hilfe eines Challen- ge-Response- Verfahrens, insbesondere mit einem symmetrischen Verschlüsse- lungsalgorithmus erfolgen. In anderen Beispielen wird das erfindungsgemäße
Verfahren zum Übertragen von Lizenzdaten oder zum Aufbau eines individuellen Kommunikationskanals mit Rückkanal zwischen zwei Instanzen verwendet.Top box verified. In this case, the verification can be carried out with the aid of a challenge-response method, in particular with a symmetric encryption algorithm. In other examples, the invention Method for transmitting license data or establishing an individual communication channel with return channel used between two instances.
Im folgenden werden bevorzugte Ausführungsformen der vorliegenden Erfindung beispielhaft anhand der beiliegenden Figuren beschrieben, wobeiIn the following, preferred embodiments of the present invention will be described by way of example with reference to the accompanying drawings, wherein
Figur 1 in einem Flussdiagramm die Anwendung einer ersten Ausführungs¬ form des erfindungsgemäßen Verfahrens veranschaulicht, undFIG. 1 shows in a flowchart the application of a first embodiment of the method according to the invention, and
Figur 2 in einem Flussdiagramm die Anwendung einer zweiten Ausfüh¬ rungsform des erfmdungsgemäßen Verfahrens veranschaulicht.FIG. 2 illustrates in a flow chart the application of a second embodiment of the method according to the invention.
In dem im Zusammenhang mit Figur 1 beschriebenen Ausführungsbeispiel wird ein Verschlüsselungsalgorithmus Eκ(x) mit einem darin fest eingebetteten Schlüs- sei K und ein entsprechendes Entschlüsselungsverfahren Dκ(x) verwendet. In die¬ sem Beispiel basiert der Verschlüsselungsalgorithmus χ->Eκ(x) auf 8-bit- Textblöcken x=[xi,x2,...,Xk] mit einer festen Länge k. Grundsätzlich kann ein der¬ artiger Verschlüsselungsalgorithmus auch auf m-bit-Textblöcken mit variabler Länge basieren. Der in diesem Ausführungsbeispiel verwendete und in den Ver- schlüsselungsalgorithmus eingebettete Schlüssel K hat ebenfalls die Form eines 8- bit-Datenvektors K=[K1,...., Kκiength]- Der Entschlüsselungsalgorithmus Dκ(x) wird entsprechend gebildet.In the exemplary embodiment described in connection with FIG. 1, an encryption algorithm Eκ (x) with a key K firmly embedded therein and a corresponding decryption method Dκ (x) are used. In this example, the encryption algorithm χ-> Eκ (x) is based on 8-bit text blocks x = [xi, x 2 ,..., X k ] with a fixed length k. In principle, a similar encryption algorithm can also be based on m-bit text blocks with variable length. The key K used in this embodiment and embedded in the encryption algorithm likewise has the form of an 8-bit data vector K = [K 1 ,..., K kieng t h] - The decryption algorithm Dκ (x) is formed accordingly.
In dem vorliegenden Ausführungsbeispiel wird der Verschlüsselungsalgorithmus x-^ Eκ(x) in einem ersten Schritt in eine logische KompositionIn the present embodiment, the encryption algorithm x- ^ Eκ (x) in a first step in a logical composition
Eκ(x)= (E„tot° Ent0t-1 o....° E1)(X)Eκ (x) = (E " tot ° E nt0t-1 o .... ° E 1 ) (X)
von Einzeloperationen Ei(x) (ntot ist hier die Gesamtzahl der Operationen) zer- legt, wie in Figur 1 dargestellt ist. Die Einzeloperationen E1 können beispielswei¬ se zu einer der folgenden vier Klassen Kl, K2, K3 oder K4 gehören:
Kl : Veränderung der Komponente des Vektors x=[x \ ,x2, ...xj an der Position j :of single operations Ei (x) (where ntot is the total number of operations), as shown in FIG. The individual operations E 1 can, for example, belong to one of the following four classes K1, K2, K3 or K4: Kl: change of the component of the vector x = [x \ , x 2 , ... xj at the position j:
Die Abbildung F(x) könnte dabei beispielsweise durch eine Wertetabelle gege¬ ben sein.The image F (x) could be given by a value table, for example.
K2: Permutation der Komponenten des Vektors x=[xi,X2,...Xk]:K2: Permutation of the components of the vector x = [xi, X2, ... Xk]:
K3: Ersetzen einer Komponente des Vektors x=[xi,x2,...Xk] an der Position j durch die XOR-Summe Xjθki', wobei ki' eine byte-Komponente eines von dem eigentlichen Schlüssel K abgeleiteten Schlüssels F(K) ist:K3: replacing a component of the vector x = [xi, x 2, ... x k] at the position j by the XOR sum X j θki ', where k' is a component of a byte-derived from the actual key K key F (K) is:
K4: Ersetzen einer Komponente des Vektors x=[xi,X2,...Xk] an der Position j durch die XOR-Summe XJΘXJ, wobei i≠j gilt:K4: replacing a component of the vector x = [xi, X2, ... X k] at the position j by the XOR sum XJΘXJ, where i ≠ j where:
[xi,x2,...,xk]-^ y=[xi,...,Xjθxi,...,xk][xi, x 2 , ..., x k ] - ^ y = [xi, ..., X j θxi, ..., x k ]
Die Einzeloperationen der Klassen Kl, K3 und K4 wirken jeweils nur auf eine Komponente des Datenvektors x und können daher als elementar angesehen werden. Diese elementaren Operationen sind unabhängig von der gewählten Programmiersprache der Implementierung.
Erfindungsgemäß wird der Verschlüsselungsalgorithmus Eκ(x) zumindest teilwei¬ se in eine Komposition aus elementaren Operationen Ei zerlegt. Dabei stammt im vorliegenden Ausfuhrungsbeispiel jede der elementaren Operationen Ei aus einer der Klassen Kl, K3 oder K4.The individual operations of classes Kl, K3 and K4 each act on only one component of the data vector x and can therefore be regarded as elementary. These elementary operations are independent of the chosen implementation programming language. According to the invention, the encryption algorithm Eκ (x) is at least partially decomposed into a composition of elementary operations Ei. In the present exemplary embodiment, each of the elementary operations Ei originates from one of the classes K1, K3 or K4.
In dem nächsten in Figur 1 gezeigten Schritt werden die Zwischenergebnisse der Einzeloperationen auf der Grundlage einer invertierbaren Funktion maskiert. Die entsprechende invertierbare Funktion S und die Invertierte der invertierbaren Funktion S"1 wird hierfür gebildet oder ausgewählt und für die Transformation bereitgestellt.In the next step shown in Figure 1, the intermediate results of the single operations are masked based on an invertible function. The corresponding invertible function S and the inverse of the invertible function S "1 are formed or selected for this purpose and provided for the transformation.
In einer bevorzugten Ausführungsform wird die invertierbare Funktion aufgrund von kryptographischen Anforderungen derart gewählt, dass sie möglichst mit den gegebenen festen Abbildungen des Algorithmus unverträglich ist. Dies kann be- deuten, daß es keine gemeinsamen Bahnen unter allen diesen Abbildungen gibt, keinen gemeinsamen Fixpunkte u.a.. Diese Bedingungen lassen sich leicht über¬ prüfen und schränken den Raum der potentiellen S nur minimal(st) ein.In a preferred embodiment, the invertible function is selected on the basis of cryptographic requirements such that it is as incompatible with the given fixed images of the algorithm. This may mean that there are no common paths among all these mappings, no common fixed points, and the like. These conditions can easily be overestimated and restrict the space of the potential S only minimally (st).
Aus Gründen der Codekomplexität und vor allem der Performanz des transfor- mierten Codes wird vorzugsweise eine parallele Maskierung verwendet, bei der vorzugsweise alle Komponenten der ZwischenwertvektorenFor reasons of code complexity and above all of the performance of the transformed code, parallel masking is preferably used, in which case preferably all components of the intermediate value vectors
Xm= (Em o...oEi)(x)=[xm;i,xm>2,...,xm)k]X m = (E m o ... o Ei) (x) = [x m; i, x m> 2 , ..., x m) k ]
komponentenweise transformiert werden.be transformed component by component.
Das verwendete Transformationsverfahren beruht auf dem abstrakten Prinzip, einen Algorithmus E, dessen elementare Operationen Ej aus den Klassen Kl, K3 und K4 stammen, unter Verwendung einer zufällig erzeugten konstanten diagona- len Transformation der Form
[xbx2;....xk] "> [S(X1), S2(X2) ,..., Sk(xk)]The transformation method used is based on the abstract principle, an algorithm E whose elementary operations Ej derive from the classes Kl, K3 and K4, using a randomly generated constant diagonal transformation of the form [x b x 2; .... x k ] "> [S (X 1 ), S 2 (X 2 ), ..., S k (x k )]
in einen äquivalenten Algorithmus zu transformieren, bei dem die elementaren Operationen Ei aus den Klassen Kl, K3 und K4 zumindest teilweise durch von der invertierbaren Funktion S abhängige Operationen Ej1S^S0Ej 0S"1 ersetzt werden. Die Faktorisierung des gesamten Algorithmusinto an equivalent algorithm, in which the elementary operations Ei from the classes K1, K3 and K4 are at least partially replaced by operations E j1 S S 0 E j 0 S -1 which are dependent on the invertible function S. The factorization of the entire algorithm
wird dabei durch die Faktorisierungis doing so by factoring
Eκ(x):= (S"1 ° (Entot,s'0...0E1>s')0 S)(x)Eκ (x): = (S "1 ° (E ntot , s ' 0 ... 0 E 1> s ') 0 S) (x)
ersetzt, wobei Ei)S' = S0E1 0S"1 gilt.where Ei ) S '= S 0 E 1 0 S "1 .
Im vorliegenden Ausfuhrungsbeispiel werden bei der Transformation des Algo¬ rithmus die vier Operationen Kl bis K4 durch die folgenden vier Transformatio¬ nen Kl5 bis K4s ersetzt. Diese Transformationen beruhen auf einer zufällig ge¬ wählten invertierbaren Funktion S, die beispielsweise auf 8 -bit- Vektoren basieren kann. Dadurch ergeben sich die folgenden Klassen KIs bis K4s:In the present exemplary embodiment, the algorithm Algo¬ the four operations Kl to K4 by the following four Transformatio¬ NEN Kl 5 to be replaced by K4s in the transformation. These transformations are based on a randomly chosen invertible function S, which can be based, for example, on 8-bit vectors. This results in the following classes KIs to K4s:
KIs: Veränderung der Komponente des Vektors X=[X19X251115Xk] an der Position j:KIs: Change of the component of the vector X = [X 19 X 251115 Xk] at the position j:
[xbx2,..,xk]->[xlv.., SFS^(Xj)51115Xk][x b x 2 , .., x k ] -> [x lv .., SFS ^ (Xj) 51115 Xk]
K2s: Permutation der Komponenten des Vektors x=[xi,X2,...,Xk]:K2s: permutation of the components of the vector x = [xi, X 2 , ..., X k ]:
K3s: Ersetzen einer Komponente des Vektors x=[xl5x2,...,Xk] an der Position j durch die XOR-Summe mit einer von dem Schlüssel abgeleiteten Kom¬ ponente : K3s: replacement of a component of the vector x = [x l5 x 2 ,..., Xk] at the position j by the XOR sum with a component derived from the key:
[xiÄ_,-,Xk]-^y=[xi,..., Gs,k(Xj),.--,Xk][xiÄ _, -, X k] - ^ y = [xi, ..., G s, k (X j), .--, X k]
mit GS)k(x)= S(S'1 (x)with G S) k (x) = S (S '1 (x)
K4s: Ersetzen einer Komponente des Vektors x=[xi,x2,...,Xk] an der Position j durch die Summe dieser Komponente mit einer weiteren Komponente:K4s: replacing a component of the vector x = [xi, x 2, ..., X k] at the position j by the sum of this component with another component:
[x1,x2,...,xk]->y=[xi)...,Fs(xjθxi), ...,xk][x 1 , x 2 , ..., x k ] -> y = [xi ) ..., Fs (x j θx i ), ..., x k ]
Die Transformation hat insbesondere die Eigenschaft, dass die schlüsselabhängi¬ gen Operationen aus Klasse K3, also der Form
durch Tabellenoperatio¬
In particular, the transformation has the property that the key-dependent operations from class K3, that is, the form by table operation
ersetzt werden. Weiter wird die elementare Operation F(x,y)->xθy, die den Ope¬ rationen aus Klasse K4 zugrunde liegt ersetzt durch eine transformierte Operation der Formbe replaced. Furthermore, the elementary operation F (x, y) -> xθy, which underlies the operations of class K4, is replaced by a transformed operation of the form
Fs(x,y)-*S(S-ιxθ S-'y) •F s (x, y) - * S (S- ι xθ S -'y) •
Die Implementierung der Operation Fs(x,y) erfolgt dabei im vorliegenden Aus¬ führungsbeispiel über eine Funktionstabelle, nicht aber unter expliziter Verwen- düng der Abbildungen S und S"1 gemäß der Definition von Fs(x,y). Im vorliegen-
den Ausführungsbeispiel hat dabei die Operation (x,y)->Fs(x,y) eine Tabelle mit 2l6=65536 Byte-Werten, die Operation x->Gs,k(x) eine Tabelle mit 256 Byte- Werten.In the present embodiment, the operation Fs (x, y) is implemented via a function table, but not with explicit use of the diagrams S and S "1 according to the definition of Fs (x, y). In the embodiment, the operation (x, y) -> Fs (x, y) has a table with 2 l6 = 65536 byte values, the operation x-> G s , k (x) a table with 256 byte values.
Bei den Operationen aus der Klasse K2 sind die Abbildungen, welche die Kom¬ ponenten von x permutieren, mit diagonalen Abbildungen der Komponenten ver¬ tauschbar, weil alle Komponenten mit demselben S transformiert werden. Deshalb müssen diese Einzeloperationen nicht mehr explizit transformiert werden.In the operations of class K2, the mappings which permute the components of x are interchangeable with diagonal mappings of the components, because all components are transformed with the same S. Therefore, these individual operations no longer need to be explicitly transformed.
Die Prä- und die Posttransformationen S und S"1 können in derselben Rechenum¬ gebung ausgeführt werden wie die transformierten Einzeloperationen Ei1S'. Im vorliegenden Ausführungsbeispiel wird aber zumindest die Prätransformation in einer sicheren Rechenumgebung ausgeführt, die Posttransformation S"1 wird da¬ gegen in einer davon getrennten und potentiell unsicheren Umgebung stattfinden. Dieses Beispiel wird im folgenden anhand von Figur 1 weiter erläutert. .The pre- and post-transformations S and S "1 can be executed in the same computing environment as the transformed individual operations Ei 1S ." In the present exemplary embodiment, however, at least the pre-transformation is carried out in a secure computing environment, the post-transformation S "1 is counteracted take place in a separate and potentially unsafe environment. This example will be further explained below with reference to FIG. ,
Wie oben erläutert, maskiert die sichere kryptographische Instanz A die Ver¬ schlüsselungsfunktion Eκ(x) auf der Grundlage der invertierbaren Funktion S. Das Ergebnis dieser Maskierung wird in Figur 1 mit (Eκ,s(x)) bezeichnet. Die zu ver- schlüsselnde Information x wird dann in einem nächsten Schritt mit Hilfe der in¬ vertierbaren Funktion S prätransformiert. Im in Figur 1 dargestellten Ausfüh¬ rungsbeispiel wird diese Prätransformation von der Instanz A durchgeführt. Alter¬ nativ kann die Prätransformation allerdings auch von der Instanz B durchgeführt werden. Im vorliegenden Ausführungsbeispiel wird die prätransformierte Infor- mation y dann an die Instanz B übermittelt, die als Nachrichtenempfänger die In¬ formation unter Verwendung der Invertierten der invertierbaren Funktion und dem in der Instanz A maskierten Entschlüsselungsalgorithmus DK wieder rekon¬ struiert. Mit Hilfe dieser Verschlüsselung und Maskierung kann der verwendete Schlüssel, der beispielsweise als Berechtigungsinformation auf Seiten von B fun- giert, vor potentieller mißbräuchlicher Verwendung durch B beziehungsweise durch Dritte geschützt werden. Aufgrund der Maskierung der Entschlüsselungs-
-43 -As explained above, the secure cryptographic entity A masks the encryption function Eκ (x) on the basis of the invertible function S. The result of this masking is denoted by (Eκ, s (x)) in FIG. The information x to be encrypted is then pre-transformed in a next step with the aid of the invertible function S. In the exemplary embodiment shown in FIG. 1, this pre-transformation is performed by instance A. Alternatively, however, the pre-transformation can also be performed by instance B. In the present exemplary embodiment, the pre-transformed information y is then transmitted to the entity B, which reconstructs the information as message receiver using the inverted functions of the invertible function and the decryption algorithm D K masked in the instance A. With the aid of this encryption and masking, the key used, which for example functions as authorization information on the side of B, can be protected against potential misuse by B or by third parties. Due to the masking of the decryption -43 -
funktion Dκ(x) durch die Instanz A auf der Grundlage der invertierbaren Funktion S und dem Schlüssel K, ist eine Rekonstruktion von der invertierbaren Funktion S und damit auch von dem Schlüssel K für B nicht direkt möglich.function Dκ (x) by the instance A on the basis of the invertible function S and the key K, a reconstruction of the invertible function S and thus also of the key K for B is not directly possible.
Eine noch größere Sicherheit kann erzielt werden, wenn die Rücktransformation mit Hilfe der Invertierten der invertierbaren Funktion S" nicht in B 's Umgebung, sondern in einer sicheren beziehungsweise vor B's Zugriff geschützten Rechen¬ umgebung ausgeführt wird. Wenn dies nicht möglich ist, sollte die Rücktransfor¬ mation selbst geeignet verschleiert beziehungsweise transformiert werden.An even greater certainty can be achieved if the inverse transformation is carried out with the aid of the inverters of the invertible function S " not in B 's environment but in a secure computing environment protected from B' s access Rücktransfor¬ mation itself be suitably veiled or transformed.
In einer Ausführungsform der vorliegenden Erfindung wird die unter Verwendung der invertierbaren Funktion transformierte binäre Operation xθy nicht durch die volle Wertetabelle der FunktionIn one embodiment of the present invention, the binary operation xθy transformed using the invertible function does not pass through the full value table of the function
Fs(x,y)-»S(S-1xeS-ly)Fs (x, y) - »S (S -1 xeS -l y)
beschrieben. Im Rahmen dieser Ausführungsform erfolgt die Berechnung schritt¬ weise durch Projektionen und ist dadurch bezüglich des benötigten Speicherbe¬ darfs effizienter. Dies kann beispielsweise durch zwei orthogonale xor-lineare Projektionen ^r1 und pr2 vom Rang 4 (d.h. mit jeweils 16 Bildwerten) erfolgen. Diese haben dann die folgenden Eigenschaften:described. In the context of this embodiment, the calculation takes place stepwise by means of projections and is therefore more efficient with respect to the required memory requirement. This can be done, for example, by two orthogonal xor-linear projections ^ r 1 and pr 2 of rank 4 (ie each with 16 image values). These then have the following properties:
• pn(x)θρr2(x)=x• pn (x) θρr 2 (x) = x
Durch eine Transformation unter Verwendung der invertierbaren Funktion erhält man die folgenden beiden Abbildungen: pr1>s(x)= (S0Pr1 0S^)x= S(Pn(S"1 x)) undA transformation using the invertible function gives the following two mappings: pr 1> s (x) = (S 0 Pr 1 0 S ^) x = S (Pn (S "1 x)) and
Pr218(X)= (S0Pr2 0S-V
Die Berechnung der Abbildung Fs(x,y)=S(S"1xΘS"1y) kann dann durch die Kom¬ position der fünf AbbildungenPr 218 (X) = (S 0 Pr 2 0 SV The computation of the map Fs (x, y) = S (S "1 x S " 1 y) can then be determined by the position of the five maps
Fs,i: (x,y)->(x',y')=(ρr1,s(x), pr1>s(y))Fs, i: (x, y) -> (x ', y') = (ρr 1 , s (x), pr 1> s (y))
Fs,2: (x',y')->Fs(x',y'):=x1=S(prI(S-1x®S-1y)) Fs,3: (x,y)->(x"5y")=(pr2)S(x), ρr2js(y))F s , 2 : (x ', y') -> F s (x ', y'): = x 1 = S (pr I (S- 1 x ® S- 1 y)) F s , 3 : ( x, y) -> (x " 5 y") = (pr 2) S (x), ρr 2j s (y))
FS;4: (X",y")->Fs(x",y")-X2=S(pr2(S-1xΘS-1y))F S; 4: (X ", y") -> F s (x ", y") - X2 = S (pr 2 (S- 1 xΘS- 1 y))
FS)5: (xbx2)->Fs(xi,x2)=S(S-1xΘS-1y)=Fs(x,y)F S) 5 : (x b x 2 ) -> F s (x i, x 2 ) = S (S- 1 x S -1 y) = F s (x, y)
ausgeführt werden. Die Berechnung der Teilabbildixngen Fs)2 oFs;1 und Fs,4°Fs>3 erfolgt dabei am sinnvollsten über zwei Tabellen (von jeweils 3*256 Bytes oder auch 256 24-bit-Größen je nach Implementierung), welche die Funktionswerte der Abbildung Fs(x',y')5 eingeschränkt auf die Graphen Gri= {(x '^'^(pri^x), Pri,s(y))} und
pr2)s(y))} speichert. Die jeweils 16*16 Werte der Form (pr1;s(x), pi\s(y)) werden dabei zweckmäßig geordnet gespeichert und das Argument innerhalb der Tabelle dann durch binäre Suche berechnet. Ähnlich wird mit der Abbildung Fs)5(x,y) verfahren. Damit sind insgesamt für die Berech¬ nung von FS(x,y) statt einer großen Tabelle mit 65Kbytes nur 3 Tabellen der Grö¬ ße 3*256 byte und zwei weitere Tabellen der Größe 256 byte (für die Abbildun¬ gen x->pri,S(x)) nötig, insgesamt also 2816 bytes. Unter Ausnutzung der Sym- metrie der Abbildungen FS,2 und FS,4 kann dies noch weiter reduziert werden.be executed. The calculation of the subimage sets Fs ) 2 o Fs ; 1 and Fs, 4 ° Fs > 3 is made most meaningfully by two tables (each of 3 * 256 bytes or even 256 24-bit variables depending on the implementation), which determine the functional values of the Figure Fs (x ', y') 5 restricted to the graphs Gri = {(x '^' ^ (pri ^ x), P r i, s (y))} and pr 2) s (y))} stores. The respective 16 * 16 values of the form (pr 1; s (x), pi \ s (y)) are stored in an appropriate order and the argument within the table is then calculated by binary search. Similarly, the figure Fs ) 5 (x, y) is moved. Thus, in total for the calculation of FS (x, y), instead of a large table of 65Kbytes, only 3 tables of size 3 * 256 bytes and two further tables of size 256 bytes (for the pictures x-> pri , S (x)), for a total of 2816 bytes. By taking advantage of the symmetry of Figures FS, 2 and FS, 4 this can be further reduced.
In dem vorliegenden Ausführungsbeispiel wird die Komplexität der Verschmel¬ zung und damit die Verdeckung des Schlüssels noch weiter erhöht, in dem zwei Operationen der Klassen Kl (x;i^F(xii)) und K4 (XJ2->XJ2ΘXJ) mit zusammenfal- lenden Indizes il und i2 direkt hintereinander ausgeführt und zu einer neuen Ele¬ mentaroperation einer der drei TypenIn the present exemplary embodiment, the complexity of the merger, and thus the concealment of the key, is increased still further, in that two operations of the classes K1 (x; i ^ F (xii)) and K4 (XJ 2 -> XJ 2 ΘXJ) coinciding indices il and i2 are executed directly after one another and to a new elementary operation of one of the three types
K14i: xii">F(xu)Φ xj K142: XiI-^xn θ F(Xj)
verschmolzen werden. Ähnlich kann mit Operationen der Klasse K3 verfahren werden. Wenn beispielsweise in allen Operationen des Algorithmus der Klasse Kl dieselbe Funktion F(x) verwendet wird und der Algorithmus in eine Komposi¬ tion von Abbildungen der Klassen K14;, i=l,...,3 und K3, K2 zerlegt werden kann, dann kann die Konjugation unter Verwendung der invertierbaren Funktion S di¬ rekt auf die elementaren Operationen Kl 4j angewandt werden. Dies fuhrt dann zu den Operationen
K14i: xii "> F (xu) Φ xj K14 2 : Xi I - ^ x n θ F (X j ) be merged. Similarly, operations of class K3 can be handled. If, for example, the same function F (x) is used in all operations of the class Kl algorithm and the algorithm can be decomposed into a composite of mappings of the classes K14 ;, i = 1, ..., 3 and K3, K2, then the conjugation can be applied directly to the elementary operations Kl 4j using the invertible function S. This then leads to the operations
K142S: Xu^S(S-1XiI e FS-1Xj) K143S: Xn^SF(S-1XiI e S-1Xj).K14 2S : Xu ^ S (S- 1 XiI e FS- 1 Xj) K14 3S : Xn ^ SF (S- 1 XiI e S- 1 Xj).
Alle drei Abbildungen haben die abstrakte StrukturAll three figures have the abstract structure
(x,y)->GF1,F2,F3(x,y)=Fl(F2(x)Θ F3(y))(x, y) -> G F1 , F2 , F3 (x, y) = Fl (F2 (x) Θ F3 (y))
mit drei Abbildungen Fl, F2, F3 auf 8-bit- Vektoren. Die oben skizzierte Projekti¬ onsmethode zur speichereffizienten Berechnung von
kann auch sinngemäß auf die allgemeinere Abbildung GFI,F2,F3(X5V) übertragen werden.with three maps Fl, F2, F3 on 8-bit vectors. The projection method outlined above for the memory-efficient calculation of can also be transferred analogously to the more general figure G FI , F 2, F3 (X 5 V).
In dem im Zusammenhang mit Figur 2 beschriebenen Ausführungsbeispiel kann die Anwendung der Rücktransformation auf der Grundlage der Invertierten der invertierbaren Funktion S"! als letzter Schritt in einer ungeschützten Umgebung komplett vermieden werden. Hierfür wird die oben dargestellte kryptographische Transformation des Algorithmus Eκ(x) mit einer Datenspaltung der zu verschlüs¬ selnden Daten kombiniert.In the process described in conjunction with Figure 2 embodiment, the application of the inverse transform can! Be completely avoided as the last step in an unprotected environment based on the inverse of the invertible function S ". For this, the cryptographic transformation shown above is the algorithm Eκ (x) a data splitting of the data to be encrypted combined.
Die Datenspaltung verwendet dafür wiederum vorzugsweise die bereits oben be¬ schriebene Methode unter Verwendung zweier xor-linearer orthogonaler Projekti¬ onen prt(x), pr2(x). Der zu verarbeitende Datenvektor x=[xi,x2, ,Xk] wird auf¬ gespalten in zwei VektorenFor this purpose, the data splitting again preferably uses the method already described above using two xor-linear orthogonal projections pr t (x), pr 2 (x). The data vector x = [xi, x 2 ,, X k ] to be processed is split up into two vectors
V»i pnOto), , PTi(Xk)]
und
V »i pnOto),, PTi (Xk)] and
Es werden durch die herausgebende Instanz A dabei statt einer Abbildung auf der Grundlage einer invertierbaren Funktion S zwei Abbildungen auf der Grundlage der invertierbaren Funktionen Sj und S2 erzeugt, welche jeweils auf den Bildern
als identische Abbildung wirken. Der Entschlüsselungsalgorithmus DK. wird unter Verwendung der inver¬ tierbaren Funktionen Si und S2 in seine Varianten Dκ,si und Dκ,s2 transformiert. Die kryptographische Instanz A berechnet statt y=S°Eκ(x) das PaarIn this case, instead of an image based on an invertible function S, the issuing entity A generates two images on the basis of the invertible functions Sj and S 2 which are respectively displayed on the images act as an identical picture. The decryption algorithm D K. is transformed into its variants Dκ, si and Dκ, s2 using the inveratable functions Si and S 2 . The cryptographic entity A calculates the pair instead of y = S ° Eκ (x)
(yuy2)=(SlOEκ(Xpr,l),S2 OEκ(Xpr,2)).(yuy2) = (Sl O Eκ (Xpr, I), S 2 O Eκ (Xpr, 2)).
Das Paar (yl5y2) wird dann an Instanz B übermittelt. B entschlüsselt yi und y2 zu xpi]1 und xpr>2 unter Anwendung von Dκ,si und DK1S2. Statt der (wegen der Invari¬ anzeigenschaften von Si und S2 nicht mehr erforderlichen) Anwendung von Sf bzw. S2 "1 erfolgt als letzter Schritt auf Seiten von B die Rekonstruktion des Klar¬ textes x durch die Berechnung der xor-Summe(n) der Komponenten von xpi;i undThe pair (y l5 y 2 ) is then transmitted to instance B. B decodes yi and y 2 into x pi] 1 and x pr> 2 using Dκ, si and DK 1S2 . Instead of the application of Sf or S 2 "1 (which is no longer necessary because of the invariances of Si and S 2 ), the last step on the part of B is the reconstruction of the clear text x by the calculation of the xor sum (n ) of the components of x pi; i and
Xpr,2.Xpr; 2.
Damit wird erreicht, dass die gesamte Implementierung auf Seiten von B nur die unter S auf komplexe Weise konjugierten Abbildungen der Form Fs(x,y)=S(S" 'xθS'V) und Gs1Ic(X)-S(S4XSk) verwendet. Damit wird die Qualität der „program obfuscation" weiter erhöht.Thus it is achieved that the entire implementation on the part of B only the images of the form Fs (x, y) = S (S " 'xθS ' V) and Gs 1 Ic (X) -S (S 4 XSk), which further enhances the quality of program obfuscation.
Mit Hilfe der vorliegenden Erfindung wird somit ein Verfahren bereitgestellt, mit dem ein in einen Verschlüsselungsalgorithmus eingebetteter Schlüssel verdeckt werden kann.With the aid of the present invention, a method is thus provided with which a key embedded in an encryption algorithm can be concealed.
Bei dem im folgenden beschriebenen Ausführungsbeispiel wird der bevorzugte AES-Algorithmus als Verschlüsselungsalgorithmus verwendet. AES ist aus 4 ver-
schiedenen Grundoperationen SubBytes(), AddRoundKey(), ShiftRows() und MixColumnsQ aufgebaut und operiert auf byte-Blöcken x=[xi,...,Xi6] der Länge 16. Die Operation SubBytesO operiert durchIn the embodiment described below, the preferred AES algorithm is used as the encryption algorithm. AES is made up of 4 subBytes (), AddRoundKey (), ShiftRows (), and MixColumnsQ constructs and operates on byte blocks x = [xi, ..., Xi 6 ] of length 16. The operation SubBytesO operates on
χ-»[S(xi),...,S(xi6)] χ - »[S (xi), ..., S (xi 6 )]
mit der S-Box S von AES, sie kann aus 16 sequentiellen bzw. parallelen Operati¬ onen der Klasse Kl zusammengesetzt werden, wobei F(x) durch die S-Box von AES bestimmt wird. Die Operation AddRoundKey() operiert durch xor- Additionwith the S-box S of AES, it can be composed of 16 sequential or parallel operations of the class Kl, wherein F (x) is determined by the S-box of AES. The operation AddRoundKey () operates by xor addition
x-»[x1θki ',...,xi6θki6']x - »[x 1 θki ', ..., xi6θki6']
mit Komponenten kj' eines Rundenschlüssels und ist daher aus 16 parallelen Ope¬ rationen der Klasse K3 zusammengesetzt. Die Operation ShiftRows() rotiert die Komponenten eine Zeile zyklisch, wenn der Datenvektor in Gestalt einer 4x4- Matrix (xij) mit xij =x4i+j dargestellt wird. Sie gehört also als Operation auf dem Datenvektor x zur Klasse K2. Schließlich kann auch die xor-lineare Operation MixColumns() aus geeignet iterierten Operationen der Form K2, K4 und Kl zu¬ sammengesetzt werden. Hierfür kann die sogenannte Bruhat-Zerlegung verwendet werden. Dabei werden die Multiplikationen xi-^mj*xi mit den Multiplikations¬ konstanten mj der Matrixdarstellung von MixColumnsQ durch Tabellenoperatio¬ nen der Klasse Kl implementiert. Im Falle von AES ist die einzige direkt schlüs¬ selabhängige Operation also die Operation, AddRoundKey().with components kj 'of a round key and is therefore composed of 16 parallel operations of the class K3. The operation ShiftRows () cyclically rotates the components of a line when the data vector is represented in the form of a 4x4 matrix (xij) with xij = x4i + j. It therefore belongs as an operation on the data vector x to class K2. Finally, the xor-linear operation MixColumns () can also be composed of suitably iterated operations of the form K2, K4 and Kl. For this purpose, the so-called Bruhat decomposition can be used. In this case, the multiplications xi ^ mj * xi with the multiplication constants mj of the matrix representation of MixColumnsQ are implemented by means of table operations of the class K1. In the case of AES, the only direct-key-dependent operation is the operation, AddRoundKey ().
Die direkte Anwendung der S-Box von AES bzw. ihrer Transformation unter S kann vermieden werden, wenn die transformierte Komposition der drei Abbildun¬ gen MixColumnsO, AddRoundKey() und SubBytes() (in dieser Reihenfolge) in der folgenden Weise ausgeführt wird. Die Komposition der drei Abbildungen führt für jede Byte-Komponente auf eine quaternäre (schlüsselabhängige) Opera- tion der FormThe direct application of the S-box of AES or its transformation under S can be avoided if the transformed composition of the three images MixColumnsO, AddRoundKey () and SubBytes () is executed (in this order) in the following way. The composition of the three mappings leads to a quaternary (key-dependent) operation of the form for each byte component
(x,y,z,w)-»F(MjxΘ M2y Θ M3zθ M4wθ k')
Hier ist F durch die jeweilige S-Box gegeben, die (linearen) Abbildungen Mi bis M4 entsprechen den Multiplikationen mit den 4 Multiplikationskonstanten von MixColumns(), k' ist eine Bytekomponente eines Rundenschlüssels.(x, y, z, w) - »F (MjxΘ M 2 y Θ M 3 zθ M 4 wθ k ') Here, F is given by the respective S-box, the (linear) maps Mi to M 4 correspond to the multiplications with the 4 multiplication constants of MixColumns (), k 'is a byte component of a round key.
Es werden zunächst zwei binäre OperationenThere are two binary operations
Fsi,s,kr(x,y): (X^u1=Si(MiS-1X ® M2S"]y Θki') Fsi,s,k2<z,w): (z, w)->u2=Si(M3S-1z θ M4S"'w ®k2')Fsi, s, kr (x, y): (X ^ u 1 = Si (MiS- 1 X® M 2 S "] y Θki ') F si , s , k 2 <z, w): (z, w) - > u 2 = Si (M 3 S -1 z θ M 4 S " 'w ® k 2 ')
abhängig von einer weiteren invertierbaren Abbildung Sj auf 8 -bit- Vektoren aus¬ geführt. Anschließend wird die binäre Operationdepending on a further invertible image Sj out to 8 -bit vectors out. Subsequently, the binary operation
GsI1S(Ui5U2):
UiS S1 "1 u2)Gs I1 S (Ui 5 U 2 ): UiS S 1 "1 u 2 )
berechnet. Es gilt dann
M2y @ M3z® M4W θ Iq 'Φ Ic2')calculated. It then applies M 2 y @ M 3 z M 4 W θ Iq 'Φ Ic 2 ')
Unter der Bedingung ki'θ Ic2'=k' stimmt also die Komposition mit der quaternä- ren AbbildungUnder the condition ki'θ Ic 2 '= k' the composition agrees with the quaternary image
(x y,z,w)-»F(Mix© M2y θ M3zθ M4wθ k')(xy, z, w) - »F (Mix © M 2 y θ M 3 zθ M 4 wθ k ')
überein. Alle drei Abbildungen Gs11S5 Fsi,s,kis FsI1S1Ic2' sind von der Form GFI1F21F3(X5Y)=FI (F2 (X) θ F3 (y))match. All three pictures Gs 11 S 5 Fsi, s, kis FsI 1S1 Ic 2 'are of the form G FI1F21F3 (X 5 Y) = FI (F2 (X) F3 θ (y))
und können mit Hilfe der oben beschriebenen Methode (speicher-)effizient be- rechnet werden. Die Anzahl der (schlüsselabhängigen) Tabellen der Form Fsi,s,kr bzw. Fsi,s,k2' hängt von der Anzahl der Runden des Algorithmus (in diesem Falland can be calculated efficiently (memory) using the method described above. The number of (key-dependent) Tables of Fsi, s, k r or Fsi, s, k2 'depends on the number of rounds of the algorithm (in this case
AES) und der Blocklänge .ab. Im Falle von AES mit einer Schlüssellänge von 128 bit und der Zahl der Runden=10 sind es daher 16*10(+16))=176 xor-Operationen dieser Art. Um diese effizient zu berechnen, kann die Folge der Rundenschlüssel- parameter KroUnd=(kj')j=i,...,i76 wiederum unter Verwendung zweier xor-linearer
orthogonaler Projektionen pri und pr2 in zwei Folgen
und
mit kj,i'-pri(kj') und kj;2'=ρr2(kj') in eine xor-Summe zweier Folgen mit jeweils (höchstens) 16 verschiedenen byte- Werten berechnet werden. Es werden dann alle (notwendigen) Tabellen der Form Fsi,s,ki,i und Fsi,s,ki,2 vor- ausberechnet. Die Information darüber, welches Paar von Abbildungen Fsi,s,ki,r und Fsi,s,ki,2' bei der Berechnung einer Funktion F(Mixθ IV^y θ M3zθ M4wθ k') als dreifache Komposition verwendet werden muß, wird in einer zusätzlichen Ta¬ belle (von Steuerindizes) abgespeichert.AES) and the block length .ab. In the case of AES with a key length of 128 bits and the number of rounds = 10, it is therefore 16 * 10 (+16)) = 176 xor operations of this kind. To calculate them efficiently, the sequence of round key parameters K roU nd = (kj ') j = i, ..., i76 again using two xor-linear ones orthogonal projections pri and pr 2 in two sequences and with kj, i'-p r i (kj ') and kj ; 2 '= ρr 2 (kj') into an xor sum of two sequences each having (at most) 16 different byte values. All (necessary) tables of the form Fsi, s, ki, i and dsi, s, ki, 2 are then pre-calculated. The information about which pair of mappings Fsi, s, ki, r and Fsi, s, k i, 2 'is used in the computation of a function F (Mixθ IV ^ y θ M 3 zθ M 4 wθ k') as a triple composition must be stored in an additional Ta¬ belle (tax indices).
In dieser neuen Form wird die Bestimmung der unbekannten Abbildung S und des Schlüssels K zurückgeführt auf das Problem, die projizierten Schlüsselparameter kj/, kj;2' als Teil der Abbildungen Fs^ki.i und Fsi,s,ki,2 zu identifizieren. Diese hängen wiederum von der weiteren unbekannte Abbildung Si ab. Si und S sind nicht-linear (über F) gekoppelt in der (globalen) Abbildung Gsi,s(ui,u2):
Sf1 u2). Insgesamt entsteht auf diese Weise ein analytisch nur schwer lösbares Rekonstruktionsproblem für die Werte der unbekannten Ab¬ bildung S, S] und die Werte der Rundenschlüssel ky', kjj2\In this new form, the determination of the unknown map S and the key K is attributed to the problem of identifying the projected key parameters kj /, kj ; 2 'as part of the maps Fs ^ ki.i and Fsi, s, k i, 2 , These in turn depend on the further unknown image Si. Si and S are non-linearly coupled (via F) in the (global) map Gsi , s (ui, u 2 ): Sf 1 u 2 ). In total, a reconstruction problem for the values of the unknown mapping S, S] and the values of the round keys ky ', k jj2 \ is created in this way, which is difficult to solve analytically.
In einer weiteren Ausffihrungsform wird vom Sender der maskierte Schlüssel an mehrere Empfänger gesendet. Hierfür verwendet der Sender eine globale Abbil¬ dung Sgroup für alle Empfänger, um die Daten E(x;kgroup) an die verschiedenen Empfänger zu transformieren. Auf Seiten der Empfänger werden die Daten dann zunächst mit der invertierbaren Funktion SBi'=SBioSgroup-l prätransformiert, wobei die Abbildung SBi für jeden Empfänger spezifisch ist. Wie jede invertier- bare Funktion kann dabei auch die invertierbare Funktion SBi' mit Hilfe einer Funktionstabelle implementiert werden. Danach erfolgt die Anwendung der indi¬ viduell - unter SBi - transformierten Verschlüsselungsalgorithmen D(x;kgoup;SBi). Da die Transformation Sgroup nur auf Seiten von A angewandt wird, lassen sich durch die Kenntnis der Abbildungen SBi'=SBi°Sgroup-l keine Rückschlüsse auf die eigentlich zur Erzeugung verwendeten SBi ziehen. Be¬ stimmbar sind nur die Abbildungen der Form SBi0 SBj-I= SBi '° SBj '-1, also
„Quotienten" zweier verschiedener SBi im Sinne der Komposition von Abbildun¬ gen. Durch diese Lösung wird verhindert, dass bei der Übertragung der Daten an verschiedene Empfänger das Datenvolumen der gleichzeitig (pro Zeiteinheit) zu sendenden Nachrichten zu groß wird.
In a further embodiment, the transmitter sends the masked key to a plurality of recipients. For this purpose, the sender uses a global mapping Sgroup for all receivers in order to transform the data E (x; kgroup) to the various receivers. On the receiver side, the data is then first pre-transformed with the invertible function SBi '= SBi o Sgroup-l, where the mapping SBi is specific to each receiver. Like any invertible function, the invertible function SBi 'can also be implemented using a function table. Thereafter, the application of the individual - under SBi - transformed encryption algorithms D (x, kgoup, SBi). Since the transformation sgroup is applied only on the side of A, knowledge of the maps SBi '= SBi ° Sgroup-l makes it impossible to draw any conclusions about the SBi actually used for generation. Be agreeable only the mappings of the form SBi 0 SBj-I = SBi '° SBj' -1, ie "Quotients" of two different SBi in the sense of composing images. This solution prevents the data volume of the messages (simultaneously transmitted per unit of time) from becoming too large during the transmission of the data to different receivers.