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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
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
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
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:
In c Iterationen des Verfahrens werden c Werte berechnet:
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:
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
Erst wenn das Puzzle gelöst wurde, d. h. der Ausgabewert PS des Puzzle Solvers
Der Puzzle-Solver
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:
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:
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
Der abgeleitete Schlüssel DK wird nun mittels der folgenden Funktion berechnet:
Alternativ könnte z. B. die folgende Funktion angewendet werden:
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
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)
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)
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)
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 |
-
2015
- 2015-06-23 DE DE102015211566.6A patent/DE102015211566B4/en not_active Expired - Fee Related
Patent Citations (1)
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 |
---|---|---|
DE112015004555B4 (en) | Processing a guest event in a hypervisor controlled system | |
DE102011088502B3 (en) | Method and apparatus for securing block ciphers against template attacks | |
DE112018001285T5 (en) | Cryptographic key generation using data deduplication | |
DE112014000584T5 (en) | Achieving storage efficiency with end-to-end encryption using downstream (downstream) decryptors | |
DE112017000633T5 (en) | SECURE ARCHIVING AND RECOVERY OF MULTIFACTOR AUTHENTICATION TEMPLATES | |
EP2542995A2 (en) | Method for verifying a memory block of a nonvolatile memory | |
EP3387636B1 (en) | Cryptographic algorithm having a key-dependent masked computing step (sbox call) | |
DE102021130812A1 (en) | IMPLEMENT OPPORTUNISTIC AUTHENTICATION OF ENCRYPTED DATA | |
EP3720039B1 (en) | Method for configuring a security module comprising at least one derived key | |
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 | |
DE102021123288A1 (en) | RULE-BASED FILTERING TO SECURE PASSWORD LOGINS | |
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 | |
DE102015209120A1 (en) | Computing device and operating method for this | |
EP3439229A1 (en) | Method and devices for achieving a safety function, particularly in the vicinity of a device control and/or system control | |
DE202020005753U1 (en) | Managing user identities in a multi-tenant managed service | |
CN108667926B (en) | Real-time privacy security margin approximate query method | |
DE102011052230A1 (en) | Method and apparatus for generating random wait states | |
DE102014213071A1 (en) | Method and device for processing data | |
DE102018001041A1 (en) | Computer program product and method for selecting a node in a network | |
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 | |
DE102015222968A1 (en) | Operating method for an electronic device and electronic device |
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 |