DE102013205166A1 - Verfahren zum Erzeugen einer Einwegfunktion - Google Patents

Verfahren zum Erzeugen einer Einwegfunktion Download PDF

Info

Publication number
DE102013205166A1
DE102013205166A1 DE102013205166.2A DE102013205166A DE102013205166A1 DE 102013205166 A1 DE102013205166 A1 DE 102013205166A1 DE 102013205166 A DE102013205166 A DE 102013205166A DE 102013205166 A1 DE102013205166 A1 DE 102013205166A1
Authority
DE
Germany
Prior art keywords
operand
bits
way function
operands
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.)
Withdrawn
Application number
DE102013205166.2A
Other languages
English (en)
Inventor
Eberhard Boehl
Klaus Damm
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102013205166.2A priority Critical patent/DE102013205166A1/de
Priority to CN201410107208.3A priority patent/CN104063202A/zh
Priority to US14/222,211 priority patent/US20140286487A1/en
Publication of DE102013205166A1 publication Critical patent/DE102013205166A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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 cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Es werden ein Verfahren zum Erzeugen einer Einwegfunktion und eine Schaltungsanordnung, welche die Einwegfunktion implementiert, vorgestellt.

Description

  • Die Erfindung betrifft ein Verfahren zum Erzeugen einer Einwegfunktion für ein kryptographisches Verfahren und eine Schaltungsanordnung. Diese Schaltungsanordnung dient insbesondere zum Implementieren bzw. Realisieren der Einwegfunktion.
  • Stand der Technik
  • Eine Einwegfunktion ist eine mathematische Funktion, die „leicht“ berechenbar, aber „schwer“ umzukehren ist. Kryptographische Einwegfunktionen werden benötigt, damit ein Angreifer aus generierten Daten nicht oder nur mit ggf. unvertretbarem Aufwand einen inneren Zustand, verwendete Eingabedaten oder zuvor ausgegebene Daten berechnen kann. Ein solches Vorgehen wird auch als backtracking bezeichnet.
  • Für deratige Einwegfunktionen werden üblicherweise Multiplikationen, die Rabin-Funktion (x2 mod N), diskrete Exponentialfunktionen oder Hash-Funktionen verwendet. Übertragslose Multiplikationen können auch eingesetzt werden, wie dies bspw. in der Druckschrift US 20 1001 257 28 A1 beschrieben wird. Dabei wird ausgenutzt, dass eine Multiplikation einfach ausgeführt werden kann, die Umkehroperation bzw. Faktorisierung jedoch dadurch kompliziert wird, dass insbesondere mehrere Möglichkeiten zur Verfügung stehen. Diese Vielfalt wird noch erhöht, wenn ein Übertrag nicht benutzt oder wie bei der Rabin-Funktion eine modulo N Funktion verwendet wird.
  • Die Multiplikation alleine ohne Übertrag oder modulo x bietet insbesondere für Operanden mit geringer Bitbreite für manche Anwendungen nicht die erforderliche Kompliziertheit und Nichtlinearität.
  • Das vorgestellte Verfahren wird beim Erzeugen einer zufälligen Ausgangsbitfolge und somit zum Generieren von Zufallszahlen eingesetzt. Zufallszahlen, die als Ergebnis von Zufallselementen bezeichnet werden, werden für viele Anwendungen benötigt. Zur Erzeugung von Zufallszahlen werden sogenannte Zufallsgeneratoren eingesetzt. Zufallsgeneratoren sind Verfahren, die eine Folge von Zufallszahlen liefern. Ein entscheidendes Kriterium von Zufallszahlen ist, ob das Ergebnis der Generierung als unabhängig von früheren Ergebnissen angesehen werden kann.
  • Zur Erzeugung zufälliger Bitfolgen werden Zufalls-Bit-Generatoren bzw. Random Bit Generatoren eingesetzt, die bei Eingabe einer Eingangsbitfolge eine zufällige Ausgangsbitfolge liefern.
  • Es werden bspw. für kryptographische Verfahren Zufallszahlen benötigt. Diese Zufallszahlen werden verwendet, um Schlüssel für die Verschlüsselungsverfahren zu generieren. An solche Schlüssel werden hohe Anforderungen bezüglich der Zufallseigenschaften gestellt.
  • Insbesondere die Menge bzw. das Maß an Zufall, nämlich Entropie pro Bit, sollte ausreichend sein. Außerdem sollte die Bitwahrscheinlichkeiten für die Werte aus {0, 1} gleichwahrscheinlich sein. Zu beachten ist, dass die dafür von bekannten Zufallsquellen generierten Zufallswerte diese Anforderungen meist nicht erfüllen. Deshalb sind zusätzliche Verfahren notwendig, die man unter dem Begriff "Post Processing" bzw. Nachbearbeitung zusammenfasst. Für ein solches Post Processing wird typischerweise ein DRBG (Deterministischer Random Bit Generator) eingesetzt, wie dieser bspw. durch das Bundesamt für Sicherheit in der Informationstechnik (BSI) im BSI AIS 31 vom 25. September 2001 beschrieben wird. Ein solcher Generator erzeugt deterministische Bitfolgen, die aber zufällig aussehen. Man vezeichnet solche Generatoren auch als Pseudo-Zufallsgeneratoren. Wird eine nicht bekannte Seed bzw. Saat als Ausgangspunkt für die Pseudo-Zufallsfoge benutzt, so darf diese Folge nicht vorhersehbar sein, auch wenn man die schon ausgegebenen Bits der Pseudo-Zufallsfolge kennt, aber nicht die Seed.
  • Hierbei werden die Eigenschaften eines DRBG genauer untersucht und vom National Institute of Standards and Technology (NIST) gibt es Empfehlungen für ein DRBG in einem Special Paper NIST SP 800-90 von März 2007.
  • Das Post Processing nach dem Stand der Technik wird typischerweise durch Resilent Functions (elastische Funktionen), Linear Feedback Shift Registers (LFSR) und multiple input LFSR oder MISR (Multiple Input Signature Register) realisiert.
  • Verfahren nach dem Stand der Technik sind entweder sehr aufwendig, wie bspw. Resilent Functions, oder sie erfüllen nicht exakt die 50 % Bit-Wahrscheinlichkeiten, wie bspw. LFSR. Beide vorgenannten Verfahren haben darüber hinaus keine Möglichkeit, Fehler in der Anordnung, die bspw. durch Fehlerattacken verursacht sind, zu erkennen.
  • Offenbarung der Erfindung
  • Vor diesem Hintergrund werden ein Verfahren mit den Merkmalen des Anspruchs 1 und eine Schaltungsanordnung gemäß Anspruch 9 vorgestellt. Weitere Ausführungen ergeben sich aus den Unteransprüchen und der Beschreibung.
  • Mit der Verknüpfung der oberen Hälfte der Ergebnisbits einer Multiplikation mit der unteren Hälfte und damit der niederwertigen Hälfte in Abhängigkeit der Wertrelation dieser beiden Teile und der Spezialfunktion für Operanden mit dem Wert 0 kann eine ausgewogene Zuordnungstabelle erhalten werden, die sich als ROM-Version über Tabellenwerte aber auch einfach mittels einer kombinatorischen Schaltung realisieren lässt.
  • Die vorgestellte Schaltungsanordnung kann zur Implementierung einer Einwegfunktion im Rahmen eines Verfahrens zur Erzeugung einer zufälligen Ausgangsbitfolge eingesetzt werden, auf das nachfolgend eingegangen wird.
  • Hierzu wird zunächst ein Verfahren zum Generieren einer pseudo-zufälligen nAusgangsbitfolge vorgestellt, bei dem eine Anordnung von 2 jeweils gleich aufgebauten Zustandsautomaten verwendet wird, wobei die Zustandsautomaten jeweils n Zustands-Bits umfassen, wobei jeder Zustandsautomat stets einen anderen Zustand einnimmt als die anderen Zustandsautomaten der Anordnung, wobei den Zustandsautomaten eingangsseitig jeweils ein gleiches Eingangssignal zugeführt wird und diese jeweils in Abhängigkeit Ihres Zustands n Signaturbits, die zusammen eine Signatur-Bitfolge bilden, erzeugen, wobei die zufällige Ausgangsbitfolge durch Auswahl einzelner Bits aus den Signatur-Bitfolgen aller Zustandsautomaten der Anordnung erzeugt wird.
  • Das Verfahren wird bspw. mit einem Pseudo-Zufallsbitgenerator zum Generieren einer zufälligen Ausgangsbitfolge mit einer unbekannten Saat bzw. Seed durchngeführt, der eine Anordnung von 2 jeweils gleich aufgebauten Zustandsautomaten umfasst, wobei die Zustandsautomaten jeweils n Zustands-Bits umfassen, wobei jeder stets einen anderen Zustand einnimmt als die anderen Zustandsautomaten der Anordnung, wobei den Zustandsautomaten eingangsseitig ein Eingangssignal zuzuführen ist und diese jeweils in Abhängigkeit Ihres Zustands n Signaturbits, die zusammen eine Signatur-Bitfolge bilden, erzeugen, wobei die zufällige Ausgangsbitfolge durch Auswahl einzelner Bits aus den Signatur-Bitfolgen aller Zustandsautomaten der Anordnung erzeugt wird.
  • Das Verfahren hat gegenüber bekannten Verfahren die Möglichkeit, Fehlerattacken zu erkennen. Zudem bietet es eine bessere Bitwahrscheinlichkeit als ein LFSR. Dieses Verfahren hat jedoch den Nachteil, dass Kollisionen auftreten können, d. h. gleiche Ausgangsfolgen von verschiedenen Eingangsbitfolgen auftreten können. Durch solche Kollisionen können Angriffe eines Angreifers bzw. Attackierers begünstigt werden. Weiterhin ist bei dem Verfahren ein Rückverfolgen der ausgegebenen Ausgangssignale einfacher möglich, als bei dem Verfahren, das hier nachstehend vorgestellt wird.
  • Das vorstehend dargelegte Verfahren wird nunmehr dadurch erweitert, dass die Eingaben zweimal verarbeitet werden, und zwar dass diese einmal direkt in Anordnung der Zustandsmaschinen, die auch als COSSMA-Anordnung (Complete Set of State Machines) bezeichnet wird, und zusätzlich verknüpft mit einer Einwegfunktion eingehen.
  • Die direkte Eingabe gewährleistet, dass bei der Verarbeitung keine Entropie verloren geht und die zweite verknüpfte Eingabe hilft Kollisionen zu vermeiden, erschwert ein Rückverfolgen bzw. Backtracking, d. h. ein Errechnen der Vorgänger-Ausgangwerte, und erschwert eine Prediction bzw. Vorhersage künftiger Ausgangswerte, wenn die Seed bzw. die Saat nicht bekannt ist. Auf die direkte Eingabe kann man auch verzichten, wenn man nachweisen kann, dass bei der Verknüpfung mit der Einwegfunktion keine Entropie verloren geht und auch die Kollisionen dadurch nicht verstärkt auftreten.
  • Zusätzlich kann der Einfluss aller Eingangsbits auf den Ausgangswert egalisiert werden, wenn ein Parity auch noch nach der Verarbeitung der letzten Eingabe-Bits errechnet wird und in den Ausgangswert eingeht.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.
  • Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht zur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt eine Einwegfunktion.
  • 2 zeigt die Anordnung einer Ausführung des vorgestellten Verfahrens.
  • 3 zeigt eine Ausführungsform der beschriebenen Einrichtung zur Durchführung des beschriebenen Verfahrens.
  • 4 zeigt eine Anordnung von Zustandsautomaten.
  • 5 zeigt einen 4 Bit-Zustandsautomaten.
  • 6 zeigt Zustandsübergänge.
  • 7 zeigt eine DRBG-Ausgangsstufe.
  • Ausführungsformen der Erfindung
  • Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
  • 1 verdeutlicht eine Einwegfunktion g = x·y mit einem Eingabe-Nibble x und einem feedback der zwischenzeitlichen Ausgabe y als Eingangsgrößen. Hieraus ergibt sich ein höherer Nibble 180 von g und ein niedrigerer Nibble 182 von g, die einer Modifikation 184 unterzogen werden, so dass ein Ergebnis 186 erzielt wird.
  • Wie in 1 dargestellt ist, wird die Einwegfunktion durch die Multiplikation von zwei Operanden erreicht. Das Ergebnis dieser Operation hat typischerweise die doppelte Bitbreite, die man in zwei Teilergebnissen mit der einfachen Bitbreite in obere Bits und untere Bits aufteilen kann. Zu beachten ist, dass es erforderlich sein kann, diese doppelte Bitbreite auf die einfache Bitbreite zurückzuführen. Hierzu werden die Zahlenwerte beider Teilergebnisse miteinander verglichen und je nach Vergleichsergebnis unterschiedlich verknüpft. Dazu werden im Ausgührungsbeispiel Operanden mit je 4 Bits betrachtet und das untere und obere Nibble des Ergebnisses verglichen, bevor beide miteinander verknüpft werden. Für den Fall, dass ein oder beide Operanden gleich Null sind, werden Spezialoperationen ohne Multiplikation verwendet. Falls ein Operand Null ist, wird der andere Operand als negativer Wert erzeugt, allerdings ohne Vorzeichen, und zu diesem Wert wird der Wert 2 addiert. Der negative Wert entspricht dem Zweierkomplement des Operanden, das durch Invertierung aller Bits mit anschließender Inkrementierung erreicht wird. Man kann den resultierenden Wert auch berechnen, indem man alle Bits des Operanden invertiert und dazu den Wert 3 addiert. Das ist eine Zusammenfassung der Inkrementierung mit der Addition von 2. Bei diesen Additionsoperationen werden Überträge unberücksichtigt gelassen. Sind beide Operanden Null, so wird ein festgelegter Wert ausgegeben. In der dargestellten Ausführung wird der Wert 2 dafür verwendet. Durch diese Operationen erreicht man die Gleichverteilung aller möglichen Werte in Tabelle 1 für alle Zeilen und Spalten. Wenn beide Operanden von Null verschieden sind, werden die höheren 4 Bits von den unteren 4 Bits abgezogen und entweder eine 1 oder eine 2 hinzuaddiert, je nachdem, ob das niederwertige Nibbel größer als das höherwertige Nibble ist oder nicht. Auch hier wird für die Operanden eine Zweierkomplementdarstellung bei negativen Werten verwendet.
  • Es kann vorgesehen sein, dass für den Fall, dass ein erster Operand Null ist, nur der Wert des zweiten Operanden nach einer vorgegebenen Vorschrift modifiziert wird und diese Modifikation so gewählt wird, dass für jeden beliebigen zweiten Operanden alle möglichen Werte – einschließlich Null – auftreten, wenn der zweite Operand so variiert wird, dass alle möglichen Werte – einschließlich Null – angenommen werden.
  • Tabelle 1 stellt eine Ergebnistabelle dar, die eine Einwegfunktion repräsentiert:
    Figure DE102013205166A1_0002
    Tabelle 1
  • Durch diese Zuordnung, die Tabelle 1 zu entnehmen ist, wird gewährleistet, dass jeder Ausgang 16 mal vorkommt. Es wird hierzu auf Tabelle 2 verwiesen. Diese zeigt eine Statistik zur Transformation von Tabelle 1, indem für jeden Wert die Häufigkeit angegeben wird. Eine zusätzliche Eigenschaft der Tabelle 1 ist, dass in jeder Zeile und Spalte jeder Wert genau einmal vorkommt.
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16
    Tabelle 2
  • Die Komplexität dieser Transformation kann bestimmt werden, wenn jedes einzelne Ergebnisbit nach der Transformation durch eine BOOLEsche Gleichung dargestellt wird, die man als algebraische Normalform ANF bezeichnet und die aus der antivalenten Verknüpfung XOR von konjunktiven Termen AND besteht.
  • Tabelle 3 zeigt die Ergebnisse der Auswertung dieser Gleichungen zusammengefasst und ist das Ergebnis einer Komplexitätsuntersuchung der Einzelbitfunktionen des Gesamtergebnisses für einen festen Operanden.
    Figure DE102013205166A1_0003
    Tabelle 3
  • Als komplex wird dabei eine Funktion bewertet, wenn die ANF mindestens zwei konjunktive Terme mit jeweils mindestens zwei Variablen enthält, sonst wird sie als einfach bewertet. Die Zahl gibt grundsätzlich an, von wievielen Variablen die Funktion insgesamt abhängt. Es kann zusammenfassend festgestellt werden, dass nur für die festen Operanden 0x2 und 0xf jede Bitfunktion für sich als einfach eingestuft wird.
  • Die Gesamtheit aller 4 Bits hängt aber in jedem Fall von allen 4 Bits ab und alle 4 Bits haben insgesamt etwa den gleichen Einfluss auf die Gesamtfunktion. Weiterhin ist zu bemerken, dass bei den erwähnten beiden Operanden eine Schwäche vorliegt, die zu beachten ist. Diese Schwäche ist bspw. die nicht komplexe Funktion bei den Operanden 0x2 und 0xf. Insbesondere kann man, wenn auszuschließen ist, dass bei einer Mehrfachanwendung diese Operanden (0x2 oder 0xf) in überdurchschnittlicher Anzahl vorkommen, diese Schwäche akzeptieren, wenn die Einwegfunktion mehrmals zur Generierung einer Ausgangsfunktion verwendet wird.
  • Die Auswahl der Modifikation nach 1 kann grundsätzlich von verschiedenen Eigenschaften der Teilergebnisse abhängig gemacht werden. Solche Ergebnisse können sein:
    • a) das Verhältnis des Dezimalwerts der Teilergebisse, wie dies in 1 gezeigt ist,
    • b) das Verhältnis der Anzahl der Einsen der Teilergebnisse,
    • c) das Verhältnis der Anzahl von maximal zusammenhängenden Einsen in den Teilergebnissen,
    • d) das Verhältnis der Anzahl von maximal zusammenhängenden Nullen in den Teilergebnissen.
  • Auf diese Weise kann ausgewählt werden, ob die Teilergebnisse addiert oder subtrahiert werden, ob ein Wert hinzuaddiert wird oder nicht. Die gewählte Verknüpfungsoperation wird von dem Verhältnis der Eigenschaften der Teilergebnisse zueinander ausgewählt.
  • Die dargelegte Funktion kann auf einfache Weise als kombinatorische Schaltung realisiert werden, bspw. indem man eine VHDL-Beschreibung erstellt und diese synthetisiert.
  • Der Einsatz einer Einwegfunktion bei der Erzeugung einer zufälligen Ausgangsbitfolge wird nachfolgend anhand der 2 bis 7 erläutert.
  • Wie in 2 dargestellt ist, erfolgt in einem ersten Schritt 10 die Erzeugung von jeweils 4 Ausgangsbits s0, s1, s2, s3 auf der Basis von 64 Eingabe-Bits, die als Seed bezeichnet werden. Diese Seed wird vorgegeben und kann beispielsweise die Ausgabe einer TRNG-Quelle sein. Nachdem die 4 Ausgangsbits berechnet wurden, wird diese Seed durch einen eingebauten Inkrementer um 1 erhöht und diese inkrementierte Seed zur Erzeugung der nächsten vier Ausgangsbits benutzt. Dieses Vorgehen wird solange fortgesetzt, bis eine neue Seed vorgegeben wird. Von den 64 Bit Eingabe werden zunächst in dem ersten Schritt die ersten 4 Bits ausgewählt und unmittelbar auf Zustandsautomatenanordnung 12 mit sechzehn Zustandsautomaten 14 angewendet.
  • Die Funktion der Zustandsautomatenanordnung ist in den 3, 4 und 5 erläutert.
  • 3 zeigt einen Aufbau einer Einrichtung zur Durchführung des Verfahrens, die insgesamt mit der Bezugsziffer 50 bezeichnet ist. Die Darstellung zeigt als Eingabe einen Eingabevektor 52, der in Blocks von 4 Bits unterteilt ist, einen ersten Anfangszustand 54, der interne Zähler der Anordnung zurücksetzt, die für die Auswahl der Ausgangsbits 58 im Zusammenhang mit den Werten des Eingabevektors 52 wirksam werden. Weiterhin zeigt die Darstellung eine Einwegfunktion 60, eine Anordnung 62 an Zustandsautomaten (COSSMA), auf die ein zweiter Anfangszustand 64 wirkt, der entweder vor jeder neuen Verarbeitung eines Eingangsvektors 52 wirksam ist oder auch erst nach einer vorgegebenen Anzahl von Einmgangsvektoren 52 den Anfangszustand der in der Anordnung 62 vorliegenden Zustandsautomaten bestimmt. Somit ergibt sich nach zweimaliger Eingabeverarbeitung ein Wert am Ausgang 66 der Anordnung 62.
  • 4 verdeutlicht eine Anordnung von Zustandsautomaten, die insgesamt mit der Bezugsziffer 100 bezeichnet ist und die auch als kompletter Satz an Zustandsautomaten bezeichnet wird (COSSMA: COmplete Set of State MAchines). Somit zeigt 3 einen vollständigen Satz von Zustandsautomaten entsprechend der Anordnung 12 in 2.
  • Diese Anordnung 100 hat eine 4 Bit Eingabe s0', s1', s2', s3' und eine 64 Bit Ausgabe 102. Die Bits der Ausgabe 102 werden durch Flipflops von Zustandsautomaten 104 getrieben.
  • 5 zeigt einen 4 Bit-Zustandsautomaten, der mit der Bezugsziffer 150 bezeichnet ist und als ein 4-Bit-NLMISR (non linear multiple input signature register) ausgeführt ist.
  • Anstelle des NLMISR aus 5 kann auch ein beliebiger Zustandsautomat benutzt werden, wenn für eine beliebige vorgegebene Eingangsfolge der Folgezustand und der Vorgängerzustand jeweils eindeutig bestimmt sind.
  • Die Übergangsfunktion der Schaltung aus 5 ist in der nachfolgenden Tabelle angegeben.
    Figure DE102013205166A1_0004
  • Die Eingangsbits aller 16 NLMISR sind jeweils gleich. Ihr Anfangszustand ist jedoch unterschiedlich. Damit hat nach vorstehender Voraussetzung jeder NLMISR zu jedem Zeitpunkt einen anderen Zustand als jeder andere NLMISR.
  • In 6 sind Zustandsübergänge der verwendeten Zustandsautomaten dargestellt, wenn s0' = s1' = s3' = 0 ist. Ein durchgezogener Pfeil zeigt einen Übergang für s2' = 0, wobei in diesem Fall auch ein direkter Übergang diagonal nach rechts unten über die jeweiligen Zwischenzustände für jeweils einen Takt möglich ist, wie durch den Pfeil 170 rechts angedeutet ist. Ein gestrichelter Pfeil steht für s2' = 1.
  • 7 zeigt eine DRBG-Ausgangsstufe, die insgesamt mit der Bezugsziffer 200 versehen ist. Die Darstellung zeigt eine Reihe von Zustandsautomaten 202, die mit Multiplexern 204 verbunden sind. Die Ausgangsstufe 200 liefert eine zwischenzeitliche Ausgabe, die für ein feedback und eine abschließende Ausgabe verwendet wird.
  • Die Erfindung wird nachfolgend anhand der Figuren erläutert:
    Als Anfangszustand der Zustandsautomatenanordnung 12, 62, 100 kann die Verteilung 0, 1, 2, 3, ... 15 gewählt werden. Es ist wichtig, dass jeder gleich aufgebaute Zustandsautomat 14 einen unterschiedlichen Anfangszustand hat. Dieser Anfangszustand muss nicht geheim sein, er kann jedoch für spezielle Anwendungen auch als geheimer Zustand behandelt werden. Dann ist eine Funktion verfügbar, die mit den sogenannten "keyed Hash-Functions" vergleichbar wäre, die weitere verbesserte krytopgraphische Eigenschaften aufweisen.
  • Entsprechend dem verwendeten Eingangsnibble s0, s1, s2, s3, für den ersten Schritt 10 identisch mit s0', s1', s2', s3', und der Schritt-Nummer i = 0 werden gemäß 2 die 4 internen Zähler z0 ... z3 bestimmt, die eine Auswahl von 4 Bits aus den Zustandsautomaten 202 aus der Zustandsautomatenanordnung 100 gemäß 4 bestimmen. Die Zustandsautomatenanordnung 100 wurde dabei durch das erste Eingabe-Nibble bereits modifiziert gemäß 4 und 5. Diese 4 Bits stellen die "Intermediate Output Feedback"-Werte, die zwischenzeitlichen Ausgabe-Rückkopplungs-Werte, dar, die in 1 mit Bezugsziffer 16 verdeutlicht sind. Mit diesen Werten wird nach dem ersten Eingabe-Schritt in einem zweiten Schritt 20 das gleiche Eingabe-Nibble modifiziert durch die Einwegfunktion, die in 1 beschrieben ist. Diese Modifikation wird in Tabelle 1 erklärt.
  • Mit dem ersten Input-Nibble s0, s1, s2, s3 als ersten Operand und der zwischenzeitlichen Ausgabe o0', o1', o2', o3', die aus einer Ausgabestufe 22, die eine Auswahl von 4 Bits trifft, als zweitem Operand erhält man für die Einwegfunktion die Ausgabe: Ergebnis = s0', s1', s2', s3', das sich von s0, s1, s2, s3 durch eine Permutation gemäß Tabelle 1 unterscheidet. Diese Ausgabe wird auf die Zustandsautomatanordnung 12 angewendet. Auf diese Weise werden alle 64 Eingabe-Bits nacheinander als Nibbel jeweils zweimal verwendet und zwar ohne und mit Einwegfunktion.
  • Nach jeweils einer bestimmten Anzahl, bspw. 5 Eingabe-Schritten wird ein Parity-Schritt eingefügt. Die Eingaben si' der vorangegangenen fünf Eingabe-Schritte werden dazu benutzt, je ein serielles Parity zu erzeugen, das im folgenden Schritt eingefügt wird. Im Ausführungsbeispiel wird aus dem LSB s0" ein gerades Parity generiert und für alle anderen Bits je ein ungerades Parity. Das Parity sollte für eine ungerade Anzahl von Eingabe-Bits ein ungerades Parity und für die restlichen Eingaben ein gerades Parity sein. Dies wird durch den unterschiedlichen Anfangszustand der Flip-Flops. Durch Anwendung der Parities auf die Anordnung 12, 62, 100 wird gewährleistet, dass sich das Umschaltsignal für die Polynome y (nach 5) für diese sechs Schritte wenigstens einmal unterscheidet.
  • Das Umschaltsignal wird bspw. in der Druckschrift DE 10 2009 000 322 A1 näher erläutert. Dies bewirkt eine Nichtlinearität, da in Abhängigkeit der Eingangssignale ein unterschiedliches Polynom des NLMISR gewählt wird.
  • Auf das Einfügen eines Parities kann auch verzichtet werden, wenn die Einwegfunktion über Eigenschaften verfügt, die ein Umschalten des Polynoms für belibige Eingangsfolgen wahrscheinlich macht.
  • Nachdem alle Eingaben verarbeitet wurden, werden die zwischenzeitlichen Ausgaben für drei weitere Schritte direkt als Eingaben für die Anordnung 12 verwendet, um abschließend noch mit einem Parity den Verarbeitungszyklus eines 64 Bit-Vektors abzuschließen. Auch auf diese zusätzlichen Schritte kann man ggf. verzichten.
  • Die Seed wird nach der Erzeugung eines 4 Bit Ausgangswertes o0, o1, o2, o3, nach der Verarbeitung aller 64 Eingabe-Bits, jeweils inkrementiert und mit dieser modifizierten Seed werden nach gleichem Verfahren weitere 4 Bits generiert. Nach der Generierung von bspw. jeweils insgesamt 128 Ausgabe-Bits wird der Zustand der Anordnung 12, 62, 100 auf den Anfangszustand 64 zurückgesetzt. Der Anfangszustand 54 für die Auswahlzähler z0 bis z3, die für die Ansteuerung der Multiplexer 204 in 7 verwendet werden, wird demgegenüber zweckmäßigerweise nach jeder Verarbeitung eines Eingangsvektors 52 eingenommen Anstelle des Inkrementierens kann man die Seed auch dekrementieren, nach einer Codetabelle weiterzählen, verschieben, rotieren oder anderweitig modifizieren.
  • Der Zustand der Anordnung 12, 62, 100 ist durch unterschiedliche Methoden prüfbar. Das ist deshalb möglich, weil in der Anordnung 12, 62, 100 jeder Zustandsautomat zu jedem Zeitpunkt einen anderen Zustand hat. Außerdem kann das Verfahren einer Prüfung unterzogen werden. Die unterschiedlichen Zustände sind dadurch gewährleistet, dass zu Beginn alle Zustandsautomaten auf unterschiedliche Startwerte initialisiert werden. Durch die gleichartige Einwirkung der Eingaben mit eindeutigem Nachfolger und Vorgänger kann kein gleicher Zustand in zwei Zustandsautomaten erreicht werden.
  • Wenn durch eine Attacke oder durch einen transienten Fehler, z. B. durch eine kosmische Strahlung verursachter Soft-Error, die erwähnte Bedingung nicht mehr zutrifft, dann wird dieser Fehler festgestellt und es können geeignete Maßnahmen ergriffen werden, z. B. ein Rücksetzen.
  • Bei dem vorstehend beschriebenen Verfahren können auch beliebige andere Einwegfunktionen anstelle der beschriebenen Multiplikation verwendet werden. Solche Einwegfunktionen sind beispielsweise die diskrete Exponentialfunktion, die Rabin-Funktion (x2 mod N) oder eine Hash-Funktion.
  • Weiterhin kann man auf das Einfügen von Parities verzichten und auch die drei zusätzlichen Schritte mit einer direkten Anwendung der zwischenzeitlichen Ausgaben auf der Anordnung 12, 62, 100 weglassen. Das kann für Anwendungen mit geringeren Anforderungen zweckmäßig sein; die Nichtlinearität der Einwegfunktion reicht ggf. schon aus, um die entsprechenden Anforderungen zu erfüllen. Auch ist es möglich, die zweimalige Verarbeitung eines jeden Eingangsnibbles zu vermeiden und nur die mittels Einwegfunktion generierten Signale der Anordnung 12, 62, 100 zuzuführen.
  • Die beschriebene Schaltungsanordnung dient zur Erzeugung einer Einwegfunktion aus zwei Operanden, die jeweils mehrere Bits mit Hilfe einer Multiplikationsoperation umfassen. Es wird das Operationsergebnis in mindestens zwei Teile geteilt und in Abhängigkeit des Verhältnisses bzw. der Relation der Eigenschaften dieser Teile zueinander werden diese Teile mit einer jeweils anderen Funktion verknüpft, so dass für den Fall, dass ein Operand Null ist, eine Funktion von den anderen Operanden erzeugt wird, und für den Fall, dass beide Operanden Null sind, ein vorgegebener Wert ausgegeben wird.
  • Die Einwegfunktion kann in einer Tabelle abgelegt werden, die wiederum in einer Speicheranordnung abgelegt ist. Je nach Operandenwert kann die zugeordnete Speicherzelle gelesen und ausgegeben werden.
  • Alternativ kann die Einwegfunktion durch eine Schaltung mit Verknüpfungselementen realisiert werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 20100125728 A1 [0003]
    • DE 102009000322 A1 [0059]
  • Zitierte Nicht-Patentliteratur
    • BSI AIS 31 vom 25. September 2001 [0008]
    • National Institute of Standards and Technology (NIST) gibt es Empfehlungen für ein DRBG in einem Special Paper NIST SP 800-90 von März 2007 [0009]

Claims (10)

  1. Verfahren zum Erzeugen einer Einwegfunktion (60) für eine kryptographische Funktion, bei dem zwei Operanden einer Operation unterzogen werden, ein Ergebnis der Operation in zwei Teilergebnisse aufgeteilt wird, die miteinander verglichen werden und in Abhängigkeit des Vergleichs die beiden Teilergebnisse miteinander verknüpft werden.
  2. Verfahren nach Anspruch 1, bei dem als Operation eine Multiplikation mit mindestens zwei Operanden durchgeführt wird.
  3. Verfahren nach Anspruch 2, bei dem für den Fall, dass beide Operanden Null sind, ein festgelegter Wert ausgegeben wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem für den Fall, dass ein erster Operand Null ist, nur der Wert des zweiten Operanden nach einer vorgegebenen Vorschrift modifiziert wird und diese Modifikation so gewählt wird, dass für jeden beliebigen zweiten Operanden alle möglichen Werte auftreten, wenn der zweite Operand so variiert wird, dass alle möglichen Werte angenommen werden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem eine Operation mit mindestens zwei Operanden furchgeführt wird, wobei für einen beliebigen festen Wert des ersten Operanden der zweite Operand so gewählt werden kann, dass jeder mögliche Ergebniswert erreicht werden kann.
  6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem eine Tabelle erstellt wird, welche die Einwegfunktion repräsentiert und diese Tabelle in einer Speicheranordnung abgelegt wird.
  7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem die Einwegfunktion (60) mittels einer elektronischen Schaltungsanordnung implementiert wird.
  8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem eine Schwäche der Operanden berücksichtigt wird.
  9. Schaltungsanordnung, die eine Einwegfunktion repräsentiert, die nach einem Verfahren gemäß einem der Ansprüche 1 bis 8 erzeugt wird.
  10. Schaltungsanordnung nach Anspruch 9, die eine kombinatorische Logik darstellt.
DE102013205166.2A 2013-03-22 2013-03-22 Verfahren zum Erzeugen einer Einwegfunktion Withdrawn DE102013205166A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102013205166.2A DE102013205166A1 (de) 2013-03-22 2013-03-22 Verfahren zum Erzeugen einer Einwegfunktion
CN201410107208.3A CN104063202A (zh) 2013-03-22 2014-03-21 用于产生单向函数的方法
US14/222,211 US20140286487A1 (en) 2013-03-22 2014-03-21 Method for generating a one-way function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013205166.2A DE102013205166A1 (de) 2013-03-22 2013-03-22 Verfahren zum Erzeugen einer Einwegfunktion

Publications (1)

Publication Number Publication Date
DE102013205166A1 true DE102013205166A1 (de) 2014-09-25

Family

ID=51484727

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013205166.2A Withdrawn DE102013205166A1 (de) 2013-03-22 2013-03-22 Verfahren zum Erzeugen einer Einwegfunktion

Country Status (3)

Country Link
US (1) US20140286487A1 (de)
CN (1) CN104063202A (de)
DE (1) DE102013205166A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196760B (zh) * 2017-04-17 2020-04-14 徐智能 具有可调整性的伴随式随机重构密钥的序列加密方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125728A1 (en) 2008-11-17 2010-05-20 Shay Gueron Method of implementing one way hash functions and apparatus therefor
DE102009000322A1 (de) 2009-01-20 2010-07-22 Robert Bosch Gmbh Nichtlinear rückgekoppeltes Schieberegister sowie Verfahren zur nichtlinearen Signaturbildung

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810474B1 (en) * 1998-03-04 2004-10-26 Hitachi, Ltd. Information processor
US7111172B1 (en) * 1999-07-19 2006-09-19 Rsa Security Inc. System and methods for maintaining and distributing personal security devices
EP1075108A1 (de) * 1999-07-23 2001-02-07 BRITISH TELECOMMUNICATIONS public limited company Kryptographische Datenverteilung
US6963977B2 (en) * 2000-12-19 2005-11-08 International Business Machines Corporation Circuits and methods for modular exponentiation
US6914983B2 (en) * 2000-12-19 2005-07-05 International Business Machines Corporation Method for checking modular multiplication
US20020116429A1 (en) * 2000-12-19 2002-08-22 International Business Machines Corporation System and method for modular multiplication
US6978016B2 (en) * 2000-12-19 2005-12-20 International Business Machines Corporation Circuits for calculating modular multiplicative inverse
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
KR100574945B1 (ko) * 2003-08-08 2006-04-28 삼성전자주식회사 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법
FR2874144A1 (fr) * 2004-08-03 2006-02-10 France Telecom Procede d'authentification anonyme base sur un algorithme cryptographique de type asymetrique
EP1782181B1 (de) * 2004-08-09 2010-10-13 Telecom Italia S.p.A. Verfahren und vorrichtung zum erzeugen von zufallsdaten
JP2009512930A (ja) * 2005-10-19 2009-03-26 エヌエックスピー ビー ヴィ 疑似乱数の生成方法
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
US8055886B2 (en) * 2007-07-12 2011-11-08 Texas Instruments Incorporated Processor micro-architecture for compute, save or restore multiple registers and responsive to first instruction for repeated issue of second instruction
US8547848B2 (en) * 2008-07-09 2013-10-01 Telefonaktiebolaget L M Ericsson (Publ) Traffic control within a network architecture providing many-to-one transmission with denial-of-service protection
BRPI0924743A2 (pt) * 2009-06-23 2016-01-26 Siemens Ag "tramissão de dados à prova de manipulação entre mecanismos de automação"
ES2390796T3 (es) * 2009-07-27 2012-11-16 Nagravision S.A. Método de implementación de un procesador para garantizar la integridad de un software
CN103608829A (zh) * 2011-01-18 2014-02-26 舍德Ip有限责任公司 用于基于编码完整性进行计算机化协商的系统和方法
MX343892B (es) * 2012-12-21 2016-11-28 Koninklijke Philips Nv Dispositivo de computo configurado con una red de tablas.
US9026888B2 (en) * 2012-12-21 2015-05-05 Intel Corporation Method, system and apparatus for providing access to error correction information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125728A1 (en) 2008-11-17 2010-05-20 Shay Gueron Method of implementing one way hash functions and apparatus therefor
DE102009000322A1 (de) 2009-01-20 2010-07-22 Robert Bosch Gmbh Nichtlinear rückgekoppeltes Schieberegister sowie Verfahren zur nichtlinearen Signaturbildung

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BSI AIS 31 vom 25. September 2001
National Institute of Standards and Technology (NIST) gibt es Empfehlungen für ein DRBG in einem Special Paper NIST SP 800-90 von März 2007

Also Published As

Publication number Publication date
CN104063202A (zh) 2014-09-24
US20140286487A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
DE10357782B3 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator
DE102018113475A1 (de) Rechenwerk zum rechnen mit maskierten daten
DE102011078642A1 (de) Verfahren zum Prüfen eines m aus n Codes
DE10339999B4 (de) Pseudozufallszahlengenerator
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102015110431A1 (de) Kryptografischer Prozessor, Verfahren zum Implementieren eines kryptografischen Prozessors und Schlüsselgenerierungsschaltung
EP2446580B1 (de) Vorrichtung und verfahren zur bildung einer signatur
DE112015006865T5 (de) Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE102013205542A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Daten
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE102014207296A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Daten
DE102011078643A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
EP1342153B1 (de) Verfahren und vorrichtung zum erzeugen einer pseudozufallsfolge mittels diskretem logarithmus
DE102013205168A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
DE102018116572A1 (de) Schutz gegen seitenkanalangriffe
DE1474037A1 (de) Paritaets-Pruefeinrichtung fuer Datenverarbeitende Maschinen
DE102014200163A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102014200309A1 (de) Verfahren zum Überprüfen einer Ausgabe
DE102015102363A1 (de) Anordnung und verfahren zum überprüfen der entropie einer zufallszahlenfolge
DE102013205166A1 (de) Verfahren zum Erzeugen einer Einwegfunktion
WO2013004494A1 (de) Verfahren zum sicheren prüfen eines codes
DE102012210361A1 (de) Verfahren zum Überwachen einer Ausgabe eines Zufallsgenerators
EP0681760B1 (de) Rückgekoppeltes schieberegister zum erzeugen von pseudozufallszahlenfolgen darstellenden digitalen signalen
DE102014200164A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee