DE112005001837B4 - Verfahren zum Schutz von Schlüsseln - Google Patents

Verfahren zum Schutz von Schlüsseln Download PDF

Info

Publication number
DE112005001837B4
DE112005001837B4 DE112005001837T DE112005001837T DE112005001837B4 DE 112005001837 B4 DE112005001837 B4 DE 112005001837B4 DE 112005001837 T DE112005001837 T DE 112005001837T DE 112005001837 T DE112005001837 T DE 112005001837T DE 112005001837 B4 DE112005001837 B4 DE 112005001837B4
Authority
DE
Germany
Prior art keywords
key
operations
elementary
encryption algorithm
invertible function
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.)
Active
Application number
DE112005001837T
Other languages
English (en)
Other versions
DE112005001837A5 (de
Inventor
Gerd Mersmann
Hubert E. Kukla
Ingo 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.)
Verimatrix GmbH
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
Publication of DE112005001837A5 publication Critical patent/DE112005001837A5/de
Application granted granted Critical
Publication of DE112005001837B4 publication Critical patent/DE112005001837B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 Ek(x) zum Verschlüsseln von in Form eines Datenvektors vorliegenden Daten x, wobei der Schlüssel k in den Verschlüsselungsalgorithmus Ek(x) eingebettet ist und wobei das Verfahren folgende Schritte aufweist:
– Zerlegen mindestens eines Teils des Verschlüsselungsalgorithmus Ek(x) mit dem mindestens einen eingebetteten Schlüssel k in elementare Operationen Ei(x), wobei die elementaren Operationen Ei(x) jeweils nur auf eine Komponente des Datenvektors wirken und
– Ersetzen mindestens einer elementaren Operation Ei(x) durch eine auf der Grundlage einer invertierbaren Funktion S gebildete äquivalente elementare Operation Ei'(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.
  • 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.
  • 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 werden. 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.
  • 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. Weitere Verfahren sind in FR 2 850 811 A1 und EP 1 263 163 A1 beschreiben.
  • Spezifische Techniken zur zufälligen Transformation, insbesondere kryptographischer Algorithmen werden in der Patentanmeldung WO01/31422 beschrieben.
  • 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.
  • 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 symmetrischen 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.
  • Erfindungsgemäß wird diese Aufgabe durch ein Verfahren gemäß Anspruch 1 zum Verbergen mindestens eines Schlüssels in einem Verschlüsselungsalgorithmus zum Verschlüsseln von Daten gelöst. Das Verfahren weist folgende Schritte auf: Zerlegen 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.
  • 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.
  • 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.
  • 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 bezeichnet.
  • 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.
  • 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.
  • 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 Funk tion gebildet. Hierbei handelt es sich um eine besonders einfache, aber auch effektive Bildung der äquivalenten elementaren Operationen.
  • 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.
  • 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.
  • 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.
  • 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 ge schlossen 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.
  • 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.
  • 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 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.
  • 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 Challenge-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.
  • Im folgenden werden bevorzugte Ausführungsformen der vorliegenden Erfindung beispielhaft anhand der beiliegenden Figuren beschrieben, wobei
  • 1 in einem Flussdiagramm die Anwendung einer ersten Ausführungsform des erfindungsgemäßen Verfahrens veranschaulicht, und
  • 2 in einem Flussdiagramm die Anwendung einer zweiten Ausführungsform des erfindungsgemäßen Verfahrens veranschaulicht.
  • 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 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]
  • 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.
  • 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.
  • 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 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.
  • 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.
  • 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. 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.
  • 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).
  • 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).
  • 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–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 216 = 65536 Byte-Werten, die Operation x → GS,k(x) eine Tabelle mit 256 Byte-Werten.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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)
  • 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–1x)) und pr2,S(x) = (S°pr2°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 65 Kbytes 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.
  • 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).
  • 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.
  • 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.
  • 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)]
  • 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))
  • 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.
  • 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.
  • Mit Hilfe der vorliegenden Erfindung wird somit ein Verfahren bereitgestellt, mit dem ein in einen Verschlüsselungsalgorithmus eingebetteter Schlüssel verdeckt werden kann.
  • 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 4×4-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().
  • 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')
  • 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.
  • 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 –1u1 ⊕ S1 –1u2)berechnet. Es gilt dann (GS1,S°FS1,S,k1'°FS1,S,k2')(x, y, z, w) = F(M1x ⊕ M2y ⊕ M3z ⊕ M4w ⊕ k1' ⊕ k2')
  • Unter der Bedingung k1' ⊕ k2' = k' stimmt also die Komposition mit der quaternären Abbildung (x, y, z, w) → (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,S1,k1' bzw. FS1,S1,k2' hängt von der Anzahl der Runden des Algorithmus (in diesem Fall AES) und der Blocklänge ab. Im Falle von ABS 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,1' 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.
  • 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 –1u1 ⊕ S1 –1u2). 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 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 SBi ziehen. 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.

Claims (9)

  1. Verfahren zum Verbergen mindestens eines Schlüssels k in einem Verschlüsselungsalgorithmus Ek(x) zum Verschlüsseln von in Form eines Datenvektors vorliegenden Daten x, wobei der Schlüssel k in den Verschlüsselungsalgorithmus Ek(x) eingebettet ist und wobei das Verfahren folgende Schritte aufweist: – Zerlegen mindestens eines Teils des Verschlüsselungsalgorithmus Ek(x) mit dem mindestens einen eingebetteten Schlüssel k in elementare Operationen Ei(x), wobei die elementaren Operationen Ei(x) jeweils nur auf eine Komponente des Datenvektors wirken und – Ersetzen mindestens einer elementaren Operation Ei(x) durch eine auf der Grundlage einer invertierbaren Funktion S gebildete äquivalente elementare Operation Ei'(x).
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die zu verschlüsselnden Daten x in zwei Vektoren aufgespalten werden.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es sich bei dem Verschlüsselungsalgorithmus Ek(x) um einen symmetrischen Verschlüsselungsalgorithmus handelt.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der AES-Algorithmus als Verschlüsselungsalgorithmus verwendet wird.
  9. 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.
DE112005001837T 2004-09-07 2005-08-24 Verfahren zum Schutz von Schlüsseln Active DE112005001837B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102004043243.0 2004-09-07
DE200410043243 DE102004043243A1 (de) 2004-09-07 2004-09-07 Verfahren zum Schutz von Schlüsseln
PCT/EP2005/009134 WO2006027107A1 (de) 2004-09-07 2005-08-24 Verfahren zum schutz von schlüsseln

Publications (2)

Publication Number Publication Date
DE112005001837A5 DE112005001837A5 (de) 2008-02-28
DE112005001837B4 true DE112005001837B4 (de) 2010-09-16

Family

ID=35240950

Family Applications (2)

Application Number Title Priority Date Filing Date
DE200410043243 Withdrawn DE102004043243A1 (de) 2004-09-07 2004-09-07 Verfahren zum Schutz von Schlüsseln
DE112005001837T Active DE112005001837B4 (de) 2004-09-07 2005-08-24 Verfahren zum Schutz von Schlüsseln

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE200410043243 Withdrawn DE102004043243A1 (de) 2004-09-07 2004-09-07 Verfahren zum Schutz von Schlüsseln

Country Status (2)

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

Citations (4)

* 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 (de) * 2001-05-31 2002-12-04 Sagem SA Auf einem Blockverschlüsselungsalgorithmus mit Rundenwiederholung basiertes Verfahren und Vorrichtung zur Ausführung des Verfahrens
US20040059767A1 (en) * 2002-09-20 2004-03-25 Pierre-Yvan Liardet Masking of factorized data in a residue number system
FR2850811A1 (fr) * 2003-01-30 2004-08-06 St Microelectronics Sa Procede anti-fraude pour circuit integre manipulant des donnees secretes

Patent Citations (4)

* 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 (de) * 2001-05-31 2002-12-04 Sagem SA Auf einem Blockverschlüsselungsalgorithmus mit Rundenwiederholung basiertes Verfahren und Vorrichtung zur Ausführung des Verfahrens
US20040059767A1 (en) * 2002-09-20 2004-03-25 Pierre-Yvan Liardet Masking of factorized data in a residue number system
FR2850811A1 (fr) * 2003-01-30 2004-08-06 St Microelectronics Sa Procede anti-fraude pour circuit integre manipulant des donnees secretes

Also Published As

Publication number Publication date
WO2006027107A1 (de) 2006-03-16
DE102004043243A1 (de) 2006-03-23
DE112005001837A5 (de) 2008-02-28

Similar Documents

Publication Publication Date Title
DE102011088502B3 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
EP3218893B1 (de) Gehärtete white box implementierung
DE69333068T2 (de) Verfahren zur ausdehnung der gültigkeit eines kryptographischen zertifikats
EP2433241B1 (de) Verschlüsselungsverfahren
EP2340502B1 (de) Datenverarbeitungssystem zur bereitstellung von berechtigungsschlüsseln
WO1997047109A1 (de) Verfahren zum kryptographischen schlüsselmanagement zwischen einer ersten computereinheit und einer zweiten computereinheit
EP0820670A1 (de) Verfahren zum rechnergestützten austausch kryptographischer schlüssel zwischen einer benutzercomputereinheit u und einer netzcomputereinheit n
EP0472714A1 (de) Verfahren zur authentifizierung eines eine datenstation benutzenden anwenders
WO2011054639A1 (de) Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
DE60116195T2 (de) Vorrichtung und Verfahren zur Verschleierung von Eingangsparametern
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
DE69737806T2 (de) Datenverschlüsselungsverfahren
DE69826778T2 (de) Vorrichtungen zum Verschlüsseln und Entschlüsseln einer Schlüsselwiedergewinnungsbedingung
DE202023104060U1 (de) Eine mehrstufige randomisierte SALT-Technik für Vertraulichkeit in IoT-Geräten
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
DE112005001837B4 (de) Verfahren zum Schutz von Schlüsseln
EP2491513B1 (de) Verfahren und system zum bereitstellen von edrm-geschützten datenobjekten
DE102014213454A1 (de) Verfahren und System zur Erkennung einer Manipulation von Datensätzen
EP3747151B1 (de) Verfahren zur generierung metadaten-freier bäume
DE102019216203A1 (de) Auf Blockverschlüsselung basierender Proof-of-Work
WO1997032417A1 (de) Verfahren zum generieren eines prüfworts für eine bitfolge zur überprüfung der integrität und authentizität der bitfolge
WO2004056035A1 (de) Verschlüsselungsverfahren
DE102020006075A1 (de) Verfahren zur Absicherung von gespeicherten Nutzdaten
DE202015005361U1 (de) Vorrichtung, die Zugriffsschutz für strukturhaltige verteilte Daten realisiert
DE10149191C2 (de) Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R081 Change of applicant/patentee

Owner name: VERIMATRIX GMBH, DE

Free format text: FORMER OWNER: COMVENIENT GMBH, 85737 ISMANING, DE

Owner name: VERIMATRIX GMBH, DE

Free format text: FORMER OWNER: COMVENIENT GMBH & CO. KG, 80807 MUENCHEN, DE

R082 Change of representative

Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT MBB PATENTANW, DE