DE102004043243A1 - Method for protecting keys - Google Patents

Method for protecting keys Download PDF

Info

Publication number
DE102004043243A1
DE102004043243A1 DE200410043243 DE102004043243A DE102004043243A1 DE 102004043243 A1 DE102004043243 A1 DE 102004043243A1 DE 200410043243 DE200410043243 DE 200410043243 DE 102004043243 A DE102004043243 A DE 102004043243A DE 102004043243 A1 DE102004043243 A1 DE 102004043243A1
Authority
DE
Germany
Prior art keywords
key
operations
elementary
function
encryption algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200410043243
Other languages
German (de)
Inventor
Gerd Dr. Mersmann
Hubert E. Kukla
Ingo Dr. Barth
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Comvenient GmbH and Co KG
Original Assignee
Comvenient GmbH and 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 and Co KG filed Critical Comvenient GmbH and Co KG
Priority to DE200410043243 priority Critical patent/DE102004043243A1/en
Priority to DE112005001837T priority patent/DE112005001837B4/en
Priority to PCT/EP2005/009134 priority patent/WO2006027107A1/en
Publication of DE102004043243A1 publication Critical patent/DE102004043243A1/en
Withdrawn legal-status Critical Current

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

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

Verfahren zum Verbergen mindestens eines Schlüssels (k) in einem Verschlüsselungsalgorithmus (E¶k¶(x)) zum Verschlüsseln von Daten (x), wobei das Verfahren folgende Schritte aufweist: Aufteilen mindestens eines Teils des Verschlüsselungsalgorithmus (E¶k¶(x)) mit dem mindestens einen Schlüssel (k) in elementare Operationen (E¶i¶(x)) und Ersetzen mindestens einer elementaren Operation (E¶i¶(x)) durch eine auf der Grundlage einer invertierbaren Funktion (S) gebildete äquivalente elementare Operation (E¶i¶'(x)).A method for concealing at least one key (k) in an encryption algorithm (E¶k¶ (x)) for encrypting data (x), the method comprising the steps of: splitting at least part of the encryption algorithm (E¶k¶ (x) ) with the at least one key (k) into elementary operations (E¶i¶ (x)) and replacing at least one elementary operation (E¶i¶ (x)) by an equivalent elementary operation formed on the basis of an invertible function (S) Operation (E¶i¶ '(x)).

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Schutz von Schlüsseln, insbesondere ein Verfahren zum Verbergen von Schlüsseln während der Verwendung, sowie einen Verschlüsselungsalgorithmus mit einem darin verborgenen Schlüssel.The The present invention relates to a method for protecting keys, in particular a method for hiding keys during use, as well an encryption algorithm with a key hidden inside.

Bei der Verwendung von Verschlüsselungsverfahren ist es grundsätzlich ein Problem 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üsselungsalgorithmus 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 Sicherheitsfunktionen sind unter dem Schlagwort „program obfuscation" bekannt.at the use of encryption methods it is basically a problem is the key to use against unauthorized access to protect. In various applications there is a risk that the used key at least for a short time "visible", as it is during the Processing of the encryption algorithm is loaded as a parameter in the memory. With the help of suitable "debugging tools "can such visible key be recognized and copied. To the key also against such attacks protect to be able to In the prior art, algorithmic transformation techniques are used as additional Security features proposed. Such additional Security features are known by 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 beziehungsweise Anwender an der unkontrollierten Weiterverbreitung beziehungsweise Weitergabe 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 weniger explizite Weise zusammen.The current main field of application for such security functions is software-based copy protection or more general Securing licenses and rights to media content of all Art as part of a "digital rights management ". In this case, the authorized user or user at the uncontrolled retransmission or passing on content or programs to unauthorized third parties become. Typically, this is done by outputting the content in encrypted Form, wherein the authorization information then in the form of a password or also a "license key " becomes. This authorization information then depends on the key to decryption content 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 beliebiger Computerprogramme sind unter anderem in „A Taxonomy of Obfuscating Transformations" von C. Collberg, C. Thomborson, und D. Low in Technical Report #148, Department of Computer Science, The University of Auckland, 1997 und in „Manufacturing cheap, resilient, and stealthy opaque constructs" von C. Collberg, C. Thomborson, und D. Low in 25th ACM SIGPLAN-SIGACT Symposium 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 Report # 148, Department of Computer Science, University of Auckland, 1997, and "Manufacturing cheap, resilient, and stealthy opaque constructs" by C. Collberg, C. Thomborson, and D. Low in 25 th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 98), pages 184-196; ACM Press.

Spezifische Techniken zur zufälligen Transformation, insbesondere kryptographischer Algorithmen werden in der Patentanmeldung WO01/31422 beschrieben.specific Random techniques Transformation, in particular cryptographic algorithms described in the patent application WO01 / 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 Verschlechterung des Laufzeitverhaltens und einer Verschlechterung der Speichereffizienz.These However, processes known in the prior art have the disadvantage that the key anyway is still sufficiently visible. In addition, these lead Method for increasing the Codes and thus also to a deterioration of the runtime behavior and a deterioration of 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 symme trischen 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 enthalten ist.The The object of the present invention is therefore to provide a method with the key up simple and secure way in computer applications with cryptographic functionality can be integrated without the disadvantages described above occur. By the Use of the method should be key especially in computer applications protected with integrated symmetric encryption algorithm, where at least one key Is part of the program code and this program code is not in one protected Environment, such as a separate hardware environment is.

Erfindungsgemäß wird diese Aufgabe durch eine Verfahren zum Verbergen mindestens eines Schlüssels in einem Verschlüsselungsalgorithmus zum Verschlüsseln von Daten gelöst, wobei das Verfahren folgende Schritte aufweist: Aufteilen mindestens eines Teils des Verschlüsselungsalgorithmus mit dem mindestens einen Schlüssel in elementare Operationen und Ersetzen mindestens einer elementaren Operation durch eine auf der Grundlage einer invertierbaren Funktion gebildete äquivalente elementare Operation.According to the invention this Task by a method for hiding at least one key in an encryption algorithm to encrypt solved by data, the method comprising the steps of: splitting at least part of the encryption algorithm with the at least one key in elementary operations and replacing at least one elementary one Operation by an based on an invertible function formed equivalents elementary operation.

Mit Hilfe dieses erfindungemäß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 derzeitiger Kenntnis von einem Unberechtigten mit systematischen Ansätzen nicht wieder aufgelöst werden kann.With the aid of this method according to the invention, it is possible to conceal a dish embedded in an encryption function by doing this with the elementary operations of the closures fusing function and the elements of an invertible function into a unit which, according to current knowledge, can not be resolved by an unauthorized person with systematic approaches.

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 werden soll. Dieser Schlüssel wird erfindungsgemäß mit einem Verschlüsselungsalgorithmus 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 In the context of the present invention, the term key designates any Information provided by an unauthorized person in an advantageous manner could be used and therefore protected against detection by an unauthorized person should. This key is inventively with a encryption algorithm used. This is any function that the key used as intended. An example of this is a function that checks 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üsselungsalgorithmus 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 bezeichnet.According to the invention encryption algorithm with the key in a first step decomposed into elementary operations. In principle, everyone can Algorithms are decomposed into a composition of individual operations, where each single operation handles one step of the algorithm. An example of one Single surgery is a change a component of the encryption algorithm supplied Information using a specific function. According to this Function may, for example, become a component of the information supplied a certain amount can be added. Single operations in which only changed a component is called elementary operations.

Nach der Aufteilung mindestens eines Teils des Verschlüsselungsalgorithmus in elementare Operationen, wird erfindungsgemäß mindestens ein Teil dieser elementaren Operationen durch sogenannte äquivalente elementare Operationen ersetzt. Im Rahmen der vorliegenden Erfindung werden diese äquivalenten elementaren Operationen auf der Grundlage einer invertierbaren Funktion gebildet. Hierdurch 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 invertierbaren Funktionen gewählt.To the division of at least part of the encryption algorithm in elementary operations, according to the invention at least a part of this elementary operations by so-called equivalent elementary operations replaced. In the context of the present invention, these equivalent elementary operations based on an invertible function educated. As a result, the intermediate results of the elementary Operations masked, that is covered. This step is also called transformation. This invertible function can be chosen arbitrarily. The invertible function is preferably random from the set of 1 · 2 · ... · 256 different ones invertible functions selected.

Mit Hilfe dieses Verfahrens kann auf einfache Weise ein Schlüssel in einem Verschlüsselungsalgorithmus verdeckt beziehungsweise maskiert werden. Das Ersetzen von einzelnen elementaren Operationen durch entsprechende äquivalente elementare Operationen kann ohne größeren Aufwand ermöglicht werden. Durch dieses Ersetzen wird allerdings das Auffinden des Schlüssels in dem Verschlüsselungsalgorithmus 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 Help of this procedure can easily put a key in an encryption algorithm be masked or masked. Replacing single elementary operations through equivalent equivalent elementary operations can be done without much effort allows become. However, this replacement will find the key in the encryption algorithm considerably more difficult. this makes possible a restriction the dissemination of an appropriate program or equivalent File to the author of the program or the data allowed Shape. This also achieves a robust individualization of the code and thus the potential traceability in illegitimate Proliferation.

Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird die äquivalente elementare Operation durch eine Verkettung der elementaren Operation mit der invertierbaren Funktion und der Invertierten der invertierbaren Funktion gebildet. Hierbei handelt es sich um eine besonders einfache, aber auch effektive Bildung der äquivalenten elementaren Operationen.According to one preferred embodiment The present invention will be the equivalent elementary operation by a concatenation of the elementary operation with the invertible one Function and the inverted formed the invertible function. This is a very simple, but also effective Education 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 invertierbaren Funktion wird ein Algorithmus bereitgestellt, mit dem eine entsprechende 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 will after the formation of the equivalent elementary operations the concatenation of all elementary operations - with the equivalent ones elementary operations in the places where they were previously replaced - again concatenated with the invertible function. Through this renewed concatenation with the invertible function an algorithm is provided with the appropriate application in a simple way the presence can check the right key, an unauthorized person but no information about the key can gain.

Gemäß einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung werden die äquivalenten elementaren Operation mit Hilfe von Wertetabellen gebildet. In einer weiter bevorzugten Ausführungsform werden die äquivalenten elementaren Operationen schrittweise mit Hilfe von Projektionen gebildet.According to one another preferred embodiment The present invention will be the equivalent elemental operation formed with the help of value tables. In a further preferred embodiment become the equivalent elementary operations gradually with the help of projections educated.

Die Sicherheit des Verfahrens kann gemäß einer weiter bevorzugten Ausführungsform weiter erhöht werden, indem nach dem Aufteilen mindestens eines Teils des Verschlüsselungsalgorithmus mit mindestens einem Schlüssel in elementare Operationen mindestens zwei aufeinander folgende elementare Operationen zu einer neuen elementaren Operation verbunden werden. Im Rahmen dieser bevorzugten Ausführungsform werden dann in dem danach folgenden Ersetzen-Schritt auch die neuen elementaren Operation durch entsprechende äquivalente elementare Operationen ersetzt.The Safety of the method may be further preferred embodiment be further increased, by after splitting at least part of the encryption algorithm with at least one key in elementary operations at least two consecutive elementary Operations are connected to a new elementary operation. In the context of this preferred embodiment are then in the then the following replacement step also the new elementary operation through equivalent ones replaced 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 erfindungsgemäßen Verfahren nicht mehr auf den Schlüssel geschlossen werden. Allerdings kann unter Zuhilfenahme der Invertierten der invertierbaren Funktion das Ergebnis aus der Anwendung des Verschlüsselungsalgorithmus 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 ele mentar operations, equivalent elementary operations and the invertible function in a safe, ie formed at a sheltered place and passed to an insecure place. At the unsafe place can no longer be closed on the key due to the method according to the invention. However, with the aid of the inverters of the invertible function, the result from the application of the encryption algorithm to the key can be calculated, thereby obtaining information about the authorization.

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. Vorzugsweise werden für diese Aufspaltung zwei Projektionen – weiter bevorzugt zwei xor-lineare orthogonale Projektionen – verwendet.According to one another preferred embodiment The security of the hidden key may still be present in the present invention further increased when the data vector to be processed is split into two vectors becomes. Preferably for this splitting two projections - more preferably two xor-linear orthogonal projections - used.

In einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung werden symmetrische Schlüssel verwendet. Weiter bevorzugt wird der AES-Algorithmus (Advanced Encryption Standard) für die Verschlüsselung verwendet.In a further preferred embodiment Symmetric keys are used in the present invention. Further preferred is the AES algorithm (Advanced Encryption Standard) for the encryption used.

In einer weiteren bevorzugten Ausführungsform sollen die zu übertragenden Daten an verschiedene Empfänger übertragen werden. Hierfür werden die Daten vor der Übertragung auf der Grundlage einer gemeinsamen invertierbaren Funktion transformiert. Bei jedem Empfänger 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 should be transferred Transfer data to different recipients become. Therefor be the data before the transfer transformed based on a common invertible function. At each recipient then becomes a pre-transformation performed with an invertible function, this being invertible Function based on the inverters of the common invertible Function and one for the recipient based on specific invertible function.

Das erfindungsgemäße Verfahren kann in vorteilhafter Weise für das Verbergen von unterschiedlichsten Informationen verwendet werden. Ein Beispiel ist ein Authentisierungsverfahren, bei dem die sichere Instanz, beispielsweise eine SmartCard, die Authentizität einer unsicheren Instanz, beispielsweise einer Set Top Box verifiziert. In diesem Fall kann die Verifikation mit Hilfe eines Challen ge-Response-Verfahrens, insbesondere mit einem symmetrischen Verschlüsselungsalgorithmus 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.The inventive method can be beneficial for the hiding of different information can be used. An example is an authentication method in which the secure Instance, such as a SmartCard, the authenticity of a Unsafe instance, for example, verified a set top box. In this case, the verification can be performed using a challenge-response procedure, especially with a symmetric encryption algorithm. In other examples, the method of the invention is for transfer of license data or to build up 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 The following are preferred embodiments of the present invention by way of example with reference to the accompanying Figures described, wherein

1 in einem Flussdiagramm die Anwendung einer ersten Ausführungsform des erfindungsgemäßen Verfahrens veranschaulicht, und 1 in a flowchart illustrating the application of a first embodiment of the method according to the invention, and

2 in einem Flussdiagramm die Anwendung einer zweiten Ausführungsform des erfindungsgemäßen Verfahrens veranschaulicht. 2 in a flowchart illustrates the application of a second embodiment of the method according to the invention.

In dem im Zusammenhang mit 1 beschriebenen Ausführungsbeispiel wird ein Verschlüsselungsalgorithmus EK(x) mit einem darin fest eingebetteten Schlüssel K und ein entsprechendes Entschlüsselungsverfahren DK(x) verwendet. In diesem Beispiel basiert der Verschlüsselungsalgorithmus x→EK(x) auf 8-bit-Textblöcken x=[x1,x2,...,xk] mit einer festen Länge k. Grundsätzlich kann ein derartiger Verschlüsselungsalgorithmus auch auf m-bit-Textblöcken mit variabler Länge basieren. Der in diesem Ausführungsbeispiel verwendete und in den Verschlüsselungsalgorithmus eingebettete Schlüssel K hat ebenfalls die Form eines 8-bit-Datenvektors K=[K1,...., KKlength]. Der Entschlüsselungsalgorithmus DK(x) wird entsprechend gebildet.In the related with 1 described embodiment, an encryption algorithm E K (x) is used with a key K firmly embedded therein and a corresponding decryption method D K (x). In this example, the encryption algorithm x → E K (x) is based on 8-bit text blocks x = [x 1 , x 2 , ..., x k ] with a fixed length k. In principle, such an 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 also takes the form of an 8-bit data vector K = [K 1 ,..., K_Kength ]. The decryption algorithm D K (x) is formed accordingly.

In dem vorliegenden Ausführungsbeispiel wird der Verschlüsselungsalgorithmus x→EK(x) in einem ersten Schritt in eine logische Komposition EK(x) = (Entot° Entot-1°....° E1)(x) von Einzeloperationen E1(x) (ntot ist hier die Gesamtzahl der Operationen) zerlegt, wie in 1 dargestellt ist. Die Einzeloperationen E1 können beispielsweise zu einer der folgenden vier Klassen K1, K2, K3 oder K4 gehören:

  • K1: Veränderung der Komponente des Vektors x=[x1,x2,...xk] an der Position j: [x1,x2,...xk]→y=[x1,...,F(xj),...,xk] Die Abbildung F(x) könnte dabei beispielsweise durch eine Wertetabelle gegeben sein.
  • K2: Permutation der Komponenten des Vektors x=[x1,x2,...xk]: [x1,x2,...xk]→y=[xperm[1],...,xperm[k]]
  • K3: Ersetzen einer Komponente des Vektors x=[x1,x2,...xk] an der Position j durch die XOR-Summe xj⊕k1', wobei k1' eine byte-Komponente eines von dem eigentlichen Schlüssel K abgeleiteten Schlüssels F(K) ist: [x1,x2,...xk]→ y=[x1,...,xj ⊕ k1',...,xk]
  • K4: Ersetzen einer Komponente des Vektors x=[x1,x2,...xk] an der Position j durch die XOR-Summe xj⊕xi, wobei i≠j gilt: [x1,x2,...xk]→ y=[x1,...,xj ⊕ xi,...,xk]
In the present embodiment, the encryption algorithm x → E K (x) is in a first step in a logical composition e K (x) = (E ntot ° E Ntot-1 ° .... ° E 1 ) (X) of single operations E 1 (x) (ntot here is the total number of operations) decomposed, as in 1 is shown. The individual operations E 1 may, for example, belong to one of the following four classes K1, K2, K3 or K4:
  • K1: Change of the component of the vector x = [x 1 , x 2 , ... x k ] at the position j: [x 1 , x 2 ... x k ] → y = [x 1 , ..., F (x j ), ..., x k ] The mapping F (x) could be given for example by a value table.
  • K2: permutation of the components of the vector x = [x 1 , x 2 , ... x k ]: [x 1 , x 2 ... x k ] → y = [x perm [1] , ..., x perm [k] ]
  • K3: replacing a component of the vector x = [x 1 , x 2 , ... x k ] at the position j by the XOR sum x j ⊕ k 1 ', where k 1 ' is a byte component of one of the actual Key K derived key F (K) is: [x 1 , x 2 ... x k ] → y = [x 1 , ..., x j ⊕ k 1 ', ..., x k ]
  • K4: replacing a component of the vector x = [x 1 , x 2 ,... X k ] at the position j by the XOR sum x j ⊕x i , where i ≠ j: [x 1 , x 2 ... x k ] → y = [x 1 , ..., x j ⊕ x i , ..., x k ]

Die Einzeloperationen der Klassen K1, 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.The Single operations of classes K1, K3 and K4 only work on each a component of the data vector x and can therefore be considered elemental become. These elementary operations are independent of the chosen programming language the implementation.

Erfindungsgemäß wird der Verschlüsselungsalgorithmus EK(x) zumindest teilweise in eine Komposition aus elementaren Operationen E1 zerlegt. Dabei stammt im vorliegenden Ausführungsbeispiel jede der elementaren Operationen E1 aus einer der Klassen K1, K3 oder K4.According to the invention, the encryption algorithm E K (x) is at least partially decomposed into a composition of elementary operations E 1 . In the present exemplary embodiment, each of the elementary operations E 1 originates from one of the classes K1, K3 or K4.

In dem nächsten in 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 in 1 As shown, the intermediate results of the individual operations are masked based on an invertible function. The corresponding invertible function S and the inverting of the invertible function S -1 is 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 bedeuten, daß es keine gemeinsamen Bahnen unter allen diesen Abbildungen gibt, keinen gemeinsamen Fixpunkte u.ä.. Diese Bedingungen lassen sich leicht überprüfen und schränken den Raum der potentiellen S nur minimal(st) ein.In a preferred embodiment becomes the invertible function due to cryptographic requirements chosen so that they are possible is incompatible with the given fixed mappings of the algorithm. This may mean that it there are no common orbits among all these pictures, none Common fixed points and the like .. These conditions are easy to check and limit the space the potential S only minimal (st).

Aus Gründen der Codekomplexität und vor allem der Performanz des transformierten Codes wird vorzugsweise eine parallele Maskierung verwendet, bei der vorzugsweise alle Komponenten der Zwischenwertvektoren xm = (Em°...°E1)(x) = [xm,1,xm,2,...,xm,k]komponentenweise transformiert werden.For reasons of code complexity and above all the performance of the transformed code, a parallel masking is preferably used, in which case preferably all the components of the intermediate value vectors x m = (E. m ° ... ° E 1 ) (x) = [x m, 1 , x m, 2 , ..., x m, k ] be transformed component by component.

Das verwendete Transformationsverfahren beruht auf dem abstrakten Prinzip, einen Algorithmus E, dessen elementare Operationen E1 aus den Klassen K1, K3 und K4 stammen, unter Verwendung einer zufällig erzeugten konstanten diagonalen Transformation der Form [x1,x2,...xk] → [S(x1), S2(x2),..., Sk(xk)]in einen äquivalenten Algorithmus zu transformieren, bei dem die elementaren Operationen E1 aus den Klassen K1, K3 und K4 zumindest teilweise durch von der invertierbaren Funktion S abhängige Operationen Ej,S'=S°Ej°S–1 ersetzt werden.The transformation method used is based on the abstract principle, an algorithm E whose elementary operations E 1 derive from the classes K1, K3 and K4, using a randomly generated constant diagonal transformation of the form [x 1 , x 2 ... x k ] → [S (x 1 ), P 2 (x 2 ), ..., S k (x k )] into an equivalent algorithm, in which the elementary operations E 1 from the classes K1, K3 and K4 are at least partially replaced by operations E j, S '= S ° E j ° S -1 which are dependent on the invertible function S.

Die Faktorisierung des gesamten Algorithmus EK(x):= (Entot°...°E1)(x)wird dabei durch die Faktorisierung EK(x):= (S–1° (Entot,S'°...°E1,S')° S)(x)ersetzt, wobei E1,S' = S°E1°S–1 gilt.The factorization of the entire algorithm e K (x): = (E ntot ° ... ° E 1 ) (X) is doing so by factoring e K (x): = (p -1 ° (E. ntot, S '° ... ° E 1, S ') ° S) (x) where E 1, S '= S ° E 1 ° S -1 .

Im vorliegenden Ausführungsbeispiel werden bei der Transformation des Algorithmus die vier Operationen K1 bis K4 durch die folgenden vier Transformationen K1S bis K4S ersetzt. Diese Transformationen beruhen auf einer zufällig gewählten invertierbaren Funktion S, die beispielsweise auf 8-bit-Vektoren basieren kann. Dadurch ergeben sich die folgenden Klassen K1S bis K4S:

  • K1S: Veränderung der Komponente des Vektors x=[x1,x2,...xk] an der Position j: [x1,x2,...xk] → [x1,..., SFS–1(xj),...,xk]
  • K2S: Permutation der Komponenten des Vektors x=[x1,x2,...xk]: [x1,x2,...xk]→y=[xperm[1],...,xperm[k]]
  • K3S: Ersetzen einer Komponente des Vektors x=[x1,x2,...xk] an der Position j durch die XOR-Summe mit einer von dem Schlüssel abgeleiteten Komponente [x1,x2,...xk]→y=[x1,..., GS,k(xj),...,xk] mit GS,k(x) = S(S–1 (x) ⊕ k1).
  • K4S: Ersetzen einer Komponente des Vektors x=[x1,x2,...xk] an der Position j durch die Summe dieser Komponente mit einer weiteren Komponente: [x1,x2,...xk]→ y=[x1,...,FS(xj ⊕ xi),...,xk] mit FS(x,y)=S(S–1x ⊕ S–1y).
In the present embodiment, in the transformation of the algorithm, the four operations K1 to K4 are replaced by the following four transformations K1 S to K4 S. 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 K1 S to K4 S :
  • K1 S : change of the component of the vector x = [x 1 , x 2 , ... x k ] at the position j: [x 1 , x 2 ... x k ] → [x 1 , ..., SFS -1 (x j ), ..., x k ]
  • K2 S : permutation of the components of the vector x = [x 1 , x 2 , ... x k ]: [x 1 , x 2 ... x k ] → y = [x perm [1] , ..., x perm [k] ]
  • K3 S : replacing a component of the vector x = [x 1 , x 2 , ... x k ] at the position j by the XOR sum with a component derived from the key [x 1 , x 2 ... x k ] → y = [x 1 , ..., G S, k (x j ), ..., x k ] with G S, k (x) = S (S -1 (x) ⊕ k 1 ).
  • K4 S : Replacement of a component of the vector x = [x 1 , x 2 , ... x k ] at the position j by the sum of this component with another component: [x 1 , x 2 ... x k ] → y = [x 1 , ..., F S (x j ⊕ x i ), ..., x k ] with F S (x, y) = S (S -1 x ⊕ S -1 y).

Die Transformation hat insbesondere die Eigenschaft, dass die schlüsselabhängigen Operationen aus Klasse K3, also der Form xi→x⊕kj' durch Tabellenoperationen aus K1 xi→FS,kj'(x) mit FS,kj'(x)=S(S–1 (x) ⊕ kj')ersetzt werden. Weiter wird die elementare Operation F(x,y)→x⊕y, die den Operationen aus Klasse K4 zugrunde liegt ersetzt durch eine transformierte Operation der Form FS(x,y)→S(S–1x ⊕ S–1y). The transformation has especially the property that the key-dependent operations class K3, thus the form x i → x⊕k j 'by table operations of K1 x i → F S, kj' (x) with F S, kj ' (X) = S (S -1 (x) ⊕ k j ') be replaced. Further, the elementary operation F (x, y) → x⊕y, which underlies the operations of class K4, is replaced by a transformed operation of the form F S (X, y) → S (S -1 x ⊕ S -1 y).

