DE102006049814B4 - Method and device for generating and storing auxiliary variables assigned to a secret combination and for recovering the secret combination - Google Patents
Method and device for generating and storing auxiliary variables assigned to a secret combination and for recovering the secret combination Download PDFInfo
- Publication number
- DE102006049814B4 DE102006049814B4 DE200610049814 DE102006049814A DE102006049814B4 DE 102006049814 B4 DE102006049814 B4 DE 102006049814B4 DE 200610049814 DE200610049814 DE 200610049814 DE 102006049814 A DE102006049814 A DE 102006049814A DE 102006049814 B4 DE102006049814 B4 DE 102006049814B4
- Authority
- DE
- Germany
- Prior art keywords
- secret
- character
- secret combination
- component
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- 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/3226—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 a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Verfahren zum automatischen Erzeugen und Speichern von jeweils einer anwendungsspezifischen Geheimkombination (g) zugeordneten Hilfsgrößen in Abhängigkeit von einem Hauptpasswort (MPW) und der jeweiligen Geheimkombination (g), so dass die entsprechende Geheimkombination (g) mit Hilfe des Hautpassworts (MPW) aus den dieser Geheimkombination (g) zugeordneten Hilfsgrößen rekonstruierbar ist, wobei das Verfahren folgende mit einer entsprechend programmtechnisch eingerichteten Vorrichtung durchgeführten Schritte umfasst:
– Berechnen einer pseudozufälligen Signalfolge (rand) in Abhängigkeit von dem eingegebenen Hauptpasswort (MPW),
– Extrahieren von Datenblöcken bestimmter Länge (k) aus der pseudozufälligen Signalfolge (rand), wobei die Datenblöcke durch eine Kodierung eines Alphabets (A), aus dem die Geheimkombination (g) gebildet ist, jeweils einem Zeichen (x) aus diesem Alphabet (A) zugeordnet sind,
– Vergleichen der extrahierten Datenblöcke mit Zeichen (gi) aus der Geheimkombination (g) unter Berücksichtigung dieser Kodierung,
– Bestimmen einer Blockposition (bpi) jeweils eines der Datenblöcke für jedes Zeichen (gi) aus der Geheimkombination (g), der durch die Kodierung...Method for automatically generating and storing auxiliary variables assigned in each case to an application-specific secret combination (g) as a function of a main password (MPW) and the respective secret combination (g), so that the corresponding secret combination (g) can be used with the help of the skin password (MPW) Secret combination (g) associated auxiliary variables is reconstructed, the method comprising the following steps carried out with a corresponding programmatically established device steps:
Calculating a pseudo-random signal sequence (edge) as a function of the input main password (MPW),
- Extracting data blocks of certain length (k) from the pseudo-random signal sequence (rand), wherein the data blocks by encoding one alphabet (A), from which the secret combination (g) is formed, one character (x) from this alphabet (A ) assigned,
Comparing the extracted data blocks with characters (g i ) from the secret combination (g) taking into account this coding,
Determining a block position (bp i ) in each case one of the data blocks for each character (g i ) from the secret combination (g), which is coded by the coding ...
Description
Die vorliegende Erfindung betrifft ein Verfahren zum automatischen Erzeugen und Speichern von Hilfsgrößen, die jeweils einer anwendungsspezifischen Geheimkombination zugeordnet sind, in Abhängigkeit von einem Hauptpasswort und der jeweiligen Geheimkombination, sowie ein Verfahren zum Wiedergewinnen einer Geheimkombination aus so erzeugten Hilfsgrößen und dem entsprechenden Hauptpasswort. Die Erfindung betrifft ferner eine zur Durchführung zumindest eines dieser Verfahren programmtechnisch eingerichteten Vorrichtung.The The present invention relates to a method for automatic generation and storing auxiliary quantities that each associated with an application-specific secret combination are, depending from a master password and the respective secret combination, as well a method for recovering a secret combination from so generated Auxiliary sizes and the corresponding main password. The invention further relates one to carry at least one of these methods program-technically established Contraption.
Die Erfindung betrifft insbesondere ein Verfahren und eine entsprechende Vorrichtung zur sicheren und benutzerfreundlichen Aufbewahrung von Authentifizierungsdaten wie beispielsweise Passwörter, Persönli chen Identifikations-Nummern (PINs) oder Transaktionsnummern (TANs). Hierbei handelt es sich um personenbezogene Geheimnisse, mit denen Benutzer die Echtheit der von ihnen behaupteten Identität beweisen. Passwörter werden in der Regel zusammen mit einer Kennung – oftmals auch als Login bezeichnet – verwendet, die den Benutzer identifiziert, wobei der Login-Name öffentlich bekannt sein kann, das Passwort jedoch geheim gehalten wird. Passwörter sind Zeichenketten, welche aus Buchstaben, Ziffern und Sonderzeichen bestehen können. Bei einer PIN handelt es sich um eine an einen Benutzer ausgegebene mehrstellige Kombination aus Ziffern, welche oftmals zusammen mit Authentifizierungstoken zur Benutzerauthentifizierung eingesetzt wird, wie dies beispielsweise bei ec-Karten oder Kreditkarten der Fall ist. Bei TANs handelt es sich in der Regel um mehrstellige Kombinationen aus Ziffern, welche zusätzlich zu PIN oder Passwort eingegeben werden, wobei der Benutzer aus der Liste der an ihn ausgegebenen TANs bei jeder Transaktion eine neue und bisher noch nicht verwendete TAN wählen muss, da jede TAN nur genau einmal akzeptiert wird. Die Reihenfolge zur Verwendung der TANs ist entweder durch die Reihenfolge der TANs in der Liste gegeben, wie diese an die Benutzer ausgegeben wird, oder die TANs sind indiziert – wie beim sogenannten iTAN-Verfahren – und der Benutzer verwendet bei einer Transaktion genau diejenige TAN, zu welcher er von der Gegenseite durch Angabe des jeweiligen Index aufgefordert wurde.The The invention particularly relates to a method and a corresponding one Device for the secure and user-friendly storage of authentication data such as passwords, Personal Identification numbers (PINs) or transaction numbers (TANs). These are personal secrets with which Users prove the authenticity of their claimed identity. passwords are usually used together with an identifier - often referred to as a login - identifying the user, where the login name may be publicly known, the password is kept secret. Passwords are strings, which can consist of letters, numbers and special characters. at a PIN is a message issued to a user Multi-digit combination of numbers, often together with Authentication token is used for user authentication, such as ec-cards or credit cards is the case. TANs are usually multi-digit combinations of numbers, which in addition to PIN or password can be entered, the user from the List of TANs issued to him on each transaction a new and previously unused TAN must choose, since each TAN only is accepted once. The order to use the TANs are given either by the order of TANs in the list, like this is issued to the users, or the TANs are indexed - as with the so-called iTAN method - and the user uses exactly the same TAN in a transaction, to which he from the opposite side by indication of the respective index was asked.
Es zeigt sich an vielen Stellen, dass Benutzer zugangsbeschränkter Geräte, Anwendungen und Dienste in der Praxis durch die Anforderungen eines Umgangs mit einer Vielzahl von im Alltag benötigten Geheimkombinationen, die für eine Benutzung zugangsbeschränkter Geräte, Anwendungen und Dienste benötigt werden, überfordert sind.It shows in many places that users access restricted devices, applications and services in practice by the requirements of a deal with a variety of secret combinations needed in everyday life, the for a use of restricted devices, applications and services needed become overwhelmed are.
In
der Druckschrift
Darüber hinaus
existieren eine Reihe anderer Ansätze und Lösungen, deren Ziel es ist,
Benutzer im Umgang mit ihren Geheimkombinationen (Passwörtern, PINs,
TANs) zu unterstützen.
In diesem Zusammenhang wurden beispielsweise technische Lösungen entwickelt,
bei welchen anwendungsspezifische Geheimkombinationen generiert und/oder
abgespeichert werden. Der Zugriff zu den abgespeicherten Geheimnissen
wird hierbei in der Regel ebenfalls mittels eines zentralen Geheimnisses
oder mittels biometrischer Methoden kontrolliert. Bei einigen Ansätzen werden
die Geheimkombinationen in verschlüsselter Form in einem persistenten Speicher
des Endgeräts
aufbewahrt, wie dies beispielsweise bei einer Vielzahl von Programmen
zum Passwortmanagement geschieht (z. B. Passwortspeicher in Web-Browsern).
Ein patentiertes Verfahren zur zentralen Abspeicherung von anwendungsspezifischen
Passwörtern
und mit Hauptpasswort geschütztem
Zugang wird in
Gelingt es einem Angreifer auf die nach dem heutigen Stand der Technik erzeugten Chiffretexte von Geheimkombinationen zuzugreifen, dann kann er so lange Hauptpasswörter austesten, bis er ein Ergebnis erhält, welches ausschließlich die geforderten Zeichen oder akzeptierbare Zeichenkombinationen enthält. Je nach Redundanz der Klartexte kann die Wahrscheinlichkeit sehr groß sein, dass es sich bei einem solchen positiv getesteten Hauptpasswort tatsächlich um das korrekte Passwort handelt. Solche Angriffe werden in der Praxis dadurch begünstigt, wenn ein Benutzer ein schwaches Hauptpasswort wählt, was bei vielen Benutzern zutrifft.Succeed it made an attacker on the state-of-the-art Cipher texts of secret combinations to access, then he can do so long main passwords Test until he receives a result, which exclusively the contains required characters or acceptable character combinations. Depending on Redundancy of the plain text, the probability can be very large that such a positively tested main password indeed is the correct password. Such attacks are in the Practice favors this, though a user chooses a weak master password, which is the case with many users true.
Ein Verfahren, auf Basis dessen einem Benutzer auf einem mitgeführten Endgerät wie beispielsweise einem Mobiltelefon oder einem PDA die benötigten Geheimkombinationen wie Passwörter, PINs oder TANs zur Verfügung stehen, ist an sich hilfreich. Der Benutzer wird dadurch davon befreit, sich alle Geheimkombinationen merken zu müssen und muss sich nur noch eine einzige Geheimkombination, nämlich ein sogenanntes Hauptpasswort merken. Da jedoch mobile Endgeräte oftmals verloren gehen oder auch gestohlen werden, ist es wünschenswert, dass entsprechende Informationen möglichst sicher abgelegt werden. Das bedeutet, dass unbefugte Dritte auch bei einem Zugriff auf das Endgerät nicht an die Geheimkombinationen gelangen können sollen, d. h. dass sie im Idealfall nicht entscheiden können sollen, ob es sich bei einem eingegebenen Hauptpasswort um das korrekte Hauptpasswort handelt. Das Ziel des mit der vorliegenden Erfindung vorgeschlagenen Verfahrens besteht darin, dass ein Angreifer, anders als bei vergleichbaren Verfahren aus dem Stand der Technik, durch das Austesten von Hauptpasswörtern – auch bei potentiell schwach gewählten Hauptpasswörtern – anhand von mit Hilfe des entsprechenden Hauptpassworts erhaltenen Ergebnissen für Geheimkombinationen nicht unterscheiden kann, ob das getestete Hauptpasswort korrekt ist oder nicht.One A method based on which a user on a mobile terminal such as a cell phone or a PDA the required secret combinations like passwords, PINs or TANs available stand is helpful in itself. The user is thereby freed to remember all secret combinations and only has to a single secret combination, namely a so-called main password notice. However, since mobile devices Often lost or stolen, it is desirable that appropriate information as possible be stored safely. That means that unauthorized third parties too when accessing the terminal should not be able to get to the secret combinations, d. H. that she ideally should not be able to decide whether the main password entered is the correct one Main password is. The aim of with the present invention proposed method is that an attacker, otherwise as in comparable methods of the prior art, by the testing of main passwords - also at potentially weakly chosen Main passwords - based of results obtained using the corresponding main password for secret combinations can not distinguish whether the tested main password is correct is or not.
Der vorliegenden Erfindung liegt also die Aufgabe zugrunde, ein Verfahren und eine entsprechende Vorrichtung zu entwickeln, mit denen sich Informationen so speichern lassen, dass sich aus diesen Informationen eine Vielzahl von Geheimkombinationen, die insbesondere für einen Zugang zu zugangsbeschränkten Geräten benötigt werden können, mit Hilfe eines einzigen Hauptpassworts wiedergewinnen und ausgeben lassen, ohne dass ein Dritter, der auf diese Informationen oder die Vorrichtung Zugriff hätte, das Hauptpasswort oder die Geheimkombinationen ermitteln könnte. Mit der Erfindung soll ferner ein Verfahren und eine entsprechende Vorrichtung vorgeschlagen werden, mit denen die Geheimkombinationen mittels des HauptpassWorts aus den gespeicherten Informationen zurückgewonnen werden können.Of the The present invention is therefore based on the object, a method and to develop a corresponding device with which Save information so that this information a variety of secret combinations, especially for a Access to restricted access devices needed can be recover and spend with the help of a single main password leave without a third party to this information or the device would have access, could identify the main password or the secret combinations. With The invention is further a method and a corresponding device be proposed with which the secret combinations by means of of the main pass word are retrieved from the stored information can.
Diese Aufgabe wird erfindungsgemäß gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 1 und ein Verfahren mit den Merkmalen des Anspruchs 16 sowie durch eine Vorrichtung mit den Merkmalen des Anspruchs 20. Vorteilhafte Ausgestaltungen und Weiterentwicklungen der Erfindung ergeben sich mit den Merkmalen der Unteransprüche.These The object is achieved by a method having the features of claim 1 and a method with the features of claim 16 and by a device with the features of claim 20. Advantageous embodiments and further developments of the invention will become apparent with the features the dependent claims.
Das vorgeschlagene Verfahren zum automatischen Erzeugen und Speichern von jeweils einer anwendungsspezifischen Geheimkombination zugeordneten Hilfsgrößen in Abhängigkeit von einem Hauptpasswort und der jeweiligen Geheimkombination, das eine Rekonstruktion der entsprechenden Geheimkombination mit Hilfe des Hauptpassworts aus den dieser Geheimkombination zugeordneten Hilfsgrößen erlaubt, umfasst also die Schritte:
- – Berechnen einer pseudozufälligen Signalfolge in Abhängigkeit von dem eingegebenen Hauptpasswort,
- – Extrahieren von Datenblöcken bestimmter Länge aus der pseudozufälligen Signalfolge, wobei die Datenblöcke durch eine Kodierung eines Alphabets, aus dem die Geheimkombination gebildet ist, jeweils einem Zeichen aus diesem Alphabet zugeordnet sind,
- – Vergleichen der extrahierten Datenblöcke mit Zeichen aus der Geheimkombination unter Berücksichtigung dieser Kodierung,
- – Bestimmen einer Blockposition – eine Position des jeweiligen Datenblocks in der pseudozufälligen Signalfolge definierend – jeweils eines der Datenblöcke für jedes Zeichen aus der Geheimkombination, so dass dieser Datenblock durch die Kodierung diesem Zeichen zugeordnet ist, und
- – Speichern der so bestimmten Blockpositionen in einem Speicher.
- Calculating a pseudo-random signal sequence as a function of the input main password,
- Extracting data blocks of a specific length from the pseudorandom signal sequence, wherein the data blocks are each assigned to a character from this alphabet by coding an alphabet from which the secret combination is formed;
- Comparing the extracted data blocks with characters from the secret combination taking into account this coding,
- Determining a block position - defining a position of the respective data block in the pseudo-random signal sequence - each one of the data blocks for each character from the secret combination, so that this data block is assigned by the coding that character, and
- - Save the block positions determined in a memory.
Typischerweise werden dabei die Hilfsgrößen in Abhängigkeit auch von mindestens einer weiteren, vorzugsweise anwendungsspezifischen, Eingabegröße gebildet, wobei die pseudozufällige Signalfolge zusätzlich in Abhängigkeit von dieser mindestens einen weiteren Eingabegröße berechnet wird.typically, while the auxiliary sizes are dependent also of at least one further, preferably application-specific, Input size formed, being the pseudorandom one Signal sequence in addition dependent on is calculated by this at least one other input size.
Das entsprechende Verfahren zum Wiedergewinnen einer Geheimkombination aus mittels eines Verfahrens zuvor beschriebener Art erzeugten Hilfsgrößen und dem entsprechenden Hauptpasswort sieht vor, dass jedes Zeichen der Geheimkombination ermittelt wird, indem
- – nach Eingabe des Hauptpassworts zumindest ein Teil der pseudozufälligen Signalfolge wie bei dem Verfahren zum Erzeugen der Hilfsgrößen berechnet wird,
- – der durch die diesem Zeichen zugeordnete Blockposition definierte Datenblock aus der pseudozufälligen Signalfolge extrahiert wird,
- – dieser Datenblock gemäß der Kodierung des Alphabets, aus dem die Geheimkombination gebildet ist, einem Zeichen zugeordnet wird, wobei das gleiche Alphabet verwendet wird, welches auch bei der Erzeugung der Hilfsgrößen für die Geheimkombination verwendet wurde, und
- – dieses Zeichen ausgegeben wird.
- After the input of the main password at least a part of the pseudo-random signal sequence is calculated as in the method for generating the auxiliary quantities,
- The data block defined by the block position assigned to this character is extracted from the pseudo-random signal sequence,
- - This data block is assigned to a character according to the coding of the alphabet from which the secret combination is formed, using the same alphabet which was also used in the generation of the auxiliary quantities for the secret combination, and
- - this character is output.
Die der jeweiligen Geheimkombination zugeordneten Hilfsgrößen können dabei vorteilhafterweise direkt aus dem Speicher eingelesen werden. Eingegeben wird zur Berechnung der pseudozufälligen Signalfolge oder des Teils der pseudozufälligen Signalfolge typischerweise auch die mindestens eine weitere Eingabegröße, die je nach Eingabegröße und je nach Ausführung des Verfahrens manuell eingegeben oder ebenfalls aus dem Speicher eingelesen werden kann. Von Hand eingegeben wird typischerweise sowohl bei dem Verfahren zum Erzeugen und Speichern der Hilfsgrößen als auch bei dem Verfahren zum Wiedergewinnen der Geheimkombination eine als Eingabegröße dienende Anwendungsidentifikation.The The auxiliary variables assigned to the respective secret combination can thereby advantageously be read directly from the memory. input is used to calculate the pseudo-random signal sequence or the Part of the pseudorandom Signal sequence typically also the at least one other input size, the depending on the input size and each after execution of the procedure manually entered or also from the memory can be read. Typed by hand is typically both in the method for generating and storing the auxiliary quantities as also in the process of recovering the secret combination one serving as an input Application identification.
Die beiden vorgeschlagenen Verfahren ermöglichen es einem Nutzer mehrerer Dienste und/oder Geräte mit einer aus Sicherheitsgründen vorgesehenen Zugangsbeschränkung, die jeweils eine Eingabe einer Geheimkombination erforderlich macht, in vorteilhafter Weise, sich mit dem Hauptpasswort nur ein Geheimnis merken zu müssen, mit Hilfe dessen er jederzeit jede benötigte Geheimkombination berechnen kann, ohne dass ein Zugriff auf die dazu im Speicher gespeicherten Hilfsgrößen einem Dritten irgendeinen Hinweis auf eine der Geheimkombinationen geben könnte.The Both proposed methods allow one user multiple Services and / or devices with one provided for safety reasons Restricted Area each requiring an entry of a secret combination, in an advantageous way, with the main password just a secret to have to remember with the help of which he can calculate any needed secret combination at any time can, without having access to it stored in memory Auxiliary sizes one Give any third party any indication of any of the secret combinations could.
Bei den genannten anwendungsspezifischen Geheimkombinationen kann es sich beispielsweise um PINs, TANs oder Passwörter handeln, die für einen Zugang zu einem technischen Gerät oder für eine bestimmte Anwendung eines solchen Gerätes benötigt werden können.at It can do this named application-specific secret combinations For example, PINs, TANs or passwords that are used for a Access to a technical device or for one certain application of such a device may be required.
Die pseudozufällige Signalfolge kann bei bevorzugten Ausführungen der Erfindung als Prüfsumme oder als Message Authentication Code (MAC) eines in Abhängig keit von der mindestens einen Eingabegröße und gegebenenfalls auch einem Zählerstand definierten Textes gebildet werden, wobei diese Prüfsumme oder dieser MAC in Abhängigkeit vom Hauptpasswort generiert wird.The pseudorandom Signal sequence may in preferred embodiments of the invention as a checksum or as Message Authentication Code (MAC) of a dependent from the at least one input size and possibly also a count defined text are formed, this checksum or this MAC depending generated by the main password.
Der Begriff "Alphabet" sei hier ganz allgemein für eine Menge von Zeichen – eventuell auch oder sogar ausschließlich Ziffern enthaltend – verwendet, aus denen – unter Berücksichtigung eventueller Passwortregeln – die jeweilige Geheimkombination zu bilden ist. Das Alphabet enthält also alle diejenigen Zeichen, die theoretisch in der Geheimkombination enthalten sein können. Dabei ist jeder denkbaren Belegung eines Datenblocks aus der pseudozufälligen Signalfolge genannter Länge ein Zeichen aus dem Alphabet zugeordnet, um eine redundanzfreie Zuordnung von Hauptpasswörtern, Geheimkombinationen und Hilfsgrößen zu erhalten. Damit sich jede Geheimkombination darstellen lässt, ist ferner jedes Element aus dem Alphabet mindestens einer möglichen Belegung eines Datenblocks genannter Länge zugeordnet. Üblicherweise wird die pseudozufällige Signalfolge eine Folge binärer Signale sein, so dass jede Binärkombination genannter Länge genau einem Zeichen aus dem Alphabet zugeordnet ist. Das Vergleichen der extrahierten Datenblöcke mit einem Zeichen aus der Geheimkombination kann geschehen, indem zunächst dieser Datenblock gemäß der Kodierung des Alphabets einem Kodierungswert, also einem Zeichen aus diesem Alphabet, zugeordnet wird und dann dieser Kodierungswert mit dem Zeichen aus der Geheimkombination verglichen wird oder indem zunächst alle möglichen Kodierungen eines Zeichens aus der Geheimkombination ermittelt werden und dann geprüft wird, ob die Belegung des Datenblocks einer dieser Kodierungen des Zeichens aus der Geheimkombination entspricht.Of the The term "alphabet" is quite general here for one Amount of characters - possibly also or even exclusively Containing digits - used, from those - under consideration any password rules - the each secret combination is to form. So the alphabet contains all those characters that are theoretically in the secret combination may be included. Any conceivable assignment of a data block from the pseudo-random signal sequence is thereby said length a character from the alphabet assigned to a redundancy-free Assignment of main passwords, To obtain secret combinations and auxiliary sizes. Further, every element is to represent each secret combination from the alphabet of at least one possible assignment of a data block said length assigned. Usually becomes the pseudorandom one Signal sequence is a sequence of binary Be signals, so any binary combination said length is associated with exactly one character from the alphabet. The comparison the extracted data blocks with A character from the secret combination can happen by first doing this Data block according to the coding of the alphabet a coding value, so a sign from this Alphabet, and then this encoding value with the Characters from the secret combination is compared or by first all potential Codings of a character can be determined from the secret combination and then tested whether the assignment of the data block is one of these codings of the character from the secret combination corresponds.
Der Begriff "Blockposition" sei ganz allgemein verstanden als Positionsangabe, aus der sich ergibt, wo der jeweilige Datenblock in der pseudozufälligen Signalfolge zu finden ist. Typischerweise werden die Datenblöcke aus einer ihrer Länge entsprechenden Folge aufeinanderfolgender Zeichen aus der Signalfolge bestehen, so dass unter Umständen jede Blockposition durch lediglich eine Zahl gegeben sein kann.Of the The term "block position" is quite general understood as a position indication, from which results, where the respective Data block in the pseudo-random Signal sequence can be found. Typically, the data blocks are off one of their length corresponding sequence of consecutive characters from the signal sequence so that every possible Block position can be given by only one number.
Anders als die Hilfsgrößen, die in dem Speicher gespeichert werden, um für eine Wiedergewinnung der Geheimkombinationen zur Verfügung zu stehen, sind das Hauptpasswort und die Geheimkombinationen typischerweise nur vorübergehend in einem Arbeitsspeicher vorhanden oder sollten zumindest nach einer bestimmten Zeit automatisch gelöscht werden. Zur Bildung der pseudozufälligen Signalfolge können neben dem eingegebenen Hauptpasswort und weiteren einzugebenden Eingabegrößen auch solche Größen verwendet werden, die durch die jeweilige Geheimkombination implizit definiert sind. In Frage kommt dafür beispielsweise ein Index, der angibt, an welcher Stelle das Zeichen, für das eine Hilfsgröße zu berechnen ist, in der jeweiligen Geheimkombination steht.Unlike the auxiliary sizes stored in the memory to be available for recovery of the secret combinations, the master password and the secret combinations are typically present only temporarily in a working memory or should be automatically deleted at least after a certain time. In order to form the pseudo-random signal sequence, it is also possible to use, in addition to the input main password and other input variables to be input, those variables which are implicitly defined by the respective secret combination. For example, an index may be used for this purpose, which indicates at which point the character for which an auxiliary variable is to be calculated, in the respec gen secret combination stands.
Eine bevorzugte Ausführung des vorgeschlagenen Verfahrens sieht vor, dass die pseudozufällige Signalfolge berechnet wird, indem aus dem eingegebenen Hauptpasswort mittels einer Schlüsselableitungsfunktion ein Schlüssel erzeugt wird und dann eine in Abhängigkeit von der mindestens einen weiteren Eingabegröße gebildete Zeichenkette mit diesem Schlüssel verschlüsselt wird. Aus Sicherheitsgründen sollte die Schlüsselableitungsfunktion dabei so beschaffen sein, dass jede Stelle des Schlüssels von der Belegung je der Stelle des Hauptpassworts abhängig ist, wobei die Schlüsselableitungsfunktion vorzugsweise ferner geeignet sein sollte, unabhängig von einer Länge des Hauptpassworts einen Schlüssel vorgegebener Länge zu bilden. Derartige Schlüsselableitungsfunktionen sind an sich bekannt. Selbstverständlich kann die pseudozufällige Signalfolge aber auch in anderer Weise gebildet werden, beispielsweise durch Hashen einer aus der mindestens einen Eingabegröße und dem Hauptpasswort gebildeten Zeichenkette. Bevorzugt sind dagegen Ausführungen der Erfindung, bei denen mindestens zwei der weiteren Eingabegrößen zur Bildung einer Zeichenkette verkettet werden, eventuell mit Trennzeichen zwischen den einzelnen Eingabegrößen, und die so gebildete Zeichenkette mit einem aus dem Hauptpasswort gebildeten Schlüssel verschlüsselt wird.A preferred embodiment of the proposed method provides that the pseudo-random signal sequence is calculated by using the entered main password by means of a key derivation function a key is generated and then one depending on the at least formed another input size String with this key encoded becomes. For safety reasons should include the key derivation function so be sure that each digit of the key is different from the one used Location of the main password is where the key derivation function preferably should also be suitable, regardless of a length of the Main password a key predetermined length to build. Such key derivation functions are known per se. Of course, the pseudo-random signal sequence but also be formed in other ways, for example by Hash of one formed from the at least one input size and the main password String. By contrast, embodiments of the invention are preferred which at least two of the other input quantities to form a string be concatenated, possibly with separators between the individual Input sizes, and the string thus formed with one formed from the main password key encoded becomes.
Vorteilhafte Ausgestaltungen der Erfindung sehen vor, dass die Zeichenkette blockweise und vorzugsweise symmetrisch verschlüsselt wird, beispielsweise unter Verwendung des an sich bekannten Advanced Encryption Standards (AES), der eine ausgesprochen hohe Sicherheit gewährleistet. Dabei kann die Zeichenkette in Blöcke bestimmter Länge eingeteilt werden und ein Klartext und/oder ein Chiffrat jedes der Blöcke jeweils mit dem Klartext oder Chiffrat eines anderen Blocks bitweise XOR-verknüpft werden. Bevorzugt ist dabei eine als cipher block chaining (CBC) bezeichnete Verknüpfung der Blöcke, bei der ab einem zweiten Block jeder Block aus der Zeichenkette mit einem Chiffrat des jeweils vorhergehenden Blockes XOR-verknüpft wird und ein Ergebnis dieser Verknüpfung verschlüsselt wird zu einem Chiffrat, dass wiederum ggf. mit einem weiteren Block XOR-verknüpft wird.advantageous Embodiments of the invention provide that the character string block by block and preferably symmetrically encrypted, for example using the well-known Advanced Encryption Standards (AES), which ensures a very high level of security. The string can be divided into blocks of a certain length and a clear text and / or a cipher of each of the blocks respectively be bit-wise XORed with the plaintext or cipher of another block. Preferred is one referred to as cipher block chaining (CBC) shortcut the blocks, at the beginning of a second block each block from the string is XOR-linked with a cipher of the preceding block and a result of this link encoded becomes a cipher, which in turn, if necessary, with another block XORed becomes.
Um zu gewährleisten, dass hinreichend viel pseudozu fälliges Material zur Bildung der Datenblöcke zur Verfügung steht, kann vorgesehen sein, dass das Berechnen der pseudozufälligen Signalfolge abschnittsweise zusätzlich in Abhängigkeit von einem Zählerstand erfolgt, wobei der Zählerstand zum Berechnen eines jeweils weiteren Abschnitts der pseudozufälligen Signalfolge auf einen nächsten Wert geändert wird, wenn ein bis dahin verfügbarer Abschnitt der pseudozufälligen Signalfolge durch Extrahieren von Datenblöcken verbraucht ist. Dabei kann der Zählerstand zur Bildung des jeweiligen Abschnitts der pseudozufälligen Signalfolge wie die übrigen anwendungsspezifischen Eingabegrößen verarbeitet werden. Für jedes Zeichen der Geheimkombination wird dann zusätzlich zur Blockposition eines diesem Zeichen zugeordneten Datenblocks im entsprechenden Abschnitt der pseudozufälligen Signalfolge auch der diesem Abschnitt der pseudozufälligen Signalfolge entsprechende Zählerstand bestimmt und als weitere Hilfsgröße gespeichert. Für jedes Zeichen der Geheimkombination wird dann also ein aus Zählerstand und Blockposition im entsprechenden Abschnitt der pseudozufälligen Signalfolge bestehendes Paar als Hilfsgrößen bestimmt und gespeichert.Around to ensure, that sufficiently pseudozu due Material for forming the data blocks to disposal can be provided that the calculation of the pseudo-random signal sequence in sections additionally dependent on from a meter reading takes place, the meter reading for calculating a respective further section of the pseudo-random signal sequence on another Value changed if one is available then Section of the pseudo-random Signal sequence is consumed by extracting data blocks. there can the meter reading to form the respective section of the pseudo-random signal sequence like the rest application-specific input variables. For each Character of the secret combination is then in addition to the block position of a data block associated with this character in the corresponding section the pseudorandom one Signal sequence also this section of the pseudo-random signal sequence corresponding counter reading determined and saved as a further auxiliary size. For each Sign of the secret combination is then so from a count and block position in the corresponding section of the pseudo-random signal sequence existing pair determined as auxiliary sizes and saved.
Das Extrahieren der Datenblöcke aus der pseudozufälligen Signalfolge kann nacheinander erfolgen, indem für jeden Datenblock eine seiner Länge entsprechende Anzahl aufeinanderfolgender Signale, typischerweise Bits, aus der pseudozufälligen Signalfolge entnommen werden, wobei der jeweils darauffolgende Datenblock gegenüber dem vorhergehenden Datenblock um eine bestimmte Zahl von Signalen verschoben ist, vorzugsweise um eine der Länge der Datenblöcke entsprechende Zahl von Signalen. Eine bevorzugte Ausführung des Verfahrens zum Erzeugen der Hilfsgrößen sieht vor, dass für jedes Zeichen der Geheimkombination die Blockposition des diesem Zeichen zugeordneten Datenblocks bestimmt wird, indem die extrahierten Datenblöcke nacheinander, vorzugsweise in Reihenfolge ihrer Extrahierung, unter Berücksichtigung der Kodierung mit diesem Zeichen verglichen werden, wobei ein dem Zeichen nicht entsprechender Datenblock verworfen wird, während ein dem Zeichen entsprechender Datenblock, d. h. ein Datenblock, der durch die Kodierung genau diesem Zeichen zugeordnet ist, durch eine Entscheidungsfunktion mit einer bestimmten Wahrscheinlichkeit nicht verworfen, sondern akzeptiert wird, indem die Blockposition dieses Datenblocks als diesem Zeichen zugeordnete Hilfsgröße gespeichert und das Extrahieren von Datenblöcken für dieses Zeichen beendet wird. Zusätzlich wird bei Ausführungen der Erfindung mit einer in Abschnitten erfolgenden Berechnung der pseudozufälligen Signalfolge der dem aktuellen Abschnitt der pseudozufälligen Signalfolge entsprechende Zählerstand als weitere Hilfsgröße gespeichert, wenn der entsprechende Datenblock nicht verworfen wird.The Extract the data blocks from the pseudo-random Signal sequence can be done successively by one of its Length corresponding Number of consecutive signals, typically bits, from the pseudorandom Signal sequence are taken, with the respective subsequent data block across from the previous data block by a certain number of signals is shifted, preferably corresponding to one of the length of the data blocks Number of signals. A preferred embodiment of the method for generating the auxiliary sizes sees before that for each character of the secret combination the block position of this Character assigned data block is determined by the extracted Data blocks in succession, preferably in order of their extraction, taking into account the encoding to be compared with this character, taking a the character not corresponding data block is discarded while a the character corresponding data block, d. H. a data block that is assigned by the coding exactly this character, by a Decision function with a certain probability not discarded, but is accepted by the block position of this Data block saved as auxiliary value assigned to this character and extracting data blocks for this Character is terminated. additionally is available in versions of the invention with a partial calculation of the pseudorandom Signal sequence of the current section of the pseudo-random signal sequence corresponding counter reading saved as a further auxiliary size, if the corresponding data block is not discarded.
Die genannte Entscheidungsfunktion kann dabei durch einen Zufallsentscheider ausgeführt werden, der ein binäres Zufallsexperiment mit einer Einzelwahrscheinlichkeit durchführt, die der im vorangegangenen Absatz genannten Wahrscheinlichkeit entspricht. Dieses binäre Zufallsexperiment ist also so zu konzipieren, dass die Einzelwahrscheinlichkeit für eines von zwei möglichen Ergebnissen der Wahrscheinlichkeit entspricht, mit der ein an sich passender Datenblock nicht verworfen, sondern akzeptiert werden soll. Das binäre Zufallsexperiment kann dabei durchgeführt werden, indem aus einer als Verarbeitungsergebnis von Zufallsdaten gewonnenen Signalkette jeweils ein noch nicht verwerteter Block extrahiert und einem Wert zugeordnet wird, dieser Wert mit einem Schwellenwert oder mehreren Schwellenwerten verglichen wird und ein Ausgang des binären Zufallsexperiments in Abhängigkeit von einem Ergebnis dieses Vergleichs definiert wird, ggf. nach Verwerfen eines oder mehrerer zuvor extrahierter Blöcke, deren Wert keinem Ergebnis zugeordnet war. Die Einzelwahrscheinlichkeit kann dabei für alle Geheimkombinationen konstant, geheimkombinationsspezifisch oder auch für jedes Zeichen einer Geheimkombination spezifisch festgelegt werden. Es kann auch vorgesehen sein, dass diese Einzelwahrscheinlichkeit für alle die Zeichen noch einmal halbiert wird, die durch die Kodierung zwei möglichen Belegungen von Datenblöcken zugeordnet sind.The said decision function can be carried out by a random decision maker who performs a binary random experiment with an individual probability that corresponds to the probability mentioned in the previous paragraph. This binary random experiment must therefore be conceived in such a way that the individual probability for one of two possible outcomes corresponds to the probability with which one fits in itself the data block should not be rejected, but accepted. The binary random experiment can be carried out by extracting a not yet used block out of a signal chain obtained as a processing result of random data and assigning it to a value, comparing this value with a threshold value or several threshold values and an output of the binary random experiment as a function of a Result of that comparison, possibly after discarding one or more previously extracted blocks whose value was not assigned to a result. The individual probability can be specified for all secret combinations constant, secret combination-specific or for each character of a secret combination specifically. It can also be provided that this single probability is again halved for all the characters that are assigned by coding two possible assignments of data blocks.
Maßnahmen der hier im Zusammenhang mit der Entscheidungsfunktion erwähnten Art dienen dazu, das Verfahren noch sicherer zu machen, weil sie eine Rekonstruktion des Hauptpassworts oder ein Austesten von Hauptpasswörtern zusätzlich erschweren. Es ist aber auch denkbar, dass die Entscheidungsfunktion nur eine pseudozufällige Entscheidung trifft, beispielsweise durch eine vergleichbare Verarbeitung einer pseudozufälligen Signalkette. Wenn die Entscheidungsfunktion dagegen durch einen echten Zufallsentscheider ausgeführt werden soll, können die dafür benötigten Zufallsdaten beispielsweise gewonnen werden aus Anschlagzeiten und/oder Differenzen zwischen Tastenanschlägen bei einer Eingabe des Hauptpassworts und/oder der Geheimkombination und/oder der mindestens einen weiteren Eingabegröße und/oder eigens zum Erzeugen der Zufallsdaten angeforderter Tastatureingaben. Solche Zufallsdaten können beispielsweise durch Hashen zu einer zufälligen Signalkette verarbeitet werden, ggf. nach einem Konkatenieren mehrerer Zufallsdaten, wobei nach einem Aufbrauchen von zur Verfügung stehenden Bits ein Verlängern der zufälligen Signalkette erfolgen kann, beispielsweise durch ein Verknüpfen mit einem neuen (also ggf. zuvor geänderten) Initialwert und ein nochmaliges Hashen.activities the kind mentioned here in connection with the decision function serve to make the process even safer, because they have a Reconstructing the main password or debugging main passwords additionally. But it is also conceivable that the decision function only one pseudorandom Decision, for example through comparable processing a pseudorandom one Signal chain. If the decision function by a true random decision made should be able to the one for that required Random data, for example, be obtained from attack times and / or Differences between keystrokes when entering the main password and / or the secret combination and / or the at least one other Input size and / or specifically for generating the random data requested keystrokes. Such random data can for example, processed by hash to a random signal chain if necessary, after a concatenation of several random data, wherein after consuming available bits, extending the random signal chain can be done, for example, by linking with a new (ie if necessary previously changed) Initial value and a second hash.
Als Eingabegrößen, in Abhängigkeit derer die Hilfsgrößen bzw. die Geheimkombinationen berechnet werden, können folgende Größen oder beliebige Kombinationen dieser Größen verwendet werden: Benutzeridentifikation, Anwendungsidentifikation, anwendungsspezifische Benutzeridentifikation, Position des jeweiligen Zeichens der Geheimkombination, für die gerade eine Hilfsgröße ermittelt wird, Index einer Transaktionsnummer, das Alphabet oder eine das Alphabet charakterisierende Größe. Es ist vorteilhaft, diese Eingabegrößen bei dem Verfahren zum Erzeugen und Speichern der Hilfsgrößen zusammen mit den Hilfsgrößen zu speichern, damit sich eine nochmalige Eingabe dieser Eingabegrößen bei dem Verfahren zum Wiedergewinnen der jeweiligen Geheimkombination erübrigt. Es kann insbesondere genügen, wenn die Anwendungsidentifikation manuell eingegeben wird, in Abhängigkeit von der dann die übrigen (zur entsprechenden Anwendung gehörenden) weiteren Eingabegrößen aus dem Speicher eingelesen werden können. Wenn es sich bei der Geheimkombination um eine Transaktionsnummer handelt, insbesondere wenn auch ein Index der Transaktionsnummer als Eingabegröße dient, kann eventuell auch eine Verwertungsmarkierung gespeichert werden, aus der sich ergibt, ob die zu einem bestimmten Index gehörige Transaktionsnummer bereits verwendet wurde. Wenn auch die Position des Zeichens der Geheimkombination als Eingabegröße verwendet wird, so muss diese nicht über die Tastatur eingegeben werden. Der Begriff "Eingabegröße" sei hier also so allgemein verstanden, dass eine solche Eingabegröße nicht unbedingt von Hand eingegeben werden muss. Die Verwendung der Position des Zeichens der Geheimkombination als Eingabegröße hat im Wesentlichen zur Folge, dass für jedes Zeichen der Geheimkombination eine eigene pseudozufällige Signalfolge gebildet wird. Eine typische Anwendung des beschriebenen Verfahrens zum Erzeugen und Speichern von Hilfsgrößen, bei dem der Vorteil, dass der Nutzer sich nur noch ein Hauptpasswort merken muss, besonders zum Tragen kommt, sieht vor, dass in geschilderter Weise Hilfsgrößen für eine Mehrzahl verschiedener Geheimkombinationen erzeugt und gespeichert werden. Aus der vorangegangenen Beschreibung ergibt sich, dass dann für jedes Zeichen jeder Geheimkombination mindestens eine diesem Zeichen dieser Geheimkombination zugeordnete Hilfsgröße erzeugt und gespeichert wird.When Input quantities, in dependence derer the auxiliary sizes or The secret combinations can be calculated, the following sizes or any combination of these sizes can be used: user identification, Application identification, application-specific user identification, position the respective character of the secret combination for which an auxiliary variable is currently being determined is, index of a transaction number, the alphabet or a Alphabet characterizing size. It is advantageous these input sizes the method for generating and storing the auxiliary sizes together to save with the auxiliary sizes, so that a further input of these input variables at the method for recovering the respective secret combination unnecessary. It can be enough in particular if the application identification is entered manually, depending on then the others (for the corresponding application belonging) further input variables the memory can be read. If the secret combination is a transaction number especially if an index of the transaction number serves as input size, may also be saved a recovery mark, which determines whether the transaction number associated with a particular index already used. Although the position of the sign of the Secret combination used as input size it does not have to be over the keyboard will be entered. The term "input size" should be understood here so generally that such input size is not must necessarily be entered by hand. The use of the position of the character of the secret combination as input size has essentially to Follow that for Each character of the secret combination has its own pseudo-random signal sequence is formed. A typical application of the described method for generating and storing auxiliary quantities, in which the advantage that the Users only have to remember one main password, especially for Wear comes, provides that in the described way auxiliary sizes for a plurality of different Secret combinations are generated and stored. From the previous one Description shows that then for each character of each secret combination generates at least one auxiliary character assigned to this character of this secret combination and saved.
Sofern das Verfahren zum Erzeugen und Speichern der Hilfsgrößen vorsieht, dass die pseudozufällige Signalfolge in mehreren Abschnitten und zusätzlich in Abhängigkeit von einem Zählerstand berechnet wird, kann das entsprechende Verfahren zum Wiedergewinnen der Geheimkombinationen so ausgestaltet sein, dass zum Ermitteln jedes Zeichens der Geheimkombination jeweils nur der Abschnitt der pseudozufälligen Signalfolge berechnet wird, der durch den diesem Zeichen zugeordneten Zählerstand definiert ist.Provided the method for generating and storing the auxiliary quantities provides that the pseudorandom Signal sequence in several sections and additionally dependent from a meter reading can be calculated, the appropriate method to recover the secret combinations are designed so that to determine each character of the secret combination only the portion of the pseudo-random signal sequence calculated by the count associated with this character is defined.
Eine vorteilhafte Weiterbildung der vorgeschlagenen Verfahren sieht vor, dass in Abhängigkeit von dem eingegebenen Hauptpasswort mittels einer Einwegfunktion eine optische Markierung berechnet und auf einer Anzeigekomponente, beispielsweise einem Bildschirm, angezeigt wird. Bei dieser optischen Markierung kann es sich beispielsweise um eine Farbe, eine geometri sche Gestalt oder einen bestimmten Ort auf der Anzeigekomponente oder um eine Kombination dieser Merkmale handeln. Die dafür verwendete Einwegfunktion kann beispielsweise ein Hashen des eingegebenen Hauptpasswortes oder einer daraus gebildeten Bitfolge und ein anschließendes Zuordnen einer dadurch gewonnenen Zeichen- oder Bitfolge zu möglichen Werten für die optische Markierung vorsehen. Eine solche optische Markierung erfüllt den Zweck einer Rückmeldung für den Nutzer, der das Hauptpasswort eingegeben hat, damit dieser verifizieren kann, ob er das richtige Hauptpasswort eingegeben hat.An advantageous development of the proposed method provides that, depending on the input main password, a visual mark is calculated by means of a one-way function and displayed on a display component, for example a screen. This optical marking can be, for example, a color, a geometric shape or a specific location on the display component or a combination of these traits. The one-way function used for this purpose may, for example, include hashing of the input main password or a bit sequence formed therefrom and subsequent assignment of a character or bit sequence obtained thereby to possible values for the optical marking. Such an optical tag serves the purpose of providing feedback to the user who has entered the master password to verify that he has entered the correct master password.
Die geschilderten Verfahren können auf einer beliebigen entsprechend programmierten Vorrichtung durchgeführt werden. Bei dieser Vorrichtung kann es sich beispielsweise um einen PDA oder ein Mobiltelefon handeln. Es ist auch denkbar, dass verschiedene Komponenten dieser Vorrichtung räumlich getrennt sind, so dass beispielsweise der Speicher in einer anderen Einheit untergebracht ist als eine Berechnungskomponente, wobei auch zur Berechnung der Hilfsgrößen eine andere Berechnungskomponente verwendet werden kann als zum Wiedergewinnen der Geheimkombinationen. Eine zur Durchführung zumindest eines der beschriebenen Verfahren programmtechnisch eingerichtete Vorrichtung kann bei einer besonderes einfach zu realisierenden Ausführung der Erfindung insbesondere folgende Komponenten umfassen:
- – eine Eingabekomponente zum Eingeben eines Hauptpassworts und mindestens einer weiteren Eingabegröße,
- – einen Speicher,
- – eine Berechnungskomponente, die zum Berechnen der Hilfsgrößen aus von der Eingabekomponente übergebenen Daten und/oder zum Berechnen der Zeichen der Geheimkombination aus von der Eingabekomponente übergebenen und aus dem Speicher ausgelesenen Daten eingerichtet ist,
- – ggf. eine Anzeigekomponente und
- – eine Ausgabekomponente, die zum Ausgeben der von der Berechnungskomponente berechneten und übergebenen Hilfsgrößen an den Speicher und/oder zum Ausgeben der von der Berechnungskomponente berechneten und übergebenen Zeichen der Geheimkombination an die Anzeigekomponente eingerichtet ist.
- An input component for inputting a main password and at least one further input variable,
- - a memory,
- A computation component configured to compute the auxiliary quantities from data input from the input component and / or to compute the characters of the secret combination from data passed from the input component and read from the memory,
- - If necessary, a display component and
- - An output component, which is set up for outputting the auxiliary components calculated and transferred by the calculation component to the memory and / or for outputting the calculated and transmitted by the calculation component characters of the secret combination to the display component.
Die Anzeigekomponente kann dabei zusätzlich zum Anzeigen einer vom eingegebenen Hauptpasswort abhängigen optischen Markierung dienen.The Display component can additionally to display an optical dependent on the input main password Serve mark.
Bei den genannten Daten kann es sich um das Hauptpasswort, die mindestens eine weitere Eingabegröße und die entsprechende Geheimkombination handeln, sofern die Vorrichtung zum Erzeugen und Speichern der Hilfsgrößen ausgebildet ist, und/oder um das Hauptpasswort, die mindestens eine weitere Eingabegröße und die Hilfsgrößen, sofern die Vorrichtung zum Wiedergewinnen der Geheimkombination ausgebildet ist. Außerdem ist die Vorrichtung vorzugsweise so zu gestalten, dass neben den berechneten Hilfsgrößen auch die entsprechenden Eingabegrößen an den Speicher ausgegeben und dort gespeichert werden. Weiterhin ist die Vorrichtung vorzugsweise so ausgebildet, dass die Anzeigekomponente nicht nur zum Anzeigen der wiedergewonnenen Geheimkombination, sondern auch zur Anzeige einer in Abhängigkeit vom eingegebenen Hauptpasswort berechneten optischen Markierung eingerichtet ist.at The data mentioned can be the main password, which is at least another input size and the appropriate secret combination act, provided the device is designed for generating and storing the auxiliary quantities, and / or to the main password, the at least one more input size and the Auxiliary sizes, provided formed the device for recovering the secret combination is. Furthermore the device is preferably to be designed so that in addition to the calculated auxiliary sizes too the appropriate input variables to the Memory is output and stored there. Furthermore, the device preferably designed so that the display component not only to display the recovered secret combination, but also to display a dependent from the input main password calculated optical mark is set up.
Die Berechnungskomponente umfasst vorzugsweise
- – Mittel zum Ausführen einer Schlüsselableitungsfunktion zur Bildung eines Schlüssels vorgegebener Länge aus dem eingegebenen Hauptpasswort,
- – Konkatenationsmittel zum Bilden einer Zeichenkette aus mindestens einer eingegebenen oder aus dem Speicher eingelesenen Eingabegröße,
- – Verschlüsselungsmittel zum Bilden einer pseudozufälligen Signalfolge durch Verschlüsseln der Zeichenkette mit dem Schlüssel und
- – Mittel zum Extrahieren und Kodieren von Datenblöcken aus der pseudozufälligen Signalfolge sowie
- – ggf. zusätzlich Mittel zum Berechnen der erwähnten optischen Markierung.
- Means for executing a key derivation function for forming a key of predetermined length from the input main password,
- Concatenation means for forming a character string from at least one input variable entered or read from the memory,
- - Encryption means for forming a pseudo-random signal sequence by encrypting the character string with the key and
- Means for extracting and encoding blocks of data from the pseudorandom signal sequence and
- - If necessary, additional means for calculating the mentioned optical marking.
Außerdem kann die Vorrichtung, sofern sie für das Verfahren zum Erzeugen und Speichern der Hilfsgrößen eingerichtet ist, eine Zählersteuerung zum Steuern des Zählerstandes, einen Vergleicher zum Vergleichen der Datenblöcke mit den Zeichen der Geheimkombination unter Berücksichtigung der Kodierung des Alphabets und einen Zufallseintscheider, der entscheidet, ob ein einem Zeichen der Geheimkombination unter Berücksichtigung der Kodierung entsprechender Datenblock verworfen oder ausgewählt wird, umfassen.In addition, can the device, provided for set up the method for generating and storing the auxiliary sizes is a counter control for Controlling the meter reading, a comparator for comparing the data blocks with the characters of the secret combination considering the coding of the alphabet and a random trap that decides whether considering a character of the secret combination the coding of the corresponding data block is discarded or selected, include.
Bei der Erfindung müssen sich Benutzer nur noch ein einziges Passwort merken, das sogenannte Hauptpasswort. Die Erfindung gestattet es Benutzern, mittels eines Endgeräts nach Eingabe des Hauptpassworts für beliebige vorgegebene Geheimnisse wie Passwörter, PIN- oder auch TAN-Kombinationen eine Folge von hier als Hilfsgrößen bezeichneten Daten, typischerweise in Form von zeichenspezifischen Zählerständen und Block positionen, zu generieren und auf dem Endgerät abzuspeichern. Bei Bedarf kann dann zu einem späteren Zeitpunkt nach Eingabe des Hauptpassworts und Einlesen der abgespeicherten Zählerstände und Blockpositionen die gewünschte Geheimkombination (Passwort, PIN, TAN) berechnet und ausgegeben werden. Als Endgerät, auf welchem die Erfindung ausgeführt wird, eignen sich insbesondere Mobiltelefone oder PDAs. Das Verfahren erlaubt es, Hilfsgrößen für mehrere Geheimkombinationen oder auch unterschiedliche Typen von Geheimkombinationen (z. B. PINs und TANs), aus denen sich diese Geheimkombinationen wiedergewinnen lassen, sicher auf dem Endgerät abzuspeichern.In the invention, users only have to remember a single password, the so-called main password. The invention allows users to generate by means of a terminal after input of the main password for any given secrets such as passwords, PIN or TAN combinations a sequence of here referred to as auxiliary sizes data, typically in the form of character-specific counter readings and block positions, and on store the terminal. If required, the desired secret combination (password, PIN, TAN) can then be calculated and output at a later time after entering the main password and reading in the stored counter readings and block positions. As a terminal on which the invention is carried out, in particular mobile phones or PDAs are suitable. The method makes it possible to store auxiliary variables for several secret combinations or also different types of secret combinations (eg PINs and TANs) from which these secret combinations can be retrieved securely on the terminal.
Bei dem der Erfindung zugrunde liegenden Verfahren muss sich ein Benutzer mit dem Hauptpasswort lediglich ein einziges Geheimnis merken, welches er sich selbst frei auswählen kann. Ausgehend von dem Hauptpasswort und den gespeicherten Zählerständen und Blockpositionen können dann alle Geheimkombinationen (Passwörter, PINs, TANs) des Benutzers für unterschiedliche Anwendungen erzeugt werden.at The method underlying the invention must be a user remember with the main password only a single secret, which he chooses himself freely can. Starting from the main password and the stored counter readings and Block positions can then all secret combinations (passwords, PINs, TANs) of the user for different Applications are generated.
Das der Erfindung zugrundeliegende Verfahren zeichnet sich durch besondere Sicherheitseigenschaften aus. Versucht ein Angreifer, der sich Zugang zum Endgerät verschafft hat, durch wiederholtes Eingeben von Zeichenkombinationen das Hauptpasswort und somit auch die Geheimkombinationen des Benutzers zu finden, dann liefert das Verfahren dem Angreifer für jede eingegebene Kombination eines Hauptpassworts und gegebenen Hilfsgrößen – typischerweise zeichenspezifischen Zählerständen und Blockpositionen – eine Zeichenkombination, welche aus Sicht des Angreifers zunächst nicht von der tatsächlichen Geheimkombination zu unterscheiden ist, sofern die gesuchte Geheimkombination keine Redundanz aufweist, was es dem Angreifer erlauben würde, bestimmte Ergebnisse (und damit auch bestimmte Hauptpasswörter) verwerfen zu können. Redundanzfreie Geheimkombinationen können beispielsweise bei PINs oder TANs vorliegen, wenn alle PIN- und TAN-Kombinationen mit gleicher Häufigkeit ausgegeben werden und die Menge, über welcher Geheimkombinationen für gegebene Zählerstände und Blockpositionen berechnet werden, ausschließlich Ziffern enthält. Um zu entscheiden, ob es sich bei dem Resultat der Berechnung um die korrekte Geheimkombination handelt, muss der Angreifer also die jeweilige Geheimkombination beim Authentifizierungsvorgang gegenüber dem entsprechenden System eingeben und abwarten, ob das System die eingegebene Geheimkombination als richtigen Wert akzeptiert. Unter der Annahme, dass ein Angreifer über keine Informationen bzgl. des Hauptpassworts eines Benutzers verfügt, hat der Angreifer, selbst dann, wenn er Zugang zu einem Benutzerendgerät und den gemäß des der Erfindung zugrundeliegenden Verfahrens berechneten Zählerständen und Blockpositionen hat, gegenüber einem Angreifer, welcher versucht, die Geheimkombination durch bloßes Raten zu finden, keinen Vorteil. In dieser Eigenschaft unterscheidet sich das der Erfindung zugrundeliegende Verfahren grundlegend von den technischen Lösungen der heutigen Praxis, bei denen die Geheimkombinationen eines Benutzers verschlüsselt auf dem Endgerät gespeichert werden. Bei der verschlüsselten Speicherung von Geheimkombinationen (Passwörter, PINs, TANs) auf einem Endgerät kann ein Angreifer den korrekten – aus einem Hauptpasswort abgeleiteten – Schlüssel von den falsch geratenen Schlüsseln unterscheiden, da die falsch geratenen Schlüssel mit großer Wahrscheinlichkeit das gegebene Chiffrat nicht auf einen solchen entschlüsselten Text abbilden, welcher einer typischen Geheim kombination entspricht. Dies ermöglicht es einem Angreifer, so lange Schlüssel auszutesten, bis das durch Entschlüsselung erhaltene Ergebnis typische Geheimkombinationen enthält. Wird ein solcher Schlüssel gefunden, so ist mit an Sicherheit grenzender Wahrscheinlichkeit davon auszugehen, dass es sich dabei um den korrekten Schlüssel handelt. In diesem Fall hat ein Angreifer die Gewissheit, dass es sich bei den entschlüsselten Daten um die gesuchten Geheimkombinationen (Passwörter, PINs, TANs) handelt.The The invention of the underlying method is characterized by special Safety features. An attacker trying to gain access to the terminal by repeatedly entering character combinations the main password and thus also the secret combinations of the user to find, then the method provides the attacker for each entered Combination of a main password and given auxiliary sizes - typically character-specific counter readings and block positions - a character combination, which, from the point of view of the attacker, does not initially differ from the actual one Secret combination is to be distinguished, provided that the required secret combination no Redundancy, which would allow the attacker, certain To be able to discard results (and thus also certain main passwords). redundancy-free Secret combinations can For example, if PINs or TANs are present, if all PIN and TAN combinations spent with equal frequency and the crowd, over which secret combinations for given meter readings and Block positions are calculated, containing only digits. In order to decide whether the result of the calculation is the correct one Secret combination, the attacker must therefore the respective Secret combination in the authentication process against the enter the appropriate system and wait to see if the system Secret combination accepted as correct value. Under the assumption, that an attacker has no Has information about the main password of a user the attacker, even if he has access to a user terminal and that according to the Underlying method calculated counter readings and Block positions has, opposite An attacker who tries to gain the secret combination by merely guessing find, no advantage. In this property is different the method underlying the invention is fundamentally different from the technical solutions Today's practice involving the secret combinations of a user encoded on the terminal get saved. In the encrypted storage of secret combinations (Passwords, PINs, TANs) on a terminal An attacker can use the correct key - derived from a master password - from the wrongly guessed keys differ, since the wrong guess key with a high probability the given cipher does not apply to such decrypted text depicting which corresponds to a typical secret combination. this makes possible It's an attacker's job to test out keys until they're decrypted result obtained contains typical secret combinations. Becomes such a key found, so is almost certainly to assume that this is the correct key. In this case, an attacker has the certainty that it is in the decrypted Data about the desired secret combinations (passwords, PINs, TANs).
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend anhand der
In
der
Die
in der
Eine
den Ausführungsbeispielen
aus den
Die
Berechnung der Hilfsgrößen wird
für das Ausführungsbeispiel
aus der
Das Verfahren umfasst nun ferner ein Extrahieren von Datenblöcken bestimmter Länge k aus der pseudozufälligen Signalfolge rand, wobei diese Datenblöcke durch eine Kodierung des Alphabets A jeweils einem Zeichen x aus diesem Alphabet A zugeordnet sind, wonach die extrahierten Datenblöcke, deren Extraktion durch die Extraktionsansteuerung es gesteuert wird, unter Berücksichtigung der Kodierung des Alphabets A mit dem Zeichen gi der Geheimkombination g verglichen werden. Anschließend wird eine Blockposition bpi jeweils eines der Datenblöcke für jedes Zeichen gi aus der Geheimkombination g, der durch die Kodierung diesem Zeichen gi zugeordnet ist, bestimmt. Das geschieht dadurch, dass ein Vergleichsergebnis v einem Zufallsentscheider zugeführt wird, der dann, wenn der Vergleich eine Entsprechung des extrahierten Datenblocks mit dem jeweiligen Zeichen gi zeigt, die entsprechende Blockposition bpi mit einer bestimmten Wahrscheinlichkeit als dem jeweiligen Zeichen gi zugeordnete Hilfsgröße auswählt, zu der der den entsprechenden Abschnitt der pseudozufälligen Signalfolge rand kennzeichnende Zählerstand zi als weitere Hilfsgröße hinzutritt.The method now further comprises extracting data blocks of a certain length k from the pseudo-random signal sequence rand, these data blocks being assigned by coding the alphabet A to a character x from this alphabet A, after which the extracted data blocks whose extraction is controlled by the extraction driver will be compared taking into account the coding of the alphabet A with the character g i of the secret combination g. Subsequently, a block position bp i is determined in each case one of the data blocks for each character g i from the secret combination g, which is assigned by the coding to this character g i . This is done by supplying a comparison result v to a randomizer which, when the comparison shows a correspondence of the extracted data block with the respective symbol g i , selects the corresponding block position bp i with a certain probability as an auxiliary quantity assigned to the respective character g i to which the respective portion of the pseudo-random signal sequence rand characterizing count z i occurs added as a further auxiliary variable.
Die
Die
Berechnungskomponente
Entsprechende
Architekturen zum Wiedergewinnen der jeweiligen Geheimkombination
g aus den Hilfsgrößen sind
in den
Den
Die vorliegende Erfindung enthält also ein Verfahren, bei welchem eine anwendungs- oder dienstspezifische Geheimkombination g = (g1, ..., gm) (z. B. Passwort, PIN, TAN), bestehend aus m Zeichen, in sicherer Weise auf einem Endgerät abgespeichert werden kann. Hierbei wird nicht direkt das Ergebnis einer klassischen Verschlüsselungsoperation auf dem Endgerät abgespeichert, sondern vielmehr Steuerungsinformationen in Form von geheimzeichenspezifischen Zählerstanden und Blockpositionen, die als der jeweiligen Geheimkombination zugeordnete Hilfsgrößen dienen. Die Anwendung des der Erfindung zugrunde liegenden Verfahrens eignet sich insbesondere in solchen Fällen, in welchen die zu sichernden Geheimkombinationen vollständig re dundanzfrei oder weitgehend redundanzfrei sind. Diese Bedingungen sind beispielsweise dann erfüllt, wenn es sich bei den sicher zu hinterlegenden Geheimkombinationen um PINs oder TANs handelt. Dies bedeutet, dass sich das der Erfindung zugrunde liegende Verfahren insbesondere zur sicheren Aufbewahrung von PINs und TANs eignet. Darüber eignet sich das Verfahren zur sicheren Aufbewahrung von Passwörtern, wobei diese entsprechend gut ausgewählt sein sollten, d. h. nach Möglichkeit keine Passagen enthalten sollten, denen man einen bestimmten Sinn oder eine Bedeutung zuordnen könnte, wie dies beispielsweise der Fall wäre, wenn Passwörter eines Benutzers einem Lexikon oder Wörterbuch entnommen wären.The present invention thus includes a method in which an application-specific or service-specific secret combination g = (g 1 , ..., g m ) (eg password, PIN, TAN), consisting of m characters, in a secure manner a terminal can be stored. In this case, the result of a conventional encryption operation is not stored directly on the terminal, but rather control information in the form of secret character-specific counter statuses and block positions which serve as auxiliary variables assigned to the respective secret combination. The application of the method on which the invention is based is particularly suitable in those cases in which the secret combinations to be secured are completely free from deltancy or largely redundancy-free. These conditions are fulfilled, for example, when the secret combinations to be securely deposited are PINs or TANs. This means that the method on which the invention is based is particularly suitable for the secure storage of PINs and TANs. This is the method for secure storage of passwords, which should be selected accordingly well, ie, if possible, none Passages to which one could assign a certain meaning or meaning, as would be the case, for example, if passwords of a user were taken from a lexicon or dictionary.
Das der Erfindung zugrunde liegende Gesamtverfahren gliedert sich grob betrachtet in zwei Teile:
- • Ein Verfahren zur Berechnung
von zeichenspezifischen Zählerständen und
Blockpositionen: Durch diesen Teil der Erfindung werden für die Zeichen
einer m-stelligen Geheimkombination g = (g1,
..., gm) bei gegebenem Alphabet A, über welchem
g gebildet wird, zeichenspezifische Zählerstände und Blockpositionen (z1, bp1), ..., (zm, bpm) berechnet.
Dies wird in den
1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 und9 dargestellt. - • Ein
Verfahren zur Berechnung von Geheimkombinationen: Durch diesen Teil
der Erfindung werden aus den zeichenspezifischen Zählerständen und
Blockpositionen (z1, bp1),
..., (zm, bpm) für das gegebene
Alphabet A die Zeichen der m-stelligen Geheimkombination g = (g1, ..., gm) berechnet. Dies wird
in den
11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 und19 dargestellt.
- A method for calculating character-specific counts and block positions: By this part of the invention, for the characters of an m-ary secret combination g = (g 1 ,..., G m ) for a given alphabet A over which g is formed, character-specific Counter readings and block positions (z 1 , bp 1 ), ..., (z m , bp m ) are calculated. This will be in the
1 .2 .3 .4 .5 .6 .7 .8th and9 shown. - A method for calculating secret combinations: By this part of the invention, the character-specific counter readings and block positions (z 1 , bp 1 ),..., (Z m , b p m ) for the given alphabet A become the characters of the m-digit ones Secret combination g = (g 1 , ..., g m ) is calculated. This will be in the
11 .12 .13 .14 .15 .16 .17 .18 and19 shown.
Bei dem Verfahren zur Berechnung von zeichenspezifischen Zählerständen und Blockpositionen werden die zeichenspezifischen Zählerstände und Blockpositionen auf Basis einer Reihe von Werten berechnet, die von dem Benutzer einzugeben sind. Zu diesen Werten gehören das Hauptpasswort MPW des Benutzers, die zu verwahrende Geheimkombination g = (g1, ..., gm), das Alphabet A, über dem g gebildet wird, die Bezeichnung did der Applikation oder des Dienstes, für welchen die Geheimkombination verwendet wird, Zufallsdaten zd und optional eine Identifikation bid für den Benutzer. Der Wert von bid kann von dem Benutzer selbst vergeben werden und ist nicht mit einer dienstspezifischen Benutzeridentifikation zu verwechseln. Sofern der Benutzer für die jeweilige Anwendung bzw. Dienst noch eine dienstespezifische Benutzeridentifikation dbid (d. h. Login-Name) benötigt, kann dieser Wert ebenfalls bei der Berechnung der zeichenspezifischen Zählerstände und Blockpositionen berücksichtigt werden. Die Verwendung der dienstspezifischen Benutzeridentifikation dbid zur Berechnung der zeichenspezifischen Zählerstände und Blockpositionen ist ohnehin nur dann sinnvoll, wenn dbid an den Benutzer ausgegeben wird und dieser sich diesen Wert merken müsste, wie das beispielsweise bei typischen Passwort-Anwendungen der Fall ist, bei welchen man sich neben seinem Passwort auch an seinen Login-Namen erinnern muss. Darüber hinaus gibt es jedoch auch Anwendungen wie beispielsweise beim Einsatz von EC-Karten an Geldautomaten oder beim elektronischen Bezahlen, bei welchen man als Benutzer keinen Login-Namen eingeben muss. In solchen Fällen würde man zur Berechnung der zeichenspezifischen Zählerstände und Blockpositionen keine dienstespezifische Benutzeridentifikation dbid verwenden. Die Eingabe von dbid ist also abhängig vom Typ der Geheimkombination und der Einsatz ist vorteilhaft, wenn es sich bei der sicher zu hinterlegenden Geheimkombination um ein Passwort handelt, für welches man sich als Benutzer zusätzlich noch einen Login-Namen als dienstespezifische Benutzeridentifikation dbid merken muss. Handelt es sich bei der sicher zu verwahrenden Geheimkombination um eine TAN, dann ist die Eingabe von Indexwerten ix vorteilhaft, über welche die einzelnen TANs referenziert werden können, wie dies beim iTAN-Verfahren der Fall ist, z. B. (ix = 1, g = 250367) als 1. TAN, (ix = 2, g = 281273) als 2. TAN, ..., (ix = 30, g = 010706) als 30. TAN. Die Eingabe eines Indexwertes ix ist also ebenfalls abhängig vom Typ der Geheimkombination und hauptsächlich bei der Verwaltung von TANs relevant. Im Folgenden werden die vorteilhaften Eingabewerte nochmals in Abhängigkeit der Typen von Geheimkombinationen aufgelistet.
- • PINs (siehe
auch
1 ) – Hauptpasswort MPW – PIN als Geheimkombination g = (g1, ..., gm) – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Zufallsdaten zd – Benutzeridentifikation bid (optional) - • TANs
(siehe auch
2 ) – Hauptpasswort MPW – TAN als Geheimkombination g = (g1, ..., gm) – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Zufallsdaten zd – Benutzeridentifikation bid (optional) – Indexwert der TAN ix - • Passwörter (siehe
auch
3 ) – Passwort als Geheimkombination g = (g1, ..., gm) – Hauptpasswort MPW – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Zufallsdaten zd – Benutzeridentifikation bid (optional) – dienstespezifische Benutzeridentifikation dbid
- • PINs (see also
1 ) - Main password MPW - PIN as a secret combination g = (g 1 , ..., g m ) - Alphabet A - Name of the application or service did - Random data zd - User identification bid (optional) - • TANs (see also
2 ) - Main password MPW - TAN as secret combination g = (g 1 , ..., g m ) - Alphabet A - Name of the application or the service did - Random data zd - User identification bid (optional) - Index value of the TAN ix - • Passwords (see also
3 ) - Password as a secret combination g = (g 1 , ..., g m ) - Main password MPW - Alphabet A - Name of the application or service did - Random data zd - User identification bid (optional) - Service-specific user identification dbid
Das einzugebende Alphabet A beschreibt die Menge der Zeichen, über welcher die Geheimkombination gebildet wird. Das Alphabet A umfasst hierbei nicht nur diejenigen Zeichen, welche letztendlich in g enthalten sind, sondern auch solche die potenziell enthalten sein könnten. Es ist jedoch wichtig, dass A keine Zeichen umfasst, welche auf keinen Fall in g enthalten sein können, d. h. keine Zeichen, welche durch Vorschriften des Dienstes oder der Anwendung als Elemente der Geheimkombination a priori ausgeschlossen sind. Handelt es sich bei g um eine PIN oder um eine TAN, dann gilt A = {0, 1, ..., 9}. Würde man in diesem Fall statt dessen A = {0, 1, ..., 9, a, b, c} wählen, und auf Basis dieser Menge Zählerstände und Blockpositionen berechnen, dann würde ein Angreifer für bestimmte Kandidaten von Hauptpasswörtern PINs oder TANs berechnen, welche die Zeichen a, b oder c enthalten, wodurch ein gewähltes Hauptpasswort leicht als falsch identifiziert werden könnte. Da PINs und TANs typischerweise nur aus Ziffern bestehen, sollte das von dem Benutzer einzugebende Alphabet A ausschließlich solche Zeichen umfassen. Handelt es sich bei der Geheimkombination hingegen um ein Passwort, dann wird das Alphabet A üblicherweise weitere Zeichen beinhalten, wie etwa Groß- oder Kleinbuchstaben oder Sonderzeichen. Jedoch ist bei der Eingabe von A dennoch darauf zu achten, dass A keine Zeichen enthält, welche durch die Passwortregeln der jeweiligen Applikation/Dienst ausgeschlossen sind. Wenn Zeichen in A enthalten sind, die gemäß anwendungsspezifischer Passwortregeln offensichtlich nicht in Passwörtern auftreten können, dann bietet dies Angreifern die Möglichkeit, falsche Hauptpasswörter direkt zu identifizieren. Die Auswahl des Alphabets A hat darüber hinaus eine Auswirkung auf die Größe von Datenblöcken, welche bei dem der Erfindung zugrunde liegenden Verfahren zur Berechnung von Zählerständen und Blockpositionen verwendet werden. In einer vorteilhaften Ausführung zur Eingabe des Alphabets A können bestimmte Zeichen bereits gruppiert sein, so dass der Benutzer anstatt der Auswahl einzelner Zeichen Zeichengruppen auswählen kann (z. B. Ziffern, Kleinbuchstaben, Großbuchstaben). Lediglich bei den Sonderzeichen scheint eine Auswahl einzelner Zeichen zur Beschreibung von A sinnvoll, da unterschiedliche Anwendungen und Dienste verschiedene Sonderzeichen akzeptieren.The alphabet A to be entered describes the set of characters over which the secret combination is formed. In this case, the alphabet A includes not only those characters which are ultimately contained in g, but also those which could potentially be included. However, it is important that A does not include characters that can not be contained in g in any case, ie no characters which are a priori by rules of the service or application as elements of the secret combination excluded are. If g is a PIN or a TAN, then A = {0, 1, ..., 9}. In this case, instead of choosing A = {0, 1, ..., 9, a, b, c} in this case, and computing counts and block positions based on that amount, an attacker would pin or tan for certain candidate key passwords which contain the characters a, b or c, whereby a selected master password could easily be identified as false. Since PINs and TANs typically consist only of digits, the alphabet A to be entered by the user should only include such characters. On the other hand, if the secret combination is a password, then the alphabet A will usually include other characters, such as uppercase or lowercase letters or special characters. However, when entering A, it must nevertheless be ensured that A contains no characters which are excluded by the password rules of the respective application / service. If there are characters in A that obviously can not appear in passwords according to application-specific password rules, this provides an opportunity for attackers to directly identify wrong main passwords. The selection of the alphabet A also has an effect on the size of data blocks which are used in the method of calculating counter readings and block positions on which the invention is based. In an advantageous embodiment for inputting the alphabet A, certain characters may already be grouped so that the user may select character groups (eg, numbers, lowercase, uppercase) instead of selecting individual characters. Only with special characters does a selection of single characters make sense for the description of A, since different applications and services accept different special characters.
Die einzugebenden Zufallsdaten zd stellen das Material zur Durchführung von Zufallsexperimenten dar, deren Resultate zur Steuerung der Berechnung von Zählerständen und Blockpositionen dienen. Hierbei können als Zufallsdaten entweder direkt die eingegebenen Werte (z. B. die Werte, welche vom Benutzer in zufälliger Folge über die Tastatur eingeben werden) verwendet werden oder auch die Zeitabstände in Millisekunden zwischen den einzelnen Tastaturanschlägen oder auch eine Kombination von eingegebenen Werten und Zeitabständen. Bei der Eingabe von Zufallsdaten ist eine bestimmte Mindestmenge von Zufallsmaterial notwendig. Um eine Mindestmenge von Zufallsmaterial zu gewährleisten ist es vorteilhaft, wenn der Benutzer zur Eingabe dieser Mindestmenge gezwungen wird, z. B. eine geforderte Mindestmenge von Tastenanschlägen. In einer vorteilhaften Ausführung der Erfindung kann die Berechnung von Zählerständen und Blockpositionen nicht gestartet werden, wenn nicht genügend initiale Zufallswerte vorhanden sind. Wenn später während der Berechnung von Zählerständen und Blockpositionen noch weitere Zufallsdaten zur Durchführung weiterer Zufallsexperimente notwendig sind, ist es möglich, die initialen Zufallsdaten durch Anwendung eines geeigneten Verfahrens zu expandieren, um somit weitere Zufallswerte zu erhalten.The Random data to be entered zd provide the material for the implementation of Random experiments, the results of which are used to control the calculation of meter readings and Serve block positions. This can either be random data directly the entered values (eg the values given by the user in random Episode over enter the keyboard) or the time intervals in milliseconds between each keystroke or a combination of entered values and time intervals. When entering random data a certain minimum quantity of random material is necessary. Around to ensure a minimum amount of random material it is beneficial if the user is forced to enter this minimum amount, z. B. a required minimum amount of keystrokes. In an advantageous embodiment The invention can not calculate counter counts and block positions be started if not enough initial random values are present. If later during the calculation of meter readings and Block positions even more random data to carry out more Random experiments are necessary, it is possible the initial random data by using a suitable method to expand, so to get more random values.
Die
Architektur zur Berechnung der zeichenspezifischen Zählerstände und
Blockpositionen wird in Abhängigkeit
von dem sicher zu verwahrenden Geheimkombinationstyp in den
- • Speicherung
bei PINs (siehe auch
1 ) – geheimkombinationszeichenspezifische Zählerstände z1, ..., zm – geheimkombinationszeichenspezifische Blockpositionen bp1, ..., bpm – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) - • Speicherung
bei TANs (siehe auch
2 ) – geheimkombinationszeichenspezifische Zählerstände z1, ..., zm – geheimkombinationszeichenspezifische Blockpo sitionen bp1, ..., bpm – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) – Indexwert ix der TAN – Verwertungsmarkierung u - • Speicherung
bei Passwörtern
(siehe auch
3 ) – geheimkombinationszeichenspezifische Zählerstände z1, ..., zm – geheimkombinationszeichenspezifische Blockpositionen bp1, ..., bpm – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) – dienstespezifische Benutzeridentifikation dbid
- • Storage with PINs (see also
1 ) - secret combination character specific counter readings z 1 , ..., z m - secret combination character specific block positions bp 1 , ..., bp m - alphabet A - designation of the application or the service did - user identification bid (optional) - • Storage on TANs (see also
2 ) - secret combination character specific counter readings z 1 , ..., z m - secret combination character specific block positions bp 1 , ..., bp m - alphabet A - designation of the application or service did - user identification bid (optional) - index value ix of the TAN utilization mark u - • Storage for passwords (see also
3 ) - secret combination-character-specific counter readings z 1 , ..., z m - secret combination-character-specific block positions bp 1 , ..., bp m - alphabet A - designation of the application or service did - user identification bid (optional) - service-specific user identification dbid
Wenn
eine neue Geheimkombination als TAN eingegeben wird, dann erzeugt
die Berechnungskomponente für
diese TAN eine Verwertungsmarkierung u, welche angibt, ob die TAN
bereits verwendet wurde. In einer vorteilhaften Ausführung des in
dieser Erfindung beschriebenen Verfahrens bekommt eine neu eingegebene
TAN initial einen Wert zugeordnet, der angibt, dass die TAN noch
nicht benutzt wurde. Die Verwertungsmarkierung u wird wie in
Die dem Benutzer angezeigte optische Markierung OM hilft dem Benutzer zu erkennen, ob er das korrekte Hauptpasswort eingegeben hat oder ob sich bei der Eingabe möglicherweise Tippfehler eingeschlichen haben. Hierzu wird ausgehend von dem eingegebenen Hauptpasswort eine optische Rückmeldung berechnet. Von der angezeigten optischen Markierung kann man jedoch nicht eindeutig auf das eingegebene Hauptpasswort zurück schließen, da die Anzahl der unterscheidbaren optischen Markierungen deutlich kleiner ist als die Anzahl der möglichen Hauptpasswörter. Da für jedes Hauptpasswort eine spezifische optische Markierung berechnet wird, wird einem Benutzer stets die gleiche optische Markierung angezeigt, so lange dieser das gleiche Hauptpasswort eingibt. In einer vorteilhaften Ausführung der Erfindung ergibt sich die optische Markierung über eine Kombination von Symbolen, Vordergrundfarben, Hintergrundfarben und Positionen.The The optical mark OM displayed to the user helps the user to recognize if he entered the correct main password or whether at the input possibly Typing mistakes. For this purpose, starting from the entered main password an optical feedback calculated. From the displayed optical marking, however, you can do not clearly infer the entered main password, since the Number of distinguishable optical marks significantly smaller is as the number of possible Master passwords. Therefore each main password calculates a specific optical mark a user always gets the same visual mark displayed as long as it inputs the same main password. In an advantageous embodiment The invention results in the optical marking over a Combination of symbols, foreground colors, background colors and Positions.
Die
Berechnung der Zählerstände und Blockpositionen
(z1, bp1), ...,
(zm, bpm) wird zeichenweise
vorgenommen, wie in den
- • Weitere
der i-ten Berechnung übergebene
Werte bei PINs (siehe auch
4 ) – i-tes Zeichen gi der Geheimkombination g – Alphabet A – Zufallsdaten zd – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) - • Weitere
der i-ten Berechnung übergebene
Werte bei TANs (siehe auch
5 ) – i-tes Zeichen gi der Geheimkombination g – Alphabet A – Zufallsdaten zd – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) – Indexwert ix der TAN - • Weitere
der i-ten Berechnung übergebene
Werte bei Passwörtern
(siehe auch
6 ) – i-tes Zeichen gi der Geheimkombination g – Alphabet A – Zufallsdaten zd – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) – dienstespezifische Benutzeridentifikation dbid
- • Further values for the i-th calculation with PINs (see also
4 ) - i-th character g i of the secret combination g - alphabet A - random data zd - name of the application or service did - user identification bid (optional) - • Further values for TANs transferred to the ith calculation (see also
5 ) - i-th character g i of the secret combination g - alphabet A - random data zd - name of the application or service did - user identification bid (optional) - index value ix of the TAN - • Further values for passwords given to the ith calculation (see also
6 ) - i-th character g i of the secret combination g - alphabet A - random data zd - name of the application or service did - user identification bid (optional) - service-specific user identification dbid
Über diese
an die Berechnung übergebenen Werte
hinaus wird zusätzlich
noch bei allen Typen von Geheimkombinationen die Zeichenposition
i des Geheimzeichens gi für i = 1,
..., m zur Berechnung der zeichenspezifischen Zählerstände und Blockpositionen (zi, bpi) benötigt. Hier
kann bei der i-ten Instantiierung der Berechnung von zeichenspezifischen Zählerständen und
Blockpositionen der jeweilige Wert von i verwendet werden, wie in
den
Zur
Abbildung des Hauptpassworts MPW auf die optische Markierung OM
kann in der vorliegenden Erfindung eine Verwendung einer Einwegfunktion von
Vorteil sein. Durch diese wird aus dem Hauptpasswort MPW eine binäre Zeichenfolge
o einer bestimmten Länge
lo berechnet, aus der sich dann Blöcke o1, o2, o3,
... fester Länge
l1, l2, l3, ... extrahieren lassen, welche ihrerseits
auf bestimmte Merkmale (z. B. anzuzeigendes Symbol, Vordergrundfarbe,
Hintergrundfarbe, Position) abgebildet werden. Mit einem Block der
Länge y > 0 lassen sich maximal
2y verschiedene Ausprägungen eines Merkmals beschreiben.
Hierzu ist es erforderlich, dass man für die verschiedenen optischen
Ausprägungen
der jeweiligen Merkmale entsprechende Kodierungen einführt, so dass
die erhaltenen Wertebelegungen der extrahierten Blöcke auf
die entsprechenden optischen Ausprägungen der Merkmale abgebildet
werden können. Extrahiert
man aus einer binären
Zeichenfolge o beispielsweise wie in
Die
Berechnung der zeichenspezifischen Zählerstände und Blockpositionen (zi, bpi) für ein gegebenes
Geheimkombinationszeichen wird in Anhängigkeit von dem Typ der Geheimkombination durchgeführt wie
in den
- • A = {0, ..., 9, a, ..., z},
|A| = 36, ⌈log2|A|⌉ =
6 (siehe
22 ) - • A
= {!, $, (, ), 0, ..., 9, [, ], a, ..., z}, |A| = 42, ⌈log2|A|⌉ = 6 (siehe
23 ) - • A
= {0, ..., 9, A, ..., Z, a, ..., z}, |A| = 62, ⌈log2|A|⌉ = 6 (siehe
24 ) - • A
= {!, #, %, +, –,
/, 0, ..., 9, =, @, A, ..., Z, [, ], a, ..., z, |}, |A| = 74, ⌈log2|A|⌉ = 7 (siehe
25 )
- • A = {0, ..., 9, a, ..., z}, | A | = 36, ⌈log 2 | A | ⌉ = 6 (see
22 ) - • A = {!, $, (,), 0, ..., 9, [,], a, ..., z}, | A | = 42, ⌈log 2 | A | ⌉ = 6 (see
23 ) - • A = {0, ..., 9, A, ..., Z, a, ..., z}, | A | = 62, ⌈log 2 | A | ⌉ = 6 (see
24 ) - • A = {!, #,%, +, -, /, 0, ..., 9, =, @, A, ..., Z, [,], a, ..., z, |} , | A | = 74, ⌈log 2 | A | ⌉ = 7 (see
25 )
Die Kodierung der für die Geheimkombinationen zu verwendenden Alphabete kann in einer vorteilhaften Ausführung der Erfindung automatisch vorgenommen werden, indem beispielsweise die Zeichen des Alphabets in einer gegebenen Reihenfolge (z. B. entsprechend der Reihenfolge der ASCII-Kodierung) aufgelistet werden und diese dann den ⌈log2|A|⌉-stelligen Binärkombinationen zugeordnet werden. Wenn jedem Zeichen eine ⌈log2|A|⌉-stellige Binärkombination zugeordnet worden ist, werden die verbliebenen Binärkombinationen nochmals den Zeichen des Alphabets in gegebener Reihenfolge zugeordnet bis allen ⌈log2|A|⌉-stelligen Binärkombinationen genau ein Zeichen zugeordnet wurde.The coding of the alphabets to be used for the secret combinations can be done automatically in an advantageous embodiment of the invention, for example by listing the characters of the alphabet in a given order (eg according to the order of the ASCII coding) and then assigning them the ⌈ Log 2 | A | ⌉-digit binary combinations are assigned. If a ⌈log 2 | A | ⌉-digit binary combination has been assigned to each character, the remaining binary combinations are again assigned to the characters of the alphabet in a given order until exactly one character has been assigned to all ⌈log 2 | A | ⌉-digit binary combinations.
Wie
in den
Wenn für ein Geheimkombinationszeichen gi ein geeignetes Wertepaar eines zeichenspezifischen Zählerstands und einer Blockpositionen (zi, bpi) gefunden wurde, dann wird dieses entweder mit einer Wahrscheinlichkeit pi akzeptiert oder mit einer Wahrscheinlichkeit 1-pi verworfen und die Suche wird fortgeführt. Das in der Erfindung enthaltene Verfahren muss hierbei geeignete Werte für diese Wahrscheinlichkeit pi bei der Durchführung des binären Zufallsexperiments verwenden. Es ist hierbei möglich, den Wert von pi für die Berechnung von zeichenspezifischen Zählerständen und Blockpositionen verschiedener Geheimkombinationen g konstant zu halten oder diesen auch zu variieren. Es bieten sich hierzu verschiedene Möglichkeiten an:
- 1. Konstante Wahrscheinlichkeit p0 für alle Geheimkombinationen g: In diesem Fall wird ein fest voreingestellter Wahrscheinlichkeitswert pi = p0 mit 0 < p0 < 1 verwendet, z. B. po ∈ {1/2, 1/3, 1/4, ..., 1/100}. Der eingestellte Wert von p0 wird bei allen Zeichen aller Geheimkombinationen angewendet.
- 2. Geheimkombinationsspezifische Wahrscheinlichkeit pg: In diesem Fall wird die Wahrscheinlichkeit pi = pg mit pmin < pg < pmax und 0 < pmin < pmax < 1 für jede Geheimkombination neu ausgewählt, d. h. bei der Berechnung der Zählerstände und Blockpositionen für die Geheimkombinationen g(1) und g( 2 ) werden nicht notwendigerweise die gleichen Wahrschein lichkeitswerte verwendet. Jedoch sind die Wahrscheinlichkeitswerte pi zur Berechnung der Zählerstände und Blockpositionen für alle Zeichen einer Geheimkombination identisch.
- 3. Geheimkombinationszeichenspezifische Wahrscheinlichkeit pgi: In diesem Fall wird für jedes Zeichen der Geheimkombination, für welches ein Zählerstand und eine Blockposition zu berechnen ist, ein neuer Wahrscheinlichkeitswert pi = pgi mit pmin < pgi < pmax und 0 < pmin < pmax < 1 verwendet, so dass von Fall zu Fall unterschiedliche Wahrscheinlichkeitswerte angewendet werden können.
- 1. Constant probability p 0 for all secret combinations g: In this case, a fixed preset probability value p i = p 0 is used with 0 <p 0 <1, z. Eg p o ∈ {1/2, 1/3, 1/4, ..., 1/100}. The set value of p 0 is applied to all characters of all secret combinations.
- 2. Secret combination-specific probability p g : In this case, the probability p i = p g with p min <p g <p max and 0 <p min <p max <1 is newly selected for each secret combination, ie in the calculation of the counter readings and Block positions for the secret combinations g (1) and g ( 2 ) do not necessarily use the same probability values. However, the probability values p i for calculating the counts and block positions are identical for all characters of a secret combination.
- 3. Secret Combination Character-Specific Probability p gi : In this case, for each character of the secret combination for which a count and a block position is to be calculated, a new probability value p i = p gi with p min <p gi <p max and 0 <p min <p max <1, so that different probability values can be used on a case-by-case basis.
In den im Vorangegangenen beschriebenen drei Fällen ist es auch denkbar, dass bei der Berechnung von Zählerständen und Blockpositionen für solche Geheimkombinationszeichen aus dem gegebenen Alphabet A, welche nur einer Binärkombination zugeordnet werden, ein Wahrscheinlichkeitswert angewendet wird, welcher doppelt so groß ist, wie der angewendete Wahrscheinlichkeitswert bei Geheimkombinationszeichen aus A, welche zwei Binärkombinationen zugeordnet werden. In dieser Spezialisierung der obigen Fälle ist darauf zu achten, dass die Wahrscheinlichkeit bei Geheimkombinationszeichen aus A, welche zwei Binärkombinationen zugeordnet werden, kleiner als 0,5 gewählt wird. Man erhält die folgenden Spezialisierungen:
- 1'. Konstante Wahrscheinlichkeit p0 für alle Geheimkombinationen g bei abbildungsabhängiger Anpassung: In diesem Fall wird ein fest voreingestellter Wahrscheinlichkeitswert p0 mit 0 < p0 < 0,5 verwendet. Der eingestellte Wert von p0 wird bei allen Geheimkombinationen angewendet. Wenn das vorliegende Geheimkom binationszeichen zwei Binärkombinationen zugeordnet wird, dann gilt pi = p0. Wenn das vorliegende Geheimkombinationszeichen nur einer Binärkombination zugeordnet wird, dann gilt pi = 2p0.
- 2'. Geheimkombinationsspezifische Wahrscheinlichkeit pg bei abbildungsabhängiger Anpassung: In diesem Fall wird für jede Geheimkombination g ein eigner Wahrscheinlichkeitswert pg mit pmin < pg < pmax und 0 < pmin < pmax < 0,5 ermittelt. Der ermittelte Wert von pg wird daraufhin bei der Berechnung der Zählerstände und Blockpositionen für alle Zeichen der vorliegenden Geheimkombinationen g in folgender Weise angewendet. Wenn das vorliegende Geheimkombinationszeichen zwei Binärkombinationen zugeordnet wird, dann gilt pi = pg. Wenn das vorliegende Geheimkombinationszeichen nur einer Binärkombination zugeordnet wird, dann gilt pi = 2pg.
- 3'. Geheimkombinationsspezifische Wahrscheinlichkeit pgi bei abbildungsabhängiger Anpassung: In diesem Fall wird für jedes Zeichen gi der Geheimkombination g, für welches ein Zählerstand zi und eine Blockposition bpi zu berechnen ist, ein neuer Wahrscheinlichkeitswert pgi mit pmin < pgi < pmax und 0 < pmin < pmax < 0,5 ermittelt. Wenn das vorliegende Geheimkombinationszeichen zwei Binärkombinationen zugeordnet ist, dann wird pi = pgi gewählt. Wird das vorliegende Geheimkombinationszeichen dagegen nur einer Binärkombination zugeordnet, so gilt pi = 2pgi.
- 1'. Constant probability p 0 for all secret combinations g for image-dependent adaptation: In this case, a fixed preset probability value p 0 with 0 <p 0 <0.5 is used. The set value of p 0 is used for all secret combinations. If the present secret combination character is assigned to two binary combinations, then p i = p 0 . If the present secret combination character is assigned only to a binary combination, then p i = 2p 0 .
- 2 '. Secret combination-specific probability p g for image-dependent adaptation: In this case, for each secret combination g, an own probability value p g with p min <p g <p max and 0 <p min <p max <0.5 is determined. The determined value of p g is then used in the calculation of the counts and block positions for all characters of the present secret combinations g in the following manner. If the present secret combination character is assigned to two binary combinations, then p i = p g . If the present secret combination character is assigned to only one binary combination, then p i = 2p g .
- 3 '. Secret combination-specific probability p gi for image-dependent adaptation: In this case, for each character g i of the secret combination g for which a count z i and a block position bp i is to be calculated, a new probability value p gi with p min <p gi <p max and 0 <p min <p max <0.5. If the present secret combination character is associated with two binary combinations, then p i = p gi is chosen. On the other hand, if the present secret combination character is only assigned to a binary combination, then p i = 2p gi .
In den oben genannten Varianten werden über geeignet gewählte Werte für pmin und pmax Intervalle definiert, aus denen die jeweilige Wahrscheinlichkeit p0, pg bzw. pgi zu entnehmen ist. Die Auswahl der Wahrscheinlichkeitswerte für pg und pgi kann ebenfalls über ein Zufallsexperiment durchgeführt werden. Hierbei ist darauf zu achten, dass die zwischen pmin und pmax zur Verfügung stehenden und zufällig ausgewählten Wahrscheinlichkeitswerte selbst entweder gleichverteilt oder annähernd gleichverteilt sind. Bei der praktischen Anwendung des der Erfindung zugrunde liegenden Verfahrens kann man beispielsweise pmin = 0,1 und pmax = 0,5 verwenden.In the above variants, suitably chosen values for p min and p max are Inter valle from which the respective probability p 0 , p g or p gi can be seen. The selection of the probability values for p g and p gi can likewise be carried out by means of a random experiment. It should be noted here that the randomly selected probability values available between p min and pmax are themselves either equally distributed or approximately equally distributed. In the practical application of the method on which the invention is based, it is possible, for example, to use p min = 0.1 and p max = 0.5.
In einer vorteilhaften Ausführung der Erfindung kann ein binäres Zufallsexperiment mit geeigneten Wahrscheinlichkeiten dadurch erreicht werden, indem man auf einer Skala von 0 bis 99 einen ganzzahligen Schwellwert sw mit 0 < sw < 99 festlegt und den Ausgang des Zufallsexperiments darüber bestimmt, ob für einen aus den Zufallsdaten zd in geeigneter Weise abgeleiteten Wert ex entweder die Beziehung ex < sw oder die Beziehung ex ≥ sw gilt. Der Wert von ex kann beispielsweise dadurch erhalten werden, dass aus dem Verarbeitungsergebnis der Zufallsdaten zd 7 Bits extrahiert werden, welche vorher noch nicht extrahiert wurden, und man die dadurch erhaltene Binärkombination dezimal interpretiert. Der Wert von ex liegt dann zwischen 0 und 127 einschließlich. Sofern 0 ≤ ex ≤ 99 gilt, wird überprüft, welche der beiden Beziehungen (ex < sw oder ex ≥ sw) erfüllt ist. Im Fall ex > 99 wird der ermittelte Wert von ex verworfen und ein neuer Wert für ex bestimmt, indem neue 7 Bit extrahiert werden. Je nach Wahl des Schwellwerts sw lässt sich somit ein Wert von sw/100 für die Wahrscheinlichkeit p0, pg bzw. pgi erhalten, wobei angenommen wird, dass das Auftreten des Ereignisses ex < sw auf das Ereignis abgebildet wird, bei welchem das gefundene Paar aus Zählerstand und Blockposition akzeptiert wird.In an advantageous embodiment of the invention, a binary random experiment with appropriate probabilities can be achieved by setting an integer threshold sw with 0 <sw <99 on a scale from 0 to 99 and determining the outcome of the random experiment as to whether one of the Random data zd suitably derived value ex either the relationship ex <sw or the relationship ex ≥ sw holds. The value of ex can be obtained, for example, by extracting 7 bits from the processing result of the random data zd, which have not yet been extracted, and decoding the thus obtained binary combination. The value of ex is then between 0 and 127 inclusive. If 0 ≤ ex ≤ 99, it is checked which of the two relationships (ex <sw or ex ≥ sw) is satisfied. In the case of ex> 99, the determined value of ex is discarded and a new value for ex is determined by extracting new 7 bits. Depending on the choice of the threshold value sw, a value of sw / 100 can thus be obtained for the probability p 0 , p g or p gi , it being assumed that the occurrence of the event ex <sw is mapped to the event in which the found pair of meter reading and block position is accepted.
In einer weiteren vorteilhaften Ausführung der Erfindung zur Erreichung variierender Wahrscheinlichkeiten pi = pg bzw. pi = 2pg oder pi = pgi bzw. pi = 2pgi (d. h. entweder geheimkombinationsspezifische Wahrscheinlichkeit oder geheimkombinationszeichenspezifische Wahrscheinlichkeit) werden auf der gegebenen Skala zwischen 0 und 99 eine untere Grenze ug und eine obere Grenze og festgelegt mit 0 ≤ ug <og ≤ 99. Der Schwellwert sw mit ug ≤ sw ≤ og wird dann durch einen Wert sw = ug + swex festgelegt, wobei swex mit swex ∈ {0, ..., og – ug} in gegeigneter Weise aus den Zufallsdaten zd abgeleitet wird und damit den Ausgang eines erneuten Zufallsexperiments beschreibt. Hierzu wird eine entsprechend der Größe von og – ug erforderliche Anzahl von Bits aus dem Verarbeitungsergebnis der Zufallsdaten zd extrahiert, wobei diese zuvor noch nicht extrahiert wurden. Wenn das dadurch erhaltene Ergebnis größer als og – ug ist, wird es verworfen und es wird eine entsprechende Anzahl neuer Bits aus dem Verarbeitungsergebnis der Zufallsdaten zd extrahiert. Liegt der durch Extraktion erhaltene Wert jedoch zwischen 0 und og – ug einschließlich, dann wird swex dieser Wert zugewiesen und der Schwellwert sw auf den Wert sw = ug + swex gesetzt. Dadurch wird der Schwellwert bei Bedarf probabilistisch festgelegt und kann in vorteilhafter Weise zur Bestimmung der geheimkombinationsspezifischen Wahrscheinlichkeit oder der geheimkombinationszeichenspezifischen Wahrscheinlichkeit verwendet werden. Durch die Wahl der unteren Grenze ug und der oberen Grenze og ergeben sich die Wahrscheinlichkeiten pmin = ug/100 und pmax = og/100, zwischen denen die proba bilistisch ermittelte Wahrscheinlichkeit pg = sw/100 bzw. pgi = sw/100 liegt.In a further advantageous embodiment of the invention for achieving varying probabilities p i = p g or p i = 2p g or p i = p gi or p i = 2p gi (ie either secret combination-specific probability or secret combination-specific probability) are on the given scale between 0 and 99 a lower limit ug and an upper limit og set with 0 ≤ ug <og ≤ 99. The threshold value sw with ug ≤ sw ≤ og is then determined by a value sw = ug + swex, where swex with swex ∈ { 0, ..., og - ug} is derived in a suitable manner from the random data zd and thus describes the output of a new random experiment. For this purpose, a number of bits required according to the size of og-ug is extracted from the processing result of the random data zd, which have not been previously extracted. If the result obtained thereby is larger than og - ug, it is discarded and a corresponding number of new bits are extracted from the processing result of the random data zd. However, if the value obtained by extraction is between 0 and og - ug inclusive, then swex is assigned this value and the threshold value sw is set to the value sw = ug + swex. As a result, the threshold value is determined probabilistically as needed and can advantageously be used to determine the secret combination-specific probability or the secret combination-character-specific probability. The choice of the lower limit ug and the upper limit og results in the probabilities pmin = ug / 100 and p max = og / 100, between which the probabilistically determined probability p g = sw / 100 and p gi = sw / 100, respectively lies.
Sowohl die Werte von ex als auch die Werte von swex werden aus den vom Benutzer eingegebenen Zufallsdaten zd abgeleitet. In einer vorteilhaften Ausführung des der Erfindung zugrunde liegenden Verfahrens werden die Zufallsdaten über den Werten T1, ..., Tr der vom Benutzer gedrückten Tasten und den Zeitintervallen t1, ..., tr zwischen den Tastenanschlägen (z. B. in Millisekunden) mit ti als Zeit zwischen Ti-1 und Ti, wobei r > 0 eine vom System geforderte Anzahl von Tastaturanschlägen ist. Der Wert von t1 ergibt sich aus der verstrichenen Zeit zwischen dem Beginn der Zeitmessung und dem ersten Tastaturanschlag. In einer vorteilhaften Ausführung der Erfindung gilt r ≥ 5. In einer weiteren vorteilhaften Ausführung der Erfindung werden die eingegebenen Zufallsdaten konkateniert und einer kryptographischen Hashfunktion (z. B. SHA-1, SHA256, oder MD5) übergeben, mittels welcher ein Hashwert berechnet wird und aus welchem die Werte von ex als auch die Werte von swex extrahiert werden werden können. Wenn nicht mehr genügend bisher noch nicht verwendete Bits in dem berechneten Hashwert zur Verfügung stehen, da bereits zu viele extrahiert und verbraucht wurden, dann müssen neue Bits berechnet werden. Hierzu sind mehrere Vorgehensweisen geeignet:
- 1. Erneute Eingabe von Zufallsdaten zd durch den Benutzer mittels r Tastenanschlägen und anschließender Verarbeitung wie oben beschrieben.
- 2. Weitere Eingabe von Werten Tr+1, ..., Tr+q durch das Drücken von q Tasten und Messung von q Zeitintervallen tr+1, ..., tr+q und und Berechnung eines neuen Hashwerts auf Basis des vorangegangenen Hash werts und der neuen Zufallsdaten nach Konkatenation des des vorangegangenen Hashwerts und der neuen Zufallsdaten.
- 3. Erneute Anwendung der Hashfunktion auf den vorangegangenen Hashwert ohne weitere Eingabe neuer Zufallsdaten durch den Benutzer.
- 1. Re-input of random data zd by the user by means of r keystrokes and subsequent processing as described above.
- 2. Further input of values T r + 1 , ..., T r + q by pressing q keys and measuring q time intervals t r + 1 , ..., t r + q and and calculating a new hash value Base the previous hash value and the new random data after concatenating the previous hash value and the new random data.
- 3. Reapply the hash function to the previous hash value without user input of new random data.
Zur Berechnung der zeichenspezifischen Zählerstände und Blockpositionen (zi, bpi) für ein gegebenes Geheimkombinationszeichen wird ein Teil der eingegebenen Daten zur symmetrischen Verschlüsselung an ein Verschlüsselungsverfahren (z. B. AES in Verbindung mit CBC) übergeben. Die zur Verschlüsselung zu übergebenden Daten hängen hierbei von dem Typ der Geheimkombination ab (PIN, TAN oder Passwort). Bei der Verschlüsselung werden abhängig vom Typ der Geheimkombination die folgenden Daten konkateniert und verschlüsselt:
- – PIN als Geheimkombination – Position i des Geheimkombinationszeichens innerhalb der Geheimkombination – Bezeichnung der Applikation oder des Dienstes did (Anwendungsidentifikation) – Benutzeridentifikation bid
- – TAN als Geheimkombination – Position i des Geheimkombinationszeichens innerhalb der Geheimkombination – Bezeichnung der Applikation oder des Dienstes did – Index ix der TAN – Benutzeridentifikation bid
- – Passwort als Geheimkombination – Position i des Geheimkombinationszeichens innerhalb der Geheimkombination – Bezeichnung der Applikation oder des Dienstes did – dienstespezifische Benutzeridentifikation dbid – Benutzeridentifikation bid
- - PIN as a secret combination - Position i of the secret combination character within the secret combination - Name of the application or service did (application identification) - User identification bid
- - TAN as a secret combination - Position i of the secret combination character within the secret combination - Name of the application or service did - Index ix of the TAN - User identification bid
- - Password as a secret combination - Position i of the secret combination character within the secret combination - Name of the application or service did - Service-specific user identification dbid - User identification bid
Da die Eingabe von bid bei allen Typen von Geheimkombinationen optional ist, wird bid mit einem festen Wert belegt, wenn der Benutzer auf die Eingabe einer Geheimkombination verzichtet. Bevor die Daten im jeweiligen Fall verschlüsselt werden, werden diese zunächst zu einer Nachricht N konkateniert, so dass sich folgende Nachricht ergibt:
- – PIN als Geheimkombination: N = i|did|bid
- – TAN als Geheimkombination: N = i|did|ix|bid
- – Passwort als Geheimkombination: N = i|did|dbid|bid
- - PIN as a secret combination: N = i | did | bid
- - TAN as a secret combination: N = i | did | ix | bid
- - Password as a secret combination: N = i | did | dbid | bid
Hierbei wird durch der Konkatenierungsoperator beschrieben. In einer vorteilhaften Ausführung des der Erfindung zugrunde liegenden Verfahrens werden zwischen die zu konkatenierenden Daten bestimmte Trennzeichen Tz eingefügt (z. B. Tabulator als Trennzeichen), so dass sich folgende Nachrichten ergeben:
- – PIN als Geheimkombination: N = i|Tz|did|Tz|bid
- – TAN als Geheimkombination: N = i|Tz|did|Tz|ix|Tz|bid
- – Passwort als Geheimkombination: N = i|Tz|did|Tz|dbid|Tz|bid
- - PIN as a secret combination: N = i | Tz | did | Tz | bid
- - TAN as a secret combination: N = i | Tz | did | Tz | ix | Tz | bid
- - Password as a secret combination: N = i | Tz | did | Tz | dbid | Tz | bid
(Selbstverständlich können die
genannten Daten oder Eingabegrößen auch
jeweils in anderer, definierter Reihenfolge konkateniert werden.)
Die erhaltene Nachricht N wird nun durch Anwendung eines Paddingverfahrens
(z. B. nach ISO 9797-1) auf ein Vielfaches der Blocklänge bl des
verwendeten symmetrischen Verschlüsselungsverfahrens SV expandiert
und anschließend
in Blöcke
der Blocklänge bl
segmentiert. Die erhaltenen Blöcke
werden danach ähnlich
einem CBC-Verfahren
symmetrisch verschlüsselt.
Hierzu wird der aus dem Hauptpasswort MPW mittels eines geeigneten
Verfahrens (z. B. PKCS#5) berechnete symmetrische Schlüssel s mit Schlüssellänge sl verwendet.
In einer vorteilhaften technischen Variante der hier beschriebenen
Erfindung setzt man als symmetrisches Verschlüsselungsverfahren den AES-Standard
ein, bei welchem bl = 128 und sl = 128 gelten. In einer über die
standardisierte Fassung von AES hinaus gehenden Variante ist auch
eine Schlüssellänge sl =
256 geeignet. Der nach Konkatenation, Padding und Segmentierung
erhaltene erste Block wird gemäß der
Das auf diese Weise erhaltene Chiffrat wird im nächsten Schritt mit dem Wert zi eines Zählers, welcher seinerseits als Block der Blocklänge bl dargestellt wird, bitweise XOR-verknüpft und das Verküpfungsergebnis wird nochmals durch Anwendung von SV und s symmetrisch verschlüsselt, wodurch das Chiffrat rand der Blocklänge bl erhalten wird. Als Startwert für den Zähler zi eignet sich der Wert l, welcher in dem zur bitweisen XOR-Verknüpfung verwendeten Block als Dualzahl dargestellt wird (d. h. beim Initialwert des Zählerstands zi = 1 als 0...01).In the next step, the cipher rate thus obtained is XORed bit by bit with the value z i of a counter, which in turn is represented as a block of block length bl, and the interleaving result is again symmetrically encrypted using SV and s, whereby the cipher edge the block length bl is obtained. As a starting value for the counter i for the value of l is suitable, which is represented as a binary number in the bit-wise XOR operation used to block (ie, during the initial value of the count, for i = 1 and 0 ... 01).
Der
durch symmetrische Verschlüsselung
erhaltene Wert rand wird im darauf folgenden Schritt an eine Komponente
zur Blockextraktion & Kodierung übergeben.
Der Komponente zur Blockextraktion & Kodierung wird ebenfalls das eingegebene
Alphabet A übergeben.
Die Komponente zur Blockextraktion & Kodierung ermittelt die Abbildung
zwischen Alphabet A und den k-stelligen Binärkombinationen mit k = ⌈log2|A|⌉, wie dies für verschiedene
exemplarische Alphabete in den
Soll
das aktuelle Wertepaar aus Zählerstand und
Blockposition (zi, bpi)
zur späteren
Berechnung des Geheimkombinationszeichens gi nicht
verwendet werden (d. h. es gilt entweder v = ungleich oder (v = gleich,
ze = verwende aktuelles Paar nicht)), dann fordert die Komponente
zur Extraktions- & Zählersteuerung
die Komponente zur Blockextraktion & Kodierung mit einem Extraktionssteuerungssignal
es auf, einen neuen k-Block
aus rand zu extrahieren. Hierzu wird die Position des aus rand zu
extrahierenden k-Blocks innerhalb des rand-Blocks um d Bits weiter
geschoben; beispielsweise kann d = 1 verwendet werden. In einer
vorteilhaften Ausführung
des in dieser Erfindung beschriebenen Verfahrens wird die Position
des neu zu extrahierenden k-Blocks gegenüber dem vorher extrahierten
k-Block um d = k Bits verschoben, so dass kein Bit aus rand in mehr
als einem k-Block extrahiert wird. Dies wird in
Wenn kein neuer k-Block aus den bl Bits extrahiert werden kann, da sich das k-stellige Extraktionsfenster für einen neuen k-Block nicht mehr um d Bits weiter verschieben lässt, dann signalisiert die Komponente zur Extraktions- & Zählersteuerung über ein Zählersteuerungssignal zs der Zählerkomponente, den Zählerstand zi um 1 zu erhöhen. In diesem Fall wird der neue Zählerstand von zi bitweise mit dem Chiffrat XOR-verknüft, welches wie bereits im Vorangegangenen beschrieben aus der Verschlüsselung der Nachricht N erhalten wurde. Das Ergebnis dieser bitweisen XOR-Verknüpfung wird dann mittels SV unter Anwendung von s verschlüsselt und es wird ein neuer Wert für rand erhalten, aus welchem dann wiederum k-Blöcke extrahiert werden. Wenn der Zählerstand von zi hochgezählt wurde, gilt bei dem ersten aus rand extrahierten k-Block wiederum bpi = 1. Ab hier werden dann wieder nacheinander k-Blöcke aus rand entnommen, Zeichen aus A zugeordnet und als x mit gi verglichen, bei Übereinstimmung Zufallsexperimente zur Entscheidung darüber ausgeführt, ob die aktuelle Wertebelegung von zi und bpi als Berechnungsergebnis verwendet werden soll oder ob die Wertebelegung von zi oder bpi hochgezählt werden soll und neue Werte für rand berechnet werden und neue k-Blöcke aus rand entnommen werden. Das Verfahren wird so lange ausgeführt, bis bei einer gefun denen Übereinstimmung von x und gi der Ausgang des durchgeführten Zufallsexperiments entscheidet, das aktuelle Paar (zi, bpi) als Ergebnis der Berechnung zu verwenden.If no new k-block can be extracted from the bl bits, since the k-digit extraction window for a new k-block can no longer be shifted by d bits, then the extraction & counter control component signals via a counter control signal zs Counter component to increase the count z i by 1. In this case, the new count of z i is bit-wise XOR-linked with the cipher, which was obtained from the encryption of the message N as already described above. The result of this bitwise XOR operation is then encrypted using SV using s, and a new value for rand is obtained from which k-blocks are then extracted. If the counter reading of z i has been counted up, bp i = 1 applies again for the first k-block extracted from the edge. From here, k-blocks are taken from rand one after the other, characters from A are assigned and compared with g i as x, if coincidence experiments are carried out, a decision is made as to whether the current value assignment of z i and bp i should be used as the calculation result, or if the value assignment of z i or bp i is to be incremented and new values for rand are calculated and new k blocks are created from rand be removed. The process is carried out until, at a match of x and g i, the output of the random experiment performed decides to use the current pair (z i , bp i ) as the result of the calculation.
In einer weiteren vorteilhaften Ausprägung des Verfahrens werden die Geheimkombinationen g und die weiteren Eingabewerte durch den Benutzer nicht einzeln von Hand in ein mobiles Endgerät (z. B. Mobiltelefon, PDA) eingegeben, sondern von einem anderen Endgerät aus über ein geeignetes Übertragungsverfahren (z. B. Bluetooth) zu dem mobilen Endgerät übertragen. In einer weiteren Abwandlung wäre es schließlich auch möglich, das Verfahren zum Erzeugen der Hilfsgrößen vollständig auf dem anderen Endgerät durchzuführen und dann die schon berechneten Hilfsgrößen – ggf. zusammen mit weiteren zur Rekonstruktion der Geheimkombination g benötigten Eingabegrößen – auf das mobile Endgerät zu übertragen, auf dem dann wiederum bei Bedarf das Verfahren zum Wiedergewinnen der Geheimkombination g durchgeführt werden kann.In a further advantageous embodiment of the method the secret combinations g and the other input values through the Users do not have to manually switch to a mobile device (eg mobile phone, PDA), but from another terminal via a suitable transmission method (eg Bluetooth) to the mobile terminal. In another Variation would be it finally also possible, perform the method for generating the auxiliary sizes completely on the other terminal and then the already calculated auxiliary quantities - possibly together with others Reconstruction of the secret combination g required input variables - on the mobile terminal transferred to, then on the turn, if necessary, the method for recovering the secret combination g performed can be.
Wenn die Berechnung von zeichenspezifischen Zählerständen und Blockpositionen für eingegebene Geheimkombinationen g – unabhängig davon, ob diese per Hand oder in anderer Weise eingegeben wurden – abgeschlossen ist, hat der Benutzer die Möglichkeit, den gesamten Berechnungsvorgang abzuschließen, wodurch die im Arbeitsspeicher des Endgerät gehaltenen Werte von MPW (also das Hauptpasswort), s, g und zd gelöscht bzw. überschrieben werden.If the calculation of character-specific counter readings and block positions for entered Secret combinations g - regardless of whether they were entered manually or otherwise - completed is, the user has the option complete the entire computation process, eliminating the in memory of the terminal held values of MPW (ie the main password), s, g and zd deleted or overwritten become.
Damit ist die Beschreibung des Verfahrens zur Berechnung von zeichenspezifischen Zählerständen und Blockpositionen (zi, bpi) für eine eingegebene Geheimkombinationen g abgeschlossen. Im Folgenden wird das Verfahren zur Berechnung von Geheimkombinationen g aus zeichenspezifischen Zählerständen und Blockpositionen (zi, bpi) beschrieben.This completes the description of the method for calculating character-specific counter readings and block positions (z i , bp i ) for an entered secret combination g. The following describes the method for calculating secret combinations g from character-specific counter readings and block positions (z i , bp i ).
Das Verfahren zur Berechnung von Geheimkombinationen g aus zeichenspezifischen Zählerständen und Blockpositionen (zi, bpi) besteht grundsätzlich aus den gleichen Komponenten wie das Verfahren zur Berechnung von zeichenspezifischen Zählerständen und Blockpositionen: eine Eingabekomponente, eine Berechnungskomponente, ein Speicher, eine Ausgabekomponente und eine Komponente zur Anzeige.The method for calculating secret combinations g from character-specific counter readings and block positions (z i , bp i ) basically consists of the same components as the method for calculating character-specific counter readings and block positions: an input component, a calculation component, a memory, an output component, and a component see full ad.
In
einer vorteilhaften Ausgestaltung des in der Erfindung enthaltenen
Verfahrens werden zunächst
sämtliche
relevanten Daten, welche in dem persistenten Speicher
- – Geheimkombination
als PIN (siehe auch
11 ) – geheimkombinationszeichenspezifische Zählerstände z1, ..., zm – geheimkombinationszeichenspezifische Blockpositionen bp1, ..., bpm – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) - – Geheimkombination
als TAN (siehe auch
12 ) – geheimkombinationszeichenspezifische Zähler stände z1, ..., zm – geheimkombinationszeichenspezifische Blockpositionen bp1, ..., bpm – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) – Indexwert ix der TAN – Verwertungsmarkierung u - – Geheimkombination
als Passwort (siehe auch
13 ) – geheimkombinationszeichenspezifische Zählerstände z1, ..., zm – geheimkombinationszeichenspezifische Blockpositionen bp1, ..., bpm – Alphabet A – Bezeichnung der Applikation oder des Dienstes did – Benutzeridentifikation bid (optional) – dienstspezifische (anwendungsspezifische) Benutzeridentifikation dbid
- - Secret combination as PIN (see also
11 ) - secret combination character specific counter readings z 1 , ..., z m - secret combination character specific block positions bp 1 , ..., bp m - alphabet A - designation of the application or the service did - user identification bid (optional) - - Secret combination as TAN (see also
12 ) - secret combination-character-specific counters z 1 , ..., z m - secret combination-character specific block positions bp 1 , ..., bp m - alphabet A - name of the application or service did - user identification bid (optional) - index value ix of the TAN utilization mark u - - Secret combination as password (see also
13 ) - secret combination-character-specific counter readings z 1 , ..., z m - secret combination-character-specific block positions bp 1 , ..., bp m - alphabet A - designation of the application or service did - user identification bid (optional) - service-specific (application-specific) user identification dbid
Zusätzlich zum
Einlesen der Daten aus dem persistenten Speicher
Wenn
es sich bei der Geheimkombination um eine TAN handelt, spezifiziert
der Benutzer zusätzlich
mittels der einzugebenden TAN-Auswahl ta, welche der zu einem Dienst
oder einer Anwendung gehörenden
TANs berechnet werden soll. Mit der TAN-Auswahl ta wird die zu einem
bestimmten Index ix gehörende
TAN spezifiziert. Wenn der Benutzer eine TAN verbraucht hat, dann
kann er den Wert der Verwertungsmarkierung u entsprechend ändern und diesen
neuen Wert in dem persistenten Speicher
Wenn
der Benutzer den von ihm gewünschten
Dienst bzw. Anwendung mittels der Eingabe da auswählt, wird
die jeweilige Geheimkombination g berechnet und an die Ausgabekomponente
Wenn es sich bei der Geheimkombination um ein Passwort handelt, wird dem Benutzer mit der dienstespezifischen Benutzeridentität dbid sein Login-Name für den ausgewählten Dienst bzw. Anwendung angezeigt.If it is the secret combination is a password is the user with the service-specific user identity dbid Login name for the selected one Service or application displayed.
Die
Berechnung der Geheimkombinationen aus den Zählerständen z1,
..., zm und Blockpositionen bp1,
..., bpm wird für jedes einzelne Geheimkombinationszeichen
gi gesondert durchgeführt wie in den
Für jede dieser Berechnungen wird der symmetrische Schlüssel s benötigt, welcher aus dem eingegebenen Hauptpasswort mittels einer Schlüsselableitungsfunktion SAF berechnet wird. Dies geschieht in gleicher Weise zur Berechnung des Schlüssels s beim Verfahren zur Berechnung der zeichenspezifischen Zählerstände und Blockpositionen bei vorgegebener Geheimkombination. Die gleiche Vorgehensweise ist inbesondere deshalb erforderlich, dass aus den nun gegebenen zeichenspezifischen Zählerständen und Blockpositionen wieder das ursprünglich eingegebene Geheimkombinationszeichen berechnet werden kann.For each of these Calculations the symmetric key s is needed, which from the entered Main password by means of a key derivation function SAF is calculated. This is done in the same way for the calculation of the key s in the method for calculating the character-specific counter readings and Block positions for a given secret combination. The same procedure is particularly necessary that from the now given character-specific meter readings and Block positions again the original entered secret combination characters can be calculated.
Die
Berechnung eines Geheimkombinationszeichens gi für ein eingelesenes
Paar (zi, bpi) aus Zählerstand
und Blockposition wird in Abhängigkeit von
den verschiedenen Geheimkombinationstypen in den
- – Geheimkombination als PIN N = i|did|bid oder N = i|Tz|did|Tz|bid bei der Verwendung eines Trennzeichens Tz
- – Geheimkombination als TAN N = i|did|ix|bid oder N = i|Tz|did|Tz|ix|Tz|bid bei der Verwendung eines Trennzeichens Tz
- – Geheimkombination als Passwort N = i|did|dbid|bid oder N = i|Tz|did|Tz|dbid|Tz|bid bei der Verwendung eines Trennzeichens Tz
- - Secret combination as PIN N = i | did | bid or N = i | Tz | did | Tz | bid when using a delimiter Tz
- - Secret combination as TAN N = i | did | ix | bid or N = i | Tz | did | Tz | ix | Tz | bid when using a delimiter Tz
- - Secret combination as password N = i | did | dbid | bid or N = i | Tz | did | Tz | dbid | Tz | bid when using a delimiter Tz
Wenn bei der Berechnung der Zählerstände und Blockpositionen ein Trennzeichen Tz verwendet wird, dann muss bei der Berechnung der Geheimzeichen das gleiche Trennzeichen verwendet werden. (Selbstverständlich muss ferner im Fall, dass bei der Berechnung der Hilfsgrößen zur Erzeugung der Zeichenkette N eine andere Reihenfolge der Eingabegrößen gewählt wurde, hier die entsprechende Reihenfolge gewählt werden.) Wenn der Benutzer bei der Berechnung der Zählerstände und Blockpositionen den optionalen Parameter bid nicht verwendet hat, und das Verfahren statt dessen für bid einen Standardwert vergeben hat, dann muss bei der Berechnung der Geheimzeichen der gleiche Standardwert eingesetzt werden. Auch das Padding und die Segmentierung der Nachrichten muss bei der Berechnung der Zählerstände und Blockpositionen einerseits und der Berechnung der Geheimzeichen andererseits in gleicher Weise geschehen, so dass letztendlich bei beiden Berechnungen identische Blöcke in der gleicher Reihenfolge dem symmetrischen Verschlüsselungsverfahren SV übergeben werden. Auch der Wert der Initialisierung init stimmt mit dem im Vorgangegangenen gewählten Wert von init überein.If in the calculation of meter readings and Block positions a separator Tz is used, then at the calculation of the secret characters uses the same separator become. (Of course must also in the case that in the calculation of the auxiliary quantities for Generation of the string N a different order of input sizes was selected, Here the appropriate order can be chosen.) If the user in the calculation of meter readings and Block positions did not use the optional parameter bid, and the method instead for bid has given a default value, then must in the calculation the secret character of the same default value can be used. Also the padding and the segmentation of the messages must be in the calculation the meter readings and Block positions on the one hand and the calculation of the secret characters on the other hand done the same way, so that in the end both calculations have identical blocks in the same order the symmetric encryption method SV handed over become. Also the value of the initialization init is correct with the in the Previous elected Value of init match.
Der erste durch Konkatenation, Padding und Segmentierung erhaltene Klartextblock wird dann mit dem Initialisierungswert init bitweise XOR-verknüpft und das Verknüpfungsergebnis wird mittels dem symmetrischen Verschlüsselungsverfahren SV unter Anwendung des symmetrischen Schlüssels s verschlüsselt. Das Ergebnis der Verschlüsselung wird mit dem nächsten Klartextblock bitweise XOR-verknüpft und wiederum mittels dem symmetrischen Verschlüsselungsverfahren SV unter Anwendung des symmetrischen Schlüssels s verschlüsselt. Dies wird so lange fortgeführt, bis der letzte Klartextblock verschlüsselt wurde. Das in dieser Weise – durch symmetrische Verschlüsselung im CBC-Modus – erhaltene Chiffrat wird mit dem entsprechend kodierten Wert des eingegebenen Zählerstands zi nun bitweise XOR-verknüpft und anschließend mit dem symmetrischen Verschlüsselungsverfahren SV unter Anwendung des symmetrischen Schlüssels s verschlüsselt. Der Zähler wird hierbei in gleicher Weise kodiert, wie dies auch bei der Berechnung der Zählerstände und Blockpositionen der Fall war. Nach der letzten Verschlüsselung erhält die Komponente zur Blockextraktion & Kodierung den gleichen Wert von rand, welcher als letzter rand-Wert bei der Berechnung der Zählerstände und Blockpositionen ermittelt wurde. Mit dem eingegebenen Alphabet A berechnet die Komponente zur Blockextraktion & Kodierung nun den Wert k = ⌈log2|A|⌉. Mit dem eingegebenen Wert der Blockposition bpi kann das Fenster zur Extraktion von k-Blöcken nun an die entsprechende Stelle geschoben und der gewünschte k-Block kann extrahiert werden. Auf Basis des gegebenen Alphabets A wird nun das dem extrahierten k-Block entsprechende Zeichen aus A ermittelt und als Wert von gi ausgegeben.The first plaintext block obtained by concatenation, padding and segmentation is then XORed bit-wise with the initialization value init and the result of the combination is encrypted by means of the symmetric encryption method SV using the symmetric key s. The result of the encryption is bit-wise XOR-linked to the next plaintext block and in turn encrypted by means of the symmetric encryption method SV using the symmetric key s. This will continue until the last plaintext block has been encrypted. The cipher obtained in this way - by symmetric encryption in CBC mode - is coded with the corresponding Value of the meter reading z i now bit-wise XOR-linked and then encrypted with the symmetric encryption method SV using the symmetric key s. The counter is coded in the same way as was the case with the calculation of meter readings and block positions. After the last encryption, the Block Extraction & Coding component receives the same value of rand, which was determined as the last rand value when calculating the meter readings and block positions. With the alphabet A entered, the block extraction & coding component now calculates the value k = ⌈log 2 | A | ⌉. With the entered value of the block position bp i , the k-block extraction window can now be shifted to the appropriate position and the desired k-block can be extracted. Based on the given alphabet A, the character from A corresponding to the extracted k-block is now determined and output as the value of g i .
Durch Ausführung dieses Berechnungsverfahrens für alle Paare (zi, bpi), ..., (zm, bpm) und Konkatenation der Ergebnisse in entsprechender Reihenfolge ergibt sich die gewünschte Geheimkombination g.By executing this calculation method for all pairs (z i , bp i ),..., (Z m , bp m ) and concatenation of the results in a corresponding order, the desired secret combination g results.
In einer vorteilhaften Ausführung des im Vorangegangenen beschriebenen Verfahrens wird die berechnete Geheimkombination g dem Benutzer nur für eine bestimmte kurze Zeit angezeigt, z. B. für 60 Sekunden. Das Verfahren gestattet es dem Benutzer jedoch auch, die Anzeige bereits vorher zu beenden. Das eingegebene Hauptpasswort MPW, der daraus abgeleitete Schlüssel s und die berechnete Geheimkombination g werden nach Ablauf einer bestimmten Zeit (z. B. 60 Sekunden), in welcher der Benutzer inaktiv ist, d. h. keine weiteren Eingaben zur Steuerung von Berechnungen vornimmt, aus dem Arbeitsspeicher gelöscht bzw. überschrieben, so dass ohne erneute Eingabe des Hauptpassworts MPW durch den Benutzer keine weiteren Berechnungen von Geheimkombinationen ausgeführt werden können.In an advantageous embodiment of the method described above, the calculated Secret combination g the user only for a certain short time displayed, eg. For example 60 seconds. However, the method also allows the user to to finish the ad before. The entered main password MPW, the key derived from it s and the calculated secret combination g become available after expiration of a certain time (eg 60 seconds) in which the user is inactive is, d. H. no further input for the control of calculations makes, clears from memory or overwritten, so that without re-entry of the main password MPW by the user no Further calculations of secret combinations are performed can.
In einer vorteilhaften Ausführung des in der Erfindung enthaltenen Verfahrens kann der Benutzer die zu einer Geheimkombination g (PIN, TAN oder Passwort) gehörenden Daten aus dem persistenten Speicher löschen.In an advantageous embodiment of the method contained in the invention, the user can to a secret combination g (PIN, TAN or password) belonging data delete from the persistent store.
In einer weiteren vorteilhaften Anwendung des der Erfindung zugrunde liegenden Verfahrens wird die Benutzeridentifikation bid nicht von dem Benutzer selbst ausgewählt und eingegeben sondern von einer zentralen Instanz. Hierbei kann es sich um den Hersteller der Software handeln, welche das der Erfindung zugrunde liegende Verfahren enthält, oder auch eine Partei, welche die Software vertreibt. Diese zentrale Instanz vergibt eindeutige Benutzeridentifikationen bid für jeden Benutzer. Die Werte von bid werden hierbei in digital signierter Weise von der zentralen Instanz an die Benutzer ausgegeben (z. B. als Zertifikate, welche in einer Datei enthalten sind) und können von dem Programm eingelesen werden. Zusätzlich enthält die signierte Benutzeridentifikation noch ein Verfallsdatum, über welches angegeben wird, bis zu welchem Zeitpunkt das Programm die ausgegebene Benutzeridentifikationen bid verwenden darf. In das Programm ist zusätzlich ein öffentlicher Schlüssel der zentralen Instanz mitsamt Zertifikat einkodiert. Die Signatur der Benutzeridentifikation wird von der zentralen Instanz mit dem geheimen Schlüssel generiert, welcher zu dem einkodierten öffentlichen Schlüssel passt. Das zu dem öffentlichen Schlüssel gehörende Zertifikat verfügt ebenfalls über ein Verfallsdatum. Spätestens wenn das Verfallsdatum dieses Zertifikats erreicht ist, muss der ausführbare Programmcode mit einem neuen Zertifikat der zentralen Instanz an die Benutzer verteilt werden und von diesen auf ihren Endgeräten installiert werden. Wenn die signierte Benutzeridentifikation das Verfallsdatum erreicht hat, dann muss eine neue signierte Benutzeridentifikation an den Benutzer verteilt werden. Wichtig ist hierbei, dass der in der alten und neuen Version enthaltene Parameter bid übereinstimmen. Das Programm testet bei jeder Verwendung (z. B. Start des Programms), ob das Ablaufdatum des Zertifikats der zentralen Instanz oder das Ablaufdatum der signierten Benutzerinformation erreicht wurde. Wenn das Programm feststellt, dass ein abgelaufenes Zertifikat der zentralen Instanz enthalten ist oder die signierte Benutzerinformation abgelaufen ist, dann verweigert das Programm die weiteren Berechnungen, z. B. indem das Programm sofort terminiert. Als Referenzzeitpunkt wird hierbei die von dem Betriebssystem des Endgeräts zur Verfügung gestellte Zeit genommen. Wenn beide Ablaufzeitpunkte noch nicht erreicht sind, dann überprüft das Programm die Gültigkeit der Signatur der Benutzeridentifikation mit dem in den ausführbaren Code einkodierten öffentlichen Schlüssel der zentralen Instanz. Wenn die Signaturüberprüfung fehlschlägt, führt das Programm weder Berechnungen von Zählerständen und Blockpositionen aus Geheimkombinationen noch Berechnungen von Geheimkombinationen aus Zählerständen und Blockpositionen aus. Diese Berechnungen lassen sich nur dann durchführen, wenn die Ablaufdaten des Zertifikats der zentralen Instanz und der signierten Benutzeridentifikation nicht überschritten sind und zusätzlich die Signaturüberprüfung der signierten Benutzeridentifikation mit dem fest einkodierten öffentlichen Schlüssel der zentralen Instanz positiv ausfällt.In a further advantageous application of the invention is based The user identification bid is not bid selected by the user himself and entered but from a central entity. Here can it is the manufacturer of the software, that of the invention contains underlying method, or even a party selling the software. This central Instance assigns unique user identifications bid for each User. The values of bid are hereby digitally signed Way from the central instance to the users (eg as certificates, which are contained in a file) and can by be read into the program. In addition, the signed user identification still contains an expiration date, about which is specified by what time the program issued the User identifications may use bid. In the program is additionally a public one key the central instance including certificate. The signature the user identification is from the central instance with the secret key generated, which matches the encoded public key. The certificate belonging to the public key has also over one Expiration date. No later than if the expiration date of this certificate is reached, the executable Program code with a new certificate of the central instance the users are distributed and installed by them on their devices become. If the signed user identification is the expiration date has reached, then a new signed user identification distributed to the user. It is important that the in the old and new version parameters match bid. The program tests every time it is used (eg start the program), whether the expiration date of the certificate of the central instance or the Expiration date of the signed user information has been reached. If the program determines that an expired certificate is the central one Instance is included or the signed user information has expired is, then the program refuses further calculations, z. By scheduling the program immediately. As reference time is in this case the time taken by the operating system of the terminal made available. If both expiration times have not yet been reached, then the program checks the validity the signature of the user identification with that in the executable Code encoded public key the central instance. If the signature verification fails, this will result Program neither calculations of counter readings and block positions off Secret combinations still calculations of secret combinations Counter readings and Block positions off. These calculations can only be performed if the expiration dates of the certificate of the central instance and the signed one User identification not exceeded are and in addition the signature verification of signed user identification with the permanently encoded public key the central instance is positive.
Claims (25)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200610049814 DE102006049814B4 (en) | 2006-10-17 | 2006-10-17 | Method and device for generating and storing auxiliary variables assigned to a secret combination and for recovering the secret combination |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200610049814 DE102006049814B4 (en) | 2006-10-17 | 2006-10-17 | Method and device for generating and storing auxiliary variables assigned to a secret combination and for recovering the secret combination |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102006049814A1 DE102006049814A1 (en) | 2008-04-24 |
DE102006049814B4 true DE102006049814B4 (en) | 2009-08-06 |
Family
ID=39198459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE200610049814 Active DE102006049814B4 (en) | 2006-10-17 | 2006-10-17 | Method and device for generating and storing auxiliary variables assigned to a secret combination and for recovering the secret combination |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102006049814B4 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008041392A1 (en) * | 2008-08-20 | 2010-02-25 | Psylock Gmbh | Cryptography method and identification method based on biometric data |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571336B1 (en) * | 1998-02-12 | 2003-05-27 | A. James Smith, Jr. | Method and apparatus for securing a list of passwords and personal identification numbers |
-
2006
- 2006-10-17 DE DE200610049814 patent/DE102006049814B4/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571336B1 (en) * | 1998-02-12 | 2003-05-27 | A. James Smith, Jr. | Method and apparatus for securing a list of passwords and personal identification numbers |
Also Published As
Publication number | Publication date |
---|---|
DE102006049814A1 (en) | 2008-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60029390T2 (en) | Method and apparatus for encryption / decryption and identification systems | |
DE112011100182B4 (en) | Data security device, computing program, terminal and system for transaction verification | |
DE69829642T2 (en) | AUTHENTICATION SYSTEM WITH CHIP CARD | |
EP2409452B1 (en) | Method for providing a cryptic pair of keys | |
DE60020293T2 (en) | Generation of a repeatable cryptographic key based on variable parameters | |
EP2433241B1 (en) | Encoding methods | |
EP2340502B1 (en) | Data processing system for providing authorization keys | |
DE102007000589B9 (en) | Method for protecting a chip card against unauthorized use, chip card and chip card terminal | |
EP2656535B1 (en) | Cryptographic method | |
EP4111348B1 (en) | Method for directly transmitting electronic coin datasets between terminals, payment system, protection system, and monitoring unit | |
EP1290905B1 (en) | Method for the cryptographically verifiable identification of a physical unit in a public, wireless telecommunications network | |
EP1706957B1 (en) | Biometric authentication | |
EP1687932B1 (en) | Authorisation of a transaction | |
EP3465513B1 (en) | User authentication by means of an id token | |
DE102006049814B4 (en) | Method and device for generating and storing auxiliary variables assigned to a secret combination and for recovering the secret combination | |
EP4111399B1 (en) | Method, terminal, monitoring entity, and payment system for managing electronic coin datasets | |
EP3125464B1 (en) | Blocking service for a certificate created using an id token | |
EP1915718B1 (en) | Method for protecting the authentication of a portable data carrier relative to a reading device via an unsecure communications path | |
EP2481183A1 (en) | Method for establishing a secure communication channel | |
EP1573955B1 (en) | Encoding method | |
DE60103523T2 (en) | PROCESS FOR PROTECTING AN ELECTRONIC BUILDING BLOCK AGAINST FRAUD | |
EP2230648A1 (en) | Single-use code mask for deriving a single-use code | |
DE102017109260B4 (en) | Method for generating a key with perfect security | |
DE60205176T2 (en) | Device and method for user authentication | |
DE102007046102B4 (en) | A method for protecting against modification of data and for authenticating the data transmitter in the data transmission by using encryption methods in which, with knowledge of encrypted and unencrypted data, other data can no longer be encrypted correctly as randomly. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition |