DE69633253T2 - Kryptographisches verfahren mit öffentlichem schlüssel - Google Patents

Kryptographisches verfahren mit öffentlichem schlüssel Download PDF

Info

Publication number
DE69633253T2
DE69633253T2 DE69633253T DE69633253T DE69633253T2 DE 69633253 T2 DE69633253 T2 DE 69633253T2 DE 69633253 T DE69633253 T DE 69633253T DE 69633253 T DE69633253 T DE 69633253T DE 69633253 T2 DE69633253 T2 DE 69633253T2
Authority
DE
Germany
Prior art keywords
exponent
modp
exponents
bits
given
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.)
Expired - Fee Related
Application number
DE69633253T
Other languages
English (en)
Other versions
DE69633253D1 (de
Inventor
David M'raihi
David Naccache
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.)
Gemplus SA
Original Assignee
Gemplus SA
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 Gemplus SA filed Critical Gemplus SA
Application granted granted Critical
Publication of DE69633253D1 publication Critical patent/DE69633253D1/de
Publication of DE69633253T2 publication Critical patent/DE69633253T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

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

Description

  • Gegenstand der vorliegenden Erfindung ist ein so genanntes kryptographisches Verfahren mit öffentlichem Schlüssel, basierend auf dem die Berechnung einer Größe modulo p einbringenden diskreten Logarithmus.
  • Sie findet eine Anwendung in der Erzeugung von digitalen Unterschriften von Nachrichten, in einer Authentifizierungssitzung zwischen zwei Einheiten oder bei der Datenverschlüsselung.
  • In derartigen Verfahren begründet sich die Sicherheit auf der extremen Schwierigkeit, die in der Inversion bestimmter Funktionen und ganz besonders des diskreten Logarithmus besteht.
  • In Anbetracht des mathematischen Verhältnisses y = gxmodulo p, das im Folgenden als y = gxmodp angegeben wird (was bedeutet, dass y der Rest der Division von gx durch p ist), besteht dieses Problem darin, x wieder zu finden, wenn p, g und y bekannt sind. Zum augenblickli chen Kenntnisstand ist es unmöglich, dieses Problem zu lösen, sobald die Größe p 512 Bits erreicht oder übersteigt und die von x 128 Bits erreicht oder übersteigt.
  • In derartigen Systemen gibt es im Allgemeinen eine Autorität, die die das Modul bildende Anzahl p großer Größe liefert. Die Autorität wählt ebenfalls eine Basis genannte ganze Zahl g, wie z. B. die durch p erzeugte Struktur, das heißt, die aus den Zahlen gxmodp gebildete Struktur, wobei x zum Intervall [0, p – 1] gehört, d. h. einer Unterstruktur maximaler Größe, wenigstens 2128.
  • Die Parameter p und g sind so genannte „öffentliche" Parameter, d. h. dass sie durch die Autorität an alle an diese Autorität angeschlossenen Anwender geliefert wird.
  • Gemäß bestimmter Varianten werden diese Parameter individuell durch jeden Anwender ausgewählt und sind in diesem Fall fester Bestandteil seines öffentlichen Schlüssels.
  • Ein großer Nachteil der Umsetzung kryptographischer Systeme besteht aufgrund der komplexen Berechnungen, die realisiert werden, in der Notwendigkeit, über Berechnungsmittel und einen relativ großen Speicher zu verfügen.
  • Die Berechnung der Größe gkmodp besteht in der Tat in der Realisierung der modularen Multiplikationen, und das ist zeitaufwändig und kostet Speicherplatz. In einfachen, nur Standard-Mikroprozessoren einsetzende elektronischen Vorrichtungen ist diese Art von Operation kaum zu realisieren.
  • Bei elektronischen Vorrichtungen mit einem auf diese Berechnungsart spezialisierten Prozessor ist es dennoch wünschenswert, die Berechnungszeit und den für die Zwischenergebnisse notwendigen Speicherplatz zu begrenzen.
  • Die Berechnung der Größe gkmodp durch die klassische Methode der unter der angelsächsischen Abkürzung SQM (Square-Mulitply) bekannten „Quadratmultiplikation" ist nämlich im Allgemeinen relativ kostspielig, da sie im Durchschnitt 3/2 Log2 (p) Multiplikationen gleichkommt.
  • Gemäß dieser Methode werden alle Potenzen von g berechnet, das heißt, alle Quadrate: g0, g1, g2 ... gh, wenn k eine Länge von n Bits hat, anschließend werden die zwischen diesen Potenzen erforderlichen Multiplikationen realisiert (zum Beispiel g17 = g1.g16).
  • Gemäß der einfachen Methode der „Quadratmultiplikation" erfordert gk n/2 Multiplikationen und n Quadrate.
  • In dem Fall, in dem N Unterschriften in einem einzigen Mal zu leisten sind, produziert man Ngk und realisiert somit eine parallele Berechnung.
  • Die Methode der parallelen „Quadratmultiplikation" erfordert N × n/2 Multiplikationen und n Quadrate.
  • Eine von E. BRICKEL et al. vorgeschlagene und durch die Abkürzung BGKW bezeichnete Methode erlaubt die Reduzierung der Anzahl der Multiplikationen im Fall der Quadratmultiplikation, führt jedoch die Notwendigkeit der Speicherung zahlreicher vorausberechneter Konstanten und somit die Notwendigkeit ein, über eine sehr nachteilige große Menge Speicherplatz zu verfügen.
  • Die Einführung einer parallelen Berechnung von N Werten in dieser Methode impliziert die Verwendung zahlreicher Register zur Beibehaltung der Zwischenergebnisse.
  • Dieses Verfahren wird daher in dem Fall umständlicher, in dem es darum geht, eine große Anzahl von Unterschriften innerhalb sehr kurzer Zeit zu erzeugen, da in dem Fall die parallele Berechnung eingeführt wird.
  • Der auf den Seiten 12.3.1 bis 12.3.5 in den Proceedings of the IEEE 1989 Custom Integrated Circuits Conference, San Diego, US, 15.–18. Mai 1989 unter dem Titel „A high speed data encryption processor for public key cryptography" von T. ROSALI veröffentlichte Artikel betrifft eine für die Kryptographie spezifische Matrixarchitektur, die einen durch verschiedene, zur Reduzierung der Bitzahl auf 1 in den Exponenten geeignete kryptographische Verfahren einsetzbaren Mikroprozessor umsetzt. Die Berechnungsausführungsgeschwindigkeit der Exponenten wird bei gleichzeitiger Reduzierung des Hamming-Gewichtes auf 30 erhöht.
  • Gegenstand der vorliegenden Erfindung ist es, alle diese Nachteile zu beheben. Sie erlaubt eine flexible und hinsichtlich der Berechnungszeit und des Speicherplatzes bei der Umsetzung kryptographischer Algorithmen für alle kryptographischen Systeme und insbesondere durch tragbare Geräte vom Typ Chipkarte mit Mikroprozessor wenig aufwändige Lösung.
  • Gemäß einem ersten Gegenstand der Erfindung erlaubt das vorgeschlagene kryptographische Verfahren die Reduzierung der Anzahl der modularen Multiplikation, so dass je nach den verwendeten kryptographischen Schemata (Schnorr oder El Gamal) zwischen 15 und 40% und noch mehr Berechnungszeit gewonnen wird.
  • Erfindungsgemäß werden zwei Lösungen vorgeschlagen, um die Anzahl der Multiplikationen zu reduzieren, wobei eine aus der Erzeugung der „hohlen" Exponenten k mit wenigen Bits bei 1, jedoch mit einer ausreichenden Länge besteht, um die gesamte Sicherheit des Systems beizubehalten, und die andere in der Realisierung der parallelen Berechnungen der Potenzen von g unter gleichzeitiger Kombination der Exponenten untereinander, so dass dieselbe Potenzberechnung für einen vorgegebenen Exponenten nicht wiederholt zu werden braucht.
  • Gegenstand der Erfindung ist ganz besonders ein kryptographisches Verfahren mit öffentlichem Schlüssel, basierend auf dem die Berechnung der Größe gkmodp einbringenden diskreten Logarithmus, in dem p eine Modul genannte Primzahl ist, k eine zufällige Zahl mit einer üblichen Länge von n Bits und g eine Basis genannte ganze Zahl, in der eine Einheit E die Authentifizierungsoperationen und/oder Unterschrifts- und/oder Chiffrierungsoperationen realisiert, die die Signalaustausche mit einer anderen Einheit umfassen, in denen diese Größe auftritt, dadurch gekennzeichnet, dass es die folgenden Stufen umfasst:
    • – Erzeugen eines zufälligen Exponenten k der Länge N Bits, wobei N gleich n + b Bits ist,
    • – Berechnen des Hamming-Gewichts C dieses Exponenten und Vergleich mit einem zuvor festgelegten Wert h;
    • – Überprüfung, ob der zufällige Wert k die Bedingung: C ≤ h erfüllt:
    • – Ablehnen des zufälligen Wertes k für den Fall, dass das Hamming-Gewicht unter h liegt und erneute Erzeugung neuer Exponenten bis zum Erhalt eines diese Bedingung zufriedenstellenden Exponenten
    • – oder Beibehaltung dieses Wertes im gegenteiligen Fall;
    • – Berechnung des Ausdrucks gkmodp ausgehend vom beibehaltenen Wert;
    • – Verwenden dieses Ausdrucks in einem Austausch elektronischer Signale mit der anderen Einheit.
  • Gegenstand der Erfindung ist ebenfalls ein kryptographisches Verfahren mit öffentlichem Schlüssel, basierend auf dem die Berechnung der Größe gkmodp einbringenden diskreten Logarithmus, in dem p eine Modul genannte Primzahl ist, k eine zufällige Zahl mit einer üblichen Länge von n Bits und g eine Basis genannte ganze Zahl, in der eine Einheit E die Authentifizierungsoperationen und/oder Unterschrifts- und/oder Chiffrierungsoperationen realisiert, die die Signalaustausche mit einer anderen Einheit umfassen, in denen mehrere Größen dieser Art auftreten, dadurch gekennzeichnet, dass es für die Einheit die folgenden Stufen umfasst:
    • – Erzeugen einer Struktur zufälliger Exponenten kj mit n Bits mit einem Gewicht von ai, ausgedrückt durch den Ausdruck kj = Σai2i;
    • – parallel die Potenzen g21 unter gleichzeitiger Kombination der Exponenten derart berechnen, dass die für einen Exponenten von g bereits berechneten Potenzen anderen Exponenten dienen, in denen sie auftreten;
    • – für jedes vorgegebene kj die noch nicht berechneten Potenzen von g berechnen und alle diese Potenzen zusammenfassen, um den gewünschten Ausdruck gkjmodp zu erhalten;
    • – verwenden dieser Ausdrücke in einem Signalaustausch mit der anderen Einheit.
  • Gemäß einer ersten Ausführungsart umfassen die parallelen und zusammenführenden Berechnungsstufen die folgenden Operationen:
    • – Kombinieren der Exponenten jeweils zu zweit, um die ihre gemeinsamen Teile reflektierenden Exponenten kc zu erhalten und Wiederholen der Kombinationen bei dem erhaltenen Ergebnis der Kombination;
    • – Berechnung der Größen Gkc für jeden Wert kc, wie z. B.: Gkc = gkcmodp;
    • – Kombinieren eines Exponenten kj mit dem für die Kombination erhaltenen Exponenten kc, zu der dieser Exponent gehört, so dass die gemeinsamen Teile eliminiert werden und Beibehalten nur der unterschiedlichen Teile;
    • – Definieren der die unterschiedlichen Teile zwischen einem vorgegebenen Exponenten kj und einem vorgegebenen Exponenten kc wiedergebenden unterschiedlichen Exponenten k' j;
    • – Berechnen der Größen Gk,j, wie z. B.: Gk,j = gmodp;
    • – Bestimmen der Ausdrücke Gkjmodp durch Durchführen der Multiplikationen zwischen den bei jeder Iteration erhaltenen Größen Gkc.
  • In einer zweiten Ausführungsart umfassen die parallelen und zusammenführenden Berechnungsstufen die folgenden Operationen:
    • – Kombinieren der Exponenten untereinander, so dass alle Unterstrukturen möglicher, die gemeinsamen Teile aufweisenden Exponentenkombinationen gebildet werden;
    • – Definieren der die gemeinsamen Teile wiedergebenden Exponenten kc für jede Unterstruktur-Kombination, so dass die Bit ungleich Null mit einem vorgegebenen Gewicht den Bits ungleich Null mit demselben Gewicht der betrachteten Kombination entsprechen;
    • – Berechnen der Größen Gkc für jeden Wert von kc, wie z. B.: Gkc = gkcmodp;
    • – Kombinieren jedes Exponenten kj mit allen für jede Unterstruktur-Kombination erhaltenen Exponenten kc, der dieser Exponent kj derart angehört, dass die gemeinsamen Teile eliminiert und nur die unterschiedlichen Teile beibehalten werden;
    • – Definieren der die unterschiedlichen Teile zwischen einem vorgegebenen Exponenten kj und einem vorgegebenen Exponenten kc wiedergebenden Exponenten k'j;
    • – Berechnen der Größen Gk,j, wie z. B.: Gk,j = gk,jmodp;
  • Bestimmen der Ausdrücke gkjmodp durch Durchführen einer Multiplikation zwischen den Größen G'kj und Gkc für jedes kj.
  • Gemäß einem anderen Gegenstand der Erfindung werden die den Erhalt der gemeinsamen Teile zwischen den Exponenten zulassenden Kombinationen durch logistische „UND"-Verbindungen realisiert.
  • Gemäß einem anderen Gegenstand der Erfindung werden die den Erhalt der unterschiedlichen Teile zulassenden Kombinationen durch logische „exklusives ODER"-Funktionen realisiert.
  • Weitere Besonderheiten und Vorteile der Erfindung werden bei der Lektüre der nachstehenden, beispielhaften und nicht einschränkenden Beschreibung angesichts der Zeichnungen deutlich, die Folgendes darstellen:
  • 1 ein Prinzipienschema eines zur Umsetzung der Erfindung geeigneten Systems,
  • 2 ein die wesentlichen Stufen des Verfahrens in einer ersten Anwendung darstellenden Funktionsschema,
  • 3 ein die wesentlichen Stufen des Verfahrens in einer zweiten Anwendung gemäß einer ersten Ausführungsart darstellendes Funktionsschema,
  • 4 ein die wesentlichen Stufen des Verfahrens in der zweiten Anwendung gemäß einer zweiten Ausführungsart darstellendes Funktionsschema.
  • In 1 wurde ein Prinzipienschema eines Systems zur Umsetzung des erfindungsgemäßen kryptographischen Verfahrens dargestellt.
  • Dieses System wird aus einer Einheit E1 gebildet, das den Austausch elektronischer Signale mit wenigstens einer anderen Einheit E2 durchführen will. Die beiden Einheiten sind jeweils mit einer Verarbeitungseinheit (CPU) 11, 30, einer Kommunikationsschnittstelle, einem Arbeitsspeicher (RAM), 13, 32 und/oder einem nicht beschreibbaren Speicher (ROM) 14, 34 und/oder einem beschreibbaren oder wiederbeschreibbaren flüchtigen Speicher (EPROM oder EEPROM) 15, 33 und einem Adress-, Daten,- Kontrollbus 16, 35 versehen.
  • Die Verarbeitungs-Steuereinheit und/oder der ROM enthalten Programme oder Berechnungsressourcen, die der Ausführung der im erfindungsgemäßen Verfahren auftretenden Berechnungsstufen, d. h. bei einer Authentifizierungssitzung oder bei der Erzeugung einer elektronischen Unterschrift oder beim Verschlüsseln von an eine andere Einheit zu übertragenden elektronischen Signalen, entsprechen.
  • Die Verarbeitungseinheit oder der ROM weisen die für Multiplikationen, Additionen und modulare Reduktionen notwendigen Ressourcen auf.
  • Ebenso weisen die Verarbeitungseinheit und/oder der ROM verwendete, jedem kryptographischen Algorithmus eigene kryptographische Funktionen und die Parameter g und p auf. Die Exponenten kj könnten von der Autorität zuvor in einen wieder beschreibbaren Speicher geladen werden oder nach und nach ausgehend von einem Zufallsgenerator und einem zufälligen Wert mit geheimer Quelle ko erzeugt werden. Die Einheit E1 besitzt darüber hinaus den geheimen Schlüssel x.
  • Die Erfindung findet ganz besonders auf im Bankenbereich angewendete kryptographische Systeme Anwendung, in dem eine große Sicherheit bei den auf den Konten vorgenommenen Transaktionen erforderlich ist. Dies ist auch der Fall, wenn man den Versand von durch eine andere Einheit in Form von elektronischen Signalen übertragenen Nachrichten authentifizieren möchte. Das ist auch der Fall, wenn man Nachrichten beim Austausch von Signalen mit einer anderen Einheit unterzeichnen muss.
  • In der Praxis kann eine Einheit, die eine Transaktion realisieren möchte, zum Beispiel eine Karte mit integriertem Schaltkreis, wie z. B. eine Chipkarte sein, und die Empfängereinheit ist dann ein Bankenterminal.
  • Die nachfolgende Beschreibung erfolgt im Rahmen der Anwendung des Verfahrens auf die Unterschrift digitaler Nachrichten, wobei es sich von selbst versteht, dass die Erfindung auf jedes kryptographische, auf einem diskreten Algorithmus basierende System Anwendung findet.
  • Das erfindungsgemäße Verfahren schlägt eine erste Lösung zur beträchtlichen Senkung der Anzahl von Multiplikationen vor, die besonders für den Fall geeignet ist, in dem eine Umgebung mit geringem Speicherplatz vorhanden hat.
  • In diesem Fall besteht das Prinzip in der Produktion „hohler" Exponenten kj dergestalt, dass das Hamming-Gewicht selbstverständlich bei gleichzeitiger Aufrechterhaltung des zufälligen Charakters dieser Exponenten so niedrig wie möglich gewählt wird.
  • Zu diesem Zweck besteht das Verfahren in der Erzeugung der Exponenten kj entweder je nach Bedarf oder vor jedem Austausch. In diesem Fall werden sie selbstverständlich gespeichert. Die erzeugten Exponenten haben keine Länge von n Bits, sondern eine n + b Bits überschreitende Länge und erfüllen eine im Folgenden definierte Bedingung.
  • Wenn ein Exponent k von n + b Bits erzeugt wird, besteht das Verfahren anschließend in der Berechnung des Hamming-Gewichts C dieses Exponenten, anschließend in seinem Vergleich mit dem zuvor festgelegten Wert h.
  • Wenn bei Abschluss des Vergleichs C ≥ h, dann wird der Exponent beibehalten und von der Einheit verwendet, die dann den Ausdruck gkmodp berechnet und diesen Ausdruck im Versand von digitalen Unterschriften verwendet, in denen dieser Ausdruck zum Beispiel als Unterschrift genutzt wird.
  • In dem Fall, in dem der Parameter C die erforderliche Bedingung nicht erfüllt, wird der entsprechende Exponent k abgelehnt, ein neuer Exponent wird erzeugt, die Überprüfungsstufe der Bedingung beginnt erneut, bis zum Erhalt eines diese Bedingung erfüllenden Exponenten k.
  • Somit erlaubt diese Lösung die Realisierung weniger Multiplikationen bei gleichzeitiger Beibehaltung desselben Sicherheitsniveaus, als wenn man Exponenten geringerer Größe hätte.
  • Gemäß einem die maximale Reduktion der Anzahl der Multiplikationen zulassenden besonderen Beispiel, wählt man C = h.
  • In der Praxis, müssen bei einem Exponenten der Größe n + b Bits (bei n = log2 p), dessen Hamming-Gewicht h ist, um dieselbe Anzahl an Kombinationen zu erhalten, als wenn der Exponent n Bits umfasst, die folgenden Relationen überprüft werden:
    Sn ≤ Ch n+b
    und (N + b)/2 + h ≤ n (diese Bedingung lässt die Reduzierung der Anzahl der durchzuführenden Berechnungen zu).
  • Das heißt, 2n ≤ (n + b)!/(n + b – h)!h!
    und
    b + 2h ≤ n.
  • Die festgelegten Zahlen b und h werden durch Lösung dieser doppelten Ungleichung für ein vorgegebenes n (zum Beispiel n = 160) erhalten.
  • Zu Darstellungszwecken wurden die Ergebnisse des erfindungsgemäßen Verfahrens mit den bekannten Methoden verglichen.
  • Im Fall des Algorithmus von Shnorr, in dem n = 260 Bits ist und im Fall des Algorithmus von E1 Gamal, in dem n = 512 Bits ist. Diese Ergebnisse sind in der nachstehenden Tabelle identisch.
  • Figure 00130001
  • Die auf den von den Exponenten von n Bits abgedeckten Platz der Unterschriften ausgeübte Beanspruchung kann durch einen von dem Sicherheitsniveau, das man erreichen will, abhängenden Faktor α reduziert werden.
  • Die Parameter n, h und b müssen dann die Bedingung (1) erfüllen. 2n–α ≤ (n + b)!/(n + b – h)!h! (1)
  • Und dabei gleichzeitig die Möglichkeit zur Erzeugung derselben Unterschriften, ausgehend von den unterschiedlichen Zufallswerten der Größe (n + b) Bits erzeugen.
  • In der Praxis ist 280 ausreichend, um die unterschiedlichen möglichen Angriffe abzuwehren und damit ist n – α = 100 ein durchaus akzeptabler Wert.
  • Figure 00140001
  • Diese Ausführungsvariante ist umso interessanter, als der Aufwand (an Berechnungszeit) eines Quadrats häufig geringer ist als eine modulare Multiplikation.
  • Im Allgemeinen erhält man:
    s/2 ≤ m ≤ s, wobei s die zu berechnende Quadratzahl und m die Anzahl der Multiplikationen ist, wobei die beiden extremen Fälle m = s und m = 2s sind.
  • Die Vergleichsergebnisse für diese beiden extremen Fälle wurden in der folgenden Tabelle dargestellt:
  • Figure 00150001
  • Es ist festzustellen, dass der erhaltene Gewinn bei der Anwendung des Verfahrens auf die Schemata nach Shnorr und E1 Gamals im Verhältnis zur Methode der einfachen Quadratmultiplikation und selbst in dem Fall sehr groß ist, in dem man berücksichtigt, dass der Aufwand eines Quadrats derselbe ist, wie der einer Multiplikation.
  • Gemäß einer anderen Ausführungsart findet das Verfahren ganz besonders auf Systeme Anwendung, die keine besonderen Vorgaben hinsichtlich des Speicherplatzes haben.
  • In dieser Ausführungsart werden die unterschiedlichen Potenzen von g parallel berechnet, um die Quadrate nur ein einziges Mal zu berechnen, wobei gleichzeitig die Kombination der Exponenten beibehalten wird, um nicht dieselbe Berechnung mehrere Male durchzuführen.
  • Zum besseren Verständnis der Erfindung wird nun der Fall beschrieben, in dem die Berechnung von zwei Potenzen durchgeführt wird.
  • Kj sei = Σai2i, wobei kj zufällig gezogen wird (d. h., ausgehend von einem Zufallsgenerator erzeugt wird). Kk sei = Kj = Σbi2i
  • Verfahrensgemäß werden die Exponenten kj und kk derart verbunden, dass ein Exponent kc definiert wird, wie z. B.:
    Kc = Σaibi2i gibt die gemeinsamen Teile zwischen kj und kk wieder. Die Koeffizienten ai sind entweder 1 oder 0.
  • Der Exponent kc entspricht dem gemeinsamen Teil der Exponenten kj und kk, das heißt, wenn kj = 1 × 210 + ... + 0 + 1 × 20 und kk = 1 × 210 + 0 + 0 ... + 1 × 20 Kc = 1 × 210 + 0 + ... + 1 × 20.
  • Verfahrensgemäß wird damit also der mit kc bezeichnete Exponent k mittels einer logischen UND-Funktion bestimmt.
  • Anschließend wird eine zweite Kombination, bestehend aus der Bestimmung der unterschiedlichen Teile zwischen dem Exponenten kj und dem Exponenten kc vorgenommen. Gesucht werden ebenfalls die unterschiedlichen Teile zwischen dem Exponenten kk und dem Exponenten kc.
  • Diese Kombinationen, die für die exklusiven ODER realisiert werden, werden mit kj ⊕ kc und kk ⊕ kc bezeichnet.
  • Die folgenden Größen werden parallel berechnet: Gkj = gkjkcmodp Gkk = gkkkcmodp Gkc = gkcmodp
  • Zum Erhalt von gkjmodp und Gkkmodp, brauchen nur folgende Operationen realisiert zu werden: Gkj = Gkcmodp 1) Gkk = Gkcmodp 2)
  • Wenn man, wie in soeben gezeigten Beispiel, zwei Potenzen hat, führt man im Durchschnitt ungefähr 3n/4 Multiplikationen anstatt von n Multiplikationen durch. Der Gewinn beträgt 25%.
  • Das erfindungsgemäße Verfahren kann auf eine größere Anzahl von Exponentenkombinationen verallgemeinert werden. Diese Verallgemeinerung kann darüber hinaus gemäß zwei, durch die in den 3 und 4 vorgegebenen Funktionsschemata dargestellte Ausführungsarten eingesetzt werden.
  • In diesem Fall findet die Anwendung ganz besonders auf die Fälle Anwendung, in denen eine große Anzahl an Unterschriften erzeugt werden muss.
  • Gemäß der ersten Ausführungsart realisiert man die Exponentenkombinationen jeweils zu zweit gemäß einem in der nachstehenden Tabelle dargestellten Baum:
  • Figure 00170001
  • Diese Kombinationen erlauben, ebenso wie das zuvor beschriebene Beispiel, die Lieferung von den zwischen den Exponenten kj 0 gemeinsamen Teile wiedergebenden Exponenten kc.
  • Zur Vereinfachung des Schreibens werden die Exponenten kj als a1, a2, a3, as4 bezeichnet.
  • Die Exponenten kc werden auf der Höhe –1 des Baums mit b1 und b2 bezeichnet und auf der Höhe des Baums –2 mit c1.
  • Die Kombinationen a1·a2, a3·a4 werden durch eine logische UND-Funktion realisiert.
  • Es werden die Kombinationen bei jedem Niveau des so gebildeten Baumes wiederholt. Die Anzahl der Multiplikationen nimmt in dem Maße aufgrund der einfachen statistischen Verteilung der Bits ab, wie man in den Baum vordringt. Die zu realisierende Berechnungsbeanspruchung wird um n/3 Multiplikationen verringert.
  • Wie zuvor beschrieben, werden die Größen Gkc auf jedem Niveau bestimmt.
  • So erhält man: Ga1 = ga1b1modp Ga2 = ga2b1modp Gb1 = gb1modp Gb1 = gb1c1modp, d. h. Gb1 = Gb1·Gc1modp Gb2 = gb2c1modp, d. h. Gb2 = Gb2·Gc1modp Gc1 = 9c1modp Ga1modp = Ga1 × Gb1modp = Ga1 xGb1 × Gc1modp
  • In der Praxis wird ga1 modp durch das Produkt Ga1x Gb1modp erhalten und ga2modp wird durch das Produkt Ga2 × Gb1 Gc1modp erhalten.
  • Gemäß einer zweiten Ausführungsart werden die Exponenten derart kombiniert, dass alle Unterstrukturen möglicher Kombinationen gebildet werden, d. h. zum Beispiel, wenn man einen Exponenten kj: a, b, c, hat werden die Kombinationen ab, ac, bc, abc gebildet.
  • Daher werden die Definition der gemeinsamen Teile zulassenden Kombinationen relativ zu diesen Unterstrukturen durch Durchführung einer logischen UND-Funktion zwischen a und b, a, und c, b, und c und a, b, c reali siert. Somit wird für jede erhaltene Unterstruktur ein Exponent kc definiert.
  • Man kann parallel alle Größen Gkc = gkcmodp berechnen, für die k im Verhältnis zu den ursprünglichen k wenig Bits bei 1 haben und für die die modulare Berechnung daher schnell ist.
  • Anschließend führt man einen anderen, in der Elimination der zwischen einem Exponenten und den vorherigen Kombinationen gemeinsamen Teile bestehenden Kombinationstyp durch.
  • Diese Kombinationen werden mittels logischer exklusiver ODER-Funktionen realisiert. Somit erhält man gemäß dem vorgegebenen Beispiel:
    Ka = a xor abc xor ac xor ab
    Kb = b xor abc xor ab xor bc
    Kc = c xor abc xor ac xor bc
  • Anschließend können die Größen Gk,j = gkjmodp berechnet werden, für die die k'j noch weniger Bits bei 1 haben als die ursprünglichen kc und für die die modularen Modifikationen noch schneller sind.
  • Zum Schluss werden die Ausdrücke gkjmodp durch kj erhalten.
  • Im Fall der Erzeugung von N durch diese zweite Ausführungsart erhaltenen Unterschriften tendiert die Berechnungsbeanspruchung zu
    n/N Quadrat + n(2N – 1)/N2N + (2N–1 – 1) Multiplikationen.
  • Die nachfolgende Tabelle erlaubt den Erhalt von Vergleichsergebnissen mit den bekannten Methoden, wie z. B. der Quadratmultiplikation, der parallelen Quadratmultiplikation und der erfindungsgemäßen Methode.
  • Figure 00200001
  • Die erste vorgegebene Ausführungsart (Baumstruktur) im Fall der Anwendung auf die Erzeugung von N Unterschriften ist hinsichtlich des Speicherplatzes wenig aufwändig.
  • Bei einem binären Baum mit 4 Exponenten benötigt man für die Berechnungen 8 Register zu log2 (p) Bits.
  • Die zweite vorgegebene Ausbildungsart (N Strukturen) ist hinsichtlich der Berechnungszeit sehr wenig aufwändig, denn sie hat eine optimale Anzahl an Multiplikationen. Für 3 Exponenten benötigt man für die Berechnungen 8 Register zu log2 (p) Bits.