Die Implementierung der Operation FS(x,y) erfolgt dabei im vorliegenden Ausführungsbeispiel über eine Funktionstabelle, nicht aber unter expliziter Verwendung der Abbildungen S und S–1gemäß der Definition von FS(x,y). Im vorliegen den Ausführungsbeispiel hat dabei die Operation (x,y)→FS(x,y) eine Tabelle mit 216=65536 Byte-Werten, die Operation x→GS,k(x) eine Tabelle mit 256 Byte-Werten.The implementation of the operation F S (x, y) takes place here in the present embodiment via a function table, but not with explicit use of the figures S and S -1 according to the definition of F S (x, y). In the present embodiment, the operation (x, y) → F s (x, y) has a table with 2 16 = 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 Komponenten von x permutieren, mit diagonalen Abbildungen der Komponenten vertauschbar, weil alle Komponenten mit demselben S transformiert werden. Deshalb müssen diese Einzeloperationen nicht mehr explizit transformiert werden.at The operations of the class K2 are the pictures which the Permute components of x, with diagonal images of the components interchangeable, because all components are transformed with the same S. become. That's why these individual operations are no longer explicitly transformed.

Die Prä- und die Posttransformationen S und S–1 können in derselben Rechenumgebung ausgeführt werden wie die transformierten Einzeloperationen E1,S'. Im vorliegenden Ausführungsbeispiel wird aber zumindest die Prätransformation in einer sicheren Rechenumgebung ausgeführt, die Posttransformation S–1 wird dagegen in einer davon getrennten und potentiell unsicheren Umgebung stattfinden. Dieses Beispiel wird im folgenden anhand von 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 E 1, S '. In the present exemplary embodiment, however, at least the pre-transformation is carried out in a secure computing environment, whereas the post-transformation S -1 will take place in a separate and potentially unsafe environment. This example is explained below with reference to 1 further explained.

