DE102010029735A1 - Verfahren zum Generieren eines Bitvektors - Google Patents

Verfahren zum Generieren eines Bitvektors Download PDF

Info

Publication number
DE102010029735A1
DE102010029735A1 DE102010029735A DE102010029735A DE102010029735A1 DE 102010029735 A1 DE102010029735 A1 DE 102010029735A1 DE 102010029735 A DE102010029735 A DE 102010029735A DE 102010029735 A DE102010029735 A DE 102010029735A DE 102010029735 A1 DE102010029735 A1 DE 102010029735A1
Authority
DE
Germany
Prior art keywords
state
different
state machines
input
bit vector
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
DE102010029735A
Other languages
English (en)
Inventor
Eberhard Boehl
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 DE102010029735A priority Critical patent/DE102010029735A1/de
Priority to US13/099,901 priority patent/US9325494B2/en
Priority to CN201110148950.5A priority patent/CN102271038B/zh
Publication of DE102010029735A1 publication Critical patent/DE102010029735A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Error Detection And Correction (AREA)

Abstract

Es werden ein Verfahren und eine Schaltungsanordnung zur Generierung eines Bitvektors vorgestellt. Dabei werden mindestens zwei Anordnungen von jeweils gleich aufgebauten Zustandsautomaten verwendet, denen eingangsseitig ein Eingangssignal zugeführt wird und die in Abhängigkeit Ihres Zustands jeweils ein Ausgangssignal erzeugen, wobei jeder Zustandsautomat stets einen anderen Zustand aufweist als die anderen Zustandsautomaten einer Anordnung, wobei der Bitvektor durch eine lineare Verknüpfung der Ausgangssignale der Zustandsautomaten von jeweils verschiedenen Anordnungen generiert wird.

