DE102020119569B3 - Bereitstellen einer kryptografischen Information - Google Patents

Bereitstellen einer kryptografischen Information Download PDF

Info

Publication number
DE102020119569B3
DE102020119569B3 DE102020119569.9A DE102020119569A DE102020119569B3 DE 102020119569 B3 DE102020119569 B3 DE 102020119569B3 DE 102020119569 A DE102020119569 A DE 102020119569A DE 102020119569 B3 DE102020119569 B3 DE 102020119569B3
Authority
DE
Germany
Prior art keywords
cryptographic information
randomness
section
cryptographic
signature
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
DE102020119569.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 DE102020119569.9A priority Critical patent/DE102020119569B3/de
Priority to US17/380,634 priority patent/US11870911B2/en
Priority to CN202110836490.9A priority patent/CN113971290A/zh
Application granted granted Critical
Publication of DE102020119569B3 publication Critical patent/DE102020119569B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs

Abstract

Es wird vorgeschlagen, eine kryptografische Information basierend auf den folgenden Schritten zu erstellen: (a) Bestimmen eines ersten Abschnitts der kryptografischen Information basierend auf einer Eingabe und einer Zufälligkeit; (b) Überprüfen, ob ein Ablehnungskriterium basierend auf dem ersten Abschnitt der kryptographischen Information erfüllt ist; (b1) erneutes Starten von Schritt (a) mit einer unterschiedlichen Zufälligkeit, wenn das Ablehnungskriterium erfüllt ist; (b2) wenn nicht alle Abschnitte der kryptografischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (b) oder, wenn alle Abschnitte der kryptografischen Information erzeugt wurden, Fortfahren mit Schritt (c); (c) Bestimmen des ersten Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit; (d) Übermitteln des jeweiligen Abschnitts der kryptografischen Information; und (e) solange nicht alle Abschnitte der kryptographischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptographischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (d). 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 kryptographische 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, 2020 IEEE Symposium on Computers and Communications (ISCC), 7-10 Juli 2020, https://ieeexplore.ieee.org/document/9219641] beschreibt ein effizientes und anonymes Blockchain-basiertes Datenaustauschschema für Fahrzeugnetzwerke.
  • [J. Chen et al.: A Zero-Knowledge Identity Verification Protocol Using Blind Watermark, 2009 International Conference on Computer Engineering and Technology, 22-24 Januar 2009, https://ieeexplore.ieee.org/abstract/document/4769652] beschreibt ein Zero-Knowledge-Identitätsverifizierungsprotokoll mit blindem Wasserzeichen.
  • [Y.-H. Park et al.; Fast and Secure Group Key Dissemination Scheme for Out-of-Range V2I Communication, IEEE Transactions on Vehicular Technology, Vol. 64, No. 12, Dezember 2015, 7. Oktober 2015, https://ieeexplore.ieee.org/document/72936871 beschreibt ein schnelles und sicheres Programm zur Verteilung von Gruppenschlüsseln für die V2I-Kommunikation.
  • [M. Harikrishnan et al.: Secure Digital Service Payments using Zero Knowledge Proof in Distributed Network, 2019 5th International Conference on Advanced Computing & Communication Systems (ICACCS), 15-16 März 2019, https://ieeexplore.ieee.org/document/8728462] beschreibt sichere digitale Servicezahlungen mit Zero Knowledge Proof in verteilten Netzwerken.
  • DE 10 2018 127 126 A1 betrifft Authentifizierungssysteme und -verfahren auf Grundlage von einer physikalisch unklonbaren Funktion.
  • EP 2 030 364 B1 betrifft das Liefern einer Bestätigungsnachricht von einer beweisenden Partei an eine vertrauende Partei.
  • DE 10 2019 131 745 A1 betrifft einen Mikrocontroller bei dessen Initiierung ein Zero-Knowledge-Verfahren zum Einsatz kommt.
  • EP 3 542 336 B1 betrifft ein Blockchain-Datenschutz unter Verwendung eines Zero-Knowledge-Proof.
  • Das Ziel ist es, bestehende Lösungen zu verbessern, und insbesondere, eine 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 vorgeschlagen, das Folgendes umfasst:
    • (a) Bestimmen eines ersten Abschnitts der kryptografischen Information basierend auf einer Eingabe und einer Zufälligkeit;
    • (b) Überprüfen, ob ein Ablehnungskriterium basierend auf dem ersten Abschnitt der kryptographischen Information erfüllt ist;
    • (b1) erneutes Starten von Schritt (a) mit einer unterschiedlichen Zufälligkeit, wenn das Ablehnungskriterium erfüllt ist;
    • (b2) wenn nicht alle Abschnitte der kryptografischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (b) oder, wenn alle Abschnitte der kryptografischen Information erzeugt wurden, Fortfahren mit Schritt (c);
    • (c) Bestimmen des ersten Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit;
    • (d) Übermitteln des jeweiligen Abschnitts der kryptografischen Information;
    • (e) solange nicht alle Abschnitte der kryptographischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptographischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (d).
  • Die Zufälligkeit kann eine echte Zufälligkeit und/oder eine Pseudozufälligkeit und/oder ein deterministisches Merkmal umfassen.
  • 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, das Verfahren nach einem der vorhergehenden Ansprüche,
    • - wobei vor Schritt (d) der jeweilige Abschnitt der kryptographischen Information mit einem geheimen Schlüssel verschlüsselt wurde; und
    • - das Verfahren ferner das Übermitteln des geheimen Schlüssels umfasst.
  • Gemäß einer Ausführungsform wird der geheime Schlüssel übermittelt, nachdem der letzte verschlüsselte Abschnitt der kryptografischen Information übermittelt wurde.
  • Gemäß einer Ausführungsform ist die Eingabe eine Nachricht.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner:
    • - für jeden Abschnitt der durch die Schleife der Schritte (a) bis (b2) bestimmten kryptografischen Information, Erzeugen und Speichern eines ersten Hash-Werts, der dem jeweiligen Abschnitt der kryptografischen Information zugeordnet ist;
    • - innerhalb der Schleife der Schritte (c) bis (e), Erzeugen eines zweiten Hash-Werts für jeden Abschnitt der kryptografischen Information, und Vergleichen des zweiten Hash-Werts mit dem ersten Hash-Wert, der demselben Abschnitt der kryptografischen Information zugeordnet ist; und
    • - Forfahren nur dann, wenn der erste Hash-Wert dem zweiten Hash-Wert entspricht.
  • Gemäß einer Ausführungsform umfasst das Verfahren, falls der erste Hash-Wert nicht dem zweiten Hash-Wert entspricht, Auslösen mindestens einer der folgenden Aktionen:
    • - Ausgeben einer Benachrichtigung oder eines Alarms;
    • - Stoppen des Verfahrens;
    • - Eintreten in eine Ausnahmehandhabung;
    • - erneutes Starten von Schritt (a) mit einer unterschiedlichen Zufälligkeit.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner:
    • - nicht gleichzeitiges Speichern von mehr als einem Abschnitt der kryptographischen Information, wenn die durch die Schritte (a) bis (b2) bestimmte Schleife verarbeitet wird.
  • Gemäß einer Ausführungsform wird die kryptografische Information basierend auf dem Abschnitt der übermittelten kryptografischen Information erstellt.
  • Gemäß einer Ausführungsform umfasst das Verfahren ein Durchführen einer Authentifizierung basierend auf der kryptografischen Information.
  • Gemäß einer Ausführungsform verwendet das Verarbeiten der kryptografischen Information oder eines Teils der kryptografischen Information mindestens eine kryptografische Gitteroperation.
  • 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, das eingerichtet ist, um die folgenden Schritte auszuführen:
    • (a) Bestimmen eines ersten Abschnitts der kryptografischen Information basierend auf einer Eingabe und einer Zufälligkeit;
    • (b) Überprüfen, ob ein Ablehnungskriterium basierend auf dem ersten Abschnitt der kryptographischen Information erfüllt ist;
    • (b1) erneutes Starten von Schritt (a) mit einer unterschiedlichen Zufälligkeit, wenn das Ablehnungskriterium erfüllt ist;
    • (b2) wenn nicht alle Abschnitte der kryptografischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (b) oder, wenn alle Abschnitte der kryptografischen Information erzeugt wurden, Fortfahren mit Schritt (c);
    • (c) Bestimmen des ersten Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit;
    • (d) Übermitteln des jeweiligen Abschnitts der kryptografischen Information;
    • (e) solange nicht alle Abschnitte der kryptographischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptographischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (d).
  • Es wird auch ein Verbrauchsartikel vorgeschlagen, der das Sicherheitsgerät wie hierin beschrieben umfasst.
  • Zusätzlich wird ein System vorgeschlagen, das das hierin beschriebene Sicherheitsgerät und einen Host umfasst, wobei das Sicherheitsgerät angeordnet ist, um den jeweiligen Abschnitt der kryptografischen Information an den Host zu übermitteln.
  • Gemäß einer Ausführungsform ist der Host angeordnet, um das Sicherheitsgerät basierend auf den empfangenen Abschnitten der kryptografischen Information zu authentifizieren.
  • Es wird auch ein Computerprogrammprodukt bereitgestellt, 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;
    • 2 zeigt ein beispielhaftes Flussdiagramm mit Schritten eines Verfahrens, das ausgeführt werden soll, zum Beispiel auf einer Krypto-Engine;
    • 3 zeigt eine alternative Ausführungsform zu dem Beispiel von 2;
    • 4 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;
    • 5 zeigt eine alternative Anordnung mit einem Hardware-Sicherheitsmodul (Hardware-Security-Modul - 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 Kryptographie 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 Kryptographie 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 kryptographische 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 Kryptographie 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 DE102020119569B3_0001
    definiert als L ( b 1 , , b n ) = { x i b i | x i Z } ,
    Figure DE102020119569B3_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 DE102020119569B3_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 Kryptographie 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 Kryptographie 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 Kryptographie 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 kryptographischen 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 Kryptographie 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-1-Submissions).
  • Technische Herausforderungen bezüglich gitterbasierter Kryptographie
  • 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 kryptographischen 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,
    f
    ist ein Polynom maximalen Grades der ganzen Zahl n,
    R = Z[X]/(f)
    ist ein Ring aus 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 aus ganzzahligen Polynomen modulo sowohl des Polynoms f als auch der ganzen Zahl q; die Elemente v E Zq[X](f) 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 DE102020119569B3_0004
    dargestellt werden,
    v E 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,
    ←$
    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 Kryptographie, die Konzepte von idealen und Standardgittern vermischt. Es wird zum Beispiel auf [NewHopeNist17] Bezug genommen.
  • Die Grundoperationen in der idealen gitterbasierten Kryptographie sind Polynom-Multiplikationen, -Additionen oder -Subtraktionen in dem Quotientenring R q = Z q [ x ] / ( ƒ ) ,
    Figure DE102020119569B3_0005
    wobei der Modul q eine ganze Zahl ist, und die Dimension (Anzahl der Koeffizienten) eine ganze Zahl n ist. Ein Polynom a E Rq kann als ein Array von Werten dargestellt werden, und auf einen einzelnen Wert α[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 E Rq kann definiert werden als c = i = 0 n 1 ( α [ i ] + b [ i ] m o d    q ) X i
    Figure DE102020119569B3_0006
    wobei i eine ganze Zahl ist, q eine ganze Zahl ist, α[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 = α ·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 f und einem Reduktionsmodulo der ganzen Zahl q, das heißt c = ( i = 0 n 1 j = 0 n 1 α [ i ] b [ j ] x i + j m o d    q ) m o d    ƒ .
    Figure DE102020119569B3_0007
  • Die Formel für die Polynommultiplikation kann vereinfacht werden, indem man die Sonderregel berücksichtigt, dass xn = -1 wenn f = 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 DE102020119569B3_0008
    wobei i und j ganze Zahlen sind, q eine ganze Zahl ist, α[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 E 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 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 DE102020119569B3_0009
    wobei „o“ 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 ( α ^ [ i ] b ^ [ i ] m o d   q ) X i .
    Figure DE102020119569B3_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 DE102020119569B3_0011
    (die sogenannte Kreisfaltungseigenschaft) oder ein Reduktionsmodulo ƒ = x n 1
    Figure DE102020119569B3_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 DE102020119569B3_0013
    und q 1   m o d   2 n .
    Figure DE102020119569B3_0014
  • Ferner kann ein Polynom wie folgt definiert werden g = i = 0 n 1 g [ i ]   X i R q
    Figure DE102020119569B3_0015
    sodass N T T ( g ) = g ^ = i = 0 n 1 g ^ [ i ]   X i
    Figure DE102020119569B3_0016
    mit g ^ [ i ] = j = 0 n 1 γ j g [ i ]   ω i j m o d    q ,
    Figure DE102020119569B3_0017
    wobei die ganze Zahl ω eine 2n-te primitive Einheitswurzel modulo q und die ganze Zahl γ = ω
    Figure DE102020119569B3_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 DE102020119569B3_0019
    mit g [ i ] = ( n 1 γ i j = 0 n 1 g [ j ] ω i j ) m o d   q .
    Figure DE102020119569B3_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, 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 kryptografischer 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) Ein Signaturabschnitt sigi wird basierend auf einer Nachricht m und einer Zufälligkeit ke erzeugt.
    • (2) Ein Ablehnungs-Sampling wird für den Signaturabschnitt sigi ausgeführt, indem (mindestens eine) statistische Eigenschaft davon geprüft wird.
    • (2a) Wenn die Prüfung fehlschlägt, wird der Signaturabschnitt sigi abgelehnt, das heißt das Ablehnungskriterium ist erfüllt. In einem solchen Fall wird eine unterschiedliche Zufälligkeit verwendet, und die Erzeugung der Signaturabschnitte wird neu gestartet.
    • (2b) Wenn die Prüfung erfolgreich ist, das heißt das Ablehnungskriterium nicht erfüllt ist, wird der Signaturabschnitt sigi akzeptiert. Die Erzeugung der Signatur wird mit dem nächsten Signaturabschnitt sigj (j=i+1) fortgesetzt, und es wird zu Schritt (2) verzweigt, solange die Erzeugung der Signatur nicht abgeschlossen ist (das heißt solange nicht alle Signaturabschnitte erzeugt wurden).
  • Es wird darauf hingewiesen, dass sich der Signaturabschnitt sigi von dem Signaturabschnitt sigj unterscheidet.
  • Hierin beschriebene Beispiele vermeiden, 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, vordefinierte Anforderungen nicht erfüllen.
  • Die Berechnung kann vorteilhafterweise in Teile aufgeteilt werden, wodurch einzelne Ergebnisse auf eine serielle Weise geliefert werden.
  • Als eine Option können diese einzelnen Ergebnisse verschlüsselt werden, und nur über die Sicherheitsgrenze der Krypto-Engine hinweg gesendet werden, nachdem sie verschlüsselt wurden.
  • Für jeden Signaturabschnitt sigi wird bestimmt, ob dieser Abschnitt das Ablehnungskriterium erfüllt oder nicht. Die Signaturabschnitte werden nur von der Krypto-Engine übermittelt, falls keiner der Signaturabschnitte sigi das Ablehnungskriterium erfüllt. Andernfalls werden basierend auf einer unterschiedlichen Zufälligkeit ke unterschiedliche Signaturabschnitte bestimmt, die dann dem Ablehnungskriterium unterliegen. Wenn keiner der Signaturabschnitte sigi abgelehnt wird, werden diese Signaturabschnitte sigi erneut berechnet, und dann nacheinander von der Krypto-Engine an eine unterschiedliche Entität, zum Beispiel ein Terminal, geliefert. Diese Entität ist dann dazu in der Lage, die empfangenen Signaturabschnitte sigi zu einer vollständigen Signatur sig zu kombinieren, zum Beispiel zu verketten.
  • Dies ermöglicht es der Krypto-Engine, beim Erstellen und Bereitstellen der Signatur, zum Beispiel als Teil einer Authentifizierung, nur begrenzte Ressourcen zu verwenden. Dies kann speziell für Krypto-Engines mit begrenztem Speicherplatz und/oder begrenzter elektrischer Energie, die in der Krypto-Engine gespeichert oder für diese zugänglich ist, nützlich sein.
  • 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 als ein „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 Signatur kann dann für Authentifizierungszwecke verwendet werden.
  • Die Krypto-Engine 102 kann insbesondere Folgendes umfassen:
    • - eine kryptographische Funktion „sign“ zum Erstellen der Signatur;
    • - das Erzeugen oder Erhalten einer Zufälligkeit ke, die ein kurzlebiger Schlüssel sein kann;
    • - einen privaten Schlüssel ks, der für die kryptographische Funktion verwendet wird;
    • - optional: einen symmetrischen Schlüssel kj, der für eine 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. Die Zufälligkeit kann durch die Krypto-Engine basierend auf einem Startwert oder auf einer beliebigen wahren oder pseudozufälligen Zahl oder Eigenschaft erzeugt werden. Die Krypto-Engine kann insbesondere dazu in der Lage sein, eine Vielzahl unterschiedlicher Zahlen zu bestimmen, die jeweils eine (unterschiedliche) Zufälligkeit darstellen.
  • 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.
  • Die Krypto-Engine 102 erstellt Signaturabschnitte sigi basierend auf der Nachricht m, dem privaten Schlüssel ks und der Zufälligkeit ke. Für jeden Signaturabschnitt sigi wird überprüft, ob er ein Ablehnungskriterium erfüllt oder nicht. Wenn dies der Fall ist, wird die Signaturerzeugung mit einer unterschiedlichen Zufälligkeit ke neu gestartet. Wenn keiner der Signaturabschnitte sigi das Ablehnungskriterium erfüllt, werden die Signaturabschnitte sigi neu berechnet, und dann von der Krypto-Engine 102 an das Terminal 101 geliefert.
  • Dies hat den Vorteil, dass, nachdem alle Signaturabschnitte sigi in der ersten Runde bestimmt wurden, offensichtlich wurde, dass keiner dieser Signaturabschnitte sigi das Ablehnungskriterium erfüllt. Daher könnte keiner der Signaturabschnitte sigi durch einen Angreifer verwendet werden, um den durch die kryptographische Funktion sign verwendeten geheimen Schlüssel zu bestimmen oder abzuleiten. Daher ist es für jeden der Signaturabschnitte sigi zulässig, die sichere Domäne der Krypto-Engine 102 zu verlassen, und er kann an das Terminal 101 übertragen werden.
  • Es ist jedoch eine Option, den symmetrischen Schlüssel kj und die Verschlüsselungsfunktion encr zu verwenden, um mindestens einen der Signaturabschnitte sigi, die die Krypto-Engine 102 (in Richtung des Terminals 101) verlassen, zu verschlüsseln. Nachdem der letzte Signaturabschnitt sigi an das Terminal 101 übermittelt wurde, kann die Krypto-Engine 102 dann den symmetrischen Schlüssel kj senden, um es dem Terminal 101 zu ermöglichen, die Signaturabschnitte, die es bereits empfangen hat, zu entschlüsseln. Diese Option fügt eine Sicherheitsebene hinzu, da das Terminal 101 nur dazu in der Lage ist, die Signaturabschnitte zu entschlüsseln, und somit die vollständige Signatur zu bestimmen, nachdem es den symmetrischen Schlüssel kj von der Krypto-Engine 102 empfangen hat.
  • 2 zeigt ein beispielhaftes Flussdiagramm zum Erstellen der Signatur an der Krypto-Engine 102, und zum Weiterleiten von Signaturabschnitten an das Terminal 101:
  • Schritt 201:
    Die Krypto-Engine 102 empfängt eine Nachricht m von dem Terminal 101.
    Schritt 202:
    Ein Zähler i wird initialisiert (das heißt auf 0 gesetzt). Eine Zufälligkeit ke wird erzeugt.
    Schritt 203:
    Ein Signaturabschnitt sigi wird basierend auf der Zufälligkeit ke und der Nachricht m durch Verwenden der kryptographischen Funktion sign bestimmt: sig i = sign ( m , k e , i ) .
    Figure DE102020119569B3_0021
    Es wird darauf hingewiesen, dass die Funktion „sign“ eine Partition basierend auf dem Wert des Zählers i erzeugt. Daher kann die Nachricht m verarbeitet werden, um mehrere Signaturabschnitte sigi abhängig von dem Wert des Zählers i zu bestimmen. Die Funktion sign kann einen privaten Schlüssel ke verwenden, um die Signatur zu erstellen.
  • Die Zufälligkeit ke kann lokal an der Krypto-Engine 102 erzeugt werden. Es kann der Fall sein, dass die erzeugte Zufälligkeit ke nicht geeignet ist, da sie kryptographisch „schwach“ sein kann, auf eine Weise, dass Signaturabschnitt sigi, der durch Verwenden dieser bestimmten Zufälligkeit ke erstellt wurde, es einem Angreifer ermöglicht, Details über den geheimen Schlüssel ke und/oder Details über die kryptografische Funktion sign abzuleiten. Ein Signaturabschnitt sigi, der durch Verwenden einer schwachen Zufälligkeit ke erstellt wird, kann jedoch vorzugsweise die Domäne der Krypto-Engine 102 nicht verlassen.
  • Daher wird das Ablehnungskriterium verwendet, um jeglichen ungeeigneten Signaturabschnitt sigi zu erkennen, was in dem Neustarten der Erstellung der Signaturabschnitte in einer unterschiedlichen (hoffentlich besser geeigneten) Zufälligkeit ke resultiert.
  • Schritt 204:
    Es wird überprüft, ob der Signaturabschnitt sigi das Ablehnungskriterium erfüllt. Wenn dies der Fall ist, wird der Prozess neu gestartet, das heißt es wird zu Schritt 202 verzweigt, wobei die Signaturabschnitte 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 sigi das Ablehnungskriterium nicht erfüllt, gibt es keine Ablehnung, und es wird mit dem nachfolgenden Schritt 205 fortgefahren.
    Schritt 205:
    Es wird überprüft, ob alle Signaturabschnitte erstellt wurden. Wenn dies der Fall ist, wird zu einem Schritt 207 verzweigt. Wenn nicht alle Signaturabschnitte erstellt wurden, wird zu einem Schritt 206 verzweigt.
    Schritt 206:
    Der Zähler i wird um eins erhöht, und es wird mit Schritt 203, das heißt dem Bestimmen des nächsten Signaturabschnitts sigi, fortgesetzt.
  • Es wird darauf hingewiesen, dass, nachdem alle Signaturabschnitte erstellt wurden (bevor in Schritt 207 eingetreten wird), das Ablehnungskriterium für jeden der Signaturabschnitte erfolgreich geprüft wurde, das heißt keiner der Signaturabschnitte sigi das Ablehnungskriterium ausgelöst hat. Daher wird die Signatur, die die Signaturabschnitte sigi umfasst, als gültig und geeignet erachtet, um außerhalb der Krypto-Engine 102 übermittelt zu werden. Jedoch wurden bis jetzt die Signaturabschnitte nicht an das Terminal 101 übermittelt, und sie können aufgrund von Speicherbeschränkungen der Krypto-Engine 102 nicht in einem Speicher gespeichert worden sein. Daher werden die Signaturabschnitte in den nächsten Schritten basierend auf derselben Zufälligkeit ke erneut berechnet, und dann direkt an das Terminal 101 übermittelt:
  • Schritt 207:
    Der Zähler i wird zurückgesetzt (das heißt auf 0 gesetzt).
    Schritt 208:
    Dieser Schritt 208 entspricht dem Schritt 203 oben: Der Signaturabschnitt sigi wird bestimmt
    Schritt 209:
    Der Signaturabschnitt sigi wird an das Terminal 101 übermittelt
    Schritt 210:
    Es wird überprüft, ob alle Signaturabschnitte erstellt wurden. Wenn dies der Fall ist, wird zu einem Schritt 212 verzweigt. Wenn nicht alle Signaturabschnitte erstellt wurden, wird zu einem Schritt 211 verzweigt.
    Schritt 211:
    Der Zähler i wird um eins erhöht, und es wird mit Schritt 208, das heißt dem Bestimmen des nächsten Signaturabschnitts sigi, fortgefahren.
    Schritt 212:
    Die Bereitstellung der Signatur für das Terminal 101 ist beendet.
  • 3 zeigt eine beispielhafte Ausführungsform zum Erstellen der Signatur an der Krypto-Engine 102, und zum Weiterleiten von Signaturabschnitten an das Terminal 101. Das Flussdiagramm von 3 basiert auf 2. Im Gegensatz zu 2 wird zwischen den Schritten 203 und 204 ein Schritt 301 eingegeben, und zwischen den Schritten 208 und 209 wird ein Schritt 302 eingegeben. Diese hinzugefügten Schritte 301 und 302 stellen die folgenden Merkmale bereit:
  • Schritt 301
    Ein Hash-Wert hi wird basierend auf dem Signaturabschnitt sigi bestimmt: h i = HASH ( sig i ) ,
    Figure DE102020119569B3_0022
    wobei HASH() eine Hash-Funktion ist, zum Beispiel eine Einwegfunktion, die einen Hash-Wert basierend auf einer Eingabe bestimmt. Auch wird der Hash-Wert hi für weitere Vergleichszwecke gespeichert (siehe Schritt 302). Daher wurde nach dem Schritt 205 ein Hash-Wert hi berechnet, und für jeden der Signaturabschnitte sigi gespeichert.
    Schritt 302:
    Für jeden der Signaturabschnitte sigi wird der zuvor gespeicherte Hash-Wert hi mit einem basierend auf dem in Schritt 208 bestimmten Signaturabschnitt sigi berechneten Hash-Wert HASH(sigi) verglichen. Daher wird überprüft, ob die Schritte 203 und 208 dieselben Signaturabschnitte erzeugen, indem ihre Hash-Werte verglichen werden. Wenn die Hash-Werte dieselben sind, wird keine Manipulation oder Angriff erkannt, und der nächste Schritt ist Schritt 209. Wenn die Hash-Werte nicht übereinstimmen, wird zu Schritt 202 verzweigt, wobei die Erstellung der Signaturabschnitte mit einer unterschiedlichen Zufälligkeit ke neu gestartet wird.
  • Die in 3 gezeigte Option ist eine Erweiterung der Integritätsprüfung: In der ersten Schleife, die die Schritte 202, 203, 301, 204, 205 und 206 umfasst, werden Hash-Werte hi für jeden der Signaturabschnitte sigi berechnet. In der zweiten Schleife, die die Schritte 208, 302, 209, 210 und 211 umfasst, wird wiederum für jeden Signaturabschnitt ein Hash-Wert berechnet, und mit dem zuvor berechneten Hash-Wert hi verglichen. Falls eine Diskrepanz auftritt, wird die Integrität des zugehörigen Signaturabschnitts beeinträchtigt, und der Prozess des Erstellens der Signaturabschnitte wird neu gestartet.
  • Eine Option, die in Kombination mit entweder dem in 2 gezeigten Ansatz oder dem in 3 gezeigten alternativen Ansatz angewendet werden kann, ist es, dass mindestens einer der Signaturabschnitte sigi verschlüsselt wird, bevor er von der Krypto-Engine 102 an das Terminal 101 übermittelt wird. Zum Beispiel können eine symmetrische Verschlüsselungsfunktion encr und ein symmetrischer Schlüssel kj verwendet werden, um einen verschlüsselten Signaturabschnitt sigi_enc zu erhalten: sig i_enc = encrs ( sig i , k j )
    Figure DE102020119569B3_0023
  • Der verschlüsselte Signaturabschnitt sigi_enc wird an das Terminal 101 übermittelt.
  • Wenn alle Signaturabschnitte an das Terminal 101 übermittelt sind, kann die Krypto-Engine 102 dann den symmetrischen Schlüssel kj an das Terminal 101 übermitteln, um es dem Endgerät 101 zu ermöglichen, die Signatur zur weiteren Verarbeitung zu entschlüsseln.
  • Daher kann das Terminal 101 die Signatur der Nachricht m bestimmen, indem es die Signaturabschnitte sigi verkettet, und in diesem Beispiel auch eine Entschlüsselung durch Verwenden des symmetrischen Schlüssels kj anwendet.
  • Dieses optionale Merkmal gewährleistet, dass das Terminal 101 nur dann dazu in der Lage ist, die verschlüsselten Signaturabschnitte zu entschlüsseln, nachdem es den symmetrischen Schlüssel kj empfangen hat.
  • Es ist eine Option, dass der symmetrische Schlüssel kj durch die Krypto-Engine erzeugt und für jede Signatur oder für eine vorbestimmte Anzahl von Signaturen verwendet wird. Es ist auch eine Option, dass der symmetrische Schlüssel kj nur für eine vorbestimmte Anzahl von Signaturabschnitten verwendet wird. Dementsprechend kann die Krypto-Engine 102 mindestens einen symmetrischen Schlüssel (insbesondere mehrere symmetrische Schlüssel) an das Terminal 101 bereitstellen.
  • 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.
  • Weitere Vorteile und Ausführungsformen
  • 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 Kryptographie verwendet werden. Das Hardwaremodul kann viel weniger Speicher benötigen, als es für die vollständige Berechnung der jeweiligen kryptographischen Operation (zum Beispiel Signatur) benötigen würde.
  • Implementierungsbeispiele
  • 4 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 kryptographische 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 Kryptographie 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.
  • 5 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.
  • LISTE DER REFERENZEN:
    • [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/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 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 (17)

  1. Verfahren zum Erstellen einer kryptografischen Information, wobei das Verfahren umfasst: (a) Bestimmen eines ersten Abschnitts der kryptografischen Information basierend auf einer Eingabe und einer Zufälligkeit; (b) Überprüfen, ob ein Ablehnungskriterium basierend auf dem ersten Abschnitt der kryptographischen Information erfüllt ist; (b1) erneutes Starten von Schritt (a) mit einer unterschiedlichen Zufälligkeit, wenn das Ablehnungskriterium erfüllt ist; (b2) wenn nicht alle Abschnitte der kryptografischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (b) oder, wenn alle Abschnitte der kryptografischen Information erzeugt wurden, Fortfahren mit Schritt (c); (c) Bestimmen des ersten Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit; (d) Übermitteln des jeweiligen Abschnitts der kryptografischen Information; (e) solange nicht alle Abschnitte der kryptographischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptographischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (d).
  2. Verfahren nach Anspruch 1, bei dem 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, - wobei vor Schritt (d) der jeweilige Abschnitt der kryptographischen Information mit einem geheimen Schlüssel verschlüsselt wurde; und - das Verfahren ferner ein Übermitteln des geheimen Schlüssels umfasst.
  4. Verfahren nach Anspruch 3, bei dem der geheime Schlüssel übermittelt wird, nachdem der letzte verschlüsselte Abschnitt der kryptografischen Information übermittelt wurde.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Eingabe eine Nachricht ist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, das ferner Folgendes umfasst: - für jeden Abschnitt der kryptografischen Information, der durch die Schleife der Schritte (a) bis (b2) bestimmt wird, Erzeugen und Speichern eines ersten Hash-Werts, der dem jeweiligen Abschnitt der kryptografischen Information zugeordnet ist; - innerhalb der Schleife der Schritte (c) bis (e), Erzeugen eines zweiten Hash-Werts für jeden Abschnitt der kryptografischen Information, und Vergleichen des zweiten Hash-Werts mit dem ersten Hash-Wert, der demselben Abschnitt der kryptografischen Information zugeordnet ist; und - Fortfahren nur dann, wenn der erste Hash-Wert dem zweiten Hash-Wert entspricht.
  7. Verfahren nach Anspruch 6, bei dem falls der erste Hash-Wert nicht dem zweiten Hash-Wert entspricht, das Verfahren ferner ein Auslösen mindestens einer der folgenden Aktionen umfasst: - Ausgeben einer Benachrichtigung oder eines Alarms; - Stoppen des Verfahrens; - Eintreten in eine Ausnahmehandhabung; - erneutes Starten von Schritt (a) mit einer unterschiedlichen Zufälligkeit.
  8. Verfahren nach einem der vorhergehenden Ansprüche, das ferner Folgendes umfasst: - nicht gleichzeitiges Speichern von mehr als einem Abschnitt der kryptographischen Information, wenn die durch die Schritte (a) bis (b2) bestimmte Schleife verarbeitet wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die kryptografische Information basierend auf den Abschnitten der übermittelten kryptografischen Information erstellt wird.
  10. Verfahren nach Anspruch 9, umfassend ein Durchführen einer Authentifizierung basierend auf der kryptografischen Information.
  11. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Verarbeiten der kryptografischen Information oder eines Abschnitts der kryptografischen Information mindestens eine kryptografische Gitteroperation verwendet.
  12. 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.
  13. Sicherheitsgerät zum Erstellen von einer kryptografischen Information, das eingerichtet ist, um die folgenden Schritte auszuführen: (a) Bestimmen eines ersten Abschnitts der kryptografischen Information basierend auf einer Eingabe und einer Zufälligkeit; (b) Überprüfen, ob ein Ablehnungskriterium basierend auf dem ersten Abschnitt der kryptographischen Information erfüllt ist; (b1) erneutes Starten von Schritt (a) mit einer unterschiedlichen Zufälligkeit, wenn das Ablehnungskriterium erfüllt ist; (b2) wenn nicht alle Abschnitte der kryptografischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (b) oder, wenn alle Abschnitte der kryptografischen Information erzeugt wurden, Fortfahren mit Schritt (c); (c) Bestimmen des ersten Abschnitts der kryptografischen Information basierend auf der Eingabe und der Zufälligkeit; (d) Übermitteln des jeweiligen Abschnitts der kryptografischen Information; (e) solange nicht alle Abschnitte der kryptographischen Information erzeugt wurden, Bestimmen eines nachfolgenden Abschnitts der kryptographischen Information basierend auf der Eingabe und der Zufälligkeit, und Fortfahren mit Schritt (d).
  14. Verbrauchsartikel, der das Sicherheitsgerät nach Anspruch 13 umfasst.
  15. System, das ein Sicherheitsgerät nach Anspruch 13 und einen Host umfasst, wobei das Sicherheitsgerät eingerichtet ist, um den jeweiligen Abschnitt der kryptografischen Information an den Host zu übermitteln.
  16. System nach Anspruch 15, bei dem der Host eingerichtet ist, das Sicherheitsgerät basierend auf den empfangenen Abschnitten der kryptografischen Information zu authentifizieren.
  17. 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 12 umfasst.
DE102020119569.9A 2020-07-24 2020-07-24 Bereitstellen einer kryptografischen Information Active DE102020119569B3 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102020119569.9A DE102020119569B3 (de) 2020-07-24 2020-07-24 Bereitstellen einer kryptografischen Information
US17/380,634 US11870911B2 (en) 2020-07-24 2021-07-20 Providing a cryptographic information
CN202110836490.9A CN113971290A (zh) 2020-07-24 2021-07-23 编译密码信息的方法和设备、消耗品、认证系统和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020119569.9A DE102020119569B3 (de) 2020-07-24 2020-07-24 Bereitstellen einer kryptografischen Information

Publications (1)

Publication Number Publication Date
DE102020119569B3 true DE102020119569B3 (de) 2021-12-09

Family

ID=78605433

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020119569.9A Active DE102020119569B3 (de) 2020-07-24 2020-07-24 Bereitstellen einer kryptografischen Information

Country Status (3)

Country Link
US (1) US11870911B2 (de)
CN (1) CN113971290A (de)
DE (1) DE102020119569B3 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11849043B2 (en) * 2020-11-13 2023-12-19 Sony Group Corporation Zero-knowledge authentication based on device information
US11671453B2 (en) * 2021-06-17 2023-06-06 Richard Lamb Automated lightweight database access protocol secure/multipurpose internet mail extensions key server
US11792004B2 (en) * 2021-09-17 2023-10-17 Intel Corporation Polynomial multiplication for side-channel protection in cryptography

Citations (4)

* 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
DE102019131745A1 (de) 2018-12-03 2020-06-04 Steen Harbach AG Mikrocontroller
EP3542336B1 (de) 2018-11-07 2021-01-27 Advanced New Technologies Co., Ltd. Blockkettendatenschutz auf basis eines kontonotenmodells mit null-wissensnachweis

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452975B2 (en) * 2008-04-09 2013-05-28 Panasonic Corporation Signature and verification method, signature generation device, and signature verification device
IN2013MU01164A (de) * 2013-03-26 2015-07-03 Tata Consultancy Services Ltd
US10313130B2 (en) * 2016-09-27 2019-06-04 Intel Corporation Hash-based signature balancing
US11615060B2 (en) * 2018-04-12 2023-03-28 ISARA Corporation Constructing a multiple entity root of trust

Patent Citations (4)

* 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
EP3542336B1 (de) 2018-11-07 2021-01-27 Advanced New Technologies Co., Ltd. Blockkettendatenschutz auf basis eines kontonotenmodells mit null-wissensnachweis
DE102019131745A1 (de) 2018-12-03 2020-06-04 Steen Harbach AG Mikrocontroller

Non-Patent Citations (14)

* 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.
D.-E. Kouicem et al.: An Efficient and Anonymous Blockchain-Based Data Sharing Scheme for Vehicular Networks, 2020 IEEE Symposium on Computers and Communications (ISCC), 7-10 Juli 2020
Erdem Alkim, Leo Ducas, Thomas Pöppelmann, Peter Schwabe: NewHope without reconciliation. IACR Cryptology ePrint Archive 2016: 1157 (2016)
Erdem Alkim, Leo Ducas, Thomas Pöppelmann, Peter Schwabe: Post-quantum key exchange - a new hope. IACR Cryptology ePrint Archive 2015: 1092 (2015)
Harikrishnan, M.: Secure Digital Service Payments using ZeroKnowledge Proof in Distributed Network. 5th International Conference on Advanced Computing & Communication Systems (ICACCS), 2019.
J. Chen et al.: A Zero-Knowledge Identity Verification Protocol Using Blind Watermark, 2009 International Conference on Computer Engineering and Technology, 22-24 Januar 2009
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.
M. Harikrishnan et al.: Secure Digital Service Payments using Zero Knowledge Proof in Distributed Network, 2019 5th International Conference on Advanced Computing & Communication Systems (ICACCS), 15-16 März 2019
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.
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
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)
Vadim Lyubashevsky, Chris Peikert, Oded Regev.: On Ideal Lattices and Learning with Errors Over Rings, Folien präsentiert bei Eurocrypt 2010
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
Y.-H. Park et al.; Fast and Secure Group Key Dissemination Scheme for Out-of-Range V2I Communication, IEEE Transactions on Vehicular Technology, Vol. 64, No. 12, Dezember 2015, 7. Oktober 2015

Also Published As

Publication number Publication date
US20220029824A1 (en) 2022-01-27
US11870911B2 (en) 2024-01-09
CN113971290A (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
DE102018108313A1 (de) Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
DE102020119569B3 (de) Bereitstellen einer kryptografischen Information
US11798435B2 (en) Executing a cryptographic operation
US9946858B2 (en) Authentication system and device including physical unclonable function and threshold cryptography
Guo et al. Outsourced dynamic provable data possession with batch update for secure cloud storage
Boneh et al. Evaluating 2-DNF formulas on ciphertexts
DE102019108095A1 (de) Ausführen einer kryptografischen Operation
EP3265943B1 (de) Authentifizierungssystem und -vorrichtung mit physikalischer unklonbarer funktion sowie schwellenkryptographie
Wu et al. Quantum resistant key-exposure free chameleon hash and applications in redactable blockchain
US20150100794A1 (en) Method for signing a set of binary elements, and updating such signature, corresponding electronic devices and computer program products
Sun et al. Outsourced decentralized multi-authority attribute based signature and its application in IoT
Petzoldt et al. Small Public Keys and Fast Verification for ultivariate uadratic Public Key Systems
DE102017117899A1 (de) Durchführen einer kryptografischen Operation
CH711133B1 (de) Protokoll zur Signaturerzeugung
US11838431B2 (en) Cryptographic operation
Liu et al. Public data integrity verification for secure cloud storage
DE112012000971T5 (de) Datenverschlüsselung
US20170359177A1 (en) Method and System for Cryptographic Decision-making of Set Membership
DE102020119574B4 (de) Bereitstellen einer kryptografischen Information
Ji et al. Proofs of retrievability with tag outsourcing based on Goppa codes
Yang et al. RLWE-Based ID-DIA protocols for cloud storage
DE102020121229B3 (de) Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens
CN114520728B (zh) 一种分布式匿名阅卷评分方法与系统
DE102021213560A1 (de) Vorrichtung und Verfahren zum Entschlüsseln einer verschlüsselten Bitfolge
DE10159690C2 (de) Verfahren zur Vereinbarung eines symmetrischen Schlüssels über einen unsicheren Kanal und zur digitalen Signatur

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