DE102020119574B4 - Bereitstellen einer kryptografischen Information - Google Patents

Bereitstellen einer kryptografischen Information Download PDF

Info

Publication number
DE102020119574B4
DE102020119574B4 DE102020119574.5A DE102020119574A DE102020119574B4 DE 102020119574 B4 DE102020119574 B4 DE 102020119574B4 DE 102020119574 A DE102020119574 A DE 102020119574A DE 102020119574 B4 DE102020119574 B4 DE 102020119574B4
Authority
DE
Germany
Prior art keywords
cryptographic information
secret key
encrypted
cryptographic
met
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102020119574.5A
Other languages
English (en)
Other versions
DE102020119574A1 (de
Inventor
Andreas Wallner
Thomas Pöppelmann
Christian Hanser
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 DE102020119574.5A priority Critical patent/DE102020119574B4/de
Publication of DE102020119574A1 publication Critical patent/DE102020119574A1/de
Application granted granted Critical
Publication of DE102020119574B4 publication Critical patent/DE102020119574B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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
    • 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/3247Cryptographic 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 involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Es wird vorgeschlagen, eine kryptografische Information basierend auf den folgenden Schritten zu erstellen: (i) Bestimmen eines Abschnitts der kryptografischen Information; (ii) Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel; (iii) Übermitteln des verschlüsselten Abschnitts der kryptografischen Information; (iv) Überprüfen, ob ein Ablehnungskriterium erfüllt ist; und (v) Übermitteln des geheimen Schlüssels nur dann, wenn das Ablehnungskriterium nicht erfüllt ist. Ferner werden ein entsprechendes Gerät, ein System, das ein solches Gerät umfasst, und ein Computerprogrammprodukt vorgeschlagen.

Description

  • Ausführungsformen der vorliegenden Erfindung beziehen sich auf einen Ansatz, um eine kryptografische Information, zum Beispiel eine Signatur, effizient zu erstellen.
  • [D.-E. Kouicem et al: An Efficient and Anonymous Blockchain-Based Data Sharing Scheme for Vehicular Networks, ISCC, 7.-10.07.2020] betrifft automobile Adhoc-Netzwerke in Verbindung mit Blockchain, Authentifizierung und Zero-Knowledge-Proof.
  • [J. Chen et al.: A Zero-Knowledge Identity Verification Protocol Using Blind Watermark, Intern. Conference on Computer Engineering and Technology, 2009] stellt ein Protokoll zur Verifikation vor unter Kombination von Identifikationsmerkmalen eines Zero-Knowledge-Proofs mit unsichtbaren Wasserzeichen.
  • [Y.-H. Park et al.: Fast and Secure Group Key Dissemination Scheme for Out-of-Range V2I Communication, IEEE Transaction on Vehicular Technology, Vol.64, No.12, Dezember 2015] betrifft die Kommunikation zwischen Fahrzeugs und Infrastruktur, insbesondere dabei die sichere Verbreitung von Gruppenschlüsseln.
  • [M. Harikrishnan et al.: Secure Digital Service Payments using Zero Knowledge Proof in Distributed Network, ICACCS, 2019] betrifft die Vertraulichkeit der Daten, die eine Voraussetzung ist für den Einsatz der Blockchain-Technologie in Bezahlsystemen.
  • DE 10 2018 127 126 A1 betrifft eine erneute Registrierung von physikalisch unklonbaren Funktionen (PUFs) aus der Ferne.
  • EP 2 030 364 B1 betrifft das Bereitstellen und das Überprüfen einer Nachricht zwischen Komponenten eines Kommunikationssystems. Dabei umfasst die Nachricht Aussagen, die von Kommunikationspartnern bewiesen bzw. überprüft werden können.
  • Das Ziel ist es, bestehende Lösungen zu verbessern, und insbesondere, kryptografische Information effizient bereitzustellen.
  • Dies wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Weitere Ausführungsformen resultieren aus den abhängigen Ansprüchen.
  • Die hierin vorgeschlagenen Beispiele können insbesondere auf mindestens einer der folgenden Lösungen basieren. Kombinationen der folgenden Merkmale können verwendet werden, um ein gewünschtes Ergebnis zu erreichen. Die Merkmale des Verfahrens könnten mit einem beliebigen Merkmal (beliebigen Merkmalen) des Geräts, der Vorrichtung oder des Systems kombiniert werden oder umgekehrt.
  • Es wird ein Verfahren zum Erstellen einer kryptografischen Information vorgesehen, wobei das Verfahren Folgendes umfasst:
    • - Bestimmen eines Abschnitts der kryptografischen Information;
    • - Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel;
    • - Übermitteln des verschlüsselten Abschnitts der kryptografischen Information;
    • - Überprüfen, ob ein Ablehnungskriterium erfüllt ist;
    • - Übermitteln des geheimen Schlüssels nur dann, wenn das Ablehnungskriterium nicht erfüllt ist;
    • - wobei das Verarbeiten der kryptografischen Information mindestens eine kryptografische Gitteroperation verwendet.
  • Gemäß einer Ausführungsform ist oder umfasst die kryptografische Information mindestens eines der Folgenden:
    • - eine Signatur;
    • - eine Pairing-Information;
    • - eine mit einem Zero-Knowledge-Proof verbundene Information.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner:
    • - Bestimmen des Abschnitts der kryptografischen Information unter Nutzung einer Zufälligkeit;
    • - wenn das Ablehnungskriterium erfüllt ist, erneutes Starten des Verfahrens mit einer anderen Zufälligkeit.
  • Zufälligkeit kann eine echte Zufälligkeit und/oder eine Pseudozufälligkeit und/oder ein deterministisches Merkmal umfassen.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner:
    • - Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel;
    • - Überprüfen, ob ein Ablehnungskriterium erfüllt ist, und
    • - wenn das Ablehnungskriterium erfüllt ist, Nichtsenden des verschlüsselten Abschnitts der kryptografischen Information und erneutes Starten des Verfahrens;
    • - wenn das Ablehnungskriterium nicht erfüllt ist, Senden des verschlüsselten Abschnitts der kryptografischen Information und entweder Fortfahren mit dem nächsten Abschnitt oder Fortfahren mit dem nächsten Schritt, wenn es keine Abschnitte mehr gibt;
    • - Übermitteln des geheimen Schlüssels.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner:
    • - Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel;
    • - Übermitteln des verschlüsselten Abschnitts der kryptografischen Information,
    • - Überprüfen, ob ein Ablehnungskriterium für alle verschlüsselten Abschnitte der kryptografischen Information erfüllt ist,
    • - wenn das Ablehnungskriterium erfüllt ist, erneutes Starten des Verfahrens;
    • - wenn das Ablehnungskriterium nicht erfüllt ist, Übermitteln des geheimen Schlüssels.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner:
    • - Löschen des verschlüsselten Abschnitts der kryptografischen Information, nachdem er übermittelt wurde.
  • Gemäß einer Ausführungsform umfasst eine eingehende Nachricht mindestens eine Challenge (kryptographische Aufgabe) und mindestens einen verschlüsselten zweiten geheimen Schlüssel, wobei jede Challenge mit einem verschlüsselten zweiten geheimen Schlüssel verbunden ist, wobei das Verfahren ferner Folgendes umfasst:
    • - Entschlüsseln jedes verschlüsselten zweiten geheimen Schlüssels;
    • - Bestimmen eines Abschnitts der kryptografischen Information unter Nutzung des entschlüsselten zweiten geheimen Schlüssels.
  • Gemäß einer Ausführungsform wird der geheime Schlüssel bereitgestellt, um die verschlüsselten Abschnitte der kryptografischen Information zu entschlüsseln und somit die kryptografische Information zu bestimmen.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner:
    • - Durchführen einer Authentifizierung basierend auf der kryptografischen Information.
  • 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:
    • - eine integrierte Schaltung,
    • - ein Hardware-Security-Modul,
    • - ein Trusted-Platform-Modul,
    • - eine Kryptoeinheit,
    • - ein FPGA,
    • - eine Verarbeitungseinheit,
    • - eine Steuerung,
    • - eine Smartcard.
  • Ferner wird ein Sicherheitsgerät zum Erstellen einer kryptografischen Information vorgeschlagen, wobei das Sicherheitsgerät eingerichtet ist, um die folgenden Schritte durchzuführen:
    • - Bestimmen eines Abschnitts der kryptografischen Information,
    • - Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel;
    • - Übermitteln des verschlüsselten Abschnitts der kryptografischen Information,
    • - Überprüfen, ob ein Ablehnungskriterium erfüllt ist,
    • - Übermitteln des geheimen Schlüssels nur dann, wenn das Ablehnungskriterium nicht erfüllt ist,
    • - wobei das Verarbeiten der kryptografischen Information mindestens eine kryptografische Gitteroperation verwendet.
  • Es wird auch ein Verbrauchsartikel vorgeschlagen, der das Sicherheitsgerät wie hierin beschrieben umfasst.
  • Zusätzlich wird ein System vorgesehen, das das hierin beschriebene Sicherheitsgerät und einen Host umfasst, wobei der verschlüsselte Abschnitt der kryptografischen Information und, gegebenenfalls, der geheime Schlüssel von dem Sicherheitsgerät an den Host übermittelt wird/werden.
  • Gemäß einer Ausführungsform ist der Host angeordnet, um das Sicherheitsgerät basierend auf der kryptografischen Information und, gegebenenfalls, basierend auf dem geheimen Schlüssel zu authentifizieren.
  • Es wird ferner ein Computerprogrammprodukt vorgeschlagen, das direkt in einen Speicher eines digitalen Verarbeitungsgeräts geladen werden kann, das Softwarecode-Abschnitte zum Ausführen der Schritte des Verfahrens wie hierin beschrieben umfasst.
  • Ausführungsformen werden unter Bezugnahme auf die Zeichnungen gezeigt und veranschaulicht. Die Zeichnungen dienen der Veranschaulichung des Grundprinzips, sodass nur zum Verständnis des Grundprinzips erforderliche Aspekte veranschaulicht werden. Die Zeichnungen sind nicht maßstabsgetreu. In den Zeichnungen bezeichnen dieselben Bezugszeichen gleiche Merkmale.
    • 1 visualisiert einen Prozess zum Erstellen und Liefern einer Signatur von einer Krypto-Engine an ein Terminal;
    • 2A zeigt ein beispielhaftes Flussdiagramm mit Schritten eines Verfahrens, das ausgeführt werden soll, zum Beispiel auf einer Krypto-Engine;
    • 2B zeigt eine alternative Ausführungsform zu dem Beispiel von 2A;
    • 3 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;
    • 4 zeigt eine alternative Anordnung mit einem Hardware-Sicherheitsmodul (Hardware-Security-Module - HSM).
  • Die hierin beschriebenen Lösungen gelten sowohl für klassische Kryptosysteme als auch für Post-Quanten-Kryptosysteme.
  • 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 Public-Key-Encryption(PKE)-Schema realisiert werden, das es ermöglicht, eine verschlüsselte E-Mail (zum Beispiel mit PGP/GPG oder S/MIME) an einen Empfänger zu senden, 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 Anwendungsbereiche der asymmetrischen Kryptografie sind digitale Signaturen, ebenfalls basierend auf RSA oder ECC. Sie können zum Signieren und Verifizieren von Daten verwendet werden, und der öffentliche Schlüssel wird verwendet, um die Gültigkeit einer Signatur zu überprüfen.
  • Zusammen sind PKE und digitale Signaturen beide entscheidend in dem Transport-Layer-Security(TLS)-Protokoll, das das Rückgrat der gesicherten Kommunikation im Internet darstellt, und das durch Browser, Smartphones und IoT(Internet of Things)-Geräte verwendet wird. TLS richtet einen gesicherten Kanal zwischen zwei Geräten ein, wobei die Kommunikation verschlüsselt wird, auf Manipulation überprüft wird, und wobei die Identität der Teilnehmer durch Verwenden eines durch eine Public-Key-Infrastruktur (PKI) bereitgestellten digitalen Zertifikats verifiziert wird. Beim Verbinden mit einer Website, zum Beispiel der einer Bank, durch Verwenden von https statt 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 ausgeführt wird, 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 aufgerufene Website auszugeben.
  • Es ist jedoch bekannt, dass RSA- und ECC-basierte öffentliche Schlüssel einem erfolgreichen Angriff, zum Beispiel durch Verwenden von 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 Bau eines Quantencomputers sind sogenannte Quantenbits oder Qubits, die einen Zustand in einem Quantenregister speichern. Solche Quantencomputer können verwendet werden, um kryptografische Konzepte erfolgreich zu durchbrechen, die als ausreichend sicher galten, bevor eine solche Verarbeitungsleistung verfügbar war.
  • Daher gibt es eine allgemeine Motivation, sich von klassischen asymmetrischen Kryptosystemen (RSA/ECC) weg zu bewegen, hin zu Schemata, die durch Quantencomputer nicht erfolgreich angegriffen werden können. Als Folge sind neue Lösungen für Signaturschemata, Schlüsselaustausch und Public-Key-Encryption erforderlich, die nicht auf denselben Grundlagen wie RSA und ECC (das heißt dem Problem des diskreten Logarithmus/Factoring) basieren. Dieser Bedarf an neuen technischen Lösungen wurde bereits durch Standardisierungsgremien wie dem NIST (National Institute of Standards and Technology) anerkannt, die alternative Kryptosysteme untersuchen.
  • Ein Kryptosystem kann eine kryptografische Public-Key-Encryption, ein Schlüsselaustausch oder ein Signaturschema oder ein fortgeschrittenes Schema wie eine homomorphe Verschlüsselung oder eine attributbasierte Verschlüsselung sein. Bei der Public-Key-Encryption 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. Bei Signaturschemata wird ein geheimer Schlüssel verwendet, um eine Nachricht zu signieren, und mit dem zugehörigen öffentlichen Schlüssel kann verifiziert werden, dass der Unterzeichner im Besitz des geheimen Schlüssels war, und somit berechtigt war, die Signatur zu erstellen. Der Schlüsselaustausch oder die Schlüsseleinrichtung ist ein interaktives Protokoll, wobei zwei Parteien einen geheimen Schlüssel einrichten, der einem passiven oder manchmal aktiven Gegner oder Lauscher nicht bekannt ist. Es können auch unterschiedliche Optionen verwendet werden, die Public-Key-Encryption, Schlüsselaustausch oder Signaturschemata in Protokolle, wie zum Beispiel Transport-Layer-Security (TLS), kombinieren.
  • Eine Klasse von Schemata, die Angriffen von Quantencomputern widerstehen sollen, sind gitterbasierte Kryptosysteme. Gitterbasierte Kryptosysteme könnten der Nachfolger von RSA und ECC werden, und entweder auf großen Matrizen (Standardgittern) oder auf Polynomringen (idealen Gittern) arbeiten. Für gitterbasierte Kryptografie wird zum Beispiel aufhttps://en.wikipedia.org/wiki/Lattice-based_cryptography Bezug genommen.
  • Ein Gitter ist eine Struktur, die durch ganzzahlige Linearkombinationen 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 DE102020119574B4_0001
    definiert als L ( b 1 , , b n ) = { x i b i | x i Z } ,
    Figure DE102020119574B4_0002
    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 DE102020119574B4_0003
    (das heißt einem n-dimensionalen Raum) werden bestimmte grundlegende Probleme, wie das Finden einer kurzen Basis oder eines kurzen Vektors, als rechnerisch schwierig oder mindestens komplex genug angenommen, um sie für Kryptografie zu verwenden. Gewöhnlich kann die Schwierigkeit des Brechens eines gitterbasierten Kryptosystems reduziert oder mit der Schwierigkeit der Lösung eines solchen grundlegenden Problems in Beziehung gesetzt werden. Gitterbasierte Kryptografie oder ein gitterbasiertes Kryptosystem ist ein kryptografisches System, dessen Sicherheit auf der Schwierigkeit bestimmter mathematisch schwieriger Probleme in Gittern basiert oder sich darauf bezieht.
  • Gitter können verwendet werden, um Kryptosysteme aufzubauen. Gitterbasierte Kryptografie ist auch unter Bezugnahme auf das Problem des benutzerfreundlichen Learning-With-Errors (LWE) und das Problem des Ring-LWE (RLWE) bekannt. In diesem Zusammenhang bezieht sich ein „Problem“ auf ein mathematisches Problem (zum Beispiel etwas finden), von dem angenommen wird, dass es schwierig zu lösen ist (das heißt, es ist kein polynomialer Zeitalgorithmus verfügbar), das aber auch den Aufbau eines kryptografischen Schemas ermöglicht (wie zum Beispiel Faktorisierungsproblem für RSA oder diskreter Logarithmus für ECC).
  • Im Allgemeinen muss man, um ein LWE-Problem zu lösen, einen geheimen Vektor s über dem Ring des ganzzahligen Modulo q wiederherstellen, wenn ein Satz angenäherter zufälliger linearer Gleichungen für den geheimen Vektor s gegeben ist. Daher ist der Satz linearer Gleichungen durch eine gewisse Menge 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 somit den Aufbau von Schemata, wobei die tatsächliche Gitterstruktur für den Konstrukteur 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, um den geheimen Vektor oder das Polynom s zu finden. Dies wird auch als das Lösen eines „Gitterproblems“ beschrieben. Das RLWE-Problem arbeitet über Polynomringen, und unterstützt eine Sicherheitsreduktion auf schwierige Probleme auf idealen Gittern, während LWE Reduktionen auf willkürlichen Gittern ermöglicht. Ideale Gitter tragen mehr Struktur, da nicht alle Gitter ideale Gitter sind, sondern auch den Entwurf von Schemata ermöglichen, die praktischere öffentliche Schlüssel-, Chiffretext- und Signaturlängen verwenden.
  • Prominente Beispiele für gitterbasierte Kryptografie sind die sogenannten NTRU- und NTRU-sign-Schemata, sowie das sogenannte GGH-Schema (Goldreich-Goldwasser-Halevi, siehe zum Beispiel https://en.wikipedia.org/wiki/GGH_encryption_scheme). Für die meisten Schemata ist die Umwandlung von der Public-Key-Encryption auf den Schlüsselaustausch trivial. Zusätzlich können für PKE verschiedene Sicherheitsstufen wie die semantische Sicherheit bezüglich adaptiver Chosen-Plaintext-Attacks (CPA) oder die semantische Sicherheit bezüglich adaptiver Chosen-Ciphertext-Attacks (CCA) durch Verwenden von Standardumwandlungen erreicht werden.
  • Dies wurde beispielhaft für das NewHope-Schema gezeigt, das auch als eine CPAsichere oder CCA-sichere PKE instanziiert werden kann [NewHopeNist17]. Das NewHope-Simple und andere Schemata sind eine unkomplizierte Adaption eines Schemas namens LPR10 (siehe [NewHopeSimplePaperEprint16]). Beispiele gitterbasierter Signaturschemata sind Dilithium, BLISS, GLP12 und qTESLA (siehe zum Beispiel https://csrc.nist.gov/Projects/Post-Quantum-Cryptography/Round-l-Submissions).
  • Technische Herausforderungen bezüglich gitterbasierter Kryptografie
  • Bei der Realisierung gitterbasierter Kryptografie und gitterbasierter Kryptosysteme auf einem Computer, einem Mikrocontroller, einer integrierten Schaltung, in einem Hardware-Software-Co-Design oder als fester Schaltkreis, treten bei der Ausführung von Kryptografieoperationen (zum Beispiel Signieren, Verschlüsselung, Entschlüsselung, Verifizierung, Schlüsselerzeugung) mehrere technische Herausforderungen auf. Beispiele für solche auftretenden technischen Herausforderungen in dem Gebiet sind:
    • - das Erreichen einer verbesserten Leistung, indem Schritte eines Kryptosystems durch Verwenden einer speziell optimierten Sequenz von Operationen und durch Verwenden aller Merkmale der verfügbaren Ziel-Hardware (spezielle Register oder Anweisungen) ausgeführt werden.
    • - das Ausführen einer kryptografischen Operation durch Verwenden einer minimalen Menge von flüchtigem oder nichtflüchtigem Speicher.
    • - das Realisieren einer kryptografischen Operation oder von Teilen davon mit einer minimalen Menge von Logikschaltungen und Speicherzellen (zum Beispiel gebildet durch einen CMOS-Prozess) bei gegebenem Leistungsziel.
    • - ein Effizienter und umfassender 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 einer beliebigen anderen ungünstigen Umgebung (zum Beispiel einem Hardware-Sicherheitsmodul, 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 zum Beispiel den Stromverbrauch (zum Beispiel Simple- oder Differential-Power-Analysis (SPA/DPA)), elektrische Emanation oder Temperatur, beobachtet. Darüber hinaus sind Fehlerangriffe möglich, bei denen ein Angreifer versucht, Störungen (zum Beispiel mit einem Laser) in den Ausführungsfluss oder 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 Schwäche in der mathematischen Beschreibung eines Schemas ausnutzt (was als Kryptoanalyse erachtet würde), sondern auf die Weise, wie das Schema auf einem bestimmten Gerät realisiert wird. Im Allgemeinen wird davon ausgegangen, dass der Gegner Zugriff auf das Gerät hat, wenn er einen Implementierungsangriff ausführt.
  • Normalerweise 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 Assets zu erhalten. Ein üblicher Ansatz zur Abwehr physikalischer Angriffe ist eine Ausführung auf randomisierten Werten, um invasive und nichtinvasive 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 effiziente Weise und ohne das Eröffnen weiterer Angriffsmöglichkeiten zu realisieren.
  • Notation und Abkürzungen
  • Insbesondere werden die folgenden Notationen, Abkürzungen und Verweise 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 ohne fraktionale Komponente geschrieben); für eine Definition von „Zahl“ wird auf https://en.wikipedia.org/wiki/Number verwiesen; für eine Definition von „fraktionale Komponente“ wird auf https://en.wikipedia.org/wiki/Fraction_(mathematics) verwiesen,
    sind die reellen Zahlen (ein Wert einer kontinuierlichen Menge, der eine Strecke entlang einer Linie darstellen kann),
    Zq
    ist der Ring von ganzzahligen modulo q, der der Quotientenring Z/qZ der Äquivalenzklassen von ganzzahligen modulo q ist.
    X
    ist eine Unbestimmte,
    ƒ
    ist ein Polynom maximalen Grades der ganzen Zahl n,
    R = Z[X]/(f)
    ist ein Ring aus ganzzahligen Polynomen modulo ƒ; die Elemente v ∈ Z[X]/(f) können durch ganzzahlige Polynome mit
    Rq = Zq[X]/(ƒ)
    einem Grad kleiner als die ganze Zahl n oder alternativ als ein Vektor von Koeffizienten v ∈ Zn dargestellt werden, ist ein Ring aus ganzzahligen Polynomen modulo sowohl des Polynoms ƒ als auch der ganzen Zahl q; die Elemente v ∈ Zq[X]/(ƒ) können durch ganzzahlige Polynome vom Grad kleiner als n mit Koeffizienten von reduziertem modulo q oder alternativ als ein Koeffizientenvektor v Z q n
    Figure DE102020119574B4_0004
    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 ∈ Rq an einer Position i,
    ϑ
    ist eine Fehlerverteilung,
    ←$
    Zufallsstichprobe aus einem Satz oder einer 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 Notation, sodass 1001b = 9,
    U(Rq,k)
    gleichmäßige Zufallsstichprobe eines Polynoms in Rq, wobei alle Koeffizienten gleichmäßig zufällig in [—k, k] sind,
    FFT
    Fast-Fourier-Transform,
    NTT
    Number-Theoretic-Transform,
    DPA
    Differential-Power-Analysis,
    SPA
    Simple-Power-Analysis,
    ALU
    Arithmetic-Logic-Unit,
    PKE
    Public-Key-Encryption,
    KEM
    Key- Encapsulation-Mechanism,
    CCA
    Chosen-Ciphertext-Attack,
    CPA
    Chosen-Plaintext-Attack,
    IND
    Indistinguishability.
  • Der Quotientenring ist ein Aufbau in der abstrakten Algebra; für Details wird zum Beispiel auf https://en.wikipedia.org/wiki/Quotient_ ring verwiesen.
  • Ideale Gitter und Polynomarithmetik
  • Gegenwärtig existieren zwei Varianten 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 Standardgittern vermischt. Es wird zum Beispiel auf [NewHopeNist17] Bezug genommen.
  • Die Grundoperationen in der idealen gitterbasierten Kryptografie sind Polynom-Multiplikationen, -Additionen oder -Subtraktionen in dem Quotientenring R q = Z q [ x ] / ( ƒ ) ,
    Figure DE102020119574B4_0005
    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] kann an einer ganzzahligen Position i zugegriffen werden. Alle wichtigen Berechnungen 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 = α + 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 DE102020119574B4_0006
    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 auch berechnet werden. Es ist definiert als eine normale Polynommultiplikation (manchmal auch „Schulbuchmultiplikation“ genannt), gefolgt von einem Reduktionsmodulo des Polynoms ƒ und einem Reduktionsmodulo 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 ƒ .
    Figure DE102020119574B4_0007
  • Die Formel für die Polynommultiplikation kann vereinfacht werden, indem man die Sonderregel berücksichtigt, dass xn ≡ -1 wenn ƒ = xn + 1, aber ähnliche Polynome können 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 DE102020119574B4_0008
    wobei i und 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.
  • Sparse-Multiplikation
  • Einige Effizienz für die Polynomarithmetik kann mit Algorithmen erzielt werden, die spezifische Eigenschaften von Polynomen ausnutzen. Als ein 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 kleine Koeffizienten haben. Es kann auch eine Kombination solcher Eigenschaften aufweisen.
  • Die Number-Theoretic-Transform (NTT)
  • Eine Implementierung nach dieser Formel würde n2 modulare Multiplikationen erfordern, und wäre somit ziemlich teuer.
  • Ein anderer Ansatz für die schnelle Polynommultiplikation ist die Number-Theoretic-Transform (NTT). Die NTT ist im Grunde eine Fast-Fourier-Transformation (FFT), die über einem endlichen Feld oder Ring definiert ist. Somit werden alle komplexen Einheitswurzeln der FFT gegen ganzzahlige Einheitswurzeln ausgetauscht, und die Berechnungen werden in dem Ring von ganzzahligen modulo an ganzen Zahlen q ausgeführt. Eine Polynommultiplikation für a, b, c ∈ 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 DE102020119574B4_0009
    wobei „o“ eine koeffizientenweise Multiplikation bezeichnet, â = N7T(α) 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 DE102020119574B4_0010
  • Der Vorteil der NTT ist es, dass eine Polynommultiplikationsoperation bei Verwendung eines effizienten Algorithmus nur annähernd n log2 n modulare Multiplikationen erfordert, und dass ein Reduktionsmodulo ƒ = x n + 1
    Figure DE102020119574B4_0011
    (die sogenannte Kreisfaltungseigenschaft) oder ein Reduktionsmodulo ƒ = x n 1
    Figure DE102020119574B4_0012
    in den NTT-Algorithmus integriert werden kann. Somit ist eine n-Punkt-NTT ausreichend, um mit n-Koeffizienten-Polynomen zu arbeiten.
  • Um die NTT formal einzuführen, kann die Wahl der Parameter beschränkt werden; auch Folgendes kann eingestellt werden, sodass die NTT existiert: ƒ = x n + 1
    Figure DE102020119574B4_0013
    und q 1 m o d 2 n .
    Figure DE102020119574B4_0014
  • Ferner kann ein Polynom wie folgt definiert werden g = i = 0 n 1 g [ i ] X i R q
    Figure DE102020119574B4_0015
    sodass N T T ( g ) = g ^ = i = 0 n 1 g ^ [ i ] X i
    Figure DE102020119574B4_0016
    mit g ^ [ i ] = j = 0 n 1 γ j g [ i ] ω i j m o d q ,
    Figure DE102020119574B4_0017
    wobei die ganze Zahl ω eine 2n-te primitive Einheitswurzel modulo q und die ganze Zahl γ = ω
    Figure DE102020119574B4_0018
    mod q ist. Also ist γ eine Quadratwurzel von ω modulo q.
  • Die inverse Transformation funktioniert ä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 DE102020119574B4_0019
    mit g [ i ] = ( n 1 γ 1 j = 0 n 1 g [ j ] ω i j ) m o d q .
    Figure DE102020119574B4_0020
  • Eine geradlinige Berechnung der NTT mit der zuvor gegebenen Definition hat quadratische Komplexität, und ist nicht effizienter als der Schulbuchansatz. Somit ist, um eine schnelle Polynommultiplikation durch Verwenden des Faltungstheorems zu realisieren, ein schneller Algorithmus zum Berechnen der NTT erforderlich. Dies kann über eine Implementierung der NTT mit O(n log n)-Operationen in Zq erreicht werden, 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. Der DIT-NTT-Algorithmus teilt die Berechnung rekursiv in ein Unterproblem an den geraden Eingängen und ein Unterproblem an den ungeraden Eingängen der NTT auf.
  • Krypto-Engine / Verbrauchsartikel und Externe
  • Hierin beschriebene Beispiele ermöglichen es einer Krypto-Engine, die Teil einer Hardwareeinheit wie einer Steuerung sein kann, oder eine eigene Hardwareeinheit sein kann, eine kryptografische Information zu liefern. Diese kryptografische Information kann zum Beispiel eine Signatur sein.
  • Der Ansatz kann auch für Zero-Knowledge-Proofs oder Pairing-Operationen verwendet werden.
  • Die Krypto-Engine kann eine kryptografische Engine sein, die geeignet ist, mindestens eine kryptografische Operation durchzuführen.
  • Die Krypto-Engine kann ein Chip oder Teil eines Chips sein. Die Krypto-Engine kann Teil eines Mikrocontrollers sein, sie kann insbesondere innerhalb eines Mikrocontrollers oder eines beliebigen Verarbeitungsgeräts ausgeführt werden. Die Krypto-Engine, der Mikrocontroller oder das Verarbeitungsgerät können in ein Auto, ein industrielles (Steuerungs-)Gerät oder einen Motor, ein medizinisches Gerät, einen Sensor, usw. eingebettet sein.
  • Die Krypto-Engine kann mit einen sogenannten „Verbrauchsartikel“ verbunden sein, der zum Beispiel eine Signatur an eine andere Entität, auch als externe Entität bezeichnet (oder kurz „Externe“, auch als Host oder Host-Gerät bezeichnet), bereitstellt.
  • Der Verbrauchsartikel kann dem Host etwas „zum Verbrauchen“ bereitstellen. Es gibt viele Beispiele für Kombinationen von Verbrauchsartikel und Host, zum Beispiel:
    • - Druckerpatrone - Drucker;
    • - Batterie - Gerät, das die Batterie verwendet;
    • - Nachfüllpatrone - elektronische Zigarette;
    • - Guthabenkarte - Prepaid-Handy;
    • - Kaffeekapsel - Kaffeemaschine;
    • - Filterpatrone - Wasserfilter;
    • - Medizinische Versorgung - medizinisches Gerät.
  • Der Verbrauchsartikel kann physikalisch mit dem Host verbunden sein. Der Host kann dazu ausgelegt sein, den Verbrauchsartikel zu authentifizieren, und der Host kann ferner dazu ausgelegt sein, den Verbrauchsartikel nur in dem Fall einer erfolgreichen Authentifizierung zu verwenden.
  • Es kann auch eine Option sein, dass die Krypto-Engine an ein Gerät angeschlossen oder ein Teil davon ist, wobei ein solches Gerät die Krypto-Engine für Authentifizierungszwecke, zum Beispiel mit einer Cloud oder einem Netzwerk, verwendet.
  • Effizientes Erstellen einer kryptografischen Information
  • Die hierin dargestellte Lösung ermöglicht es der Krypto-Engine, mit einem kleinen physikalischen Speicher umzugehen, und immer noch an kryptografischen Operationen teilzunehmen, die Berechnungen von zum Beispiel großen Daten, zum Beispiel Schlüsseln, einbeziehen.
  • Ein Signaturprozess kann die folgenden Schritte umfassen:
    • (1) Eine Kandidatensignatur sig wird basierend auf einer Nachricht m unter Nutzung eines geheimen Schlüssels sk und von Zufallsdaten erzeugt.
    • (2) Ein Ablehnungs-Sampling wird für die Kandidatensignatur sig ausgeführt, indem (mindestens eine) statistische Eigenschaft der Kandidatensignatur sig geprüft wird.
    • (2a) Wenn die Prüfung fehlschlägt, wird die Kandidatensignatur sig abgelehnt. In einem solchen Fall muss möglicherweise eine andere Kandidatensignatur sig basierend auf dem geheimen Schlüssel und anderen Zufallsdaten erzeugt werden, die dann diesem Ablehnungs-Sampling unterzogen wird.
    • (2b) Wenn die Prüfung jedoch erfolgreich ist, wird die Kandidatensignatur sig akzeptiert und als Signatur zur weiteren Verarbeitung verwendet.
  • Hierin beschriebene Beispiele schlagen eine Lösung vor, die vermeidet, dass Berechnungsergebnisse außerhalb einer Sicherheitsgrenze einer Krypto-Engine sichtbar sind, falls das Ablehnungs-Sampling aufdeckt, dass die statistischen Eigenschaften der berechneten kryptografischen Information, zum Beispiel die Signatur, die vordefinierten Anforderungen nicht erfüllen.
  • Die Berechnung kann vorteilhafterweise in Teile aufgeteilt werden, wodurch einzelne Ergebnisse auf eine serielle Weise geliefert werden. Die einzelnen Ergebnisse werden verschlüsselt, und über die Sicherheitsgrenze gesendet. Falls ein (Gesamt-)Ergebnis abzulehnen ist, wird der Verschlüsselungsschlüssel erneut erzeugt und der Prozess unter Verwendung dieses neu erzeugten Verschlüsselungsschlüssels erneut gestartet. In diesem Fall werden keine sicherheitsrelevanten Informationen über die Sicherheitsgrenze übermittelt. Wird dagegen bestimmt, dass die einzelnen Ergebnisse akzeptabel sind, so wird der Verschlüsselungsschlüssel über die Sicherheitsgrenze gesendet.
  • Es wird angemerkt, dass der Verschlüsselungsschlüssel (wenn er nicht abgelehnt wird) einmalig oder eine vorbestimmte Anzahl von Malen oder für eine bestimmte Dauer verwendet werden kann.
  • Dieser Ansatz bietet den Vorteil, dass der Speicher der Krypto-Engine klein sein kann, und er kann wiederverwendet werden, indem die einzelnen Ergebnisse nacheinander berechnet werden.
  • Diese Lösung kann insbesondere im Kontext semantisch sicherer Signaturen vorteilhaft sein, wo gewisse kurzlebige Schlüssel Informationen preisgeben können und somit abgelehnt werden müssen, um einen hohen Grad an Sicherheit beizubehalten.
  • Außerdem kann in einigen Anwendungen, z. B. gitterbasierte Post-Quanten-Kryptografie, eine Bestimmung, ob ein Schlüssel nachteilig ist, erst durchgeführt werden, nachdem die Signatur bestimmt worden ist.
  • Die hier präsentierten Lösungen können auch für Kryptosysteme von Vorteil sein, die Elliptische-Kurven-Kryptografie (ECC) einbeziehen, wobei kurzlebige Schlüssel ebenfalls basierend auf der Signatur abgelehnt werden können.
  • 1 visualisiert den Prozess des Erstellens und Lieferns einer Signatur von einer Krypto-Engine 102 an ein Terminal 101 (das in diesem Beispiel als Host oder Externes dient).
  • Das Terminal 101 kann ein beliebiges Gerät außerhalb der beispielhaften Krypto-Engine 102 sein. Die Krypto-Engine 102 kann eine Smartcard oder ein beliebiges Gerät mit einer sicheren Umgebung sein. Die Krypto-Engine 102 kann wie oben beschrieben mit einem Verbrauchsartikel verbunden oder kombiniert werden.
  • Das Terminal 101 liefert eine Nachricht 103, für die durch die Krypto-Engine 102 eine Signatur bereitgestellt werden muss.
  • Die Krypto-Engine 102 umfasst Folgendes:
    • - eine kryptografische Funktion „sign“ zum Erstellen der Signatur;
    • - eine symmetrische Verschlüsselungsfunktion „encr“;
    • - das Erzeugen oder Erhalten einer Zufälligkeit ke, die ein kurzlebiger Schlüssel sein kann (der auch als eine Kandidatensignatur angesehen werden könnte);
    • - einen privaten Schlüssel ks, der für die kryptografische Funktion verwendet wird;
    • - einen symmetrischen Schlüssel kj, der für die Verschlüsselungsfunktion encr verwendet wird (der symmetrische Schlüssel kj kann lokal erzeugt werden, zum Beispiel zufällig, pseudozufällig oder auf deterministische Weise gewählt).
  • Es wird darauf hingewiesen, dass die Zufälligkeit ke eine echte Zufälligkeit und/oder eine Pseudozufälligkeit und/oder ein deterministisches Merkmal umfassen kann.
  • Es wird ferner darauf hingewiesen, dass der private Schlüssel ks in einem Speicher der Krypto-Engine 102 gespeichert oder fest verdrahtet sein kann. Es ist eine Option, dass der private Schlüssel ks basierend auf einem Startwert bestimmt wird, der in der Krypto-Engine 102 entweder gespeichert oder fest verdrahtet ist.
  • Als eine Alternative kann die Nachricht m durch eine beliebige andere Komponente als das Terminal 101 bereitgestellt werden.
  • Beispiel: Ablehnungskriterium wird basierend auf jedem Signaturabschnitt bestimmt
  • 2A zeigt einen beispielhaften Algorithmus zum Erstellen der Signatur an der Krypto-Engine 102, der wie folgt zusammengefasst werden könnte:
  • Schritt 201
    Empfangen einer Nachricht m von dem Terminal 101 (siehe Schritt 103).
    Schritt 202
    Erzeugen einer Zufälligkeit ke und Erzeugen eines symmetrischen Schlüssels kj. Außerdem wird ein Zähler i auf 0 gestellt, wodurch angegeben wird, dass die Signatur zu verarbeiten ist.
    Schritt 203
    Ein verschlüsselter Abschnitt si der signierten Nachricht m wird basierend auf dem privaten Schlüssel ks und der Zufälligkeit ke sowie dem Wert des Zählers i bestimmt: s i = sign ( m , k s , k e , i )
    Figure DE102020119574B4_0021
    Es wird angemerkt, dass die Funktion „sign“ eine Partition basierend auf dem Wert des Zählers i erzeugt. Die Funktion „sign“ kann auch eine Hash-Funktion umfassen, die einen Hash-Wert basierend auf der Nachricht m bestimmt. Dieser Hash-Wert der sign-Funktion kann dann berücksichtigt werden, um jeden der Abschnitte si zu bestimmen.
    Schritt 204
    Somit kann die Nachricht m verarbeitet werden, um Abschnitte der Signatur si zu bestimmen, die durch den privaten Schlüssel ks und die Zufälligkeit ke verschlüsselt sind. Wie angegeben ist ks der private Schlüssel, der zum Signieren für die kryptografische Funktion zum Erstellen der Signatur verwendet wird, und ke ist die Zufälligkeit, die lokal an der Krypto-Engine 102 erzeugt werden kann. Es kann von Nachteil sein, dass die Zufälligkeit ke nicht geeignet ist. In einem solchen Fall sollte kein Signaturabschnitt si von außerhalb der Krypto-Engine 102 klar sichtbar gemacht werden. Es wird überprüft, ob der Signaturabschnitt si ein Ablehnungskriterium erfüllt. Wenn dies der Fall ist, wird der Prozess neu gestartet, das heißt es wird zu Schritt 202 verzweigt, wobei die Signatursegmente mit einer unterschiedlichen Zufälligkeit ke erstellt werden. Ein beispielhaftes Ablehnungskriterium kann wie folgt sein: Eine Komponente der Signatur, zum Beispiel ein Koeffizient xi eines Polynoms x ∈ Rq, kann größer als ein Schwellenwert t sein. Wenn ein beliebiges xi ∈ Rq größer als der Schwellenwert t ist, ist das Ablehnungskriterium positiv (das heißt erfüllt). Wenn der Signaturabschnitt si das Ablehnungskriterium nicht erfüllt, gibt es keine Ablehnung, und es wird mit dem nachfolgenden Schritt 205 fortgefahren.
    Schritt 205
    Verschlüsseln des Signaturabschnitts si unter Verwendung der symmetrischen Verschlüsselungsfunktion encr und des symmetrischen Schlüssels kj, wodurch ein verschlüsselter Signaturabschnitt si_enc erhalten wird: si _ enc = encr ( s i , k j )
    Figure DE102020119574B4_0022
    Der verschlüsselte Signaturabschnitt si_enc wird an das Terminal 101 übermittelt.
    Schritt 206
    Es wird geprüft, ob alle Abschnitte der Signatur verarbeitet worden sind. Wenn dies nicht der Fall ist, wird zu Schritt 207 verzweigt. Andernfalls (d. h. alle Abschnitte der Signatur sind verarbeitet worden) wird mit Schritt 208 fortgefahren.
    Schritt 207
    Der Zähler i wird erhöht, wodurch angegeben wird, dass der nächste Abschnitt der Signatur in dem nachfolgenden Schritt 203 verarbeitet wird.
    Schritt 208
    Übermitteln des symmetrischen Schlüssels kj an das Terminal 101. (Dieser Schritt 208 wird nur erreicht, wenn alle Signaturabschnitte erstellt und verschlüsselt sind, das Ablehnungskriterium für keinen der Signaturabschnitte getriggert wurde und wenn alle verschlüsselten Signaturabschnitte an das Terminal 101 gesendet worden sind.)
  • Somit geben die Schritte 202 bis 207 eine Schleife an, die eine Verarbeitung aller Segmente oder Abschnitte si der Signatur s sicherstellt.
  • Der Schritt 208 wird nur erreicht, wenn das Ablehnungskriterium für einen beliebigen der Signaturabschnitte si nicht erfüllt wurde. Nur in diesem Fall wird der symmetrische Schlüssel kj an das Terminal 101 geliefert.
  • Das Terminal 101 kann die Signatur der Nachricht m bestimmen, indem es die Signaturabschnitte si verkettet, und eine Entschlüsselung durch Verwenden des symmetrischen Schlüssels kj anwendet.
  • In einem beispielhaften Verwendungsfall kann das Terminal 101 bestimmen, ob die Krypto-Engine 102 (oder der Verbrauchsartikel, der mit dieser Krypto-Engine 102 verbunden ist) erfolgreich authentifiziert wurde. Wenn dies der Fall ist, kann das Terminal 101 fortfahren, und zum Beispiel die Ressource nutzen, die durch den Verbrauchsartikel, mit dem die Krypto-Engine 102 verbunden ist, bereitgestellt wird.
  • Beispiel: Ablehnungskriterium wird basierend auf voller Signatur bestimmt
  • 2B zeigt ein Beispiel, das angibt, dass das Ablehnungskriterium basierend auf der vollständigen Signatur der Nachricht bestimmt wird. In diesem Beispiel kann der Algorithmus wie folgt sein:
  • Schritt 211
    Empfangen einer Nachricht m von dem Terminal 101 (siehe Schritt 103).
    Schritt 212
    Erzeugen einer Zufälligkeit ke und Erzeugen eines symmetrischen Schlüssels kj. Außerdem wird ein Zähler i auf 0 gestellt, wodurch angegeben wird, dass der erste Abschnitt der signierten Nachricht zu verarbeiten ist.
    Schritt 213
    Ein verschlüsselter Abschnitt si der signierten Nachricht m wird basierend auf dem privaten Schlüssel ks und der Zufälligkeit ke sowie dem Wert des Zählers i bestimmt: s i = sign ( m , k s , k e , i ) .
    Figure DE102020119574B4_0023
    Schritt 214
    Verschlüsseln des Signaturabschnitts si unter Verwendung der symmetrischen Verschlüsselungsfunktion encr und des symmetrischen Schlüssels kj, wodurch ein verschlüsselter Signaturabschnitt si_enc erhalten wird:
    si _ enc = encr ( s i , k j )
    Figure DE102020119574B4_0024
    Schritt 215
    Der verschlüsselte Signaturabschnitt si_enc wird an das Terminal 101 übermittelt. Es wird geprüft, ob der Signaturabschnitt si ein Ablehnungskriterium erfüllt. Wenn dies der Fall ist, wird der Prozess erneut gestartet, d. h. es wird zu Schritt 212 verzweigt, wobei die Signatursegmente mit einer anderen Zufälligkeit ke erstellt werden.
    Schritt 216
    Es wird geprüft, ob alle Abschnitte der Signatur verarbeitet worden sind. Wenn dies nicht der Fall ist, wird zu Schritt 217 verzweigt. Andernfalls (d. h. alle Abschnitte der Signatur sind verarbeitet worden) wird mit Schritt 218 fortgefahren.
    Schritt 217
    Der Zähler i wird erhöht, wodurch angegeben wird, dass der nächste Abschnitt der Signatur in dem nachfolgenden Schritt 213 verarbeitet wird.
    Schritt 218
    Übermitteln des symmetrischen Schlüssel kj an das Terminal 101.
  • Weitere Vorteile und Ausführungsformen
  • In einigen Ausführungsformen kann es vorteilhaft sein, den letzten Abschnitt der Signatur ohne Verschlüsselung zu senden, nachdem bestimmt wurde, dass das Ablehnungskriterium nicht zutrifft. Wurde bestimmt, dass der letzte Abschnitt der Signatur das Ablehnungskriterium nicht erfüllt, so kann er ohne Verschlüsselung übermittelt werden.
  • Hierin beschriebene Beispiele können in Hardwaremodulen, zum Beispiel in den Krypto-Engines, verwendet werden. Das Hardwaremodul kann ein beliebiger Hardwarebeschleuniger sein, was das Hardwaremodul in die Lage versetzt, weniger internen Speicherplatz zu benötigen. Das Hardwaremodul kann ein Sicherheitsmodul, zum Beispiel ein integriertes Sicherheitsmodul, auch bezeichnet als Hardware-Sicherheitsmodul (HSM), oder eine Steuerung mit oder ohne Authentifizierungsmodul sein oder umfassen.
  • Eingaben können an das Hardwaremodul gestreamt werden. Das Hardwaremodul erstellt die Ergebnisse, wobei es vorzugsweise nur einen Abschnitt der Daten und/oder das, was für die Berechnung selbst benötigt wird, speichert. Durch Aufteilen der Berechnung in Teile muss nicht die gesamte Challenge und/oder Response auf einmal in dem Hardwaremodul gespeichert werden. Stattdessen können nur Abschnitte gespeichert und (sequentiell) berechnet werden.
  • Daher ist es für das Hardwaremodul nicht erforderlich, einen Speicher zu liefern, der groß genug ist, um das Ergebnis der vollständigen Berechnung zu speichern.
  • Die durch das Hardwaremodul durchgeführte Berechnung kann somit in mehrere Teile aufgeteilt werden, die seriell ausgeführt werden können, ohne dass alle vorherigen oder zukünftigen Informationen verfügbar sein müssen. „Vorherige oder zukünftige Informationen“ bezieht sich auf Informationen, die für frühere Berechnungen erforderlich waren, oder für zukünftige Berechnungen bereitgestellt werden.
  • Vorteilhafterweise kann das Ergebnis der durch das Hardwaremodul durchgeführten Berechnung abhängig von einer Bedingung, die am Ende mehrerer der Berechnungen erfüllt wird (oder nicht), geheim gehalten werden. Nur wenn die Bedingung erfüllt ist, und ein Ablehnungskriterium nicht erfüllt wird, wird das (vollständige) Ergebnis der Berechnung nach außerhalb des Hardwaremoduls offensichtlich.
  • Das Externe des Hardwaremoduls kann eine beliebige Entität sein, die dazu in der Lage ist, mit dem Hardwaremodul zu kommunizieren.
  • Der hierin dargestellte Ansatz kann in Kombination mit einer Dilithium-Signatur (siehe zum Beispiel https://pq-crystals.org/dilithium/data/dilithium-specification-round2.pdf) oder mit anderen Signaturalgorithmen (anderen gitterbasierten Algorithmen, eingereicht bei dem laufenden NIST-Wettbewerb für PQ-Krypto, sowie anderen Algorithmen, die eine ähnliche Struktur teilen) angewendet werden.
  • Die hierin beschriebene(n) Lösung(en) kann (können) mit dem GLP-Protokoll kombiniert werden. In [T. Güneysu, V. Lyubashevsky, T. Pöppelmann, Practical Lattice-Based Cryptography: A Signature Scheme for Embedded System, CHES 2012, LNCS 7428, S. 530-547, 2012] wird ein Signaturschema vorgeschlagen.
  • Zum Beispiel kann das Hardwaremodul ein Authentifizierungsmodul sein, für das Geheimnisse außerhalb dieses Moduls gespeichert werden müssen. Zum Beispiel kann das Authentifizierungsmodul in einen nicht sicheren Controller integriert sein. Die geheimen Schlüssel können zur späteren Verwendung verschlüsselt in dem nicht sicheren Controller gespeichert werden.
  • Die beschriebenen Beispiele können insbesondere in Kombination mit gitterbasierter Kryptografie verwendet werden. Das Hardwaremodul kann viel weniger Speicher benötigen, als es für die vollständige Berechnung der jeweiligen kryptografischen Operation (zum Beispiel Signatur) benötigen würde.
  • Implementierungsbeispiele
  • 3 zeigt ein Verarbeitungsgerät 500 mit einer CPU 501, einem RAM 502, einem nichtflüchtigem Speicher 503 (Non-Volatile-Memory - NVM), einem Kryptomodul 504, einem Analogmodul 506, einer Eingabe/Ausgabe-Schnittstelle 507 und einem Hardware-Zufallszahlengenerator 512.
  • In diesem Beispiel hat die CPU 501 Zugriff auf mindestens ein Kryptomodul 504 über einen gemeinsamen Bus 505, mit dem jedes Kryptomodul 504 gekoppelt ist. Jedes Kryptomodul 504 kann insbesondere einen oder mehrere Kryptokerne umfassen, um bestimmte kryptografische Operationen auszuführen. Beispielhafte Kryptokerne sind:
    • - ein AES-Kern 509,
    • - ein SHA-Kern 510,
    • - ein ECC-Kern 511, und
    • - ein gitterbasierter Crypto(Lattice-Based-Crypto - LBC)-Kern 508.
  • Der gitterbasierte Kryptokern 508 kann bereitgestellt werden, um gitterbasierte Kryptografie durchzuführen oder zu beschleunigen.
  • Die CPU 501, der Hardware-Zufallszahlengenerator 512, der NVM 503, das Kryptomodul 504, der RAM 502 und die Eingabe-/Ausgabeschnittstelle 507 sind mit dem Bus 505 verbunden. Die Eingabe-Ausgabe-Schnittstelle 507 kann eine Verbindung 514 zu anderen Geräten haben, die dem Verarbeitungsgerät 500 ähnlich sein können.
  • Das Kryptomodul 504 kann mit hardwarebasierten Sicherheitsmerkmalen ausgerüstet sein oder nicht. Als eine Option kann das Kryptomodul 504 einen Zufallszahlengenerator umfassen.
  • Das Analogmodul 506 wird über einen elektrischen Kontakt und/oder über ein elektromagnetisches Feld mit elektrischer Energie 513 versorgt. Diese Energie wird geliefert, um die Schaltung des Verarbeitungsgeräts 500 anzutreiben, und kann es insbesondere ermöglichen, dass die Eingabe-/Ausgabeschnittstelle Verbindungen zu anderen Geräten über die Verbindung 514 initiiert und/oder aufrechterhält.
  • Der Bus 505 selbst kann maskiert oder blank sein. Anweisungen zum Verarbeiten der hierin beschriebenen Schritte können insbesondere im 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 können durch den Hardware-Zufallszahlengenerator 512 geliefert werden.
  • Schritte des hierin beschriebenen Verfahrens können ausschließlich oder mindestens teilweise auf dem Kryptomodul 504 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 einem beliebigen der Kryptokerne 508 bis 511 gespeichert werden. Es ist auch eine Option, dass die Daten temporär in dem RAM 502 oder dem NVM 503 gespeichert werden. Der gitterbasierte Kryptokern 508 kann auch andere Kryptomodule verwenden, um unterstützende Funktionen bereitzustellen (zum Beispiel Erweiterung von Pseudozufallsdaten). Der gitterbasierte Kryptokern 508 kann auch einen Hardware-Zufallszahlengenerator oder ein Mittel zum Erzeugen von physikalischen und/oder Software-Zufallszahlen umfassen.
  • Das Verarbeitungsgerät 500 kann eine Chipkarte sein, die durch direkten elektrischen Kontakt oder durch ein elektromagnetisches Feld gespeist wird. Das Verarbeitungsgerät 500 kann eine feste Schaltung sein, oder auf rekonfigurierbarer Hardware (zum Beispiel einem Field-Programmable-Gate-Array, FPGA) basieren. Das Verarbeitungsgerät 500 kann mit einem Personal Computer, Mikrocontroller, FPGA oder einem Smartphone gekoppelt sein.
  • 4 zeigt ein weiteres Beispiel eines Verarbeitungsgeräts 600. Das Verarbeitungsgerät 600 umfasst ein Hardware-Sicherheitsmodul 601, einen nichtflüchtigen Speicher (NVM) 608, einen Random-Access-Memory (RAM) 609, eine Schnittstelle 610 zur Kommunikation mit anderen Geräten, und einen 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 eine Steuerung 602, einen Hardware-Zufallszahlengenerator (Hardware-Random-Number-Generator - HRNG) 606 und mindestens ein Kryptomodul 603. Das Kryptomodul 603 umfasst beispielhaft einen AES-Kern 604 und einen 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 eine gesicherte Schlüsselspeicherung, während der Anwendungsprozessor rechenintensive Aufgaben ausführen kann (zum Beispiel Bilderkennung, Kommunikation, Motorsteuerung). Auf das HSM 601 kann nur durch eine definierte Schnittstelle zugegriffen werden, und es kann als unabhängig von dem Rest des Systems erachtet werden, auf eine Weise, dass eine Sicherheitskompromittierung des Anwendungsprozessors 607 nur begrenzten Einfluss auf die Sicherheit des HSM 601 hat. Das HSM 601 kann alle Aufgaben oder einen Untersatz von Aufgaben, die in Bezug auf das Verarbeitungsgerät 600 beschrieben werden, durch Verwenden der Steuerung 602, des LBC 605, zum Beispiel unterstützt durch einen AES 604 und den HRNG 606, ausführen. Es kann die hierin beschriebenen Prozeduren (mindestens teilweise) entweder gesteuert durch einen internen Controller oder als CMOS-Schaltung 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 Kommunikations-Gateway oder (elektrische) Motorsteuereinheit in Autos oder anderen Fahrzeugen verwendet werden.
  • In einem oder mehreren Beispielen können die hierin beschriebenen Funktionen mindestens teilweise in Hardware, wie zum Beispiel speziellen Hardwarekomponenten oder einem Prozessor, implementiert werden. Allgemeiner gesagt, können die Techniken in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination davon implementiert werden. Wenn in Software implementiert, können die Funktionen auf einem computerlesbaren Medium gespeichert oder als eine oder mehrere Anweisungen oder Code übertragen und durch eine hardwarebasierte Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speicherungsmedien beinhalten, die einem materiellen Medium, wie zum Beispiel Datenspeichermedien entsprechen, oder Kommunikationsmedien, die ein beliebiges Medium beinhalten, das die Übertragung eines Computerprogramms von einem Ort zu einem anderen ermöglicht, zum Beispiel gemäß einem Kommunikationsprotokoll. Auf diese Weise können computerlesbare Medien im Allgemeinen (1) materiellen computerlesbaren Speicherungsmedien, die nicht flüchtig sind, oder (2) einem Kommunikationsmedium, wie zum Beispiel einem Signal oder einer Trägerwelle, entsprechen. Datenspeicherungsmedien können beliebige verfügbare Medien sein, auf die durch einen oder mehrere Computer oder einen oder mehrere Prozessoren zugegriffen werden kann, um Anweisungen, Code und/oder Datenstrukturen zur Implementierung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium beinhalten.
  • Beispielhaft, und nicht einschränkend, können solche computerlesbaren Speicherungsmedien RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeicherung, Magnetplattenspeicherung oder andere magnetische Speicherungsgeräte, Flash-Speicher oder ein beliebiges anderes Medium umfassen, das dazu verwendet werden kann, gewünschten Programmcode in der Form von Anweisungen oder Datenstrukturen zu speichern, und auf das durch einen Computer zugegriffen werden kann. Auch wird eine beliebige 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 über ein Koaxialkabel, Glasfaserkabel, Twisted Pair, eine digitale Teilnehmerleitung (Digital-Subscriber-Line - DSL) oder drahtlose Technologien, wie zum Beispiel Infrarot, Funk und Mikrowelle, übertragen werden, dann sind das Koaxialkabel, Glasfaserkabel, Twisted Pair, DSL oder drahtlose Technologien, wie zum Beispiel Infrarot, Funk und Mikrowelle in der Definition des Mediums enthalten. Es versteht sich jedoch, dass computerlesbare Speicherungsmedien und Datenspeicherungsmedien keine Verbindungen, Trägerwellen, Signale oder andere vorübergehende Medien umfassen, sondern stattdessen auf nicht vorübergehende, materielle Speicherungsmedien gerichtet sind. Disk und Disc, wie hierin verwendet, beinhalten Compact Disc (CD), Laserdisc, optische Disc, Digital-Versatile-Disc (DVD), Floppy Disk und Blu-ray Disc, wobei Disks gewöhnlich Daten magnetisch reproduzieren, während Discs Daten optisch mit Laser reproduzieren. Kombinationen des Obigen sollten ebenfalls in dem Umfang computerlesbarer Medien enthalten sein.
  • Anweisungen können durch einen oder mehrere Prozessoren ausgeführt werden, wie zum Beispiel durch eine oder mehrere Zentralverarbeitungseinheiten (Central-Processing-Units - CPU), digitale Signalprozessoren (Digital-Signal-Processors - DSP), Allzweckmikroprozessoren, anwendungsspezifische integrierte Schaltkreise (Application-Specific-Integrated-Circuits - ASIC), feldprogrammierbare Logikarrays (Field-Programmable-Logic-Arrays - FPGA) oder eine andere äquivalente integrierte oder diskrete Logikschaltungsanordnung. Dementsprechend kann sich der Begriff „Prozessor“, wie hierin verwendet, auf eine beliebige der vorstehenden Strukturen oder eine beliebige andere für die Implementierung der hierin beschriebenen Techniken geeignete Struktur beziehen. Zusätzlich kann in einigen Aspekten die hierin beschriebene Funktionalität in fest zugeordneten Hardware- und/oder Softwaremodulen bereitgestellt werden, die zum Codieren und Decodieren ausgelegt sind, oder in einen kombinierten Codec integriert werden. Auch könnten die Techniken vollständig in einer oder mehreren Schaltungen oder Logikelementen implementiert werden.
  • Die Techniken dieser Offenbarung können in einer Vielzahl von Geräten oder Vorrichtungen implementiert werden, einschließlich eines drahtlosen Handgeräts, einer integrierten Schaltung (Integrated-Circuit - IC) oder einer Reihe von IC (zum Beispiel einem Chipsatz). Verschiedene Komponenten, Module oder Einheiten werden in dieser Offenbarung beschrieben, um funktionale Aspekte von Geräten zu betonen, die dazu ausgelegt sind, die offenbarten Techniken auszuführen, die aber nicht notwendigerweise eine Realisierung durch unterschiedliche Hardwareeinheiten erfordern. Vielmehr können, wie oben beschrieben, verschiedene Einheiten in einer einzelnen Hardwareeinheit kombiniert oder durch eine Sammlung von interoperativen Hardwareeinheiten bereitgestellt werden, einschließlich eines oder mehrerer Prozessoren, wie oben beschrieben, in Verbindung mit geeigneter Software und/oder Firmware.
  • Obwohl verschiedene beispielhafte Ausführungsformen der Erfindung offenbart wurden, wird es für Fachleute offensichtlich, dass verschiedene Änderungen und Modifikationen gemacht werden können, die einige der Vorteile der Erfindung erzielen, ohne von dem Geist und Umfang der Erfindung abzuweichen. Es wird für Fachleute ersichtlich, dass andere Komponenten, die dieselben Funktionen erfüllen, in geeigneter Weise ersetzt werden können. Es ist darauf hinzuweisen, dass unter Bezugnahme auf eine bestimmte Figur erläuterte Merkmale mit Merkmalen anderer Figuren kombiniert werden können, selbst in den Fällen, in denen dies nicht explizit erwähnt wurde. Ferner können die Verfahren der Erfindung entweder in allen Softwareimplementierungen durch Verwenden der geeigneten Prozessoranweisungen, oder in Hybridimplementierungen erreicht werden, die eine Kombination aus Hardwarelogik und Softwarelogik verwenden, um dieselben Ergebnisse zu erzielen. Solche Modifikationen des erfinderischen Konzepts sollen durch die beigefügten Ansprüche abgedeckt werden.
  • Bezugszeichenliste
  • [NewHopeNist17]
    NewHope - Einreichung bei dem NIST Post-Quantum-Projekt. Erdem Alkim, Roberto Avanzi, Joppe Bos, Leo Ducas, Antonio de la Piedra, Thomas Pöppelmann, Peter Schwabe, Douglas Stebila. Siehe https://csrc.nist.gov/Proj ects/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 und T. Güneysu: Practical CCA2-Secure and Masked Ring-LWE Implementation, IACR Eprint, 23 Jan 2018 (aufgerufen am 15. Juni 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. Vorläufige 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, Folien präsentiert bei Eurocrypt 2010, https://web.eecs.umich.edu/-cpeikert/pubs/slides-ideal-lwe.pdf

Claims (15)

  1. Verfahren zum Erstellen einer kryptografischen Information, wobei das Verfahren umfasst: - Bestimmen eines Abschnitts der kryptografischen Information; - Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel; - Übermitteln des verschlüsselten Abschnitts der kryptografischen Information; - Überprüfen, ob ein Ablehnungskriterium erfüllt ist; und - Übermitteln des geheimen Schlüssels nur dann, wenn das Ablehnungskriterium nicht erfüllt ist; - wobei das Verarbeiten der kryptografischen Information mindestens eine kryptografische Gitteroperation verwendet.
  2. Verfahren nach Anspruch 1 wobei die kryptografische Information mindestens eines der Folgenden ist oder umfasst: - eine Signatur; - eine Pairing-Information; - eine mit einem Zero-Knowledge-Proof verbundene Information.
  3. Verfahren nach einem der vorhergehenden Ansprüche, das ferner Folgendes umfasst: - Bestimmen des Abschnitts der kryptografischen Information unter Nutzung einer Zufälligkeit; - wenn das Ablehnungskriterium erfüllt ist, erneutes Starten des Verfahrens mit einer anderen Zufälligkeit.
  4. Verfahren nach einem der vorhergehenden Ansprüche, das ferner Folgendes umfasst: - Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel; - Überprüfen, ob ein Ablehnungskriterium erfüllt ist und - wenn das Ablehnungskriterium erfüllt ist, Nicht-Senden des verschlüsselten Abschnitts der kryptografischen Information und erneutes Starten des Verfahrens; - wenn das Ablehnungskriterium nicht erfüllt ist, Senden des verschlüsselten Abschnitts der kryptografischen Information und entweder Fortfahren mit dem nächsten Abschnitt oder Fortfahren mit dem nächsten Schritt, falls es keine Abschnitte mehr gibt; - Übermitteln des geheimen Schlüssels.
  5. Verfahren nach einem der Ansprüche 1 bis 3, das ferner Folgendes umfasst: - Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel; - Übermitteln des verschlüsselten Abschnitts der kryptografischen Information, - Überprüfen, ob ein Ablehnungskriterium für alle verschlüsselten Abschnitte der kryptografischen Information erfüllt ist, - wenn das Ablehnungskriterium erfüllt ist, erneutes Starten des Verfahrens; - wenn das Ablehnungskriterium nicht erfüllt ist, Übermitteln des geheimen Schlüssels.
  6. Verfahren nach einem der vorhergehenden Ansprüche, das ferner Folgendes umfasst: - Löschen des verschlüsselten Abschnitts der kryptografischen Information, nachdem er übermittelt wurde.
  7. Verfahren nach einem der vorhergehenden Ansprüche, - wobei eine eingehende Nachricht mindestens eine Challenge und mindestens einen verschlüsselten zweiten geheimen Schlüssel umfasst, wobei jede Challenge mit einem verschlüsselten zweiten geheimen Schlüssel assoziiert ist, - wobei das Verfahren ferner Folgendes umfasst: - Entschlüsseln jedes verschlüsselten zweiten geheimen Schlüssels; - Bestimmen eines Abschnitts der kryptografischen Information unter Nutzung des entschlüsselten zweiten geheimen Schlüssels.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der geheime Schlüssel bereitgestellt wird, um die verschlüsselten Abschnitte der kryptografischen Information zu entschlüsseln und somit die kryptografische Information zu bestimmen.
  9. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: - Durchführen einer Authentifizierung basierend auf der kryptografischen Information.
  10. 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: - eine integrierte Schaltung, - ein Hardware-Security-Modul, - ein Trusted-Platform-Modul, - eine Kryptoeinheit, - ein FPGA, - eine Verarbeitungseinheit, - eine Steuerung, - eine Smartcard.
  11. Sicherheitsgerät zum Erstellen einer kryptografischen Information, das eingerichtet ist, um die folgenden Schritte auszuführen: - Bestimmen eines Abschnitts der kryptografischen Information, - Bestimmen eines verschlüsselten Abschnitts der kryptografischen Information durch Verschlüsseln des Abschnitts der kryptografischen Information mit einem geheimen Schlüssel; - Übermitteln des verschlüsselten Abschnitts der kryptografischen Information, - Überprüfen, ob ein Ablehnungskriterium erfüllt ist, - Übermitteln des geheimen Schlüssels nur dann, wenn das Ablehnungskriterium nicht erfüllt ist, - wobei das Verarbeiten der kryptografischen Information mindestens eine kryptografische Gitteroperation verwendet.
  12. Verbrauchsartikel, der ein Sicherheitsgerät nach Anspruch 11 umfasst.
  13. System, das ein Sicherheitsgerät nach Anspruch 11 und einen Host umfasst, wobei der verschlüsselte Abschnitt der kryptografischen Information und, gegebenenfalls, der geheime Schlüssel von dem Sicherheitsgerät an den Host übermittelt wird/werden.
  14. System nach Anspruch 13, wobei der Host eingerichtet ist, um das Sicherheitsgerät basierend auf der empfangenen kryptografischen Information und, gegebenenfalls, dem empfangenen geheimen Schlüssel zu authentifizieren.
  15. Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Verarbeitungsgeräts geladen werden kann, das Softwarecodeteile zum Ausführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 10 umfasst.
DE102020119574.5A 2020-07-24 2020-07-24 Bereitstellen einer kryptografischen Information Active DE102020119574B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020119574.5A DE102020119574B4 (de) 2020-07-24 2020-07-24 Bereitstellen einer kryptografischen Information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020119574.5A DE102020119574B4 (de) 2020-07-24 2020-07-24 Bereitstellen einer kryptografischen Information

Publications (2)

Publication Number Publication Date
DE102020119574A1 DE102020119574A1 (de) 2022-01-27
DE102020119574B4 true DE102020119574B4 (de) 2022-02-17

Family

ID=79179457

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020119574.5A Active DE102020119574B4 (de) 2020-07-24 2020-07-24 Bereitstellen einer kryptografischen Information

Country Status (1)

Country Link
DE (1) DE102020119574B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2030364B1 (de) 2006-05-21 2015-08-12 International Business Machines Corporation Nachrichtensignaturen von behauptungen
DE102018127126A1 (de) 2017-11-08 2019-05-09 Analog Devices, Inc. Erneute Registrierung von physikalisch unklonbaren Funktionen aus der Ferne

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2030364B1 (de) 2006-05-21 2015-08-12 International Business Machines Corporation Nachrichtensignaturen von behauptungen
DE102018127126A1 (de) 2017-11-08 2019-05-09 Analog Devices, Inc. Erneute Registrierung von physikalisch unklonbaren Funktionen aus der Ferne

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Chen, J.: A Zero-Knowledge Identity Verification Protocol Using Blind Watermark. International Conference on Computer Engineering and Technology, 2009. URL: https://ieeexplore.ieee.org/document/4769652?arnumber=4769652 [abgerufen am 19.04.2021]
Harikrishnan, M.: Secure Digital Service Payments using ZeroKnowledge Proof in Distributed Network. 5th International Conference on Advanced Computing & Communication Systems (ICACCS), 2019. URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8728462 [abgerufen am 19.04.2021]
Kouicem, E.: An Efficient and Anonymous Blockchain-Based Data Scheme for Vehicular Networks. IEEE Symposium on Computers and Communications (ISCC), Datum der Konferenz: 7-10 July 2020. URL: https://ieeexplore.ieee.org/document/9219641 [abgerufen am 19.04.2021]
Park, Young Hoon: Fast and Secure Group Key Dissemination Scheme for Out-of-Range V2I Communication. IEEE Transaction on Vehicular Techn Technology, Vol. 64, No. 12, Dezember 2015. URL: https://ieeexplore.ieee.org/document/7293687 [abgerufen am 19.04.2021]

Also Published As

Publication number Publication date
DE102020119574A1 (de) 2022-01-27

Similar Documents

Publication Publication Date Title
US10931467B2 (en) Authentication system and device including physical unclonable function and threshold cryptography
DE102018108313A1 (de) Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
US9946858B2 (en) Authentication system and device including physical unclonable function and threshold cryptography
US11798435B2 (en) Executing a cryptographic operation
DE102019108095A1 (de) Ausführen einer kryptografischen Operation
EP3265943B1 (de) Authentifizierungssystem und -vorrichtung mit physikalischer unklonbarer funktion sowie schwellenkryptographie
DE102020119569B3 (de) Bereitstellen einer kryptografischen Information
DE102010002241B4 (de) Vorrichtung und Verfahren zur effizienten einseitigen Authentifizierung
Sun et al. Outsourced decentralized multi-authority attribute based signature and its application in IoT
US20150100794A1 (en) Method for signing a set of binary elements, and updating such signature, corresponding electronic devices and computer program products
Petzoldt et al. Small Public Keys and Fast Verification for ultivariate uadratic Public Key Systems
Eskandarian et al. Clarion: Anonymous communication from multiparty shuffling protocols
US11838431B2 (en) Cryptographic operation
Zhang et al. Enhanced certificateless auditing protocols for cloud data management and transformative computation
DE102020119574B4 (de) Bereitstellen einer kryptografischen Information
Meshram et al. An efficient certificateless group signcryption scheme using Quantum Chebyshev Chaotic Maps in HC-IoT environments
DE102021213560A1 (de) Vorrichtung und Verfahren zum Entschlüsseln einer verschlüsselten Bitfolge
DE102020121229B3 (de) Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens
Koch Improvements and New Constructions of Digital Signatures
DE10159690C2 (de) Verfahren zur Vereinbarung eines symmetrischen Schlüssels über einen unsicheren Kanal und zur digitalen Signatur
Nassar et al. sElect: secure election as a service
EP4068684A1 (de) Kryptografisches system mit falltürfunktion
DE102020119578A1 (de) Bereitstellen einer Challenge für ein Gerät
DE102018113920A1 (de) Identifikationsprotokoll durch Einsatz von geheimen unbekannten Chriffren
CN117972739A (zh) 一种适配联邦学习的隐私保护可验证数据聚合方法及系统

Legal Events

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