DE69833334T2 - Verschlüsselungsgerät und -verfahren mit schneller entzifferung - Google Patents

Verschlüsselungsgerät und -verfahren mit schneller entzifferung Download PDF

Info

Publication number
DE69833334T2
DE69833334T2 DE69833334T DE69833334T DE69833334T2 DE 69833334 T2 DE69833334 T2 DE 69833334T2 DE 69833334 T DE69833334 T DE 69833334T DE 69833334 T DE69833334 T DE 69833334T DE 69833334 T2 DE69833334 T2 DE 69833334T2
Authority
DE
Germany
Prior art keywords
value
computer
message
function
random numbers
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 - Lifetime
Application number
DE69833334T
Other languages
English (en)
Other versions
DE69833334D1 (de
Inventor
Wei Bellevue DAI
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE69833334D1 publication Critical patent/DE69833334D1/de
Application granted granted Critical
Publication of DE69833334T2 publication Critical patent/DE69833334T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/3239Cryptographic 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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Description

  • Technisches Gebiet
  • Die Erfindung betrifft Verschlüsselungssysteme, Computer und computerimplementierte Verfahren zum Durchführen von Verschlüsselungs- und Entschlüsselungsoperationen. Insbesondere betrifft die Erfindung ein Verschlüsselungssystem, das die Geschwindigkeit verbessert, mit der Entschlüsselungsoperationen durchgeführt werden.
  • Hintergrund der Erfindung
  • Verschlüsselung mit öffentlichen Schlüsseln ist ein weit verbreiteter Ansatz zum sicheren Übermitteln von Nachrichten über einen sonst unsicheren Kommunikationskanal. Verschlüsselung mit öffentlichen Schlüsseln verwendet asymmetrische Schlüsselpaare. Ein „asymmetrisches" Verschlüsselungsschlüsselpaar besteht aus zwei einzelnen Schlüsseln, einem ersten Schlüssel zum Manipulieren der Daten auf eine Art und einem zweiten Schlüssel zum Konvertieren der manipulierten Daten zurück in ihre ursprüngliche Form. Die Schlüssel beruhen auf einer mathematischen Beziehung, bei der ein Schlüssel nicht (zumindest nicht in einer vernünftigen Zeitspanne) aus dem anderen Schlüssel berechnet werden kann.
  • Verschlüsselungsschlüsselpaare können für verschiedene Funktionen, wie beispielsweise Verschlüsselung, Entschlüsselung, digitales Signieren, Verifikation der Signatur und Authentifikation genutzt werden. Als ein Beispiel kann Verschlüsselung und Entschlüsselung unter Verwendung eines asymmetrischen Schlüsselpaars wie folgt repräsentiert werden: EKpub(M) = C DKpri(C) = Mwobei „EKpub" eine Verschlüsselungsfunktion ist, die einen öffentlichen Verschlüsselungsschlüssel „Kpub" zum Verschlüsseln einer Klartextnachricht „M" in einen chiffrierten Text „C" verwendet, und „DKpri" eine Entschlüsselungsfunktion ist, die einen privaten Entschlüsselungsschlüssel „Kpri" verwendet. Das Umgekehrte trifft insoweit ebenso zu, dass eine Nachricht unter Verwendung des privaten Schlüssels „signiert" werden kann und die Signatur unter Verwendung des öffentlichen Schlüssels verifiziert werden kann.
  • In einem System mit öffentlichen Schlüsseln wird der öffentliche Schlüssel an Dritte verteilt und der private Schlüssel vertraulich gehalten. Die asymmetrischen öffentlichen und privaten Schlüssel stellen zwei Resultate sicher. Erstens kann lediglich der Besitzer des privaten Schlüssels eine Nachricht, die mit dem entsprechenden öffentlichen Schlüssel verschlüsselt ist, entschlüsseln. Zweitens kann, falls ein Dritter eine Nachricht unter Verwendung des öffentlichen Schlüssels entschlüsselt, dieser Dritte sicherstellen, dass die Nachricht durch den privaten Schlüssel verschlüsselt wurde und daher höchstwahrscheinlich von dem Besitzer des privaten Schlüssels erzeugt wurde.
  • Eines der bekanntesten und am weitesten verbreiteten asymmetrischen Chiffren ist die RSA-Verschlüsselungs-Chiffre, die nach ihren Erschaffern Rivest, Shamir und Adleman benannt ist. Das ursprüngliche RSA-Verschlüsselungssystem ist in dem US-Patent 4,405,829 mit dem Titel „Cryptographic Communications System and Method" beschrieben, das am 20. September 1983 im Namen von Rivest, Shamir und Adleman angemeldet wurde.
  • Anderer Stand der Technik umfasst: „Advances in Cryptography, 17th Annual International Cryptography Conference Proceedings, Seite 372 bis 384 'Fast-RSA-Type Cryptosystems Using N-Adic Expansion" von Tsuyoshi Takagi, das am 17. August 1997 veröffentlicht wurde und zwei RSA-Verschlüsselungssysteme offenbart, die nadische Erweiterungen darstellen, wobei n der öffentliche Schlüssel ist.
  • Ein weiteres Dokument aus dem Stand der Technik ist „Electronics Letters, Jahrgang 18, Nr. 21, Seite 905 bis 907 'Fast Decipherment Algorithm for RSA Public-Key Cryptosystem" von J-J Quisquater und C. Couvreur, das am 27. August 1982 veröffentlicht wurde und ein Verfahren offenbart, das einen schnellen Algorithmus zum Entschlüsseln von Kryptogrammen verwendet, die das von Rivest, Shamir und Adleman vorgeschlagenen Verschlüsselungssystem mit öffentlichen Schlüsseln, wie in der zuvor erwähnten US 4,405,829 offenbart, involvieren. Das Verfahren basiert auf dem chinesischen Restsatz („Chinese remainder theorem") und verbesserten modularen Multiplikationsalgorithmen.
  • Die RSA-Chiffre zum Verschlüsseln und Entschlüsseln ist wie folgt gegeben:
    RSA-Verschlüsselung: C = Me mod n
    RSA-Entschlüsselung:
    Figure 00030001

    wobei p1 und p2 Primzahlen sind, n eine zusammengesetzte Zahl der Form n = p1 p2 und e eine zu (p1 – 1)(p2 – 1) teilerfremde Zahl ist.
  • Die Operation „mod" ist eine „modulare Reduktions"-Operation oder einfach „modulo"-Operation, die eine übliche Operation für Arithmetik mit großen Zahlen ist. Die Modulo-Operation ist eine arithmetische Operation, dessen Ergebnis der Rest einer Divisionsoperation ist. Sie wird als „A mod B" ausgedrückt, wobei A eine in einer Basis geschriebene Zahl und B der „Modulus" ist. Das Ergebnis von A mod B ist der Rest der Zahl A dividiert durch den Modulus B. Als ein einfaches Beispiel liefert die Modulo-Operation 17 mod 3 ein Ergebnis von 2, da 17 geteilt durch 3 einen Rest von 2 liefert. Da sie einen Rest erzeugt, wird die Modulo-Operation oft alternativ als die „Divisionsrest"-Operation bezeichnet.
  • Mit der konventionellen RSA-Verschlüsselung ist die Entschlüsselung bedeutend langsamer als die Verschlüsselung. Diese Abweichung liegt an der Tatsache, dass die RSA-Chiffre zum Entschlüsseln einer Nachricht mehr Berechnungen benötigt als für die Verschlüsslung derselben Nachricht notwendig sind. Die Abweichung kann nachteilig in bestimmten Umgebungen sein. Beispielsweise in einem Client-Server-Kontext tauschen die Clients und Server oft verschlüsselte Nachrichten untereinander aus. Einzelne Clients erfreuen sich oft an reichlich Zeit und Ressourcen zum Verschlüsseln einer Nachricht. Bedauerlicherweise erfährt der Server derartigen Luxus nicht und kann gelegentlich in seinen Fähigkeiten des raschen Entschlüsselns ankommender Nachrichten besonders während Zeiten mit hoher Anfragemenge von Clients beschränkt sein.
  • Dementsprechend ist eine Notwendigkeit der Verbesserung der Geschwindigkeit der Entschlüsselung in dem RSA-Algorithmus gegeben.
  • Zusammenfassung der Erfindung
  • Die Erfindung betrifft ein Verschlüsselungssystem und ein Verfahren, das die Entschlüsselungsgeschwindigkeit in der RSA-Chiffre verbessert. Das Verschlüsselungssystem verwendet eine neue Familie von Falltürpermutationen („trap door permutations"), die auf eine Potenzierung in Untergruppen von Zn + basiert.
  • In einem ersten Aspekt der Erfindung gibt es ein Verfahren zum Senden von Nachrichten über ein Netzwerk zwischen ersten und zweiten Recheneinheiten, wobei das Verfahren die folgenden Schritte umfasst: (a) das Verschlüsseln einer Nachricht M in einen chiffrierten Text C bei der ersten Recheneinheit, wobei der chiffrierte Text C einen Wert V und einen Wert W umfasst, wie folgt: (1) der Wert V ist eine Funktion einer Zahl x derart, dass V = xe, wobei e eine ganze Zahl ist und x sich wie folgt ergibt: x = gR mod n,wobei:
    n eine Zahl n = p1p2 ist, wobei p1 und p2 Primzahlen mit p1 = r1q1 + 1 und p2 = r2q2 + 1 sind, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind, R eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist und g eine Zahl der Form
    Figure 00040001
    st, wobei r3 eine unabhängig von den Zufallszahlen r1, r2 und R gewählte Zufallszahl ist, und (2) der Wert W ist eine Funktion eines Wertes h(x) und der Nachricht M, wobei der Wert h(x) ein Ergebnis einer Einwegfunktion der Zahl x ist, (b) das Senden des chiffrierten Textes C von der ersten Recheneinheit zu der zweiten Recheneinheit und (c) das Entschlüsseln des chiffrierten Textes C bei der zweiten Recheneinheit zum Nachbilden der Nachricht M, wobei M eine Funktion des Wertes W und des Wertes h(x) ist und x von
    Figure 00040002
    bgeleitet ist.
  • In einem zweiten Aspekt der Erfindung gibt es ein computerimplementiertes Verfahren zum Verschlüsseln einer Nachricht M in einen chiffrierten Text C, worin: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind und g eine Zahl der Form
    Figure 00040003
    st, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, wobei das computerimplementierte Verfahren die folgenden Schritte umfasst: Berechnen einer Zahl x = gR mod n, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, Um formen der Zahl x gemäß einer Einwegfunktion h zum Ergeben eines Wertes h(x) und Kodieren der Nachricht M gemäß einer Funktion des Wertes h(x).
  • In einem dritten Aspekt der Erfindung gibt es ein computerimplementiertes Verfahren zum Entschlüsseln von chiffriertem Text C zum Nachbilden einer Nachricht M, worin: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind, g eine Zahl der Form
    Figure 00050001
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, x eine Zahl der Form x = gR mod n ist, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, e eine ganze Zahl ist und V ein Wert der Form V = xe ist, wobei das computerimplementierte Verfahren die folgenden Schritte umfasst: Wiedererlangen der Zahl x aus dem Wert V, wobei
    Figure 00050002
    Umwandeln der Zahl x gemäß einer Einwegfunktion h zum Ergeben eines Wertes h(x) und Dekodieren des chiffrierten Textes C gemäß einer Funktion des Wertes h(x) zum Wiedererfassen der Nachricht M.
  • In einem vierten Aspekt der Erfindung gibt es ein Computerprogramm oder ein Satz von Computerprogrammen, die derart ausgeführt sind, dass beim Ausführen durch einen Computer es/sie den Computer zum Durchführen des Verfahrens nach einem der vorangehenden Ansprüche steuert/steuern.
  • In einem fünften Aspekt der Erfindung gibt es ein System zum Senden von Nachrichten über einen Kommunikationskanal, umfassend: einen Kodierer zum Umformen einer Nachricht M in chiffrierten Text C und Übertragen des chiffrierten Textes C über den Kommunikationskanal, wobei der chiffrierte Text C einen Wert V und einen Wert W umfasst, wie folgt: (1) Der Wert V ist eine Funktion einer Zahl x derart, dass V = xe, wobei e eine ganze Zahl ist und sich wie folgt ergibt: x = gR mod n, wobei:(i) n eine Zahl n = p1p2 ist, wobei p1 und p2 Primzahlen mit p1 = r1q1 + 1 und p2 = r2q2 + 1 ist, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind, (ii) R eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist und (iii) g eine Zahl der Form
    Figure 00050003
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1, r2 und R gewählte Zufallszahl ist und (2) Der Wert W ist eine Funktion eines Wertes h(x) und der Nachricht M, wobei der Wert h(x) ein Ergebnis einer Einwegfunktion der Zahl x ist und einen Dekodierer, der zum Empfangen des chiffrierten Textes C und des Wertes V aus dem Kommunikationskanal und zum Umwandeln des chiffrierten Textes C zurück in die Nachricht M verbunden ist, wobei M eine Funktion des Wertes W und des Wertes h(x) ist und x als
    Figure 00060001
    abgeleitet wird.
  • In einem sechsten Aspekt der Erfindung gibt es einen Kodierer für ein Verschlüsselungssystem, wobei: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind und g eine Zahl der Form
    Figure 00060002
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, wobei der Kodierer umfasst: Mittel zum Berechnen einer Zahl x = gR mod n, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 ausgewählte Zufallszahl ist, Mittel zum Umformen der Zahl x gemäß einer Einwegfunktion h zum Ergeben eines Wertes h(x) und Mittel zum Kodieren einer Nachricht M gemäß einer Funktion des Wertes h(x).
  • In einem siebten Aspekt der Erfindung gibt es einen Dekodierer für ein Verschlüsselungssystem, wobei: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind, g eine Zahl der Form
    Figure 00060003
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, x eine Zahl der Form x = gR mod n ist, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, e eine ganze Zahl ist, V ein Wert der Form V = xe ist und W ein aus einer Funktion einer Nachricht M und eines Wertes h(x) abgeleiteter Wert ist, wobei h(x) ein Ergebnis einer Einwegfunktion h ist, wobei der Dekodierer umfasst: Mittel zum Empfangen der Werte V und W, Mittel zum Wiedererlangen der Zahl x aus dem Wert V wobei
    Figure 00060004
    , Mittel zum Umformen der Zahl x gemäß einer Einwegfunktion h zum Ergeben des Wertes h(x) und Mittel zum Dekodieren des Wertes W gemäß einer Funktion des Wertes h(x) zum Wiedererfassen der Nachricht M.
  • In einem achten Aspekt der Erfindung gibt es ein computerlesbares Medium mit computerausführbaren Anweisungen, die einen Computer zum Verschlüsseln einer Nachricht M in einen chiffrierten Text C veranlassen, wobei n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind und g eine Zahl der Form
    Figure 00070001
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, wobei das computerlesbare Medium umfasst: computerausführbare Anweisungen, die einen Computer zum Berechnen einer Zahl x = gR mod n veranlassen, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, computerlesbare Anweisungen, die einen Computer zum Umformen der Zahl x gemäß einer Einwegfunktion h zum Ergeben eines Wertes h(x) veranlassen, und computerausführbare Anweisungen, die einen Computer zum Kodieren einer Nachricht M gemäß einer Funktion des Wertes h(x) veranlassen.
  • In einem neunten Aspekt der Erfindung gibt es ein computerlesbares Medium mit computerausführbaren Anweisungen, die einen Computer zum Entschlüsseln von chiffriertem Text C zum Wiedererlangen einer Nachricht M veranlassen, wobei: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind und g eine Zahl der Form
    Figure 00070002
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, x eine Zahl der Form x = gR mod n ist, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, e eine ganze Zahl ist und V ein Wert der Form V = xe ist, wobei das computerlesbare Medium umfasst: computerausführbare Anweisungen, die einen Computer zum Wiedererlangen der Zahl x aus dem Wert V veranlasst, wobei
    Figure 00070003
    computerausführbare Anweisungen, die einen Computer zum Umformen der Zahl x gemäß einer Einwegfunktion h zum Ergeben von h(x) veranlassen, und computerausführbare Anweisungen, die einen Computer zum Dekodieren des chiffrierten Textes C gemäß einer Funktion h(x) zum Wiedererfassen der Nachricht M veranlasst.
  • Auf etliche bevorzugte und vorteilhafte Merkmale wird in den abhängigen Patentansprüchen Bezug genommen.
  • Das in der Beschreibung offenbarte System umfasst einen Kodierer zum Umsetzen einer Nachricht M in einen chiffrierten Text C und zum Übermitteln des chiffrierten Textes C über einen Kommunikationskanal. Der chiffrierte Text weist zwei Komponenten auf, einen Wert V und einen Wert W. Der Wert V ist eine Funktion einer Zahl x oder V = xe, wobei e eine ganze Zahl ist und x wie folgt ist: x = gR mod n, wobei:
    • (i) n eine Zahl n = p1p2 ist, wobei p1 und p2 Primzahlen sind mit p1 = r1q1 + 1 und p2 = r2q2= r2q2 + 1, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind,
    • (ii) R eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist und
    • (iii) g eine Zahl der Form
      Figure 00080001
      ist, wobei r3 eine unabhängig von den Zufallszahlen r1, r2 und R gewählte Zufallszahl ist.
  • Der Wert W wird als eine Funktion eines Wertes h1(x) und der Nachricht M (beispielsweise h1(x) ⊕ M), kodiert, wobei der Wert h1(x) eine Einwegfunktion einer Zahl x (beispielsweise eine Hashfunktion von x) ist.
  • Der in der Beschreibung offenbarte Kodierer berechnet ebenso einen Hashwert h2(x, M) unter Verwendung einer Hashfunktion h des Wertes x und der Nachricht M. Der Kodierer sendet den chiffrierten Text C (umfassend die Werte V und W) und den Hashwert h2(x, M) über den Kommunikationskanal.
  • Das in der Beschreibung offenbarte System umfasst ferner einen Dekodierer, der zum Empfangen des chiffrierten Textes C und des Hashwerts h2(x, M) aus dem Kommunikationskanal und zum Umformen des chiffrierten Textes C zurück in die Nachricht M verbunden ist. Der Dekodierer leitet zuerst die Zahl x aus dem Wert V wie folgt ab
    Figure 00080002
    . Der Dekodierer dekodiert dann die Nachricht M unter Verwendung einer Funktion des Wertes W und des Wertes h1(x) (beispielsweise W ⊕ h1(x)). Nach dem Wiedererlangen der Nachricht M berechnet der Dekodierer einen Test-Hashwert h2'(x, M) aus der Zahl x und der wiedererlangten Nachricht M und vergleicht den Test-Hashwert h2'(x, M) mit dem von dem Kodierer empfangenen Hashwert h2(x, M). Falls die beiden Hashwerte übereinstimmen, wurde die Nachricht M nicht verändert.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm eines Verschlüsselungssystems.
  • 2 ist ein Bockdiagramm eines Computersystems, das das Verschlüsselungssystem implementiert.
  • 3 ist ein Flussdiagramm, das die Schritte in einem Verfahren zum Verschlüsseln und Entschlüsseln einer Nachricht zeigt.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform
  • Die folgende Erörterung geht davon aus, dass der Leser mit Verschlüsselungstechniken und Modulo-Operationen vertraut ist. Für eine grundlegende Einführung in die Kryptografie sei der Leser auf einen von Bruce Schneier geschriebenen Text mit dem Titel „Applied Cryptography: Protocols, Algorithms, and Source Code in C", zweite Auflage, veröffentlicht durch John Wiley & Sons mit Copyright von 1996, verwiesen.
  • 1 zeigt ein Verschlüsselungssystem 20 mit einem Kodierer 22, der über einen Kommunikationskanal 26 mit einem Dekodierer 24 verbunden ist. Das Verschlüsselungssystem 20 verwendet eine asymmetrische Verschlüsselungs-Chiffre, die auf dem RSA-Algorithmus basiert. Insbesondere ist das bevorzugte System ein Bellare-Rogaway-Verschlüsselungssystem, das die Familie von RSA-Falltürpermutation verwendet.
  • Im Allgemeinen verwendet die Verschlüsselungs-Chiffre einen privaten Schlüssel, der aus vier Primzahlen p1, p2, q1 und q2 besteht. Die Primzahlen stehen wie folgt in Beziehung: p1 = r1q1 + 1 p2 = r2q2 + 1,wobei r1 und r2 Zufallszahlen sind, die von einer Notwendigkeit abhängig sind, dass ihre Werte in den obigen Gleichungen die Primzahlen p1 und p2 ergeben.
  • Ein öffentlicher Schlüssel wird aus dem privaten Schlüssel erzeugt. Der öffentliche Schlüssel besteht aus drei Zahlen n, e und g. Die Zahl e ist eine ganze Zahl und die Zahlen n und g werden wie folgt berechnet:
    Figure 00100001
    wobei r3 eine Zufallszahl ist, die unabhängig von den Zufallszahlen r1 und r2 gewählt ist. Die Zufallszahl r3 wird höchstwahrscheinlich verschieden von den Zufallszahlen r1 und r2 sein, obwohl dies nicht notwendig ist. Die Zahl g ist ein Zufallselement aus Zn* der Ordnung q1q2.
  • Der Kodierer 22 kodiert eine Nachricht M in einen chiffrierten Text C unter Verwendung des öffentlichen Schlüssels, der aus n, e und g besteht. Allgemein gesagt ist der chiffrierte Text C eine Funktion der Nachricht M und einer Zahl x, wobei x die Ordnung q1q2 in Zn* hat. Die Zahl x wird wie folgt abgeleitet: x = gR mod n,wobei R eine Zufallszahl ist, die unabhängig von den Zufallszahlen r1 und r2 gewählt ist. Die Zufallszahl R wird höchstwahrscheinlich verschieden von den Zufallszahlen r1 und r2 sein, obwohl dies nicht notwendig ist. Der chiffrierte Text C weist zwei Komponenten auf, einen Wert V und einen Wert W. Der Wert V ist eine Funktion der Zahl x wie folgt: V = xe.
  • Der Wert W ist eine Funktion eines Wertes h1(x) und der Nachricht M, wobei der Wert h1(x) ein Ergebnis einer Einwegfunktion h1 der Zahl x ist. Als ein Beispiel ist die Einwegfunktion als eine Hashfunktion, beispielsweise als SHA (Secured Hash Algorithm) implementiert. In einer Implementierung wird der Wert W unter Verwendung einer exklusiven Oder-Funktion wie folgt berechnet: W = h1(x) ⊕ M.
  • Jedoch können auch andere logische Kombinationen des Wertes h1(x) und M statt der exklusiven Oder-Funktion verwendet werden, solange die logische Operation umkehrbar ist.
  • Der Kodierer 22 packt die Werte V und W zusammen, um den chiffrierten Text C zu bilden, und sendet ihn über den Kommunikationskanal 26 an den Dekodierer 24. Der Dekodierer 24 berechnet die Zahl x aus dem Wert V unter Verwendung des privaten Schlüssels wieder, der aus dem öffentlichen Schlüssel zuzüglich p1, p2, q1, q2 wie folgt besteht:
    Figure 00110001
  • Sobald die Zahl x wieder erlangt ist, erfasst der Dekodierer 24 die Nachricht M aus dem Wert W wie folgt wieder: M = W ⊕ h(x) = h(x) ⊕ M ⊕ h(x) = M
  • Die oben beschriebene und in dem System 20 verwendete Verschlüsselungschiffre ist dahingehend vorteilhaft, dass die Entschlüsselungsgeschwindigkeit im Vergleich zu der Entschlüsselung in der Standard-RSA-Chiffre schneller ist. Der Grund dafür ist, dass die beim Wiedererlangen von x verwendete Operation
    Figure 00110002
    signifikant schneller als eine entsprechende in der traditionellen RSA-Chiffre verwendete Operation
    Figure 00110003
    ist.
  • Die verbesserte Entschlüsselungsgeschwindigkeit wird durch Verwendung einer neuen Familie von Falltürpermutationen erreicht, die auf der Potenzierung in Untergruppen von Zn* basiert ist. Die obige Verschlüsselungschiffre nutzt eine bestimmte Untergruppe von Zn* aus. Insbesondere verwendet die Chiffre die Untergruppen von Zn*, die durch g erzeugt werden, um die Zahl x zu berechnen. Dies ermöglicht Berechnungen auf der Seite der Entschlüsselung die von der Ordnung q1q2 aus Zn* sind.
  • Die Verschlüsselungschiffre hat einen Nachteil dahingehend, dass der Verschlüsselungsvorgang im Vergleich zu der Verschlüsselung in dem Standard-RSA-Algorithmus langsamer ist. Dies liegt daran, dass das neue Schema hinzugefügte Berechnungen zum Ableiten der Zahl x auf der Seite der Verschlüsselung verursacht. Die Zahl der hinzugefügten Berechnungen kann durch lediglich gelegentliche Berechnung der Zahl x – eher als jedes Mal – minimiert werden. Diese Optimierung wird unten detaillierter erörtert.
  • Insgesamt ist die Verschlüsselungschiffre etwa gleich in der Geschwindigkeit wie die RSA-Chiffre. Jedoch ist es in einigen Zusammenhängen vorteilhaft, die Geschwindigkeit des Entschlüsselungsvorgangs zu verbessern, auch wenn die Verbesserung auf Kosten einer langsameren Verschlüsselung geschieht. Beispielsweise in dem Client-Server-Kontext ist das Verbessern der Entschlüsselungsgeschwindigkeit bei dem Server ein echter Vorteil, auch wenn es auf Kosten langsamerer Verschlüsselung bei dem Client geschieht. Der Client hat reichlich Zeit zum Verschlüsseln von Nachrichten und die langsamere Geschwindigkeit sollte nicht bemerkbar sein; jedoch jede Verbesserung in der Entschlüsselungsgeschwindigkeit auf dem Server würde geschätzt werden.
  • Die Architektur in 1 ist repräsentativ für viele verschiedene Umgebungen, in denen Verschlüsselungsfähigkeiten genutzt werden. Beispielsweise in dem Client-Server-Kontext könnte ein Kodierer 22 und ein Dekodierer 24 sowohl beim dem Client als auch auf dem Server implementiert sein, um eine sichere Kommunikation über ein Netzwerk, wie beispielsweise LAN (Local Area Network), einem WAN (Wide Area Network) oder dem Internet, zu ermöglichen. Als ein anderes Beispiel könnte in einem SmartCard-Kontext der Kodierer 22 in der SmartCard und der Dekodierer 24 in einem Kommunikationsagenten (beispielsweise einem Computer, ATM, Kiosk, Verkaufsautomat, Kundenmaschine etc.) implementiert sein. Hier repräsentiert der Kanal 26 eine elektronische Schnittstelle zwischen der Karte und dem Agenten.
  • Zum Zwecke der nachfolgenden Erörterung wird das Verschlüsselungssystem 20 als in einem Mehrzweckcomputer, wie beispielsweise Personalcomputer, Server, Workstations, Laptops usw., implementiert beschrieben werden.
  • 2 zeigt eine beispielhafte Implementierung eines Mehrzweckcomputers 30. Der Computer 30 umfasst eine Verarbeitungseinheit 32, ein Systemspeicher 34 und einen Systembus 36, der verschiedene Systemkomponenten einschließlich des Systemspeichers 34 mit der Verarbeitungseinheit 32 verbindet. Der Systembus 36 kann irgendeiner von verschiedenen Arten von Busstrukturen einschließlich eines Speicherbusses oder Speichercontrollers, eines Peripheriegerätebusses oder eines lokalen Busses unter Verwendung irgendeiner von einer Vielzahl von Busarchitekturen umfassen. Der Systemspeicher 34 umfasst ROM (Read Only Memory) 38 und RAM (Random Access Memory) 40. Ein BIOS (Basic Input/Output System) 42 ist auf dem ROM 38 gespeichert.
  • Der Computer 30 weist ebenso eines oder mehrere der folgenden Laufwerke auf: ein Festplattenlaufwerk 44 zum Lesen von und Schreiben auf eine Festplatte, ein Magnetscheibenlaufwerk 46 zum Lesen von oder Schreiben auf eine entfernbare Magnetscheibe 48 und ein Laufwerk für optische Scheiben 50 zum Lesen von oder Schreiben auf entfernbare optische Scheiben wie beispielsweise eine CD-ROM oder andere optische Medien. Das Festplattenlaufwerk 44, Magnetscheibenlaufwerk 46 und das Laufwerk für optische Scheiben 50 sind mit dem Systembus 36 jeweils über ein Festplattenlaufwerks-Interface 54, ein Magnetscheibenlaufwerks-Interface 56 und ein Interface für optische Laufwerke 58 verbunden. Die Laufwerke und ihre dazugehörigen computerlesbaren Medien stellen nichtflüchtige Speicher von computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und anderen Daten für den Personalcomputer 30 zur Verfügung.
  • Obwohl eine Festplatte, eine entfernbare Magnetscheibe 48 und eine entfernbare optische Scheibe 52 beschrieben sind, sollte es von einem Fachmann verstanden werden, dass andere Arten von computerlesbaren Medien zum Speichern von Daten genutzt werden können. Andere derartige Medien umfassen Magnetkassetten, Flash-Speicherkarten, digitale Videoscheiben, Bernoulli-Cartridges, RAMs (random access memories), ROMs (read only memories) oder dergleichen.
  • Eine Reihe von Programmmodulen kann auf der Festplatte, der Magnetscheibe 48, der optischen Scheibe 52, dem ROM 38 oder dem RAM 40 gespeichert sein. Diese Programme umfassen ein Betriebssystem 60, ein oder mehrere Anwendungsprogramme 62, andere Programmmodule 64 und Programmdaten 66.
  • Ein Benutzer kann Befehle und Informationen in den Personalcomputer 30 über Eingabegeräte wie beispielsweise eine Tastatur 68 und eine Maus 70 eingeben. Andere Eingabegeräte (nicht dargestellt) können ein Mikrofon, ein Joystick, Game-Pad, Satellitenschüssel, Scanner oder dergleichen umfassen. Diese oder andere Eingabegeräte werden oft mit der Verarbeitungseinheit 32 über einen Schnittstelle für seriellen Anschluss 72 verbunden, die mit dem Systembus 36 verbunden werden, aber könnte über andere Schnittstellen, wie beispielsweise einem Parallelanschluss, einen Game-Port oder einem USB (Universal serial bus) verbunden sein.
  • Ein Montitor 74 oder eine andere Art von Anzeigegerät ist ebenso mit dem Systembus 36 über ein Interface, wie beispielsweise einen Videoadapter 76 verbunden. Zusätzlich zu dem Monitor umfassen Personalcomputer typischerweise andere periphere Ausgabegeräte (nicht dargestellt) wie beispielsweise Lautsprecher oder Drucker.
  • Der Servercomputer 30 weist ein Netzwerk-Interface oder -Adapter 78, ein Modem 80 oder andere Mittel zum Aufbauen von Kommunikationen über ein Netzwerk 82 (beispielsweise LAN, Internet, etc.) auf. Das Modem 80, das intern oder extern ausgestaltet sein kann, ist mit dem Systembus 36 über eine Schnittstelle für seriellen Anschluss 72 verbunden.
  • Das Verschlüsselungssystem 20 kann in dem Computer 30 als Software, Firmware oder Hardware implementiert sein. Beispielsweise können der Kodierer 22 und Dekodierer 24 innerhalb des Betriebssystems 60, von Anwendungsprogrammen 62 oder Programmmodulen 64 (beispielsweise einer DLL – Dynamic Linked Library) implementiert sein. Alternativ können der Kodierer 22 und Dekodierer 24 in dem ROM 38 implementiert sein. In noch einer weiteren Ausführungsform können der Kodierer 22 und der Dekodierer 24 innerhalb der Verarbeitungseinheit 32 implementiert sein.
  • 3 zeigt beispielhafte Schritte in einem Verfahren zum Verschlüsseln und Entschlüsseln von Nachrichten unter Verwendung des Verschlüsselungssystems 20. Wie bildlich in 3 repräsentiert werden die Schritte 100 bis 106 durch den Kodierer 22 und die Schritte 108 bis 114 durch den Dekodierer 24 durchgeführt. Der Kodierer 22 kennt den öffentlichen Schlüssel (d.h. die Primzahlen n, e und g), die von dem privaten Schlüssel abgeleitet werden. Diese Schlüssel können in Speicher oder Registern gespeichert sein. Der Dekodierer 24 kennt den privaten Schlüssel (d.h. die Zahlen p1, p2, q1 und q2).
  • In Schritt 100 berechnet der Kodierer 22 die Zahl x als eine Funktion von g, einem Zufallselement aus Zn* der Ordnung q1 q2. Insbesondere berechnet der Kodierer 22 x wie folgt: x = gR mod n,wobei R eine Zufallszahl ist.
  • In Schritt 102 kodiert der Kodierer die Nachricht M zum Erreichen eines chiffrierten Textes C. Dieses Kodieren bezieht das Erzeugen der Werte V und W ein, wobei V = xe und W = h1(x) ⊕ M gilt. Der Wert h1(x) ist ein Ergebnis einer ersten Hashfunktion h1 der Zahl x. Der chiffrierte Text C setzt sich aus den Werten V und W zusammen.
  • In Schritt 104 berechnet der Kodierer 22 einen anderen Hashwert h2(x, M), der ein Ergebnis einer zweiten Hashfunktion h2 der Zahl x und der Nachricht M ist. Der Dekodierer 24 verwendet diesen Hashwert zum Überprüfen, ob die Nachricht M auf dem Weg zwischen dem Kodierer und dem Dekodierer verändert oder auf andere Art beeinträchtigt worden ist. In Schritt 106 überträgt der Kodierer 22 den chiffrierten Text C (d.h. V = xe und W = h1(x) ⊕ M) und den zweiten Hashwert h2(x, M) über den Kommunikationskanal 26 an den Dekodierer 24.
  • In Schritt 108 empfängt der Dekodierer 24 den chiffrierten Text C und den zweiten Hashwert h2(x, M). In Schritt 110 berechnet der Dekodierer 24 dann die Zahl x aus der Komponente des chiffrierten Textes C mit dem Wert V (d.h. V = xe) wie folgt wieder:
    Figure 00150001
  • Sobald die Zahl x wiedererlangt ist, berechnet der Dekodierer 24 den Hashwert h1(x) unter Verwendung derselben ersten Hashfunktion h1, die durch den Kodierer 22 angewendet wurde. In Schritt 112 erlangt der Dekodierer 24 die Nachricht M aus der Komponente des chiffrierten Textes C mit dem Wert W wie folgt wieder: M = W ⊕ h1(x)
  • In Schritt 114 nimmt der Dekodierer 24 die wiedererlangte Zahl x und die wiedererlangte Nachricht M und berechnet einen Test-Hashwert h2'(x, M) unter Verwendung derselben zweiten Hashfunktion h2, die durch den Kodierer 24 angewendet wurde. Falls der Test-Hashwert h2'(x, M) gleich dem von dem Kodierer 22 empfangenen Hashwert h2(x, M) ist, ist der Dekodierer 24 sicher, dass die Nachricht M nicht verändert worden ist.
  • Der obige Verschlüsselungs-/Entschlüsselungsvorgang kann in dem folgenden Pseudo-Code repräsentiert werden. Die Schlüsselberechnung kann einmal vor den Verschlüsselungs-/Entschlüsselungs-Schritten zum Erstellen der Schlüsselwerte durchgeführt werden. Die Schlüssel können nach Bedarf aktualisiert werden. Schlüsselberechnung
    Figure 00160001
    Verschlüsselung
    Figure 00160002
    Entschlüsselung
    Figure 00160003
  • In einer Implementierung ist die ganze Zahl „e" auf zwei gesetzt, so dass die neue Familie von Falltürpermutationen auf das Quadrieren in Untergruppen von Zn* basiert.
  • Einer der Nachteile des Verschlüsselungsschemas ist, dass der Verschlüsselungsvorgang langsamer als bei traditioneller RSA-Verschlüsselung ist, da der Kodierer die Zahl x als eine Funktion von g, einem Zufallselement von Zn*, berechnet. Das Ableiten der Zahl x benötigt zusätzliche Berechnungen, die in der traditionellen RSA-Verschlüsselung nicht vorhanden sind.
  • Ein Weg zum Verbessern der Geschwindigkeit bei der Verschlüsselungsphase ist, die Zahl x einmal zu berechnen und dann die alte Zahl x zum Erzeugen einer neuen Zahl x für die nächste Verschlüsselung zu benutzen. Insbesondere schließt die Verbesserung ein Ändern der Zahl x für jede neue Verschlüsselung in einer Art ein, die weniger rechenintensiv ist als das Berechnen von gR mod n für jede neue Verschlüsselung. Ein Ansatz zum Erzeugen einer neuen Zahl x aus der alten Zahl x lautet wie folgt: x ← xk exp(i),wobei „k exp(i)" als ki ausgedrückt wird.
  • Der Kodierer berechnet die Zahl x (d.h. x = gR mod n) und speichert die Zahl x in dem Speicher oder einem Register für den nachfolgenden Gebrauch. Für jede nachfolgende Verschlüsselung verändert der Kodierer x durch Berechnen von x = xk exp(i) und Auswählen eines Wertes „i" derart, dass der Wert V derselbe bleibt, wenn x verändert wird. Der Kodierer sendet dann den Wert i gemeinsam mit dem Wert V an den Dekodierer für den Gebrauch bei dem Wiedererlangen des Wertes x.
  • Dieser Vorgang des Tilgens des Wertes x über verschiedene Verschlüsselungen reduziert die Anzahl der Berechnungen während des Kodiervorgangs. Das Verschlüsselungssystem bewahrt Vorwärtssicherheit für den Kodierer so, dass wenn die Zahl x nach außen getreten ist, die vergangenen Nachrichten nicht beeinträchtigt werden, aber zukünftige Nachrichten beeinträchtigt werden können. Der Kodierer kann die Zahl x bei irgendeinem Intervall oder zu irgendeiner Zeit vollständig wieder berechnen, falls er es für notwendig erachtet.
  • Das obige Verschlüsselungssystem kann ebenso zum Verbessern der Entschlüsselungsgeschwindigkeit in Batch-RSA, einer gut bekannten Variante des RSA, genutzt werden. Das Verschlüsselungssystem ist ähnlich zu dem oben beschriebenen, aber unterscheidet sich darin, dass die Zufallszahlen r1 und r2, die zum Ableiten der Primzahlen p1 und p2 genutzt werden, zusätzlich abhängig davon sind, dass sie nicht durch die ersten b Primzahlen teilbar sind, wobei b die Größe des Entschlüsselungsbatches ist.
  • Für das Batch-RSA wird die Zahl x nach wie vor wie folgt abgeleitet: x = gR mod n.
  • Der Wert V wird dann wie folgt berechnet: V = xe mod nwobei e gleich (i + 1)-te ungerade Primzahl und i aus Zb ist.
  • Auf der Seite der Entschlüsselung wird der Wert x wieder erlangt gemäß:
    Figure 00180001
  • Die obige Modifikation des Batch-RSA erleichtert schnellere Entschlüsselung, da während der Batch-Umkehroperation die Exponenten reduzierte modolo q1 q2 sind.
  • Obwohl die Erfindung in einer auf die strukturellen Merkmale und/oder methodologischen Schritte zugeschnittenen Sprache beschrieben worden ist, ist es zu verstehen, dass die in den angehängten Patentansprüchen definierte Erfindung nicht notwendigerweise auf die beschriebenen bestimmten Merkmale oder Schritte beschränkt ist. Die besonderen Merkmale und Schritte sind eher als bevorzugte Formen des Implementierens der beanspruchten Erfindung offenbart.

Claims (34)

  1. Verfahren zum Senden von Nachrichten über ein Netzwerk zwischen ersten und zweiten Recheneinheiten, wobei das Verfahren die folgenden Schritte umfasst: (a) das Verschlüsseln einer Nachricht M in einen chiffrierten Text C bei der ersten Recheneinheit, wobei der chiffrierte Text C einen Wert V und einen Wert W umfasst, wie folgt: (1) der Wert V ist eine Funktion einer Zahl x derart, dass V = xe, wobei e eine ganze Zahl ist und x sich wie folgt ergibt: x = gR mod n, wobei:(i) n eine Zahl n = p1p2 ist, wobei p1 und p2 Primzahlen mit p1 = r1q1 + 1 und p2 = r2q2= r2q2 + 1 sind, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind, (ii) R eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist und (iii) eine Zahl der Form
    Figure 00190001
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1, r2 und R gewählte Zufallszahl ist und (2) der Wert W ist eine Funktion eines Wertes h(x) und der Nachricht M, wobei der Wert h(x) ein Ergebnis einer Einwegfunktion der Zahl x ist, (b) das Senden des chiffrierten Textes C von der ersten Recheneinheit zu der zweiten Recheneinheit und (c) das Entschlüsseln des chiffrierten Textes C bei der zweiten Recheneinheit zum Nachbilden der Nachricht M, wobei M eine Funktion des Wertes W und des Wertes h(x) ist und x von
    Figure 00190002
    abgeleitet ist.
  2. Verfahren nach Anspruch 1, wobei der Verschlüsselungsschritt den Schritt des Ableitens des Wertes W gemäß W = h(x) ⊕ M umfasst.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Entschlüsselungsschritt den Schritt des Ableitens der Nachricht M gemäß M = W ⊕ h(x) umfasst.
  4. Verfahren nach einem der vorangehenden Ansprüche, wobei die ganze Zahl e gleich 2 ist.
  5. Verfahren nach einem der vorangegangenen Ansprüche, wobei der Verschlüsselungsschritt den Schritt des Berechnens eines Hashwerts h(x, M) aus einer Hashfunktion h der Zahl x und der Nachricht M umfasst, wobei der Sendeschritt den Schritt des Sendens des Hashwerts h(x, M) zusammen mit dem chiffrierten Text C von der ersten Recheneinheit zu der zweiten Recheneinheit umfasst und wobei der Entschlüsselungsschritt den Schritt des Berechnens eines Test-Hashwerts h'(x, M) aus einer Hashfunktion h der abgeleiteten Zahl x und der nachgebildeten Nachricht M und den Schritt des Vergleichens des von der ersten Recheneinheit empfangenen Hashwerts h(x, M) mit dem Test-Hashwert h'(x, M) zum Überprüfen, ob die Nachricht M verändert wurde, umfasst.
  6. Verfahren nach einem der vorangehenden Ansprüche, wobei der Verschlüsselungsschritt die folgenden Schritte umfasst: Speichern der Zahl x, Erzeugen einer neuen Zahl x' basiert auf die alte Zahl x und Verwenden der neuen Zahl x' zum Verschlüsseln der nächsten Nachricht.
  7. Verfahren nach Anspruch 1, worin e eine aus den ersten b ungeraden Primzahlen ausgewählte ganze Zahl ist und r1 und r2 Zufallszahlen sind, die nicht durch die ersten b ungeraden Primzahlen teilbar sind.
  8. Computer-implementiertes Verfahren zum Verschlüsseln einer Nachricht M in einen chiffrierten Text C, worin: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2= r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind und g eine Zahl der Form
    Figure 00210001
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, wobei das computer-implementierte Verfahren die folgenden Schritte umfasst: Berechnen einer Zahl x = gR mod n, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, Umformen der Zahl x gemäß einer Einwegfunktion h zum Ergeben eines Wertes h(x) und Codieren der Nachricht M gemäß einer Funktion des Wertes h(x).
  9. Verfahren nach Anspruch 8, wobei der Codierschritt den Schritt des Berechnens von h(x) ⊕ M umfasst.
  10. Verfahren nach einem der Ansprüche 8 oder 9, das zusätzlich den Schritt des Berechnens eines Hashwerts h(x, M) aus einer Hashfunktion h der Zahl x und der Nachricht M umfasst.
  11. Verfahren nach einem der Ansprüche 8 bis 10, das zusätzlich die folgenden Schritte umfasst: Speichern der Zahl x, Erzeugen einer neuen Zahl x' basiert auf die alte Zahl x und Verwenden der neuen Zahl x' zum Verschlüsseln der nächsten Nachricht.
  12. Computer-implementiertes Verfahren zum Entschlüsseln von chiffriertem Text C zum Nachbilden einer Nachricht M, worin: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2g2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind, g eine Zahl der Form
    Figure 00210002
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, x eine Zahl der Form x = gR mod n ist, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, e eine ganze Zahl ist und V ein Wert der Form V = xe ist, wobei das computer-implentierte Verfahren die folgenden Schritte umfasst: Wiedererlangen der Zahl x aus dem Wert V, wobei
    Figure 00220001
    Umwandeln der Zahl x gemäß einer Einwegfunktion h zum Ergeben eines Wertes h(x) und Decodieren des chiffrierten Textes C gemäß einer Funktion des Wertes h(x) zum Wiedererfassen der Nachricht M.
  13. Verfahren nach Anspruch 12, wobei der Decodierschritt den Schritt des Berechnens von C ⊕ h(x) umfasst.
  14. Verfahren nach Anspruch 12 oder 13, das zusätzlich den Schritt des Berechnens eines Hashwertes h(x, M) aus einer Hashfunktion h der Zahl x und der wiedererfassten Nachricht M umfasst.
  15. Computerprogramm oder ein Satz von Computerprogrammen, die derart ausgeführt sind, dass beim Ausführen durch einen Computer es/sie den Computer zum Durchführen des Verfahrens nach einem der vorangehenden Ansprüche steuert/steuern.
  16. System zum Senden von Nachrichten über einen Kommunikationskanal, umfassend: einen Kodierer zum Umformen der Nachricht M in einen chiffrierten Text C und Übertragen des chiffrierten Textes C über den Kommunikationskanal, wobei der chiffrierte Text C einen Wert V und einen Wert W umfasst, wie folgt: (1) Der Wert V ist eine Funktion einer Zahl x derart, dass V = xe, wobei e eine ganze Zahl ist und sich wie folgt ergibt: x = gR mod n, wobei: (i) n eine Zahl n = p1p2 ist, wobei p1 und p2 Primzahlen mit p1 = r1q1 + 1 und p2 = r2q2= r2q2 + 1 ist, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind, (ii) R eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist und (iii) g eine Zahl der Form
    Figure 00230001
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1, r2 und R ausgewählte Zufallszahl ist und (2) Der Wert W ist eine Funktion eines Wertes h(x) und der Nachricht M, wobei der Wert h(x) ein Ergebnis einer Einwegfunktion der Zahl x ist und einen Dekodierer, der zum Empfangen des chiffrierten Textes C und des Wertes V von dem Kommunikationskanal und zum Umwandeln des chiffrierten Textes C zurück in die Nachricht M verbunden ist, wobei M eine Funktion des Wertes W und des Wertes h(x) ist und x als
    Figure 00230002
    abgeleitet wird.
  17. System nach Anspruch 16, wobei der Kodierer den Wert W gemäß W = h(x) ⊕ M ableitet.
  18. System nach entweder Anspruch 16 oder 17, wobei der Dekodierer die Nachricht M gemäß M = W ⊕ h(x) ableitet.
  19. System nach einem der Ansprüche 16 bis 18, wobei die ganze Zahle gleich 2 ist.
  20. System nach einem der Ansprüche 16 bis 19, wobei der Kodierer einen Hashwert h(x, M) aus einer Hashfunktion h der Zahl x und der Nachricht M berechnet und den Hashwert h(x, M) zusammen mit dem chiffrierten Text C überträgt und wobei der Dekodierer eine Test-Hashfunktion h'(x, M) aus der Hashfunktion h der abgeleiteten Zahl x und der nachgebildeten Nachricht M berechnet und den von der ersten Recheneinheit empfangenen Hashwert h(x, M) mit dem Test-Hashwert h'(x, M) zum Überprüfen, ob die Nachricht verändert worden ist, vergleicht.
  21. System nach einem der Ansprüche 16 bis 20, wobei der Kodierer die Zahl x speichert, eine neue Zahl x' basiert auf die alte Zahl x erzeugt und die neue Zahl x' zum Berechnen der Werte V und W nutzt.
  22. System nach Anspruch 16, wobei e eine aus den ersten b ungeraden Primzahlen ausgewählte ganze Zahl ist und wobei r1 und r2 Zufallszahlen sind, die nicht durch die ersten b ungeraden Primzahlen teilbar sind.
  23. Kodierer für ein Verschlüsselungssystem, wobei: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind und g eine Zahl der Form
    Figure 00240001
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, wobei der Kodierer umfasst: Mittel zum Berechnen einer Zahl x = gR mod n, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 ausgewählte Zufallszahl ist, Mittel zum Umformen der Zahl x gemäß einer Einwegfunktion h zum Erhalten eines Wertes h(x) und Mittel zum Codieren einer Nachricht M gemäß einer Funktion des Wertes h(x).
  24. Kodierer nach Anspruch 23, wobei die Codiermittel die Nachricht M gemäß der Funktion h(x) ⊕ M codieren.
  25. Kodierer nach Anspruch 23 oder 24, der zusätzlich umfasst: Mittel zum Speichern der Zahl x, Mittel zum Erzeugen einer neuen Zahl x' basiert auf die alte Zahl x und Mittel zum Verwenden der neuen Zahl x' zum Ableiten des Wertes h(x).
  26. Dekodierer für ein Verschlüsselungssystem, wobei: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2= r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind, g eine Zahl der Form
    Figure 00250001
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, x eine Zahl der Form x = gR mod n ist, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, e eine ganze Zahl ist, V ein Wert der Form V = xe ist und W ein aus einer Funktion einer Nachricht M und eines Wertes h(x) abgeleiteter Wert ist, wobei h(x) ein Ergebnis einer Einwegfunktion h ist, wobei der Dekodierer umfasst: Mittel zum Empfangen der Werte V und W, Mittel zum Wiedererlangen der Zahl x aus dem Wert V, wobei
    Figure 00250002
    Mittel zum Umformen der Zahl x gemäß einer Einwegfunktion h zum Erhalten des Wertes h(x) und Mittel zum Decodieren des Wertes W gemäß einer Funktion des Wertes h(x) zum Wiedererfassen der Nachricht M.
  27. Dekodierer nach Anspruch 26, wobei die Decodiermittel die Funktion W ⊕ h(x) zum Wiedererfassen der Nachricht M berechnen.
  28. Dekodierer nach Anspruch 26 oder 27, der zusätzlich Mittel zum Berechnen eines Hashwertes h(x, M) aus einer Hashfunktion h der Zahl x und der wiedererfassten Nachricht M umfasst.
  29. Computer-lesbares Medium mit computer-ausführbaren Anweisungen, die einen Computer zum Verschlüsseln einer Nachricht M in einen chiffrierten Text C veranlassen, wobei n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind und g eine Zahl der Form
    Figure 00250003
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, wobei das computer-lesbare Medium umfasst: computer-ausführbare Anweisungen, die einen Computer zum Berechnen einer Zahl x = gR mod n veranlassen, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, computerlesbare Anweisungen, die einen Computer zum Umformen der Zahl x gemäß einer Einwegfunktion h zum Erhalten eines Wertes h(x) veranlassen, und computer-ausführbare Anweisungen, die einen Computer zum Codieren einer Nachricht M gemäß einer Funktion des Wertes h(x) veranlassen.
  30. Computer-lesbares Medium nach Anspruch 29, das zusätzlich computerausführbare Anweisungen umfasst, die einen Computer zum Codieren der Nachricht M gemäß der Funktion h(x) ⊕ M veranlassen.
  31. Computer-lesbares Medium nach Anspruch 29 oder 30, das zusätzlich computer-ausführbare Anweisungen umfasst, die einen Computer zum Speichern der Zahl x, dem Erzeugen einer neuen Zahl x' basiert auf die alte Zahl x und dem Verwenden der neuen Zahl x' zum Ableiten des Wertes h(x) veranlasst.
  32. Computer-lesbares Medium mit computer-ausführbaren Anweisungen, die einen Computer zum Entschlüsseln eines chiffrierten Textes C zum Wiedererlangen einer Nachricht M veranlassen, wobei: n eine Zahl der Form n = p1p2 ist, wobei p1 und p2 Primzahlen sind, p1 = r1q1 + 1 und p2 = r2q2 + 1 gilt, wobei r1 und r2 Zufallszahlen und q1 und q2 Primzahlen sind und g eine Zahl der Form
    Figure 00260001
    ist, wobei r3 eine unabhängig von den Zufallszahlen r1 und r2 gewählte Zufallszahl ist, x eine Zahl der Form x = gR mod n ist, wobei R eine unabhängig von den Zufallszahlen r1, r2 und r3 gewählte Zufallszahl ist, e eine ganze Zahl ist und V ein Wert der Form V = = xe ist, wobei das computer-lesbare Medium umfasst: computer-ausführbare Anweisungen, die einen Computer zum Wiedererlangen der Zahl x aus dem Wert V veranlasst, wobei
    Figure 00270001
    computer-ausführbare Anweisungen, die einen Computer zum Umwandeln der Zahl x gemäß einer Einwegfunktion h zum Erhalten von h(x) veranlassen, und computer-ausführbare Anweisungen, die einen Computer zum Decodieren des chiffrierten Textes C gemäß einer Funktion h(x) zum Wiedererfassen der Nachricht M veranlasst.
  33. Computer-lesbares Medium nach Anspruch 32, das zusätzlich computer-ausführbare Anweisungen umfasst, die einen Computer zum Decodieren des chiffrierten Textes C gemäß der Funktion C ⊕ h(x) veranlasst.
  34. Computer-lesbares Medium nach Anspruch 32, das zusätzlich computer-ausführbare Anweisungen umfasst, die einen Computer zum Berechnen eines Hashwertes h(x, M) aus einer Hashfunktion h der Zahl x und der wiedererfassten Nachricht M veranlasst.
DE69833334T 1997-10-20 1998-09-16 Verschlüsselungsgerät und -verfahren mit schneller entzifferung Expired - Lifetime DE69833334T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/953,911 US6081598A (en) 1997-10-20 1997-10-20 Cryptographic system and method with fast decryption
US953911 1997-10-20
PCT/US1998/019349 WO1999034552A2 (en) 1997-10-20 1998-09-16 Cryptographic system and method with fast decryption

Publications (2)

Publication Number Publication Date
DE69833334D1 DE69833334D1 (de) 2006-04-13
DE69833334T2 true DE69833334T2 (de) 2006-10-26

Family

ID=25494714

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69833334T Expired - Lifetime DE69833334T2 (de) 1997-10-20 1998-09-16 Verschlüsselungsgerät und -verfahren mit schneller entzifferung

Country Status (7)

Country Link
US (1) US6081598A (de)
EP (1) EP1031204B1 (de)
JP (1) JP4369618B2 (de)
CN (1) CN1282325C (de)
CA (1) CA2307619C (de)
DE (1) DE69833334T2 (de)
WO (1) WO1999034552A2 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
GB9410337D0 (en) * 1994-05-24 1994-07-13 Cryptech Systems Inc Key transmission system
KR100332763B1 (ko) * 1999-02-10 2002-04-17 구자홍 디지탈데이터 플레이어의 복제방지 장치 및 방법
JP2001016196A (ja) * 1999-04-28 2001-01-19 Fuji Soft Abc Inc 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置
US20020039420A1 (en) * 2000-06-12 2002-04-04 Hovav Shacham Method and apparatus for batched network security protection server performance
US20020087884A1 (en) * 2000-06-12 2002-07-04 Hovav Shacham Method and apparatus for enhancing network security protection server performance
US6959091B1 (en) * 2000-07-28 2005-10-25 Atmel Corporation Cryptography private key storage and recovery method and apparatus
US7137143B2 (en) 2000-08-07 2006-11-14 Ingrian Systems Inc. Method and system for caching secure web content
US7155610B2 (en) * 2000-12-19 2006-12-26 Matsushita Electric Industrial Co., Ltd. Cryptocommunication system, transmission apparatus, and reception apparatus
US7757278B2 (en) * 2001-01-04 2010-07-13 Safenet, Inc. Method and apparatus for transparent encryption
JP4284867B2 (ja) * 2001-01-18 2009-06-24 株式会社日立製作所 標準モデル上で適応的選択暗号文攻撃に対して安全な公開鍵暗号方法
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7164765B2 (en) * 2001-04-11 2007-01-16 Hitachi, Ltd. Method of a public key encryption and a cypher communication both secure against a chosen-ciphertext attack
US6718536B2 (en) * 2002-06-21 2004-04-06 Atmel Corporation Computer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications
US20070107067A1 (en) * 2002-08-24 2007-05-10 Ingrian Networks, Inc. Secure feature activation
JP4563037B2 (ja) * 2003-01-24 2010-10-13 シャープ株式会社 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US20060149962A1 (en) * 2003-07-11 2006-07-06 Ingrian Networks, Inc. Network attached encryption
US8442219B2 (en) * 2004-03-31 2013-05-14 Jesse Lipson Public key cryptographic methods and systems
US7519835B2 (en) * 2004-05-20 2009-04-14 Safenet, Inc. Encrypted table indexes and searching encrypted tables
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
US20060251248A1 (en) * 2005-05-03 2006-11-09 Jesse Lipson Public key cryptographic methods and systems with preprocessing
US20070079140A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Data migration
US20070079386A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Transparent encryption using secure encryption device
US20070074038A1 (en) * 2005-09-29 2007-03-29 International Business Machines Corporation Method, apparatus and program storage device for providing a secure password manager
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US8386768B2 (en) * 2006-02-08 2013-02-26 Safenet, Inc. High performance data encryption server and method for transparently encrypting/decrypting data
US7958091B2 (en) 2006-02-16 2011-06-07 Ingrian Networks, Inc. Method for fast bulk loading data into a database while bypassing exit routines
US8379865B2 (en) * 2006-10-27 2013-02-19 Safenet, Inc. Multikey support for multiple office system
US20090132804A1 (en) * 2007-11-21 2009-05-21 Prabir Paul Secured live software migration
US10574451B2 (en) * 2017-10-19 2020-02-25 Bank Of America Corporation Method and apparatus for perfect forward secrecy using deterministic hierarchy

Family Cites Families (5)

* 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
US5323464A (en) * 1992-10-16 1994-06-21 International Business Machines Corporation Commercial data masking
US5483598A (en) * 1993-07-01 1996-01-09 Digital Equipment Corp., Patent Law Group Message encryption using a hash function
ATE187588T1 (de) * 1993-08-17 1999-12-15 R3 Security Engineering Ag Verfahren zur digitalen unterschrift und verfahren zur schlüsselübereinkunft
FR2737369A1 (fr) * 1995-07-26 1997-01-31 Trt Telecom Radio Electr Systeme de communication de messages cryptes selon un procede de type r.s.a.

Also Published As

Publication number Publication date
WO1999034552A2 (en) 1999-07-08
DE69833334D1 (de) 2006-04-13
WO1999034552A3 (en) 1999-09-16
EP1031204A2 (de) 2000-08-30
US6081598A (en) 2000-06-27
CA2307619A1 (en) 1999-07-08
JP4369618B2 (ja) 2009-11-25
JP2004524548A (ja) 2004-08-12
CN1281607A (zh) 2001-01-24
EP1031204B1 (de) 2006-01-25
CA2307619C (en) 2008-09-09
CN1282325C (zh) 2006-10-25
WO1999034552A9 (en) 1999-10-28

Similar Documents

Publication Publication Date Title
DE69833334T2 (de) Verschlüsselungsgerät und -verfahren mit schneller entzifferung
DE60028645T2 (de) Vorrichtung und Verfahren zur Verteilung von Dokumenten
DE69935469T2 (de) Verfahren zur schnellen Ausführung einer Entschlüsselung oder einer Authentifizierung
DE69838094T2 (de) Übertragung von revisionen mit digitalen unterschriften
DE60215332T2 (de) System und Verfahren zum Verabreiten eines gemeinsamen Geheimnisses
DE60018716T2 (de) Informationsschutz in einem übertragungssystem
DE69836455T2 (de) System für elektronische Wasserzeichen, elektronisches Informationsverteilungssystem und Gerät zur Abspeicherung von Bildern
DE69333068T2 (de) Verfahren zur ausdehnung der gültigkeit eines kryptographischen zertifikats
DE19744786B4 (de) Digitalsignatur-Protokoll
DE60031304T3 (de) Verfahren zur authentifizierung von softwarebenutzern
DE69935455T2 (de) Kryptographisches verfahren unter verwendung eines öffentlichen und eines privaten schlüssels
DE69917356T2 (de) Sicherheitstechnik an einem Computernetzwerk
US20030048908A1 (en) System and method for protecting the content of digital cinema products
CH694601A5 (de) Verfahren zur Verifizierung der Echtheit von ausgetauschten Nachrichten.
DE10148415C2 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE2843583A1 (de) Verfahren und vorrichtung zum entschluesseln verschluesselter nachrichten
DE60025401T2 (de) Erzeugung eines mathematischen eingeschränkten schlüssels unter verwendung einer einwegfunktion
DE112017007095T5 (de) Verschlüsselungsvorrichtung und entschlüsselungsvorrichtung
DE60114069T3 (de) System und Verfahren für den Schutz von Digitalwerken
DE112012000971B4 (de) Datenverschlüsselung
AU2004201807A1 (en) Method and apparatus for the generation of public key based on a user-defined ID in a cryptosystem
Islam et al. Application of homomorphism to secure image sharing
DE60202149T2 (de) Verfahren zur kryptographischen authentifizierung
DE60117813T2 (de) Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels
DE60026439T2 (de) System und Verfahren zur Übertragung der Befugnis, Nachrichten zu entschüsseln in einem symmetrischen Kodierungsschema

Legal Events

Date Code Title Description
8364 No opposition during term of opposition