DE102020121229B3 - Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens - Google Patents

Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens Download PDF

Info

Publication number
DE102020121229B3
DE102020121229B3 DE102020121229.1A DE102020121229A DE102020121229B3 DE 102020121229 B3 DE102020121229 B3 DE 102020121229B3 DE 102020121229 A DE102020121229 A DE 102020121229A DE 102020121229 B3 DE102020121229 B3 DE 102020121229B3
Authority
DE
Germany
Prior art keywords
checksum
gdft
input
vector
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102020121229.1A
Other languages
English (en)
Inventor
Rainer Urian
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 DE102020121229.1A priority Critical patent/DE102020121229B3/de
Priority to US17/395,208 priority patent/US20220050927A1/en
Application granted granted Critical
Publication of DE102020121229B3 publication Critical patent/DE102020121229B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Discrete Mathematics (AREA)
  • Electromagnetism (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Es wird ein Verfahren zur Überprüfung einer GDFT-basierten Operation auf einer gesicherten Domäne vorgeschlagen, das Verfahren umfassend: (i) Berechnen einer ersten Prüfsumme basierend auf einer Eingabe, (ii) Bestimmen eines Ergebnisses einer GDFT-basierten Operation basierend auf der Eingabe, (iii) Berechnen einer zweiten Prüfsumme basierend auf dem Ergebnis, (iv) Vergleichen der ersten Prüfsumme und der zweiten Prüfsumme und Fortfahren, wenn die erste Prüfsumme der zweiten Prüfsumme entspricht, oder Auslösen einer vordefinierten Aktion, wenn die erste Prüfsumme der zweiten Prüfsumme nicht entspricht. Zudem wird eine entsprechende Sicherheitseinrichtung bereitgestellt.

Description

  • Die ideale gitterbasierte Post-Quantum-Kryptografie bedient sich der generalisierten diskreten Fourier-Transformation (GDFT), um die Multiplikation von Polynomen zu beschleunigen. Die GDFT kann insbesondere bei sicherheitskritischen Daten (z.B. privaten Schlüsseln) verwendet werden. Ein kryptografischer Vorgang kann einem Fehlerangriff ausgesetzt sein, der eine große Sicherheitsbedrohung darstellt, insbesondere für Smartcard-Sicherheitschips.
  • Aus DE 10 2017 117 899 A1 ist ein Ansatz bekannt zur effizienten Durchführung einer kryptographischen Operation, insbesondere zur verbesserten Robustheit einer solchen Operation gegen Fehlerinjektionsangriffe.
  • DE 10 2018 108 313 A1 betrifft einen neuartigen Ansatz zur Durchführungen von Lattice-basierten Operationen.
  • Das Ziel ist somit, die bestehenden Lösungen zu verbessern und einen Ansatz vorzustellen, der eine effizientere Überprüfung der GDFT-Operation ermöglicht und insbesondere erfolgreiche Angriffe auf ein kryptografisches System oder eine kryptografische Entität zu verhindern oder zu vermeiden.
  • Dies wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Weitere Ausführungsformen ergeben sich aus den abhängigen Ansprüchen.
  • Die hierin vorgeschlagenen Beispiele können insbesondere auf mindestens einer der folgenden Lösungen basieren. Kombinationen der folgenden Merkmale können verwendet werden, um ein gewünschtes Ergebnis zu erzielen. Die Merkmale des Verfahrens können mit beliebigen Merkmalen des Geräts, der Vorrichtung oder des Systems kombiniert werden oder umgekehrt.
  • Es wird ein Verfahren zur Überprüfung einer GDFT-basierten Operation auf einer gesicherten Domäne bereitgestellt, das Verfahren umfassend:
    • - Berechnen einer ersten Prüfsumme basierend auf einer Eingabe,
    • - Bestimmen eines Ergebnisses einer GDFT-basierten Operation basierend auf der Eingabe,
    • - Berechnen einer zweiten Prüfsumme basierend auf dem Ergebnis,
    • - Vergleichen der ersten Prüfsumme und der zweiten Prüfsumme, und
      • - Fortfahren, wenn die erste Prüfsumme der zweiten Prüfsumme entspricht, oder
      • - Auslösen einer vordefinierten Aktion, wenn die erste Prüfsumme der zweiten Prüfsumme nicht entspricht,
    • - wobei die Eingabe ein Eingangsvektor mit N Komponenten ist,
    • - wobei die erste Prüfsumme und/oder die zweite Prüfsumme als Summierung über die N Elemente bestimmt wird, wobei jedes Element eine Multiplikation von Folgendem umfasst:
      • - einer Komponente des Eingangsvektors mit
      • - derselben oder einer anderen Komponente des Eingangsvektors mit
      • - einer Konstante.
  • Die GDFT-basierte Operation kann eine beliebige Operation sein, die die GDFT-Operation oder die inverse GDFT-Operation verwendet.
  • Die Konstante kann 1 sein, wodurch keine zusätzliche Multiplikation ausgelöst wird, oder die Konstante kann ein beliebiges anderes Element des Rings ℛ sein.
  • Gemäß einer Ausführungsform wird die erste Prüfsumme bestimmt als i = 0 N 1 x i x j ( i ) c i ,
    Figure DE102020121229B3_0001
    wobei
    • - xi ein Element des Eingangsvektors ist,
    • - xj(i) das Element xi oder ein anderes Element des Eingangsvektors ist,
    • - j(i) eine bijektive Abbildung {0,...,N- 1} → {0,...,N- 1} ist,
    • - ci eine Konstante ist,
    • - i mit i = 1, ... ,N - 1 eine Variable für die Summierung ist.
  • Gemäß einer Ausführungsform wird die bijektive Abbildung definiert als j ( i ) = a i mod N ,
    Figure DE102020121229B3_0002
    wobei a eine ungerade Zahl ist.
  • Gemäß einer Ausführungsform ist die Konstante ci definiert als ci = c, wobei c eine Konstante in dem Ring ℛ ist.
  • Gemäß einer Ausführungsform ist das Ergebnis ein Vektor, und wobei die zweite Prüfsumme bestimmt wird als i = 0 N 1 x ^ i x ^ j ' ( i ) c ^ i ,
    Figure DE102020121229B3_0003
    wobei
    • - x̂i ein Element des Ergebnisvektors ist,
    • - x̂j',(i) das Element x̂i oder ein anderes Element des Ergebnisvektors ist,
    • - j'(i) eine bijektive Abbildung {0, ... , N - 1} → {0, ... , N - 1} ist,
    • - ĉi eine andere Konstante ist.
  • Es wird angemerkt, dass die Konstanten ci und ci sowie die Variable i Elemente in dem Ring ℛ sind, die unabhängig von einem beliebigen der Vektoren x oder x̂ sind.
  • Gemäß einer Ausführungsform ist die bijektive Abbildung definiert als j ' ( i ) = a ' i mod N
    Figure DE102020121229B3_0004
    mit a ' : = a 1 mod N .
    Figure DE102020121229B3_0005
  • Gemäß einer Ausführungsform ist die Konstante ĉi definiert als ĉi = ĉ, wobei ĉ eine Konstante in dem Ring ℛ ist.
  • Gemäß einer Ausführungsform umfasst die gesicherte Domäne mindestens eines der Folgenden:
    • - eine Sicherheitseinrichtung,
    • - eine gesicherte Cloud,
    • - ein gesichertes Gerät,
    • - eine integrierte Schaltung,
    • - ein Hardwaresicherheitsmodul,
    • - ein vertrauenswürdiges Plattformmodul,
    • - eine Kryptoeinheit,
    • - ein FPGA,
    • - eine Verarbeitungseinheit,
    • - einen Controller,
    • - eine Smartcard.
  • Es wird auch eine Sicherheitseinrichtung bereitgestellt, die dazu vorgesehen ist, die folgenden Schritte auszuführen:
    • - Berechnen einer ersten Prüfsumme basierend auf einer Eingabe,
    • - Bestimmen eines Ergebnisses einer GDFT-basierten Operation basierend auf der Eingabe,
    • - Berechnen einer zweiten Prüfsumme basierend auf dem Ergebnis,
    • - Vergleichen der ersten Prüfsumme und der zweiten Prüfsumme, und
      • - Fortfahren, wenn die erste Prüfsumme der zweiten Prüfsumme entspricht, oder
      • - Auslösen einer vordefinierten Aktion, wenn die erste Prüfsumme nicht der zweiten Prüfsumme entspricht,
    • - wobei die Eingabe ein Eingangsvektor mit N Komponenten ist,
    • - wobei die erste Prüfsumme und/oder die zweite Prüfsumme als Summierung über die N Elemente bestimmt wird, wobei jedes Element eine Multiplikation von Folgendem umfasst:
      • - einer Komponente des Eingangsvektors mit
      • - derselben oder einer anderen Komponente des Eingangsvektors mit
      • - einer Konstante.
  • Gemäß einer Ausführungsform ist die Sicherheitseinrichtung eine der Folgenden oder umfasst mindestens eines der Folgenden:
    • - eine gesicherte Cloud,
    • - ein gesichertes Gerät,
    • - eine integrierte Schaltung,
    • - ein Hardwaresicherheitsmodul,
    • - ein vertrauenswürdiges Plattformmodul,
    • - eine Kryptoeinheit,
    • - ein FPGA,
    • - eine Verarbeitungseinheit,
    • - einen Controller,
    • - eine Smartcard.
  • Darüber hinaus wird ein Computerprogrammprodukt vorgeschlagen, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist und Softwarecodeabschnitte zum Durchführen der Schritte des hier beschriebenen Verfahrens umfasst.
  • Ausführungsformen werden unter Bezugnahme auf die Zeichnungen gezeigt und veranschaulicht. Die Zeichnungen dienen zur Veranschaulichung des Grundprinzips, sodass nur Aspekte dargestellt werden, die zum Verständnis des Grundprinzips notwendig sind. Die Skizzen sind nicht maßstäblich gezeichnet. In den Zeichnungen bezeichnen dieselben Referenzzeichen ähnliche Merkmale.
    • 1 zeigt ein beispielhaftes Flussdiagramm, das Schritte für eine prüfsummengeschützte Berechnung der GDFT umfasst;
    • 2 zeigt ein beispielhaftes Flussdiagramm, das Schritte für eine prüfsummengeschützte Berechnung der inversen GDFT umfasst;
    • 3 zeigt Schritte eines beispielhaften Verfahrens zum Durchführen einer prüfsummengeschützten negativ verpackten GDFT-Operation, die verwendet werden kann, um beispielsweise Fehlerangriffe zu erkennen;
    • 4 zeigt Schritte eines beispielhaften Verfahrens zum Durchführen einer prüfsummengeschützten Operation x̂: = τ-1(GDFT-1(x)), die verwendet werden kann, um beispielsweise Fehlerangriffe zu erkennen;
    • 5 zeigt eine beispielhafte Anordnung einer Verarbeitungsvorrichtung, die eine CPU, ein RAM, einen nichtflüchtigen Speicher, ein Kryptomodul, ein analoges Modul, eine Eingabe-/Ausgabeschnittstelle und einen Hardware-Zufallszahlengenerator umfasst;
    • 6 zeigt eine alternative Anordnung mit einem Hardwaresicherheitsmodul (HSM).
  • Es besteht allgemein eine Veranlassung dazu, sich von klassischen asymmetrischen Kryptosystemen, z.B. Rivest-Shamir-Adleman (RSA)-Kryptosysteme oder Elliptic Curve Cryptography (ECC), auf Schemata umzustellen, die Quantencomputern keine leichte erfolgreiche Angriffsfläche bieten. Selbst wenn Quantencomputer aufgrund der technischen Komplexität und der technischen Herausforderungen derzeit nicht verfügbar sind, könnten sie möglicherweise RSA und ECC in Polynomialzeit brechen.
  • Eine Klasse von Schemata, die Angriffen durch Quantencomputer widerstehen soll, ist auf öffentlichen Schlüsseln, Schlüsselaustausch oder Signaturschemata auf der Grundlage von Ring Learning with Errors (kurz RLWE) gerichtet. Der Kryptografie-Baublock wird als „Ring Learning with Errors“ (RLWE) bezeichnet. Die RLWE-basierte Kryptografie basiert auf der Arithmetik von Polynomen über endliche Körper. Ein bekanntes auf RLWE basierendes kryptografisches System ist als NewHope bekannt. Eine grundlegende Einführung in NewHope ist verfügbar von [R. Urian: Understanding Newhope Simple, Prior Art Journal 2020 Nr.8, Infineon Technologies, Prior Art Publishing, 01.04.2020].
  • Über den Schutz von RLWE-basierten Systemen vor Angriffen ist jedoch nicht viel bekannt. Insbesondere können Gegenmaßnahmen gegen Fehlerangriffe (auch als Fehlerinjektionsangriffe bezeichnet) zumindest dann von Vorteil, wenn nicht sogar erforderlich, sein, wenn Signatur- oder Verschlüsselungsschemata mit öffentlichem Schlüssel auf einem sicheren Chipkartencontroller oder in einer beliebigen ungünstigen Umgebung ausgeführt werden.
  • Die beschriebenen Beispiele können sich insbesondere auf eine Familie von Prüfsummengleichungen für die generalisierte diskrete Fourier-Transformation (GDFT) beziehen, d.h. die diskrete Fourier-Transformation über beliebige Ringe. Dies kann als Verallgemeinerung des Parsevalschen Theorems für die diskrete Fourier-Transformation über reelle Zahlen verstanden werden. Die GDFT über endliche Körper wird hierin als zahlentheoretische Transformation (Number Theoretic Transform, NTT) bezeichnet.
  • Beispielhafte Ausführungsformen können insbesondere vorschlagen, eine Prüfsummenberechnung von Eingangs- und Ausgangswerten einer GDFT durchzuführen. Falls die GDFT störungsfrei ausgeführt wurde, können beide Prüfsummen einander entsprechen, wobei eine solche Entsprechung mittels mathematischer Formeln bestimmt werden kann. Wenn jedoch eine Störung bei der GDFT aufgetreten ist (basierend beispielsweise auf einem Angriff auf das kryptografische System oder die Entität), entsprechen sich die Prüfsummen möglicherweise nicht mehr.
  • Die GDFT wird häufig in der gitterbasierten Kryptografie eingesetzt, um die Multiplikation in bestimmten Polynomringen zu beschleunigen. Da die GDFT eine sicherheitskritische Operation ist, ist die GDFT vorteilhaft vor Fehlerangriffen geschützt.
  • Während eines Fehlerangriffs hat der Angreifer physischen Zugriff auf die Vorrichtung, welche die GDFT berechnet, d.h. die GDFT-Operation ausführt. Der Angreifer bringt einen Fehler ein, indem er die GDFT-Operation der Vorrichtung stört, z.B. durch Einsatz eines Lasers und/oder Manipulation der Spannungs- oder Stromquelle.
  • Ein Fehlerangriff kann verhindert werden, indem für die Vorrichtung Schutzmaßnahmen bereitgestellt werden und/oder der eigentliche physische Angriff erkannt wird. Optional kann ein Alarm und/oder eine Benachrichtigung ausgelöst werden, wenn der Angriff erkannt wird. Die GDFT-Operation kann angehalten werden, die Vorrichtung kann in einen sicheren Zustand übergehen und/oder sie kann eine Fehlermeldung ausgeben.
  • Im Folgenden wird gezeigt, wie eine Prüfsumme definiert werden kann, um Fehlerangriffe während der GDFT-Operation zu erkennen.
  • Begriffsbestimmungen
  • Die folgenden Begriffe werden in diesem Dokument verwendet:
    • ► Eine Tiefstellung (z.B. j in xj) für einen Vektor x gibt einen Index an, der insbesondere zum Ordnen und/oder Unterscheiden der Elemente des Vektors x verwendet wird. Beispielsweise ist xj das j-te Element des Vektors x.
    • ► Arithmetische Operationen an Indizes werden in ℤN mit einem Repräsentantensystem {0,1,...,N - 1} aus den ganzen Zahlen ausgeführt. Beispielsweise bedeutet eine Instanz xja, dass k := j ∗ a mod N berechnet wird und dann das k-te Element xk aus dem Vektor x ausgewählt wird. Der Konvention entsprechend bezieht sich ein negativer Index -k für k > 0 auf den Index N - k.
    • ► Der Term N
      Figure DE102020121229B3_0006
      bezieht sich auf die multiplikative Untergruppe von ℤN. Diese Elemente werden als ungerade ganze Zahlen dargestellt.
    • ► Ein Großbuchstabe X zeigt eine Unbestimmte (Indeterminante) in einem Polynom an.
  • Die GDFT
  • ℛ ist definiert als ein Ring mit der Einheit 1, und N ist eine ganze Zahl. Für jede ganze Zahl n kann das homomorphe Bild n · 1 in dem Ring ℛ auch als n bezeichnet werden. Ferner ist ω eine N-te Einheitswurzel in dem Ring ℛ mit den folgenden Eigenschaften; ω N = 1
    Figure DE102020121229B3_0007
    i = 0 N 1 ω j k = 0 , f u ¨ r 1 k < N .
    Figure DE102020121229B3_0008
  • Die GDFT ist eine Abbildung ℛN → ℛN, die definiert ist durch x ^ j : = k = 0 N 1 x k ω j k mit j = 0, , N 1,
    Figure DE102020121229B3_0009
    wobei alle xk in ℛ sind.
  • Wenn N in dem Ring ℛ invertierbar ist, gibt es eine inverse Abbildung GDFT-1: ℛN → ℛN wie folgt: x ^ k : = N 1 j = 0 N 1 x j ω j k mit k = 0, , N 1.
    Figure DE102020121229B3_0010
  • Wenn der Ring ℛ der endliche Körper ℤq ist, wobei q := pd eine Primpotenz ist und ω eine primitive N-te Einheitswurzel in ℛ ist, dann wird diese GDFT als NTT bezeichnet.
  • Prüfsummengleichungen in der GDFT
  • Für jede beliebige a N
    Figure DE102020121229B3_0011
    und x : = ( x k ) k = 0 N 1 R N
    Figure DE102020121229B3_0012
    wird eine Abbildung definiert als ψ a : R N R ψ a ( x ) : = k = 0 N 1 x k x a k .
    Figure DE102020121229B3_0013
    und als Prüfsummenfunktion bezeichnet.
  • Für a = ±1 können die folgenden Prüfsummenfunktionen bestimmt werden: ψ 1 ( x ) = k = 0 N 1 x k 2
    Figure DE102020121229B3_0014
    ψ 1 ( x ) = k = 0 N 1 x k x k .
    Figure DE102020121229B3_0015
  • Wenn a , a ' N , x , x ^ R N , x ^ : = GDFT ( x ) , a ' : = a 1 mod N ,
    Figure DE102020121229B3_0016
    gilt, erfüllen die Prüfsummenfunktionen ψa und ψa' die folgenden Beziehungen: ψ a ' ( x ^ ) = N ψ a ( x ) .
    Figure DE102020121229B3_0017
  • Die vorstehend genannte Formel ergibt sich aus der folgenden Umwandlung: ψ a ' ( x ^ ) = j = 0 N 1 x ^ j x ^ a ' j = j = 0 N 1 ( k = 0 N 1 x k ω j k ) ( k ' = 0 N 1 x k ' ω a ' j k ' ) = k = 0 N 1 k ' = 0 N 1 x k x k ' j = 0 N 1 ω j k ω a ' j k ' = k = 0 N 1 k ' = 0 N 1 x k x a k ' j = 0 N 1 ω j ( k k ' ) = N k = 0 N 1 x k x a k = N ψ a ( x )
    Figure DE102020121229B3_0018
  • Wenn x̂ : = GDFT-1(x) zutrifft, erfüllen die Prüfsummenfunktionen ψa und ψa' die folgenden Beziehungen: ψ a ' ( x ) = N ψ a ( x ^ ) .
    Figure DE102020121229B3_0019
  • Kryptografische Anwendung
  • Die ideale gitterbasierte Kryptografie kann den Ring R [ X ] / ( X N 1 )
    Figure DE102020121229B3_0020
    nutzen. Ein Element in diesem Ring kann durch einen Vektor x : = ( x j ) j = 0 N 1 R N
    Figure DE102020121229B3_0021
    dargestellt werden. Eine Multiplikation von zwei Elementen in dem Ring R [ X ] / ( X N 1 )
    Figure DE102020121229B3_0022
    entspricht einer Faltungsoperation der Vektordarstellungen dieser Elemente, wobei es sich dabei um eine verhältnismäßig teure Operation handelt, die eine erhebliche Menge an Verarbeitungsleistung und Zeit benötigt.
  • Um die Effizienz einer solchen Multiplikation in diesem Ring zu erhöhen, kann ein von der GDFT gegebener Isomorphismus verwendet werden. Die GDFT bildet die Faltungsoperation isomorph auf eine komponentenweise Multiplikation in ℛN ab.
  • Daher können zwei Elemente u, v ∈ ℛN, die Elemente des Rings ℛ[X]/(XN - 1) darstellen, multipliziert werden, indem sie mit der GDFT transformiert werden, eine komponentenweise Multiplikation der transformierten Vektoren durchgeführt wird und der resultierende Vektor unter Verwendung einer inversen GDFT-1mit Isomorphismus rücktransformiert wird: u v = GDFT 1 ( GDFT ( u ) GDFT ( v ) ) ,
    Figure DE102020121229B3_0023
    wobei „*“ eine Faltung in ℛN (d.h. Multiplikation in dem Ring ℛ[X]/(XN - 1)) angibt und „.“ eine komponentenweise Multiplikation in dem Vektor ℛN angibt.
  • Die GDFT (oder die inverse GDFT-1) Operation kann auf geheime kryptografische Schlüssel angewendet werden. Fehler, die von einem Angreifer während einer solchen GDFT-Operation verursacht werden, können zu einer Beschädigung der kryptografischen Operation und/oder des geheimen Schlüssels führen.
  • Daher sind die GDFT oder die inverse GDFT-1Operation bestenfalls in der Lage, den Angriff zu erkennen, um weitere negative Auswirkungen eines Angriffs zu verhindern.
  • Es können Prüfsummenfunktionen verwendet werden, um Fehlerangriffe während der Berechnung der GDFT oder ihrer inversen GDFT-1zu erkennen.
  • 1 zeigt Schritte eines beispielhaften Verfahrens zum Durchführen einer prüfsummengeschützten GDFT-Operation, die verwendet werden kann, um beispielsweise Fehlerangriffe zu erkennen.
  • In einem Schritt 101, wird eine Eingabe x ∈ ℛN bereitgestellt. In einem nachfolgenden Schritt 102, wird eine Prüfsumme C1 basierend auf der Eingabe x berechnet. In einem nachfolgenden Schritt 103, wird die GDFT-Operation x ^ = GDFT ( x )
    Figure DE102020121229B3_0024
    auf der Eingabe x durchgeführt, um eine Ausgabe x̂ zu erzeugen. Im Folgenden wird in Schritt 104 eine Prüfsumme C2 basierend auf der Ausgabe x̂ berechnet. In einem nachfolgenden Schritt 105 wird bestimmt, ob die Prüfsumme C1 gleich der Prüfsumme C2 ist. Wenn dies der Fall ist, wird mit einem Schritt 107 fortgefahren, der die Ausgabe x̂ als Ergebnis zurückgibt. Wenn beide Prüfsummen C1, C2 nicht identisch sind, erfolgt eine Verzweigung zu Schritt 106, der einen Alarm auslöst, um anzuzeigen, dass die GDFT-Operation möglicherweise manipuliert wurde.
  • 2 zeigt Schritte eines beispielhaften Verfahrens zum Durchführen einer prüfsummengeschützten GDFT-1Operation, die verwendet werden kann, um beispielsweise Fehlerangriffe zu erkennen.
  • In einem Schritt 201, wird die Eingabe x ∈ ℛN bereitgestellt. In einem nachfolgenden Schritt 202, wird eine Prüfsumme C3 basierend auf der Eingabe x berechnet. In einem nachfolgenden Schritt 203, wird die GDFT-1 Operation x ^ = GDFT 1 ( x )
    Figure DE102020121229B3_0025
    basierend auf der Eingabe x durchgeführt, um die Ausgabe x̂ zu erzeugen. Im Folgenden wird in Schritt 204 eine Prüfsumme C4 basierend auf der Ausgabe x̂ berechnet. In einem nachfolgenden Schritt 205 wird bestimmt, ob die Prüfsumme C3 gleich der Prüfsumme C4 ist. Wenn dies der Fall ist, wird mit einem Schritt 207 fortgefahren, der die Ausgabe x̂ als Ergebnis zurückgibt. Wenn beide Prüfsummen C3, C4 nicht identisch sind, erfolgt eine Verzweigung zu Schritt 206, der einen Alarm auslöst, um anzuzeigen, dass die GDFT-1Operation möglicherweise manipuliert wurde.
  • Basierend auf einer beispielhaften Implementierung der Prüfsummenfunktionen ψa und ψ-a-1 können die folgenden Prüfsummen C1 bis C4 berechnet werden: C 1 : = N ψ a ( x )
    Figure DE102020121229B3_0026
    C 2 : = ψ a 1 ( x ^ )
    Figure DE102020121229B3_0027
    C 3 : = ψ a 1 ( x )
    Figure DE102020121229B3_0028
    C 4 : = N ψ a ( x ^ )
    Figure DE102020121229B3_0029
  • Negativ verpackte GDFT
  • Die ideale gitterbasierte Kryptografie kann auch den Polynomring R [ X ] / ( X N + 1 )
    Figure DE102020121229B3_0030
    verwenden. Ein Element in diesem Ring kann durch einen Vektor x : = ( x j ) j = 0 N 1 R N
    Figure DE102020121229B3_0031
    dargestellt werden.
  • Eine Multiplikation von zwei Elementen im Ring ℛ[X]/(XN + 1) entspricht einer negativ verpackten („negatively wrapped“) Faltung ihrer Vektordarstellungen. Die negativ verpackte Faltung ähnelt der Standardfaltung und ist daher auch kostspielig und zeitaufwendig.
  • Um die Effizienz dieser Multiplikation zu erhöhen, kann auch die GDFT eingesetzt werden. Anstatt die GDFT jedoch direkt auf den Vektor anzuwenden, wird der Vektor zunächst durch eine bijektive Abbildung τ ( x k ) : = ζ k x k ,
    Figure DE102020121229B3_0032
    transformiert, wobei ζ eine primitive 2N-te Einheitswurzel in ℛ ist. Eine inverse Abbildung kann bestimmt sein als: τ 1 ( x k ) : = ζ k x k .
    Figure DE102020121229B3_0033
  • Ein Anwenden der Abbildung τ auf die GDFT ergibt Folgendes: x ^ : = GDFT ( τ ( x ) )
    Figure DE102020121229B3_0034
    x ^ j : = k = 0 N 1 x k ζ k ω j k , j = 0 N 1.
    Figure DE102020121229B3_0035
  • Daher können zwei Elemente u, v ∈ ℛ[X] / (XN + 1) multipliziert werden, indem zuerst ihre Vektordarstellungen unter Verwendung der Abbildung τ transformiert werden, die GDFT angewendet wird, eine komponentenweise Multiplikation der transformierten Vektoren durchgeführt wird, der resultierende Vektor durch Anwenden von GDFT-1 rücktransformiert wird und dann die inverse Abbildung τ-1 angewendet wird: u v = τ 1 ( GDFT -1 ( GDFT ( τ ( u ) ) GDFT ( τ ( v ) ) ) ) ,
    Figure DE102020121229B3_0036
    wobei „*“ die Multiplikation (d.h. die negativ verpackte Faltung) in dem Ring ℛ[X]/(XN + 1) und „.“ die komponentenweise Multiplikation in dem Vektor ℛN angibt.
  • Die Kombination GDFT(τ(x)) kann als negativ verpackte GDFT bezeichnet werden.
  • Wenn die Prüfsummenfunktionen ψ1 oder ψ-1 mit τ kombiniert werden, werden die folgenden Formeln angewendet: ψ 1 ( τ ( x ) ) = k = 0 N 1 x k 2 ω k ,
    Figure DE102020121229B3_0037
    ψ 1 ( τ ( x ) ) = x 0 2 k = 1 N 1 x k x N k .
    Figure DE102020121229B3_0038
  • Es können Prüfsummenfunktionen verwendet werden, um Fehlerangriffe während der Berechnung von x̂ = GDFT(τ(x)) oder ihrer Inversen x̂ = τ-1(GDFT-1(x)) zu erkennen.
  • 3 zeigt Schritte eines beispielhaften Verfahrens zum Durchführen einer prüfsummengeschützten negativ verpackten GDFT-Operation, die verwendet werden kann, um beispielsweise Fehlerangriffe zu erkennen.
  • In einem Schritt 301 wird eine Eingabe x ∈ ℛN bereitgestellt. In einem nachfolgenden Schritt 302 wird eine Prüfsumme C1 basierend auf der Eingabe x berechnet.
  • In einem nachfolgenden Schritt 303 wird die Operation x ^ : = GDFT ( τ ( x ) )
    Figure DE102020121229B3_0039
    anhand der Eingabe x̂ unter Verwendung der Abbildung τ(x) durchgeführt und eine Ausgabe x̂ erzeugt. Im Folgenden wird in Schritt 304 eine Prüfsumme C2 basierend auf der Ausgabe x̂ berechnet. In einem nachfolgenden Schritt 305 wird bestimmt, ob die Prüfsumme C1 gleich der Prüfsumme C2 ist. Wenn dies der Fall ist, wird mit einem Schritt 307 fortgefahren, der die Ausgabe x̂ als Ergebnis zurückgibt. Wenn beide Prüfsummen C1, C2 nicht identisch sind, erfolgt eine Verzweigung zu Schritt 306, der einen Alarm auslöst, um anzuzeigen, dass die GDFT-Operation möglicherweise manipuliert wurde.
  • 4 zeigt Schritte eines beispielhaften Verfahrens zum Durchführen einer prüfsummengeschützten GDFT-1 Operation, die verwendet werden kann, um beispielsweise Fehlerangriffe zu erkennen.
  • In einem Schritt 401, wird die Eingabe x̂ ∈ ℛN bereitgestellt. In einem nachfolgenden Schritt 402 wird eine Prüfsumme C3 basierend auf der Eingabe x berechnet. In einem nachfolgenden Schritt 403 wird die Operation x ^ : = τ 1 ( GDFTP-1 ( x ) )
    Figure DE102020121229B3_0040
    an x unter Verwendung der inversen Abbildung τ-1 ausgeführt, wodurch der die Ausgabe x̂ erzeugt wird. Im Folgenden wird in Schritt 404 eine Prüfsumme C4 basierend auf der Ausgabe x̂ berechnet. In einem nachfolgenden Schritt 405 wird bestimmt, ob die Prüfsumme C3 gleich der Prüfsumme C4 ist. Wenn dies der Fall ist, wird mit einem Schritt 407 fortgefahren, der die Ausgabe x̂ als Ergebnis zurückgibt. Wenn beide Prüfsummen C3, C4 nicht identisch sind, erfolgt eine Verzweigung zu Schritt 406, der einen Alarm auslöst, um anzugeben, dass die Operation τ-1(GDFT-1(x)) möglicherweise manipuliert wurde.
  • Basierend auf einer beispielhaften Implementierung der Prüfsummenfunktionen ψa, und ψ-a-1 können die folgenden Prüfsummen C1 bis C4 berechnet werden: C 1 : = N ψ a ( τ ( x ) ) C 2 : = ψ a 1 ( x ^ ) C 3 : = ψ a 1 ( x ) C 4 : = N ψ a ( τ ( x ^ ) )
    Figure DE102020121229B3_0041
  • Weitere Aspekte und Ausführungsformen
  • Die Beispiele beziehen sich auf ein Paar von Prüfsummenfunktionen ψa und ψ-a-1 mit den entsprechenden Prüfsummen C1 bis C4. Eine weitere Option besteht jedoch darin, eine Vielzahl verschiedener Paare von Prüfsummenfunktionen ( ψ a 1 , ψ a 1 1 ) , ( ψ a 2 , ψ a 2 1 ) ,
    Figure DE102020121229B3_0042
    für verschiedene Werte a k N
    Figure DE102020121229B3_0043
    auszuwählen und die entsprechenden Prüfsummen dementsprechend zu berechnen. Die Prüfung kann dann über die berechneten Prüfsummenpaare durchgeführt werden.
  • Die Verwendung mehrerer Paare von Prüfsummenfunktionen ψak erhöht die Wahrscheinlichkeit, dass ein Angriff oder Fehler erkannt werden kann.
  • Als weitere Option können die GDFT, die Abbildung τ und die Prüfsummenberechnungen auf Vektoren von Elementen des Vektors ℛN erweitert werden, wobei Berechnungen komponentenweise durchgeführt werden.
  • Die Abbildung τ wurde beispielhaft als τ(xk) := ζkxk angegeben, was insbesondere für den Ring ℛ[X]/(XN + 1) praktikabel ist. Andere Ringe können jedoch andere Abbildungen verwenden. Daher kann die Abbildung τ eine beliebige bijektive Abbildung von ℛN auf ℛN sein. Die Prüfsummenformeln können wie in den Gleichungen (1) gezeigt berechnet werden.
  • Beispielhafte Implementierungen
  • Eine beispielhafte Code-Implementierung in Python (Version 3.8.5) wird im Folgenden gezeigt:
    • import random
    • q:int = 12289
    • N:int = 1024
    • omega:int = 49
    • zeta:int = 7
    • N_inv:int = 12277
  • Die Variable q ist die Primzahl, die den Ring ℛ als endlichen Körper ℤq definiert, die Variable N ist die Dimension des Vektors über dem Ring ℛ, die Variable Omega entspricht ω als eine beispielhafte 1024-te Einheitswurzel in ℤq, die Variable Zeta entspricht ζ und ist eine 2048-te Einheitswurzel in ℤq und die Variable N_inv entspricht N-1 mod q.
  • Die Operation GDFT ist definiert als:
    Figure DE102020121229B3_0044
  • Die inverse Operation GDFT-1 ist definiert als:
    Figure DE102020121229B3_0045
  • Die Abbildung τ(x) ist definiert als:
    Figure DE102020121229B3_0046
  • Die inverse Abbildung τ-1(x) ist definiert als:
    Figure DE102020121229B3_0047
  • Die Prüfsummenfunktionen ψa(x) sind definiert als:
    Figure DE102020121229B3_0048
  • Die Funktion ψ1(τ(x)) ist definiert als:
    Figure DE102020121229B3_0049
  • Die Funktion ψ-1(τ(x)) ist definiert als:
    Figure DE102020121229B3_0050
  • Ein zufälliger Eingangsvektor in q N
    Figure DE102020121229B3_0051
    kann bestimmt werden durch: x _ inp = list ( map ( lambda _ : random . randint ( 0, q 1 ) , [ 0 ] N ) )
    Figure DE102020121229B3_0052
  • Die Prüfsummen C1 und C2 werden für die Operation GDFT mit a = 1 berechnet:
    • C1 = N * psi(x_inp,l) % q
    • x_res = GDFT(x_inp)
    • C2 = psi(x_res, -1)
    • print(„GDFT mit a = 1:“, „C1 =“, C1, “; C2 =“, C2)
  • Die Prüfsummen C3 und C4 werden für die inverse Operation GDFT-1 mit a = 1 berechnet:
    • C3 = psi(x_inp,-1)
    • x_res = GDFT_inv(x_inp)
    • C4 = N*psi(x_res, 1) % q
    • print („inverse GDFT mit a = 1:“, „C3 =“, C3, “; C4 =“, C4)
  • Die Prüfsummen C1 und C2 werden für die Operation GDFT mit a = -1 berechnet:
    • C1 = N * psi(x_inp,-1) % q
    • x_res = GDFT(x_inp)
    • C2 = psi(x_res, 1)
    • print(„GDFT mit a = -1:“, „C1 =“, C1, “; C2 =“, C2)
  • Die Prüfsummen C3 und C4 werden für die inverse Operation GDFT-1 mit a = - 1 berechnet:
    • C3 = psi (x_inp,1)
    • x_res = GDFT_inv(x_inp)
    • C4 = N * psi(x_res, -1) % q
    • print(„inverse GDFT mit a = -1:“, „C3 =“, C3, “; C4 =“, C4)
  • Die Prüfsummen C1 und C2 werden für die negativ verpackte Operation GDFT mit a = 1 berechnet:
    • C1 = N * psi_1_tau(x_inp) % q
    • x_res = GDFT(tau(x_inp))
    • C2 = psi(x_res, -1)
    • print („neg. verpackte GDFT mit a=1:“, „C1 =“, C1, “; C2 =“, C2)
  • Die Prüfsummen C3 und C4 werden für die negativ verpackte inverse Operation GDFT-1 mit a = 1 berechnet:
    • C3 = psi(x_inp,1)
    • x_res = tau_inv(GDFT_inv(x_inp))
    • C4 = N * psi_minus_1_tau(x_res) % q
    • print („neg.verp.inv.GDFT mit a=1:“, „C3 =“, C3, “; C4 =“, C4)
  • Die Prüfsummen C1 und C2 werden für die negativ verpackte Operation GDFT mit a = -1 berechnet: C 1 = N psi _ minus _ 1 _ tau ( x _ inp ) % q
    Figure DE102020121229B3_0053
    • x_res = GDFT(tau(x_inp))
    • C2 = psi(x_res, 1)
    • print(„neg. verp. GDFT mit a=-1:“, „C1 =“, C1, “; C2 =“, C2)
  • Die Prüfsummen C3 und C4 werden für die negative verpackte inverse Operation GDFT-1 mit a = -1 berechnet:
    • C3 = psi(x_inp, -1)
    • x_res = tau_inv(GDFT_inv(x_inp))
    • C4 = N * psi_1_tau(x_res) % q
    • print („neg.verp.inv.GDFT mit a=-1:“, „C3 =“, C3, “; C4 =“, C4)
  • Das Ausführen des Python-Programms ergibt ein Paar Prüfsummen (C1, C2) für die GDFTs und ein Paar Prüfsummen (C3, C4) für die negativ verpackten GDFTs, aus denen hervorgeht, dass die jeweiligen Prüfsummen jedes Paares (C1, C2) und (C3, C4) dieselben Werte aufweisen. Eine beispielhafte Ausgabe basierend auf Zufallszahlen ist:
    • GDFT mit a = 1: C1 = 8795 ; C2 = 8795
    • inverse GDFT mit a = 1: C3 = 3015 ; C4 = 3015 GDFT mit a = -1: C1 = 2821 ; C2 = 2821 inverse GDFT mit a = -1: C3 = 5061 ; C4 = 5061 neg. verpackte GDFT mit a=1: C1 = 4594 ; C2 = 4594 neg.verp.inv.GDFT mit a=1: C3 = 5061 ; C4 = 5061 neg. verp. GDFT mit a=-1: C1 = 2007 ; C2 = 2007 neg.verp.inv.GDFT mit a=-1: C3 = 3015 ; C4 = 3015
  • Die Prüfungen sind positiv, da die Prüfsummenpaare C1 und C2 sowie die Prüfsummenpaare C3 und C4 gleich sind.
  • 5 zeigt eine Verarbeitungsvorrichtung 500, die eine CPU 501, einen RAM 502, einen nichtflüchtigen Speicher 503 (NVM), ein Kryptomodul 504, ein analoges Modul 506, eine Eingabe/Ausgabeschnittstelle 507 und einen Hardware-Zufallszahlengenerator 112 umfasst.
  • In diesem Beispiel hat die CPU 501 Zugriff auf mindestens ein Kryptomodul 504 über einen gemeinsam genutzten Bus 505, mit dem jedes Kryptomodul 504 verbunden ist. Jedes Kryptomodul 504 kann insbesondere einen oder mehrere Kryptokerne umfassen, um bestimmte kryptografische Operationen durchzuführen. Beispielhafte Kryptokerne sind:
    • ► ein AES-Kern 509,
    • ► ein SHA-Kern 510,
    • ► ein ECC-Kern 511, und
    • ► ein RLWE-Kryptokern 508.
  • Insbesondere kann der RLWE-basierte Kryptokern 508 bereitgestellt werden, um mindestens eines der Folgenden zu beschleunigen: die GDFT-Operation, den τ Isomorphismus, die Prüfsummenberechnung oder jede beliebige ihrer inversen Operationen.
  • Die CPU 501, der Hardware-Zufallszahlengenerator 112, der NVM 503, das Kryptomodul 504, der RAM 502 und die Eingabe/Ausgabe-Schnittstelle 507 sind mit dem Bus 505 verbunden. Die Eingabe-Ausgabe-Schnittstelle 507 kann eine Verbindung zu anderen Geräten aufweisen, die der Verarbeitungsvorrichtung 500 ähneln können.
  • Das Kryptomodul 504 kann mit hardwarebasierten Sicherheitsmerkmalen ausgestattet sein oder nicht.
  • Es kann ein Bus 505 mit oder ohne Maskierung verwendet werden. Die Anweisungen zum Verarbeiten der hierin beschriebenen Schritte können insbesondere im NVM 503 gespeichert und von der CPU 505 verarbeitet werden. Die verarbeiteten Daten können im NVM 503 oder im RAM 502 gespeichert werden. Unterstützende Funktionen können von den Kryptomodulen 504 bereitgestellt werden (z.B. die Erweiterung von Pseudozufallsdaten).
  • Die Schritte des hierin beschriebenen Verfahrens können ausschließlich oder zumindest teilweise in dem Kryptomodul 504 durchgeführt werden, z.B. in dem RLWE-basierten Kryptokern 508.
  • Die Verarbeitungsvorrichtung 500 kann eine Chipkarte sein, die durch direkten elektrischen Kontakt oder durch ein elektromagnetisches Feld versorgt wird. Die Verarbeitungsvorrichtung 500 kann eine feste Schaltung sein oder auf rekonfigurierbarer Hardware (z.B. feldprogrammierbares Gate-Array (Field Programmable Gate Array, FPGA)) basieren. Die Verarbeitungsvorrichtung 500 kann mit einem Personalcomputer, einem Mikrocontroller, einem FPGA oder einem Smartphone verbunden sein.
  • Die hierin beschriebene Lösung kann von einem Kunden verwendet werden, der beabsichtigt, eine sichere Implementierung der RLWE-basierten Kryptografie auf einer Smartcard oder einem beliebigen sicheren Element bereitzustellen.
  • 6 zeigt ein weiteres Beispiel einer Verarbeitungsvorrichtung 600. Die Verarbeitungsvorrichtung 600 umfasst ein Hardwaresicherheitsmodul 601, einen nichtflüchtigen Speicher (NVM) 608, einen Direktzugriffsspeicher (RAM) 609, eine Schnittstelle 610 zur Kommunikation mit anderen Vorrichtungen und einen Anwendungsprozessor 607, der mit dem Hardwaresicherheitsmodul (HSM) 601, RAM 609, NVM 608 und Schnittstelle 610 gekoppelt ist.
  • Das HSM 601 umfasst einen Controller 602, einen Hardware-Zufallszahlengenerator (HRNG) 606 und mindestens ein Kryptomodul 603. Das Kryptomodul 603 umfasst auf beispielhafte Weise einen AES-Kern 604 und einen gitterbasierten Krypto (Lattice-Based Crypto, LBC)-Kern 605.
  • Gemäß einer Ausführungsform können das HSM 601 und der Anwendungsprozessor 607 auf demselben physischen Chip mit enger Kopplung hergestellt werden. Das HSM 601 liefert kryptografische Dienste und gesicherten Schlüsselspeicher, während der Anwendungsprozessor rechenintensive Aufgaben ausführen kann (z.B. Bilderkennung, Kommunikation, Bewegungssteuerung). Das HSM 601 kann nur über eine definierte Schnittstelle zugänglich sein und als vom Rest des Systems unabhängig angesehen werden, sodass eine Sicherheitsverletzung beim Anwendungsprozessor 607 nur begrenzte Auswirkungen auf die Sicherheit des HSM 601 hat. Das HSM 601 kann alle Aufgaben oder eine Teilmenge von Aufgaben ausführen, die in Bezug auf die Verarbeitungsvorrichtung 600 unter Verwendung der Steuerung 602 beschrieben sind, wobei der LBC-Kern 605 auf beispielhafte Weise von einem AES 604 und dem HRNG 606 unterstützt wird. Es kann die hierin beschriebenen Prozeduren (zumindest teilweise) ausführen, die entweder von einer internen Steuerung oder als CMOS-Schaltung gesteuert werden. Darüber hinaus kann auch der Anwendungsprozessor 607 die hierin beschriebenen Verfahren (zumindest teilweise, z.B. in Zusammenarbeit mit dem HSM 601) durchführen.
  • Die Verarbeitungsvorrichtung 600 mit diesem Anwendungsprozessor 607 und dem HSM 601 kann als zentrales Kommunikationsgateway oder (elektrische) Motorsteuereinheit in Autos oder anderen Fahrzeugen verwendet werden.
  • In einem oder mehreren Beispielen können die hierin beschriebenen Funktionen zumindest teilweise in Hardware implementiert sein, wie beispielsweise spezifischen Hardwarekomponenten oder einem Prozessor. Allgemeiner können die Techniken in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination davon implementiert sein. Bei ihrer Implementierung in Software können die Funktionen auf einem computerlesbaren Medium gespeichert oder als eine oder mehrere Anweisungen oder Code übertragen und von einer hardwarebasierten Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speichermedien, die einem greifbaren Medium, wie etwa Datenspeichermedien, entsprechen, oder Kommunikationsmedien umfassen, einschließlich eines beliebigen Mediums, das die Übertragung eines Computerprogramms von einem Ort zu einem anderen erleichtert, z.B. gemäß einem Kommunikationsprotokoll. Auf diese Weise können computerlesbare Medien im Allgemeinen (1) greifbaren computerlesbaren Speichermedien entsprechen, die nicht flüchtig sind, oder (2) einem Kommunikationsmedium, wie etwa einem Signal oder einer Trägerwelle. Datenspeichermedien können alle verfügbaren Medien sein, auf die ein oder mehrere Computer oder ein oder mehrere Prozessoren zugreifen können, um Anweisungen, Code und/oder Datenstrukturen zur Implementierung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium einschließen.
  • Solche computerlesbaren Speichermedien können exemplarisch und in keiner Weise einschränkend ein RAM, ein ROM, einen EEPROM, eine CD-ROM oder einen anderen optischen Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen, einen Flash-Speicher oder ein anderes Medium umfassen, das verwendet werden kann, um den gewünschten Programmcode in Form von Anweisungen oder Datenstrukturen zu speichern, auf die ein Computer zugreifen kann. Außerdem wird jede Verbindung ordnungsgemäß als computerlesbares Medium bezeichnet, d.h. als computerlesbares Übertragungsmedium. Wenn beispielsweise Anweisungen von einer Website, einem Server oder einer anderen entfernten Quelle unter Verwendung eines Koaxialkabels, eines Glasfaserkabels, eines verdrillten Leitungspaars, einer digitalen Teilnehmerleitung (Digital Subscriber Line, DSL) oder drahtloser Technologien wie Infrarot, Funk und Mikrowelle übertragen werden, sind Koaxialkabel, Glasfaserkabel, verdrilltes Leistungspaar, DSL oder drahtlose Technologien wie Infrarot, Radio und Mikrowelle in der Definition des Mediums enthalten. Es versteht sich jedoch, dass computerlesbare Speichermedien und Datenspeichermedien keine Verbindungen, Trägerwellen, Signale oder andere flüchtigen Medien enthalten, sondern auf nichtflüchtige, greifbare Speichermedien gerichtet sind. Eine Platte (Disk, Diskette) und eine Disc, wie hierin verwendet, umfasst Compact Disc (CD), Laser Disc, optische Disc, Digital Versatile Disc (DVD), Diskette und Blu-ray-Disc, wobei Disks normalerweise Daten magnetisch wiedergeben, während Discs Daten optisch mit Lasern wiedergeben. Kombinationen des Vorstehenden sollten ebenfalls in den Umfang von computerlesbaren Medien eingeschlossen sein.
  • Anweisungen können von einem oder mehreren Prozessoren ausgeführt werden, wie etwa eine oder mehrere Verarbeitungseinheiten (CPUs), digitale Signalprozessoren (DSPs), Allzweck-Mikroprozessoren, anwendungsspezifische integrierte Schaltkreise (ASICs), feldprogrammierbare Logikarrays (FPGAs) oder andere äquivalente integrierte oder diskrete Logikschaltungen. Dementsprechend kann sich der Begriff Prozessor, wie hierin verwendet, auf eine der vorstehenden Strukturen oder eine andere Struktur beziehen, die zur Implementierung der hier beschriebenen Techniken geeignet ist. Darüber hinaus kann in einigen Aspekten die hierin beschriebene Funktionalität in dedizierten Hardware- und/oder Softwaremodulen bereitgestellt werden, die zum Kodieren und Dekodieren konfiguriert oder in einem kombinierten Codec enthalten sind. Die Techniken könnten auch vollständig in einer oder mehreren Schaltungen oder Logikelementen implementiert sein.
  • Die Techniken dieser Offenbarung können in einer Vielzahl von Geräten oder Vorrichtungen implementiert sein, einschließlich eines drahtlosen Handgeräts, einer integrierten Schaltung (IC) oder eines Satzes von ICs (z.B. eines Chipsatzes). In dieser Offenbarung werden verschiedene Komponenten, Module oder Einheiten beschrieben, um funktionale Aspekte von Vorrichtungen hervorzuheben, die konfiguriert sind, um die offenbarten Techniken auszuführen, erfordern jedoch nicht notwendigerweise die Realisierung durch verschiedene Hardwareeinheiten. Vielmehr können, wie vorstehend beschrieben, verschiedene Einheiten in einer einzigen Hardwareeinheit kombiniert oder durch eine Sammlung interoperativer Hardwareeinheiten, einschließlich eines oder mehrerer Prozessoren, wie vorstehend beschrieben, in Verbindung mit geeigneter Software und/oder Firmware bereitgestellt werden.

Claims (11)

  1. Verfahren zur Überprüfung einer GDFT-basierten Operation in einer gesicherten Domäne, das Verfahren umfassend: - Berechnen einer ersten Prüfsumme basierend auf einer Eingabe, - Bestimmen eines Ergebnisses der GDFT-basierten Operation basierend auf der Eingabe, - Berechnen einer zweiten Prüfsumme basierend auf dem Ergebnis, - Vergleichen der ersten Prüfsumme und der zweiten Prüfsumme, und - Fortfahren, wenn die erste Prüfsumme der zweiten Prüfsumme entspricht, oder - Auslösen einer vordefinierten Aktion, wenn die erste Prüfsumme nicht der zweiten Prüfsumme entspricht, - wobei die Eingabe ein Eingangsvektor mit N Komponenten ist, - wobei die erste Prüfsumme und/oder die zweite Prüfsumme als Summierung über die N Elemente bestimmt wird, wobei jedes Element eine Multiplikation umfasst von - einer Komponente des Eingangsvektors mit - derselben oder einer anderen Komponente des Eingangsvektors mit - einer Konstante.
  2. Verfahren nach Anspruch 1, bei dem die erste Prüfsumme bestimmt wird als i = 0 N 1 x i x j ( i ) c i ,
    Figure DE102020121229B3_0054
    wobei - xi ein Element des Eingangsvektors ist, - xj(i) ein Element xi oder ein anderes Element des Eingangsvektors ist, - j(i) eine bijektive Abbildung {0,...,N - 1} → {0,...,N - 1} ist, - ci eine Konstante ist, - i mit i = 1, ... ,N - 1 eine Variable für die Summierung ist.
  3. Verfahren nach Anspruch 2, bei dem j ( i ) : = a i mod N ,
    Figure DE102020121229B3_0055
    gilt, wobei a eine ungerade ganze Zahl ist.
  4. Verfahren nach einem der Ansprüche 2 oder 3, bei dem c i : = c
    Figure DE102020121229B3_0056
    gilt, wobei c eine Konstante in dem Ring ℛ ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem das Ergebnis ein Vektor ist und bei dem die zweite Prüfsumme bestimmt wird als i = 0 N 1 x ^ i x ^ j ' ( i ) c ^ i ,
    Figure DE102020121229B3_0057
    wobei - x̂i ein Element des Ergebnisvektors ist, - x̂j(i) das Element x̂i oder ein anderes Element des Ergebnisvektors ist, - j'(i) eine bijektive Abbildung {0, ... , N - 1} → {0, ... , N - 1} ist, - ĉi eine andere Konstante ist.
  6. Verfahren nach Anspruch 5, bei dem j ' ( i ) : = a ' i mod N
    Figure DE102020121229B3_0058
    gilt mit a ' : = a 1 mod N .
    Figure DE102020121229B3_0059
  7. Verfahren nach einem der Ansprüche 5 oder 6, bei dem c ^ i : = c ^
    Figure DE102020121229B3_0060
    gilt, wobei ĉ eine Konstante in dem Ring ℛ ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die gesicherte Domäne mindestens eines der Folgenden umfasst - eine Sicherheitseinrichtung, - eine gesicherte Cloud, - ein gesichertes Gerät, - eine integrierte Schaltung, - ein Hardwaresicherheitsmodul, - ein vertrauenswürdiges Plattformmodul, - eine Kryptoeinheit, - ein FPGA, - eine Verarbeitungseinheit, - eine Steuerung, - eine Smartcard.
  9. Sicherheitseinrichtung, die eingerichtet ist, die folgenden Schritte auszuführen: - Berechnen einer ersten Prüfsumme basierend auf einer Eingabe, - Bestimmen eines Ergebnisses einer GDFT-basierten Operation basierend auf der Eingabe, - Berechnen einer zweiten Prüfsumme basierend auf dem Ergebnis, - Vergleichen der ersten Prüfsumme und der zweiten Prüfsumme, und - Fortfahren, wenn die erste Prüfsumme der zweiten Prüfsumme entspricht, oder - Auslösen einer vordefinierten Aktion, wenn die erste Prüfsumme der zweiten Prüfsumme nicht entspricht, - wobei die Eingabe ein Eingangsvektor mit N Komponenten ist, - wobei die erste Prüfsumme und/oder die zweite Prüfsumme als Summierung über die N Elemente bestimmt wird, wobei jedes Element eine Multiplikation umfasst von - einer Komponente des Eingangsvektors mit - derselben oder einer anderen Komponente des Eingangsvektors mit - einer Konstante.
  10. Sicherheitseinrichtung nach Anspruch 9, wobei die Sicherheitseinrichtung eines der Folgenden ist oder mindestens eines der Folgenden umfasst: - eine gesicherte Cloud, - ein gesichertes Gerät, - eine integrierte Schaltung, - ein Hardwaresicherheitsmodul, - ein vertrauenswürdiges Plattformmodul, - eine Kryptoeinheit, - ein FPGA, - eine Verarbeitungseinheit, - eine Steuerung, - eine Smartcard.
  11. Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Verarbeitungsgeräts geladen werden kann und Softwarecodeabschnitte zum Durchführen der Schritte des Verfahrens gemäß einem der Ansprüche 1 bis 8 umfasst.
DE102020121229.1A 2020-08-12 2020-08-12 Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens Active DE102020121229B3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020121229.1A DE102020121229B3 (de) 2020-08-12 2020-08-12 Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens
US17/395,208 US20220050927A1 (en) 2020-08-12 2021-08-05 Checking a GDFT Operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020121229.1A DE102020121229B3 (de) 2020-08-12 2020-08-12 Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens

Publications (1)

Publication Number Publication Date
DE102020121229B3 true DE102020121229B3 (de) 2022-01-27

Family

ID=79179632

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020121229.1A Active DE102020121229B3 (de) 2020-08-12 2020-08-12 Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens

Country Status (2)

Country Link
US (1) US20220050927A1 (de)
DE (1) DE102020121229B3 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017117899A1 (de) 2017-08-07 2019-02-07 Infineon Technologies Ag Durchführen einer kryptografischen Operation
DE102018108313A1 (de) 2018-04-09 2019-10-10 Infineon Technologies Ag Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
DE102019108095A1 (de) 2019-03-28 2020-10-01 Infineon Technologies Ag Ausführen einer kryptografischen Operation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3773482B2 (ja) * 2002-10-30 2006-05-10 独立行政法人科学技術振興機構 改ざん検出方法、改ざん検出プログラム及びそのプログラムを記録した記録媒体
US7788312B2 (en) * 2007-01-19 2010-08-31 Mitsubishi Electric Research Laboratories, Inc. Apparatus and method for reducing errors in analog circuits while processing signals
DE102017117907B4 (de) * 2017-08-07 2023-04-27 Infineon Technologies Ag Durchführen einer kryptografischen Operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017117899A1 (de) 2017-08-07 2019-02-07 Infineon Technologies Ag Durchführen einer kryptografischen Operation
DE102018108313A1 (de) 2018-04-09 2019-10-10 Infineon Technologies Ag Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
DE102019108095A1 (de) 2019-03-28 2020-10-01 Infineon Technologies Ag Ausführen einer kryptografischen Operation

Also Published As

Publication number Publication date
US20220050927A1 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
DE102018108313A1 (de) Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
DE102017117907B4 (de) Durchführen einer kryptografischen Operation
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE102019108095A1 (de) Ausführen einer kryptografischen Operation
DE102018122278A1 (de) Ausführen einer kryptographischen Operation
DE102017117899A1 (de) Durchführen einer kryptografischen Operation
DE102010002241B4 (de) Vorrichtung und Verfahren zur effizienten einseitigen Authentifizierung
DE102006022960A1 (de) Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt
DE102020119569B3 (de) Bereitstellen einer kryptografischen Information
DE102018115439A1 (de) Technologien zur fehlertoleranten Berechnung von Elliptische-Kurven-Digitalsignaturen
DE112009000154T5 (de) Änderung der Darstellung eines Punktes auf einer elliptischen Kurve
DE102008051447B9 (de) Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes
DE102015107823A1 (de) Randomisierter Speicherzugriff
EP1368929A2 (de) Verfahren zur authentikation
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
DE102006002891B4 (de) Verfahren, Vorrichtung und System zum Verifizieren von auf einer elliptischen Kurve ermittelten Punkten
DE102020113198A1 (de) Kryptografische Operation
DE102020121229B3 (de) Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens
DE102018126931A1 (de) Vorrichtung und Verfahren auf der Basis direkter anonymer Attestierung
EP1442391B1 (de) Verfahren und vorrichtung zum absichern einer berechnung in einem kryptographischen algorithmus
EP3249520B1 (de) Berechnung einer sicheren skalarmultiplikation auf einer elliptischen kurve unter verwendung einer unsicheren und einer sicheren umgebung
DE10161137A1 (de) Verfahren und System zum kryptographischen Bearbeiten von Daten
WO2003034268A2 (de) Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
DE102021106883A1 (de) Komprimierung in der gitterbasierten Kryptografie
EP3314768B1 (de) Vorrichtung und verfahren zum erstellen einer asymmetrischen prüfsumme

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final