DE102015211566B4 - A method, component and computer program product for determining a derived key - Google Patents

A method, component and computer program product for determining a derived key Download PDF

Info

Publication number
DE102015211566B4
DE102015211566B4 DE102015211566.6A DE102015211566A DE102015211566B4 DE 102015211566 B4 DE102015211566 B4 DE 102015211566B4 DE 102015211566 A DE102015211566 A DE 102015211566A DE 102015211566 B4 DE102015211566 B4 DE 102015211566B4
Authority
DE
Germany
Prior art keywords
puzzle
key
solution
memory
derived
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.)
Expired - Fee Related
Application number
DE102015211566.6A
Other languages
German (de)
Other versions
DE102015211566A1 (en
Inventor
Rainer Falk
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE102015211566.6A priority Critical patent/DE102015211566B4/en
Publication of DE102015211566A1 publication Critical patent/DE102015211566A1/en
Application granted granted Critical
Publication of DE102015211566B4 publication Critical patent/DE102015211566B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Abstract

Die vorliegende Erfindung betrifft ein Verfahren zum Bestimmen eines abgeleiteten Schlüssels (DK) aus einem Schlüssel (K) und einem Ableitungsparameter (DP), bei dem mittels des Schlüssels (K) und/oder des Ableitungsparameters (DP) zunächst ein Puzzle (PC) bestimmt wird, das zu lösen ist, bevor aus der Lösung (PS) des Puzzles und dem Schlüssel (K) und/oder dem Ableitungsparameter (DP) der abgeleitete Schlüssel berechnet wird.The present invention relates to a method for determining a derived key (DK) from a key (K) and a derivation parameter (DP), in which a puzzle (PC) is first determined by means of the key (K) and / or the derivation parameter (DP) which is to be solved before the derived key is calculated from the solution (PS) of the puzzle and the key (K) and / or the derivative parameter (DP).

Description

Passwörter bzw. kryptographische Schlüssel sind die Basis für kryptographische Algorithmen. In der Praxis sind diese häufig schwach gewählt, so dass automatisierte Angriffe wie Brute Force Angriffe oder Wörterbuchangriffe ernsthafte Bedrohungen für die mit den entsprechend Passwörtern oder Schlüsseln geschützten Systeme oder Daten darstellen.Passwords or cryptographic keys are the basis for cryptographic algorithms. In practice, these are often chosen weakly, so that automated attacks such as brute force attacks or dictionary attacks pose serious threats to the systems or data protected by the corresponding passwords or keys.

Um solche Angriffe zu erschweren ist es bekannt, neben dem sogenannten Salting Schlüsselableitungsfunktionen einzusetzen, bei denen die Schlüsselberechnung bewusst aufwendig gestaltet ist, so dass das für einen Angriff erforderliche millionenfache Ausführen der Schlüsselberechnung dazu führt, dass die Kosten für den Angriff dessen Nutzen übersteigen. Derartige Schlüsselableitungsfunktionen sind bekannt als absichtlich verlangsamte Schlüsselableitungsfunktionen (englisch: deliberately slow password-based key derivation function). Beispiele sind bekannt unter den Namen PBKDF2 und bcrypt.In order to make such attacks more difficult, it is known to use key extraction functions in addition to the so-called salting, in which the key calculation is intentionally elaborate, so that the million-fold execution of the key calculation required for an attack results in the costs of the attack exceeding its usefulness. Such key derivation functions are known as intentionally slow password-based key derivation function. Examples are known under the names PBKDF2 and bcrypt.

Die bekannten absichtlich verlangsamten Schlüsselableitungsfunktionen weisen allerdings zwei grundsätzliche Probleme auf. Zum einen ist preiswert in großen Stückzahlen erhältliche Standardhardware, beispielsweise moderne Grafikprozessoren, in der Lage, durch Parallelisierung den Verlangsamungseffekt der Schlüsselableitungsfunktionen zu neutralisieren. Brute Force Angriffe und Wörterbuchangriffe sind auch für verlangsamte Schlüsselableitungsfunktionen eine ernsthafte Bedrohung.The known deliberately slowed down key derivation functions, however, have two fundamental problems. On the one hand, inexpensive standard hardware available in large quantities, for example modern graphics processors, is able to neutralize the slowing down effect of the key derivation functions by means of parallelization. Brute force attacks and dictionary attacks are also a serious threat to slowed down key derivation functions.

Andererseits gibt es eine stark wachsende Anzahl von Geräten mit geringer und geringster Rechenleistung, die aber dennoch modernen Sicherheitsanforderungen genügen und resistente Schlüsselableitungsfunktionen implementieren müssen. Beispiele hierfür sind Embedded Geräte, Smartwatches oder Geräte der Heimautomatisierung, bei denen auch der Energieverbrauch bei der Berechnung abgeleiteter Schlüssel eine zentrale Rolle spielt und aber die Schlüsselberechnung häufig notwendig ist, um die Sicherheit des Netzes, in das die Geräte eingebunden sind, zu gewährleisten.On the other hand, there is a rapidly growing number of low-power and lowest-performance devices that still need to meet modern security requirements and implement resistant key extraction functions. Examples include embedded devices, smartwatches, or home automation devices, where power consumption also plays a key role in calculating derived keys, but key calculation is often necessary to ensure the security of the network in which the devices are embedded.

Während also die Erhöhung der Rechenanforderungen für Schlüsselableitungsfunktionen beispielsweise durch Erhöhung der Anzahl der Iterationen, die für die Schlüsselberechnung zu durchlaufen sind, aufgrund der stetig wachsenden (und aufgrund von modernen Verfahren wie Cloud Computing nahezu unendlichen) Rechenleistung nur bedingt zur gewünschten Erschwerung von Angriffen führt, verhindert diese Komplexität andererseits ab einem gewissen Grad den Einsatz auf Geräten mit geringer Rechenleistung wie Embedded Geräten.Thus, while increasing the computational requirements for key derivation functions, for example, by increasing the number of iterations to be passed through for the key computation only marginally leads to the desired aggravation of attacks due to the ever-increasing (and due to modern methods such as cloud computing almost infinite) computing power, On the other hand, to a certain degree, this complexity prevents it from being used on devices with low computing power such as embedded devices.

Die Druckschrift US 2007/0011453 A1 offenbart hierzu die Errichtung eines vertrauensvollen Verhältnisses zwischen unbekannten Kommunikationsparteien. Der Prüfpartner leitet die genannte Errichtung des vertrauensvollen Verhältnisses mit dem Verifikationspartner ein. Der Prüfpartner führt hierzu kryptographische Berechnungen auf der Basis eines Eingabedatensatzes durch, um ein Problem zu lösen.The publication US 2007/0011453 A1 discloses for this purpose the establishment of a trusting relationship between unknown communication parties. The test partner initiates the said establishment of the trusting relationship with the verification partner. The test partner performs cryptographic calculations on the basis of an input data set in order to solve a problem.

Es ist daher eine Aufgabe der vorliegenden Erfindung, eine verbesserte Schlüsselableitungsfunktion anzugeben, die insbesondere für Embedded Geräte geeignet ist.It is therefore an object of the present invention to provide an improved key derivation function which is particularly suitable for embedded devices.

Diese Aufgabe wird gelöst durch ein Verfahren zum Bestimmen eines abgeleiteten Schlüssels aus einem Schlüssel und einem Ableitungsparameter, bei dem mittels des Schlüssels und/oder des Ableitungsparameters zunächst ein Puzzle bestimmt wird, das zu lösen ist, bevor aus der Lösung des Puzzles und dem Schlüssel und/oder dem Ableitungsparameter der abgeleitete Schlüssel berechnet wird.This object is achieved by a method for determining a derived key from a key and a derivation parameter, wherein by means of the key and / or the derivation parameter first a puzzle is determined which is to be solved before solving the puzzle and the key and / or the derivative parameter is derived from the derived key.

Mit diesem Verfahren wird, abhängig von der Schwierigkeit des zu lösenden Puzzles, die Schlüsselableitung verlangsamt.With this method, depending on the difficulty of the puzzle to be solved, the key derivation is slowed down.

Mit Schlüssel ist an dieser Stelle ein kryptographischer Schlüssel oder ein Passwort gemeint. Dabei kann es sich bei dem Schlüssel um einen mit dem vorliegenden oder einem anderen kryptographischen Verfahren abgeleiteten Schlüssel handeln.By key is meant at this point a cryptographic key or a password. The key may be a key derived from the present or another cryptographic method.

Mit Puzzle ist an dieser Stelle ein Rechenpuzzle bzw. ein kryptographisches Puzzle gemeint. Eine andere Bezeichnung hierfür ist Proof of Work. Ein Puzzle bzw. Proof of Work ist eine Aufgabe (englisch: Challenge), die von einer Recheneinheit zu lösen ist, bevor die eigentliche Berechnung ausgeführt werden kann.With puzzle at this point is meant a mathematical puzzle or a cryptographic puzzle. Another name for this is Proof of Work. A puzzle or proof of work is a task (English: Challenge), which is to be solved by a computing unit, before the actual calculation can be performed.

In einer vorteilhaften Ausgestaltung der Erfindung wird die Lösung zumindest eines Puzzles nach erstmaliger Lösung dieses Puzzles in einem Speicher gespeichert und wiederverwendet, falls das Puzzle zu einem späteren Zeitpunkt erneut zu lösen ist. Dieser Speicher ist vorzugsweise ein flüchtiger Speicher, so dass nach dem Trennen des Geräts von der Stromversorgung und/oder nach einer bestimmten Zeit der Zwischenwert nicht mehr durch einen Angreifer ausgelesen werden kann. Alternativ kann vorgesehen werden, die Lösung bestimmter, beispielsweise besonders aufwendiger Puzzles über eine externe Schnittstelle in den Speicher zu schreiben.In an advantageous embodiment of the invention, the solution of at least one puzzle after initial solution of this puzzle is stored in a memory and reused, if the puzzle is to be solved again at a later date. This memory is preferably a volatile memory, so that after disconnecting the device from the power supply and / or after a certain time, the intermediate value can no longer be read out by an attacker. Alternatively, it can be provided to write the solution of certain, for example, particularly complicated puzzles via an external interface in the memory.

Dadurch wird erreicht, dass langsame Geräte, die aber in der Regel das korrekte Passwort bzw. den korrekten Schlüssel übergeben bekommen und daher die Berechnung nur wenige Male durchführen müssen, bei einer erneuten Anforderung das zeitaufwendige Puzzle nicht erneut lösen müssen, sondern auf den gespeicherten Wert zurückgreifen können und der Autorisierungsprozess dadurch erheblich beschleunigt werden kann. Werden Puzzlelösungen aus einer externen Quelle in den Speicher geschrieben, können Geräte mit besonders geringer Rechenleistung in die Lage versetzt werden, komplexeste Puzzle Challenges zu bearbeitenThis ensures that slow devices, but usually get the correct password or the correct key and therefore need to perform the calculation only a few times, in a renewed request the Time-consuming puzzles do not need to be redone, but can rely on the stored value and the authorization process can be significantly accelerated. Writing jigsaw puzzles from an external source into memory enables low-performing devices to handle the most complex puzzle challenges

Das Verfahren kann iterativ ausgestaltet werden, um die Schlüsselableitungsfunktion weiter zu verlangsamen und Angriffe, die beispielsweise Puzzle-Nachschlagetabellen benutzen, zu erschweren.The method may be iteratively designed to further slow down the key derivation function and to make attacks using, for example, puzzle lookup tables difficult.

Die vorliegende Erfindung betrifft ferner eine Komponente, insbesondere ein Embedded Gerät, die Mittel zur Umsetzung des erfindungsgemäßen Verfahrens aufweist, sowie eine Datenverarbeitungsanlage mit einer solchen Komponente und ein Computerprogrammprodukt.The present invention further relates to a component, in particular an embedded device having means for implementing the method according to the invention, and a data processing system with such a component and a computer program product.

Im Folgenden werden Ausführungsbeispiele der vorliegenden Erfindung anhand einer Zeichnung näher erläutert.In the following, embodiments of the present invention will be explained in more detail with reference to a drawing.

Die einzige Figur zeigt in schematischer Darstellung eine Schlüsselableitungsfunktion 100. Diese erhält als Eingangswert einen Schlüssel bzw. ein Passwort K sowie einen Ableitungsparameter DP. Eine Puzzle-Erzeugungsfunktion (Puzzle Challenge Builder PCB) 110 erzeugt anhand zumindest eines dieser beiden Werte ein Puzzle PC, das von der Puzzle-Lösungseinheit (Puzzle Solver) 120 gelöst wird. Die Puzzlelösung PS wird an einen optionalen Verketter bzw. Concatenator 130 übergeben, welcher durch Verkettung der Puzzlelösung mit dem Ableitungsparameter DP die Resistenz des Verfahrens gegen bestimmte Angriffe erhöht und/oder der Sicherstellung einer Mindestlänge des der nächsten Stufe übergebenen Parameters dient. Schließlich wird aus dem Schlüssel bzw. Passwort K und der (ggf. mit dem Ableitungsparameter DP verketteten) Puzzlelösung PS der abgeleitete Schlüssel DK berechnet, im Beispiel der Figur durch eine HMAC-SHA256 Funktion 140. Natürlich können beliebige andere kryptographische Funktionen anstelle von HMAC-SHA256 verwendet werden, und natürlich ist es möglich, die Puzzlelösung PS in beliebiger Weise vorzuverarbeiten, bevor sie an die Einheit 140 übergeben wird.The single figure shows a schematic representation of a key derivation function 100 , This receives as input value a key or a password K and a derivation parameter DP. A Puzzle Creation Function (Puzzle Challenge Builder PCB) 110 generates a puzzle PC based on at least one of these values from the puzzle solver (Puzzle Solver) 120 is solved. The puzzle solution PS is sent to an optional concatenator 130 which, by concatenating the puzzle solution with the derivative parameter DP, increases the resistance of the method against certain attacks and / or serves to ensure a minimum length of the parameter passed to the next stage. Finally, the derived key DK is calculated from the key or password K and the puzzle solution PS (possibly linked with the derivation parameter DP), in the example of the figure by an HMAC-SHA256 function 140 , Of course, any other cryptographic functions may be used instead of HMAC-SHA256, and of course it is possible to pre-process the puzzle solution PS in any manner before contacting the unit 140 is handed over.

Das in den einzelnen Komponenten ablaufende Verfahren wird im Folgenden genauer beschrieben. Als Ausgangspunkt hierfür soll die Betrachtung der bekannten Funktion PBKDF2 dienen. Diese erzeugt einen abgeleiteten Schlüssel DK wie folgt: DK = PBKDF2(PRF, Password, Salt, c, dkLen) wobei PRF eine Pseudozufallsfunktion ist; Password das Masterpasswort bzw. der Ausgangsschlüsselwert, aus dem der abgeleitete Schlüssel erzeugt wird; Salt der bekannte kryptographische Salt-Wert; c die Anzahl der gewünschten Wiederholungen des Algorithmus zur Schlüsselableitung, durch welche die Verzögerung bewirkt wird; und dkLen die Ziellänge des abgeleiteten Schlüssels.The process occurring in the individual components is described in more detail below. The starting point for this is the consideration of the known function PBKDF2. This generates a derived key DK as follows: DK = PBKDF2 (PRF, Password, Salt, c, dkLen) where PRF is a pseudo-random function; Password the master password or output key value from which the derived key is generated; Salt the well-known cryptographic salt value; c is the number of desired repetitions of the key derivation algorithm by which the delay is effected; and dkLen the target length of the derived key.

In c Iterationen des Verfahrens werden c Werte berechnet: U1 = PRF(Password, Salt || INT 32 BE(i)) U2 = PRF(Password, U1) ... Uc = PRF(Password, Uc – 1) In c iterations of the method, c values are calculated: U1 = PRF (Password, Salt || INT 32 BE (i)) U2 = PRF (Password, U1) ... Uc = PRF (Password, Uc - 1)

Der abgeleitete Schlüssel DK schließlich wird durch eine Exklusiv-Oder-Verknüpfung der Werte Ui..Uc erzeugt.Finally, the derived key DK is generated by an exclusive-OR combination of the values Ui..Uc.

Der Parameter i dient dem sogenannten Key Stretching bzw. Key Expansion auf die Länge dkLen. Im Allgemeinen entspricht die Länge der Ausgabe der PRF nicht der gewünschten Länge dkLen. Daher kann die Operation mit unterschiedlichen Parametern i mehrfach ausgeführt werden, um Teilergebnisse zu ermitteln. Die Ausgabe der gewünschten Länge dkLen ergibt sich als Verkettung bzw. Konkatenation der Teilergebnisse.The parameter i serves the so-called key stretching or key expansion to the length dkLen. In general, the length of the output of the PRF does not correspond to the desired length dkLen. Therefore, the operation with different parameters i can be performed multiple times to obtain partial results. The output of the desired length dkLen results as concatenation or concatenation of the partial results.

Wie schon eingangs erörtert erhöht sich durch eine Steigerung der Zahl der Iterationen c zwar der Aufwand für Angreifer, macht die Anwendung des Algorithmus für Systeme mit eingeschränkter Rechenleistung aber unattraktiv oder sogar unmöglich.As discussed earlier, increasing the number of iterations c increases the cost of attackers, but makes the algorithm unattractive or even impossible for systems with limited computational power.

In einem Ausführungsbeispiel der vorliegenden Erfindung wird daher eine Schlüsselableitungsfunktion KDF zur Berechnung eines abgeleiteten Schlüssels genutzt, die auf Iterationen verzichtet und nur einen Ausgangsschlüssel bzw. ein Passwort K sowie einen Ableitungsparameter DP als Eingangswerte nutzt: DK = KDF(K, DP) Therefore, in one embodiment of the present invention, a key derivation function KDF is used to calculate a derived key that omits iterations and uses only an output key or password K and a derivative parameter DP as input values: DK = KDF (K, DP)

Der Ableitungsparameter DP kann dabei eine Zeichenkette, eine Bitfolge oder ein Zähler sein.The derivative parameter DP can be a character string, a bit sequence or a counter.

Als Teil der Berechnung ist ein kryptographisches Puzzle zu lösen. Dazu muss bei der Berechnung des abgeleiteten Schlüssels, beispielsweise durch ”Raten” oder Ausprobieren oder andere zeitaufwendige Verfahren, die Lösung eines kryptographischen Puzzles PC bestimmt werden. Den Stand des Fachwissens zu kryptographischen Puzzles bzw. Proof of Work Funktionen fasst der nur in englischer Sprache erhältliche Artikel ”Cryptographic Puzzles and DoS Resilience, Revisited” von B. Groza und B. Warinschi, erhältlich unter http://www.auf.upt.ro/-bgroza/Papers/puz.pdf und zuerst erschienen in ”Designs, Codes and Cryptography”, Vol. 73 Issue 1, Oktober 2014, Seiten 177–207, zusammen. Im Folgenden wird nur auf die Aspekte kryptographischer Puzzles Bezug genommen, die im Zusammenhang mit der vorliegenden Erfindung von besonderer Bedeutung sind; grundsätzliche Funktionsweisen kryptographischer Puzzles sind dem Fachmann, nicht zuletzt aus o. g. Artikel, wohlbekannt.As part of the calculation, a cryptographic puzzle has to be solved. For this, the solution of a cryptographic puzzle PC must be determined when calculating the derived key, for example, by "guessing" or trying out or other time-consuming procedures. Cryptographic Puzzles and DoS Resilience, Revisited, by B. Groza and Cryptographic Puzzles and DoS Resilience, Revisited, reviews the state of the art in cryptographic puzzles and proof of work functions B. Warinschi, available at http://www.auf.upt.ro/-bgroza/Papers/puz.pdf and first published in "Designs, Codes and Cryptography", Vol. 73 Issue 1, October 2014, pages 177- 207, together. In the following, only the aspects of cryptographic puzzles which are of particular importance in connection with the present invention will be referred to; Basic functions of cryptographic puzzles are well known to those skilled in the art, not least from the above-mentioned articles.

Das kryptographische Puzzle PC wird durch einen Puzzle Challenge Builder 110 abhängig von K und/oder DP bestimmt. Die Puzzlelösung PS muss durch den Puzzle Solver 120 z. B. durch Ausprobieren von Kandidatenwerten aus einem Wertebereich bestimmt werden.The cryptographic puzzle PC is powered by a Puzzle Challenge Builder 110 depending on K and / or DP. The puzzle solution PS has to go through the puzzle solver 120 z. B. be determined by trying out candidate values from a range of values.

Erst wenn das Puzzle gelöst wurde, d. h. der Ausgabewert PS des Puzzle Solvers 120 vorliegt, kann die Schlüsselableitung mit in der Einheit 140 mittels HMAC-SHA256 berechnet werden. Wie schon erwähnt sind zahlreiche Alternativen realisierbar.Only when the puzzle has been solved, ie the output value PS of the puzzle solver 120 is present, the key derivation with in the unit 140 be calculated using HMAC-SHA256. As already mentioned numerous alternatives can be realized.

Der Puzzle-Solver 120 kann einen internen Speicher (nicht dargestellt) aufweisen, um Puzzle-Lösungen für bereits berechnete Puzzles zwischenzuspeichern. Falls für eine bestimmte Puzzle-Challenge PC ein Eintrag vorhanden ist, so muss das Puzzle nicht erneut gelöst werden.The puzzle solver 120 may have an internal memory (not shown) to cache puzzle solutions for already calculated puzzles. If there is an entry for a particular Puzzle Challenge PC, the puzzle does not have to be solved again.

In Ausgestaltungen der vorliegenden Erfindung können Einträge in den Speicher über eine externe Schnittstelle vorgenommen werden. Auf diese Weise können auf einem stark eingeschränkten Embedded Gerät vorberechnete Einträge z. B. durch ein Projektierungs-Tool via Service-Zugang hinterlegt werden.In embodiments of the present invention, entries may be made in the memory via an external interface. In this way, pre-calculated entries can be stored on a severely restricted embedded device. This can be stored, for example, by a configuration tool via service access.

In einem Ausführungsbeispiel der vorliegenden Erfindung wird eine Puzzle Challenge PC abhängig von Ausgangsschlüssel bzw. Passwort K und Parameter DP gemäß der folgenden Beziehung ermittelt: PC = PCB(K, DP) wobei PCB für die Puzzle Challenge Building Funktion 110 steht. Als PCB Funktion kann der HMAC-SHA256 Algorithmus verwendet werden: PC = HMAC-SHA256(K, ”Puzzle-Challenge” || DP) In one embodiment of the present invention, a puzzle challenge PC is determined depending on the output key or password K and parameter DP according to the following relationship: PC = PCB (K, DP) being PCB for the Puzzle Challenge Building feature 110 stands. As a PCB function, the HMAC-SHA256 algorithm can be used: PC = HMAC-SHA256 (K, "Puzzle Challenge" || DP)

Um die richtige Lösung zu ermitteln, wird ein Prüfkriterium angewandt. Handelt es sich bei der Lösung beispielsweise um einen 16-Bit-Wert, gibt es 2^16 = 65536 mögliche Werte für PC. In einem Ausführungsbeispiel der vorliegenden Erfindung wird für jeden dieser möglichen Werte eine Puzzle-Prüffunktion CPC (englisch: Cryptographic Puzzle Check) berechnet, beispielsweise gemäß folgender Vorschrift: CPC(PC, PS) = HMAC-SHA256(PC, PS) In order to find the right solution, a test criterion is applied. For example, if the solution is a 16-bit value, there are 2 ^ 16 = 65536 possible values for PC. In one embodiment of the present invention, a puzzle check function CPC (English: Cryptographic Puzzle Check) is calculated for each of these possible values, for example according to the following rule: CPC (PC, PS) = HMAC-SHA256 (PC, PS)

In diesem Beispielfall ergeben sich also 65536 Zwischenergebnisse als Teil des Puzzles.In this case, 65536 intermediate results are part of the puzzle.

Es wird dann derjenige Puzzle-Wert als Lösung PS ausgewählt, für den CPC(PC, PS) ein vorgegebenes Kriterium erfüllt: So kann es z. B. das kleinste Zwischenergebnis sein, das größte, oder das mit dem Median-Wert, oder das mit einem bestimmten Index der sortierten Zwischenergebnisse. Es kann auch dasjenige ausgewählt werden, das mit einem vorgegebenen Bitmuster die höchste Übereinstimmung aufweist (d. h. die größte Anzahl von gemeinsamen Bits). Bei Mehrdeutigkeiten kann ein weiteres Kriterium herangezogen werden, z. B. ein Größenvergleich.It is then that puzzle value selected as the solution PS, for the CPC (PC, PS) meets a predetermined criterion: So it can be z. For example, the smallest intermediate result, the largest, or the one with the median value, or that with a certain index of the sorted intermediate results. It is also possible to select one having the highest match with a given bit pattern (i.e., the largest number of common bits). For ambiguities, another criterion can be used, eg. B. a size comparison.

Um im Puzzle Solver 120 diesen Wert zu bestimmen, müssen also regelmäßig 65536 HMAC-SHA256-Berechnungen durchgeführt werden, wodurch die Lösung des Puzzles Berechnung einen gewissen Rechenaufwand erfordert.To be in the puzzle solver 120 To determine this value, 65536 HMAC-SHA256 calculations have to be carried out regularly, so that the solution of the puzzle calculation requires a certain amount of computation.

Der abgeleitete Schlüssel DK wird nun mittels der folgenden Funktion berechnet: DK = HMAC-SHA256(K, ”Puzzle-Key-Derivation” || PS || DP) The derived key DK is now calculated using the following function: DK = HMAC-SHA256 (K, "Puzzle Key Derivation" || PS || DP)

Alternativ könnte z. B. die folgende Funktion angewendet werden: DK = HMAC-SHA256(HMAC-SHA256(K, ”Puzzle-Key-Derivation” || PS) || DP) Alternatively, z. For example, you can use the following function: DK = HMAC-SHA256 (HMAC-SHA256 (K, "Puzzle-Key-Derivation" || PS) || DP)

In dieser alternativen Ausgestaltung wird zuerst ein Schlüssel aus K und PS abgeleitet, und dann erfolgt eine weitere Ableitung mit DP als Ableitungsparameter. Wenn keine Hilfsinformation bekannt ist, so muss das Puzzle durch Ausprobieren gelöst werden.In this alternative embodiment, a key is first derived from K and PS, and then another derivative with DP takes place as a derivative parameter. If no help information is known, then the puzzle must be solved by trial and error.

Wie bereits erwähnt ist es jedoch möglich, eine Hilfsinformation für die Lösung des Puzzles zu speichern. Beispielsweise kann die konkrete Lösung PC unmittelbar gespeichert werden oder der zu durchsuchende Lösungsraum wird durch geeignete Parameter eingegrenzt, beispielsweise eine untere und eine obere Grenze.As already mentioned, however, it is possible to store auxiliary information for solving the puzzle. For example, the concrete solution PC can be stored directly or the solution space to be searched is limited by suitable parameters, for example a lower and an upper limit.

Insbesondere bei sich wiederholenden Prüfungen kann eine derartige Hilfsinformation erheblich zur Beschleunigung der Passwort- oder Schlüsselüberprüfung beitragen. In Ausgestaltungen der Erfindung wird zu jedem gültigen Passwort bzw. Schlüssel eine Hilfs- bzw. Beschleunigungsinformation gespeichert. Bei dieser Hilfs- bzw. Beschleunigungsinformation kann es sich um die Lösung oder eine Lösungsraumbeschränkungen für eine oder mehrere Iterationen der Schlüsselableitungsfunktion handeln. Die Hilfs- bzw. Beschleunigungsinformation kann lokal gewonnen werden, indem bei der erstmaligen Ableitung eine normale Berechnung mit Lösen des oder der Puzzles durch Raten erfolgt. Die Lösungen einzelner Iterationen werden gespeichert.Especially with repetitive checks, such auxiliary information can significantly contribute to speeding up the password or key verification. In embodiments of the invention, auxiliary or acceleration information is added to each valid password or key saved. This auxiliary or acceleration information may be the solution or a solution space constraint for one or more iterations of the key derivation function. The auxiliary or acceleration information can be obtained locally by performing a normal calculation with solving the puzzle or puzzles by guessing at the first derivation. The solutions of individual iterations are stored.

Bei Verwendung für eine Passwort-Prüfung auf einem Unixbasierten System, z. B. einem Embedded Linux System, kann die Hilfs- bzw. Beschleunigungsinformation beispielsweise in der Datei /etc/shadow abgelegt werden.When used for password checking on a Unix-based system, eg. As an embedded Linux system, the auxiliary or acceleration information can be stored for example in the file / etc / shadow.

In einer vorteilhaften Variante der vorliegenden Erfindung werden iterativ mehrere Schlüsselableitungen berechnet. Zumindest eine dieser Iterationen umfasst die Lösung eines kryptographischen Puzzles wie vorstehend ausführlich beschrieben. Besonders vorteilhaft ist es, in mehreren oder sogar allen Iterationen kryptographische Puzzles vorzusehen. Mit anderen Worten werden mehrere Iterationen der KDF durchgeführt, wobei bei jeder Iteration (zumindest jedoch bei einer Iteration) ein kryptographisches Puzzle gelöst werden muss. Die Lösungen gehen in eine der nachfolgenden Iterationen ein (vorteilhaft direkt in die nächste Iteration). Es kann das Verfahren der Grundvariante z. B. n-fach iteriert werden, um den finalen abgeleiteten Schlüssel DK zu bestimmen.In an advantageous variant of the present invention, several key derivations are iteratively calculated. At least one of these iterations involves solving a cryptographic puzzle as described in detail above. It is particularly advantageous to provide cryptographic puzzles in several or even all iterations. In other words, several iterations of the KDF are performed, whereby a cryptographic puzzle has to be solved for each iteration (but at least one iteration). The solutions enter into one of the following iterations (advantageously directly into the next iteration). It may be the method of the basic variant z. B. iterated n times to determine the final derived key DK.

Ein Vorteil der vorliegenden Erfindung ist darin zu sehen, dass keine geheime Information vorab eingerichtet werden muss, so dass kein zusätzlicher Aufwand für ein spezifisches Schlüsselmanagement erforderlich ist. Die erfindungsgemäße Schlüsselableitungsfunktion kann also wie jede andere Schlüsselableitungsfunktion verwendet werden. So kann unter Verwendung der vorliegenden Erfindung beispielsweise eine Passwortprüfung realisiert werden oder es kann aus einem Passwort wie beispielsweise einem WLAN-Passwort oder einem WLAN pre-shared key PSK ein Schlüssel abgeleitet werden, der für einen 4-way Handshake gemäß IEEE 802.11 geeignet ist oder es kann eine Schlüsselableitung im Rahmen eines Authentisierungs- und Schlüsselvereinbarungsprotokolls wie beispielsweise SSL, TLS, EAP-TLS, EAP-TTLS, IKE oder IKEv2 unter Verwendung der vorliegenden Erfindung erfolgen.An advantage of the present invention is that no secret information needs to be set up in advance, so that no additional effort is required for a specific key management. The key derivation function according to the invention can therefore be used like any other key derivation function. Thus, for example, a password check can be realized using the present invention, or a key suitable for a 4-way handshake according to IEEE 802.11 can be derived from a password such as a WLAN password or a WLAN pre-shared key PSK a key derivation may be made under an authentication and key negotiation protocol such as SSL, TLS, EAP-TLS, EAP-TTLS, IKE or IKEv2 using the present invention.

Wie bereits erwähnt, ist es möglich, bei der Berechnung die Lösungen des Puzzles als Hilfsinformation zu speichern, z. B. in einem Cache. Alternativ können die Lösungen für bestimmte oder alle Puzzles durch eine entsprechende Provisionierungskomponente oder einen Server in diesen Cache geschrieben werden. In beiden Fällen können Berechnungen, z. B. bei Passwortprüfungen, beschleunigt durchgeführt werden, ohne das Ergebnis selbst speichern zu müssen.As already mentioned, it is possible to store the solutions of the puzzle as auxiliary information in the calculation, for. In a cache. Alternatively, the solutions for some or all of the puzzles may be written into this cache by a corresponding provisioning component or server. In both cases, calculations, eg. As in password checks, be carried out accelerated without having to save the result itself.

Die Hilfsinformation kann in einem sicherem Speicher hinterlegt werden, vorzugsweise verschlüsselt oder anderweitig geschützt. Liegt sie in einem flüchtigen Speicher, wird sie beim Herunterfahren oder einem Neustart des Gerätes automatisch gelöscht. Werden nichtflüchtige Speicher verwendet, kann vorgesehen werden, dass zeit- oder zustandsgesteuert eine Löschung des entsprechenden Speicherbereichs durchgeführt wird.The help information may be stored in a secure memory, preferably encrypted or otherwise protected. If it is stored in a volatile memory, it is automatically deleted when the device is shut down or restarted. If non-volatile memories are used, it can be provided that time-controlled or state-controlled deletion of the corresponding memory area is performed.

Ein besonderer Vorteil der vorliegenden Erfindung liegt darin, dass die Beschleunigungs-Hilfsinformation keinen direkten Rückschluss auf einen der kritischen Schlüssel K oder DK zulässt. Sie könnte, falls sie einem Angreifer in die Hände fällt, nur verwendet werden kann, um eine Berechnung bzw. eine vollständige Passwort-Suche und damit den Angriff zu beschleunigen. Damit ist das Bereitstellen oder Speichern der Hilfsinformation also deutlich weniger kritisch als das Bereitstellen oder Speichern eines echten Schlüssels. Dies ist insbesondere ein Vorteil gegenüber herkömmlichen passwortbasierten Schlüsselableitungsverfahren (PBKDF), bei denen Berechnung zwar durch Hilfsinformationen ebenfalls beschleunigt werden kann. Bei herkömmlichen Verfahren handelt es sich bei diesen Hilfsinformationen jedoch zwangsläufig um Schlüsselinformationen, die daher sehr aufwendig geschützt werden müssten, weswegen ein Einsatz herkömmlicher komplexer Schlüsselableitungsfunktionen mit einer großen Anzahl von verlangsamenden Iterationen auf Geräten mit sehr geringer Rechenleistung ausscheidet, wohingegen die erfindungsgemäße Schlüsselableitungsfunktion zum Einsatz auf solchen Geräten geeignet ist.A particular advantage of the present invention is that the acceleration auxiliary information does not allow a direct inference to one of the critical key K or DK. It could, if it falls into the hands of an attacker, only be used to speed up a calculation or a complete password search and thus the attack. Thus, the provision or saving of the auxiliary information is thus much less critical than the provision or storage of a real key. This is in particular an advantage over conventional password-based key derivation methods (PBKDF), in which calculation can also be accelerated by auxiliary information. In conventional methods, however, this auxiliary information is inevitably key information, which would therefore have to be very expensive protected, which is why a use of conventional complex key derivation functions with a large number of slowing iterations on devices with very low processing power eliminated, whereas the key derivation function according to the invention is used such devices is suitable.

Die Implementierung der vorstehend beschriebenen Komponenten, Phasen, Prozesse oder Verfahrensabläufe kann anhand von Instruktionen erfolgen, die auf computerlesbaren Speichermedien oder in flüchtigen Computerspeichern (im Folgenden zusammenfassend als computerlesbare Speicher bezeichnet) vorliegen. Computerlesbare Speicher sind beispielsweise flüchtige Speicher wie Caches, Puffer oder RAM sowie nichtflüchtige Speicher wie Wechseldatenträger, Festplatten, usw.The implementation of the above-described components, phases, processes, or procedures may be accomplished by instructions that reside on computer-readable storage media or in volatile computer storage (collectively referred to as computer-readable storage). Computer-readable memories are, for example, volatile memories such as caches, buffers or RAM as well as non-volatile memories such as removable data carriers, hard disks, etc.

Die beschriebenen Funktionen oder Schritte können dabei in Form zumindest eines Instruktionssatzes in/auf einem computerlesbaren Speicher vorliegen. Die Funktionen oder Schritte sind dabei nicht an einen bestimmten Instruktionssatz oder an eine bestimmte Form von Instruktionssätzen oder an ein bestimmtes Speichermedium oder an einen bestimmten Prozessor oder an bestimmte Ausführungsschemata gebunden und können durch Software, Firmware, Microcode, Hardware, Prozessoren, integrierte Schaltungen usw. im Alleinbetrieb oder in beliebiger Kombination ausgeführt werden. Dabei können verschiedenste Verarbeitungsstrategien zum Einsatz kommen, beispielsweise serielle Verarbeitung durch einen einzelnen Prozessor oder Multiprocessing oder Multitasking oder Parallelverarbeitung usw.The described functions or steps may be in the form of at least one instruction set in / on a computer-readable memory. The functions or steps are not tied to a particular set of instructions or to a particular form of instruction set or to a particular storage medium or processor, or to particular execution schemes, and may include software, firmware, microcode, hardware, processors, integrated circuits, etc. be carried out alone or in any combination. It can be used a variety of processing strategies, such as serial processing by a single processor or multiprocessing or multitasking or parallel processing, etc.

Insbesondere bei der Komponente 100 und den in Zusammenhang mit der Komponente 100 beschriebenen Einheiten (Puzzleerzeugungseinheit 110, Puzzlelösungseinheit 120, Schlüsselberechnungseinheit 140) handelt es sich vorzugsweise um computerausführbare Instruktionenfolgen oder Softwaremodule, obgleich es natürlich möglich ist, einzelne Einheiten oder die gesamte Komponente 100 in programmierbarer oder nichtprogrammierbarer Hardware zu realisieren.Especially with the component 100 and in connection with the component 100 units described (puzzle generating unit 110 , Puzzle solution unit 120 , Key calculation unit 140 ) are preferably computer-executable instruction sequences or software modules, although of course it is possible to have individual units or the entire component 100 in programmable or non-programmable hardware.

Die Instruktionen und Komponenten können in lokalen Speichern abgelegt sein, es ist aber auch möglich, die Instruktionen auf einem entfernten System abzulegen und darauf via Netzwerk zuzugreifen.The instructions and components may be stored in local memories, but it is also possible to store the instructions on a remote system and access them via network.

Der Begriff ”Prozessor”, wie hier verwendet, umfasst Verarbeitungseinheiten im weitesten Sinne, also beispielsweise Server, Universalprozessoren, Grafikprozessoren, digitale Signalprozessoren, anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikschaltungen wie FPGAs, diskrete analoge oder digitale Schaltungen und beliebige Kombinationen davon, einschließlich aller anderen dem Fachmann bekannten oder in Zukunft entwickelten Verarbeitungseinheiten. Prozessoren können dabei aus einer oder mehreren Vorrichtungen bestehen. Besteht ein Prozessor aus mehreren Vorrichtungen, können diese zur parallelen oder sequentiellen Verarbeitung von Instruktionen konfiguriert sein.The term "processor" as used herein includes processing units in the broadest sense, such as servers, general purpose processors, graphics processors, digital signal processors, application specific integrated circuits (ASICs), programmable logic circuits such as FPGAs, discrete analog or digital circuits, and any combinations thereof all other processing units known to the person skilled in the art or developed in the future. Processors can consist of one or more devices. If a processor consists of several devices, these can be configured for parallel or sequential processing of instructions.

Die vorstehende Beschreibung stellt nur die bevorzugten Ausführungsbeispiele der Erfindung dar und soll nicht als Definition der Grenzen und des Bereiches der Erfindung dienen. Alle gleichwertigen Änderungen und Modifikationen gehören zum Schutzbereich der beigefügten Patentansprüche.The foregoing description represents only the preferred embodiments of the invention and is not intended to serve as a definition of the limits and scope of the invention. All equivalent changes and modifications are within the scope of the appended claims.

Claims (9)

Verfahren zum Bestimmen eines abgeleiteten Schlüssels (DK) aus einem Schlüssel (K) und einem Ableitungsparameter (DP), bei dem mittels des Schlüssels (K) und/oder des Ableitungsparameters (DP) zunächst ein Puzzle (PC) bestimmt wird, das zu lösen ist, bevor aus der Lösung (PS) des Puzzles und dem Schlüssel (K) und/oder dem Ableitungsparameter (DP) der abgeleitete Schlüssel berechnet wird, dadurch gekennzeichnet, dass vor Lösung des Puzzles geprüft wird, ob für dieses Puzzle eine Lösung in einem Speicher vorhanden ist und falls ja diese vorhandene Lösung für die Schlüsselableitung verwendet und das Puzzle nicht gelöst wird.Method for determining a derived key (DK) from a key (K) and a derivation parameter (DP), in which a puzzle (PC) is first determined by means of the key (K) and / or the derivation parameter (DP) to solve this is before the solution (PS) of the puzzle and the key (K) and / or the derivative parameter (DP), the derived key is calculated, characterized in that it is checked before solving the puzzle, whether for this puzzle a solution in one Memory is present and if so this existing solution for the key derivation uses and the puzzle is not solved. Verfahren nach Anspruch 1, bei dem die Lösung zumindest eines Puzzles durch eine externe Komponente in den Speicher eingeschrieben wird.The method of claim 1, wherein the solution of at least one puzzle is written into the memory by an external component. Verfahren nach Anspruch 1, bei dem die Lösung zumindest eines Puzzles nach erstmaliger Lösung dieses Puzzles im Speicher abgelegt wird.Method according to Claim 1, in which the solution of at least one puzzle is stored in the memory after the puzzle has been solved for the first time. Verfahren nach einem der Ansprüche 1 bis 3, bei dem der Speicher ein flüchtiger Speicher ist.Method according to one of claims 1 to 3, wherein the memory is a volatile memory. Verfahren nach einem der Ansprüche 1 bis 4, bei dem der berechnete abgeleitete Schlüssel (DK) als Schlüssel (K) für eine erneute Ausführung des Verfahrens verwendet wird.Method according to one of Claims 1 to 4, in which the calculated derived key (DK) is used as the key (K) for a new execution of the method. Komponente (100) einer Datenverarbeitungsanlage, die zumindest folgendes aufweist: – Mittel zum Entgegennehmen eines Schlüssels (K); – Mittel zum Entgegennehmen eines Ableitungsparameters (DP); – eine Puzzleerzeugungseinheit (110), die aus dem Schlüssel und/oder dem Ableitungsparameter ein Puzzle (PC) erzeugt; – eine Puzzlelösungseinheit (120), welche das Puzzle (PC) löst; – eine Schlüsselberechnungseinheit (140), die aus dem Schlüssel (K) und der Lösung (PS) des Puzzles oder einem daraus abgeleiteten Wert einen abgeleiteten Schlüssel (DK) erzeugt; gekennzeichnet durch einen Speicher sowie Mittel, die vor Lösung eines Puzzles prüfen, ob für dieses Puzzle eine Lösung im Speicher vorhanden ist und falls ja diese vorhandene Lösung als Lösung (PS) des Puzzles liefern.Component ( 100 ) of a data processing system comprising at least: - means for accepting a key (K); - means for accepting a derivative parameter (DP); - a puzzle generation unit ( 110 ) which generates a puzzle (PC) from the key and / or the derivative parameter; A puzzle solution unit ( 120 ), which solves the puzzle (PC); A key calculation unit ( 140 ) which generates a derived key (DK) from the key (K) and the solution (PS) of the puzzle or a value derived therefrom; characterized by a memory and means which, before solving a puzzle, check whether there is a solution in memory for this puzzle and, if so, provide that solution as the solution (PS) of the puzzle. Komponente nach Anspruch 6, die zusätzlich Mittel aufweist, welche die Lösung zumindest eines Puzzles nach erstmaliger Lösung dieses Puzzles im Speicher ablegen.The component of claim 6, further comprising means for storing the solution of at least one puzzle in memory after first solving this puzzle. Datenverarbeitungsanlage umfassend eine Komponente (100) nach einem der Ansprüche 6 bis 7.Data processing system comprising a component ( 100 ) according to one of claims 6 to 7. Computerprogrammprodukt umfassend computerausführbare Anweisungen, welche, wenn geladen in einem Computer, zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 5 ausgelegt sind.Computer program product comprising computer-executable instructions which, when loaded in a computer, are adapted to perform a method according to any one of claims 1 to 5.
DE102015211566.6A 2015-06-23 2015-06-23 A method, component and computer program product for determining a derived key Expired - Fee Related DE102015211566B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015211566.6A DE102015211566B4 (en) 2015-06-23 2015-06-23 A method, component and computer program product for determining a derived key

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015211566.6A DE102015211566B4 (en) 2015-06-23 2015-06-23 A method, component and computer program product for determining a derived key

Publications (2)

Publication Number Publication Date
DE102015211566A1 DE102015211566A1 (en) 2016-12-29
DE102015211566B4 true DE102015211566B4 (en) 2017-03-16

Family

ID=57537105

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015211566.6A Expired - Fee Related DE102015211566B4 (en) 2015-06-23 2015-06-23 A method, component and computer program product for determining a derived key

Country Status (1)

Country Link
DE (1) DE102015211566B4 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017121497A1 (en) * 2017-09-15 2019-03-21 genua GmbH NETWORK TERMINATION FOR MANAGING A PASSWORD FROM A USER

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011453A1 (en) * 2005-07-07 2007-01-11 Nokia Corporation Establishment of a trusted relationship between unknown communication parties

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011453A1 (en) * 2005-07-07 2007-01-11 Nokia Corporation Establishment of a trusted relationship between unknown communication parties

Also Published As

Publication number Publication date
DE102015211566A1 (en) 2016-12-29

Similar Documents

Publication Publication Date Title
DE102011088502B3 (en) Method and apparatus for securing block ciphers against template attacks
DE112014000965T5 (en) Processing a guest event in a hypervisor-driven system
DE112014000584T5 (en) Achieving storage efficiency with end-to-end encryption using downstream (downstream) decryptors
DE102010011657A1 (en) Method and apparatus for providing at least one secure cryptographic key
DE112018004408B4 (en) IDENTIFICATION OF ATTACK FLOWS IN A LAYERED NETWORK TOPOLOGY
DE112017000633T5 (en) SECURE ARCHIVING AND RECOVERY OF MULTIFACTOR AUTHENTICATION TEMPLATES
WO2011107319A2 (en) Method for verifying a memory block of a nonvolatile memory
DE102021130812A1 (en) IMPLEMENT OPPORTUNISTIC AUTHENTICATION OF ENCRYPTED DATA
DE102015211566B4 (en) A method, component and computer program product for determining a derived key
EP3215931B1 (en) Device and method for multiplication for impeding side-channel attacks
EP3387636B1 (en) Cryptographic algorithm having a key-dependent masked computing step (sbox call)
EP3576001A1 (en) Computer-implemented method for transferring a data string from an application to a data protection device
EP3300522B1 (en) Provision of at least one password
DE112012000780B4 (en) Processing Authorization Check Data
DE202020005753U1 (en) Managing user identities in a multi-tenant managed service
DE102011052230B4 (en) Method and apparatus for generating random wait states
DE102015209120A1 (en) Computing device and operating method for this
EP3985499B1 (en) Method for generating random numbers
CN108667926B (en) Real-time privacy security margin approximate query method
DE112020004161T5 (en) LEARNING A PATTERN DICTIONARY FROM BLURRED NUMERIC DATA IN DISTRIBUTED NETWORKS
Beckers et al. Creativity Techniques for Social Engineering Threat Elicitation: A Controlled Experiment.
EP3439228B1 (en) Method and devices for achieving a safety function, particularly in the vicinity of a device control and/or system control
Selifanov et al. Acceptable Variants Formation Methods of Organizational Structure and the Automated Information Security Management System Structure
DE102021204959A1 (en) Procedure for checking the validity of a digital key to be checked
DE102015209123A1 (en) Computing device and operating method for this

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee