DE68921388T2 - RSA-Berechnungsverfahren zur wirkungsvollen Stapelverarbeitung. - Google Patents

RSA-Berechnungsverfahren zur wirkungsvollen Stapelverarbeitung.

Info

Publication number
DE68921388T2
DE68921388T2 DE68921388T DE68921388T DE68921388T2 DE 68921388 T2 DE68921388 T2 DE 68921388T2 DE 68921388 T DE68921388 T DE 68921388T DE 68921388 T DE68921388 T DE 68921388T DE 68921388 T2 DE68921388 T2 DE 68921388T2
Authority
DE
Germany
Prior art keywords
message data
data signal
root
roots
message
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
DE68921388T
Other languages
English (en)
Other versions
DE68921388D1 (de
Inventor
Amos Fiat
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.)
Algorithmic Research Ltd
Original Assignee
Algorithmic Research Ltd
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 Algorithmic Research Ltd filed Critical Algorithmic Research Ltd
Application granted granted Critical
Publication of DE68921388D1 publication Critical patent/DE68921388D1/de
Publication of DE68921388T2 publication Critical patent/DE68921388T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/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/302Public 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 integer factorization problem, e.g. RSA or quadratic sieve [QS] 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/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/3249Cryptographic 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 RSA or related signature schemes, e.g. Rabin scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf Verschlüsselungstechniken mit öffentlich bekanntem Schlüssel und insbesondere auf ein Verfahren zur wirkungsvollen Stapelverarbeitung von digitalen RSA-Unterschriften und Berechnungen mit geheimem Schlüssel.
  • BEZUGSPATENTE
  • Die vorliegende Erfindung benutzt Verschlüsselungskonzepte mit öffentlichem Schlüssel, wie sie in der US-Patentschrift Nr. 4'200'770 mit dem Titel "Cryptographic Apparatus and Method", W. Diffie und M. E. Heilman, 29. April 1980; US- Patentschrift Nr. 4'405'829 mit dem Titel "Cryptographic Communications System and Method", R. Rivest, A. Shamir und L. Adleman, 20. Sept. 1983; und US-Patentschrift Nr. 4'424'414 mit den Titel "Exponentiation Cryptographic Apparatus and Method", S.C. Pohlig und M.E. Hellman beschrieben sind, und welche durch Bezugnahme Teil des vorliegenden Dokumentes bilden.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Die Verschlüsselung mit öffentlichem Schlüssel bildet ein Konzept, das in den 70er Jahren entstand. Es beruht auf dem Gedanken, zur Verschlüsselung und Entschlüsselung verschiedene Schlüssel zu verwenden. Der wichtigste Punkt ist derjenige, dass die Entschlüsselung aus dem Schlüssel der Verschlüsselung analytisch nicht abgeleitet werden kann. Jeder Korrespondent des Systems mit offenem Schlüssel besitzt ein einmaliges Schlüsselpaar: einen Schlüssel zur Verschlüsselung und einen dazu passenden Schlüssel zur Entschlüsselung. Daten, die mit dem Schlüssel zur Verschlüsselung einer bestimmten Person verschlüsselt sind, können nur mit dem Schlüssel zur Entschlüsselung der gleichen Person entschlüsselt werden.
  • Daher kann jedermann seinen Schlüssel zur Verschlüsselung öffentlich bekanntgeben. Dies entspricht der Veröffentlichung von Telephonnummern im Telephonbuch. Wenn A die Übermittlung eines verschlüsselten Nachrichten-Datensignals an B wünscht, zieht der den veröffentlichten Schlüssel von B heran und verschlüsselt das Nachrichten-Datensignal unter Verwendung dieses Schlüssels. Die einzige Person, welche das verschlüsselte Nachrichten-Datensignal entziffern kann, ist B, der seinen geheimen Decodierschlüssel verwendet. Nicht einmal A kann das verschlüsselte Nachrichten- Datensignal entziffern, trotzdem er es selbst codiert hat.
  • Die Codierung mit öffentlichem Schlüssel überwindet die Verständugungsprobleme der Algorithmen zur symmetrischen Verschlüsselung aus einem hauptsächlichem Grund: Wahrend geheime Schlüssel-Information vorliegt (der Decodierschlüssel jeder Person ist geheim), braucht ein Codierschlüssel niemals den Besitzer zu wechseln. Die einzigen Informationen, die ausgetauscht werden müssen, können absolut öffentlich ausgetauscht werden.
  • Es sind bereits verschiedene unterschiedliche Algorithmen zur Codierung mit öffentlichem Schlüssel vorgeschlagen worden, von denen sich die meisten als irgendwie mathematisch fehlerhaft erwiesen haben. der einzige allgemein annehmbare Algorithmus ist der RSA-Algorithmus, der von Rivest, Shamir und Adleman (s.o.) erfunden und 1978 veröffentlicht wurde.
  • Das RSA-Verfahren verwendet einzelne "Schlüsselpaare" (Zahlenpaare) zur Codierung und Decodierung. Jeder Benutzer eines Systems auf der Grundlage von RSA besitzt sein eigenes Paar bestehend aus einem frei veröffentlichbaren Codierungsschlüssel, der mit e bezeichnet wird, und einem streng privaten Decodierungsschlüssel mir der Bezeichnung d. Der Algorithmus benutzt ebenfalls a modulo n.
  • Codierung und Decodierung umfassen Exponentialoperationen. Wenn ein normaler Text als ein Nachrichten-Datensignal x dargestellt wird, so besteht die Verschlüsselung in der Operation y = xe modulo n, welches einen Zifferntext produziert, der sich als ein Zifferncode-Nachrichten-Datensignal y darstellt.
  • Die Decodierung umfasst die Operation x = yd modulo n, wodurch x aus y wiederhergestellt wird. Die Verschlüsselung kann als eine Umwandlung des Nachrichten-Datensignals in das verschlüsselte Nachrichten-Datensignal durch Erheben des Nachrichten-Datensignals x in die ete Potenz modulo n angesehen werden. Die Entschlüsselung kann als Umformung des verschlüsselten Nachrichten-Datensignals durch Ausziehen der eten Wurzel des verschlüsselten Nachrichten- Datensignals y, modulo n, angesehen werden. Die Sicherheit dieser Verschlüsselung beruht auf der Schwierigkeit, d aus e und n zu berechnen. Die korrekte Wahl von e, d und n ist beim RSA-Algorithmus wesentlich. Der Modul n ist ein Produkt zweier Primzahlen p und q, siehe oben Rivest, Shamir und Adelman.
  • Der RSA-Algorithmus kann mit Zahlen beliebiger Grösse verwendet werden, vorausgesetzt sie sind korrekt gewählt. Je grösser n ist, desto schwieriger ist die Verschlüsselung zu knacken. Eine allgemein akzeptierte Norm ist die Verwendung von 512-Bit-Zahlen, die Dezimalzahlen mit etwa 150 Ziffern äquivalent sind. Das Aufbrechen einer 512-Bit-RSA- Zahl würde normalerweise Zehntausende von Jahren auf den zur Zeit stärksten Computern erfordern.
  • Während die Verschlüsselung eines Nachrichten-Datensignals durch RSA sicherstellt, dass nur der Empfänger in der Lage ist, es zu entschlüsseln, gibt sie dem Empfänger keine Hinweise auf die Identität des Absenders; irgend jemand, der den veröffentlichten Codierschlüssel kennt, kann das Nachrichten-Datensignal verschlüsselt haben. Oft besteht die Notwendigkeit, sowohl die Identität des Absenders eines Nachrichten-Datensignals als auch dessen Inhalt zu kennen. Ein typisches Beispiel sind Instruktionen, die einer Bank gegeben werden, um Geld von einem Konto auf ein anderes zu transferieren: Die Bank muss mit Sicherheit wissen, dass die Instruktionen von einer bevollmächtigten Person kommen und die Einzelheiten der Zahlung stimmen.
  • Der RSA-Algorithmus schafft ein elegantes Mittel zur Erfüllung dieser Anforderungen, indem der RSA-Algorithmus als digitale Unterschriften-Exponenten verwendet wird. Der Absender einer Unterschrift in Form eines unterschriebenen Nachrichten-Datensignals kann unter Verwendung seines eigenen Geheimschlüssels unterschreiben, normalerweise des Decodierschlüssels. Die Anbringung der Unterschrift unter Verwendung des eigenen Geheimschlüssels kann als Ausziehen der eten Wurzel der Unterschrift modulo n angesehen werden. Jedermann kann das unterschriebene Nachrichten-Datensignal mit Hilfe des öffentlichen Schlüssels e des Absenders überprüfen.
  • Die Überprüfung der Unterschrift, die als geprüftes Nachrichten-Datensignal vorliegt, kann als Erheben des unterzeichneten Nachrichten-Datensignals zur eten Potenz modulo n angesehen werden. Wenn diese Überprüfung das korrekte geprüfte Nachrichten-Datensignal ergibt, dann kann das Nachrichten-Datensignal nur vom berechtigten Absender gekommen sein, und sowohl der Inhalt und seine Herkunft sind authentisch. Es ist jedoch zu beachten, dass die Prüfung nun keinen Schutz gegen die Kenntnisnahme des Inhalts mehr ergibt, weil jedermann das signierte Nachrichten- Datensignal unter Verwendung des offenen Schlüsselexponenten prüfen kann.
  • AUFGABEN UND ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung ist es, ein Verfahren zur wirkungsvollen Berechnung digitaler Unterschriften durch Stapelverarbeitung anzugeben.
  • Eine weitere Aufgabe der Erfindung ist es, ein Verfahren zur wirkungsvollen Umwandlung chiffrierter Nachrichten- Datensignale und zur Erzeugung unterzeichneter Nachrichten- Datensignale durch Stapelverarbeitung zu schaffen.
  • Erfindungsgemäss wird ein kryptographisches Verfahren zur gleichzeitigen Ausführung eines RSA-Verschlüsselungsschemas mit öffentlichem Schlüssel angegeben und an Beispielen im Detail beschrieben. Unter Verwendung eines Prozessors wird an einem ersten Nachrichten-Datensignal M1 und an einem zweiten Nachrichten-Datensignal M2 die Wurzel des ersten Nachrichten-Datensignals M11/e1, welche die e1te Wurzel von M1 ist, und die Wurzel des zweiten Nachrichten-Datensignals M21/e2, die die e2te Wurzel von M2 ist, erzeugt, wobei e1 und e2 zueinander prim sind, und das Verfahren ist durch folgende Schritte gekennzeichnet:
  • Berechnung eines Exponentenprodukts e durch Multiplizieren von e1 mit e2;
  • Berechnung eines Nachrichtenproduktes M, worin M = M1(e/e1)M2(e/e2) ist;
  • Berechnung einer Stapelwurzel R, worin R = M1/e ist;
  • Berechnung einer Euklidinversion t von e2 Modulo e1; und
  • Berechnung von Re2*t/(M1((e2*t-1)/e1)M2t),
  • wodurch die Wurzel M11/e1 des ersten Nachrichten- Datensignals erhalten wird. Die vorliegende Erfindung kann darauf ausgedehnt werden, das RSA-Schema an mehreren Nachrichten-Datensignalen M1, M2, ...Mk auszuführen, wobei mehrere Wurzeln der Nachrichten-Datensignale, nämlich die e1te, e2te, ... ekte Wurzel von M1, M2, ...Mk, erzeugt werden und wobei die ei und ej für i≠j paarweise gegenseitig prim sind.
  • DETAILBESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • Es wird nun Bezug auf bevorzugte Ausführungsformen der Erfindung genommen.
  • Das Rivest-Shamir-Adleman-Schema (RSA-Schema) ist, wenn man es als Digital-Unterschriften-Schema betrachtet, auf einem grossen Zentralcomputer teuer in der Benutzung. Zur Erzeugung jeder digitalen Unterschrift ist eine vollständige Exponentenrechnung auszuführen.
  • Die vorliegende Erfindung schafft eine Abänderung des RSA- Schemas, welche eine viel wirksamere Verarbeitung gestattet, wenn die digitalen Unterschriften in Stapelverarbeitung erzeugt werden, das heisst, wenn mehrere digitale Unterschriften sofort zu erzeugen sind.
  • Das RSA-Verfahren wird normalerweise mit einem Exponenten zur Überprüfung der Unterschrift bzw. der öffentlichen Verschlüsselung e und einem dazu passenden und geheimen Unterschriften- bzw. Entschlüsselungs-Exponenten d ausgeführt. Die gesamte Arithmetik wird mit modulo einer öffentlich bekannten zusammengesetzten Zahl n ausgeführt, deren Primfaktoren p und q geheimgehalten werden.
  • Zur Unterschrift eines Nachrichten-Datensignals M wird die ete Wurzel von M ausgezogen, indem M zur dten Potenz erhoben wird. Wenn das RSA-Schema für mehrere Dokumente verwendet wird, welche identische Unterschriften benötigen, muss das Schema für jede Unterschrift einzeln aktiviert werden, so dass eine Person, die das Schema für mehrere Dokumente verwenden will, oder ein Zentralcomputer, der viele Unterschriften analysieren muss, lange und teure Computerzeiten aufwenden muss. Die vorliegende Erfindung schafft ein Verfahren zur Anwendung des RSA-Schemas zur gleichzeitigen, parallelen Unterschrift oder zur gleichzeitigen, parallelen Analyse der gleichen Unterschrift, indem die Exponentialformel nur einmal berechnet wird.
  • Bei der Verwendung des RSA-Schemas sind das Verfahren zur Decodierung eines codierten Nachrichten-Datensignals, welches eine Nachricht darstellt, und das Verfahren zur Unterschrift eines Nachrichten-Datensignals, das eine Unterschrift darstellt, die gleichen: Ausziehen der eten Wurzel des verschlüsselten Nachrichten-Datensignals bzw. des Nachrichten-Datensignals.
  • Das Verfahren zur Verschlüsselung eines Nachrichten- Datensignals, das eine Nachricht darstellt, und das Verfahren zur Überprüfung eines unterschriebenen Nachrichten- Datensignals, das eine Unterschrift darstellt, sind die gleichen: Erheben des Nachrichten-Datensignals und des Unterschriften-Nachrichten-Datensignals zur eten Potenz.
  • Das Verfahren der vorliegenden Erfindung wird in diesem Dokument unter Bezugnahme auf ein Nachrichten-Datensignal und ein verschlüsseltes Nachrichten-Datensignal beschrieben und beansprucht. Diese Definitionen schliessen ein Unterschriften-Nachrichten-Datensignal und ein geprüftes Nachrichten-Datensignal ein.
  • Üblicherweise wird der Exponent e so gewählt, dass er eine kleine Primzahl ist, z.B. 3 oder 5.
  • Es wird vorgeschlagen, eine Variante einzuführen, worin die digitale Unterschrift als gültig angesehen wird, wenn die Verschlüsselungskoeffizienten entweder 3 oder 5 oder 7 oder 11 oder eine andere kleine Primzahl sind.
  • Es werde der Fall zweier Nachrichten-Datensignale M1 und M2 betrachtet. Im RSA-Schema würde man die Wurzel M1(1/3) modulo n des ersten Nachrichten-Datensignals und die Wurzel M2(1/3) modulo n des zweiten Nachrichten-Datensignals als zwei unabhängige Operationen berechnen müssen.
  • Wenn man zulässt, dass die Wurzeln entweder die dritte oder die fünfte Wurzel sind, dann könnte man erfindungsgemäss die Wurzel des ersten Nachrichten-Datensignals als dritte Wurzel aus M1 und die Wurzel des zweiten Nachrichten- Datensignals als fünfte Wurzel aus M2 durch nur eine vollständige Potenzierung berechnen:
  • Erzeuge ein Nachrichtenprodukt M = M1&sup5;+M2³ und berechne eine Stapelwurzel R = M(1/15), was eine vollständige Potenzierung darstellt.
  • Es ist anzumerken, dass 5 und 3 zueinander prim sind, und wenn t = 5&supmin;¹ mod. 3, so ist t = 2, da 5*2 mod 3 = 10 mod 3 = 1.
  • Um eine Wurzel M1(1/3) mod n des ersten Nachrichten- Datensignals auszuziehen, verwenden wir den folgenden Algorithmus:
  • Erzeuge ein Exponentenprodukt e:
  • e = e1*e2 = 3*5 = 15.
  • Erzeuge das Nachrichtenenprodukt M:
  • M = M1 (e/e1)*M2(e/e2) (mod n) = M1(15/3)*M2(15/5) (mod n) = M1&sup5;*M2³ (mod n).
  • Erzeuge die Stapelwurzel R:
  • R = M(1/e) (mod n) = M(1/15) (mod n) = (M1&sup5;*M2³) (1/15) (mod n) = M1(1/3)*M2(1/5) (mod n).
  • Unser Ziel ist es nun, die Wurzel M1(1/3) modulo n des ersten Nachrichten-Datensignals aus der Stapelwurzel aus zuziehen:
  • Es sei t = 5(&supmin;¹) (mod 3) = 2.
  • Erzeuge R(e2*t)/(M1((e2*t-1)/e1)*M2t (mod n)
  • Beachte, dass R(5*2)/(M1((5*2-1)/3)*M2²) (mod n) = R¹&sup0;/(M1³+M2²) (mod n) = (M1(1/3)*M2(1/5))10/(M1³*M2²) (mod n) = M1(3+1/3)*M2²/(M1³*M2²) (mod n) = M1(1/3) (mod n).
  • Beachte, dass R/(M1(1/3)) (mod n) = M2(1/5) (mod n), so dass wir sowohl die Wurzel des ersten Nachrichten-Datensignals M1(1/3) (mod n) als auch die Wurzel des zweiten Nachrichten- Datensignals M2(1/5) (mod n) ausgezogen haben.
  • Das Verfahren verwendet im allgemeinen einen Prozessor zur Stapelverarbeitung der Wurzel des ersten Nachrichten- Datensignals als die e1te Wurzel eines ersten Nachrichten- Datensignals M1, als M11/e1, und die Wurzel eines zweiten Nachrichten-Datensignals M2, als M21/e2. Die Zahlen e1 und e2 sind zueinander prim. Unter Verwendung des Prozessors führt das Verfahren die folgenden Schritte aus: Berechnen eines Exponentenprodukts e durch Multiplizieren e1 mal e2, und Berechnen eines Nachrichtenproduktes M, worin M = M1(e/e1)M2(e/e2). Aus M berechnet das Verfahren eine Stapelwurzel R, worin R = M1/e. Dann wird eine Euklidinversion t von e2 modulo e1 berechnet. Die Wurzel M1(1/e1) des ersten Nachrichten-Datensignals wird aus Re2*t/(M1((e2*t-1)/e1)M2t) berechnet. Die Wurzel M2(1/e2) des zweiten Nachrichten- Datensignals wird aus R/(M11/e1) berechnet.
  • Gegeben seien M1, M2, ..., Mk mit zugehörigen Verschlüsselungsexponenten e1, e2, ..., ek, die paarweise zueinander prim sind, und das Exponentenprodukt ist e1*e2*...*ek. Unser Ziel ist es, die Wurzeln M1(1/e1), M2(1/e2) , ..., Mk(1/ek) modulo Komposit n zu ziehen. Zur Vereinfachung wollen wir annenmen, dass k eine Potenz von 2 ist; dies ist eine sehr triviale Veränderung, um den Algorithmus auf ein beliebiges k zu verallgemeinern.
  • Dies ergibt einen günstigen Vergleich mit dem Stand der Technik, welcher O(k*log(n)) Multiplikationen erfordern würde. Eine optimale Stapelgrösse von k = log (N)/loglog(n) Nachrichten, unter Verwendung der ersten k Primzahlen als Exponenten e1, ..., ek ergibt O((loglog(n))²) Multiplikationen pro Wurzel.
  • Übersicht über das Verfahren:
  • Schritt 1:
  • Berechne ein Nachrichtenprodukt M, wobei M = M1(e/e1)*M2 (e/e2)*...*Mk(e/ek). Dies geschieht in O(log(e)*log(k)) Multiplikationen, viel schneller als bisher bekannt, wo O(log(e)*k) Multiplikationen erforderlich sind.
  • Dazu wird ein Durchlauf durch die folgenden Algorithmen vorgenommen:
  • Die erste Phase:
  • Berechne M1e2, M2e1, M3e4, M4e3, M5e6, M6e5, ... M(k-1)ek, Mke(k-1). Allgemein wird M(2i-1) zur Potenz e(2i) erhoben, während M(2i) mit e(2i-1) potenziert wird.
  • Wenn M(1...2) gleich M1e2*M2e1, M(3..4) gleich M3e4*M4e3 usw. ist, so ist allgemein M((2i-1) ..2i) = M(2i-1)e(2i)*M(2i)e(2-i).
  • Die zweite Phase:
  • Nun berechnen wir M(1..2)(e3*e4), M(3..4)(e1*e2), M(5..6)(e7*e8), M(7..8)(e5*e6), ..., und berechnen M(1..4) als M(1..2)(e3*e4)*M(3..4)(e1*e2), M5(5..8) als M(5..6)(e7*e8)*M(7..8)(e5*e6), usw.
  • Allgemein ist M((4i-3)..4i) gleich M(4i-3..4i-2)(e(4i-1)*e(4i))*M(4i-1..4i)(e(4i-3)*e(4i-2).
  • Wir führen dieses Verfahren zur Erzeugung immer grösserer Produkte M(8i-7..8i) aus den vorhergehenden Produkten M(8i-7..8i-4) und M(8i-3..8i) fort. Die jte Phase ergibt allgemein Produkte der Form M((2j)*(i-1)+1..(2j)*i).
  • In jeder Phase erhalten wir Produkte, die doppelt so lang sind, wir haben also log(k) Ausdrücke. Die in jeder Phase erforderliche Anzahl von Multiplikationen ist proportional der Gesamtlänge der Exponenten in jeder Phase, welche gleich log(e1*e2*...*ek) - log(e) ist.
  • Schritt 2:
  • Das Ausziehen der eten Wurzel des in Schritt 1 berechneten Produktes erzeugt eine Stapelwurzel R, worin R = M1(1/e1)*M2(1/e2)*...*Mk(1/ek).
  • Dies erfordert einige Multiplikationen mit konstantem Faktor log(n).
  • Schritt 3:
  • Wir spalten nun die Stapelwurzel in ihre Komponenten auf. Dies erfordert ebenfalls einige Multiplikationen mit konstantem Faktor log(k)*log(e).
  • Um dieses Verfahren zu beschreiben, geben wir einen rekursiven Algorithmus an. Wir zeigen, wie man die Stapelwurzel R zieht und erzeugen ein erstes und ein zweites Subprodukt R1 bzw. R2:
  • R1 = M1(1/e1)*M2(1/e2)*...*M(k/2)e(k/2), und R2 = M(k/2+1)e(k/2+1)*M(k/2+2)*...*M(k)e(k), unter Verwendung von nur einigen Multiplikationen mit konstantem Faktor log(e). Dies ergibt eine allgemeine Lösung, da wir den Algorithmus rekursiv auf die Unterwurzeln anwenden können. Die Tiefe der Rekursion beträgt log(k), da die Rechnung beendet ist, wenn Wurzeln der Länge 1 erhalten werden. Insgesamt ergibt dies log(e)*log(k) Multiplikationen.
  • Man betrachte den Exponenten X, definiert mittels des Theorems des chinesischen Restes.
  • X ist definiertermassen modulo e, da alle e(i) paarweise zueinander prim sind.
  • E1 sei das Produkt der ersten k/2 Verschlüsselungsexponenten e1, e2, ..., e(k/2). E2 sei e/E1.
  • Es ist zu beachten, dass E1 X (X = F1*E1) für einige oganze Zahlen F1 teilt. Auf ähnliche Weise teilt E2 X-1 (X-1 = F2*E1) für einige ganze Zahlen F2.
  • Nun ist RX = (R1*R2)X = R1X*R2X.
  • R1X = R1(F1*E1) = (R1E1)F1,
  • R2X = R2(X-1)*R2 = (R2E2)F2*R2.
  • Wir haben jedoch schon bei der Berechnung des Nachrichtenproduktes M die Ausdrücke (R1E1) und (R2E2) berechnet.
  • R1E1 = M1(E1/e1)*M2(E1/e2)*...*M(k/2)(E1/e(k/2), was als Zwischenresultat der Berechnung anfällt, wenn M berechnet wird.
  • Ähnlich ist R2E2 = M(k/2+1)(E2/e(k/2+1))*M(k/2+2)(E2/e(k/2+2))*...*Mk(E2/ek) schon als Zwischenresultat beim Berechnen von M aufgetreten.
  • Um also R1 und R2 auszuziehen, berechnen wir RX/((R1E1)F1*(R2E2)F2) = R2, R/R2 = R1. Die Anzahl der Multiplikationen ist proportional log(X) + log(F1) + log(F2).
  • Die vorstehenden Algorithmen können als schnelles Verfahren zum Ausziehen mehrfacher Wurzeln aus multiplen Nachrichten- Datensignalen oder mehrfacher Wurzeln aus dem gleichen Nachrichten-Datensignal verwendet werden. Es sei das folgende Beispiel gegeben:
  • Unter Verwendung des RSA-Algorithmus sei p = 53 und q = 61, wobei n = 53 * 61 = 3233. Mit d = 791 erhalten wir e = 71. Um das Nachrichten-Datensignal M = RENAISSANCE zu verschlüsseln, wird es in Blöcke von je 4 Digits aufgeteilt, worin A = 00, B = 01, ..., Z = 25, Leerstelle = 26. Die Volltextnachricht ist
  • Der erste Block der Klartextnachricht wird als 1704&sup7;¹ = 3106 (mod 3233) kodiert. Die gesamte Klartextnachricht wird als
  • C = 3106 0100 0931 2691 1984 2927 verschlüsselt.
  • Das Verfahren der vorliegenden Erfindung kann zur Dechiffrierung des gesamten chiffrierten Nachrichten-Datensignals C in einer Stapelwurzel verwendet werden. Diese Stapelprodukt-Wurzel hat den Vorteil einer grösseren Geschwindigkeit im Vergleich mit dem Ausziehen von Mehrfachwurzeln, die im vorliegenden Beispiel sechs Wurzeln wären.
  • Die Ansprüche der vorliegenden Erfindung benutzen den Begriff "Nachrichten-Datensignal". Dieser Begriff bedeutet im weitesten Sinne irgendein Signal, auf das die vorliegende Erfindung angewandt werden kann. Die vorliegende Erfindung umfasst die Verwendung eines variablen Exponenten zur Chiffrierung und zur Prüfung der Unterschrift in einem RSA- ähnlichen Schema; eine Stapelverarbeitung der Unterschrift und der Verschlüsselung für ein RSA-ähnliches Schema; ein beliebiges Unterschriftenschema oder Verschlüsselungschema mit öffentlichem Schlüssel, welches nur Polylog (n)- Multiplikationen benötigt, worin n ein Parameter ist; die Erfindung ist darauf jedoch nicht beschränkt.
  • Dem Fachmann ist klar, dass die vorliegende Erfindung nicht darauf beschränkt ist, was in diesem Dokument im besonderen gezeigt und beschrieben wurde. Der Umfang der vorliegenden Erfindung ist nur durch die folgenden Patentansprüche definiert.

Claims (6)

1. Kryptographisches Verfahren unter Verwendung eines Prozessors zur gleichzeitigen Ausführung eines RSA- ähnlichen Verschlüsselungsschemas mit öffentlichem Schlüssel an einem ersten Nachrichten-Datensignal M1 und einem zweiten Nachrichten-Datensignal M2, worin eine Wurzel des ersten Nachrichten-Datensignals M11/e1, welche die e1te Wurzel aus M1 ist, und eine Wurzel des zweiten Nachrichten- Darensignals M21/e2, welche die e2te Wurzel aus M2 ist, erzeugt werden, worin e1 und e2 jeweils Primzahlen sind, und wobei das Verfahren die folgenden Schritte umfasst:
Berechnung eines Exponentenprodukts e durch Multiplizieren von e1 mit e2;
Berechnung eines Nachrichtenproduktes M, worin M = M1(e/e1)M2(e/e2) ist;
Berechnung einer Stapelwurzel R, worin R = M1/e ist;
Berechnung einer Euklidinversion t von e2 Modulo e1; und
Berechnung von Re2*t/ (M1((e2*t&submin;1)/e1)M2t),
wodurch die erste Nachrichten-Datensignalwurzel M11/e1 erhalten wird.
2. Verfahren nach Anspruch 1, worin bei der Ausführung des Schrittes zur Berechnung des Nachrichtenproduktes M die Berechnung
M = M(e/e1+e/e2) ausgeführt wird, wenn das erste Nachrichten-Datensignal mit dem zweiten Nachrichten-Datensignal identisch ist, also M1 = M2.
3. Kryptographisches Verfahren unter Verwendung eines Prozessors zur gleichzeitigen Ausführung eines RSA- ähnlichen Verschlüsselungsschemas mit öffentlichem Schlüssel an mehreren Nachrichten-Datensignalen M1, M2, ... Mk, wobei zugehörige Nachrichten-Datensignal-Wurzeln erzeugt werden, welche jeweils die e1te, e2te, ..., ekte Wurzel von M1, M2, ... Mk sind, worin die ei und die ej für i≠j paarweise zueinander prim sind, wobei das Verfahren folgende Schritte umfasst:
Berechnung eines Exponentenproduktes e durch Multiplizieren von e1*e2*...*ek,
Berechnung eines Nachrichtenproduktes M, worin M = M1(e/e1(M2(e/e2)*...*Mk(e/ek) ist;
Berechnung einer Stapelwurzel R, worin R = M1/e ist;
Aufspaltung der Stapelwurzel R in Subprodukte; und
Ausziehen der Nachrichten-Datensignalwurzeln als die e1te, e2te, ..., ekte Wurzeln der Nachrichten-Daten- Signale M1, M2, ..., Mk aus diesen Subprodukten.
4. Kryptographisches Verfahren unter Verwendung eines Prozessors zur gleichzeitigen Bestimmung einer Mehrzahl von Wurzeln e1, e2, ..., en eines einzelnen Nachrichten- Datensignals M1 in Übereinstimmung mit einem RSA-ähnlichen Verschlüsselungsschema mit öffentlichem Schlüssel, worin die Wurzeln ei und ej für i≠j paarweise relativ prim sind, umfassend die folgenden Schritte:
Berechnung eines Exponentenprodukts e durch Multiplizeiren von e1*e2*...*ek;
Berechnung eines Nachrichtenproduktes M, worin
M = M1(e/e1+e/e2+...+e/ek);
Berechnung einer Stapelwurzel R, worin R = M1/e;
Aufspaltung der Stapelproduktwurzel R in Subprodukte; und
Ausziehen der Wurzeln aus dem Nachrichten-Datensignal M1 dieser Subprodukte.
5. Vorrichtung zur gleichzeitigen Ausführung eines RSA- ähnlichen Verschlüsselungsschemas mit öffentlichem Schlüssel an einer Mehrzahl von Nachrichten-Datensignal-Wurzeln als e1te, e2te, ...ekte Wurzeln für eine Mehrzahl von zugehörigen Nachrichten-Datensignalen M1, M2, ...Mk, wobei die ei und ej für i≠j paarweise relativ prim sind, enthaltend:
einen Prozessor zur Ausführung der Berechnungen;
Exponentenmittel, die auf die Wurzeln e1, e2, ...ek ansprechen, zur Berechnung eines Exponentenproduktes e durch Multiplizieren von e1*e2*...*ek;
Nachrichtenmittel, die auf die Nachrichten- Datensignale M1, M2, ...Mk ansprechen, zur Berechnung eines Nachrichtenproduktes M, worin
M = M1(e/e1)M2(e/e2)*...*Mk(e/ek);
Mittel zum Ausziehen einer Stapelwurzel R, die mit den genannten Exponentenmitteln und Nachrichtenmitteln gekoppelt sind, wobei
R = M1/e; und
mit den genannten Ausziehmitteln gekoppelte Mittel zur Aufspaltung der Stapelwurzel R in Subprodukte und Ausziehen der Wurzeln der Nachrichten-Datensignale als die e1te, e2te, ...ekte Wurzeln der Nachrichten-Datensignale M1, M2, ...Mk aus den genannten Subprodukten.
6. Vorrichtung zur gleichzeitigen Ausführung eines RSA- ähnlichen Verschlüsselungsschemas mit öffentlichem Schlüssel an einer Mehrzahl von Wurzeln e1, e2, ...ek für ein eizelnes Nachrichten-Datensignal M1, wobei die ei und ej für i≠j paarweise relativ prim sind, enthaltend
einen Prozessor zur Ausführung von Berechnungen,
Exponentenmittel, die auf die Wurzeln e1, e2, ...ek ansprechen, zur Berechnung eines Exponentenproduktes e durch Multiplizieren von e1*e2*...*ek;
Nachrichtenmittel, die auf das Nachrichten- Datensignal M1 ansprechen, zur Berechnung eines Nachrichtenproduktes M, worin
M = M1(e/e1+e/e2+...+e/ek);
Mittel zum Ausziehen einer Stapelwurzel R, die mit den genannten Exponentenmitteln und Nachrichtenmitteln gekoppelt sind, wobei
R = M1/e; und
mit den genannten Ausziehmitteln gekoppelte Mittel zur Aufspaltung der Stapelwurzel R in Subprodukte und Ausziehen der Wurzeln der Nachrichten-Datensignale als die e1te, e2te, ...ekte Wurzel des Nachrichten-Datensignals M1 aus den genannten Subprodukten.
DE68921388T 1988-08-24 1989-08-16 RSA-Berechnungsverfahren zur wirkungsvollen Stapelverarbeitung. Expired - Fee Related DE68921388T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IL87549A IL87549A0 (en) 1988-08-24 1988-08-24 Rsa computation method for efficient batch processing

Publications (2)

Publication Number Publication Date
DE68921388D1 DE68921388D1 (de) 1995-04-06
DE68921388T2 true DE68921388T2 (de) 1995-06-29

Family

ID=11059186

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68921388T Expired - Fee Related DE68921388T2 (de) 1988-08-24 1989-08-16 RSA-Berechnungsverfahren zur wirkungsvollen Stapelverarbeitung.

Country Status (3)

Country Link
EP (1) EP0356127B1 (de)
DE (1) DE68921388T2 (de)
IL (1) IL87549A0 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10055328A1 (de) * 2000-11-08 2002-05-16 Orga Kartensysteme Gmbh Bereitstellung von Daten in einem Mobilfunkendgerät

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148479A (en) * 1991-03-20 1992-09-15 International Business Machines Corp. Authentication protocols in communication networks
NL9102144A (nl) * 1991-12-20 1993-07-16 Nederlanden Staat Werkwijze en stelsel voor het groepsgewijs waarmerken van digitale gegevens.
US5347581A (en) * 1993-09-15 1994-09-13 Gemplus Developpement Verification process for a communication system
ES2217959B1 (es) * 2003-02-14 2006-02-01 Consejo Sup. Investig. Cientificas Procedimiento y dispositivo de encriptacion mediante un criptosistema tipo rsa.

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10055328A1 (de) * 2000-11-08 2002-05-16 Orga Kartensysteme Gmbh Bereitstellung von Daten in einem Mobilfunkendgerät
DE10055328B4 (de) * 2000-11-08 2007-11-22 Sagem Orga Gmbh Bereitstellung von Daten in einem Mobilfunkendgerät

Also Published As

Publication number Publication date
EP0356127A3 (de) 1991-12-11
EP0356127B1 (de) 1995-03-01
IL87549A0 (en) 1989-01-31
DE68921388D1 (de) 1995-04-06
EP0356127A2 (de) 1990-02-28

Similar Documents

Publication Publication Date Title
DE2843583C2 (de) Verfahren für den zugriffsicheren Nachrichtenverkehr über einen ungesicherten Nachrichtenübertragungskanal
US4964164A (en) RSA computation method for efficient batch processing
DE3685987T2 (de) Verfahren zum vermindern der fuer eine rsa-verschluesselung benoetigten veraenderlichen speicherkapazitaet.
Fiat Batch rsa
DE69828787T2 (de) Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung
DE69935469T2 (de) Verfahren zur schnellen Ausführung einer Entschlüsselung oder einer Authentifizierung
DE69903854T2 (de) Verfahren zur beschleunigung kryptographischer operationen auf elliptischen kurven
DE60001630T2 (de) Sichere gegenseitige Netzwerkauthenifizierung und Schlüselaustauschprotokoll
DE19804054B4 (de) System zur Verifizierung von Datenkarten
DE69520714T2 (de) Verfahren und Vorrichtung zum sicheren elektronischen Abstimmen
DE60200496T2 (de) Verfahren und Vorrichtung zur Ausführung eines effizienten mittels Kennwort authentifizierten Schlüsselaustauschs
DE69828150T2 (de) Vom Rechenaufwand her effizientes modulares Multiplikationsverfahren und Gerät
DE102006022960B9 (de) Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt
DE60119620T2 (de) Verfahren zur Skalarmultiplikation auf einer elliptischen Kurve und entsprechende Vorrichtung
DE112018000215T5 (de) Sichere private Postquanten-Stream-Aggregation
DE60026868T2 (de) Ein einfaches implementierungsverfahren für kryptographische primitiva mittels elementar-register-operationen
DE102010002241B4 (de) Vorrichtung und Verfahren zur effizienten einseitigen Authentifizierung
DE69935455T2 (de) Kryptographisches verfahren unter verwendung eines öffentlichen und eines privaten schlüssels
EP1922837B1 (de) Verfahren zum sicheren ver- oder entschlüsseln einer nachricht
DE10024325B4 (de) Kryptographisches Verfahren und kryptographische Vorrichtung
DE10143728A1 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
EP1346509B1 (de) Verfahren und Vorrichtung zum Ermitteln eines Schlüsselpaars und zum Erzeugen von RSA-Sclüsseln
DE60105449T2 (de) Verfahren zur Steigerung der Sicherheit eines Verschlüsselungsverfahrens mit öffentlichen Schlüsseln
DE60117813T2 (de) Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels

Legal Events

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