Wie oben erläutert, maskiert die sichere kryptographische Instanz A die Verschlüsselungsfunktion EK(x) auf der Grundlage der invertierbaren Funktion S. Das Ergebnis dieser Maskierung wird in 1 mit (EK,S(x)) bezeichnet. Die zu verschlüsselnde Information x wird dann in einem nächsten Schritt mit Hilfe der invertierbaren Funktion S prätransformiert. Im in 1 dargestellten Ausführungsbeispiel wird diese Prätransformation von der Instanz A durchgeführt. Alternativ kann die Prätransformation allerdings auch von der Instanz B durchgeführt werden. Im vorliegenden Ausführungsbeispiel wird die prätransformierte Information y dann an die Instanz B übermittelt, die als Nachrichtenempfänger die Information unter Verwendung der Invertierten der invertierbaren Funktion und dem in der Instanz A maskierten Entschlüsselungsalgorithmus DK wieder rekonstruiert. Mit Hilfe dieser Verschlüsselung und Maskierung kann der verwendete Schlüssel, der beispielsweise als Berechtigungsinformation auf Seiten von B fungiert, vor potentieller mißbräuchlicher Verwendung durch B beziehungsweise durch Dritte geschützt werden. Aufgrund der Maskierung der Entschlüsselungs funktion DK(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.As explained above, the secure cryptographic instance A masks the encryption function E K (x) based on the invertible function S. The result of this masking is in 1 denoted by (E K, S (x)). The information to be encrypted x is then pre-transformed in a next step using the invertible function S. Im in 1 illustrated embodiment, this Prätrans Formation of the instance A performed. 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 as message receiver reconstructs the information using the inverse 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, for example, which acts as authorization information on the part of B, can be protected from potential misuse by B or by third parties. Due to the masking of the decryption function D K (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 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–1 nicht in B's Umgebung, sondern in einer sicheren beziehungsweise vor B's Zugriff geschützten Rechenumgebung ausgeführt wird. Wenn dies nicht möglich ist, sollte die Rücktransformation selbst geeignet verschleiert beziehungsweise transformiert werden.An even greater certainty can be achieved if the inverse transformation using the inverters of the invertible function S -1 is carried out not in B's environment but in a secure computing environment protected from B's access. If this is not possible, the inverse transformation itself should be suitably obfuscated 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 Funktion FS(x,y) → S(S–1x ⊕ S–1y)beschrieben. Im Rahmen dieser Ausführungsform erfolgt die Berechnung schrittweise durch Projektionen und ist dadurch bezüglich des benötigten Speicherbedarfs effizienter. Dies kann beispielsweise durch zwei orthogonale xor-lineare Projektionen pr1 und pr2 vom Rang 4 (d.h. mit jeweils 16 Bildwerten) erfolgen. Diese haben dann die folgenden Eigenschaften:

  • • pr1(x)⊕pr2(x)=x
  • • (pr1°pr2)(x)=(pr2°pr1)(x)=0
  • • pri(x⊕y)=pri(x)⊕Pri(y)
In 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 F S (x, y) → S (S -1 x ⊕ S -1 y) described. In the context of this embodiment, the calculation is carried out stepwise by means of projections and is therefore more efficient with regard to the required memory requirement. This can be done, for example, by two orthogonal xor-linear projections pr 1 and pr 2 of rank 4 (ie each with 16 image values). These then have the following properties:
  • • pr 1 (x) ⊕ pr 2 (x) = x
  • • (pr 1 ° pr 2 ) (x) = (pr 2 ° pr 1 ) (x) = 0
  • • pr i (x⊕y) = pr i (x) ⊕ Pr i (y)

Durch eine Transformation unter Verwendung der invertierbaren Funktion erhält man die folgenden beiden Abbildungen: pr1,S(x)= (S°pr1°S–1)x= S(pr1(S–1 x)) und pr2,S(x)= (S°pr2°S–1)x. A transformation using the invertible function yields the following two mappings: pr 1, S (x) = (S ° pr 1 ° S -1 ) x = S (pr 1 (S -1 x)) and pr 2, S (x) = (S ° pr 2 ° S -1 ) X.

Die Berechnung der Abbildung FS(x,y)=S(S–1x⊕S–1y) kann dann durch die Komposition der fünf Abbildungen FS,1: (x,y)→(x',y')=(pr1,S(x), Pr1,S(y)) FS,2: (x',y')→FS(x',y'):=x1=S(pr1(S–1x⊕S–1y)) FS,3: (x,y)→(x'',y'')=(pr2,S(x), Pr2,S(y)) FS,4: (x'',y'')→FS(x'',y''):=x2=S(pr2(S–1x⊕S–1y)) FS,5: (x1,x2)→FS(x1,x2)=S(S–1x⊕S–1y)=FS(x,y) ausgeführt werden. Die Berechnung der Teilabbildungen FS,2°FS,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'), eingeschränkt auf die Graphen Gr1= {(x',y')=(pr1,S((x), pr1,S(y))} und Gr2={(x',y')=(pr2,S(x), pr2,S(y))} speichert. Die jeweils 16·16 Werte der Form (pr1,S(x), pr1,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 Berechnung 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 Abbildungen x→pri,S(x)) nötig, insgesamt also 2816 bytes. Unter Ausnutzung der Symmetrie der Abbildungen FS,2 und FS,4 kann dies noch weiter reduziert werden.The computation of the map F S (x, y) = S (S -1 x ⊕ S -1 y) can then be done by composing the five mappings F S, 1 : (x, y) → (x ', y') = (pr 1, S (x), Pr 1, S (y)) F S, 2 : (x ', y') → F s (x ', y'): = x 1 = S (pr 1 (S -1 x S -1 y)) F S, 3 : (x, y) → (x ", y") = (pr 2, S (x), Pr 2, S (y)) F S, 4 : (x ", y") → F s (x ", y"): = x 2 = S (pr 2 (S -1 x S -1 y)) FS, 5: (x 1 , x 2 ) → F S (x 1 , x 2 ) = S (S -1 x S -1 y) = F S (x, y) be executed. The calculation of the sub-images F S, 2 ° F S, 1 and F S, 4 ° F S, 3 is most sensibly carried out via two tables (each of 3 × 256 bytes or even 256 24-bit variables depending on the implementation), which the function values of the map F S (x ', y'), limited to the graphs Gr 1 = {(x ', y') = (pr 1, S ((x), pr 1, S (y)}} and Gr 2 = {(x ', y') = (pr 2, S (x), pr 2, S (y))} The 16 x 16 values of the form (pr 1, S (x), pr 1, S (y)) are stored in an orderly order and then the argument within the table is calculated by a binary search.The same applies to the mapping F S, 5 (x, y). x, y) instead of a large table with 65Kbytes, only 3 tables of size 3 × 256 byte and two further tables of size 256 byte (for the pictures x → pri, S (x)) are necessary, ie a total of 2816 bytes Symmetry of Figures FS, 2 and FS, 4 this can be further reduced.

In dem vorliegenden Ausführungsbeispiel wird die Komplexität der Verschmelzung und damit die Verdeckung des Schlüssels noch weiter erhöht, in dem zwei Operationen der Klassen K1 (xi1→F(xi1)) und K4 (xi2→xi2⊕xj) mit zusammenfallenden Indizes i1 und i2 direkt hintereinander ausgeführt und zu einer neuen Elementaroperation einer der drei Typen K141: xi1→F(xi1) ⊕ xj K142: xi1→xi1 ⊕ F(xj) K143: xi1→F(xi1 ⊕ xj) verschmolzen werden. Ähnlich kann mit Operationen der Klasse K3 verfahren werden. Wenn beispielsweise in allen Operationen des Algorithmus der Klasse K1 dieselbe Funktion F(x) verwendet wird und der Algorithmus in eine Komposition von Abbildungen der Klassen K14i, i=1,...,3 und K3, K2 zerlegt werden kann, dann kann die Konjugation unter Verwendung der invertierbaren Funktion S direkt auf die elementaren Operationen K14i angewandt werden. Dies führt dann zu den Operationen K141S: xi1→S(F(S–1xi1) ⊕ S–1xj) K142S: xi1→S(S–1xi1 ⊕ FS–1xj) K143S: xi1→SF(S–1xi1 ⊕ S–1xj). In the present embodiment, the complexity of the merger and therefore the masking of the key is increased still further, coinciding in the two operations of the classes K1 (x i1 → F (x i1)) and K4 (x i2 → x i2 ⊕x j) Indexes i1 and i2 are executed directly after each other and to a new elementary operation of one of the three types K14 1 : x i1 → F (x i1 ) ⊕ x j K14 2 : x i1 → x i1 ⊕ F (x j ) K14 3 : x i1 → F (x i1 ⊕ x j ) be merged. Similarly, operations of class K3 can be handled. If K1 same function F (x) is used for example in all operations of the algorithm of the class and the algorithm in a composition of images of the classes K14 i, i = 1 3 and K3, K2 can be dismantled, ..., then you can the conjugation using the invertible function S is applied directly to the elementary operations K14 i . This then leads to the operations K14 1S : x i1 → S (F (S -1 x i1 ) ⊕ S -1 x j ) K14 2S : x i1 → S (S -1 x i1 ⊕ FS -1 xj) K14 3S : x i1 → SF (S -1 x i1 ⊕ S -1 x j ).

Alle drei Abbildungen haben die abstrakte Struktur (x,y)→GF1,F2,F3(x,y)=F1(F2(x) ⊕ F3(y))mit drei Abbildungen F1, F2, F3 auf 8-bit-Vektoren. Die oben skizzierte Projektionsmethode zur speichereffizienten Berechnung von S(S–1x⊕S–1y)=FS(x,y) kann auch sinngemäß auf die allgemeinere Abbildung GF1,F2,F3(x,y) übertragen werden.All three figures have the abstract structure (X, y) → G F1, F2, F3 (x, y) = F1 (F2 (x) ⊕ F3 (y)) with three figures F1, F2, F3 on 8-bit vectors. The projection method for the memory-efficient computation of S (S -1 x ⊕S -1 y) = F S (x, y) outlined above can also be transferred analogously to the more general mapping G F1, F2, F3 (x, y).

In dem im Zusammenhang mit 2 beschriebenen Ausführungsbeispiel kann die Anwendung der Rücktransformation auf der Grundlage der Invertierten der invertierbaren Funktion S–1 als letzter Schritt in einer ungeschützten Umgebung komplett vermieden werden. Hierfür wird die oben dargestellte kryptographische Transformation des Algorithmus EK(x) mit einer Datenspaltung der zu verschlüsselnden Daten kombiniert.In the related with 2 described embodiment, the application of the inverse transformation on the basis of the inverters of the invertible function S -1 as the last step in an unprotected environment can be completely avoided. For this purpose, the above-described cryptographic transformation of the algorithm E K (x) is combined with a data split of the data to be encrypted.

Die Datenspaltung verwendet dafür wiederum vorzugsweise die bereits oben beschriebene Methode unter Verwendung zweier xor-linearer orthogonaler Projektionen pr1(x), pr2(x). Der zu verarbeitende Datenvektor x=[x1,x2,...xk] wird aufgespalten in zwei Vektoren xpr,1 =[pr1(x1), pr1(x2),....., pr1(xk)] und xpr,2 =[pr2(x1), pr2(x2),....., pr2(xk)] For this purpose, the data splitting again preferably uses the method already described above using two xor-linear orthogonal projections pr 1 (x), pr 2 (x). The data vector x = [x 1 , x 2 , ... x k ] to be processed is split into two vectors x pr, 1 = [Pr 1 (x 1 ), pr 1 (x 2 ), ....., pr 1 (x k )] and x pr, 2 = [Pr 2 (x 1 ), pr 2 (x 2 ), ....., pr 2 (x k )]

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 S1 und S2 erzeugt, welche jeweils auf den Bildern G1={x | ∃ y mit x=pr1(y)} und G2={x | ∃ y mit x=pr2(y)} als identische Abbildung wirken. Der Entschlüsselungsalgorithmus DK wird unter Verwendung der invertierbaren Funktionen S1 und S2 in seine Varianten DK,S1 und DK,S2 transformiert. Die kryptographische Instanz A berechnet statt y=S°EK(x) das Paar (y1,y2)=(S1°EK(xpr,1),S2°EK(xpr,2)). Instead of an image based on an invertible function S, the issuing entity A produces two mappings on the basis of the invertible functions S 1 and S 2 , which are respectively represented on the images G 1 = {x | ∃ y with x = pr 1 (y)} and G 2 = {x | ∃ y with x = pr 2 (y)} act as an identical map. The decryption algorithm D K is transformed into its variants D K, S1 and D K, S2 using the invertible functions S 1 and S 2 . The cryptographic entity A calculates the pair instead of y = S ° E K (x) (y 1 , y 2 ) = (S 1 ° e K (x pr, 1 ), S 2 ° e K (x pr, 2 )).

Das Paar (y1,y2) wird dann an Instanz B übermittelt. B entschlüsselt y1 und y2 zu xpr,1 und xpr,2 unter Anwendung von DK,S1 und DK,S2. Statt der (wegen der Invarianzeigenschaften von S1 und S2 nicht mehr erforderlichen) Anwendung von S1 –1 bzw. S2 –1 erfolgt als letzter Schritt auf Seiten von B die Rekonstruktion des Klartextes x durch die Berechnung der xor-Summe(n) der Komponenten von xpr,1 und xpr,2.The pair (y 1 , y 2 ) is then transmitted to instance B. B decrypts y 1 and y 2 into x pr, 1 and x pr, 2 using D K, S1 and D K, S2 . 1 -1 and S 2 -1 carried out instead of the (due to the invariance of S 1 and S 2 are no longer necessary) using S as the final step on the part of B x is the reconstruction of the plaintext (n by calculating the XOR sum ) of the components of x pr, 1 and x pr, 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–1x⊕S–1y) und GS,k(x)=S(S–1x⊕k) 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 F S (x, y) = S (S -1 x ⊕ S -1 y) and G S, k (x ) = S (S -1 x⊕k). This further increases 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 help of the present invention, a method is thus provided, with which a in Ver encryption algorithm embedded key can be obscured.

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 MixColumns() aufgebaut und operiert auf byte-Blöcken x=[x1,...,x16] der Länge 16. Die Operation SubBytes() operiert durch x→[S(x1),...,S(x16)]mit der S-Box S von AES, sie kann aus 16 sequentiellen bzw. parallelen Operationen der Klasse K1 zusammengesetzt werden, wobei F(x) durch die S-Box von AES bestimmt wird. Die Operation AddRoundKey() operiert durch xor-Addition x→[x1 ⊕ k1',...,x16 ⊕ k16']mit Komponenten kj' eines Rundenschlüssels und ist daher aus 16 parallelen Operationen der Klasse K3 zusammengesetzt. Die Operation ShiftRows() rotiert die Komponenten eine Zeile zyklisch, wenn der Datenvektor in Gestalt einer 4x4-Matrix (xi,j) mit xi,j =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 K1 zusammengesetzt werden. Hierfür kann die sogenannte Bruhat-Zerlegung verwendet werden. Dabei werden die Multiplikationen xi→mj·xi mit den Multiplikationskonstanten mj der Matrixdarstellung von MixColumns() durch Tabellenoperationen der Klasse K1 implementiert. Im Falle von AES ist die einzige direkt schlüsselabhängige Operation also die Operation, AddRoundKey().In the embodiment described below, the preferred AES algorithm is used as the encryption algorithm. AES consists of 4 different basic operations SubBytes (), AddRoundKey (), ShiftRows () and MixColumns () and operates on byte blocks x = [x 1 , ..., x 16 ] of length 16. The operation SubBytes ( ) operates through x → [S (x 1 ), ..., S (x 16 )] with the S-box S of AES, it can be composed of 16 sequential or parallel operations of class K1, where F (x) is determined by the S-box of AES. The AddRoundKey () operation operates by xor addition x → [x 1 ⊕ k 1 ', ..., x 16 ⊕ k 16 '] with components k j 'of a round key and is therefore composed of 16 parallel operations of class K3. The operation ShiftRows () cyclically rotates the components one line when the data vector is represented in the form of a 4x4 matrix (x i, j ) with x i, j = x 4i + j . It therefore belongs as an operation on the data vector x to class K2. Finally, the xor-linear operation MixColumns () can be composed of suitably iterated operations of the form K2, K4 and K1. For this purpose, the so-called Bruhat decomposition can be used. Here, the multiplication x i → m j · x i with the multiplication constants are m j of the matrix representation of MixColumns () implemented by 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 Abbildungen MixColumns(), 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) Operation der Form (x,y,z,w)→F(M1x ⊕ M2y ⊕ M3z ⊕ M4w ⊕ k') The direct application of the S-box of AES or its transformation under S can be avoided if the transformed composition of the three mappings MixColumns (), AddRoundKey (), and SubBytes () is executed (in that order) in the following manner. The composition of the three mappings results in a quaternary (key-dependent) operation of the form for each byte component (X, y, z, w) → F (M 1 x ⊕ M 2 y ⊕ M 3 z ⊕ M 4 w ⊕ k ')