Claims (5)

  1. Kryptographisches Verfahren mit öffentlichem Schlüssel, basierend auf dem die Berechnung der Größe gkmodp einbringenden diskreten Logarithmus, in dem p eine Modul genannte Primzahl ist, k eine zufällige Zahl und g eine Basis genannte ganze Zahl, in der eine Einheit E die Authentifizierungsoperationen und/oder Unterschrifts- und/oder Chiffrierungsoperationen realisiert, die die Signalaustausche mit einer anderen Einheit umfassen, in denen diese Größe auftritt, wobei das genannte Verfahren einen zufälligen Exponenten k der Länge von N Bits generiert, wobei N gleich n + 1 Bits mit n gleich log2 p ist, wobei n und b ganze Zahlen sind, dadurch gekennzeichnet, dass es für die Einheit die folgenden Stufen umfasst: – Berechnen des Hamming-Gewichts C dieses Exponenten und Vergleich mit einem zuvor festgelegten Wert h; – Überprüfung, ob der zufällige Wert k die Bedingung: C ≥ h erfüllt: – Ablehnen des zufälligen Wertes k für den Fall, dass das Hamming-Gewicht unter h liegt und erneute Erzeugung neuer Exponenten bis zum Erhalt eines diese Bedingung zufriedenstellenden Exponenten – oder Beibehaltung dieses Wertes im gegenteiligen Fall; – Berechnung des Ausdrucks gkmodp ausgehend vom beibehaltenen Wert; – Verwenden dieses Ausdrucks in den Signalaustauschen mit der anderen Einheit.
  2. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, dass die zu erfüllende Bedingung c = h ist.
  3. Kryptographisches Verfahren mit öffentlichem Schlüssel, basierend auf dem die Berechnung der Größe gkmodp einbringenden diskreten Logarithmus, in dem p eine Modul genannte Primzahl ist, k eine zufällige Zahl und g eine Basis genannte ganze Zahl, in der eine Einheit E die Authentifizierungsoperationen und/oder Unterschrifts- und/oder Chiffrierungsoperationen realisiert, die die Signalaustausche mit einer anderen Einheit umfassen, in denen diese Größe auftritt, dadurch gekennzeichnet, dass es die folgenden Stufen umfasst: – Erzeugen einer Struktur zufälliger Exponenten kj mit n Bits mit einem Gewicht von ai, ausgedrückt durch den Ausdruck kj = Σai2i; – parallel die Potenz g2i unter gleichzeitiger Kombination der Exponenten derart berechnen, dass die für einen Exponenten von g berechneten Potenzen anderen Exponenten dienen, in denen sie auftreten; – für jedes vorgegebene kj die noch nicht berechneten Potenzen von g berechnen und alle diese Potenzen zusammenfassen, um den gewünschten Ausdruck gkjmodp zu erhalten; – verwenden dieser Ausdrücke in einem Signalaustausch mit der anderen Einheit.
  4. Verfahren gemäß Anspruch 3, dadurch gekennzeichnet, dass die parallelen und zusammenführenden Berechnungsstufen die folgenden Operationen umfassen: – Kombinieren der Exponenten jeweils zu zweit, um die ihre gemeinsamen Teile wiedergebenden Exponenten kc zu erhalten und Wiederholen der Kombinationen mit dem erhaltenen Ergebnis der Kombination; – Berechnung der Größen Gkc für jeden Wert kc, wie z. B.: Gkc = gkcmodp; – Kombinieren eines Exponenten kj mit dem für die Kombination erhaltenen Exponenten kc, zu der dieser Exponent gehört, so dass die gemeinsamen Teile eliminiert werden und Beibehalten nur der unterschiedlichen Teile; – Definieren der die unterschiedlichen Teile zwischen einem vorgegebenen Exponenten kj und einem vorgegebenen Exponenten kc wiedergebenden unterschiedlichen Exponenten k, j; – Berechnen der Größen Gk,j, wie z. B.: Gk,j = gmodp; – Bestimmen der Ausdrücke Gkjmodp durch Durchführen der Multiplikationen zwischen den bei jeder Iteration erhaltenen Größen Gkc.
  5. Verfahren gemäß Anspruch 3, dadurch gekennzeichnet, dass die parallelen und zusammenführenden Berechnungsstufen die folgenden Operationen umfassen: – Kombinieren der Exponenten untereinander, so dass alle Unterstrukturen möglicher, die gemeinsamen Teile aufweisenden Exponentenkombinationen gebildet werden; – Definieren der die gemeinsamen Teile wiedergebenden Exponenten kc für jede Unterstruktur-Kombination, so dass die Bit ungleich Null mit einem vorgegebenen Gewicht den Bits ungleich Null mit demselben Gewicht der betrachteten Kombination entsprechen; – Berechnen der Größen Gkc für jeden Wert von kc, wie z. B.: Gkc = gkcmodp; – Kombinieren jedes Exponenten kj mit allen für jede Unterstruktur-Kombination erhaltenen Exponenten kc, in der dieser Exponent kj derart gehört, dass die gemeinsamen Teile eliminiert werden und nur die unterschiedlichen Teile beibehalten; – Definieren der die unterschiedlichen Teile zwischen einem vorgegebenen Exponenten kj und einem vorgegebenen Exponenten kc wiedergebenden Exponenten k'j; – Berechnen der Größen Gk,j, wie z. B.: Gk,j = gk,jmodp; – Bestimmen der Ausdrücke gkjmodp durch Durchführen einer Multiplikation zwischen den Größen G'kj und Gkc für jedes kj.
DE69633253T 1996-06-05 1996-06-05 Kryptographisches verfahren mit öffentlichem schlüssel Expired - Fee Related DE69633253T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR1996/000840 WO1997047110A1 (fr) 1996-06-05 1996-06-05 Procede de cryptographie a cle publique

Publications (2)

Publication Number Publication Date
DE69633253D1 DE69633253D1 (de) 2004-09-30
DE69633253T2 true DE69633253T2 (de) 2005-09-15

Family

ID=9488451

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69633253T Expired - Fee Related DE69633253T2 (de) 1996-06-05 1996-06-05 Kryptographisches verfahren mit öffentlichem schlüssel

Country Status (7)

Country Link
US (1) US6459791B1 (de)
EP (1) EP0909495B1 (de)
JP (1) JP2000511649A (de)
CA (1) CA2257907A1 (de)
DE (1) DE69633253T2 (de)
ES (1) ES2227595T3 (de)
WO (1) WO1997047110A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6337909B1 (en) * 1996-10-10 2002-01-08 Certicom Corp. Generation of session keys for El Gamal-like protocols from low hamming weight integers
DE19963408A1 (de) 1999-12-28 2001-08-30 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung
CA2329590C (en) * 2000-12-27 2012-06-26 Certicom Corp. Method of public key generation
JP2002247025A (ja) * 2001-02-22 2002-08-30 Hitachi Ltd 情報処理装置
FR2823327B1 (fr) * 2001-04-09 2003-08-08 Gemplus Card Int Dispositif destine a realiser des calculs d'exponentiation securisee et utilisation d'un tel dispositif
WO2003024104A1 (en) * 2001-09-13 2003-03-20 Nds Limited Hacking prevention system
US7184551B2 (en) * 2002-09-30 2007-02-27 Micron Technology, Inc. Public key cryptography using matrices
US7366302B2 (en) * 2003-08-25 2008-04-29 Sony Corporation Apparatus and method for an iterative cryptographic block
US7370202B2 (en) * 2004-11-02 2008-05-06 Voltage Security, Inc. Security device for cryptographic communications
WO2006103851A1 (ja) * 2005-03-28 2006-10-05 Matsushita Electric Industrial Co., Ltd. 冪値生成装置
US8656177B2 (en) * 2008-06-23 2014-02-18 Voltage Security, Inc. Identity-based-encryption system
CN114448611A (zh) * 2020-11-02 2022-05-06 中兴通讯股份有限公司 密钥生成方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204901A (en) * 1991-08-01 1993-04-20 General Electric Company Public key cryptographic mechanism
FR2700430B1 (fr) * 1992-12-30 1995-02-10 Jacques Stern Procédé d'authentification d'au moins un dispositif d'identification par un dispositif de vérification et dispositif pour sa mise en Óoeuvre.

