CH711133B1 - Protokoll zur Signaturerzeugung - Google Patents

Protokoll zur Signaturerzeugung Download PDF

Info

Publication number
CH711133B1
CH711133B1 CH01275/15A CH12752015A CH711133B1 CH 711133 B1 CH711133 B1 CH 711133B1 CH 01275/15 A CH01275/15 A CH 01275/15A CH 12752015 A CH12752015 A CH 12752015A CH 711133 B1 CH711133 B1 CH 711133B1
Authority
CH
Switzerland
Prior art keywords
signature
session
message
key
public key
Prior art date
Application number
CH01275/15A
Other languages
English (en)
Other versions
CH711133A2 (de
Inventor
Antipa Adrian
Original Assignee
Infosec Global Inc
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 Infosec Global Inc filed Critical Infosec Global Inc
Publication of CH711133A2 publication Critical patent/CH711133A2/de
Publication of CH711133B1 publication Critical patent/CH711133B1/de

Links

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/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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

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

Abstract

Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Erzeugen einer kryptographischen Signatur mittels elliptischer Kurven. Das Verfahren umfasst einen Schritt (306) zum Erzeugen einer ersten Signaturkomponente r und einen weiteren Schritt (308) zum Erzeugen einer zweiten Signaturkomponente auf Basis der ersten Signaturkomponente r. In die Berechnungen fliessen ein Langzeit-Private-Key, ein Private Key für die Sitzung und ein Public Key für die Sitzung ein.

Description

Beschreibung
Technischer Bereich [0001] Die vorliegende Erfindung betrifft Datenkommunikationssysteme und in solchen Systemen verwendete Protokolle.
Hintergrund [0002] Datenkommunikationssysteme werden verwendet, um Informationen zwischen Vorrichtungen auszutauschen. Die auszutauschenden Informationen umfassen Daten, die als Folgen digitaler Bits angeordnet sind, die so formatiert sind, dass sie von anderen Vorrichtungen erkannt werden können und ermöglichen, dass die Informationen verarbeitet und/oder wiederhergestellt werden können.
[0003] Der Austausch von Informationen kann über ein öffentlich zugängliches Netzwerk wie einer Kommunikationsverbindung zwischen zwei Vorrichtungen, über ein zugehöriges Netzwerk innerhalb einer Organisation stattfinden oder kann zwischen zwei Vorrichtungen innerhalb derselben zugehörigen Komponente wie innerhalb eines Computers oder einer Verkaufspunktvorrichtung stattfinden.
[0004] Die Vorrichtungen reichen von relativ grossen Computersystemen bis hin zu Vorrichtungen für die Telekommunikation, Mobiltelefone, Überwachungsgeräte, Sensoren, elektronische Geldbörsen und Chipkarten und einer grossen Vielzahl von Vorrichtungen, die verbunden sind, um Daten zwischen zwei oder mehreren solchen Vorrichtungen zu übertragen.
[0005] Es wurde eine Vielzahl von Kommunikationsprotokollen entwickelt, um den Austausch von Daten zwischen unterschiedlichen Vorrichtungen zu ermöglichen. Die Kommunikationsprotokolle ermöglichen den Austausch von Daten auf robuste Art und Weise, oftmals mit Fehlerkorrektur und einer Funktionalität für die Fehlererkennung, und die Daten an den beabsichtigten Empfänger zu leiten und für die Weiterverwendung wiederherzustellen.
[0006] Da die Daten für andere Vorrichtungen zugänglich sein können, sind sie für das Abfangen und die Überwachung oder Manipulation anfällig. Das sensible Wesen der Informationen macht es erforderlich, dass Schritte unternommen werden, um die Informationen zu sichern und ihre Integrität zu gewährleisten.
[0007] Es wurde eine Anzahl von Verfahren, die insgesamt als Verschlüsselungsprotokolle und Authentifizierungsproto-kolle bezeichnet werden, entwickelt, um die geforderten Attribute bereitzustellen und beim Austausch von Informationen Sicherheit und/oder Integrität zu gewährleisten. Diese Verfahren verwenden einen Schlüssel, der mit den Daten kombiniert ist.
[0008] Es gibt zwei Hauptformen von Kryptosystemen, welche die Protokolle umsetzen: Kryptosysteme mit symmetrischen Schlüsseln und asymmetrische oder Public-Key-Kryptosysteme. In einem Kryptosystem mit symmetrischen Schlüsseln teilen die Vorrichtungen, welche Informationen austauschen, einen gemeinsamen Schlüssel, der nur den Vorrichtungen bekannt ist, welche die Informationen teilen sollen. Systeme mit symmetrischen Schlüsseln haben den Vorteil, dass sie relativ schnell sind und daher grosse Datenmengen in einer relativ kurzen Zeit verarbeiten können, sogar mit eingeschränkter Rechenleistung. Die Schlüssel müssen jedoch auf sichere Art und Weise an die verschiedenen Dienste verteilt werden, was zu erhöhten Betriebskosten und vermehrten Schwachstellen führt, wenn der Schlüssel gefährdet ist.
[0009] Public-Key-Kryptosysteme verwenden ein Schlüsselpaar, wovon einer öffentlich und der andere privat ist und das jeder Vorrichtung zugeordnet wird. Der Public Key und der Private Key sind durch ein «schweres» mathematisches Problem verbunden, sodass der Private Key, selbst wenn der Public Key und das zugrunde liegende Problem bekannt sind, nicht in einer durchführbaren Zeit wiederhergestellt werden kann. Ein solches Problem ist die Faktorisierung des Produkts von zwei grossen Primzahlen, wie sie in RSA-Kryptosystemen verwendet werden. Ein anderes ist das diskrete Log-Problem in einer endlichen zyklischen Gruppe. Ein Generator, α, der zugrunde liegenden Gruppe wird als ein Systemparameter identifiziert und eine zufällige ganze Zahl, k, wird zur Verwendung als ein Private Key generiert. Um einen Public Key, K, zu erhalten, wird eine k-fache Gruppenoperation ausgeführt, sodass K = f(a,k).
[0010] In diskreten Log-Kryptosystemen können verschiedene Gruppen verwendet werden, umfassend die multiplikative Gruppe eines endlichen Körpers, die Gruppe von ganzen Zahlen in einer endlichen zyklischen Gruppe der Ordnung p, üblicherweise angegeben als Zp* und bestehend aus den ganzen Zahlen 0 bis p-1. Die Gruppenoperation ist eine Multiplikation, sodass K = f(ak).
[0011] Eine andere Gruppe, die für eine verbesserte Sicherheit verwendet wird, ist eine Elliptische-Kurven-Gruppe. Die Elliptische-Kurven-Gruppe setzt sich aus Paaren von Elementen zusammen, von denen eines als x und das andere als y in einem Bereich, welcher der Gleichung der gewählten elliptischen Kurve genügt, angegeben wird. Für eine Gruppe der Ordnung p wird die Beziehung im Allgemeinen durch y2 = x3 + ax + b mod p definiert. Für andere zugrunde liegende Felder werden andere Kurven verwendet. Jedes derartige Paar von Elementen ist ein Punkt auf der Kurve und ein Generator der Gruppe oder einer geeigneten Untergruppe wird als ein Punkt P angegeben. Die Gruppenoperation ist eine Addition, sodass ein Private Key k einen zugehörigen Public Key f(kP) aufweist.
[0012] Public-Key-Kryptosysteme reduzieren die Infrastruktur, die bei Kryptosystemen mit symmetrischen Schlüsseln erforderlich ist. Eine Vorrichtung generiert ein Schlüsselpaar, indem es eine ganze Zahl k erhält, die als ein Private Key verwendet wird und führt eine k-fache Gruppenoperation aus, um den zugehörigen Public Key zu generieren. Bei einer El-liptische-Kurven-Gruppe wäre dies kP. Der Public Key wird veröffentlicht, sodass er für andere Vorrichtungen verfügbar ist.
[0013] Vorrichtungen können dann das Schlüsselpaar verwenden, wenn sie miteinander kommunizieren. Wenn eine Vorrichtung eine Nachricht verschlüsseln möchte, die an eine andere Vorrichtung geschickt werden soll, verwendet sie den Public Key des beabsichtigten Empfängers in einem Verschlüsselungsprotokoll. Die Nachricht kann von der anderen Vorrichtung unter Verwendung des Private Keys entschlüsselt und wiederhergestellt werden.
[0014] Um dem Empfänger die Integrität einer Nachricht zu bestätigen, kann die Vorrichtung das Schlüsselpaar ebenso in einem digitalen Signaturprotokoll verwenden. Die Nachricht wird unter Verwendung des Private Keys k signiert und andere Vorrichtungen können die Integrität der Nachricht unter Verwendung des Public Keys kP bestätigen.
[0015] Eine digitale Signatur ist ein computerlesbarer Datenstring (oder eine Zahl), welche eine Nachricht mit dem Urheber dieses Datenstrings verknüpft. Ein Algorithmus zum Generieren digitaler Signaturen ist ein Verfahren zum Erzeugen digitaler Signaturen.
[0016] Digitale Signatursysteme sind so konzipiert, dass sie das digitale Gegenstück zu handschriftlichen Unterschriften (und darüber hinaus) bereitstellen. Eine digitale Signatur ist eine Zahl, die von einem Geheimnis, das nur dem Unterzeichner bekannt ist (der Private Key des Unterzeichners) und zusätzlich von den Inhalten der signierten Nachricht abhängt.
[0017] Signaturen müssen überprüfbar sein - falls es zu einer Auseinandersetzung im Bezug darauf kommt, ob eine Instanz ein Dokument signiert hat, sollte eine unvoreingenommene Drittpartei dazu in der Lage sein, die Angelegenheit auf gerechte Weise zu klären, ohne dass ein Zugriff auf den Private Key des Unterzeichners erforderlich ist. Es kann zu Auseinandersetzungen kommen, wenn ein Unterzeichner versucht, eine von ihm erzeugte Signatur zurückzuweisen oder wenn ein Fälscher einen unehrlichen Anspruch erhebt.
[0018] Die drei grundlegenden unterschiedlichen Formen von Signaturen sind: - Ein digitales Signatursystem mit Anhang, bei dem die ursprüngliche Nachricht eine Eingabe bei dem Überprüfungsvorgang sein muss. - Ein digitales Signatursystem mit Nachrichtenwiederherstellung, bei dem bei dem Überprüfungsvorgang keine Eingabe der ursprünglichen Nachricht erforderlich ist. Üblicherweise wird die ursprüngliche Nachricht während der Überprüfung wiederhergestellt. - Ein digitales Signatursystem mit teilweiser Nachrichtenwiederherstellung, bei dem nur ein Teil der Nachricht wiederhergestellt werden muss.
[0019] Die vorliegende Anwendung beschäftigt sich mit asymmetrischen digitalen Signatursystemen mit Anhang. Wie zuvor erörtert, bedeutet asymmetrisch, dass jede Instanz ein Schlüsselpaar auswählt, das aus einem Private Key und einem zugehörigen Public Key besteht. Die Instanz wahrt die Geheimhaltung für den Private Key, den sie zum Signieren von Nachrichten verwendet und fertigt authentische Kopien ihres Public Keys an, die für andere Instanzen verfügbar sind, welche sie zur Überprüfung von Signaturen verwenden. Anhang bedeutet üblicherweise, dass eine kryptographische Hashfunktion verwendet wird, um einen Message Digest der Nachricht zu erzeugen und die Signierungstransformation wird eher für den Message Digest angewendet als für die Nachricht an sich.
[0020] Eine digitale Signatur muss sicher sein, wenn sie ihre Funktion für die Nachweisbarkeit erfüllen soll. Es sind verschiedene Arten von Angriffen auf digitale Signaturen bekannt. Die Arten von Angriffen auf digitale Signaturen umfassen: - Key-Only-Angriff: Ein Gegenspieler verfügt nur über den Public Key des Unterzeichners. - Known-Signature-Angriff: Ein Gegenspieler kennt den Public Key des Unterzeichners und verfügt über Paare von Nachrichtensignaturen, die von dem Unterzeichner ausgewählt und erzeugt wurden. - Chosen-Message-Angriff: Der Gegenspieler wählt von dem Unterzeichner signierte Nachrichten aus, wobei der Unterzeichner in diesem Fall als ein Orakel fungiert. - Angriffe auf digitale Signaturen können zu den folgenden Bruchstellen führen: - Total Break: Ein Gegenspieler ist entweder dazu in der Lage, die Private Key-Information des Unterzeichners zu berechnen oder findet einen wirksamen alternativen Signaturalgorithmus. - Sélective Forgery: Ein Gegenspieler ist dazu in der Lage, eine gültige Signatur für eine bestimmte Nachricht zu erzeugen. - Existential Forgery: Ein Gegenspieler ist dazu in der Lage, eine Signatur für mindestens eine Nachricht zu fälschen. - Universal Forgery: Ein Gegenspieler kann jede Nachricht ohne den geheimen Schlüssel fälschen.
[0021] Idealerweise sollte ein digitales Signatursystem bei einem Chosen-Message-Angriff existenziell fälschungssicher sein. Diese Auffassung von Sicherheit wurde von Goldwasser, Micali und Rivest eingeführt. Informell wird dadurch bestätigt, dass ein Gegenspieler, der dazu in der Lage ist, die Signaturen einer Instanz für beliebige Nachrichten seiner Wahl zu erhalten, nicht dazu in der Lage ist, erfolgreich eine Signatur dieser Instanz für eine einzige andere Nachricht zu fälschen.
[0022] Digitale Signatursysteme können verwendet werden, um die folgenden grundlegenden kryptographischen Dienste bereitzustellen: Datenintegrität (die Zusicherung, dass Daten nicht durch unbefugte oder unbekannte Mittel modifiziert wurden), Datenursprungsauthentifizierung (die Zusicherung, dass der Datenursprung so ist, wie beansprucht) und Nachweisbarkeit (die Zusicherung, dass eine Instanz vorherige Handlungen oder Verpflichtungen nicht leugnen kann). Digitale
Signatursysteme werden gemeinhin als Primitive in kryptographischen Protokollen verwendet, die andere Dienste bereitstellen, umfassend Instanzauthentifizierung, authentifizierter Schlüsseltransport und authentifizierte Schlüsselvereinbarung.
[0023] Die heute verwendeten digitalen Signatursysteme können gemäss dem schweren zugrunde liegenden mathematischen Problem klassifiziert werden, welches die Grundlage für ihre Sicherheit bildet: [0024] Systeme für die Primfaktorzerlegung (engl.: Integer Factorization = IF), deren Sicherheit auf der Widerspenstigkeit des Primfaktorzerlegungsproblems basiert. Beispiele dafür umfassen die RSA- und Rabin-Signatursysteme.
[0025] Systeme mit diskreten Logarithmen (DL), deren Sicherheit auf der Widerspenstigkeit des (gewöhnlichen) diskreten Logarithmus-Problems in einem endlichen Körper basiert. Beispiele dafür umfassen die EIGamal-, Schnorr-, DSA- und Nyberg-Rueppel-Signatursysteme.
[0026] Elliptische-Kurven(EC)-Systeme, deren Sicherheit auf der Widerspenstigkeit des diskreten Logarithmus-Problems elliptischer Kurven basiert.
[0027] Ein Signatursystem, dessen Verwendung weit verbreitet ist, ist der Elliptic Curve Digital Signature Algorithm (ECD-SA). Zum Generieren der Signatur ist es notwendig, einen Hash der Nachricht zu erstellen und aus einer zufälligen ganzen Zahl einen öffentlichen Sitzungsschlüssel zu generieren. Eine Signaturkomponente wird durch eine modulare Reduktion einer Koordinate des Punktes erhalten, der den öffentlichen Sitzungsschlüssel darstellt und die andere Signaturkomponente kombiniert den Hash und die Private Keys des Unterzeichners. Dies macht eine Umkehrung des Private Keys der Sitzung erforderlich, welche rechnerisch relativ aufwendig sein kann.
[0028] Die Überprüfung macht das Hashen der Nachricht und die Umkehrung der anderen Komponente erforderlich. Es wurden verschiedene mathematische Verfahren entwickelt, um die Signatur und Überprüfung effizient zu machen, das Hashen und die modulare Reduktion bleiben jedoch rechnerisch aufwendig.
[0029] Es ist eine Aufgabe der vorliegenden Erfindung, ein Signatursystem bereitzustellen, bei welchem die oben genannten Nachteile vermieden oder abgeschwächt werden können.
Zusammenfassung [0030] In einem Aspekt wird ein Verfahren zum Generieren einer Elliptische-Kurven-Kryptographie-Signatur bereitgestellt, umfassend eine erste Komponente und eine zweite Komponente für eine Nachricht unter Verwendung eines Langzeit-Pri-vate-Keys, eines Private Keys für die Sitzung und eines Public Keys für die Sitzung, der aus dem Private Key für die Sitzung generiert wird, wobei das Verfahren Folgendes umfasst: Generieren einer ersten Signaturkomponente unter Verwendung einer x-Koordinate des Public Keys für die Sitzung und der Nachricht; Generieren einer zweiten Signaturkomponente durch Kombinieren des Langzeit-Private-Keys und der ersten Signaturkomponente, um ein erstes Ergebnis bereitzustellen, Subtrahieren des ersten Ergebnisses von dem Private Key für die Sitzung, um ein zweites Ergebnis bereitzustellen und Kombinieren des zweiten Ergebnisses mit dem Private Key für die Sitzung.
[0031] In einem anderen Aspekt wird eine kryptographische Korrespondentvorrichtung bereitgestellt, umfassend einen Prozessor und einen Speicher, wobei in dem Speicher ein Langzeit-Private-Key gespeichert ist, wobei mit der Vorrichtung ferner ein zugehöriger kryptographischer Langzeit-Public-Key, der unter Verwendung des Langzeit-Private-Keys und eines kryptographischen Generators generiert wird, und eine Identität verknüpft sind, wobei in dem Speicher ferner Computerbefehle gespeichert sind, die, wenn sie von dem Prozessor ausgeführt werden, dazu führen, dass der Prozessor ein Verfahren für die Elliptische-Kurven-Kryptographie-Signatur umsetzt, das Folgendes umfasst: Generieren eines Private Keys für die Sitzung und eines zugehörigen kryptographischen Public Keys für die Sitzung; Generieren einer ersten Signaturkomponente unter Verwendung einer x-Koordinate des Public Keys für die Sitzung und der Nachricht; und Generieren einer zweiten Signaturkomponente durch Kombinieren des Langzeit-Private-Keys und der ersten Signaturkomponente, um ein erstes Ergebnis bereitzustellen, Subtrahieren des ersten Ergebnisses von dem Private Key für die Sitzung, um ein zweites Ergebnis bereitzustellen und Kombinieren des zweiten Ergebnisses mit dem Private Key für die Sitzung.
[0032] Gemäss einem weiteren Aspekt kann eine Signatur durch Folgendes überprüft werden: Rekonstruieren des Public Keys für die Sitzung aus den Signaturkomponenten, einem Langzeit-Public-Key, der mit dem Langzeit-Private-Key übereinstimmt und einem Basispunktgenerator; Wiederherstellen der x-Koordinate des rekonstruierten Public Keys für die Sitzung; Generieren einer zwischengeschalteten Komponente aus der ersten Signaturkomponente und der Nachricht; und Überprüfen der Signatur durch Vergleichen der zwischengeschalteten Komponente und der wiederhergestellten x-Koor-dinate des Public Keys für die Sitzung.
Beschreibung der Zeichnungen [0033] Eine Ausführungsform der Erfindung wird nun in Bezug auf die beigefügten Zeichnungen beschrieben, in denen:
Fig. 1 eine schematische Darstellung eines Datenkommunikationssystems ist;
Fig. 2 eine Darstellung einer Vorrichtung ist, die in dem Datenkommunikationssystem aus Fig. 1 verwendet wird; und
Fig. 3 ein Ablaufplan ist, der das Protokoll zeigt, das zwischen einem Paar von Vorrichtungen, die in Fig. 1 gezeigt werden, implementiert wird.
Detaillierte Beschreibung [0034] Das Protokoll wird in dem Zusammenhang einer Elliptischen-Kurven-Gruppe beschrieben, die durch einen Punkt P generiert wird, der eine Primordnung n aufweisen soll.
[0035] Daher umfasst ein Datenkommunikationssystem 10 in Bezug auf Fig. 1 eine Vielzahl von Vorrichtungen 12, die durch Kommunikationsverbindungen 14 miteinander verbunden sind. Die Vorrichtungen 12 können zu einer beliebigen bekannten Art gehören, umfassend einen Computer 12a, einen Server 12b, ein Mobiltelefon 12c, einen Geldautomaten 12d und eine Chipkarte 12e. Die Kommunikationsverbindungen 14 können herkömmliche Festnetztelefonanschlüsse, drahtlose Verbindungen, die zwischen den Vorrichtungen 12 implementiert sind, Verbindungen für die Nahfeldkommunikation wie Bluetooth oder andere herkömmliche Formen der Kommunikation sein.
[0036] Die Vorrichtungen 12 unterscheiden sich gemäss ihrem Verwendungszweck, umfassen aber üblicherweise ein Kommunikationsmodul 20 (Fig. 2) für die Kommunikation mit den Verbindungen 14. Ein Speicher 22 stellt ein Speichermedium für dauerhafte Befehle bereit, um Protokolle zu implementieren und Daten wie gewünscht zu speichern. Ein sicheres Speichermodul 24, welches Teil des Speichers 22 oder ein separates Modul sein kann, wird zum Speichern privater Informationen wie den in den Verschlüsselungsprotokollen verwendeten Private Keys verwendet und um einer Manipulation mit diesen Daten standzuhalten. Es wird eine arithmetische Logikeinheit (ALU) 26 bereitgestellt, um die arithmetischen Operationsbefehle von dem Speicher 22 unter Verwendung der in den Speichern 22, 24 gespeicherten Daten auszuführen. Es wird ebenso ein Zufalls- oder Pseudozufallszahlengenerator 28 integriert, um Bitfolgen zu generieren, die Zufallszahlen auf kryptographisch sichere Art und Weise darstellen. Der Speicher 22 umfasst ebenso einen Befehlssatz zur Konditionierung der ALU 26, um einen Blockchiffre-Algorithmus wie eine AES-Blockchiffre, die nachfolgend ausführlicher beschrieben wird, auszuführen.
[0037] Es wird gewürdigt, dass die in Fig. 2 veranschaulichte Vorrichtung 12 stark schematisiert und für eine in einem Datenkommunikationssystem verwendete herkömmliche Vorrichtung repräsentativ ist.
[0038] Der Speicher 22 speichert Systemparameter für das zu implementierende Kryptosystem und eine Reihe von computerlesbaren Befehlen zum Implementieren des geforderten Protokolls. Im Falle eines Elliptische-Kurven-Kryptosystems bestehen Elliptische-Kurven-Domänenparameter aus sechs Mengen q, a, b, P, n und h, die Folgendes sind: - Die Feldgrösse q - Die Koeffizienten der elliptischen Kurve a und b
- Der Basispunktgenerator P - Die Ordnung n des Basispunktgenerators - Der Kofaktor h, welcher die Anzahl ist, sodass hn die Anzahl von Punkten auf der elliptischen Kurve ist.
[0039] Die Parameter werden als Bitfolgen und die Darstellung des Basispunkts P wird als ein Paar von Bitfolgen dargestellt, die jeweils ein Element des zugrunde liegenden Felds darstellen. So wie es üblich ist, kann eine dieser Folgen gekürzt sein, da die vollständige Darstellung durch die andere Koordinate und die gekürzte Darstellung wiederhergestellt werden kann.
[0040] Das sichere Speichermodul 24 enthält eine Bitfolge, die einen Langzeit-Private-Key d und den zugehörigen Public Key Q darstellt. Für ein Elliptische-Kurven-Kryptosystem gilt: der Schlüssel Q = dP.
[0041] Ephemere Werte, die von der ALU berechnet werden, können ebenso in dem sicheren Modul 24 gespeichert werden, wenn ihr Wert geheim sein soll.
[0042] Ein digitales Signaturprotokoll ist erforderlich, wenn eine der Vorrichtungen 12 eine Nachricht, m, an eine oder mehrere der anderen Vorrichtungen verschickt und die anderen Vorrichtungen dazu in der Lage sein müssen, die Nachricht zu authentifizieren. Die Nachricht kann zum Beispiel ein Dokument sein, das von allen Parteien signiert werden soll oder kann ein Befehl an den ATM 12d für den Transfer von Kapital sein. Zur Beschreibung des Protokolls wird jede Vorrichtung als eine Instanz wie Alice oder Bob, wie es bei der Behandlung kryptographischer Protokolle üblich ist oder als ein Korrespondent identifiziert. Es versteht sich jedoch, dass jede Instanz eine Vorrichtung 12 ist, die Operationen unter Verwendung der in Fig. 2 veranschaulichten Vorrichtung ausführt.
[0043] Die Instanz Alice verfasst eine Nachricht, m, die eine Bitfolge ist, die für die an eine andere Instanz, Bob, zu versendende Information repräsentativ ist. Das Signatursystem nimmt als seine Eingabe die Nachricht, m, und den Private Key d des Unterzeichners (Alice), welcher eine ganze Zahl ist, an.
[0044] Das Überprüfungssystem nimmt als Eingabe die Nachricht, m, den Public Key Q des Unterzeichners, welcher ein Element der von dem generierenden Punkt P generierten Gruppe ist und eine angebliche Signatur für die Nachricht durch den Unterzeichner an. Die Signatur umfasst ein Paar von Signaturkomponenten, die von dem Unterzeichner berechnet und die üblicherweise mit der Nachricht, m, an die Empfänger gesendet werden.
[0045] Zum Signieren der Nachricht, m, unter Verwendung des Private Keys d des Unterzeichners: [0046] Erzeugt Alice an Block 300 eine Nachricht, m, und erstellt dafür mit einer kryptographischen Hashfunktion H einen Hash, um e = H(m) zu generieren und verwendet an Block 302 den RNG 28, um eine ganze Zahl k in dem Bereich [1, n-1] zu berechnen. Der Wert k ist der ephemere (oder Kurzzeit- oder Sitzungs-) Private Key von Alice. An Block 304 führt die ALU 24 eine Punktmultiplikation durch, um einen Elliptische-Kurven-Punkt K = kP, welcher als der ephemere Public Key von Alice verwendet wird.
[0047] Der ephemere Public Key K wird durch ein Paar von Bitfolgen, x, y, dargestellt, die beide Elemente des zugrunde liegenden Felds, wie an Block 304 gezeigt, sind. An Block 306 wird die Bitfolge, welche die Koordinate x darstellt, als eine ganze Zahl verwendet, um einen Zwischenwert, r, r = e + x (mod n), zu berechnen.
[0048] An Block 308 berechnet die ALU 24 dann die zweite Signaturkomponente s aus dem Sitzungsschlüssel k, der ersten Signaturkomponente r und dem Private Key d: s = (k + 1)“1(k - dr) (mod n) [0049] Wie an Block 310 gezeigt, ist die Komponente s eine ganze Zahl und die Signatur für die Nachricht m ist das Paar von Komponenten r, s. Die Nachricht m wird von Alice zusammen mit der Signatur (r, s) unter Verwendung des Kommunikationsmoduls 20 an Bob verschickt.
[0050] Das Signaturprotokoll kann wie folgt zusammengefasst werden: a. Berechnen von e = H(m), wobei H eine kryptographische Hashfunktion ist. b. Berechnen eines Elliptische-Kurven-Punkts K durch die zufällige Auswahl einer ganzen Zahl k in dem Bereich von [1 ,n-1] und dann Berechnen des Elliptische-Kurven-Punkts kP = K. c. x sei die affine x-Koordinate des Punktes kP. d. Berechnen der ganzen Zahl r = e + x (mod n). e. Berechnen der ganzen Zahl s = (k + 1)_1(k - dr) (mod n). Wenn s = 1, dann weiter mit Schritt (b). f. Ausgabe (r, s) als die Signatur der Nachricht m.
[0051] Nachdem Bob die Nachricht m empfangen hat, möchte er möglicherweise die Signatur überprüfen und somit bestätigen, dass sie von Alice gesendet wurde und ihre Inhalte nicht verändert wurden.
[0052] An Block 312 erstellt Bob für die Nachricht m mit einer kryptographischen Hashfunktion H einen Hash, um e = H(m) zu generieren. An Block 314 wird unter Verwendung der Beziehung K' = s'(1 - s')_1P + r'(1 - s')_1 Q durch die ALU 24 ein Elliptische-Kurve-Punkt K' berechnet, wobei (r', s') die von Bob empfangene Signatur ist und Q der Public Key von Alice ist, welcher von einer vertrauenswürdigen Quelle wie einem von einer Zertifizierungsstelle («CA») signierten Zertifikat erhalten und von Alice an Bob gesendet wurde.
[0053] An Block 316 wird die x-Koordinate des Punktes K' erhalten und an Block 318 mit (r' - e') (mod n) verglichen und wenn sie gleich sind, wird die Signatur, wie an Block 320 gezeigt, überprüft. Falls nicht, wird die Signatur abgewiesen und die Nachricht kann, wie an Block 322 gezeigt, als ungültig angesehen werden.
[0054] Zusammengefasst umfasst das Überprüfungsprotokoll Folgendes: a. Überprüfen, dass r' und s' in dem Intervall [0,n-1] liegen und s'# 1. Falls eine der beiden Überprüfungen nicht das geforderte Ergebnis liefert, dann «ungültig» ausgeben. b. Berechnen des Elliptische-Kurve-Punkts K' = s'(1 - s')_1P + r'(1 - s')_1 Q. Falls K' = «ungültig» ausgeben. c. x' sei die x-Koordinate des Punktes K'. d. Berechnen von e = H(m). e. Überprüfen, dass x' = (r' - e) (mod n). Falls die Überprüfung nicht das geforderte Ergebnis liefert, dann «ungültig» ausgeben; ansonsten «gültig» ausgeben.
[0055] Die erste Signaturkomponente r kann als r = (H(m) + x) (mod n) berechnet werden. Die erste Signaturkomponente r kann ebenso aus x und m unter Verwendung einer Einwegfunktion wie einer kryptographischen Hashfunktion, d.h. r = H(x II m) berechnet werden. Es ist eine alternative Berechnung verfügbar, die eine Blockchiffre wie die AES-Blockchiffre verwendet, um r = Ex(m) zu berechnen. In einer Ausführungsform wird die Koordinate x als der symmetrische Schlüssel für die Verschlüsselung der Blockchiffre E verwendet, die in der ALU ausgeführt wird.

Claims (14)

  1. Patentansprüche
    1. Verfahren zum Generieren einer verifizierbaren Elliptische-Kurven-Kryptographie-Signatur, umfassend eine erste Signaturkomponente und eine zweite Signaturkomponente für eine Nachricht unter Verwendung eines Langzeit-Priva-te-Keys, eines Sitzungs-Private-Keys und eines Sitzungs-Public-Keys, der aus einer Multiplikation, umfassend den Sitzungs-Private-Key und einen Basispunktgenerator generiert wird, wobei das Verfahren Folgendes umfasst: Generieren der ersten Signaturkomponente, umfassend Addieren einer x-Koordinate des Sitzungs-Public-Keys zu einem kryptographischen Hash der Nachricht; Generieren der zweiten Signaturkomponente, umfassend Multiplizieren des Langzeit-Private-Keys und der ersten Signaturkomponente, um ein erstes Ergebnis bereitzustellen, Subtrahieren des ersten Ergebnisses von dem Sitzungs-Private-Key, um ein zweites Ergebnis bereitzustellen, Addieren von eins zu dem Sitzungs-Private-Key, um ein drittes Ergebnis bereitzustellen, und Multiplizieren des Inversen des dritten Ergebnisses mit dem zweiten Ergebnis.
  2. 2. Verfahren zum Verifizieren einer nach dem Verfahren nach Anspruch 1 generierten Signatur, wobei das Verfahren Folgendes umfasst: Rekonstruieren des Sitzungs-Public-Keys aus den Signaturkomponenten, einem Langzeit-Public-Key, der mit dem Langzeit-Private-Key übereinstimmt, und dem Basispunktgenerator; Wiederherstellen der x-Koordinate des rekonstruierten Sitzungs-Public-Keys; Generieren einer zwischengeschalteten Komponente aus der ersten Signaturkomponente durch Subtrahieren des Hashs der Nachricht; und Überprüfen der Signatur durch Vergleichen der zwischengeschalteten Komponente und der wiederhergestellten x-Koordinate des Sitzungs-Public-Keys.
  3. 3. Verfahren nach Anspruch 1, wobei die erste Signaturkomponente als die Summe eines Hashs der Nachricht und der x-Koordinate des Sitzungs-Public-Keys generiert wird.
  4. 4. Verfahren nach Anspruch 2, wobei die zwischengeschaltete Komponente als eine Subtraktion eines Hashs der Nachricht von der ersten Signaturkomponente generiert wird.
  5. 5. Verfahren nach Anspruch 1, wobei das Generieren des dritten Ergebnisses, das Addieren von eins zu dem Wert des Sitzungs-Private-Keys umfasst.
  6. 6. Verfahren nach Anspruch 1, wobei die erste Signaturkomponente durch Verschlüsseln der Nachricht mit einer Blockchiffre unter Verwendung der x-Koordinate des Sitzungs-Public-Keys als einen symmetrischen Schlüssel generiert wird.
  7. 7. Verfahren nach Anspruch 1, wobei die erste Signaturkomponente durch das Anwenden einer kryptographischen Has-hfunktion für die Konkatenation der Nachricht und der x-Koordinate des Sitzungs-Public-Keys generiert wird.
  8. 8. Kryptographische Korrespondentvorrichtung, umfassend einen Prozessor und einen Speicher, wobei in dem Speicher ein Langzeit-Private-Key gespeichert ist, wobei mit der Vorrichtung ferner ein zugehöriger kryptographischer Lang-zeit-Public-Key, der unter Verwendung des Langzeit-Private-Keys und eines kryptographischen Generators generiert wird, und eine Identität verknüpft sind, wobei in dem Speicher ferner Computerbefehle gespeichert sind, die, wenn sie von dem Prozessor ausgeführt werden, dazu führen, dass der Prozessor ein Verfahren für die Elliptische-Kurven-Kryptographie-Signatur umsetzt, das Folgende umfasst: Generieren eines Sitzungs-Private-Keys und eines zugehörigen kryptographischen Sitzungs-Public-Keys generiert aus einer Multiplikation, umfassend den Sitzungs-Private-Key und einen Basispunktgenerator; Generieren einer ersten Signaturkomponente umfassend Addieren einer x-Koordinate des Sitzungs-Public-Keys zu einem kryptographischen Hash der Nachricht; und Generieren einer zweiten Signaturkomponente umfassend Multiplizieren des Langzeit-Private-Keys und der ersten Signaturkomponente, um ein erstes Ergebnis bereitzustellen, Subtrahieren des ersten Ergebnisses von dem Sitzungs-Private-Key, um ein zweites Ergebnis bereitzustellen und Addieren von eins zu dem Sitzungs-Private-Key, um ein drittes Ergebnis bereitzustellen, und Multiplizieren des Inversen des dritten Ergebnisses mit dem zweiten Ergebnis.
  9. 9. Vorrichtung nach Anspruch 8, wobei die Signatur verifizierbar ist durch: Rekonstruieren des Sitzungs-Public-Keys aus den Signaturkomponenten, einem Langzeit-Public-Key, der mit dem Langzeit-Private-Key übereinstimmt, und dem Basispunktgenerator; Wiederherstellen der x-Koordinate des rekonstruierten Sitzungs-Public-Keys; Generieren einer zwischengeschalteten Komponente aus der ersten Signaturkomponente durch Subtrahieren des Hashs der Nachricht; und Überprüfen der Signatur durch Vergleichen der zwischengeschalteten Komponente und der wiederhergestellten x-Koordinate des Sitzungs-Public-Keys.
  10. 10. Vorrichtung nach Anspruch 8, wobei die erste Signaturkomponente als die Summe eines Hashs der Nachricht und der x-Koordinate des Sitzungs-Public-Keys generiert wird.
  11. 11. Vorrichtung nach Anspruch 8, wobei die erste Signaturkomponente durch das Anwenden einer kryptographischen Hashfunktion für die Konkatenation der Nachricht und der x-Koordinate des Sitzungs-Public-Keys generiert wird.
  12. 12. Vorrichtung nach Anspruch 9, wobei die zwischengeschaltete Komponente als eine Subtraktion eines Hashs der Nachricht von der ersten Signaturkomponente generiert wird.
  13. 13. Vorrichtung nach Anspruch 8, wobei das Generieren des dritten Ergebnisses, das Addieren von eins zu dem Wert des Sitzungs-Private-Keys umfasst.
  14. 14. Vorrichtung nach Anspruch 9, wobei die erste Signaturkomponente durch Verschlüsseln der Nachricht mit einer Blockchiffre unter Verwendung der x-Koordinate des Sitzungs-Public-Keys als einen symmetrischen Schlüssel generiert.
CH01275/15A 2015-05-26 2015-09-04 Protokoll zur Signaturerzeugung CH711133B1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/721,548 US9800418B2 (en) 2015-05-26 2015-05-26 Signature protocol

Publications (2)

Publication Number Publication Date
CH711133A2 CH711133A2 (de) 2016-11-30
CH711133B1 true CH711133B1 (de) 2019-07-15

Family

ID=57391641

Family Applications (1)

Application Number Title Priority Date Filing Date
CH01275/15A CH711133B1 (de) 2015-05-26 2015-09-04 Protokoll zur Signaturerzeugung

Country Status (2)

Country Link
US (1) US9800418B2 (de)
CH (1) CH711133B1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201600076089A1 (it) * 2016-07-20 2018-01-20 St Microelectronics Srl Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico
GB201617620D0 (en) * 2016-10-18 2016-11-30 Cybernetica As Composite digital signatures
US10341098B2 (en) * 2017-01-24 2019-07-02 Nxp B.V. Method of generating cryptographic key pairs
US10516543B2 (en) 2017-05-08 2019-12-24 Amazon Technologies, Inc. Communication protocol using implicit certificates
US10511591B2 (en) * 2017-05-08 2019-12-17 Amazon Technologies, Inc. Generation of shared secrets using pairwise implicit certificates
US10798086B2 (en) 2017-05-08 2020-10-06 Amazon Technologies, Inc. Implicit certificates using ring learning with errors
WO2018208546A1 (en) * 2017-05-08 2018-11-15 Amazon Technologies, Inc. Generation of shared secrets using pairwise implicit certificates
US11005656B2 (en) * 2018-12-07 2021-05-11 Arris Enterprises Llc Embedding information in elliptic curve base point
CN111066285B (zh) * 2019-05-31 2023-06-30 创新先进技术有限公司 基于sm2签名恢复公钥的方法
WO2021025631A1 (en) * 2019-08-05 2021-02-11 Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. A method for generating digital signatures
US11546136B2 (en) * 2019-08-27 2023-01-03 EMC IP Holding Company LLC Generating shared authentication keys using network connection characteristics

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782100B1 (en) * 1997-01-29 2004-08-24 Certicom Corp. Accelerated finite field operations on an elliptic curve
CA2228185C (en) 1997-01-31 2007-11-06 Certicom Corp. Verification protocol
US6279110B1 (en) 1997-11-10 2001-08-21 Certicom Corporation Masked digital signatures
US7587605B1 (en) * 2004-03-19 2009-09-08 Microsoft Corporation Cryptographic pairing-based short signature generation and verification
US8467535B2 (en) 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
CA2594670C (en) * 2005-01-21 2014-12-23 Certicom Corp. Elliptic curve random number generation
EP2151947A1 (de) 2008-08-05 2010-02-10 Irdeto Access B.V. Schema zur gleichzeitigen Verschlüsselung und Unterschrift auf der Basis der Verschlüsselung elliptischer Kurven
US8775813B2 (en) * 2010-02-26 2014-07-08 Certicom Corp. ElGamal signature schemes
CA2811325C (en) 2010-09-17 2017-05-23 Certicom Corp. A mechanism for managing authentication device lifecycles
US20120096273A1 (en) * 2010-10-15 2012-04-19 Certicom Corp. Authenticated encryption for digital signatures with message recovery
FR2982106B1 (fr) 2011-10-28 2014-04-18 Logiways France Procede de signature cryptographique de messages, procede de verification de signature et dispositifs de signature et de verification correspondants
US20150006900A1 (en) 2013-06-27 2015-01-01 Infosec Global Inc. Signature protocol

Also Published As

Publication number Publication date
US9800418B2 (en) 2017-10-24
US20160352525A1 (en) 2016-12-01
CH711133A2 (de) 2016-11-30

Similar Documents

Publication Publication Date Title
CH711133B1 (de) Protokoll zur Signaturerzeugung
DE102010002241B4 (de) Vorrichtung und Verfahren zur effizienten einseitigen Authentifizierung
DE69918818T2 (de) Verfahren zur Erzeugung eines öffentlichen Schlüssels in einem sicheren digitalen Kommunikationssystem und implizites Zertifikat
DE60200496T2 (de) Verfahren und Vorrichtung zur Ausführung eines effizienten mittels Kennwort authentifizierten Schlüsselaustauschs
DE19804054B4 (de) System zur Verifizierung von Datenkarten
DE69938624T2 (de) Robuste und effiziente verteilte erzeugung eines rsa-schlüssels
Camenisch Group signature schemes and payment systems based on the discrete logarithm problem
DE69834431T3 (de) Leckresistentes kryptographisches verfahren und vorrichtung
DE60036112T2 (de) Serverunterstützte wiedergewinnung eines starken geheimnisses aus einem schwachen geheimnis
DE102012206341B4 (de) Gemeinsame Verschlüsselung von Daten
DE60031304T3 (de) Verfahren zur authentifizierung von softwarebenutzern
CH694603A5 (de) Identifizierungsverfahren.
DE102011011652A1 (de) Verfahren zum Verwenden eines Ecdsa mit Winternitzeinmalsignatur
DE102016210786A1 (de) Komponente zur Anbindung an einen Datenbus und Verfahren zur Umsetzung einer kryptografischen Funktionalität in einer solchen Komponente
DE19829643C2 (de) Verfahren und Vorrichtung zur Block-Verifikation mehrerer digitaler Signaturen und Speichermedium, auf dem das Verfahren gespeichert ist
CH708240A2 (de) Signaturprotokoll und Gerät zu dessen Umsetzung.
EP1368929B1 (de) Verfahren zur authentikation
EP3182318A1 (de) Signaturgenerierung durch ein sicherheitstoken
DE112012000971B4 (de) Datenverschlüsselung
DE102020119569B3 (de) Bereitstellen einer kryptografischen Information
Boneh et al. Threshold signatures with private accountability
DE102008055076A1 (de) Vorrichtung und Verfahren zum Schutz von Daten, Computerprogramm, Computerprogrammprodukt
Ho et al. Simple-yet-efficient construction and revocation of group signatures
CH711134A2 (de) Schlüsselzustimmungsprotokoll.
CN115174037B (zh) 一种基于sm9签名的变色龙哈希函数的构造方法及装置

Legal Events

Date Code Title Description
PCAR Change of the address of the representative

Free format text: NEW ADDRESS: HOLEESTRASSE 87, 4054 BASEL (CH)

NV New agent

Representative=s name: ISLER AND PEDRAZZINI AG, CH