Description

  • Die Erfindung betrifft ein Verfahren zum Generieren eines Bitvektors und eine Schaltungsanordnung zur Durchführung des Verfahrens.
  • Stand der Technik
  • Kryptographische Geräte und kryptologische Algorithmen sind Angriffen ausgesetzt, mit denen geschützte Daten manipuliert oder ausgelesen werden sollen. Bei den heute üblichen Verschlüsselungsverfahren, wie z. B. der ”advanced encryption standard” AES, werden Schlüssel eingesetzt, die auf Grund der Schlüssellänge mit 128 und mehr Bits selbst unter Einsatz schneller Rechentechnik nicht durch ”Ausprobieren” (sogenannte ”brute force” Attacken) ermittelbar sind. Ein Angreifer untersucht deshalb auch Nebeneffekte einer Implementierung, wie den zeitlichen Verlauf des Stromverbrauchs, die zeitliche Dauer oder die elektromagnetische Abstrahlung einer Schaltung bei der Verschlüsselungsoperation. Da die Angriffe nicht auf die Funktion direkt abzielen, bezeichnet man solche Attacken als Seitenkanalattacken.
  • Diese Seitenkanalattacken (side channel attacks) nutzen die physikalische Implementierung eines Kryptosystems in einem Gerät. Dabei wird das Steuergerät mit kryptographischen Funktionen bei der Ausführung der kryptologischen Algorithmen beobachtet, um Korrelationen zwischen den beobachteten Daten und den Hypothesen für den geheimen Schlüssel zu finden.
  • Es sind zahlreiche Seitenkanalattacken bekannt, wie diese bspw. in der Veröffentlichung von Mangard, Oswald und Popp in "Power Analysis Attacks", Springer 2007, beschrieben sind. Insbesondere mit der ”differential power analysis” (DPA) ist ein erfolgreicher Angriff auf den geheimen Schlüssel des AES praktisch durchführbar.
  • Bei diesen wird der Stromverbrauch eines Mikroprozessors während kryptographischer Berechnungen aufgezeichnet und es werden Spuren der Stromaufnahme durch statistische Methoden mit Hypothesen verglichen.
  • Bei bekannten Verfahren, die die DPA erschweren, greifen diese in den Algorithmus selbst ein. Dabei werden bei einem Maskieren die Operationen mit zufällig veränderten Operanden ausgeführt und im Ergebnis wird der Zufallswert dann wieder herausgerechnet, was bedeutet, dass der Zufall sich nicht auf das Ergebnis auswirkt. Eine weitere Möglichkeit ist das sogenannte Hiding, bei dem man high-low Übergänge durch entsprechende low-high Übergänge zu kompensieren versucht.
  • Aus der Druckschrift US 6 510 518 B1 ist ein kryptographisches Verfahren für sogenannte Smartcards und andere kryptologische Systeme bekannt. In der Druckschrift ist ein Verfahren zur Verwendung eines geheimen Schlüssels beschrieben, um eine Nachricht kryptographisch zu verarbeiten. Hierbei wird die empfangene Nachricht in einer Hardwareeinheit verarbeitet, wobei eine Vielzahl von Suboperationen durchgeführt wird. Jede Suboperation überträgt eine Eingabe über eine Zwischenstufe zu einer Ausgabe, wobei eine Anzahl von Zustandstransformationen durchgeführt wird, die wiederum unabhängig von der zu verarbeitenden Nachricht und dem verwendeten Schlüssel ist.
  • Die Druckschrift US 6 327 661 B1 beschreibt ein Verfahren zum Schutz kryptologischer Systeme vor Angriffen von außen. Hierbei wird die Menge an nutzbaren Informationen reduziert. Hierzu werden unvorhersagbare Daten bzw. Informationen bei der kryptographischen Verarbeitung aufgenommen. Es werden Ausführungen beschrieben, die unterschiedliche Techniken, wie bspw. die Verringerung des Signal-Rausch-Abstands, verwenden. Die vorgestellten Techniken können in Hardware oder Software implementiert sein, eine Kombination von digitalen und analogen Techniken verwenden und in einer Vielzahl von kryptologischen Einrichtungen eingesetzt werden.
  • Offenbarung der Erfindung
  • Vor diesem Hintergrund werden ein Verfahren zum Generieren eines Bitvektors mit den Merkmalen des Anspruchs 1 und eine Schaltungsanordnung zum Generieren eines Bitvektors gemäß Anspruch 8 vorgeschlagen. Ausführungen ergeben sich aus den abhängigen Ansprüchen, der Beschreibung und den Zeichnungen.
  • Entgegen dem Stand der Technik greift das vorgeschlagene Verfahren nicht in die Algorithmen ein und ist deshalb für beliebige kryptographische Verfahren anwendbar. Zudem hat es einen geringeren Bedarf an zusätzlicher Hardware und Verarbeitungszeit. Das vorgestellte Verfahren ist sowohl für die Verschlüsselung als auch für die Entschlüsselung geeignet. Dabei können Masken auf Vorrat generiert werden. Diese sind jeweils für mehrere kryptographische Operationen verwendbar. Daher reduziert die Maskengenerierung nicht die Leistungsfähigkeit dieser Operationen, weswegen das Verfahren als Maßnahme gegen Seitenkanalattacken geeignet ist.
  • In einer Ausführung ist somit eine Schaltungsanordnung zur Generierung eines Bitvektors (Maske) aus vorgegebenen Eingangssignalen zur Maskierung mindestens eines geheimen Schlüssels und/oder der Daten (plain text, cipher text) einer kryptographischen Operation vorgesehen, zum Schutz dieser besagten kryptographischen Operation gegenüber Seitenkanalangriffen, wie bspw. DPA(differential power analysis)-Attacken. Dabei weist die Schaltungsanordnung mindestens zwei Anordnungen von jeweils m gleich aufgebauten und gleich angesteuerten Zustandsautomaten mit je n relevanten (d. h. den Zustand des Zustandsautomaten bestimmenden) Speicherelementen auf, wobei m = 2n ist. Diese m Zustandsautomaten werden zu Beginn einer Maskengenerierung bzw. Generierung des Bitvektors mit je einem anderen Anfangszustand initialisiert, wobei alle diese Zustandsautomaten in einer Anordnung mit den gleichen Eingangssignalen gleichartig verbunden sind und mindestens ein Ausgangssignal von jeder Anordnung zur Bildung des besagten Bitvektors benutzt wird. Für die beiden Anordnungen können die Werte m und damit auch n unterschiedlich sein.
  • Es können auch Zählerbits von einem ersten Zähler eingehen. Dieser Zähler zählt die Anzahl der bisher angelegten Eingangsvektoren.
  • In einer weiteren Ausgestaltung sind die benutzten m Zustandsautomaten in einer Anordnung so aufgebaut, dass bei der Initialisierung aller dieser Zustandsautomaten mit m verschiedenen Zuständen gewährleistet ist, dass alle Zustandsautomaten in Abhängigkeit von beliebigen Eingangssignalen immer verschiedene Zustände haben.
  • Weiterhin kann vorgesehen sein, dass aus den Eingangssignalen Umschaltsignale y gebildet werden. Die Umschaltsignale dienen insbesondere dazu, die Übertragungsfunktion der Zustandsautomaten so zu verändern, dass zwischen zwei einfachen linearen Übertragungsfunktionen in Abhängigkeit von den Eingangssignalen umgeschaltet wird. Diese Umschaltung sollte in den verschiedenen Anordnungen möglichst unterschiedlich erfolgen.
  • Durch zusätzliche Paritätsbits der Eingangssignale wird gewährleistet, dass in den Zustandsautomaten mindestens einmal zwischen den verschiedenen linearen Übertragungsfunktionen umgeschaltet wird und damit eine insgesamt nichtlineare Übertragungsfunktion entsteht. Eine nichtlineare Übertragungsfunktion ist dazu notwendig, um den generierten Bitvektor nicht berechenbar gestalten zu können. Es wären sonst ”brute force” Angriffe leichter möglich.
  • Es kann weiterhin vorgesehen sein, dass die Umschaltsignale y gewichtet in einen zweiten Zählerwert z eingehen und die Höhe des Gewichts je nach Anordnung und erstem Zählerwert variiert.
  • In einer Ausgestaltung des Verfahrens wird in Abhängigkeit von dem zweiten Zählerwert z eine Vertauschung der Inhalte der Zustandsautomaten (Zustände) innerhalb einer Anordnung vorgenommen. Diese Vertauschung kann eine Rotation der Zustände innerhalb dieser Anordnung sein. Für verschiedene Anordnungen sind die Zählerwerte z und damit die Rotationen unterschiedlich, weil auch die Umschaltwerte y und die Gewichte unterschiedlich sind.
  • In einer möglichen Ausgestaltung der Schaltungsanordnung sind die Speicherelemente der Zustandsautomaten aus zwei Teilen (Master/Slave) aufgebaut, die aufeinanderfolgend angeordnet sind und die beide sowohl separat löschbar sind (Reset-Wert beliebig 0 oder 1, aber einheitlich für alle Master bzw. Slaves) als auch unabhängig voneinander Daten aufnehmen. Zum Vertauschung der Zustände werden diese typischerweise so angesteuert, dass zuerst die Master gelöscht werden, dann die Master die anliegende Eingangsinformation (von einem anderen Zustand) übernehmen, darauf die Slaves gelöscht werden und anschließend die Slaves den Inhalt der Master übernehmen. Dieses Verfahren ist deshalb notwendig, weil sonst bei einer einfachen Vertauschung (oder Rotation) der Stromverbrauch bei der Vertauschung davon abhängig ist, wie viele 0-1 und 1-0 Übergänge bei der Vertauschung vorliegen. Bei dem vorgeschlagenen Verfahren werden in einer Anordnung beim Löschen der Master auf den Wert 0 genau m·n/2 1-0-Übergänge und beim Laden der neuen Werte genau m·n/2 0-1-Übergänge stattfinden. Diese Anzahl der Übergänge ist jeweils unabhängig von dem jeweiligen Zustand.
  • Deshalb ist die Stromaufnahme immer gleich und deshalb nicht beobachtbar bzw. attackierbar. Die Rotation bzw. Vertauschung der Zustände ist dazu notwendig, damit die einzelnen Bits des generierten Bitvektors im Durchschnitt möglichst von allen oder zumindest von vielen der n·m Bits des Anfangszustands abhängig sind.
  • Weiterhin kann der Bitvektor (Maske) aus der Verknüpfung verschiedener Ausgänge verschiedener Zustandsautomaten von verschiedenen Anordnungen gebildet werden. Außerdem können die Operanden der besagten Verknüpfungsoperation balanciert, d. h. mit gleicher Leitungslänge und/oder Kapazität, zu dem Verknüpfungselement geführt werden.
  • In einer weiteren möglichen Ausführung der Schaltungsanordnung und des Verfahrens werden die Verknüpfungsoperationen teilweise nacheinander ausgeführt und dazu nach jeder Teiloperation die Zustände der Zustandsautomaten vertauscht, wobei die Vertauschung durch das gleichzeitige separate Löschen und das nachfolgende gleichzeitige Beschreiben der Master- bzw. Slave-Elemente aller Speicherelemente vorgenommen wird.
  • Weiterhin kann gegeben sein, dass die Ausgänge aller Zustandsautomaten, die nicht mit einem Verknüpfungselement verbunden sind, mit einem Lastelement verbunden sind und dieses Lastelement das gleiche elektrische Verhalten (z. B. Kapazitätswert) darstellt wie die Last an Ausgängen, die mit den Verknüpfungselementen verbunden sind.
  • Zudem können während einer Vertauschungsoperation der Zustände und auch während der Verarbeitung der Eingangssignale die zu den Verknüpfungs- und Lastelementen führenden Signale alle auf einen gleichen festen Wert (0 oder 1) gesetzt werden.
  • In noch einer weiteren Ausführung sind die zur Generierung des Bitvektors benutzten Eingangssignale zumindest teilweise nicht vorhersagbare (zufällige) Werte und/oder hängen von einem Zähler ab. Aus diesen Eingangssignalen werden dann Paritätsbits erzeugt, die nach einer vorgebbaren Anzahl von Eingangsbits in die Signalfolge eingefügt werden. In einer weiteren Ausführung ist die Anzahl der Eingangsbits zwischen zwei Paritätsbits ungerade und das Paritätsbit selbst ungerade, d. h. die Summe der Einsen in den betreffenden Eingangsbits und dem zugehörigen Paritätsbit ist ungerade.
  • Die vorgestellte Schaltungsanordnung kann derart ausgestaltet sein, dass mehrere Anordnungen mit jeweils m = 2n Zustandsautomaten mit jeweils n relevanten Speicherelementen benutzt werden und verschiedene Anordnungen gleiche oder unterschiedliche Anfangszustände haben und/oder mit der gleichen oder unterschiedlichen Anordnung und/oder Invertierung der Eingangssignale verbunden sind.
  • In noch einer möglichen Ausführungsform der Schaltungsanordnung ist vorgesehen, dass mindestens eine Anordnung mit jeweils m = 2n Zustandsautomaten mit jeweils n relevanten Speicherelementen und mindestens eine Anordnung mit jeweils p = 2q Zustandsautomaten mit jeweils q relevanten Speicherelementen benutzt werden. Alle diese p Zustandsautomaten besitzen jeweils einen anderen Anfangszustand und sind entweder mit mindestens einem gleichen Eingangssignal mittelbar oder unmittelbar verbunden wie die m Zustandsautomaten. Es können aber auch beliebige andere Eingangssignale benutzt werden.
  • Um für den generierten Bitvektor für jedes einzelne Bit eine gleiche Wahrscheinlichkeit für eine 1 und eine 0 zu gewährleisten, werden Bits von einer Anordnung mit Bits von mindestens einer zweiten Anordnung verknüpft. Die Verknüpfungsoperation sollte dabei vorteilhafterweise linear sein (Antivalenz, Äquivalenz), was gleichbedeutend mit EXOR oder EXNOR ist.
  • 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 nur 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 Ausführungsform der Schaltungsanordnung.
  • 2 zeigt eine Möglichkeit der Maskierung
  • 3 zeigt eine weitere Möglichkeit der Maskierung.
  • 4 zeigt ein Non-Linear Multiple Input Shift Register
  • 5 zeigt Zustandsübergänge.
  • 6 zeigt einen vollständigen Satz von Zustandsautomaten.
  • 7 zeigt eine Eingangsstufe eines Bitgenerators.
  • 8 zeigt die Erzeugung und Einfügung von Paritätsbits.
  • Ausführungsformen der Erfindung
  • Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
  • 1 zeigt schematisch eine Ausführungsform einer erfindungsgemäßen Schaltungsanordnung, die insgesamt mit der Bezugsziffer 100 bezeichnet ist. Diese Schaltungsanordnung 100 dient zur Bildung eines Bitvektors mit 128 Bit aus einem Eingangssignal 102. Hierzu umfasst die Schaltungsanordnung 100 vier Anordnungen 104, 106, 108 und 110, die jeweils sechszehn Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 umfassen. Der Übersichtlichkeit halber sind in 1 nur jeweils vier der sechzehn Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 dargestellt. In dieser Ausführung ist die Schaltungsanordnung 100 derart ausgebildet, dass jedem Transformationselement TE_0, TE_1, TE_2, ..., TE_15 jeder der Anordnungen 104, 106, 108 und 110 dieselben Eingangsdaten bzw. dasselbe Eingangssignal 102 zugeführt werden bzw. wird.
  • Wichtig ist, dass in jeder Anordnung 104, 106, 108, 110 alle Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 gleichartig mit den Eingangssignalen verbunden sind, aber verschiedene Anordnungen sich voneinander unterscheiden können.
  • Die Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 bilden aus dem ihnen zugeführten Eingangssignal 102 ein vorliegend nicht näher spezifiziertes Ausgangssignal. Diese Ausgangssignale werden kombiniert und darauf eine Signatur S 120 mit 256 Bit erhalten. Die Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 weisen jeweils einen Zustandsautomaten ZA auf, dessen Zustandsinformationen bspw. in Form eines digitalen Datenworts vorgebbarer Breite gespeichert sind. Beispielsweise kann der Zustandsautomat ZA eine Speicherkapazität von 4 Bit aufweisen, so dass insgesamt 16 verschiedene Zustände möglich sind.
  • Die Zustandsautomaten ZA jeweils einer Anordnung 104, 106, 108, 110 sind gleichartig ausgebildet. Gleichartig bedeutet, dass jeder Zustandsautomat ZA, ausgehend von identischen Eingangssignalen 102 und einem identischen Initialisierungszustand, denselben Folgezustand in einem nachfolgenden Verarbeitungszyklus annehmen wird wie ein anderer gleichartiger Zustandsautomat ZA.
  • Es ist weiterhin vorgesehen, dass jeder Zustandsautomat ZA stets jeweils einen anderen Zustand aufweist als alle anderen Zustandsautomaten ZA der entsprechenden Anordnungen 104, 106, 108 oder 110. Dadurch werden DPA-Attacken erschwert, die aus der Analyse einer elektrischen Strom- und/oder Leistungsaufnahme oder von Störabstrahlungen versuchen, Rückschlüsse auf einen internen Verarbeitungszustand der Schaltungsanordnung 100 bzw. der einzelnen Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 zu ziehen.
  • Es ist von Vorteil, wenn die Anzahl der vorgesehenen Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 der Anzahl der maximal möglichen verschiedenen Zuständen des Zustandsautomaten ZA entspricht, in diesem Fall sechzehn. Dadurch liegt stets, d. h. zu jedem Verarbeitungszyklus, jeder theoretisch mögliche Zustand in genau einem Zustandsautomaten ZA vor, so dass nach außen, d. h. gegenüber einem möglichen Angreifer, der eine DPA-Attacke führt, jeweils nur eine Kombination aller sechzehn möglichen Zustände „sichtbar” ist.
  • Auch in einem darauffolgenden Verarbeitungszyklus, bei dem zwar die einzelnen Zustandsautomaten ZA jeweils ihren Zustand entsprechend einer vorgegebenen Regel ändern, liegt wiederum insgesamt in jedem der sechzehn Zustandsautomaten ZA genau einer der sechzehn möglichen Zustände vor, so dass nach außen wiederum alle sechzehn Zustände gleichzeitig „sichtbar” sind.
  • Das hat zur Folge, dass ein möglicher Angreifer aus einer entsprechenden elektromagnetischen Abstrahlung, die bei einer üblichen Realisierung der Schaltungsanordnung 100 gegeben ist, oder auch aus der elektrischen Leistungsaufnahme der Schaltungsanordnung 100, nicht auf einen Zustand der internen Signalverarbeitung in den Transformationselementen TE_0, TE_1, TE_2, ..., TE_15 schließen kann. Bei einer ideal symmetrischen Auslegung aller Komponenten ist die elektrische Leistungsaufnahme stets konstant, so dass das abgestrahlte elektromagnetische Feld jeweils keine signifikanten Änderungen bei einem Zustandswechsel zwischen aufeinanderfolgenden Verarbeitungszyklen erfährt.
  • Aus der Signatur S 120 wird durch eine lineare Verknüpfung in Block 122 ein Bitvektor 130 mit 128 Bit erzeugt. Die lineare Verknüpfung kann bspw. eine EXOR- oder auch eine EXNOR-Verknüpfung sein.
  • Das vorgeschlagene Verfahren und die dargestellte Schaltungsanordnung 100 benutzen die sogenannte nichtlineare Signaturbildung. In 2 ist eine Möglichkeit der Maskierung gezeigt. Hierbei ist ein Maskengenerator 10 dargestellt, dem bis zu 64 (zufällige) Eingabebits (Eingang 12) eingegeben werden. Es können 4·16 Bitwerte (einschließlich Zufälligkeit) gewählt werden, wobei so oft wie notwendig neue Werte genommen werden. An einem weiteren Eingang 14 werden 128 Bits Klartext eingegeben. Weiterhin zeigt die Darstellung ein Block 16 zum Rotieren einiger Bits, einen Schlüssel 18 (key 1), ein Block 20 für eine Verschlüsselung/Entschlüsselung gemäß AES, ein erster EXOR-Glied 22 und ein zweites EXOR-Glied 24. An einem Ausgang 26 wird dann ein 128 Bits Geheimtext ausgegeben.
  • Es werden somit Ein- und Ausgänge einer Verschlüsselungsoperation durch bitweise EXOR-Verknüpfung maskiert. Dabei ist es auch möglich, für Eingang und Ausgang jeweils unterschiedliche Masken zu erzeugen und verwenden.
  • 3 zeigt eine ähnliche Anordnung wie 2, wobei in diesem Fall eine Maske 30 mit dem geheimen Schlüssel 18 verknüpft wird.
  • Der in den Zustandsautomaten verwendete Bitgenerator basiert auf dem Non-Linear Multiple Input Shift-Register (NLMISR), das Polynome x4 + x3 + 1 und x4 + x + 1 verwendet. Die Zustandsübergänge sind in Tabelle 1 gegeben. Dabei bezeichnet xi einen Zustand des NLMISR, i(k) das NLMISR-Eingabebit und y die Eingabe, die verwendet wird, um zwischen den Polynomen umzuschalten.
    Figure 00100001
    Tabelle 1
  • Ein 4 Bit NLMISR ist in 4 dargestellt. In Abhängigkeit der Eingabe y wird das Polynom x4 + x3 + 1 oder x4 + x + 1 ausgewählt. Es werden somit sechzehn NLMISR-Instanzen kombiniert, um ein Modul zu bilden, das in 6 dargestellt ist.
  • In 5 sind Zustandsübergänge der verwendeten Zustandsautomaten dargestellt. Ein durchgezogener Pfeil zeigt einen Übergang für i(2) = 0, wobei in diesem Fall auch ein direkter Übergang diagonal nach rechts unten möglich ist, wie durch den Pfeil 180 rechts angedeutet ist. Ein gestrichelter Pfeil steht für i(2) = 1, wobei i(0) = i(1) = i(3) = 0.
  • In 6 ist ein vollständiger Satz von Zustandsautomaten, die ein Modul 200 bilden, dargestellt. Dieses Modul hat eine 4-Bit-Eingabe ri(3:0), vier Umschaltwerte y(i) und eine 64 Bit Ausgabe q. Die Bits von q werden durch die Flipflops der NLMISR Schaltkreise getrieben. Das Modul 200 kann eine der Anordnungen 104, 106, 108 oder 110 aus 1 sein.
  • 7 zeigt die Eingangsstufe des vorgeschlagenen Bitgenerators.
  • Um eine Kompensation verschiedener Eingaben zu vermeiden, wird ein Zähler 300 in der Eingangsstufe verwendet. Zur Vermeidung einer konstanten Eingabe wird ein Generator 302 für eine Ungerade-Parität in die Eingangsstufe eingefügt. Dieser Generator 302 berechnet den Ungerade-Parität-Vektor p(3:0) für bspw. 5 aufeinanderfolgende eingegebene 4-Tupel di(3:0), ... di+3(3:0). Der Paritätsvektor p(3:0) wird dann als Eingabe für die Funktion g 304 verwendet.
  • Wenn d'(3:0) eine 4-Bit-Eingabe für die Funktion g bezeichnet, dann wird der Wert y(i) für das polynomische Umschalten der NLMISR-Instanzen der Instanz i entsprechend Tabelle 2 berechnet.
  • Tabelle 2 zeigt die Umschaltbits.
    Bit Ausdruck
    y(0) d'(1) ⊕ d'(2) ⊕ d'(3)
    y(1) d'(0) ⊕ d'(2) ⊕ d'(3)
    y(2) d'(0) ⊕ d'(1) ⊕ d'(3)
    y(3) d'(0) ⊕ d'(1) ⊕ d'(2)
    Tabelle 2
  • In Tabelle 3 ist die Funktion g beschrieben.
  • Figure 00120001
    Tabelle 3
  • Tabelle 4 zeigt, wie Ausgabebits mit einem EXOR verknüpft werden. Dabei sind C0(63:0) die Ausgänge der Anordnung 104, C1(63:0) die Ausgänge der Anordnung 106 usw.
    Bit Ausdruck
    m(16i + 0) C0(8i + 0) ⊕ C2(8i + 0)
    m(16i + 1) C0(8i + 1) ⊕ C2(8i + 4)
    m(16i + 2) C0(8i + 2) ⊕ C3(8i + 0)
    m(16i + 3) C0(8i + 3) ⊕ C3(8i + 4)
    m(16i + 4) C0(8i + 4) ⊕ C2(8i + 1)
    m(16i + 5) C0(8i + 5) ⊕ C2(8i + 5)
    m(16i + 6) C0(8i + 6) ⊕ C3(8i + 1)
    m(16i + 7) C0(8i + 7) ⊕ C3(8i + 5)
    m(16i + 8) C1(8i + 0) ⊕ C2(8i + 2)
    m(16i + 9) C1(8i + 1) ⊕ C2(8i + 6)
    m(16i + 10) C1(8i + 2) ⊕ C3(8i + 2)
    m(16i + 11) C1(8i + 3) ⊕ C3(8i + 6)
    m(16i + 12) C1(8i + 4) ⊕ C2(8i + 3)
    m(16i + 13) C1(8i + 5) ⊕ C2(8i + 7)
    m(16i + 14) C1(8i + 6) ⊕ C3(8i + 3)
    m(16i + 15) C1(8i + 7) ⊕ C3(8i + 7)
    Tabelle 4
  • Tabelle 5 zeigt, wie Rotationswerte z(0) bis z(3) berechnet werden. Dabei werden alle Operationen mod16 gerechnet.
    c für c = 0, 4, 8, 12 für c2 = 1, 5, 9, 13 für c = 2, 6, 10, 14 für c = 3, 7, 11, 15 Bedingung y(i)
    z0 z0 + 1 z0 + 2 z0 + 4 z0 + 8 für y(0) = 1
    z1 z1 + 2 z1 + 4 z1 + 8 z1 + 1 für y(1) = 1
    z2 z2 + 8 z2 + 1 z2 + 2 z2 + 4 für y(2) = 1
    z3 z3 + 4 z3 + 8 z3 + 1 z3 + 2 für y(3) = 1
    Tabelle 5
  • 8 zeigt die Erzeugung und Einfügung der Paritätsbits. Die Darstellung zeigt einen 5 Bit Zähler 400, ein erstes Flipflop 402, ein zweites Flipflop 404, ein drittes Flipflop 406 und ein viertes Flipflop 408.
  • Um die Nichtlinearität des NLMISR zu unterstützen, wird für alle 5 Eingabebits eine Paritätsbit für jedes Eingabesignalerzeugt. Für die Eingaben d0 410, d1 412, d2 414 und d3 416 wird ein Ungerade-Paritätsbit erzeugt. Die vier Paritäten (p0, p1, p2, p3) werden in den Eingabestrom jeweils zwischen den 5. und 6. Eingabevektor, zwischen den 10. und 11. Eingabevektor und zwischen den 15. und 16. Eingabevektor (d(0), d(1), d(2), d(3)) eingesetzt (siehe Tabelle 6). 8 verdeutlicht, wie die Parität erzeugt und eingesetzt bzw. eingefügt werden kann.
  • Bei der Bereitstellung von Eingabesignalen für die Maskenerzeugung wird angenommen, dass alle 32 Eingabebits eine unterschiedliche Bedeutung haben. Die ersten 32 Bits in dem Register DMASK_IN_0 werden als ein zufälliger Wert d1 betrachtet, während der Inhalt des Eingaberegisters DMASK_IN_1 als ein zufälliger Wert d2 angenommen wird, wie nachfolgend gezeigt ist. d1 = d1(31:0) = d131 ... d10 = IN0(31:0) d2 = d2(31:0) = d231 ... d20 = IN1(31:0)
  • Die Bedeutung des Eingabewerts kann in Abhängigkeit der verwendeten Funktion variieren.
  • Für die Konstruktion aller Zustandsautomaten werden die Eingaben i0, i1, i2 und i3 in 4 durch die modifizierten Eingänge d'(0), d'(1), d'(2), d'(3) mit den eingefügten Ungerade-Paritäten nach jeweils fünf Eingabewerten ersetzt. Siehe hierzu Tabelle 6.
    Figure 00140001
    Tabelle 6
  • Um jedes Maskenbit im Mittel von möglichst vielen Bits des Initialzustands einer Anordnung 200 abhängig zu machen, wird eine Rotation der Zustände innerhalb einer Anordnung vorgesehen.
  • Für diese Rotation ist jedoch auf eine Besonderheit zu achten: Auch wenn die Anzahl der Einsen und Nullen in einer NLMSIR-Struktur definitionsgemäß immer gleich ist, hängt der Stromverbrauch bei der Verschiebung oder Rotation von der Verteilung der Bits ab. Hat man beispielsweise 32 Nullen und 32 Einsen nacheinander, so ist der Stromverbrauch anders, als wenn sich Nullen und Einsen immer abwechseln. Es spielt hier das Hamming-Distance-Problem eine Rolle. Ein Angreifer könnte diese Information ausnutzen.
  • Deshalb muss bei einer Verschiebung oder Rotation immer erst der vorherige Zustand zurückgesetzt werden, bevor der neue Wert beschrieben wird. Aus diesem Grunde wird eine Verschiebeoperation immer in 4 Takten durchgeführt. Jedes Flip-Flop der Zustandsautomaten NLMISR wird dazu aus zwei rücksetzbaren Latches aufgebaut (Bestandteil einer Standard-Library). Die zwei Latches werden nacheinander angesteuert: zuerst wird das Master-Latch zurückgesetzt (RM), danach wird der Eingangswert darin abgespeichert (CM). Danach wird der Slave zurückgesetzt und anschließend der Wert vom Master in den Slave übernommen. Da jeweils 4 Takte benötigt werden, wird vorgeschlagen, die 4 Bits eines Zustandsautomaten NLMISR bei der Rotation parallel zu übertragen.
  • Mit 16 Verschiebeoperationen a 4 Takte wäre der Ausgangszustand wieder erreicht. Die 4 Steuersignale sollten für alle NLMISR gleichzeitig schalten. Man kann diese Signale zentral bereitstellen (und diese dann wie Taktsignale behandeln) oder sie auch vor Ort aus dem Taktsignal generieren.
  • Im letzteren Fall muss nur das Taktsignal synchron anliegen. Während der Rotation sind alle nach extern zu den Verknüpfungselementen gehenden Ausgänge abzuschalten (z. B. auf 0 zu setzen durch Verknüpfung mit einem UND oder NOR).
  • Wenn die Bildung des Maskierungsvektors beispielsweise in Portionen zu 16 Bits erfolgt, ist darauf zu achten, dass alle nicht benutzten Ausgänge der NLMISR-Struktur die gleiche Last treiben müssen wie die aktiven Ausgänge: D. h., es sind geeignete Gatter und Leitungen oder auch einzelne Transitoren oder andere Kapazitäten an die nicht benutzten Ausgänge zu legen.
  • In der Regel sind die Ausgänge der XORs nicht mehr als kritisch im Sinne von angreifbar anzusehen. Ein Angreifer müsste die Hypothesen für alle benutzten Anfangszustände aufstellen. Da ein Maskierungsbit m(i) durch die vorgeschlagene Rotation im Mittel von allen Bits des geheimen Anfangszustands abhängt, hat wegen der hohen Anzahl von notwendigen Hypothesen ein Angreifer keine Chance. Falls dieser Fall nicht zutreffend wäre, könnte man durch gleichartige XNOR-Elemente immer das komplementere Bit zu jedem Maskenbit erzeugen und die Bits gemeinsam weiterverarbeiten.
  • Eine geeignete Art zur Umsetzung der Erfindung sieht vor, alle Zustandsautomaten als reiterierte Layoutstrukturen zu implementieren. Alle Eingabe- und Steuersignale sollten die Zustandsautomaten zum selben Zeitpunkt erreichen. Alle Ausgaben sollten die gleiche Last haben. Während der Rotation und der Berechnungsvorgänge sollten die Ausgaben null sein.
  • Wenn bspw. ein Zustandsautomat eine verzögerte Eingabe hätte, könnte ein Angreifer unter Verwendung einer DPA herausfinden, welche Zustände in diesem Zustandsautomat während des Erzeugungsprozesses eingenommen wurden, wenn die Eingabesignale angenommen wurden. Der gegenwärtige Zustand und damit auch der Anfangszustand könnten mit einem Angriff somit ermittelt werden.
  • Dieselben Überlegungen treffen auch auf die Eingabesignale und das Umschalten der verbundenen kombinatorischen Schaltkreise zu. Es sind zwei kritische Prozessschritte zu beachten, nämlich wenn die Rotation durchgeführt wird und wenn die Ausgaben aktiviert werden. Für beide Schritte ist ein synchrones Umschalten notwendig, um einen erfolgreichen Angriff zu vermeiden. Die Ausgabe muss nur dann getrieben werden, wenn die Zustandsautomaten stabil sind und synchron geschaltet werden.
  • Daher ist ein exaktes Routing des Takts für alle Komponenten unumgänglich. Wenn zusätzlich die Eingabesignalverzögerung für einen Angreifer nicht zu unterscheiden ist, so sollten reiterierte Layoutzellen nicht notwendig sein.
  • 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 6510518 B1 [0007]
    • US 6327661 B1 [0008]
  • Zitierte Nicht-Patentliteratur
    • Mangard, Oswald und Popp in ”Power Analysis Attacks”, Springer 2007 [0004]