Also Published As

Publication number Publication date
JP2000511649A (ja) 2000-09-05
US6459791B1 (en) 2002-10-01
CA2257907A1 (fr) 1997-12-11
EP0909495B1 (de) 2004-08-25
ES2227595T3 (es) 2005-04-01
WO1997047110A1 (fr) 1997-12-11
EP0909495A1 (de) 1999-04-21
DE69633253D1 (de) 2004-09-30

Similar Documents

Publication Publication Date Title
DE3685987T2 (de) Verfahren zum vermindern der fuer eine rsa-verschluesselung benoetigten veraenderlichen speicherkapazitaet.
DE60200496T2 (de) Verfahren und Vorrichtung zur Ausführung eines effizienten mittels Kennwort authentifizierten Schlüsselaustauschs
DE69828787T2 (de) Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung
DE68919923T2 (de) Verfahren und Vorrichtung zur Authentifizierung.
DE69826963T2 (de) Gerät für die modulare Inversion zur Sicherung von Information
DE69434422T2 (de) Verfahren und Anordnung zur Verschlüsselung/Entschlüsselung auf der Basis des Montgomery-Verfahrens unter Verwendung von effizienter modularer Multiplikation
DE2843583C2 (de) Verfahren für den zugriffsicheren Nachrichtenverkehr über einen ungesicherten Nachrichtenübertragungskanal
DE60031304T2 (de) Verfahren zur authentifizierung von softwarebenutzern
CH694601A5 (de) Verfahren zur Verifizierung der Echtheit von ausgetauschten Nachrichten.
DE69833334T2 (de) Verschlüsselungsgerät und -verfahren mit schneller entzifferung
DE69930334T2 (de) IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung
DE69633253T2 (de) Kryptographisches verfahren mit öffentlichem schlüssel
DE60215332T2 (de) System und Verfahren zum Verabreiten eines gemeinsamen Geheimnisses
CH694603A5 (de) Identifizierungsverfahren.
CH660822A5 (de) Zufallsprimzahlen-erzeugungsmittel in einer mit oeffentlichem schluessel arbeitenden daten-verschluesselungsanlage.
DE102005037598A1 (de) Verfahren und System zur Sicherung von Daten
CH711133B1 (de) Protokoll zur Signaturerzeugung
DE68904989T2 (de) Einrichtung zur abgesicherten datenkommunikation.
DE69837036T2 (de) Verfahren und vorrichtung zur ausführung einer entschlüsselung mittels einer standardisierten modularen potenzierung zum vereiteln eines zeitangriffs
DE69636772T2 (de) Auf dem diskreten logarithmus basierendes verschlüsselungsverfahren mit öffentlichem schlüssel
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
DE102008051447B9 (de) Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes
WO2003023605A2 (de) Vorrichtung und verfahren zum berechnen eines ergebnisses einer modularen exponentiation
DE60117813T2 (de) Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels
DE112018002723B4 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee
R082 Change of representative

Ref document number: 909495

Country of ref document: EP

Representative=s name: HOFFMANN - EITLE, 81925 MUENCHEN, DE