DE102014001647A1 - Operation basierend auf zwei Operanden - Google Patents

Operation basierend auf zwei Operanden Download PDF

Info

Publication number
DE102014001647A1
DE102014001647A1 DE102014001647.1A DE102014001647A DE102014001647A1 DE 102014001647 A1 DE102014001647 A1 DE 102014001647A1 DE 102014001647 A DE102014001647 A DE 102014001647A DE 102014001647 A1 DE102014001647 A1 DE 102014001647A1
Authority
DE
Germany
Prior art keywords
bits
operands
bit
carry
steps
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.)
Pending
Application number
DE102014001647.1A
Other languages
English (en)
Inventor
Stefan Heiss
Markus Rau
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102014001647.1A priority Critical patent/DE102014001647A1/de
Priority to US14/614,529 priority patent/US10055194B2/en
Publication of DE102014001647A1 publication Critical patent/DE102014001647A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Es wird ein Verfahren zur Durchführung einer Operation basierend auf mindestens zwei Operanden vorgeschlagen, bei dem Schritte der Operation zeitlich randomisiert durchgeführt werden. Weiterhin werden entsprechend eine Vorrichtung, ein Computerprogrammprodukt sowie ein computerlesbares Speichermedium angegeben.

Description

  • Die Erfindung betrifft ein Verfahren und eine entsprechende Vorrichtung zur Durchführung einer Operation basierend auf mindestens zwei Operanden. Weiterhin werden hierfür ein Computerprogrammprodukt sowie ein computerlesbares Speichermedium vorgeschlagen.
  • Es sind unterschiedliche Angriffe (auch bezeichnet als Attacken) bekannt, um Operationen auszuspähen oder auch auf diese auf unerwünschte Weise einzuwirken. Beispiele hierfür stellen sogenannte Seitenkanalangriffe (vergleiche z. B. http://de.wikipedia.org/wiki/Seitenkanalattacke) dar, die eine Implementierung eines Kryptosystems auf einem Gerät oder in einer Software ausnutzen.
  • Bei einer Operation (auch bezeichnet als Verknüpfung), z. B. einer Addition von zwei Operanden A und B, können beispielsweise die folgenden Fälle unterschieden werden:
    • Fall A) Keiner der beiden Operanden A und B ist einem Angreifer bekannt, die Operanden A und B existieren nur innerhalb des Systems.
    • Fall B) Einer der beiden Operanden ist dem Angreifer bekannt, da er z. B. über ein von außen zugängliches Kommunikationsprotokoll übermittelt wird.
    • Fall C) Die Operation wird auf einer unsicheren oder teilweise unsicheren Hardware-Plattform durchgeführt.
  • Bestehende Lösungen weisen unterschiedliche sicherheitsrelevante Lücken auf, so dass die Operation im Ergebnis nicht sicher vor Angriffen Dritter ist. Ein Problem sind insbesondere nicht-invasive Angriffe, die keine Rückschlüsse zulassen darauf, ob ein Angriff erfolgt ist bzw. ob ein solcher Angriff erfolgreich war.
  • Für den Fall A) könnten sogenannte Template-Angriffe in der Lage sein, auch die Operation erfolgreich anzugreifen, obwohl die beiden Operanden nicht außen bekannt sind. So besteht ein Nachteil darin, dass der Angriff gezielt die Operation selbst beeinträchtigen könnte, wenn Abarbeitungsmuster der Operation erkennbar und somit ggf. manipulierbar sind.
  • Für den Fall B) sind Seitenkanalangriffe in Form von Template-Angriffen eine mögliche Gefährdung dar.
  • Für den Fall C) kommen zusätzlich zu den für die Fälle A) und B) beschriebenen Nachteilen noch unterschiedliche Angriffsrisiken hinzu, die auf die Hardware gerichtet sind. Ist beispielsweise eine Hardware anfällig für ”Probing-Angriffe”, so besteht die Möglichkeit, dass der Angreifer auch die Operation mitverfolgen kann. Probing-Angriff ist insbesondere ein invasiver Angriff, bei dem ein Chip/Baustein geöffnet wird um (geheime) Parameter auszulesen. Dies kann beispielsweise mit einem oder mehreren Tastköpfen (englisch: ”Probe”) geschehen. Mittels der Tastköpfe werden physikalische Größen, z. B. Spannungen, gemessen.
  • Somit könnte die Hardware im Hinblick auf bestimmte Leitungen gezielt angezapft werden, z. B. Leitungen, die ein Übertragbit oder eine Seitenkanalinformation übermitteln. Im Fall C) ist es besonders von Nachteil, dass ggf. Schwachen der Hardware nicht immer von vornherein bekannt sind und ggf. erst während einer Zertifizierung oder sogar im Anschluss daran in Erscheinung treten.
  • Die Aufgabe der Erfindung besteht darin, die vorstehend genannten Nachteile zu vermeiden und insbesondere eine Lösung zu schaffen, bei der die Durchführung einer Operation, z. B. einer Addition zweier Operanden, eine erhöhte Sicherheit gegenüber Angriffen aufweist.
  • Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Zur Lösung der Aufgabe wird ein Verfahren zur Durchführung einer Operation basierend auf mindestens zwei Operanden vorgeschlagen, bei dem Schritte der Operation zeitlich randomisiert durchgeführt werden.
  • Zeitlich randomisiert bedeutet hierbei insbesondere, dass die Schritte der Operation in ihrer Abfolge zufällig oder pseudozufällig (auch: ”verwürfelt”) durchgeführt werden. Dies gilt insbesondere für zumindest einen Teil der Schritte der Operation. Vorteilhaft werden die Schritte zeitlich randomisiert durchgeführt, die in Bezug auf die Operation parallel ablaufen können. Hierbei ist es von Vorteil, dass ein Angreifer selbst bei Beobachtung der Schritte der Operation nicht ohne weiteres erkennen kann, in welcher Reihenfolge welche Schritte der Operation wann durchgeführt werden.
  • Es sei erwähnt, dass ”zeitlich randomisiert” auf einem tatsächlich zufälligen oder auf einem pseudozufälligen Ereignis beruhen kann. Insbesondere ist es möglich, dass für die Randomisierung auch Ereignisse verwendet werden, die von einer Maschine, z. B. einem Prozessor oder einem Controller, generierbar oder auswertbar sind. Insbesondere kann auch ein deterministisches Ereignis ausgenutzt werden, um eine zeitliche Randomisierung im vorliegenden Sinne zu erreichen. Beispielsweise umfasst eine solche zeitliche Randomisierung auch eine Verwürfelung der Schritte der Operation, wobei die zeitliche Abfolge der Schritte einem zufälligen oder einem auf sonstige Art bestimmbaren Muster folgen kann. Beispielsweise kann hierfür ein Muster gewählt werden, dass geheim ist und/oder eine Vielzahl von unterschiedlichen Verwürfelungen ermöglicht.
  • Die vorgeschlagene Lösung weist insbesondere den Vorteil auf, dass Seitenkanalangriffe eine wesentlich geringere Wahrscheinlichkeit haben, erfolgreich zu sein. Dies stellt auch einen zusätzlichen Schutz bereit, wenn eine Hardware als verhältnismäßig sicher eingestuft wird. Weiterhin ist es ein Vorteil, dass durch die Randomisierung z. B. in Verbindung mit einer bestimmten Bitlänge mindestens eines Operanden ein erfolgreicher Template-Angriff zumindest deutlich erschwert wird.
  • Hierbei sei angemerkt, dass die Operation auf mindestens zwei Operanden basieren kann. Die vorgeschlagene Lösung ist entsprechend auf mehr als zwei Operanden, z. B. eine Verknüpfung von mehr als zwei Operanden, anwendbar.
  • Eine Weiterbildung ist es, dass Schritte der Operation zeitlich randomisiert durchgeführt werden, indem Zugriffe auf Teile der Operanden zeitlich randomisiert durchgeführt werden.
  • Bei einem Teil des Operanden kann es sich z. B. um einen bestimmten Abschnitt, der eine vorgegebene Anzahl von Bits umfasst, handeln. Beispielsweise kann der Teil des Operanden einem Wort (z. B. 16 Bit) des Operanden entsprechen. Der Operand wird somit abschnittsweise bearbeitet, wobei die Operationen auf diese Teile (Abschnitte) zufällig oder pseudozufällig durchgeführt werden.
  • Eine andere Weiterbildung ist es, dass jeder der Operanden eine Ganzzahl ist, die insbesondere eine Bitlänge von mehr als 128 Bit aufweist.
  • Insbesondere können beliebige Bitlängen, beispielsweise Bitlängen einer Potenz der Zahl zwei, z. B. 256 Bit, 512 Bit, 1024 Bit oder mehr vorgesehen sein.
  • Insbesondere ist es eine Weiterbildung, dass die Operation eine Addition ist, die auf einem (insbesondere parallelisierbaren) Carry-Look-Ahead-Addierer basiert.
  • Auch ist es eine Weiterbildung, dass Generate-Bits und Propagate-Bits des Carry-Look-Ahead-Addierers basierend auf einer binären Baumstruktur zumindest teilweise zeitlich randomisiert iterativ in Richtung der Wurzel der binären Baumstruktur bestimmt werden.
  • Damit reduzieren sich mit jeder Ebene der Baumstruktur die Iterationen, z. B. von 64 über 32, 16, 8, 4, 2 auf 1. Vorzugsweise werden alle Iterationen zeitlich randomisiert durchgeführt.
  • Ferner ist es eine Weiterbildung, dass Carry-Bits des Carry-Look-Ahead-Addierers basierend auf der binären Baumstruktur zumindest teilweise zeitlich randomisiert iterativ in Richtung von der Wurzel der binären Baumstruktur bestimmt werden.
  • So werden beispielsweise die Carry-Bits beginnend bei der tiefsten Ebene der Baumstruktur (der Wurzel) bis hin zur höchsten besetzten Ebene der Baumstruktur bestimmt. Gemäß dem vorstehend genannten Zahlenbeispiel verläuft die Zahl der Iterationen also von 1 über 2, 4, 8, 16, 32 zu 64.
  • Im Rahmen einer zusätzlichen Weiterbildung werden die Carry-Bits und die Operanden zeitlich randomisiert addiert.
  • Eine nächste Weiterbildung besteht darin, dass die Operation eine Subtraktion ist.
  • Eine Ausgestaltung ist es, dass die Operation eine Vergleichsoperation der beiden Operanden ist. Die Vergleichsoperation kann auch einen Vergleich zweier Speicherinhalte umfassen.
  • Eine alternative Ausführungsform besteht darin, dass die Schritte der Operation zumindest teilweise mit maskierten Daten durchgeführt werden.
  • Maskierte Daten sind hierbei insbesondere verschlüsselte Daten. So können beispielsweise einzelne Bits der Operation, z. B. Carry-Bits, Generate-Bits und/oder Propagate Bits mittels einer sogenannten Maske (also z. B. einem geheimen Schlüssel) symmetrisch verschlüsselt werden. Zur Verschlüsselung kann eine Exklusiv-Oder-Funktion (XOR-Funktion) genutzt werden: Damit kann ein Datum mittels der Maske in ein maskiertes Datum verschlüsselt werden; entsprechend kann das maskierte Datum mittels der Maske in das Datum entschlüsselt werden; es gilt somit:
    Datum → maskiertes Datum → Datum
    wobei der Pfeil die Verknüpfung mit der XOR-Funktion unter Verwendung der Maske andeutet.
  • Vorzugsweise wird eine Maskierung z. B. am Anfang der Operation verwendet, die bis zum Ende der Operation reicht. Somit können Angriffe auf die Operation nochmals erschwert werden, wenn während der Operation zumindest ein Teil der Daten stets maskiert ist.
  • Eine nächste Ausgestaltung ist es, dass die maskierten Daten mindestens ein Verarbeitungsbit der Operation umfassen.
  • Auch ist es eine Ausgestaltung, dass das Verarbeitungsbit eines der folgenden Bits ist:
    • – ein Carry-Bit,
    • – ein Propagate-Bit,
    • – ein Generate-Bit.
  • Eine Weiterbildung besteht darin, dass die Operanden maskiert werden und das Ergebnis der Operation am Ende der Operation demaskiert wird.
  • Eine zusätzliche Ausgestaltung ist es, dass die Operanden mit einer gemeinsamen Maske oder mit zwei unterschiedlichen Masken maskiert werden.
  • Die vorstehend genannte Aufgabe wird auch gelöst durch eine Vorrichtung umfassend eine Verarbeitungseinheit, die eingerichtet ist zur Durchführung einer Operation basierend auf zwei Operanden, wobei Schritte der Operation zeitlich randomisiert durchführbar sind.
  • Die hier genannte Verarbeitungseinheit kann insbesondere als eine Prozessoreinheit und/oder eine zumindest teilweise festverdrahtete oder logische Schaltungsanordnung ausgeführt sein, die beispielsweise derart eingerichtet ist, dass das Verfahren wie hierin beschrieben durchführbar ist. Besagte Verarbeitungseinheit kann jede Art von Prozessor oder Rechner oder Computer mit entsprechend notwendiger Peripherie (Speicher, Input/Output-Schnittstellen, Ein-Ausgabe-Geräte, etc.) sein oder umfassen.
  • Die hier vorgestellte Lösung umfasst ferner ein Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, Schritte des hier beschriebenen Verfahrens durchzuführen.
  • Weiterhin wird das oben genannte Problem gelöst mittels eines computerlesbaren Speichermediums, z. B. eines beliebigen Speichers, umfassend von einem Computer ausführbare Anweisungen (z. B. in Form von Programmcode), die dazu geeignet sind, dass der Computer Schritte des hier beschriebenen Verfahrens durchführt.
  • Die vorstehenden Erläuterungen betreffend das Verfahren gelten für die jeweilige Vorrichtung oder Anordnung bzw. die anderen Anspruchskategorien entsprechend. Beispielsweise kann die Vorrichtung in einer Komponente oder verteilt in mehreren Komponenten ausgeführt sein.
  • Auch wird die oben genannte Aufgabe gelöst mittels eines Systems umfassend mindestens eine der hier beschriebenen Vorrichtungen.
  • Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden schematischen Beschreibung von Ausführungsbeispielen, das im Zusammenhang mit der Zeichnung näher erläutert wird. Dabei können zur Übersichtlichkeit gleiche oder gleichwirkende Elemente mit gleichen Bezugszeichen versehen sein.
  • Es zeigt:
  • 1 ein schematisches Diagramm mit Schritten zur Erhöhung der Sicherheit einer auf zwei Operanden basierenden Operation gegenüber beispielsweise Seitenkanalangriffen.
  • Ziel der Erfindung ist es, insbesondere eine gegen Seitenkanalangriffe resistente (= gehärtete) Implementierung einer arithmetischen Addition zweier Operanden A und B bereitzustellen, d. h. R = A + B, wobei einer der beiden Operanden (Langzahlen) A oder B eine Länge von z. B. mindestens 512 Bit aufweisen soll. Damit ist auch das Ergebnis R der Addition entsprechend mindestens 512 Bit lang.
  • Es wird vorgeschlagen, die Zugriffe auf Teile der Operanden zu randomisieren. Beispielsweise kann eine zeitliche Randomisierung der Zugriffe auf Teilwörter der Langzahloperanden erfolgen.
  • Ab einer bestimmten Bitlänge, z. B. von mindestens 512 Bit, kann in Verbindung mit der zeitlichen Randomisierung ein Risiko für einen erfolgreichen DPA Template-Angriff (DPA: ”Differential Power Analysis”, auf Deutsch: differentielle Leistungsanalyse) oder einen erfolgreichen Probing-Angriff deutlich reduziert werden. Dies liegt an der hohen Anzahl von Kombinationsmöglichkeiten: Beispielsweise entspricht bei einer 16-bit Architektur eine 512-bit Zahl 32 16-bit Wörtern, was 32! = 2,6E + 35 verschiedene Kombinationsmöglichkeiten bedingt.
  • Hierbei sei angemerkt, dass die vorliegende Randomisierung auf (mindestens) einem zufälligen oder auf einem pseudozufälligen Ereignis beruhen kann. Insbesondere ist es möglich, dass für die Randomisierung auch Ereignisse verwendet werden, die von einer Maschine, z. B. einem Prozessor oder einem Controller, generierbar oder auswertbar sind.
  • Die hier vorgestellte Lösung erhöht die Sicherheit einer Operation, die insbesondere auf zwei Operanden basiert. Beispiele für solche Operationen sind: Addition, Subtraktion, Vergleichsoperation (z. B.: Sind beide Operanden identisch? Ist der erste Operand kleiner/größer als der zweite Operand?). Insbesondere kann es sich bei den Operanden um lange ganzzahlige Operanden handeln, die z. B. eine Bitlänge von mehr als 128 Bit, 256 Bit, 512 Bit, etc. haben. Grundsätzlich ist die Bitlänge nicht auf einer Potenz der Zahl zwei beschränkt, es sind auch Bitlängen von z. B. 257 oder 258 Bit möglich.
  • Ein bekannter ”Carry-Look-Ahead Addierer” (auch bezeichnet als CLA) ist beispielsweise unter http://www.iti.fh-flensburg.de/lang/algorithmen/arithmetik/cla.htm beschrieben.
  • Es wird insbesondere vorgeschlagen, den bekannten ”Carry-Look-Ahead Addierer” so zu erweitern, dass zumindest ein Teil der Abarbeitungsschritte randomisiert ist, also zufällig oder pseudozufällig erfolgt. Somit ist es nicht ohne weiteres möglich, anhand der zeitlichen Abfolge der Verarbeitungsschritte auf ein Muster im Stromprofil der durchzuführenden Operationen rückschließen zu können. Wie erwähnt wird die Erkennung eines solchen Musters durch die Qualität der Randomisierung und der Länge der Operanden erschwert. Somit wird durch die Randomisierung erreicht, dass zu keinem Zeitpunkt der Berechnung bekannt ist, welcher Wortindex der zu schützenden Operanden und des Ergebnisses aktuell verarbeitet wird.
  • Der CLA ist für eine zeitliche Randomisierung gut geeignet, da es sich um ein paralleles Verfahren handelt, bei dem die Carry Berechnung von der eigentlichen Addition getrennt erfolgt.
  • In einer Weiterbildung wird die zeitliche Randomisierung des CLA Addierers zusätzlich kombiniert mit einer Maskierung der Generate-Bits, Propagate-Bits und/oder Carry-Bits.
  • Nachfolgend wird eine beispielhafte Implementierung als ausführbarer Code in der Programmiersprache ARIBAS als Funktion ”RandomCarryLookAheadAddition” vorgestellt. Weiterhin wird eine alternative Implementierung mit Maskierung als Funktion ”RandomCarryLookAheadAddition_FullMasked” angegeben. Dabei können sowohl Generate-Bits, Propagate-Bits als auch die einzelnen Carry-Bits vollständig durch einen binären Baum randomisiert und maskiert werden.
  • Weiterhin ist in einer Funktion ”RandomCarryLookAheadSubtraction” ein Beispiel angegeben für eine Subtraktion (ohne Maskierung). Entsprechend könnte auch eine andere Operation, z. B. ein Vergleich zwischen zwei Operanden A und B realisiert werden. Sowohl die Subtraktion als auch die beliebige andere Operation könnten mit Maskierung, wie sie für das Beispiel der Addition gezeigt ist, implementiert werden.
  • Ergänzend ist noch eine Funktion ”LongIntegerAddition_Alternative” gezeigt, die eine alternative randomisierte Lösung für die Addition der beiden Operanden A und B darstellt.
  • Beispielhafte Implementierungen
  • Der nachfolgende Programmcode ist in der Programmiersprache ARIBAS (siehe z. B. http://www.mathematik.uni-muenchen.de/~forster/sw/aribas.html) verfasst.
  • Zunächst wird ein Datentyp ”CLONG” definiert wie folgt:
    Figure DE102014001647A1_0002
  • Der Datentyp CLONG hat die Aufgabe, eine nicht negative Ganzzahl vorgegebener Länge zu modellieren. Die vorgegebene Länge kann z. B. mindestens 256 Bit betragen.
  • Es wird beispielhaft der folgende Parameter zur Emulation einer 16-Bit Plattform gewählt:
    Figure DE102014001647A1_0003
  • Weiterhin werden die folgenden Hilfsfunktionen definiert: Die Funktion ALLOCCLONG allokiert n Wörter für eine Instanz des Typs CLONG und belegt diese mit zufälligen Werten. Die Funktion GetWord liest das i-te Datenfeld aus einem CLONG Datentyp. Dabei entspricht der Index 0 dem niederwertigsten Wort (”Least Significant Word” oder LSW).
  • Figure DE102014001647A1_0004
  • Figure DE102014001647A1_0005
  • Nachfolgend wird die Hauptfunktion (”MAIN”) beschrieben. Es wird eine Summe R der beiden Operanden A und B berechnet. Die Berechnung wird durchgeführt, indem einzelne Schritte der Berechnung in einer zeitlich zufällig vertauschten Reihenfolge durchgeführt werden (auch bezeichnet als zeitliche Randomisierung). Hierdurch werden der Speicherzugriff auf die Operanden A und B sowie das Ergebnis R verwürfelt. Die beispielhafte Implementierung nutzt eine randomisierte Carry-Look-Ahead Addition basierend auf den folgenden Schritten:
    • (1) Löschen des Ergebnisdatenfelds vom Typ CLONG.
    • (2) Berechne erste Ebene Generate- und Propagate-Bits: Zeitlich randomisierte Berechnung der Generate-Bits und der Propagate-Bits der ersten Ebene, d. h. abhängig von word(A) und word(B) bei einem bestimmten Index i (der Begriff ”word” bezeichnet ein Wort, d. h. insbesondere eine Folge Bits, z. B. 16 Bits). Im vorliegenden Beispiel ist word(A) äquivalent zu GetWord(A, i) sowie word(B) äquivalent zu GetWord(B, i): – ein Generate-Bit wird erzeugt, falls word(A) + word(B) einen Überlauf ergbit; – ein Propagate-Bit wird erzeugt, falls word(A) XOR word(B) (XOR: exklusiv-oder-Verknüpfung) 0xFFFF oder falls word(A) + word(B) 0xFFFF ergibt.
    • (3) Berechne zweite Ebene und folgende Ebenen von Generate- und Propagate-Bits bzw. Berechnung der verbleibenden Ebenen von Generate-Bits und Propagate-Bits: Nachdem die erste Ebene der Generate-Bits und Propagate-Bits berechnet wurde, wird die nachfolgende Berechnung basierend auf einer binären Baumstruktur zeitlich randomisiert durchgeführt. Beispielsweise wird angenommen, dass die beiden Variablen CLONG A und B jeweils eine Langzahl mit 1024-Bit aufweisen. Dies entspricht auf einer 16-Bit-Plattform 1024/16 = 64 Wörter (ein Wort entspricht z. B. 16 Bit). Während die Berechnung der ersten Ebene 64 Generate-Bits und 64 Propagate-Bits erfordert, werden auf der zweiten Ebene noch jeweils 32 Bits, auf der dritten Ebene noch jeweils 16 Bits, usf. berechnet. Damit reduzieren sich die Iterationen von 64 über 32, 16, 8, 4, 2 auf 1. Alle Iterationen werden zeitlich randomisiert durchgeführt.
    • (4) Berechne Carry-Bits: Basierend auf den Generate-Bits und den Propagate-Bits folgt eine zeitlich randomisierte Berechnung der einzelnen Carry-Bits, beginnend bei der tiefsten Ebene bis zur ersten Ebene der Carry-Bits, d. h. die Iterationen verlaufen von 1 über 2, 4, 8, 16, 32 zu 64.
    • (5) Die Carry-Bits und die einzelnen Wörter werden addiert (d. h. die Carry-Bits werden auf die Summe von word(A) + word(B) addiert). Der letzte Block fügt das jeweilige Carry-Bit dem einzelnen Wort hinzu. Auch dies erfolgt in einer zeitlich randomisierten Abfolge.
  • Die Parameter A und B sind jeweils vom Typ CLONG und stellen die Operanden der Addition dar. Das Ergebnis wird im Parameter R gespeichert (ebenfalls vom Typ CLONG).
  • Figure DE102014001647A1_0006
  • Figure DE102014001647A1_0007
  • Figure DE102014001647A1_0008
  • Nachfolgend wird eine erweiterte Version vorgeschlagen, die die Generate-Bits und die Propagate-Bits jeweils mit einer Bitmaske (also einem Bitmuster) M maskiert, so dass diese nicht im Klartext sichtbar sind.
  • Beispielsweise wird für jedes Generate-Bit ein Maskenbit verwendet und für jedes Propagate-Bit wird ein Maskenbit verwendet. Damit hat jede Wort-Position ihr eigene 1-Bit Maske für jeweils Generate-Bit und Propagate-Bit.
  • Der Algorithmus berechnet maskierte Carry-Bits. Die jeweilige Maske setzt sich zusammen aus der Maske des Generate-Bits und des Propagate-Bits pro Wort-Position.
  • Somit wird sichergestellt, dass die Maskierung durch die vorstehend erläuterten Schritte (1) bis (5) durchgehend erfolgt.
  • Im Ergebnis soll eine UND-Operation unter Ausnutzung der vorstehend genannten Masken erfolgen. Insbesondere soll die Operation fortwährend – also bis zum Ende der Operation – maskiert sein. Mit anderen Worten kann so die Demaskierung erst am Ende der Operation erfolgen, was die Sicherheit vor Seitenkanalangriffen während der einzelnen Berechnungsschritte erhöht.
  • Bei den Operanden A und B handelt es sich um die ursprünglichen Werte vor der Maskierung und Res stellt das Ergebnis der binären UND-Verknüpfung („AND”-Verknüpfung) der Operanden A und B dar. Es gilt also: MRes = bit_and(MA, MB) mit MA = M XOR A und MB = M XOR B.
  • Es ergibt sich: MRes = M XOR Res = M XOR (A AND B) = = M XOR ((M XOR MA) AND (M XOR MB))
  • Diese Berechnung soll durchgeführt werden, ohne die beiden inneren Klammern auszurechnen, d. h. ohne zwischenzeitliche Demaskierung.
  • Um die zwischenzeitliche Demaskierung zu vermeiden wird nachfolgende Formel verwendet: MRes = (M AND MA) OR (M AND MB) OR (MA AND MB).
  • Die arithmetische Summe Sum = M + MA + MB beträgt 2 oder 3, falls MRes = 1 gilt. Die vorstehende Formel kann auch anhand der nachfolgenden Tabelle verifiziert werden.
    A B M MA MB MRes Sum Res
    0 0 0 0 0 0 0 0
    0 1 0 0 1 0 1 0
    1 0 0 1 0 0 1 0
    1 1 0 1 1 1 2 1
    0 0 1 1 1 1 3 0
    0 1 1 1 0 1 2 0
    1 0 1 0 1 1 2 0
    1 1 1 0 0 0 1 1
  • Bisher wurde davon ausgegangen, dass die Masken für A und B identisch sind. Nachfolgend wird dieser Ansatz erweitert auf voneinander unabhängige Masken M1 und M2 für A und B. Entsprechend folgt ein maskiertes Ergebnis MRes': MRes' = [(M1 XOR M2) AND (MA XOR M2)] OR [(M1 XOR M2) AND (MB XOR M1)] OR [(MA XOR M2) AND (MB XOR M1)] mit MA = A XOR M1 MB = B XOR M2 M' = M1 XOR M2 MA' = A XOR M' MB' = B XOR M' MRes = (M AND MA) OR (M AND MB) OR (MA AND MB) MRes' = (M' AND MA') OR (M' AND MB') OR (MA' AND MB') MRes' = ((M1 XOR M2) AND (A XOR M1 XOR M2)) OR ((M1 XOR M2) AND (B XOR M1 XOR M2)) OR ((A XOR M1 XOR M2) AND (B XOR M1 XOR M2))
  • Mit der folgenden Substitution MA = A XOR M1, MB = B XOR M2 ergibt sich MRes' = ((M1 XOR M2) AND (MA XOR M2)) OR ((M1 XOR M2) AND (MB XOR M1)) OR ((MA XOR M2) AND (MB XOR M1)) bzw. MRes' = Res XOR M1 XOR M2.
  • Die vorstehende Formel kann auch anhand der nachfolgenden Tabelle verifiziert werden.
    M1 M2 A B MA MB MRes Res
    0 0 0 0 0 0 0 0
    0 0 0 1 0 1 0 0
    0 0 1 0 1 0 0 0
    0 0 1 1 1 1 1 1
    0 1 0 0 0 1 1 0
    0 1 0 1 0 0 1 0
    0 1 1 0 1 1 1 0
    0 1 1 1 1 0 0 1
    1 0 0 0 1 0 1 0
    1 0 0 1 1 1 1 0
    1 0 1 0 0 0 1 0
    1 0 1 1 0 1 0 1
    1 1 0 0 1 1 0 0
    1 1 0 1 1 0 0 0
    1 1 1 0 0 1 0 0
    1 1 1 1 0 0 1 1
  • Abhängig davon, welches Ergebnis erzielt werden soll, wird zwischenzeitlich eine der beiden Masken entfernt bzw. eine entsprechende Demaskierung durchgeführt.
  • Figure DE102014001647A1_0009
  • Figure DE102014001647A1_0010
  • Figure DE102014001647A1_0011
  • Figure DE102014001647A1_0012
  • Auch ist statt der Addition eine beliebige andere Operation gemäß dem hier vorgeschlagenen Ansatz realisierbar. Dies wird nachfolgend für eine Subtraktion R = A – B gezeigt, wobei beispielhaft angenommen sei, dass A größer oder gleich B ist.
  • Figure DE102014001647A1_0013
  • Figure DE102014001647A1_0014
  • Figure DE102014001647A1_0015
  • Auch kann gemäß einer alternativen Ausführungsform eine randomisierte zeitliche Abfolge (”Timing”) genutzt werden. Dies wird nachfolgend beispielhaft anhand einer Funktion ”LongIntegerAddition_Alternative” gezeigt.
  • Figure DE102014001647A1_0016
  • Figure DE102014001647A1_0017
  • Figure DE102014001647A1_0018
  • 1 zeigt ein schematisches Diagramm zur Veranschaulichung von Schritten zur Erhöhung der Sicherheit einer auf zwei Operanden basierenden Operation gegenüber beispielsweise Seitenkanalangriffen. Ein Operand A 101 wird über eine Operation mit dem Operand B 102 verknüpft. Die Operation kann beispielsweise eine Addition, eine Subtraktion, eine binäre Verknüpfung, eine Vergleichsoperation oder ähnliches sein. In einem Block 103 werden einzelne Schritte der Operation zeitlich randomisiert durchgeführt. Optional (vergleiche Block 104) können zumindest Teile der Operation maskiert durchgeführt werden. Beispielsweise können die Operanden und/oder Zwischenergebnisse, z. B. einzelne Bits oder Bitgruppen, maskiert werden. Insbesondere ist es von Vorteil, wenn die Maskierung bis zum Ende oder im Wesentlichen bis zum Ende der Operation gewährleistet ist.
  • Der vorliegend erläuterter Ansatz eignet sich für eine Vielzahl von Anwendungen, bei denen insbesondere Seitenkanalangriffe erschwert werden sollen. Beispielsweise kann so wirksam der Erfolg einer Stromprofilanalyse und/oder jeglicher nicht-invasiven Beobachtung deutlich reduziert werden, da von außen nicht länger ohne Weiteres erkennbar ist, wann welcher Teil der Operation auf welchem Teil der Operanden mit welchen (Zwischen-)Ergebnissen durchgeführt wird.
  • Diese Lösung kann z. B. auf sicheren Plattformen oder Modulen vorgesehen sein, z. B. in Sicherheitschips für beispielsweise Computer, Smartphones, Tablets, Notebooks, etc. Auch kann die Lösung z. B. Teil einer kryptographischen Anwendung sein.
  • Die Erfindung kann z. B. eingesetzt werden in der Telekommunikation, im Automobilbereich, in Chipkarten, in Controller, in Prozessoren, in Überwachungseinheiten, in Zählern, in Messeinheiten, etc. Insbesondere kann die Erfindung genutzt werden in einem Umfeld, dass eine Publik-Key-Infrastruktur ermöglicht oder erfordert.
  • Obwohl die Erfindung im Detail durch das mindestens eine gezeigte Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht darauf eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.
  • 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 Nicht-Patentliteratur
    • http://de.wikipedia.org/wiki/Seitenkanalattacke [0002]
    • http://www.iti.fh-flensburg.de/lang/algorithmen/arithmetik/cla.htm [0049]
    • http://www.mathematik.uni-muenchen.de/~forster/sw/aribas.html [0056]

Claims (17)

  1. Verfahren zur Durchführung einer Operation basierend auf mindestens zwei Operanden, – bei dem Schritte der Operation zeitlich randomisiert durchgeführt werden.
  2. Verfahren nach Anspruch 1, bei dem Schritte der Operation zeitlich randomisiert durchgeführt werden, indem Zugriffe auf Teile der Operanden zeitlich randomisiert durchgeführt werden.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem jeder der Operanden eine Ganzzahl ist, die insbesondere eine Bitlänge von mehr als 128 Bit aufweist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Operation eine Addition ist, die auf einem Carry-Look-Ahead-Addierer basiert.
  5. Verfahren nach Anspruch 4, bei dem Generate-Bits und Propagate-Bits des Carry-Look-Ahead-Addierers basierend auf einer binären Baumstruktur zumindest teilweise zeitlich randomisiert iterativ in Richtung der Wurzel der binären Baumstruktur bestimmt werden.
  6. Verfahren nach Anspruch 5, bei dem Carry-Bits des Carry-Look-Ahead-Addierers basierend auf der binären Baumstruktur zumindest teilweise zeitlich randomisiert iterativ in Richtung von der Wurzel der binären Baumstruktur bestimmt werden.
  7. Verfahren nach Anspruch 6, bei dem die Carry-Bits und die Operanden zeitlich randomisiert addiert werden.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Operation eine Subtraktion ist.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Operation eine Vergleichsoperation der beiden Operanden oder eine Vergleichsoperation zweier Speicherbereiche umfasst.
  10. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Schritte der Operation zumindest teilweise mit maskierten Daten durchgeführt werden.
  11. Verfahren nach Anspruch 10, bei dem die maskierten Daten mindestens ein Verarbeitungsbit der Operation umfassen.
  12. Verfahren nach Anspruch 11, bei dem das Verarbeitungsbit eines der folgenden Bits ist: – ein Carry-Bit, – ein Propagate-Bit, – ein Generate-Bit.
  13. Verfahren nach einem der Ansprüche 10 bis 12, bei dem die Operanden maskiert werden und das Ergebnis der Operation am Ende der Operation demaskiert wird.
  14. Verfahren nach Anspruch 13, bei dem die Operanden mit einer gemeinsamen Maske oder mit zwei unterschiedlichen Masken maskiert werden.
  15. Vorrichtung mit einer Verarbeitungseinheit, wobei die Verarbeitungseinheit eingerichtet ist zur Durchführung einer Operation basierend auf zwei Operanden, wobei Schritte der Operation zeitlich randomisiert durchführbar sind.
  16. Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, Schritte eines Verfahrens nach einem der Ansprüche 1 bis 14 durchzuführen.
  17. Computerlesbaren Speichermediums, umfassend von einem Computer ausführbare Anweisungen, die dazu geeignet sind, dass der Computer Schritte eines Verfahrens nach einem der Ansprüche 1 bis 14 durchführt.
DE102014001647.1A 2014-02-06 2014-02-06 Operation basierend auf zwei Operanden Pending DE102014001647A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102014001647.1A DE102014001647A1 (de) 2014-02-06 2014-02-06 Operation basierend auf zwei Operanden
US14/614,529 US10055194B2 (en) 2014-02-06 2015-02-05 Operation based on two operands

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014001647.1A DE102014001647A1 (de) 2014-02-06 2014-02-06 Operation basierend auf zwei Operanden

Publications (1)

Publication Number Publication Date
DE102014001647A1 true DE102014001647A1 (de) 2015-08-06

Family

ID=53546856

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014001647.1A Pending DE102014001647A1 (de) 2014-02-06 2014-02-06 Operation basierend auf zwei Operanden

Country Status (2)

Country Link
US (1) US10055194B2 (de)
DE (1) DE102014001647A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021100538A1 (de) 2021-01-13 2022-07-14 Infineon Technologies Ag Schaltung und verfahren zur rotationsinvarianten ausführung einer oder mehrerer operationen mit mindestens einem operanden

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981115A2 (de) * 1998-08-20 2000-02-23 Orga Kartensysteme GmbH Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger
US20110246789A1 (en) * 2010-03-31 2011-10-06 Inside Contactless Integrated circuit protected against horizontal side channel analysis
US20120144205A1 (en) * 2004-06-08 2012-06-07 Hrl Laboratories, Llc Cryptographic Architecture with Instruction Masking and other Techniques for Thwarting Differential Power Analysis

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4163211A (en) * 1978-04-17 1979-07-31 Fujitsu Limited Tree-type combinatorial logic circuit
US5278783A (en) * 1992-10-30 1994-01-11 Digital Equipment Corporation Fast area-efficient multi-bit binary adder with low fan-out signals
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
US6298135B1 (en) * 1999-04-29 2001-10-02 Motorola, Inc. Method of preventing power analysis attacks on microelectronic assemblies
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
DE102004018874B4 (de) * 2004-04-19 2009-08-06 Infineon Technologies Ag Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
DE102006025673B9 (de) * 2005-10-28 2010-12-16 Infineon Technologies Ag Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls
US7921148B2 (en) * 2006-08-09 2011-04-05 Infineon Technologies Ag Standard cell for arithmetic logic unit and chip card controller
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
FR3011354A1 (fr) * 2013-10-01 2015-04-03 Commissariat Energie Atomique Procede d'execution par un microprocesseur d'un code binaire polymorphique d'une fonction predeterminee
US9916261B2 (en) * 2014-05-19 2018-03-13 Infineon Technologies Ag Randomized memory access

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981115A2 (de) * 1998-08-20 2000-02-23 Orga Kartensysteme GmbH Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger
US20120144205A1 (en) * 2004-06-08 2012-06-07 Hrl Laboratories, Llc Cryptographic Architecture with Instruction Masking and other Techniques for Thwarting Differential Power Analysis
US20110246789A1 (en) * 2010-03-31 2011-10-06 Inside Contactless Integrated circuit protected against horizontal side channel analysis

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
http://de.wikipedia.org/wiki/Seitenkanalattacke
http://www.iti.fh-flensburg.de/lang/algorithmen/arithmetik/cla.htm
http://www.mathematik.uni-muenchen.de/~forster/sw/aribas.html
ITOH, Kouichi; IZU, Tetsuya; TAKENAKA, Masahiko: A practical countermeasure against address-bit differential power analysis. In: Cryptographic Hardware and Embedded Systems-CHES 2003. Springer Berlin Heidelberg, 2003. S. 382-396. *
LANG, H.W.: Carry-Lookahead-Addierer. 6.9.2012. URL: http://www.iti.fh-flensburg.de/lang/algorithmen/arithmetik/cla.htm [abgerufen am 28.5.2014] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021100538A1 (de) 2021-01-13 2022-07-14 Infineon Technologies Ag Schaltung und verfahren zur rotationsinvarianten ausführung einer oder mehrerer operationen mit mindestens einem operanden
US11755321B2 (en) 2021-01-13 2023-09-12 Infineon Technologies Ag Circuit and method for the rotation-invariant execution of one or more operations with at least one operand

Also Published As

Publication number Publication date
US20150220307A1 (en) 2015-08-06
US10055194B2 (en) 2018-08-21

Similar Documents

Publication Publication Date Title
EP2605445B1 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE102012202015B4 (de) Vorrichtung und Verfahren zum Schützen einer Referenzzahl gegen darauf gerichtete Differential Power Analyse-Angriffe und Template-Angriffe
DE102012220990B3 (de) Verfahren und Anordnung zur sicheren Kommunikation zwischen Netzwerkeinrichtungen in einem Kommunikationsnetzwerk
EP2901611B1 (de) Seitenkanalgeschützte maskierung
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE102016120558A1 (de) Datenverarbeitungsvorrichtung und -verfahren für kryptographische verarbeitung von daten
DE102015107823A1 (de) Randomisierter Speicherzugriff
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
DE102018116572A1 (de) Schutz gegen seitenkanalangriffe
DE112018002723T5 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
DE102014001647A1 (de) Operation basierend auf zwei Operanden
DE102021101697B3 (de) Datenverarbeitungsvorrichtung und verfahren zum verarbeiten geheimer daten
EP3798873B1 (de) Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
DE102012015158A1 (de) Gegen Ausspähen geschützte kryptographische Berechnung
DE102012219205A1 (de) Vorrichtung und Verfahren zur Ausführung eines kryptographischen Verfahrens
EP1596527B1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3667529B1 (de) Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration
DE102015209120A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102014216392A1 (de) Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung
DE102023106166B3 (de) Sicherheits-controller und verfahren zur durchführung einer auswahlfunktion
DE102018208851A1 (de) Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
DE102020129058B3 (de) Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten
DE102019003673B3 (de) Seitenkanalsichere Implementierung
DE102022132529A1 (de) Datenverarbeitungsvorrichtung und verfahren zur verarbeitung geheimer daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication