DE102019108095A1 - Ausführen einer kryptografischen Operation - Google Patents

Ausführen einer kryptografischen Operation Download PDF

Info

Publication number
DE102019108095A1
DE102019108095A1 DE102019108095.9A DE102019108095A DE102019108095A1 DE 102019108095 A1 DE102019108095 A1 DE 102019108095A1 DE 102019108095 A DE102019108095 A DE 102019108095A DE 102019108095 A1 DE102019108095 A1 DE 102019108095A1
Authority
DE
Germany
Prior art keywords
ciphertext
candidate
value
public key
test value
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
DE102019108095.9A
Other languages
English (en)
Inventor
Thomas Pöppelmann
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 DE102019108095.9A priority Critical patent/DE102019108095A1/de
Priority to US16/834,432 priority patent/US11283608B2/en
Publication of DE102019108095A1 publication Critical patent/DE102019108095A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Es wird ein Verfahren zum Verarbeiten eines Chiffretextes vorgeschlagen, wobei ein geheimer Schlüssel und der Chiffretext verwendet werden, um einen Startwert zu bestimmen, wobei ein Kandidat für einen öffentlichen Schlüssel von dem Chiffretext unter Verwendung des Startwerts extrahiert wird, wobei ein Prüfwertkandidat basierend auf dem Kandidaten für einen öffentlichen Schlüssel bestimmt wird, wobei der Prüfwertkandidat mit einem Prüfwert verglichen wird, und wobei der Chiffretext weiter verarbeitet wird, falls der Vergleich anzeigt, dass der Prüfwertkandidat dem Prüfwert entspricht. Es wird auch ein entsprechendes Gerät bereitgestellt.

Description

  • Ausführungsformen der vorliegenden Erfindung beziehen sich auf einen Ansatz zur effizienten Durchführung einer kryptografischen Operation, insbesondere zur effizienten Durchführung einer Formbarkeitsprüfung während einer kryptografischen Operation.
  • Das Ziel ist es, bestehende Lösungen zu verbessern, und insbesondere eine effiziente Lösung zur Durchführung einer Formbarkeitsprüfung bereitzustellen.
  • Dies wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Weitere Ausführungsformen ergeben sich von 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 angestrebtes Ergebnis zu erreichen. Die Merkmale des Verfahrens könnten mit jeglichem (jeglichen) Merkmal(en) des Geräts, der Vorrichtung oder des Systems oder umgekehrt kombiniert werden.
  • Es wird ein Verfahren zur Verarbeitung eines Chiffretextes vorgeschlagen,
    • - wobei ein geheimer Schlüssel und der Chiffretext verwendet werden, um einen Startwert (auch bezeichnet als „seed“) zu bestimmen,
    • - wobei ein Kandidat für einen öffentlichen Schlüssel von dem Chiffretext unter Verwendung des Startwerts extrahiert wird,
    • - wobei ein Prüfwertkandidat basierend auf dem Kandidaten für einen öffentlichen Schlüssel bestimmt wird,
    • - wobei der Prüfwertkandidat mit einem Prüfwert verglichen wird,
    • - wobei der Chiffretext weiter verarbeitet wird, falls der Vergleich anzeigt, dass der Prüfwertkandidat dem Prüfwert entspricht.
  • Es wird darauf hingewiesen, dass der Chiffretext oder ein Abschnitt des Chiffretextes weiter verarbeitet werden kann, falls der Vergleich anzeigt, dass der Prüfwertkandidat dem Prüfwert entspricht.
  • Der Chiffretext kann mehrere Abschnitte umfassen; mindestens ein solcher Abschnitt kann verwendet werden, um die Nutzlast (Daten oder Informationen) zu bestimmen, die weiter verarbeitet werden müssen, falls es bestätigt werden kann, dass der Chiffretext nicht manipuliert wurde.
  • Es ist eine Option, mindestens eine Hash-Funktion bei mindestens einer Gelegenheit zu verwenden, um eine Bit-Folge zu erzeugen, die ein unterschiedliches Erscheinungsbild zu den Daten hat, die in die Hash-Funktion eingegeben werden.
  • Der Prüfwertkandidat kann insbesondere dem Prüfwert entsprechen, falls beide identisch sind oder einer eindeutig in den anderen umgewandelt werden kann.
  • Der Chiffretext kann durch einen Empfänger erhalten werden, der insbesondere eine kryptografische Einheit ist.
  • Daher ermöglicht die Lösung eine Formbarkeitsprüfung während einer kryptografischen Operation, bei der der öffentliche Schlüssel von dem Chiffretext extrahiert und mit dem Prüfwert als ein Referenzwert verglichen wird.
  • Gemäß einer Ausführungsform werden der geheime Schlüssel und der Prüfwert mit einem Decodierer gespeichert oder sind für den Decodierer zugänglich.
  • Der Decodierer kann eine kryptografische Einheit sein, die das Verfahren ausführt (auch bezeichnet als Empfänger).
  • Gemäß einer Ausführungsform wird ein Fehler bestimmt, falls der Vergleich anzeigt, dass der Prüfwertkandidat nicht dem Prüfwert entspricht.
  • Der Fehler kann zu einer Beendigung des Verfahrens oder zu einer Benachrichtigung führen, die anzeigt, dass der Fehler ausgegeben werden kann.
  • Gemäß einer Ausführungsform wird der Prüfwert basierend auf einer Hash-Funktion des öffentlichen Schlüssels bestimmt.
  • Daher kann der öffentliche Schlüssel in die Hash-Funktion eingegeben werden, um den Prüfwert zu bestimmen. Als eine Option kann mindestens ein zusätzlicher Wert zusammen mit dem öffentlichen Schlüssel eingegeben werden, um den Prüfwert zu bestimmen.
  • Gemäß einer Ausführungsform wird der Prüfwert basierend auf einer Hash-Funktion von zwei verketteten Polynomen a und p bestimmt, wobei das Polynom a Teil des öffentlichen Schlüssels ist und das Polynom p der öffentliche Schlüssel p = r1 - a · r2 ist, wobei r1 und r2 zufällig erzeugte Polynome sind.
  • Gemäß einer Ausführungsform werden Wertkomponenten von Kandidaten für öffentliche Schlüssel a' und p' von dem Chiffretext c1, c2 extrahiert, durch Berechnen von a ' = ( c 1 e 2 ) e 2 1
    Figure DE102019108095A1_0001
    und p ' = ( c 2 R L W E e n c o d e ( ν ' ) e 3 ) e 1 1 ,
    Figure DE102019108095A1_0002
    wobei e1, e2 und e3 Rauschpolynome sind, v' ein entschlüsselter Chiffretext ist, und RLWEencode ( ) eine Codierungsfunktion ist.
  • Gemäß einer Ausführungsform wird das Rauschpolynom e1 so erzeugt, dass es invertierbar ist.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner:
    • - Empfangen des Chiffretextes,
    • - wobei der geheime Schlüssel und der Chiffretext verwendet werden, um den Startwert unter Verwendung einer Entschlüsselungsoperation zu bestimmen;
    • - wobei der Prüfwertkandidat basierend auf dem Kandidaten für einen öffentlichen Schlüssel bestimmt wird, indem der Kandidat für einen öffentlichen Schlüssel in eine Erzeugungsfunktion eingegeben wird.
  • Gemäß einer Ausführungsform wird eine Nutznachricht basierend auf dem Startwert entschlüsselt.
  • Gemäß einer Ausführungsform wird eine Nutznachricht basierend auf der Entschlüsselungsoperation bestimmt.
  • Gemäß einer Ausführungsform wird eine Integritätsprüfung der Nutznachricht durch Verwenden des Startwerts, eines anderen Abschnitts des Chiffretextes und mindestens einer Hash-Funktion durchgeführt.
  • Gemäß einer Ausführungsform verwendet eine solche Verarbeitung die zahlentheoretische Transformation.
  • Gemäß einer Ausführungsform wird das Verfahren an einem Sicherheitsgerät oder zum Betreiben eines Sicherheitsgeräts verwendet, wobei ein solches Sicherheitsgerät mindestens eines der Folgenden umfasst:
    • - einen integrierten Schaltkreis,
    • - ein Hardware-Sicherheitsmodul,
    • - ein vertrauenswürdiges Plattformmodul,
    • - eine Kryptoeinheit,
    • - ein FPGA,
    • - eine Verarbeitungseinheit,
    • - eine Steuerung,
    • - eine Smartcard.
  • Gemäß einer Ausführungsform verwendet die Verarbeitung des Chiffretextes mindestens eine kryptografische Gitteroperation (Lattice-Operation).
  • Ferner wird ein Sicherheitsgerät bereitgestellt, das angeordnet ist, um die folgenden Schritte auszuführen:
    • - Empfangen eines Chiffretextes;
    • - Bestimmen eines Startwerts basierend auf einem geheimen Schlüssel und dem Chiffretext;
    • - Extrahieren eines Kandidaten für einen öffentlichen Schlüssel von dem Chiffretext unter Verwendung des Startwerts;
    • - Bestimmen eines Prüfwertkandidaten basierend auf dem Kandidaten für einen öffentlichen Schlüssel;
    • - Vergleichen des Prüfwertkandidaten mit einem Prüfwert;
    • - Weiterverarbeiten des Chiffretextes, falls der Vergleich anzeigt, dass der Prüfwertkandidat dem Prüfwert entspricht.
  • Gemäß einer Ausführungsform ist das Sicherheitsgerät eines der Folgenden oder umfasst mindestens eines der Folgenden:
    • - einen integrierten Schaltkreis,
    • - ein Hardware-Sicherheitsmodul,
    • - ein vertrauenswürdiges Plattformmodul,
    • - eine Kryptoeinheit,
    • - ein FPGA,
    • - eine Verarbeitungseinheit,
    • - eine Steuerung,
    • - eine Smartcard.
  • Zusätzlich wird ein Computerprogrammprodukt vorgeschlagen, das direkt in einen Speicher eines digitalen Verarbeitungsgeräts geladen werden kann, das Software-Codeabschnitte zum Ausführen der Schritte des Verfahrens wie hierin beschrieben umfasst.
  • Es wird jedoch ein Sicherheitsgerät vorgeschlagen, das Folgendes umfasst:
    • - Mittel zum Empfangen eines Chiffretextes;
    • - Mittel zum Bestimmen eines Startwerts basierend auf einem geheimen Schlüssel und dem Chiffretext;
    • - Mittel zum Extrahieren eines Kandidaten für einen öffentlichen Schlüssel von dem Chiffretext unter Verwendung des Startwerts;
    • - Mittel zum Bestimmen eines Prüfwertkandidaten basierend auf dem Kandidaten für einen öffentlichen Schlüssel;
    • - Mittel zum Vergleichen des Prüfwertkandidaten mit einem Prüfwert;
    • - Mittel zum Weiterverarbeiten des Chiffretextes, falls der Vergleich anzeigt, dass der Prüfwertkandidat dem Prüfwert entspricht.
  • Ausführungsformen werden unter Bezugnahme auf die Zeichnungen gezeigt und veranschaulicht. Die Zeichnungen dienen zur Veranschaulichung des Grundprinzips, sodass nur zum Verstehen des Grundprinzips notwendige Aspekte veranschaulicht werden. Die Zeichnungen sind nicht maßstabsgetreu. In den Zeichnungen bezeichnen dieselben Referenzzeichen gleiche Merkmale.
    • 1 zeigt einen bekannten Ansatz zum Transformieren einer CPA-sicheren PKE oder eines KEM in CCA-sichere Varianten unter Verwendung einer Fujisaki-Okamoto (FO) -Transformation;
    • 2 zeigt ein beispielhaftes Blockdiagramm, um diesen Ansatz durch Verwenden eines privaten Schlüssels (geheimer Schlüssel) und eines Prüfwerts für Entschlüsselungszwecke in einer kryptografischen Einheit (auch bezeichnet als Empfänger) zu visualisieren;
    • 3 zeigt ein schematisches Flussdiagramm, das Schritte umfasst, die die Verwendung des Prüfwerts β auf eine effiziente Weise zusammenfassen;
    • 4 zeigt ein beispielhaftes Blockdiagramm, das einen Puffer umfasst, der mit einem Systembus und mehreren funktionalen (Software und/oder Hardware) Komponenten gekoppelt ist;
    • 5 zeigt eine beispielhafte Anordnung eines Verarbeitungsgeräts, das eine CPU, einen RAM, einen nichtflüchtigen Speicher, ein Kryptomodul, ein Analogmodul, eine Eingabe/Ausgabe-Schnittstelle und einen Hardware-Zufallszahlengenerator umfasst;
    • 6 zeigt eine alternative Anordnung mit einem Hardware-Sicherheitsmodul (Hardware-Security-Module - HSM).
  • Verschiedene Internet- und Industriestandards verwenden asymmetrische Kryptografie basierend auf RSA oder Elliptic-Curve-Cryptography (ECC), um die Datenkommunikation zwischen Smartcards, Smartphones, Computern, Servern oder industriellen Steuerungssystemen zu schützen. Als ein Beispiel kann mit dem RSA-Algorithmus ein Schema zum Verschlüsseln mit öffentlichem Schlüssel (Public-Key-Encryption (PKE) scheme) realisiert werden, das das Senden einer verschlüsselten E-Mail (zum Beispiel mit PGP/GPG oder S/MIME) an einen Empfänger ermöglicht, ohne dass zuvor ein symmetrischer Schlüssel über einen sicheren Kanal ausgetauscht werden muss. Stattdessen ist der öffentliche Schlüssel des Empfängers ausreichend, um Vertraulichkeit zu erreichen.
  • Andere Anwendungen der asymmetrischen Kryptografie sind digitale Signaturen, die ebenfalls auf RSA oder ECC basieren. Sie können zum Signieren und Überprüfen von Daten verwendet werden, und der öffentliche Schlüssel wird zum Überprüfen der Gültigkeit einer Signatur verwendet.
  • Zusammen sind PKE und digitale Signaturen in dem Transport-Layer-Security (TLS) - Protokoll entscheidend, das das Rückgrat der gesicherten Kommunikation im Internet ist und durch Browser, Smartphones und Internet-of-Things (IoT) -Geräte verwendet wird. TLS richtet einen gesicherten Kanal zwischen zwei Geräten ein, auf dem die Kommunikation verschlüsselt, auf Manipulationen überprüft und die Identität der Teilnehmer durch Verwenden eines digitalen Zertifikats überprüft wird, das durch eine Public-Key-Infrastructure (PKI) bereitgestellt wird. Beim Verbinden mit einer Website, zum Beispiel einer Bank, durch Verwenden von https anstelle von http, verwendet der Browser TLS. Üblicherweise können ein grünes Schloss und weitere Informationen angezeigt werden, um zu zeigen, dass die Kommunikation mit der Website der Bank läuft und dass Angriffe durch einen sogenannten Man-in-the-Middle verhindert werden. Ohne eine solche PKI-basierte Identitätsprüfung in Kombination mit einer starken Datenverschlüsselung wäre es für Angreifer möglich, die Kommunikation zu manipulieren und sich als die Website auszugeben, auf die zugegriffen wird.
  • Es ist jedoch bekannt, dass auf RSA und ECC basierende öffentliche Schlüssel einem erfolgreichen Angriff durch Verwenden von zum Beispiel Quantencomputern ausgesetzt sein können.
  • Ein Quantencomputer kann als ein Computer beschrieben werden, der quantenmechanische Phänomene direkt nutzt, um die Verarbeitung zu beschleunigen. Entscheidende Konzepte zum Aufbau eines Quantencomputers sind sogenannte Quanten-Bits oder Qu-Bits, die einen Zustand in einem Quantenregister speichern. Solche Quantencomputer können verwendet werden, um kryptografische Konzepte erfolgreich zu brechen, die als ausreichend sicher angesehen wurden, bevor eine solche Verarbeitungsleistung verfügbar war.
  • Daher gibt es eine allgemeine Motivation, von klassischen asymmetrischen Kryptosystemen (RSA/ECC) zu Schemata überzugehen, die durch Quantencomputer nicht erfolgreich angegriffen werden können. Infolgedessen sind neue Lösungen für Signaturschemata, Schlüsselaustausch und Verschlüsselung mit öffentlichem Schlüssel erforderlich, die nicht auf denselben Grundlagen wie RSA und ECC (das heißt dem diskreten Logarithmusproblem/Factoring) basieren. Dieser Bedarf an neuen technischen Lösungen wurde bereits durch Normungsgremien wie dem NIST (National Institute of Standards and Technology), die alternative Kryptosysteme untersuchen, anerkannt.
  • Ein Kryptosystem kann eine kryptografische Verschlüsselung mit öffentlichem Schlüssel, ein Schlüsselaustausch oder ein Signaturschema oder ein erweitertes Schema wie eine homomorphe Verschlüsselung oder eine auf Attributen basierende Verschlüsselung sein. Bei der Verschlüsselung mit öffentlichem Schlüssel wird ein nicht geheimer öffentlicher Schlüssel verwendet, um Daten zu verschlüsseln, die nur mit dem zugehörigen geheimen Schlüssel entschlüsselt werden können. In Signaturschemata wird ein geheimer Schlüssel zum Signieren einer Nachricht verwendet, und mit dem zugehörigen öffentlichen Schlüssel kann überprüft werden, ob der Unterzeichner im Besitz des geheimen Schlüssels und somit zur Herstellung der Signatur berechtigt war. Der Schlüsselaustausch oder die Schlüsseleinrichtung ist ein interaktives Protokoll, bei dem zwei Parteien einen geheimen Schlüssel einrichten, der einem passiven oder manchmal aktiven Gegner oder Lauscher unbekannt ist. Es können auch unterschiedliche Optionen verwendet werden, die Verschlüsselung mit öffentlichem Schlüssel, Schlüsselaustausch oder Signaturschemata in Protokolle, wie zum Beispiel Transport-Layer-Security (TLS), kombinieren.
  • Eine Klasse von Schemata, die Angriffen durch Quantencomputer widerstehen soll, sind gitterbasierte Kryptosysteme. Gitterbasierte Kryptosysteme könnten der Nachfolger von RSA und ECC werden, und entweder auf großen Matrizen (Standardgitter) oder auf Polynomringen (ideale Gitter) arbeiten. Für die gitterbasierte Kryptografie wird zum Beispiel auf https://en.wikipedia.org/wiki/Latticebased_cryptography verwiesen.
  • Ein Gitter ist eine Struktur, die durch ganzzahlige lineare Kombinationen von Basisvektoren erzeugt wird. Somit kann ein Gitter als eine regelmäßige Struktur in einem n-dimensionalen Raum beschrieben werden. Ein Gitter kann auch als eine Anordnung von Punkten in einem euklidischen Raum mit einer regelmäßigen Struktur wahrgenommen werden. Bei n linear unabhängigen Vektoren b1, ... , bn, ∈ ℝm ist ein durch sie erzeugtes Gitter L
    Figure DE102019108095A1_0003
    definiert als L ( b 1 , , b n ) = { x i b i | x i Z } ,
    Figure DE102019108095A1_0004
    wobei
    • - b1, ... , bn eine Basis des Gitters ist, und
    • - ein Element von ℝm ein Vektor mit m Einträgen von ℝ ist.
  • In dem Gitter L
    Figure DE102019108095A1_0005
    (das heißt einem n-dimensionalen Raum) wird vermutet, dass bestimmte grundsätzliche Probleme, wie das Finden einer kurzen Basis oder eines kurzen Vektors, rechnerisch schwierig oder zumindest komplex genug sind, um sie für die Kryptografie zu verwenden. Gewöhnlich kann die Schwierigkeit des Brechens eines gitterbasierten Kryptosystems verringert werden, oder mit der Schwierigkeit des Lösens eines solchen grundsätzlichen Problems zusammenhängen. Die gitterbasierte Kryptografie oder ein gitterbasiertes Kryptosystem ist ein kryptografisches System, dessen Sicherheit auf der Schwierigkeit bestimmter mathematisch schwieriger Probleme in Gittern basiert oder damit zusammenhängt.
  • Gitter können verwendet werden, um Kryptosysteme aufzubauen. Die gitterbasierte Kryptografie ist auch unter Bezugnahme auf das Problem des benutzerfreundlichen Learning-With-Errors (LWE) -Problems und des Ring-LWE (RLWE) -Problems bekannt. In diesem Zusammenhang bezieht sich ein „Problem“ auf ein mathematisches Problem (zum Beispiel das Finden von etwas), von dem vermutet wird, dass es schwierig zu lösen ist (das heißt es ist kein Polynomzeitalgorithmus verfügbar), das jedoch auch den Aufbau eines kryptografischen Schemas ermöglicht (wie zum Beispiel Factoring-Problem für RSA oder diskreter Logarithmus für ECC).
  • Um ein LWE-Problem zu lösen, muss im Allgemeinen ein geheimer Vektor s über dem Ring des ganzzahligen Modulos q wiederhergestellt werden, wenn ein Satz von ungefähren zufälligen linearen Gleichungen auf dem geheimen Vektor s gegeben ist. Daher wird der Satz linearer Gleichungen durch ein gewisses Maß an Zufälligkeit verfälscht, was es für bekannte Algorithmen schwierig macht, diesen Satz von Gleichungen zu lösen.
  • Die LWE- und RLWE-Probleme ermöglichen es daher, Schemata zu konstruieren, bei denen die tatsächliche Gitterstruktur für den Designer eines Schemas nicht wirklich sichtbar ist. Wenn jedoch die Sicherheit von LWE/RLWE-basierten Schemata bewiesen wird, wird die Gitterstruktur auch verwendet, wenn versucht wird, die LWE- oder RLWE-Probleme zu lösen, da Gitteralgorithmen ein effizienter Weg sind, den geheimen Vektor oder das Polynom s zu finden. Dies wird auch als Lösen eines „Gitterproblems“ beschrieben. Das RLWE-Problem arbeitet über Polynomringe und unterstützt eine Sicherheitsreduzierung auf schwierige Probleme bei idealen Gittern, während LWE die Reduzierung auf willkürliche Gitter ermöglicht. Ideale Gitter tragen mehr Struktur, da nicht alle Gitter ideale Gitter sind, sondern auch das Design von Schemata ermöglichen, die praktischere Längen für öffentliche Schlüssel, Chiffretext und Signaturen verwenden.
  • Prominente Beispiele für gitterbasierte Kryptografie sind die sogenannten NTRU- und NTRU-Vorzeichen-Schemata, sowie das sogenannte GGH (Goldreich-Goldwasser-Halevi, siehe zum Beispiel https://en.wikipedia.org/wiki/GGH_encryption_scheme)-Schema. Für die meisten Schemata ist die Konvertierung von der Verschlüsselung mit öffentlichem Schlüssel zum Schlüsselaustausch trivial. Zusätzlich können für PKE verschiedene Sicherheitsstufen wie semantische Sicherheit in Bezug auf Adaptive-Chosen-Plaintext (CPA) oder semantische Sicherheit in Bezug auf Adaptive-Chosen-Ciphertext-Attacks (CCA) durch Verwenden von Standardkonvertierungen erreicht werden.
  • Dies wurde beispielhaft für das NewHope-Schema gezeigt, das auch als CPA-sichere oder CCA-sichere PKE instanziiert werden kann [NewHopeNistl7]. Das NewHope-Simple-Schema und andere Schemata sind eine unkomplizierte Anpassung eines Schemas namens LPR10 (siehe [NewHopeSimplePaperEprint16]). Beispiele für gitterbasierte Signaturschemata sind Dilithium, BLISS, GLP12 und qTESLA (siehe zum Beispiel https://csrc.nist.gov/Projects/Post-Quantum-Cryptography/Round-1-Submissions).
  • Technische Herausforderungen bezüglich gitterbasierter Kryptografie
  • Bei der Realisierung von gitterbasierter Kryptografie und gitterbasierten Kryptosystemen auf einem Computer, einem Mikrocontroller, einer integrierten Schaltung, in einem Hardware-Software-Co-Design oder als feste Schaltung treten bei der Ausführung kryptografischer Operationen (zum Beispiel Signieren, Verschlüsselung, Entschlüsselung, Überprüfung, Schlüsselerzeugung) mehrere technische Herausforderungen auf. Beispiele für solche technischen Herausforderungen, die auf diesem Gebiet auftreten, sind:
    • - Erreichen einer verbesserten Leistung, indem Schritte eines Kryptosystems durch Verwenden einer spezifisch optimierten Abfolge von Operationen ausgeführt werden, und durch Verwenden aller Merkmale der verfügbaren Ziel-Hardware (spezielle Register oder Anweisungen).
    • - Ausführen einer kryptografischen Operation durch Verwenden einer minimalen Menge von flüchtigem oder nichtflüchtigem Speicher.
    • - Realisieren einer kryptografischen Operation oder von Teilen davon mit einer minimalen Menge von Logikschaltungen und Speicherzellen (zum Beispiel gebildet durch einen CMOS-Prozess) bei einem gegebenem Leistungsziel.
    • - Effizienter und umfangreicher Schutz gegen Implementierungsangriffe (auch bezeichnet als physikalische Angriffe, Beobachtungsangriffe, invasive und semi-invasive Angriffe).
  • Es wird darauf hingewiesen, dass der Schutz gegen Implementierungsangriffe und/oder physikalische Angriffe insbesondere für Kryptosysteme vorteilhaft ist, die auf einem Sicherheitscontroller oder in jeglicher ungünstigen Umgebung (zum Beispiel einem Hardware-Security-Module, HSM) ausgeführt werden.
  • Mögliche Angriffe sind Seitenkanalangriffe, bei denen ein Angreifer versucht, geheime Informationen zu erhalten, indem er das physikalische Verhalten eines Geräts wie den Stromverbrauch (zum Beispiel einfache oder differenzielle Leistungsanalyse (Simple-Power-Analysis - SPA / Differential-Power-Analysis - DPA)), die elektrische Ausstrahlung oder die Temperatur beobachtet. Darüber hinaus sind Fehlerangriffe möglich, wenn ein Angreifer versucht, Störungen (zum Beispiel mit einem Laser) in den Ausführungsfluss oder in die Daten einzubringen, um geheime Informationen zu erhalten oder das Verhalten des Geräts zu beeinflussen.
  • Es ist ein Merkmal eines Implementierungsangriffs, dass ein solcher Angriff keine Schwachstelle in der mathematischen Beschreibung eines Schemas ausnutzt (was als Kryptoanalyse angesehen werden würde), sondern die Art und Weise, wie das Schema auf einem spezifischen Gerät realisiert wird. Im Allgemeinen wird davon ausgegangen, dass der Gegner Zugriff auf das Gerät hat, wenn er einen Implementierungsangriff ausführt.
  • Gewöhnlich ist ein Gerät wie eine Smartcard auf eine Weise aufgebaut, dass physikalische Effekte (zum Beispiel Stromverbrauch oder Strahlung) verschleiert werden, um es schwierig zu machen, sicherheitskritische Werte zu erhalten. Ein üblicher Ansatz, um physikalischen Angriffen entgegenzutreten, ist die Ausführung randomisierter Werte, um invasive und nicht-invasive Angriffe zu verhindern, die das Ziel verfolgen, einen geheimen Schlüssel oder einen Zwischenwert von dem Gerät zu extrahieren. Es ist jedoch eine technische Herausforderung, solche Randomisierungen oder Redundanzen auf eine effizient Weise und ohne das Öffnen weiterer Angriffsgelegenheiten zu realisieren.
  • Schreibweise und Abkürzungen
  • Insbesondere werden die folgenden Schreibweisen, Abkürzungen und Bezüge verwendet:
  • q
    ist eine ganze Zahl,
    k
    ist eine ganze Zahl,
    n
    ist eine ganze Zahl,
    mod q
    ist die Modulo-Operation modulo q, die über die ganzen Zahlen definiert ist, wobei das Ergebnis in dem Bereich [0, q-1] liegt.
    Z
    sind die ganzen Zahlen (Zahl geschrieben ohne eine Bruchteilkomponente); für eine Definition von „Zahl“ wird auf https://en.wikipedia.org/wiki/Number verwiesen; für eine Definition von „Bruchteilkomponente“ wird auf https://en.wikipedia.org/wiki/Fraction_(mathematics) verwiesen.
    sind die reellen Zahlen (ein Wert einer kontinuierlichen Größe, die einen Abstand entlang einer Linie darstellen kann),
    Zq ist
    der Ring von Ganzzahlen-Modulo q, der der Quotientenring Z/qZ von Äquivalenzklassen von Ganzzahlen-Modulo q ist
    X ist
    eine Unbestimmte,
    f ist
    ein Polynom von maximalem Grad von Ganzzahl n,
    R = Z[X]/(f)
    ist ein Ring von ganzzahligen Polynomen-Modulo f; die Elemente v ∈ Z [X] / (f) können durch ganzzahlige Polynome mit einem Grad kleiner als die ganze Zahl n oder alternativ als ein Vektor von Koeffizienten v ∈ Zn dargestellt werden,
    Rq = Zq [X] / (f)
    ist ein Ring von ganzzahligen Polynomen-Modulo sowohl das Polynom f als auch die ganze Zahl q; die Elemente v ∈
    Zq
    [X] / (f) können durch ganzzahlige Polynome mit einem Grad kleiner als n mit koeffizientenreduziertem Modulo q oder alternativ als ein Koeffizientenvektor ν Z q n
    Figure DE102019108095A1_0006
    dargestellt werden,
    v ∈ Rq ist
    ein Polynom (fett geschrieben), das ein Element in Rq ist,
    v[i] ist
    ein Koeffizient eines Vektors oder Polynoms v E Rq an einer Position i,
    ϑ ist
    eine Fehlerverteilung,
    $
    Zufalls-Sampling von einer Menge oder Verteilung,
    DZ,σ
    diskrete Gaußsche Verteilung über die ganzen Zahlen mit Standardabweichung σ,
    ψk
    Binomialverteilung mit ganzzahligem Parameter k,
    U()
    gleichmäßige Verteilung,
    1001b
    eine Zahl in binärer Schreibweise, sodass 1001b = 9,
    U(Rq,k)
    gleichmäßig zufälliges Sampling eines Polynoms in Rq, bei dem alle Koeffizienten gleichmäßig zufällig in [-k,k] sind,
    FFT
    Fast Fourier Transformation,
    NTT
    Number Theoretic Transform (zahlentheoretische Transformation),
    DPA
    Differential Power Analysis (differenzielle Leistungsanalyse)
    SPA
    Simple Power Analysis (einfache Leistungsanalyse),
    ALU
    Arithmetic Logic Unit (arithmetische Logikeinheit),
    PKE
    Public Key Encryption (asymmetrische Verschlüsselung),
    KEM
    Key Encapsulation Mechanism (Mechanismus zur Kapselung von Schlüsseln),
    CCA
    Chosen Ciphertext Attack (gewählter Angriff auf den Geheimtext (Chiffretext)),
    CPA
    Chosen Plaintext Attack (gewählter Angriff auf den Klartext),
    IND
    Indistinguishability (Ununterscheidbarkeit).
  • Der Quotientenring ist eine Konstruktion in der abstrakten Algebra; für Einzelheiten wird zum Beispiel auf https://en.wikipedia.org/wiki/Quotient_ring verwiesen.
  • Ideale Gitter und Polynom-Arithmetik
  • Gegenwärtig existieren zwei Richtungen der gitterbasierten Kryptografie, das heißt die ideale gitterbasierte Kryptografie und die standardmäßige gitterbasierte Kryptografie. Ein Mittelweg ist eine sogenannte modulare gitterbasierte Kryptografie, die Konzepte von idealen und standardmäßigen Gittern vermischt. Es wird zum Beispiel auf [NewHopeNist17] verwiesen.
  • Die Basisoperationen bei der idealen gitterbasierten Kryptografie sind Polynom-Multiplikationen, Additionen, oder Subtraktionen in dem Quotientenring R q = Z q [ x ] / ( f ) ,
    Figure DE102019108095A1_0007
    wobei der Modul q eine ganze Zahl ist und die Dimension (Anzahl der Koeffizienten) eine ganze Zahl n ist. Ein Polynom a ∈ Rq kann als ein Array von Werten dargestellt werden, und auf einen einzelnen Wert a [i] an einer ganzzahligen Position i kann zugegriffen werden. Alle Hauptberechnungen in gitterbasierten Kryptosystemschemata können an Arrays von Werten modulo q ausgeführt werden.
  • Für den Quotientenring können Operationen wie Addition und Multiplikation definiert werden. Eine Addition c = a + b für a, b, c ∈ Rq kann definiert werden als c = i = 0 n 1 ( a [ i ] + b [ i ] m o d q ) X i
    Figure DE102019108095A1_0008
    wobei i eine ganze Zahl ist, q eine ganze Zahl ist, a[i] der i-te Koeffizient von a ist, b[i] der i-te Koeffizient von b ist und X die Unbestimmte ist. Eine Subtraktion c = a - b arbeitet auf die gleiche Weise, wobei „+“ durch „-“ ersetzt wird.
  • Das Produkt c = a · b von Polynomen a, b, c E Rq kann ebenfalls berechnet werden. Es ist definiert als eine normale Polynom-Multiplikation (manchmal auch „Schulbuch“-Multiplikation genannt), gefolgt von einem Reduktions-Modulo des Polynoms f und einem Reduktions-Modulo der ganzen Zahl q, das heißt c = ( i = 0 n 1 j = 0 n 1 a [ i ] b [ j ] x i + j m o d q ) m o d   f .
    Figure DE102019108095A1_0009
  • Die Formel für die Polynom-Multiplikation kann vereinfacht werden, indem die Sonderregel berücksichtigt wird, dass xn = -1, wenn f = xn + 1, es können aber ähnliche Polynome entsprechend verwendet werden: c = i = 0 n 1 j = 0 n 1 ( 1 ) i + j n a [ i ] b [ j ] x i + j   m o d   n   m o d   q
    Figure DE102019108095A1_0010
    wobei i and j ganze Zahlen sind, q eine ganze Zahl ist, a[i] der i-te Koeffizient von a ist, b [j] der j-te Koeffizient von b ist und x die Unbestimmte ist.
  • Spärliche Multiplikation
  • Einige Effizienz für die Polynom-Arithmetik kann mit Algorithmen erzielt werden, die spezifische Eigenschaften von Polynomen ausnutzen. Zum Beispiel kann ein Polynom s ∈ Rq nur wenige Koeffizienten haben, die nicht Null sind, es kann auch nur aus Koeffizienten bestehen, die entweder eins oder minus eins sind, oder es kann im Allgemeinen Koeffizienten haben, die klein sind. Es kann auch eine Kombination solcher Eigenschaften aufweisen.
  • Die Number-Theoretic-Transform (NTT)
  • Eine Implementierung dieser Formel folgend würde n2 modulare Multiplikationen erfordern und wäre somit ziemlich teuer.
  • Ein anderer Ansatz zur schnellen Polynom-Multiplikation ist die Number-Theoretic-Transform (NTT). Die NTT ist grundsätzlich eine Fast-Fourier-Transformation (FFT), die über ein endliches Feld oder einen Ring definiert ist. Somit werden alle komplexen Wurzeln der Einheit der FFT gegen ganzzahlige Wurzeln der Einheit ausgetauscht und Berechnungen werden in dem Ring von Ganzzahlen-Modulo einer ganzen Zahl q ausgeführt. Eine Polynom-Multiplikation für a, b, c E Rq durch Verwenden von NTT kann berechnet werden als c = a b = N T T 1 ( N T T ( a ) N t t ( b ) )
    Figure DE102019108095A1_0011
    wobei „◦“ eine koeffizientenweise Multiplikation bezeichnet, â = NTT(a) die Transformation des Polynoms a ist, b̂ = NTT(b) die Transformation des Polynoms b ist und NTT-1( ) die inverse Transformation ist. Die koeffizientenweise Multiplikation ĉ = â ◦ b̂ für, â, b̂, ĉ ∈ Zq [x] kann definiert werden als c ^ = i = 0 n 1 ( a ^ [ i ] b ^ [ i ] m o d   q ) X i .
    Figure DE102019108095A1_0012
  • Der Vorteil der NTT ist, dass eine Polynom-Multiplikationsoperation nur ungefähr n log2 n modulare Multiplikationen erfordert, wenn ein effizienter Algorithmus verwendet wird, und dass ein Reduktions-Modulo f = x n + 1
    Figure DE102019108095A1_0013
    (die sogenannte kreisförmige Faltungseigenschaft) oder ein Reduktions-Modulo in den NTT-Algorithmus integriert werden kann. f = x n 1
    Figure DE102019108095A1_0014
  • Somit reicht eine n-Punkt-NTT aus, um mit Polynomen mit n-Koeffizienten zu arbeiten.
  • Zur formellen Einführung der NTT kann die Auswahl der Parameter eingeschränkt werden; außerdem kann das Folgende so eingestellt werden, dass die NTT existiert: f = x n + 1
    Figure DE102019108095A1_0015
    und q 1   m o d   2 n .
    Figure DE102019108095A1_0016
  • Ferner kann ein Polynom wie folgt definiert werden g = i = 0 n 1 g [ i ] X i R q
    Figure DE102019108095A1_0017
    sodass N T T ( g ) = g ^ = i = 0 n 1 g ^ [ i ] X i
    Figure DE102019108095A1_0018
    mit g ^ [ i ] = j = 0 n 1 γ i g [ i ] ω i j m o d   q ,
    Figure DE102019108095A1_0019
    wobei die ganze Zahl ω eine 2n-te primitive Wurzel der Einheit Modulo q und Ganzzahl γ = ω
    Figure DE102019108095A1_0020
    mod q ist. Also ist γ eine Quadratwurzel von ω Modulo q.
  • Die inverse Transformation arbeitet ähnlich. Für ein Polynom ĝ ∈ Rq kann sie definiert werden als: N T T 1 ( g ^ ) = g = i = 0 n 1 g [ i ] X i
    Figure DE102019108095A1_0021
    mit g [ i ] = ( n 1 γ i j = 0 n 1 g [ j ] ω i j ) m o d   q .
    Figure DE102019108095A1_0022
  • Eine unkomplizierte Berechnung der NTT mit der zuvor gegebenen Definition ist quadratisch komplex und nicht effizienter als der Schulbuchansatz. Daher ist, um eine schnelle Polynom-Multiplikation durch Verwenden des Faltungssatzes zu realisieren, ein schneller Algorithmus zur Berechnung der NTT erforderlich. Dies kann über eine Implementierung der NTT mit O(n log n) -Operationen in Zq zum Beispiel durch den Cooley-Tukey-Radix-2 Decimation-In-Time (DIT) -Algorithmus (siehe zum Beispiel https://en.wikipedia.org/wiki/Cooley%E2%80%93Tukey_FFT_algorithm), oder durch einen Decimation-In-Frequency (DIF) -Algorithmus erreicht werden. Der DIT-NTT-Algorithmus teilt die Berechnung rekursiv in ein Unterproblem an den geraden Eingaben und ein Unterproblem an den ungeraden Eingaben der NTT auf.
  • Berechnung einer Polynom-Inversen
  • Die Berechnung der Polynom-Inversen kann in Signaturen erforderlich sein und kann zur Implementierung von Sicherheitsmaßnahmen verwendet werden.
  • Einige der kryptografischen Algorithmen erfordern die Berechnung der Inversen eines Polynoms a-1 für a ∈ Rq, sodass a · a-1 = 1.
  • Es gibt einen Ansatz, der als Fermats kleiner Satz bekannt ist, um die multiplikative Inverse von ganzen Zahlen in Zq zu berechnen, aber er kann auch angewendet werden auf Rq. Die Polynom-multiplikative Inverse a-1 kann berechnet werden als a-1 = aq-2,, wenn a invertierbar ist. Dieser Prozess kann durch Verwenden der NTT und bekannter Potenzierungsverfahren wie Quadrat-und-Multiplikation (von rechts nach links oder von links nach rechts) oder einer Additionskette beschleunigt werden.
  • Bei der Transformation von a in die NTT-Domäne ist eine Multiplikation nur eine koeffizientenweise Multiplikation.
  • Als ein Beispiel kann a3 basierend auf a' = NTT(a) wie folgt berechnet werden: a 3 = N T T 1 ( a ' a ' a ' ) ,
    Figure DE102019108095A1_0023
    was gewöhnlich schneller ist als das Berechnen von a3 = a ∗ a ∗ a durch Verwenden von Algorithmen wie Schulbuch- oder Karatsuba-Multiplikation.
  • Mit einer Additionskette kann die Anzahl der koeffizientenweisen Multiplikationen abhängig von dem Anteil von q weiter reduziert werden.
  • Zufälligkeit und Zufalls-Sampling
  • a ←$ S zeigt eine Aktion an, bei der die Variable a unabhängig und gleichmäßig zufällig aus einer Menge S oder einer spezifischen Verteilung S ausgewählt wird.
  • Es wird darauf hingewiesen, dass „zufällig“ oder „gleichmäßig“ in dieser Hinsicht (zum Beispiel zufällige Auswahl oder jeglicher zufällige Wert) ein wahrer zufälliger, ein pseudozufälliger oder ein deterministischer Ansatz sein kann, um einen Wert zu erhalten. Daher kann die Eigenschaft einer solchen „Zufälligkeit“ oder jeglichen zufälligen Effekts gemäß dem hiermit bereitgestellten Vorschlag sein, dass ein Angreifer den Wert nicht kennt und dass die Werte für mindestens einen Abschnitt der Operationen unterschiedlich sind. Die Zufälligkeit fügt insbesondere ein bestimmtes Maß an Entropie zwischen Werten hinzu, die „zufällig“ bestimmt, zum Beispiel erzeugt und/oder ausgewählt werden.
  • Für eine endliche Menge S kann eine gleichmäßige Verteilung auf der Menge S als U(S). bezeichnet werden. Die Schreibweise a ←$ U(Rq,k) kann ein gleichmäßig zufälliges Sampling von a ∈ Rq anzeigen, wo alle Koeffizienten von a [- k,k]sind.
  • Für eine Wahrscheinlichkeitsverteilung X auf R wird angenommen, dass ein effizientes Sampling möglich ist, und die Schreibweise a ←$ X wird verwendet, um das Zufalls-Sampling von a ∈ R von der Wahrscheinlichkeitsverteilung X zu bezeichnen.
  • Das Sampling von geheimen Rausch- oder Fehlervektoren ist eine grundlegende Aufgabe bei gitterbasierter Verschlüsselung mit öffentlichem Schlüssel (PKE), Schlüsselaustausch oder Signaturschemata. Ein besonderes Attribut solcher Rausch- oder Fehlervektoren ist, dass sie gewöhnlich klein sind (das heißt mit Koeffizienten, die nahe Null sind).
  • Eine diskrete Gaußsche Verteilung DZ,σ mit Mittelwert 0 und Standardabweichung σ > 0 über die ganzen Zahlen assoziiert eine Wahrscheinlichkeit pσ(x)/ ρσ(Z) zu x ∈ Z für ρ σ ( x ) = exp ( x z z σ 2 ) und  ρ σ ( Z ) = 1 + i = 1 ρ σ ( i ) .
    Figure DE102019108095A1_0024
  • Somit bezeichnet a ←$ DZ,σ einen Prozess des zufälligen Sampling eines Werts d E Z gemäß der diskreten Gaußschen Verteilung DZ,σ, und a $ D Z , σ n
    Figure DE102019108095A1_0025
    zeigt einen Prozess des zufälligen Sampling eines Polynoms a ∈ Rq der Dimension n an, bei dem die Koeffizienten unabhängig und gemäß der diskreten Gaußschen Verteilung DZ,σ verteilt sind.
  • Ein Sampling-Gerät, das Werte gemäß einer diskreten Gaußschen Verteilung erzeugt, kann durch Verwenden der Cumulative-Distribution-Function (CDF) oder einer Cumulative-Distribution-Table (CDT) oder mit (zum Beispiel hochpräzisen) Berechnungen realisiert werden.
  • Die Ausführung eines kryptografischen Schemas erfordert gewöhnlich 512 bis 4096 Samples von der Rausch- oder Fehlerverteilung für jede kryptografische Operation.
  • Eine beispielhafte Verteilung, die für Sampling-Zwecke verwendet werden kann, ist die Binomialverteilung ψk. Ein Sample von dieser Binomialverteilung ψk kann erzeugt werden durch Berechnung i = 0 k 1 b i b i ' ,
    Figure DE102019108095A1_0026
    worin b i , b i ' { 0,1 }
    Figure DE102019108095A1_0027
    zufällige Bits sind.
  • Somit bezeichnet a ←$ ψk einen Prozess des zufälligen Sampling eines Wertes d E Z gemäß der Binomialverteilung ψk.
  • Ferner bezeichnet a $ ψ k n
    Figure DE102019108095A1_0028
    einen Prozess des zufälligen Sampling eines Polynoms a ∈
  • Rq einer Dimension n, wobei die Koeffizienten unabhängig und gemäß der Binomialverteilung ψk verteilt sind.
  • Die Standardabweichung der Binomialverteilung ist k / 2 ,
    Figure DE102019108095A1_0029
    und die Varianz beträgt k/2. Ein alternativer Ansatz zum Sampling von der Binomialverteilung ψk ist das Berechnen ( i = 0 2 k 1 b i ) k
    Figure DE102019108095A1_0030
    wobei bi ∈ {0,1} zufällige Bits sind.
  • Mathematische Probleme an Gittern
  • Die Sicherheit von gitterbasierten Kryptosystemen kann auf bestimmten Problemen basieren oder damit zusammenhängen. Solche spezifischen Probleme sind:
    • - die Learning-With-Errors (LWE) -Probleme;
    • - das Ring-Learning-With-Errors (RLWE) -Problem;
    • - das Short-Integer-Solution (SIS) -Problem;
    • - das Ring-Short-Integer-Solution (RSIS) -Problem; und
    • - das NTRU-Problem.
  • Für RLWE gilt in dem Ring Rq = Zq [X] / (Xn+1) für n als eine ganzzahlige Potenz von 2 und q als eine ganze Zahl Folgendes:
    • Der geheime Vektor s ∈ Rq basiert auf einer Verteilung ϑ1, der Fehlervektor e basiert auf einer Verteilung ϑ2, wobei die Verteilung ϑ1 dieselbe sein kann wie die Verteilung ϑ2
  • Der Vektor a ∈ Rq mit gleichmäßigen Koeffizienten in Zq basiert auf einer gleichmäßigen Verteilung (daher wird er auch bezeichnet als „gleichmäßiger Vektor“).
  • Ein Angreifer möchte den geheimen Vektor s extrahieren, wenn der gleichmäßige Vektor a sowie das Ergebnis b = a · s + e gegeben ist.
  • Dies ist schwierig, wenn der geheime Vektor s und/oder der Fehlervektor e einem vordefinierten Verteilungsdesign folgen und daher, wenn die Vektoren s und/oder e auf eine effiziente Weise erzeugt werden. Auch kann die Erzeugung dieser Vektoren s und/oder e gegen physikalische Angriffe auf eine Chipkarte abgehärtet werden.
  • Eine Chipkarte (oder Smartcard) kann jegliches physikalische Gerät sein, das zur Durchführung einer kryptografischen Funktion angeordnet ist. Die Chipkarte kann daher insbesondere eine Halbleiterschaltung umfassen.
  • Es ist eine Option, dass der geheime Vektor s fest ist, wodurch gleichmäßige Vektoren a und Fehlervektoren e gemäß dem bestimmten Verteilungsdesign erzeugt werden.
  • Dennoch hat der Angreifer Schwierigkeiten, den festen geheimen Vektor s von mehreren Samples von Vektoren a und b abzuleiten.
  • Das RLWE-Problem übersetzt das LWE-Problem in die Ringeinstellung. Die Schwierigkeit von RLWE basiert auf der Worst-Case-Schwierigkeit von Kurzvektorproblemen auf idealen Gittern, die eine Unterklasse von Standardgittern sind. Das RLWE-Problem hat auch ein Entscheidungsproblem (entscheiden, ob ein Sample a, b von der RLWE-Verteilung oder der Gleichmäßigkeit stammt), das der Suchversion entspricht.
  • Somit kann, wenn der Angreifer bestimmen kann, dass das Sample b gleichmäßig oder gemäß der RLWE-Verteilung erzeugt ist, die Sicherheit des Systems beeinträchtigt werden.
  • Ein Sampling des Geheimnisses s ∈ Rq von der gleichmäßigen Verteilung U(Rq) ist möglich. Vorteilhafterweise kann das Sampling jedoch auf der Verteilung ϑ basieren.
  • Operationen in der standardmäßigen gitterbasierten Kryptografie umfassen Matrix-Matrix-Multiplikationen, Matrix-Vektor-Multiplikationen oder Vektoradditionen und - Subtraktionen, wobei Koeffizienten Werte in dem Ring von Ganzzahlen modulo q sind.
  • Verfahren zur Formbarkeitsprüfung in der gitterbasierten Kryptografie Technische Sicherheitseigenschaften von Public-Key-Encryption (PKE) und Key-Encapsulation-Mechanisms (KEM) sind Ununterscheidbarkeit bei ausgewähltem Klartextangriff (IND-CPA) oder Ununterscheidbarkeit bei adaptiv ausgewähltem Chiffretextangriff (IND-CCA2). Der IND-CPA-Sicherheitsbegriff ist ein grundlegender Sicherheitsbegriff.
  • Dies bedeutet jedoch, dass das IND-CPA-Angriffsmodell die Interaktion des Angreifers mit einem Entschlüsselungsorakel nicht berücksichtigt. Mit anderen Worten, dieses IND-CPA-Angriffsmodell arbeitet nur, wenn ein Angreifer keinen Zugriff auf das Entschlüsselungsorakel hat, was unglücklicherweise nicht immer der Fall ist. Zum Beispiel kann in Szenarien, in denen Chipkarten verwendet werden, in denen der private Schlüssel auf der Chipkarte gespeichert ist, die Chipkarte als ein Entschlüsselungsorakel betrachtet werden, und eine solche Chipkarte kann für den Angreifer zugänglich sein. Es sollte jedoch sichergestellt werden, dass ein geheimer Schlüssel, der auf der Chipkarte gespeichert und für Verarbeitungszwecke verwendet wird, für den Angreifer nicht zugänglich ist.
  • 1 zeigt einen bekannten Ansatz zum Transformieren einer CPA-sicheren PKE oder eines KEM in CCA-sichere Varianten unter Verwendung einer Fujisaki-Okamoto (FO) -Transformation (siehe [OSPG18]).
  • 1 umfasst kryptografische Einheit 101 (auch bezeichnet als Empfänger) für Entschlüsselungszwecke. Die kryptografische Einheit 101 umfasst Vergleichsfunktion 106, Neuverschlüsselungsfunktion 107 und Entschlüsselungsfunktion 108. Die kryptografische Einheit 101 hat auch Zugriff auf geheimen Schlüssel 104, der öffentlichen Schlüssel 105 umfasst. Chiffretext 102 wird der kryptografischen Einheit 101 zugeführt und (im Falle einer erfolgreichen Entschlüsselung) in Nachricht 103 transformiert.
  • Die Idee der FO-Transformation besteht darin, das grundlegende CPA-sichere Verschlüsselungsschema mit öffentlichem Schlüssel deterministisch zu machen, wobei alle Operationen Zufälligkeit erfordern. Eine solche Zufälligkeit wird von einem Startwert abgeleitet. Während der CCA-sicheren Verschlüsselung mit öffentlichem Schlüssel wird der zufällige Startwert auch als Nachricht verschlüsselt oder kann von der Nachricht des CPA-sicheren Verschlüsselungsschemas mit öffentlichem Schlüssel abgeleitet und an den Empfänger gesendet werden.
  • Der Empfänger, das heißt die kryptografische Einheit 101, kann dann den privaten Schlüssel (das heißt den geheimen Schlüssel 104) verwenden, um den Startwert zu entschlüsseln. Um eine Manipulation des Chiffretextes 102 (das heißt einen ausgewählten Chiffretextangriff) zu verhindern, verwendet der Empfänger 101 den Startwert, um eine Neuverschlüsselung über die Neuverschlüsselungsfunktion 107 auszuführen. Die Ausgabe der Neuverschlüsselung wird durch die Vergleichsfunktion 106 mit dem empfangenen Chiffretext 102 verglichen. Dies stellt sicher, dass nur nicht manipulierte Chiffretexte 102 akzeptiert werden.
  • Die Kontrolle des Angreifers über den Startwert und andere Werte wird durch die Verwendung von Hash-Funktionen (modelliert als zufällige Orakel) beschränkt, und eine Ausgabe solcher Hash-Funktionen wird auch verwendet, um die tatsächliche Nutzlast (normalerweise eine kurze Nachricht oder ein Schlüssel von 128 bis 256-bit Länge) zu maskieren.
  • Der Nachteil der FO-Transformation ist jedoch, dass sie das Berechnen der Neuverschlüsselung erfordert. Dies bedeutet, dass der geheime Schlüssel 104 den öffentlichen Schlüssel 105 oder jegliche anderen Informationen enthalten muss, die ausreichen, um den öffentlichen Schlüssel neu zu berechnen. Dies erfordert zusätzliche Berechnungen und erhöht die Größe des geheimen Schlüssels 104. Zusätzlich ist die Neuverschlüsselung 107 eine kostspielige Operation und schwer gegen Seitenkanalangriffe zu schützen (siehe [OSPG18]).
  • Hierin beschriebene Beispiele stellen einen anderen Weg bereit, die Integrität des Chiffretextes sicherzustellen, insbesondere bei gitterbasierten PKE oder KEM auf RLWE-, MLWE- oder LWE-Basis. Während der Schlüsselerzeugung wird ein geheimer Schlüssel der CCA-sicheren PKE auf eine Weise erzeugt, dass er den geheimen Schlüssel der CPA-sicheren PKE und einen Prüfwert umfasst, der als ein Hash von Komponenten des öffentlichen Schlüssels betrachtet werden kann.
  • 2 zeigt ein beispielhaftes Blockdiagramm, um diesen Ansatz durch Verwenden von privatem Schlüssel (geheimem Schlüssel 204) und von Prüfwert 205 für Entschlüsselungszwecke in kryptografischer Einheit 201 (auch bezeichnet als Empfänger) zu visualisieren. Die kryptografische Einheit 201 umfasst Funktion 206, die das Erzeugen des Prüfwerts und das Durchführen eines Vergleichs unterstützt. Die kryptografische Einheit 201 umfasst auch Entschlüsselungsfunktion 207. Die verschiedenen Funktionen 206, 207 können als einzelne Funktionen oder als eine kombinierte Funktion realisiert werden; sie können auf einer oder mehreren Hardware-Entitäten implementiert sein.
  • Chiffretext 202 wird der kryptografischen Einheit 201 zugeführt und (im Fall einer erfolgreichen Entschlüsselung) in Nachricht 203 zur weiteren Verarbeitung transformiert.
  • Während der CCA-sicheren Entschlüsselung kann dieser Prüfwert 205 verwendet werden, um sicherzustellen, dass der Chiffretext 202 nicht manipuliert wurde, indem überprüft wird, dass die richtigen Komponenten des öffentlichen Schlüssels in dem Chiffretext 202 vorhanden sind (das heißt indem der Hash der extrahierten Komponenten des öffentlichen Schlüssels verglichen wird mit dem durch eine Funktion f() erzeugten Prüfwert).
  • Der Vorteil dieses Ansatzes ist, dass der geheime Schlüssel der CCA-sicheren PKE keinen großen öffentlichen Schlüssel enthalten muss, und dass keine Erzeugung eines öffentlichen Schlüssels basierend auf einem kleinen Startwert erforderlich ist, was an sich Leistung kostet und das Risiko erhöht, dass physikalische Angriffe (zum Beispiel Seitenkanalangriffe) erfolgreich sind.
  • Beispielhafte CPA- und CCA-sichere gitterbasierte Public-Key-Encryption (PKE) und Key-Exchange-Scheme (KEM)
  • Die Eigenschaften des RLWE-Problems können verwendet werden, um ein semantisch sicheres Verschlüsselungsschema mit öffentlichem Schlüssel mit einer Reduktion auf Entscheidungs-RLWE zu realisieren. In der einfachen Version wird somit nur die Sicherheit gegen ausgewählte Klartextangriffe (CPA) erreicht und als ein gitterbasiertes Kryptosystem kategorisiert, da die Schwierigkeit auf der Schwierigkeit des RLWE-Problems basiert, die selbst auf der Schwierigkeit bestimmter Gitterprobleme basiert.
  • Eine beispielhafte Idee des Schemas ist, den geheimen Schlüssel innerhalb eines RLWE-Samples, das der öffentliche Schlüssel p ∈ Rq wird, zu verbergen p = r 1 a r 2 ,
    Figure DE102019108095A1_0031
    wobei a ein zufällig erzeugtes öffentliches Polynom ist und r1, r2 ∈ Rq Rauschpolynome sind.
  • Ferner wird die Nachricht mit einem RLWE-Sample maskiert p e 1 + e 3 ,
    Figure DE102019108095A1_0032
    wobei e1, e3 ∈ Rq Rauschpolynome sind.
  • Somit erscheinen der öffentliche Schlüssel und jeder Chiffretext für einen passiven Gegner als zufällig, und es wird eine semantische Sicherheit erreicht.
  • Es wird auch auf LPR10 verwiesen, wie in [LPR10A] und [LPR10B] beschrieben.
  • Zum Beispiel können die folgenden Prozeduren verwendet werden:
  • Schlüsselerzeugung:
  • RLWE.CPA. Gen:
    1. 1. seedA ←$ {0,1}256
    2. 2. Auswählen a ← GenA(seedA)
    3. 3. r1$ ϑ
    4. 4. r2$ ϑ
    5. 5. Öffentlicher Schlüssel (pk): (seedA, p = r1 - a · r2)
    6. 6. Geheimer Schlüssel: (sk): r2
    7. 7. Rückgabe pk=(seedA,p), sk= r2
  • Die Schlüsselerzeugungsprozedur RLWE.CPA.Gen umfasst die deterministische Erzeugung des gleichmäßig zufälligen Polynoms a ← GenA(seedA) mit a ∈ Rq von einem zufälligen binären Startwert seedA, für den eine Erzeugungsfunktion GenA verwendet wird.
  • Diese Erzeugungsfunktion GenA führt einen Schritt a ←$ U(Rq) auf eine deterministische Weise aus, zum Beispiel durch Verwendung einer erweiterbaren Ausgabefunktion (XOF) wie SHA3 und Zurückweisungs-Sampling. Der Startwert seedA ist eine gleichmäßig zufällige Bit-Folge von 256 Bit, und sein Sampling wird bezeichnet als seedA ←$ {0,1}256. Im Allgemeinen kann das Polynom a während der Schlüsselerzeugung basierend auf einem Startwert (als Teil jedes öffentlichen Schlüssels) ausgewählt werden, oder es kann als eine globale Konstante betrachtet werden. In dem hierin gezeigten Beispiel umfasst der öffentliche Schlüssel pk den seedA und das Polynom p ∈ Rq.
  • Für weitere Details zu einer spezifischen Beschreibung der GenA Funktion wird auf [NewHopeNistl7] verwiesen.
  • Dies ist eine Verbesserung, um die Größe des öffentlichen Schlüssels pk zu reduzieren und das Sicherheitsniveau zu erhöhen. Aufgrund von seedA ist es nicht erforderlich, das Polynom a zu einem Teil des öffentlichen Schlüssels zu machen, was zu einem kleineren öffentlichen Schlüssel führt. Durch Sampling von seedA wird auch sichergestellt, dass für jeden frisch erzeugten öffentlichen Schlüssel ein neu erzeugtes Polynom a verwendet wird. Dies kann Angriffe verhindern, die das Verwenden desselben Werts für das Polynom a in mehreren öffentlichen Schlüsseln ausnutzen würden.
  • Zusätzlich wird ein zufälliges Sampling von zwei Rauschpolynomen r1, r2 ∈ Rq von der Rausch-/Fehlerverteilung ϑ durchgeführt.
  • Das Rauschpolynom r1 darf nur während der Schlüsselerzeugung verwendet werden, und es kann anschließend verworfen werden, während das Rauschpolynom r2 dem geheimen Schlüssel entsprechen kann.
  • Eine Extraktion des geheimen Schlüssels r2 von dem öffentlichen Schlüssel pk wird als äquivalent zu der Lösung des RLWE-Problems angesehen.
  • Verschlüsselung:
  • RLWE.CPA.Enc(pk = (seedA, p), m ∈ {0,1}n, seedRand)
    1. 1. e1$ SampleNoiseϑ(seedRand, 1)
    2. 2. e2$ SampleNoiseϑ (seedRand,2)
    3. 3. e3$ SampleNoiseϑ (seedRand, 3)
    4. 4. a ← GenA(seedA)
    5. 5. m = RLWEencode(m)
    6. 6. Rückgabe c = (c1 = a · e1 + e2, c2 = p · e1 + e3 + m)
  • Die Verschlüsselungsprozedur RLWE.CPA.Enc umfasst das Sampling von drei Rauschpolynomen e1, e2, e3 von der Fehlerverteilung ϑ.
  • Dieser Schritt wird auf eine deterministische Weise durch Verwenden der Funktion SampleNoiseϑ (seedRand, i) ausgeführt, die ein Polynom in Rq ausgibt, verteilt entsprechend der Fehlerverteilung ϑ basierend auf dem Startwert seedRand und dem Auswahlparameter i. Mit i = {1,2,3} können unterschiedliche und rechnerisch unabhängige Ausgabewerte von einem Startwert seedRand abgeleitet werden. Es ist eine Verallgemeinerung einer in [OSPG18] beschriebenen SampleNoisePoly-Funktion für verschiedene Verteilungen. Es wird auch auf [NewHopeNist17] verwiesen, wo das PolyBitRev (Sample(Noiseseed,0)) verwendet werden kann, um SampleNoiseϑ (seedRand,1) zu realisieren. Anwendbare Fehlerverteilungen können die diskrete Gaußsche Verteilung DZ,σ oder die Binomialverteilung ψk sein.
  • Um die Nachricht m (die eine binäre Zeichenfolge sein kann) in dem Chiffretext zu verbergen, wird die Nachricht m wie m ∈ Rq durch die Funktion RLWEencode codiert, zum Beispiel durch Verwenden einer additiven Schwellenwertcodierung (wie in [OSPG18] als „LWEEncode“ bezeichnet) und zu p · e1 + e3 ∈ Rq hinzugefügt.
  • Der Chiffretext umfasst c1 ∈ Rq und c2 ∈ Rq, was grundsätzlich beide RLWE-Samples in Hermite-Normalform sein kann.
  • Die Sicherheit gegen ausgewählte Klartextangriffe (CPA) folgt von der Tatsache, dass alles, was durch den Verschlüsselungsalgorithmus zurückgegeben wird, als (von außen) nicht von zufällig unterscheidbar erscheint.
  • Entschlüsselung:
  • RLWE.CPA.Dec(c = (c1, c2), sk = r2):
    1. 1. Rückgabe RLWEdecode(c1 · r2 + c2)
  • Die Entschlüsselungsprozedur RLWE.CPA.Dec erfordert Kenntnisse des geheimen Schlüssels r2 E Rq, da andernfalls der große Term r2 a e1 E Rq beim Berechnen von c1r2 + c2 nicht eliminiert werden kann.
  • Die Funktion RLWEdecode wird in [OSPG18] als eine Funktion „LWEDecode“ beschrieben. Während der Entschlüsselung ist die RLWEdecode-Funktion erforderlich, da die n-bit-Nachricht m nach der Berechnung von c1r2 + c2 eine geringfügige Menge an Rauschen (das heißt r2e2+r1e1 + e3) enthält, was andernfalls das Wiederabrufen der Nachricht m nicht ermöglichen würde: c 1 r 2 + c 2 = ( a e 1 + e 2 ) r 2 + p e 1 + e 3 + m ¯ = = r 2 a e 1 + r 2 e 2 + r 1 e 1 r 2 a e 1 + e 3 + m ¯ = = m ¯ + r 2 e 2 + r 1 e 1 + e 3 .
    Figure DE102019108095A1_0033
  • Das Schema wird gewöhnlich in dem Polynomring Rq instanziiert, aber die Verwendung anderer Ringe ist ebenfalls möglich. Mögliche Auswahlen für Rausch- oder Fehlerverteilungen ϑ sind D Z , σ n
    Figure DE102019108095A1_0034
    oder ψ k n .
    Figure DE102019108095A1_0035
  • Das Rauschen kann relativ klein sein, da alle Rauschterme von der Fehlerverteilung ϑ gesampled werden können. Daher kann dieses verbleibende Rauschen durch Verwenden von Ansätzen wie (additiver) Schwellenwertcodierung für einzelne Koeffizienten gehandhabt werden.
  • Beispielhafte Parameter zum Instanziieren des Schemas sind:
    • - ( n = 256, q = 4093, ϑ = D Z , σ n , σ = 8,35 )
      Figure DE102019108095A1_0036
      dem ungefähr 100-Bit-Sicherheit zugeschrieben wird;
    • - ( n = 512, q = 12289, ϑ = D Z , σ n , σ = 11,31 )
      Figure DE102019108095A1_0037
      dem ungefähr 128-Bit-Sicherheit zugeschrieben wird; und
    • - ( n = 1024, q = 12289, ϑ = ψ k n , k = 16 )
      Figure DE102019108095A1_0038
      dem ungefähr 256-Bit-Sicherheit zugeschrieben wird.
  • Verwendung des Prüfwerts
  • Gemäß einer Ausführungsform kann während der Schlüsselerzeugung ein Prüfwert β erzeugt werden, sodass ein geheimer Schlüssel sk bestimmt wird als s k = ( r 2 , β ) ,
    Figure DE102019108095A1_0039
    mit β = Hash(a∥p), wobei || eine Verkettung zwischen a ∈ Rq und p ∈ Rq anzeigt. Hash(), H(), H'() und G() bezeichnen voneinander unabhängige Hash-Funktionen.
  • Die Erzeugungs- (RLWE.CCA.Gen), Verschlüsselungs- (RLWE.CCA.EncNew) und Entschlüsselungs (RLWE.CCA.DecNew) -Funktionen können wie folgt realisiert werden:
    • RLWE.CCA.Gen:
      1. 1. seedA ←$ {0,1}256
      2. 2. Auswählen a ← GenA(seedA)
      3. 3. r1$ ϑ
      4. 4. r2$ ϑ
      5. 5. Öffentlicher Schlüssel (pk): (seedA, p = r1 - a · r2)
      6. 6. Geheimer Schlüssel: (sk): r2
      7. 7. Rückgabe pk=(seedA, p), sk = (r2, β = Hash (a ∥p)).
    • RLWE. CCA. EncNew(seedA, p, mCCA ∈ (0,1}L):
      1. 1. Auswählen einer Nonce v ←$ {0,1}L
      2. 2. Berechnen von c1, c2 =RLWE.CPA.EncNew((seedA, p), v, H(v∥ mCCA)) durch Verwenden einer Hash-Funktion H. Wenn RLWE.CPA.EncNew FAIL zurückgibt, Neustart durch Springen zu Schritt 1
      3. 3. Berechnen von c3 = G(v) xor mCCA durch Verwenden einer Hash-Funktion G
      4. 4. Berechnen von c4 = H'(v) durch Verwenden einer Hash-Funktion H' (die sich von der Hash-Funktion H unterscheidet)
      5. 5. Rückgabe c1, c2, c3, c4
  • In der Funktion RLWE. CCA. EncNew ist der Startwert, der durch Verwenden des CPA-Sicherheitsschemas RLWE.CPA.EncNew verschlüsselt wird, eine zufällige Bit-Folge v , und ein interner Pseudozufallsgenerator (PRNG) der Funktion RLWE.CPA.EncNew wird initialisiert mit s e e d R a n d = H ( ν m C C A ) .
    Figure DE102019108095A1_0040
  • Die tatsächliche Nachricht, die durch den Benutzer während der Verschlüsselung ausgewählt wird, ist mCCA. Sie wird durch den Wert c3 geschützt, da sie Exclusive-Or („xor-ed“) kombiniert ist mit G(v). Die in der RLWE. CCA. EncNew Funktion aufgerufene Funktion RLWE.CPA.EncNew kann wie folgt definiert werden:
    • RLWE.CPA.EncNew(pk = (seedA, p), m ∈. {0,1}n, seedRand)
      1. 1. e1$ SampleNoiseϑ(seedRand, 1)
      2. 2. Überprüfen, ob e1 invertierbar ist und wenn e1 nicht invertierbar ist Rückgabe von FAIL
      3. 3. e2 +-$ SampleNoiseϑ (seedRand,2)
      4. 4. e3$ SampleNoiseϑ (seedRand,3)
      5. 5. a <- GenA(seedA)
      6. 6. m = RLWEencode(m)
      7. 7. Rückgabe c = (c1 = a · e1 + e2, c2 = p · e1 + e3 + m)
  • Der Wert e1 E Rq in der Funktion RLWE.CPA.EncNew wird so gesampled, dass das inverse e 1 1
    Figure DE102019108095A1_0041
    E Rq existiert, das heißt dass e 1 1 e 1 = 1.
    Figure DE102019108095A1_0042
    Andernfalls gibt die Funktion RLWE.CPA.EncNew FAIL zurück (was auf einen Fehler hinweist) und die Funktion RLWE. CCA. EncNew wird mit unterschiedlichen Auswahlmöglichkeiten für seedRand gestartet, bis e1 die Invertierbarkeitsbedingung erfüllt.
  • RLWE. CCA. DecNew(r2, β, c1, c2, c3, c4):
    1. 1. Berechnen von v' = m'CPA = RLWE. CPA. Dec(c1, c2, r2)
    2. 2. Berechnen von m'CCA = G(v') xor c3 durch Verwenden der Hash-Funktion G
    3. 3. seedRand = H(v' ∥ m'CCA)) durch Verwenden der Hash-Funktion H
    4. 4. e1$ SampleNoiseϑ(seedRand, 1)
    5. 5. e2$ SampleNoiseϑ (seedRand,2)
    6. 6. e3$ SampleNoiseϑ (seedRand,3)
    7. 7. a ' = ( c 1 e 2 ) e 1 1
      Figure DE102019108095A1_0043
    8. 8. p' = (c2 - RLWEencode(v') - e 3 ) e 1 1
      Figure DE102019108095A1_0044
    9. 9. Berechnen von c 4 ' = H ' ( ν ' )
      Figure DE102019108095A1_0045
      durch Verwenden der Hash-Funktion H'
    10. 10. Überprüfung, ob Hash (a'∥p') == β
    11. 11. Überprüfung, ob c 4 ' = = c 4
      Figure DE102019108095A1_0046
    12. 12. Wenn beide Bedingungen in Nr.7 und Nr.8 oben wahr sind, Ausgabe m'cca andernfalls Ausgabe Fehler
  • Zu Entschlüsselungszwecken werden die Rauschpolynome e1, e2, e3 ∈ Rq erzeugt, wie in Bezug auf die Funktion RLWE.CPA.Enc basierend auf s e e d R a n d = H ' ( ν ' ( m ' C C A ) ) .
    Figure DE102019108095A1_0047
  • Dann wird ein Kandidatenwert a' ∈ Rq berechnet als a ' = ( c 1 e 2 ) e 1 1
    Figure DE102019108095A1_0048
    und ein Kandidatenwert p' ∈ Rq wird berechnet als p ' = ( c 2 R L W E e n c o d e ( m ) e 3 ) e 1 1 .
    Figure DE102019108095A1_0049
  • Beide Kandidatenwerte a' und p' werden verkettet, gehasht und mit dem Prüfwert β verglichen, sodass die Nachricht m'cca nur zurückgegeben wird, wenn die folgende Bedingung erfüllt ist: H a s h ( a ' p ' ) = = β .
    Figure DE102019108095A1_0050
  • 3 zeigt ein schematisches Flussdiagramm, das Schritte 301 bis 305 umfasst und die Lösung zusammenfasst, die den Prüfwert β einbezieht.
  • Schritt 301: Ein Chiffretext c wird an einem Empfänger, zum Beispiel einer kryptografischen Einheit, erhalten. Der Chiffretext c umfasst c* und c**. Außerdem hat der Empfänger Zugriff auf den geheimen Schlüssel sk und den Prüfwert β. Der Empfänger hat auch Zugriff auf eine Erzeugungsfunktion f( ), die das Bestimmen des Prüfwerts β von dem öffentlichen Schlüssel pk ermöglicht.
  • Schritt 302: Durch Verwenden des geheimen Schlüssels sk entschlüsselt der Empfänger den Chiffretext c*, um einen Startwert zu erhalten: seed = Dec ( sk , c * ) .
    Figure DE102019108095A1_0051
    Dies entspricht grundsätzlich dem Schritt 1 des oben gezeigten RLWE.CCA.DecNew-Algorithmus.
  • Schritt 303: Ein Kandidat für einen öffentlichen Schlüssel pk' wird von dem Chiffretext extrahiert. Dies wird erreicht, indem eine Verschlüsselungsoperation angewendet wird, die die umgekehrte Entschlüsselung wie in Schritt 302 verwendet umfasst.
    Dies entspricht grundsätzlich dem Schritt 8 des oben gezeigten RLWE.CCA.DecNew-Algorithmus.
  • Schritt 304: Der Kandidat für einen öffentlichen Schlüssel pk' wird in die Erzeugungsfunktion f( ) eingegeben, um einen Prüfwertkandidaten zu bestimmen β ' = f ( p k ' ) .
    Figure DE102019108095A1_0052
    Der Prüfwertkandidat wird mit dem Prüfwert verglichen, das heißt β ' = = β ?
    Figure DE102019108095A1_0053
    Wenn dies wahr ist, könnte die Ausgabenachricht als korrekt akzeptiert werden; wenn dies falsch ist, kann eine Fehlerbenachrichtigung ausgegeben werden.
    Dies entspricht grundsätzlich dem Schritt 10 des oben gezeigten RLWE.CCA.DecNew-Algorithmus.
  • Schritt 305: Als eine Option kann eine Integritätsprüfung der Nachricht durch Verwenden des Startwerts und der Chiffretextkomponente c** durchgeführt werden. Dies kann unter Verwendung mindestens einer Hash-Funktion gemacht werden.
    Wenn die Integritätsprüfung erfolgreich war, kann die Nachricht ausgegeben oder für weitere Verarbeitung verwendet werden.
    Wenn die Integritätsprüfung nicht erfolgreich war, kann eine Fehlerbenachrichtigung ausgegeben werden, und die Nachricht wird als ungültig betrachtet.
    Dies entspricht grundsätzlich den Schritten 2, 9 und 11 des oben gezeigten RLWE.CCA.DecNew-Algorithmus.
  • 4 zeigt ein beispielhaftes Blockdiagramm, das Puffer 401 umfasst, der eine Kapselungs-/Entkapselungsfunktionalität bereitstellt, bei der binäre Zeichenfolgen auf eine portierbare Weise als mathematische Objekte interpretiert werden. Der Puffer 401 ist mit einem Systembus gekoppelt, der den Chiffretext (c1, c2, c3, c4) bereitstellen kann, und der zur Übertragung der entschlüsselten Nachricht m verwendet wird.
  • Der Puffer 401 ist mit Komparator 402, Rausch-Sampler 403, Hash-Einheit 404 (die geeignet ist, Hash-Werte basierend auf mindestens einer Hash-Funktion bereitzustellen), Polynom-Arithmetikeinheit 405 und Codierer/Decodierer 406 gekoppelt. Die Einheiten 402 bis 406 können in Software und/oder Hardware realisiert werden. Diese Einheiten 402 bis 406 können separat implementiert werden, oder sie können zumindest teilweise kombiniert werden.
  • Vorteile und weitere Ausführungsformen und Optionen
  • Vorteilhafterweise ist in der Funktion RLWE. CCA. DecNew der Prüfwert β die Ausgabe einer Standard-Hash-Funktion und kann somit von 32 Byte bis 64 Byte reichen.
  • Verwendung der NTT
  • Die hierin beschriebene Lösung kann durch Verwenden der NTT optimiert werden. Eine „-“ -Schreibweise kann Elemente in der NTT-Darstellung bezeichnen und annehmen, dass r2 ∈ Rq und c1 E Rq in der NTT-Darstellung gespeichert oder übertragen werden, und dass der Prüfwert β während der Schlüsselerzeugung berechnet wird als β = β N N T = H a s h ( a ˜ p ˜ )
    Figure DE102019108095A1_0054
    für ã = NTT(a) und p̃ = NTT(p).
  • Die Verwendung von NTT ist eine bekannte Technik, wie zum Beispiel in [OSPG18] offenbart. Sie könnte auf das hierin angesprochene Konzept wie folgt angewendet werden:
    • RLWE. CCA. DecNewNTT(r̃2, β, c̃1, c2, c3, c4):
      1. 1. Berechnen von v' = m'CPA = RLWEdecode(INTT(c̃1· r̃2) + c2)
      2. 2. Berechnen von m'CCA = G(v') xor c3 durch Verwenden der Hash-Funktion G
      3. 3. s e e d R a n d = H ( ν ' m ' C C A ) )
        Figure DE102019108095A1_0055
        durch Verwenden der Hash-Funktion H
      4. 4. ẽ1$ NTT(SampleNoiseϑ(seedRand,1))
      5. 5. ẽ2$ NTT(SampleNoiseϑ(seedRand,2))
      6. 6. e3$ SampleNoiseϑ (seedRand,3)
      7. 7. a ˜ ' = ( c ˜ 1 e ˜ 2 ) e ˜ 1 1
        Figure DE102019108095A1_0056
      8. 8. p ˜ ' = N T T ( c 2 R L W E e n c o d e ( v ' ) e 3 ) e ˜ 1 1
        Figure DE102019108095A1_0057
      9. 9. Berechnen von c 4 * = H ' ( v ' )
        Figure DE102019108095A1_0058
        durch Verwenden der Hash-Funktion H'
      10. 10. Überprüfung, ob Hash (ã'∥p̃') == β
      11. 11. Überprüfung, ob c 4 ' = = c 4
        Figure DE102019108095A1_0059
      12. 12. Wenn beide Bedingungen in Nr.10 und Nr.11 oben wahr sind, Ausgabe m'cca andernfalls Ausgabe Fehler
  • Die Verwendung von NTT ermöglicht eine effiziente Weise zur Berechnung der inversen e ˜ 1 1 ,
    Figure DE102019108095A1_0060
    was während der CCA-sicheren Verschlüsselung verwendet werden kann, um die Invertierbarkeit von ẽ1 in der RLWE. CCA. EncNewNTT-Funktion, die auch die NTT verwenden kann, wie in [OSPG18] beschrieben, zu prüfen.
  • Seitenkanalschutz
  • In [OSPG18] werden verschiedene Verfahren zum Seitenkanalschutz von gitterbasierter Kryptografie beschrieben.
  • Der Seitenkanalschutz kann auch in den hierin beschriebenen Ansatz integriert werden, um eine effiziente Lösung für den Formbarkeitsschutz bereitzustellen.
  • Die gemeinsame Operation der Hash-Funktionen, des Codierers, des Decodierers und des Rausch-Samplers von [OSPG18] kann verwendet werden. Die kritischen Operationen a ˜ ' = ( c ˜ 1 e ˜ 2 ) e ˜ 1 1
    Figure DE102019108095A1_0061
    und p ˜ ' = N T T ( c 2 R L W E e n c o d e ( v ' ) e 3 ) e ˜ 1 1
    Figure DE102019108095A1_0062
    wobei interne Werte außer c1, c2 sensibel (zum Beispiel sicherheitskritisch) sind, können wie folgt randomisiert werden:
    1. 1. e 1 * , e 1 * * $
      Figure DE102019108095A1_0063
      AdditiveSharedSampleNoiseϑ(seedRand,1)
    2. 2. e 2 * , e 2 * * $
      Figure DE102019108095A1_0064
      AdditiveSharedSampleNoiseϑ(seedRand,2)
    3. 3. e 3 * , e 3 * * $
      Figure DE102019108095A1_0065
      AdditiveSharedSampleNoiseϑ(seedRand,3)
    4. 4. a ' * = ( c 1 e 2 * ) e 1 * 1
      Figure DE102019108095A1_0066
    5. 5. a ' * * = ( c 1 e 2 * * ) e 1 * * 1 e 2 * e 1 * 1 e 2 * * e 1 * * 1
      Figure DE102019108095A1_0067
    6. 6. m*, m** = AdditiveSharedRLWEencode(v'*,v'**)
    7. 7. p ' * = ( c 2 m * ¯ e 3 * ) e 1 * 1
      Figure DE102019108095A1_0068
    8. 8. p ' * * = ( c 2 m * * ¯ e 3 * * ) e 1 * * 1 ( m * ¯ e 3 * ) e 1 * 1 ( m * * ¯ e 3 * * ) e 1 * * 1
      Figure DE102019108095A1_0069
    9. 9. SharedHash(a'*∥a'**,p'*∥p'**) == β
  • Die Funktion AdditiveSharedSampleNoiseϑ gibt zwei Werte e 1 * , e 1 * *
    Figure DE102019108095A1_0070
    aus, die zufällige additive/arithmetische Anteile des Werts e1 sind, sodass e 1 = e 1 * + e 1 * * .
    Figure DE102019108095A1_0071
    Es wird auf [OSPG18] verwiesen, in dem ein solcher maskierter Sampler in Abschnitt 3.3.4 beschrieben ist.
  • Die Funktion AdditiveSharedRLWEencode nimmt zwei gemeinsam genutzte boolesche Werte v'*, v'**, sodass v = v'*xor v'** und gibt additive/arithmetische Anteile der codierten Nachricht aus.
  • Die Subtraktion
  • e 2 * e 1 * 1 + e 2 * * e 1 * * 1
    Figure DE102019108095A1_0072
    und die Subtraktion von ( m * ¯ e 3 * ) e 1 * 1 + ( m * * ¯ e 3 * * ) e 1 * * 1
    Figure DE102019108095A1_0073
    korrigiert einen Fehler, der durch die Maskierung eingeführt wurde, sodass die additiv gemeinsam genutzten Werte durch eine Hash-Funktion, die hinzugefügte gemeinsam genutzte Werte als Eingabe nimmt, verarbeitet werden können und dann sicher mit dem Prüfwert β verglichen werden können.
  • Eine andere Option zum Schutz der Berechnung wäre das Bereitstellen einer multiplikativen Maskierung. Zu Zwecken der Effizienzverbesserung kann die NTT angewendet werden.
  • Hierin beschriebene Beispiele können für Varianten des Lyubashevsky, Peikert, Regev 2010 -Kryptosystems oder andere Schemata wie NewHope oder Kyber anwendbar sein. Zusätzlich sind auch Szenarien möglich, die eine Kombination mit Schemata wie LWEbasiertem Frodo verwenden.
  • Implementierungsbeispiele
  • 5 zeigt Verarbeitungsgerät 500, das CPU 501, RAM 502, nichtflüchtigen Speicher 503 (NVM), Kryptomodul 504, Analogmodul 506, Eingabe-/Ausgabe-Schnittstelle 507 und Hardware-Zufallszahlengenerator 512 umfasst.
  • In diesem Beispiel hat die CPU 501 über gemeinsam genutzten Bus 505, mit dem jedes Kryptomodul 504 verbunden ist, Zugriff auf mindestens ein Kryptomodul 504. Jedes Kryptomodul 504 kann insbesondere einen oder mehrere Kryptokerne umfassen, um bestimmte kryptografische Operationen auszuführen. Beispielhafte Kryptokerne sind:
    • - AES-Kern 509,
    • - SHA-Kern 510,
    • - ECC-Kern 511, und
    • - gitterbasierter Krypto (LBC) -Kern 508.
  • Der gitterbasierte Kryptokern 508 kann bereitgestellt werden, um die gitterbasierte Kryptografie zu beschleunigen.
  • Die CPU 501, der Hardware-Zufallszahlengenerator 512, 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 Verbindung 514 mit anderen Geräten haben, die dem Verarbeitungsgerät 500 ähnlich sein können.
  • Das Kryptomodul 504 kann oder kann nicht mit Hardware-basierten Sicherheitsmerkmalen ausgestattet sein.
  • Das Analogmodul 506 wird über einen elektrischen Kontakt und/oder über ein elektromagnetisches Feld mit elektrischer Energie 513 beliefert. Diese Energie wird geliefert, um die Schaltung des Verarbeitungsgeräts 500 anzutreiben, und kann insbesondere der Eingabe-/Ausgabe-Schnittstelle ermöglichen, Verbindungen zu anderen Geräten über die Verbindung 514 zu initiieren und/oder aufrechtzuerhalten.
  • Der Bus 505 selbst kann maskiert oder klar sein. Anweisungen zum Verarbeiten der hierin beschriebenen Schritte können insbesondere in dem NVM 503 gespeichert und durch die CPU 501 verarbeitet werden. Die verarbeiteten Daten können in dem NVM 503 oder in dem RAM 502 gespeichert werden. Unterstützende Funktionen können durch die Kryptomodule 504 bereitgestellt werden (zum Beispiel Erweiterung von Pseudozufallsdaten). Zufallszahlen werden durch den Hardware-Zufallszahlengenerator 512 geliefert.
  • Schritte des hierin beschriebenen Verfahrens können ausschließlich oder zumindest teilweise an dem Kryptomodul 504, zum Beispiel an dem gitterbasierten Kryptokern 508, durchgeführt werden. Zum Beispiel können Anweisungen in dem gitterbasierten Kryptokern 508 gespeichert werden, oder sie können durch die CPU 501 über den Bus 505 bereitgestellt werden. Daten können lokal mit dem gitterbasierten Kryptokern 508 gespeichert werden. Es ist auch eine Option, dass die Daten vorübergehend in dem RAM 502 oder in dem NVM 503 gespeichert werden. Der gitterbasierte Kryptokern 508 kann auch andere Kryptomodule verwenden, um unterstützende Funktionen (zum Beispiel Erweiterung von Pseudozufallsdaten) bereitzustellen. Der gitterbasierte Kryptokern 508 kann auch einen Hardware-Zufallszahlengenerator oder ein Mittel zum Erzeugen physikalischer und/oder Software-Zufallszahlen umfassen.
  • Das Verarbeitungsgerät 500 kann eine Chipkarte sein, die durch direkten elektrischen Kontakt oder durch ein elektromagnetisches Feld mit Energie versorgt wird. Das Verarbeitungsgerät 500 kann eine feste Schaltung sein oder auf rekonfigurierbarer Hardware (zum Beispiel Field-Programmable-Gate-Array, FPGA) basieren. Das Verarbeitungsgerät 500 kann mit einem Personal-Computer, Mikrocontroller, FPGA oder einem Smartphone gekoppelt sein.
  • 6 zeigt ein weiteres Beispiel von Verarbeitungsgerät 600. Das Verarbeitungsgerät 600 umfasst Hardware-Sicherheitsmodul 601, nichtflüchtigen Speicher (NVM) 608, Direktzugriffsspeicher (RAM) 609, Schnittstelle 610 zur Kommunikation mit anderen Geräten und Anwendungsprozessor 607, der mit dem Hardware-Sicherheitsmodul (HSM) 601, dem RAM 609, dem NVM 608 und der Schnittstelle 610 gekoppelt ist.
  • Das HSM 601 umfasst Steuerung 602, Hardware-Zufallszahlengenerator (HRNG) 606 und mindestens ein Kryptomodul 603. Das Kryptomodul 603 umfasst beispielhaft AES-Kern 604 und gitterbasierten Krypto (LBC) -Kern 605.
  • Gemäß einer Ausführungsform können das HSM 601 und der Anwendungsprozessor 607 auf demselben physikalischen Chip mit einer engen Kopplung hergestellt werden. Das HSM 601 liefert kryptografische Dienste und gesicherte Schlüsselspeicherung, während der Anwendungsprozessor rechenintensive Aufgaben (zum Beispiel Bilderkennung, Kommunikation, Motorsteuerung) ausführen kann. Das HSM 601 kann nur über eine definierte Schnittstelle zugänglich sein und wird als unabhängig von dem Rest des Systems betrachtet, auf eine Weise, dass eine Sicherheitsbeeinträchtigung des Anwendungsprozessors 607 nur begrenzten Einfluss auf die Sicherheit des HSM 601 hat. Das HSM 601 kann alle Aufgaben oder eine Teilmenge von Aufgaben ausführen, die in Bezug auf das Verarbeitungsgerät 600 beschrieben sind, indem es die Steuerung 602, den LBC 605 verwendet, beispielhaft unterstützt von einem AES 604 und dem HRNG 606. Es kann die hierin beschriebenen Prozeduren (zumindest teilweise) entweder durch eine interne Steuerung oder als CMOS-Schaltung gesteuert ausführen. Darüber hinaus kann auch der Anwendungsprozessor 607 die hierin beschriebenen Prozeduren (mindestens teilweise, zum Beispiel in Zusammenarbeit mit dem HSM 601) ausführen.
  • Das Verarbeitungsgerät 600 mit diesem Anwendungsprozessor 607 und HSM 601 kann als ein zentrales Kommunikationsportal oder eine (elektrische) Motorsteuereinheit in Pkw oder anderen Fahrzeugen verwendet werden.
  • In einem oder mehreren Beispielen können die hierin beschriebenen Funktionen mindestens teilweise in Hardware, wie zum Beispiel spezifischen Hardwarekomponenten, oder einem Prozessor implementiert sein. Allgemeiner können die Techniken in Hardware, Prozessoren, Software, Firmware oder jeglichen Kombination davon implementiert sein. Wenn sie in Software implementiert sind, können die Funktionen als eine oder mehrere Anweisungen oder ein Code auf einem computerlesbaren Medium gespeichert oder dahin übertragen und durch eine hardwarebasierte Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speicherungsmedien, die einem materiellen Medium, wie zum Beispiel Datenspeicherungsmedien, entsprechen, oder Kommunikationsmedien, einschließlich jeglichen Mediums, das die Übertragung eines Computerprogramms von einem Ort zu einem anderen erleichtert, zum Beispiel gemäß einem Kommunikationsprotokoll, beinhalten. Auf diese Weise können computerlesbare Medien im Allgemeinen (1) materiellen computerlesbaren Speicherungsmedien, die nichtflüchtig sind, oder (2) einem Kommunikationsmedium, wie zum Beispiel einem Signal oder einer Trägerwelle, entsprechen. Datenspeicherungsmedien können jegliche 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 wiederabzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium beinhalten.
  • Beispielsweise, und nicht einschränkend, können solche computerlesbaren Speicherungsmedien RAM, ROM, EEPROM, CD-ROM oder eine andere Speicherung mit optische Disks, Speicherung mit magnetische Disks oder andere magnetische Speicherungsgeräte, einen Flash-Speicher oder jegliches andere Medium umfassen, das verwendet werden kann, um gewünschten Programmcode in der Form von Anweisungen oder Datenstrukturen zu speichern, und auf das ein Computer zugreifen kann. Auch wird jegliche Verbindung ordnungsgemäß als ein computerlesbares Medium, das heißt als ein computerlesbares Übertragungsmedium, bezeichnet. Wenn zum Beispiel Anweisungen von einer Website, einem Server oder einer anderen entfernt angeordneten Quelle durch Verwenden eines Koaxialkabels, Glasfaserkabels, verdrillten Doppelkabels, einer Digital-Subscriber-Line (DSL) oder drahtloser Technologien, wie zum Beispiel Infrarot, Funk und Mikrowelle, übertragen werden, dann sind die Koaxialkabel, Glasfaserkabel, verdrillten Doppelkabel, DSL oder drahtlosen Technologien, wie zum Beispiel Infrarot, Funk und Mikrowelle, in der Definition von Medium enthalten. Es sollte jedoch klargestellt werden, dass computerlesbare Speicherungsmedien und Datenspeicherungsmedien keine Verbindungen, Trägerwellen, Signale oder andere transiente Medien beinhalten, sondern stattdessen auf nicht transiente, materielle Speicherungsmedien gerichtet sind. Disk und Disc, wie hierin verwendet, umfassen Compact-Disc (CD), Laserdisc, optische Disc, Digital-Versatile-Disc (DVD), Floppy Disk und Blu-ray-Disc, wobei Disks normalerweise Daten magnetisch wiedergeben, während Discs Daten optisch mit Lasern wiedergeben. Kombinationen der oben Genannten sollten auch in dem Umfang computerlesbarer Medien enthalten sein.
  • Anweisungen können durch einen oder mehrere Prozessoren, wie zum Beispiel eine oder mehrere Central-Processing-Units (CPU), Digital-Signal-Processors (DSP), Allzweck-Mikroprozessoren, Application-Specific-Integrated-Circuits (ASIC), Field-Programmable-Logic-Arrays (FPGA) oder andere äquivalente integrierte oder diskrete Logikschaltungen, ausgeführt werden. Dementsprechend kann sich der Begriff „Prozessor“, wie hierin verwendet, auf jegliche der vorstehenden Strukturen oder jegliche andere Struktur beziehen, die zur Implementierung der hierin beschriebenen Techniken geeignet ist. Zusätzlich kann in einigen Aspekten die hierin beschriebene Funktionalität innerhalb fest zugeordneter Hardware- und/oder Softwaremodule bereitgestellt werden, die zum Codieren und Decodieren ausgelegt 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 breiten Palette von Geräten oder Vorrichtungen implementiert sein, einschließlich eines drahtlosen Handgeräts, einer integrierten Schaltung (IC) oder eines Satzes von IC (zum Beispiel eines Chipsatzes). In dieser Offenbarung werden verschiedene Komponenten, Module oder Einheiten beschrieben, um funktionale Aspekte von Geräten hervorzuheben, die dazu ausgelegt sind, die offenbarten Techniken auszuführen, erfordern jedoch nicht notwendigerweise die Realisierung durch verschiedene Hardwareeinheiten. Vielmehr können, wie oben beschrieben, verschiedene Einheiten in einer einzelnen Hardwareeinheit kombiniert oder durch eine Sammlung interoperativer Hardwareeinheiten, einschließlich eines oder mehrerer Prozessoren, wie oben beschrieben, in Verbindung mit geeigneter Software und/oder Firmware bereitgestellt werden.
  • Obwohl verschiedene beispielhafte Ausführungsformen der Erfindung offenbart wurden, wird für Fachleute erkennbar sein, dass verschiedene Änderungen und Modifikationen gemacht werden können, die einige der Vorteile der Erfindung erreichen, ohne von dem Geist und Umfang der Erfindung abzuweichen. Es ist für angemessen ausgebildete Fachleute offensichtlich, dass andere Komponenten, die die gleichen Funktionen ausführen, in geeigneter Weise ersetzt werden können. Es sollte erwähnt werden, dass Merkmale, die unter Bezugnahme auf eine spezifische Figur erläutert wurden, mit Merkmalen anderer Figuren kombiniert werden können, selbst in den Fällen, in denen dies nicht ausdrücklich erwähnt wurde. Ferner können die Verfahren der Erfindung entweder in allen Softwareimplementierungen, durch Verwenden der entsprechenden Prozessoranweisungen, oder in Hybridimplementierungen, die eine Kombination von Hardwarelogik und Softwarelogik verwenden, erreicht werden, um die gleichen Ergebnisse zu erreichen. Es ist beabsichtigt, dass solche Modifikationen des erfinderischen Konzepts durch die beigefügten Ansprüche abgedeckt werden.
  • Referenzenliste:
    • [NewHopeNist17] NewHope - Submission to the NIST post-quantum project. Erdem Alkim, Roberto Avanzi, Joppe Bos, Leo Ducas, Antonio de la Piedra, Thomas Pöppelmann, Peter Schwabe, Douglas Stebila. Siehe https://csrc.nist.gov/Projects/Post-Quantum-Cryptography/Round-1-Submissions
    • [NewHopeSimplePaperEprint16] Erdem Alkim, Leo Ducas, Thomas Pöppelmann, Peter Schwabe: NewHope without reconciliation. IACR Cryptology ePrint Archive 2016: 1157 (2016).
    • [NewHopePaperEprint16] Erdem Alkim, Leo Ducas, Thomas Pöppelmann, Peter Schwabe: Post-quantum key exchange - a new hope. IACR Cryptology ePrint Archive 2015: 1092 (2015)
    • [OSPG18] T. Oder, T. Schneider, T. Pöppelmann and T. Güneysu: Practical CCA2-Secure and Masked Ring-LWE Implementation, IACR Eprint, 23 Jan 2018 (accessed 15 June 2018), https://eprint.iacr.org/2016/1109.pdf
    • [LPR10A] Vadim Lyubashevsky, Chris Peikert, Oded Regev.: On Ideal Lattices and Learning with Errors Over Rings, Journal of the ACM, 60(6):43:1-43:35. Preliminary Version in Eurocrypt 2010. https://web.eecs.umich.edu/∼cpeikert/pubs/ideal-lwe.pdf
    • [LPR10B] Vadim Lyubashevsky, Chris Peikert, Oded Regev.: On Ideal Lattices and Learning with Errors Over Rings, Slides presented at Eurocrypt 2010, https://web.eecs.umich.edu/∼cpeikert/pubs/slides-ideal-lwe.pdf
  • 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
    • [NewHopeSimplePaperEprint16] Erdem Alkim, Leo Ducas, Thomas Pöppelmann, Peter Schwabe: NewHope without reconciliation. IACR Cryptology ePrint Archive 2016: 1157 (2016) [0185]
    • [NewHopePaperEprint16] Erdem Alkim, Leo Ducas, Thomas Pöppelmann, Peter Schwabe: Post-quantum key exchange - a new hope. IACR Cryptology ePrint Archive 2015: 1092 (2015) [0185]

Claims (18)

  1. Verfahren zur Verarbeitung eines Chiffretextes, - bei dem ein geheimer Schlüssel und der Chiffretext verwendet werden, um einen Startwert zu bestimmen, - bei dem ein Kandidat für einen öffentlichen Schlüssel von dem Chiffretext unter Verwendung des Startwerts extrahiert wird, - bei dem ein Prüfwertkandidat basierend auf dem Kandidaten für einen öffentlichen Schlüssel bestimmt wird, - bei dem der Prüfwertkandidat mit einem Prüfwert verglichen wird, - bei dem der Chiffretext weiter verarbeitet wird, falls der Vergleich anzeigt, dass der Prüfwertkandidat dem Prüfwert entspricht.
  2. Verfahren nach Anspruch 1, bei dem der geheime Schlüssel und der Prüfwert bei einem Decodierer gespeichert oder für den Decodierer zugänglich sind.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem ein Fehler bestimmt wird, falls der Vergleich anzeigt, dass der Prüfwertkandidat nicht dem Prüfwert entspricht.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Prüfwert basierend auf einer Hash-Funktion des öffentlichen Schlüssels bestimmt wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Prüfwert basierend auf einer Hash-Funktion von zwei verketteten Polynomen a und p bestimmt wird, wobei das Polynom a Teil des öffentlichen Schlüssels ist und das Polynom p der öffentliche Schlüssel p = r1 - a · r2 ist, wobei r1 und r2 zufällig erzeugte Polynome sind.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem Wertkomponenten von Kandidaten für öffentliche Schlüssel a' und p' von dem Chiffretext c1, c2 extrahiert werden durch Berechnen von a ' = ( c 1 e 2 ) e 1 1
    Figure DE102019108095A1_0074
    und p ' = ( c 2 R L W E e n c o d e ( ν ' ) e 3 ) e 1 1 ,
    Figure DE102019108095A1_0075
    wobei e1, e2 und e3 Rauschpolynome sind, v' ein entschlüsselter Chiffretext ist, und RLWEencode ( ) eine Codierungsfunktion ist.
  7. Verfahren nach Anspruch 6, bei dem das Rauschpolynom e1 so erzeugt wird, dass es invertierbar ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, das ferner die folgenden Schritte umfasst: - Empfangen des Chiffretextes, - wobei der geheime Schlüssel und der Chiffretext verwendet werden, um den Startwert unter Verwendung einer Entschlüsselungsoperation zu bestimmen; - wobei der Prüfwertkandidat basierend auf dem Kandidaten für einen öffentlichen Schlüssel bestimmt wird, indem der Kandidat für einen öffentlichen Schlüssel in eine Erzeugungsfunktion eingegeben wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem eine Nutznachricht basierend auf dem Startwert entschlüsselt wird.
  10. Verfahren nach Anspruch 8, bei dem eine Nutznachricht basierend auf der Entschlüsselungsoperation bestimmt wird.
  11. Verfahren nach Anspruch 10, bei dem eine Integritätsprüfung der Nutznachricht durch Verwenden des Startwerts, eines anderen Abschnitts des Chiffretextes und mindestens einer Hash-Funktion durchgeführt wird.
  12. Verfahren nach einem der vorhergehenden Ansprüche, bei dem eine solche Verarbeitung die zahlentheoretische Transformation, NTT, verwendet.
  13. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren an einem Sicherheitsgerät oder zum Betreiben eines Sicherheitsgeräts verwendet wird, wobei ein solches Sicherheitsgerät mindestens eines der Folgenden umfasst: - einen integrierten Schaltkreis, - ein Hardware-Sicherheitsmodul, - ein vertrauenswürdiges Plattformmodul, - eine Kryptoeinheit, - ein FPGA, - eine Verarbeitungseinheit, - eine Steuerung, - eine Smartcard.
  14. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verarbeiten des Chiffretextes mindestens eine kryptografische Gitteroperation verwendet.
  15. Sicherheitsgerät, das eingerichtet ist, um die Schritte auszuführen: - Empfangen eines Chiffretextes; - Bestimmen eines Startwerts basierend auf einem geheimen Schlüssel und dem Chiffretext; - Extrahieren eines Kandidaten für einen öffentlichen Schlüssel von dem Chiffretext unter Verwendung des Startwerts; - Bestimmen eines Prüfwertkandidaten basierend auf dem Kandidaten für einen öffentlichen Schlüssel; - Vergleichen des Prüfwertkandidaten mit einem Prüfwert; - Weiterverarbeiten des Chiffretextes, falls der Vergleich anzeigt, dass der Prüfwertkandidat dem Prüfwert entspricht.
  16. Gerät nach Anspruch 13, wobei das Sicherheitsgerät eines der Folgenden ist oder mindestens eines der Folgenden umfasst: - einen integrierten Schaltkreis, - ein Hardware-Sicherheitsmodul, - ein vertrauenswürdiges Plattformmodul, - eine Kryptoeinheit, - ein FPGA, - eine Verarbeitungseinheit, - eine Steuerung, - eine Smartcard.
  17. Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Verarbeitungsgeräts geladen werden kann, das Software-Codeabschnitte zum Ausführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 11 umfasst.
  18. Sicherheitsgerät, das Folgendes umfasst: - Mittel zum Empfangen eines Chiffretextes; - Mittel zum Bestimmen eines Startwerts basierend auf einem geheimen Schlüssel und dem Chiffretext; - Mittel zum Extrahieren eines Kandidaten für einen öffentlichen Schlüssel von dem Chiffretext unter Verwendung des Startwerts; - Mittel zum Bestimmen eines Prüfwertkandidaten basierend auf dem Kandidaten für einen öffentlichen Schlüssel; - Mittel zum Vergleichen des Prüfwertkandidaten mit einem Prüfwert; - Mittel zum Weiterverarbeiten des Chiffretextes, falls der Vergleich anzeigt, dass der Prüfwertkandidat dem Prüfwert entspricht.
DE102019108095.9A 2019-03-28 2019-03-28 Ausführen einer kryptografischen Operation Pending DE102019108095A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102019108095.9A DE102019108095A1 (de) 2019-03-28 2019-03-28 Ausführen einer kryptografischen Operation
US16/834,432 US11283608B2 (en) 2019-03-28 2020-03-30 Executing a cryptographic operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019108095.9A DE102019108095A1 (de) 2019-03-28 2019-03-28 Ausführen einer kryptografischen Operation

Publications (1)

Publication Number Publication Date
DE102019108095A1 true DE102019108095A1 (de) 2020-10-01

Family

ID=72605195

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019108095.9A Pending DE102019108095A1 (de) 2019-03-28 2019-03-28 Ausführen einer kryptografischen Operation

Country Status (2)

Country Link
US (1) US11283608B2 (de)
DE (1) DE102019108095A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020121229B3 (de) 2020-08-12 2022-01-27 Infineon Technologies Ag Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
JP7273753B2 (ja) * 2020-03-06 2023-05-15 株式会社東芝 数論変換処理装置、数論変換処理方法及びプログラム
KR20220055079A (ko) * 2020-10-26 2022-05-03 삼성에스디에스 주식회사 NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법
CN112818362B (zh) * 2021-01-29 2023-09-22 江苏理工学院 基于r-lwe的公钥加密方法
US20220385461A1 (en) * 2021-05-21 2022-12-01 Samsung Electronics Co., Ltd. Encryption key generating method, appratus, ciphertext operation method and apparatus using the generated encryption key
WO2022260672A1 (en) * 2021-06-10 2022-12-15 Pqsecure Technologies, Llc A low footprint resource sharing hardware architecture for crystals-dilithium and crystals-kyber
US11671453B2 (en) * 2021-06-17 2023-06-06 Richard Lamb Automated lightweight database access protocol secure/multipurpose internet mail extensions key server
US12105647B2 (en) * 2021-08-30 2024-10-01 EMC IP Holding Company LLC Asynchronous reservation of storage volumes with persistent storage of reservation data
WO2023055377A1 (en) * 2021-09-30 2023-04-06 Pqsecure Technologies, Llc An area efficient architecture for lattice based key encapsulation and digital signature generation
US12021985B2 (en) * 2022-06-03 2024-06-25 Nxp B.V. Masked decomposition of polynomials for lattice-based cryptography
WO2024174107A1 (zh) * 2023-02-21 2024-08-29 北京信息科学技术研究院 同态解密方法、装置、非易失性存储介质及计算机设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018206344A1 (en) * 2017-05-10 2018-11-15 Koninklijke Philips N.V. Key agreement devices and method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870473A (en) * 1995-12-14 1999-02-09 Cybercash, Inc. Electronic transfer system and method
US6697488B1 (en) * 1998-08-26 2004-02-24 International Business Machines Corporation Practical non-malleable public-key cryptosystem
KR100651715B1 (ko) * 2004-10-07 2006-12-01 한국전자통신연구원 차세대 인터넷에서 자동으로 주소를 생성하고 수락하는방법 및 이를 위한 데이터 구조
US20080168273A1 (en) * 2007-01-05 2008-07-10 Chung Hyen V Configuration mechanism for flexible messaging security protocols
US9130801B1 (en) * 2010-11-22 2015-09-08 Google Inc. Pushed-based package distribution
US9124433B2 (en) * 2012-12-28 2015-09-01 Vasco Data Security, Inc. Remote authentication and transaction signatures
US20160125416A1 (en) * 2013-05-08 2016-05-05 Acuity Systems, Inc. Authentication system
CA3174624A1 (en) * 2014-12-15 2016-06-23 Polaris Industries Inc. Autonomous ready vehicle
WO2017152819A1 (zh) * 2016-03-07 2017-09-14 李明 一种授权认证方法、装置和系统
GB201703864D0 (en) * 2017-03-10 2017-04-26 Irdeto Bv Secured system operation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018206344A1 (en) * 2017-05-10 2018-11-15 Koninklijke Philips N.V. Key agreement devices and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020121229B3 (de) 2020-08-12 2022-01-27 Infineon Technologies Ag Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens

Also Published As

Publication number Publication date
US20200313886A1 (en) 2020-10-01
US11283608B2 (en) 2022-03-22

Similar Documents

Publication Publication Date Title
DE102019108095A1 (de) Ausführen einer kryptografischen Operation
US11265163B2 (en) Method and processing device for performing a lattice-based cryptographic operation
US11798435B2 (en) Executing a cryptographic operation
Souyah et al. An image encryption scheme combining chaos-memory cellular automata and weighted histogram
DE102020119569B3 (de) Bereitstellen einer kryptografischen Information
US9350543B2 (en) Method and system for homomorphicly randomizing an input
US9049023B2 (en) Outsourcing the decryption of functional encryption ciphertexts
US8566601B1 (en) Systems and methods for functional encryption using a string of arbitrary length
DE102017117907B4 (de) Durchführen einer kryptografischen Operation
EP3134994B1 (de) Verfahren zur verneblung von daten
DE102017117899A1 (de) Durchführen einer kryptografischen Operation
Wang et al. Extended multivariate public key cryptosystems with secure encryption function
US11838431B2 (en) Cryptographic operation
Herranz et al. Some (in) sufficient conditions for secure hybrid encryption
Shi et al. An obfuscatable aggregatable signcryption scheme for unattended devices in IoT systems
Luo et al. LWR‐based fully homomorphic encryption, revisited
Birrell et al. Randomness-dependent message security
US20170359177A1 (en) Method and System for Cryptographic Decision-making of Set Membership
US20230171103A1 (en) Apparatus and Method for Decrypting an Encrypted Bit Sequence
DE102020119574B4 (de) Bereitstellen einer kryptografischen Information
Velugoti et al. An Approach for Privacy Preservation Assisted Secure Cloud Computation
DE102020121229B3 (de) Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens
Takagi Introduction to CREST Crypto-Math Project
DE102022115195A1 (de) Verarbeitung von kryptografischen Daten
Xiutao et al. A realtime key recovery attack on the authenticated cipher FASER128

Legal Events

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