WO2006027107A1 - Method for protecting keys - Google Patents

Method for protecting keys Download PDF

Info

Publication number
WO2006027107A1
WO2006027107A1 PCT/EP2005/009134 EP2005009134W WO2006027107A1 WO 2006027107 A1 WO2006027107 A1 WO 2006027107A1 EP 2005009134 W EP2005009134 W EP 2005009134W WO 2006027107 A1 WO2006027107 A1 WO 2006027107A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
operations
elementary
function
encryption algorithm
Prior art date
Application number
PCT/EP2005/009134
Other languages
German (de)
French (fr)
Inventor
Gerd Mersmann
Hubert E. Kukla
Ingo Barth
Original Assignee
Comvenient Gmbh & Co. Kg
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Comvenient Gmbh & Co. Kg filed Critical Comvenient Gmbh & Co. Kg
Priority to DE112005001837T priority Critical patent/DE112005001837B4/en
Publication of WO2006027107A1 publication Critical patent/WO2006027107A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Definitions

  • 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.
  • 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.”
  • 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.
  • 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.
  • 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.
  • 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.
  • the encryption algorithm with the key is decomposed in a first step into elementary operations.
  • 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.
  • 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.
  • 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.
  • the equivalent elementary operation is formed by means of value tables.
  • the equivalent elementary operations are formed stepwise by means of projections.
  • 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.
  • the new elementary operation is then replaced by corresponding equivalent elementary operations.
  • 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.
  • the security of the hidden key can be further increased if the data vector to be processed is split into two vectors.
  • two projections - more preferably two xor-linear orthogonal projections - are used for this splitting.
  • the symmetrical key is used. More preferably, the AES algorithm (Advanced Encryption Standard) is used for the encryption.
  • the data to be transmitted are to be transmitted to different receivers.
  • 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.
  • the inventive method can be used in an advantageous manner for the hiding of a variety of information.
  • An example is one
  • 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.
  • the invention Method for transmitting license data or establishing an individual communication channel with return channel used between two instances.
  • FIG. 1 shows in a flowchart the application of a first embodiment of the method according to the invention
  • FIG. 2 illustrates in a flow chart the application of a second embodiment of the method according to the invention.
  • an encryption algorithm E ⁇ (x) with a key K firmly embedded therein and a corresponding decryption method D ⁇ (x) are used.
  • a similar encryption algorithm can also be based on m-bit text blocks with variable length.
  • the decryption algorithm D ⁇ (x) is formed accordingly.
  • the image F (x) could be given by a value table, for example.
  • each of the elementary operations Ei originates from one of the classes K1, K3 or K4.
  • 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.
  • 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).
  • 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 )]
  • 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:
  • the transformation has the property that the key-dependent operations from class K3, that is, the form by table operation
  • 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).
  • 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.
  • 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. ,
  • 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.
  • this pre-transformation is performed by instance A.
  • the pre-transformation can also be performed by instance B.
  • 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.
  • 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 -
  • the binary operation x ⁇ y transformed using the invertible function does not pass through the full value table of the function
  • 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:
  • Pr 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
  • 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.
  • 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
  • K14 2S Xu ⁇ S (S- 1 XiI e FS- 1 Xj)
  • K14 3S Xn ⁇ SF (S- 1 XiI e S- 1 Xj).
  • 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 ".
  • the cryptographic transformation shown above is the algorithm E ⁇ (x) a data splitting of the data to be encrypted combined.
  • 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
  • the issuing entity A 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 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 .
  • 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
  • the operation SubBytesO operates on
  • AddRoundKey () operates by xor addition
  • 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.
  • 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.
  • the only direct-key-dependent operation is the operation, AddRoundKey ().
  • 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 ).
  • 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.
  • the transmitter sends the masked key to a plurality of recipients.
  • the sender uses a global mapping Sgroup for all receivers in order to transform the data E (x; kgroup) to the various receivers.
  • 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).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Technology Law (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The invention relates to a method for concealing at least one key (k) in an encryption algorithm (Ek(x)) for encrypting data (x). To this end, the method comprises the following steps: splitting at least one part of the encryption algorithm (Ek(x)) containing the at least one key (k) into elementary operations (Ei(x)), and; replacing at least one elementary operation (Ei(x)) with an equivalent elementary operation (Ei (x)) formed on the basis of an invertible function (S).

Description

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:
Figure imgf000010_0001
Figure imgf000010_0001
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]:
Figure imgf000010_0002
Figure imgf000010_0002
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:
Figure imgf000010_0003
Figure imgf000010_0003
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
Figure imgf000012_0001
Figure imgf000012_0001
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 ]:
Figure imgf000012_0002
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 :
Figure imgf000012_0002
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 ]
Figure imgf000013_0001
Figure imgf000013_0001
Die Transformation hat insbesondere die Eigenschaft, dass die schlüsselabhängi¬ gen Operationen aus Klasse K3, also der Form
Figure imgf000013_0002
durch Tabellenoperatio¬
Figure imgf000013_0003
In particular, the transformation has the property that the key-dependent operations from class K3, that is, the form
Figure imgf000013_0002
by table operation
Figure imgf000013_0003
Figure imgf000013_0004
(x)θkj')
Figure imgf000013_0004
(X) θkj ')
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
Figure imgf000015_0001
Figure imgf000015_0001
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
Figure imgf000016_0001
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
Figure imgf000016_0001
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)
Figure imgf000016_0002
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
Figure imgf000017_0001
K14i: xii "> F (xu) Φ xj K14 2 : Xi I - ^ x n θ F (X j )
Figure imgf000016_0002
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
Figure imgf000017_0001
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
Figure imgf000017_0002
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
Figure imgf000017_0002
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
Figure imgf000018_0001
V »i pnOto),, PTi (Xk)] and
Figure imgf000018_0001
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
Figure imgf000018_0002
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 Paar
In 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
Figure imgf000018_0002
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):
Figure imgf000020_0001
UiS S1 "1 u2)
Gs I1 S (Ui 5 U 2 ):
Figure imgf000020_0001
UiS S 1 "1 u 2 )
berechnet. Es gilt dann
Figure imgf000020_0002
M2y @ M3z® M4W θ Iq 'Φ Ic2')
calculated. It then applies
Figure imgf000020_0002
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
Figure imgf000021_0001
und
Figure imgf000021_0002
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
Figure imgf000021_0001
and
Figure imgf000021_0002
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):
Figure imgf000021_0003
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 ):
Figure imgf000021_0003
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.

Claims

Patentansprüche claims
1. Verfahren zum Verbergen mindestens eines Schlüssels (k) in einem Ver¬ schlüsselungsalgorithmus (Ek(x)) zum Verschlüsseln von Daten (x), wobei das Verfahren folgende Schritte aufweist:Method for concealing at least one key (k) in an encryption algorithm (E k (x)) for encrypting data (x), the method comprising the following steps:
Aufteilen mindestens eines Teils des Verschlüsselungsalgorithmus (Ek(x)) mit dem mindestens einen Schlüssel (k) in elementare Operationen (Ej(x)) undSplitting at least part of the encryption algorithm (E k (x)) with the at least one key (k) into elementary operations (Ej (x)) and
Ersetzen mindestens einer elementaren Operation (Ej(x)) durch eine auf der Grundlage einer invertierbaren Funktion (S) gebildete äquivalente e- lementare Operation (E;'(x)).Replacing at least one elementary operation (Ej (x)) by an equivalent elementary operation (E; '(x)) formed on the basis of an invertible function (S).
2. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die äquivalente elementare Operation (E;' (x)) durch eine Verkettung der ele- mentaren Operationen (E;(x)) mit der invertierbaren Funktion (S) und der In¬ vertierten der invertierbaren Funktion (S"1) gebildet wird.2. Method according to the preceding claim, characterized in that the equivalent elementary operation (E; '(x)) is obtained by a concatenation of the elementary operations (E; (x)) with the invertible function (S) and the In¬ vertierten the invertible function (S "1 ) is formed.
3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeich¬ net, dass nach der Bildung der äquivalenten elementaren Operationen (Ej'(x)) die Verkettung aller elementaren Operationen noch einmal mit der invertierba¬ ren Funktion (S) verkettet werden.3. The method according to any one of the preceding claims, characterized gekennzeich¬ net that after the formation of the equivalent elementary operations (Ej '(x)) the concatenation of all elementary operations are again concatenated with the invertierba¬ ren function (S).
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeich¬ net, dass die mindestens eine äquivalente elementare Operation (E;' (x)) mit Hilfe von mindestens einer Tabelle gebildet wird.4. The method according to any one of the preceding claims, characterized gekennzeich¬ net, that the at least one equivalent elementary operation (E; '(x)) is formed by means of at least one table.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeich¬ net, dass die mindestens eine äquivalente elementare Operation (E; '(x)) schrittweise mit Hilfe von Projektionen gebildet wird. 5. The method according to any one of the preceding claims, characterized gekennzeich¬ net, that the at least one equivalent elementary operation (E; '(x)) is formed stepwise by means of projections.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeich¬ net, dass die zu verschlüsselnden Daten (x) in zwei Vektoren aufgespalten werden.6. The method according to any one of the preceding claims, characterized gekennzeich¬ net, that the data to be encrypted (x) are split into two vectors.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeich¬ net, dass es sich bei dem Verschlüsselungsalgorithmus (Ek(x)) um einen sym¬ metrischen Verschlüsselungsalgorithmus handelt.7. Method according to one of the preceding claims, characterized in that the encryption algorithm (E k (x)) is a symmetrical encryption algorithm.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeich- net, dass der AES-Algorithmus als Verschlüsselungsalgorithmus verwendet wird.8. The method according to any one of the preceding claims, marked thereby, that the AES algorithm is used as an encryption algorithm.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeich¬ net, dass für die verschiedenen elementaren Operationen (E;(x)) die gleiche invertierbare Funktion (S) verwendet wird. 9. The method according to any one of the preceding claims, characterized gekennzeich¬ net, that for the different elementary operations (E; (x)), the same invertible function (S) is used.
PCT/EP2005/009134 2004-09-07 2005-08-24 Method for protecting keys WO2006027107A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE112005001837T DE112005001837B4 (en) 2004-09-07 2005-08-24 Method for protecting keys

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200410043243 DE102004043243A1 (en) 2004-09-07 2004-09-07 Method for protecting keys
DE102004043243.0 2004-09-07

Publications (1)

Publication Number Publication Date
WO2006027107A1 true WO2006027107A1 (en) 2006-03-16

Family

ID=35240950

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/009134 WO2006027107A1 (en) 2004-09-07 2005-08-24 Method for protecting keys

Country Status (2)

Country Link
DE (2) DE102004043243A1 (en)
WO (1) WO2006027107A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001031422A2 (en) * 1999-10-25 2001-05-03 Cyphermanx Consultants Limited Method for protection against analysis of unintended side-channel signals
EP1263163A1 (en) * 2001-05-31 2002-12-04 Sagem SA Method based on a block ciphering algorithm with round repetition and system for implementing said method
FR2850811A1 (en) * 2003-01-30 2004-08-06 St Microelectronics Sa Integrated circuit e.g. chip card, anti-fraud method, involves performing masking of data and unmasking of encryption function result by random number, using two functionally identical operators having respective physical traces

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2844891A1 (en) * 2002-09-20 2004-03-26 St Microelectronics Sa Microprocessor handled digital data masking method involves factorizing digital data by residue number system based on finite base of numbers or polynomials prime to one another

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001031422A2 (en) * 1999-10-25 2001-05-03 Cyphermanx Consultants Limited Method for protection against analysis of unintended side-channel signals
EP1263163A1 (en) * 2001-05-31 2002-12-04 Sagem SA Method based on a block ciphering algorithm with round repetition and system for implementing said method
FR2850811A1 (en) * 2003-01-30 2004-08-06 St Microelectronics Sa Integrated circuit e.g. chip card, anti-fraud method, involves performing masking of data and unmasking of encryption function result by random number, using two functionally identical operators having respective physical traces

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
COLLBERG C ET AL: "MANUFACTURING CHEAP, RESILIENT, AND STEALTHY OPAQUE CONSTRUCTS", CONFERENCE RECORD OF POPL '98 : THE 25TH ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES. SAN DIEGO, CA, JAN. 19 - 21 1998, ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, NEW YORK, NY : ACM, US, 19 January 1998 (1998-01-19), pages 184 - 196, XP000792008, ISBN: 0-89791-979-3 *

Also Published As

Publication number Publication date
DE112005001837A5 (en) 2008-02-28
DE112005001837B4 (en) 2010-09-16
DE102004043243A1 (en) 2006-03-23

Similar Documents

Publication Publication Date Title
DE69333068T2 (en) METHOD FOR EXTENDING THE VALIDITY OF A CRYPTOGRAPHIC CERTIFICATE
DE102011088502B3 (en) Method and apparatus for securing block ciphers against template attacks
EP3218893B1 (en) Hardened white box implementation
EP2340502B1 (en) Data processing system for providing authorization keys
WO1997047109A1 (en) Process for cryptographic code management between a first computer unit and a second computer unit
EP0820670A1 (en) Computer-assisted method for the exchange of cryptographic keys between a user computer unit (u) and network computer unit (n)
EP1946481A1 (en) Method for generating an advanced electronic signature for an electronic document
EP1618519A2 (en) Data processing method
DE10233297A1 (en) Digital signing device for electronic document, only generates digital signature when user has input information
DE60116195T2 (en) Device and method for concealing input parameters
EP3552344B1 (en) Bidirectionally linked blockchain structure
DE69737806T2 (en) Data encryption method
EP1298529A2 (en) Proxy unit and method for computer-implemented protection of an application server program
DE102016205122A1 (en) Method for exchanging messages between security-relevant devices
WO2006027107A1 (en) Method for protecting keys
EP3954082A1 (en) Method for securely exchanging encrypted messages
DE10006062C2 (en) keyboard keys
EP3618348A1 (en) Distributed database system, industry automation system and method for operating a distributed database system
EP3742319B1 (en) Side channel secure implementation
DE19548387C1 (en) Method for cryptographically securing computer-aided digital communication between a program and at least one user unit
DE102005058275B4 (en) A method and apparatus for verifying a secure delivery of a provided document to a privacy module and method and apparatus for securely verifying authenticity of a received protected document
DE102020006075A1 (en) Procedure for securing stored user data
WO1999057688A1 (en) Method for proving the authenticity of documents
WO2000019297A1 (en) Method and array for updating a password
DE102020007642A1 (en) Method for communication between at least one first electronic computing device and a second electronic computing device within a system and system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 1120050018377

Country of ref document: DE

122 Ep: pct application non-entry in european phase
REF Corresponds to

Ref document number: 112005001837

Country of ref document: DE

Date of ref document: 20080228

Kind code of ref document: P

REG Reference to national code

Ref country code: DE

Ref legal event code: 8607