Hier ist F durch die jeweilige S-Box gegeben, die (linearen) Abbildungen M1 bis M4 entsprechen den Multiplikationen mit den 4 Multiplikationskonstanten von MixColumns(), k' ist eine Bytekomponente eines Rundenschlüssels.Here F is given by the respective S-box, the (linear) mappings M 1 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 Operationen FS1,S,k1'(x,y): (x,y)→u1=S1(M1S–1x ⊕ M2S–1y ⊕ k1') FS1,S,k2'(z,w): (z,w)→u2=S1(M3S–1z ⊕ M4S–1w ⊕ k2')abhängig von einer weiteren invertierbaren Abbildung S1 auf 8-bit-Vektoren ausgeführt. Anschließend wird die binäre Operation GS1,S(u1,u2)→ (u1,u2)→SF(S1 –1 u1 ⊕ S1 –1 u2)berechnet. Es gilt dann (GS1,S°FS1,S,k1'°FS1,S,k2')(x,y,z,w)=F(M1x ⊕ M2y ⊕ M3z ⊕ M4w ⊕ k1' ⊕ k2') There are two binary operations F S1, S, k1 '(x, y): (x, y) → u 1 = S 1 (M 1 S -1 x ⊕ M 2 S -1 y ⊕ k 1 ') F S1, S, k2 '(z, w): (z, w) → u 2 = S 1 (M 3 S -1 z ⊕ M 4 S -1 w ⊕ k 2 ') depending on a further invertible image S 1 executed on 8-bit vectors. Subsequently, the binary operation G S1, S (u 1 u 2 ) → (u 1 u 2 ) → SF (S 1 -1 u 1 ⊕ S 1 -1 u 2 ) calculated. It then applies (G S1, S ° F S1, S, k1 ' ° F S1, S, k2 ') (X, y, z, w) = F (M 1 x ⊕ M 2 y ⊕ M 3 z ⊕ M 4 w ⊕ k 1 '⊕ k 2 ')

Unter der Bedingung k1'⊕ k2'=k' stimmt also die Komposition mit der quaternären Abbildung (x,y,z,w)→F(M1x ⊕ M2y ⊕ M3z ⊕ M4w ⊕ k')überein. Alle drei Abbildungen GS1,S, FS1,S,k1', FS1,S,k2' sind von der Form GF1,F2,F3(x,y)=F1 (F2 (x) ⊕ F3 (y))und können mit Hilfe der oben beschriebenen Methode (speicher-)effizient berechnet werden. Die Anzahl der (schlüsselabhängigen) Tabellen der Form FS1,S,k1' bzw. FS1,S,k2' hängt von der Anzahl der Runden des Algorithmus (in diesem Fall AES) und der Blocklänge ab. Im Falle von AES mit einer Schlüssellänge von 128 bit und der Zahl der Runden=l0 sind es daher 16·10(+16))=176 xor-Operationen dieser Art. Um diese effizient zu berechnen, kann die Folge der Rundenschlüsselparameter Kround=(kj')j=1,...,176 wiederum unter Verwendung zweier xor-linearer orthogonaler Projektionen pr1 und pr2 in zwei Folgen Kround,1=(kj,1')j=1,...,176 und Kround,2=(kj,2')j=1,...,176 mit kj,1'=pr1(kj') und kj,2'=pr2(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 FS1,S,k1,1 und FS1,S,k1,2 vorausberechnet. Die Information darüber, welches Paar von Abbildungen FS1,S,k1' und FS1,S,k1,2' bei der Berechnung einer Funktion F(M1x ⊕ M2y ⊕ M3z ⊕ M4w ⊕ k') als dreifache Komposition verwendet werden muß, wird in einer zusätzlichen Tabelle (von Steuerindizes) abgespeichert.Under the condition k 1 '⊕ k 2 ' = k 'the composition agrees with the quaternary image (X, y, z, w) → F (M 1 x ⊕ M 2 y ⊕ M 3 z ⊕ M 4 w ⊕ k ') match. All three figures G S1, S , F S1, S, k1 ' , F S1, S, k2' are of the form G F1 . F2 . F3 (x, y) = F1 (F2 (x) ⊕ F3 (y)) and can be calculated efficiently (memory) using the method described above. The number of (key-dependent) tables of the form F S1, S, k1 ' or F S1, S, k2' depends on the number of rounds of the algorithm mus (in this case AES) and the block length. In the case of AES with a key length of 128 bits and the number of rounds = l0, it is therefore 16 x 10 (+16)) = 176 xor operations of this kind. To calculate them efficiently, the sequence of round key parameters K round = (k j ') j = 1, ..., 176 again using two xor-linear orthogonal projections pr 1 and pr 2 in two sequences K round, 1 = (k j, 1 ') j = 1, ... , 176 and K round, 2 = (k j, 2 ') j = 1, ..., 176 with k j, 1 ' = pr 1 (k j ') and k j, 2 ' = pr 2 (k j ') are calculated into an xor sum of two sequences each having (at most) 16 different byte values. All (necessary) tables of the form F S1, S, k1,1 and F S1, S, k1,2 are then precalculated. The information about which pair of mappings F S1, S, k1 ' and F S1, S, k1,2' in the calculation of a function F (M 1 x ⊕ M 2 y ⊕ M 3 z ⊕ M 4 w ⊕ k ' ) must be used as a triple composition is stored in an additional table (of 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,1', kj,2' als Teil der Abbildungen FS1,S,k1,1 und FS1,S,k1,2 zu identifizieren. Diese hängen wiederum von der weiteren unbekannte Abbildung S1 ab. S1 und S sind nicht-linear (über F) gekoppelt in der (globalen) Abbildung GS1,S(u1,u2): (u1,u2)→SF(S1 –1 u1 ⊕ S1 –1 u2). Insgesamt entsteht auf diese Weise ein analytisch nur schwer lösbares Rekonstruktionsproblem für die Werte der unbekannten Abbildung S, S1 und die Werte der Rundenschlüssel kj,1', kj,2'.In this new form, the determination of the unknown map S and the key K is attributed to the problem of the projected key parameters k j, 1 ', k j, 2 ' as part of the maps F S1, S, k1,1 and F S1, S, k1,2 to identify. These in turn depend on the further unknown Figure S1. S 1 and S are non-linearly coupled (via F) in the (global) map G S1, S (u 1 , u 2 ): (u 1 , u 2 ) → SF (S 1 -1 u 1 ⊕ S 1 -1 u 2 ). Overall, this results in an analytically difficult to solve reconstruction problem for the values of the unknown map S, S 1 and the values of the round keys k j, 1 ', k j, 2 '.

In einer weiteren Ausführungsform wird vom Sender der maskierte Schlüssel an mehrere Empfänger gesendet. Hierfür verwendet der Sender eine globale Abbildung 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'=SBi°Sgroup –1 prätransformiert, wobei die Abbildung SBi für jeden Empfänger spezifisch ist. Wie jede invertierbare Funktion kann dabei auch die invertierbare Funktion SBi' mit Hilfe einer Funktionstabelle implementiert werden. Danach erfolgt die Anwendung der individuell – 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 –1 keine Rückschlüsse auf die eigentlich zur Erzeugung verwendeten SBiziehen. Bestimmbar sind nur die Abbildungen der Form SBi° SBj –1= SBi'° SBj'–1, also „Quotienten" zweier verschiedener SBi im Sinne der Komposition von Abbildungen. 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 another embodiment, the transmitter sends the masked key to multiple receivers. For this, the transmitter uses a global mapping S group for all receivers to transform the data E (x; k group ) to the different receivers. On the receiver side, the data is then first pre-transformed with the invertible function S Bi '= S Bi ° S group -1 , where the mapping S Bi is specific for each receiver. Like any invertible function, the invertible function S Bi 'can also be implemented using a function table. Thereafter, the application of the individually - under S Bi - transformed encryption algorithms D (x; k goup , S Bi ). Since the transformation S group is only applied on the side of A, the knowledge of the maps S Bi '= S Bi ° S group -1 makes it impossible to draw any conclusions about the S Bi actually used for the generation. Only the images of the form S Bi ° S Bj -1 = S Bi '° S Bj ' -1 , that is to say "quotients" of two different S Bi in the sense of the composition of images, are determinable the data to different recipients the data volume of the messages to be sent simultaneously (per unit of time) becomes too large.

Claims (9)

Verfahren zum Verbergen mindestens eines Schlüssels (k) in einem Verschlüsselungsalgorithmus (Ek(x)) zum Verschlüsseln von Daten (x), wobei das Verfahren folgende Schritte aufweist: – Aufteilen mindestens eines Teils des Verschlüsselungsalgorithmus (Ek(x)) mit dem mindestens einen Schlüssel (k) in elementare Operationen (Ei(x)) und – Ersetzen mindestens einer elementaren Operation (Ei(x)) durch eine auf der Grundlage einer invertierbaren Funktion (S) gebildete äquivalente elementare Operation (Ei'(x)).A method for concealing at least one key (k) in an encryption algorithm (E k (x)) for encrypting data (x), the method comprising the steps of: - splitting at least part of the encryption algorithm (E k (x)) with the at least one key (k) into elementary operations (E i (x)) and - replacing at least one elementary operation (E i (x)) by an equivalent elementary operation (E i '(E) formed on the basis of an invertible function (S) x)). Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die äquivalente elementare Operation (Ei'(x)) durch eine Verkettung der elementaren Operationen (Ei(x)) mit der invertierbaren Funktion (S) und der Invertierten der invertierbaren Funktion (S–1) gebildet wird.Method according to the preceding claim, characterized in that the equivalent elementary operation (E i '(x)) is obtained by concatenating the elementary operations (E i (x)) with the invertible function (S) and the inverting function of the invertible function (S -1 ) is formed. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass nach der Bildung der äquivalenten elementaren Operationen (Ei'(x)) die Verkettung aller elementaren Operationen noch einmal mit der invertierbaren Funktion (S) verkettet werden.Method according to one of the preceding claims, characterized in that, after the formation of the equivalent elementary operations (E i '(x)), the concatenation of all elementary operations is concatenated once more with the invertible function (S). Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die mindestens eine äquivalente elementare Operation (Ei'(x)) mit Hilfe von mindestens einer Tabelle gebildet wird.Method according to one of the preceding claims, characterized in that the at least one equivalent elementary operation (E i '(x)) is formed with the aid of at least one table. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die mindestens eine äquivalente elementare Operation (Ei'(x)) schrittweise mit Hilfe von Projektionen gebildet wird.Method according to one of the preceding claims, characterized in that the at least one equivalent elementary operation (E i '(x)) is formed stepwise by means of projections. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die zu verschlüsselnden Daten (x) in zwei Vektoren aufgespalten werden.Method according to one of the preceding claims, characterized characterized in that the data to be encrypted (x) in two Vectors are split. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es sich bei dem Verschlüsselungsalgorithmus (Ek(x)) um einen symmetrischen Verschlüsselungsalgorithmus handelt.Method according to one of the preceding claims, characterized in that the encryption algorithm (E k (x)) is a symmetric encryption algorithm. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der AES-Algorithmus als Verschlüsselungsalgorithmus verwendet wird.Method according to one of the preceding claims, characterized in that the AES algorithm rithmus is used as the encryption algorithm. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass für die verschiedenen elementaren Operationen (Ei(x)) die gleiche invertierbare Funktion (S) verwendet wird.Method according to one of the preceding claims, characterized in that the same invertible function (S) is used for the different elementary operations (E i (x)).
DE200410043243 2004-09-07 2004-09-07 Method for protecting keys Withdrawn DE102004043243A1 (en)

Priority Applications (3)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
DE102004043243A1 true DE102004043243A1 (en) 2006-03-23

Family

ID=35240950

Family Applications (2)

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

Family Applications After (1)

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

Country Status (2)

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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU773982B2 (en) * 1999-10-25 2004-06-10 Cyphermanx Consultants Limited Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals
FR2825542B1 (en) * 2001-05-31 2003-08-29 Sagem METHOD BASED ON A ROUND REPETITION BLOCK ENCRYPTION ALGORITHM AND DEVICE USING THE SAME
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
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE102011088502B3 (en) Method and apparatus for securing block ciphers against template attacks
EP3218893B1 (en) Hardened white box implementation
DE102005012098B4 (en) Data cipher processor as well as AES cipher system and AES ciphers
DE69634880T2 (en) METHOD AND DEVICE FOR CONTROLLED ACCESS TO ENCRYPTED DATA STORES IN A COMPUTER SYSTEM
DE10319435B4 (en) Method of processing data to protect a software program from being reconstructed
EP2340502B1 (en) Data processing system for providing authorization keys
EP0820670A1 (en) Computer-assisted method for the exchange of cryptographic keys between a user computer unit (u) and network computer unit (n)
WO2011054639A1 (en) Cryptographic hardware module or method for updating a cryptographic key
EP3552344B1 (en) Bidirectionally linked blockchain structure
DE60116195T2 (en) Device and method for concealing input parameters
DE69737806T2 (en) Data encryption method
DE202023104060U1 (en) A multi-level randomized SALT technique for confidentiality in IoT devices
EP3369205B1 (en) Alternative representation of the crypto algorithm des
EP2491513B1 (en) Method and system for making edrm-protected data objects available
DE112005001837B4 (en) Method for protecting keys
EP3747151B1 (en) Method for generating metadata-free trees
WO2004056035A1 (en) Encoding method
WO1997032417A1 (en) Process for generating a check word for a bit sequence for verifying the integrity and authenticity of the bit sequence
DE102007046102B4 (en) A method for protecting against modification of data and for authenticating the data transmitter in the data transmission by using encryption methods in which, with knowledge of encrypted and unencrypted data, other data can no longer be encrypted correctly as randomly.
EP3251281A1 (en) Intrinsic authentication of program code
DE10149191C2 (en) Method and device for determining original source data from original input data on the basis of a cryptographic operation
DE102014203056A1 (en) Encrypt a plaintext in a ciphertext to secure a motor vehicle, especially against theft
EP2648125B1 (en) Method for authorising a program sequence
EP3633914A1 (en) Method and system for traceable data processing using obfuscation
DE102017214591A1 (en) Method and device for protecting a device

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8143 Withdrawn due to claiming internal priority