Claims (10)

  1. Verfahren zum Generieren eines Bitvektors (130), bei dem mindestens zwei Anordnungen (104, 106, 108, 110) von jeweils gleich aufgebauten Zustandsautomaten (ZA) verwendet werden, denen eingangsseitig ein Eingangssignal (102) zugeführt wird und die in Abhängigkeit Ihres Zustands jeweils ein Ausgangssignal erzeugen, wobei jeder Zustandsautomat (ZA) stets einen anderen Zustand aufweist als die anderen Zustandsautomaten (ZA) einer Anordnung (104, 106, 108, 110), wobei der Bitvektor (130) durch eine lineare Verknüpfung (122) der Ausgangssignale der Zustandsautomaten (ZA) von jeweils verschiedenen Anordnungen (104, 106, 108, 110) generiert wird.
  2. Verfahren nach Anspruch 1, bei dem eine Rotation der Zustände der Zustandsautomaten (ZA) vorgenommen wird.
  3. Verfahren nach Anspruch 2, bei dem der Stromverbrauch bei der Rotation durch Löschen und nachfolgendes Beschreiben unabhängig von den vorangehenden und nachfolgenden Zuständen ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem den Zustandsautomaten (ZA) jeweils einer Anordnung (104, 106, 108, 110) dasselbe Eingangssignal (102) zugeführt wird.
  5. Verfahren nach Anspruch 4, bei dem ein erster Zählerwert zugeführt wird und verschiedene Anordnungen (104, 106, 108, 110) die Eingangs- und Zählersignale in verschiedener Art verarbeiten.
  6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem aus den Eingangssignalen (102) Umschaltsignale gebildet werden und die Zustandsautomaten in Abhängigkeit von diesem Umschaltsignal einen anderen Folgezustand erreichen können, wobei die Umschaltsignale für verschiedene Anordnungen unterschiedlich gebildet werden können.
  7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem der Bitvektor (130) aus der Verknüpfung verschiedener Ausgänge verschiedener Zustandsautomaten (ZA) verschiedener Anordnungen (104, 106, 108, 110) gebildet wird.
  8. Schaltungsanordnung zum Generieren eines Bitvektors (130), die mindestens zwei Anordnungen (104, 106, 108, 110) von jeweils gleich aufgebauten Zustandsautomaten (ZA) aufweist, denen eingangsseitig jeweils ein gleiches oder unterschiedliches Eingangssignal (102) zugeführt wird und die in Abhängigkeit Ihres Zustands jeweils ein Ausgangssignal erzeugen, wobei jeder Zustandsautomat (ZA) in einer Anordnung (104, 106, 108, 110) stets einen anderen Zustand aufweist als die anderen Zustandsautomaten (ZA), wobei ein lineares Verknüpfungselement (120) zur Verknüpfung der Ausgangssignale der Zustandsautomaten (ZA) von vorzugsweise verschiedenen Anordnungen zur Generierung des Bitvektors (130) vorgesehen ist.
  9. Schaltungsanordnung nach Anspruch 7 oder 8, bei der die Speicherelemente der Zustandsautomaten (ZA) aus zwei Teilen (Master/Slave) aufgebaut sind, die unabhängig voneinander löschbar und beschreibbar sind.
  10. Schaltungsanordnung nach einem der Ansprüche 7 bis 9, die derart ausgestaltet ist, dass die Ausgänge aller Zustandsautomaten (ZA), die nicht mit einem Verknüpfungselement verbunden sind, mit einem Lastelement verbunden sind.
DE102010029735A 2010-06-07 2010-06-07 Verfahren zum Generieren eines Bitvektors Withdrawn DE102010029735A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102010029735A DE102010029735A1 (de) 2010-06-07 2010-06-07 Verfahren zum Generieren eines Bitvektors
US13/099,901 US9325494B2 (en) 2010-06-07 2011-05-03 Method for generating a bit vector
CN201110148950.5A CN102271038B (zh) 2010-06-07 2011-06-03 用于生成比特向量的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010029735A DE102010029735A1 (de) 2010-06-07 2010-06-07 Verfahren zum Generieren eines Bitvektors

Publications (1)

Publication Number Publication Date
DE102010029735A1 true DE102010029735A1 (de) 2011-12-08

Family

ID=44973899

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010029735A Withdrawn DE102010029735A1 (de) 2010-06-07 2010-06-07 Verfahren zum Generieren eines Bitvektors

Country Status (3)

Country Link
US (1) US9325494B2 (de)
CN (1) CN102271038B (de)
DE (1) DE102010029735A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013205168A1 (de) * 2013-03-22 2014-09-25 Robert Bosch Gmbh Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
US9836277B2 (en) * 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
EP3056706A1 (de) 2015-02-16 2016-08-17 Honeywell International Inc. Ansatz zur nachbehandlungssystemmodellierung und modellidentifizierung
EP3125052B1 (de) 2015-07-31 2020-09-02 Garrett Transportation I Inc. Quadratischer programmlöser für mpc mit variabler anordnung
US10272779B2 (en) 2015-08-05 2019-04-30 Garrett Transportation I Inc. System and approach for dynamic vehicle speed optimization
US10124750B2 (en) 2016-04-26 2018-11-13 Honeywell International Inc. Vehicle security module system
US10728249B2 (en) 2016-04-26 2020-07-28 Garrett Transporation I Inc. Approach for securing a vehicle access port
US10036338B2 (en) 2016-04-26 2018-07-31 Honeywell International Inc. Condition-based powertrain control system
CN106548806B (zh) * 2016-10-13 2019-05-24 宁波大学 一种能够防御dpa攻击的移位寄存器
WO2018101918A1 (en) 2016-11-29 2018-06-07 Honeywell International Inc. An inferential flow sensor
US11057213B2 (en) 2017-10-13 2021-07-06 Garrett Transportation I, Inc. Authentication system for electronic control unit on a bus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327661B1 (en) 1998-06-03 2001-12-04 Cryptography Research, Inc. Using unpredictable information to minimize leakage from smartcards and other cryptosystems
US6510518B1 (en) 1998-06-03 2003-01-21 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimizational in smartcards and other cryptosystems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963984A (en) * 1994-11-08 1999-10-05 National Semiconductor Corporation Address translation unit employing programmable page size
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
DE102005042339B4 (de) 2005-09-06 2007-08-16 Siemens Ag Verfahren zum sicheren Ver- oder Entschlüsseln einer Nachricht
JP4453697B2 (ja) 2006-12-15 2010-04-21 ソニー株式会社 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327661B1 (en) 1998-06-03 2001-12-04 Cryptography Research, Inc. Using unpredictable information to minimize leakage from smartcards and other cryptosystems
US6510518B1 (en) 1998-06-03 2003-01-21 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimizational in smartcards and other cryptosystems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Mangard, Oswald und Popp in "Power Analysis Attacks", Springer 2007

Also Published As

Publication number Publication date
CN102271038B (zh) 2017-04-19
US20110302426A1 (en) 2011-12-08
CN102271038A (zh) 2011-12-07
US9325494B2 (en) 2016-04-26

Similar Documents

Publication Publication Date Title
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102011078642A1 (de) Verfahren zum Prüfen eines m aus n Codes
DE10201449C1 (de) Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE102005056814B4 (de) Kryptografiesystem und Datenverschlüsselungsverfahren
DE10357782B3 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator
DE102015110431A1 (de) Kryptografischer Prozessor, Verfahren zum Implementieren eines kryptografischen Prozessors und Schlüsselgenerierungsschaltung
EP2240848B1 (de) Schaltung und verfahren zur generierung einer echten, schaltungsspezifischen und zeitinvarianten zufallszahl
DE102004062825B4 (de) Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit
DE102018113475A1 (de) Rechenwerk zum rechnen mit maskierten daten
DE102013213316A1 (de) Zufallsbitstromgenerator mit verbesserter rückwärts gerichteter Gemeinhaltung
DE102013213354A1 (de) Zufallsbitstromgenerator mit garantierter mindestperiode
DE102016120558A1 (de) Datenverarbeitungsvorrichtung und -verfahren für kryptographische verarbeitung von daten
EP2446580B1 (de) Vorrichtung und verfahren zur bildung einer signatur
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE112019001438T5 (de) Kryptographisches asic mit kombinierten funktionen
WO2013004490A1 (de) Verfahren zum erzeugen einer zufälligen ausgangsbitfolge
DE102019112583A1 (de) Integrierte elektronische schaltung
WO2013004494A1 (de) Verfahren zum sicheren prüfen eines codes
DE102014200309A1 (de) Verfahren zum Überprüfen einer Ausgabe
DE102012210361A1 (de) Verfahren zum Überwachen einer Ausgabe eines Zufallsgenerators
WO2005032039A1 (de) Schaltungsanordnung und verfahren zur verarbeitung eines dual-rail-signals
DE102013205168A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
DE102014200164A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102012219205A1 (de) Vorrichtung und Verfahren zur Ausführung eines kryptographischen Verfahrens

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee