DE69935980T2 - Eine Technik zur Erstellung Privat authentifizierbarer kryptografischer Unterschriften und zur Verwendung einer solchen Unterschrift in Verbindung mit der Kopie eines Produktes - Google Patents

Eine Technik zur Erstellung Privat authentifizierbarer kryptografischer Unterschriften und zur Verwendung einer solchen Unterschrift in Verbindung mit der Kopie eines Produktes Download PDF

Info

Publication number
DE69935980T2
DE69935980T2 DE69935980T DE69935980T DE69935980T2 DE 69935980 T2 DE69935980 T2 DE 69935980T2 DE 69935980 T DE69935980 T DE 69935980T DE 69935980 T DE69935980 T DE 69935980T DE 69935980 T2 DE69935980 T2 DE 69935980T2
Authority
DE
Germany
Prior art keywords
signature
message
key
authentic
predefined
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
DE69935980T
Other languages
English (en)
Other versions
DE69935980D1 (de
Inventor
Ramarathnam R. Bellevue VENKATESAN
Peter L. San Rafael MONTGOMERY
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
Priority claimed from US09/102,851 external-priority patent/US6163841A/en
Priority claimed from US09/102,948 external-priority patent/US6209093B1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE69935980D1 publication Critical patent/DE69935980D1/de
Application granted granted Critical
Publication of DE69935980T2 publication Critical patent/DE69935980T2/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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Health & Medical Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)
  • Facsimile Transmission Control (AREA)

Description

  • Hintergrund der Erfindung
  • 1. Sachgebiet der Erfindung
  • Die Erfindung betrifft die Kryptographie, insbesondere ein Verfahren, mit dem für eine zu signierende Nachricht eine authentische kryptographische Signatur erzeugt wird, die von einem Empfänger der signierten Nachricht als von dem Unterzeichner der Nachricht stammend privat authentisiert werden kann; und mit dem eine derartige Signatur in geeigneter Weise authentisiert wird.
  • 2. Beschreibung des Standes der Technik
  • Über Jahrhunderte, so lange Informationen zwischen zwei Individuen übertragen werden, waren diese Informationen anfällig dafür, von Dritten abgefangen, abgehört, preisgegeben und/oder verfälscht zu werden. Es ist ersichtlich, dass das Problem des sicheren Schutzes von Informationen vor derartigem Handeln bereits seit sehr langer Zeit besteht.
  • Traditionell wurde dieses Problem durch die über Jahre hinweg erfolgende Entwicklung zunehmend komplizierterer kryptographischer Verfahren angegangen. Eine Klasse derartiger Verfahren umfasst die Verwendung einer auf einem Schlüssel basierenden Chiffrierung. Insbesondere werden durch eine auf einem Schlüssel basierende Chiffrierung Abfolgen von verständlichen Daten, d.h. Klartext, die zusammen eine Nachricht bilden, jeweils durch einen Chiffrieralgorithmus mathematisch zu scheinbar unverständlichen Daten, d.h. sogenannten Chiffretext, transformiert. Die Transformation muss nicht nur vollständig umkehrbar sein, d.h. dahingehend in zwei Richtungen funktionieren, dass der Chiffretext in den entsprechenden Original-Klartext zurück umgesetzt werden kann, sondern auch auf einer 1:1 Basis beruhen, d.h. jedes Element des Klartexts kann ausschließlich in ein Element des Chiffretexts umgewandelt werden. Darüber hinaus muss eine bestimmte Chiffrierung, die einen jeweiligen Chiffretext erzeugt hat, ausreichend sicher vor einer Kryptoanalyse sein. Um ein erforderliches Maß an Sicherheit zu bieten, wird ein einzigartiger Schlüssel gewählt, der nur eine einzigartige entsprechende Chiffrierung definiert, d.h. der in dem möglichen Ausmaß eine Situation verhindert, in der mehrere unterschiedliche Schlüssel jeweils reversible Umwandlungen in der selben Klartext-Chiffretext-Entsprechung ergeben. Die Leistungsfähigkeit eines Kryptographieverfahrens und somit der Grad des Schutzes, den es vor dem Eindringen Dritter bietet, ist direkt proportional zu der Zeit, die ein Dritter für die Durchführung der Kryptoanalyse benötigt, beispielsweise bei einer auf einem Schlüssel basierenden Chiffrierung, um den Chiffretext erfolgreich in den entsprechenden Klartext umzuwandeln, ohne zuvor Kenntnis über den Schlüssel zu haben. Zwar ist kein Verschlüsselungsverfahren vollständig gegen Kryptoanalyse gefeit, jedoch machen eine immense Anzahl an Berechnungen und die dafür erforderliche extrem lange Zeitspanne – je nach der zu diesem Zeitpunkt verfügbaren Rechnertechnologie – die für das Aufdecken einer Chiffrierung ohne vorherige Kenntnis ihres Schlüssels erforderlich sind, viele Verfahren für sämtliche praktischen Absichten und Zwecke ausreichend sicher, um ihre weit verbreitete Annahme und Verwendung zu rechtfertigen. In dieser Hinsicht wurde noch bis vor einigen Jahren von vielen angenommen, dass, wenn eine Chiffrierung so komplex war, dass ihre Dechiffrierung unter Berücksichtigung der zu diesem Zeitpunkt verfügbaren Verarbeitungstechnologie Mann-Jahre oder mehr erforderte, das zugrundeliegende Kryptographieverfahren ein ausreichendes Maß an Sicherheit bietet, um dessen Verwendung zu rechtfertigen.
  • Algorithmen mit öffentlichem Schlüssel sind eine Form einer auf einem Schlüssel basierenden Chiffrierung. Bei einem derartigen Algorithmus erzeugt jede der kommunizierenden Parteien ein Paar bestehend aus einem öffentlichen und einem privaten Schlüssel. Jede Partei hinterlegt ihren öffentlichen Schlüssel in einem öffentlich zugänglichen Bulletin-Board, einem Server oder einer anderen Einrichtung, hält jedoch den entsprechenden privaten Schlüssel geheim. Kurz gesagt greift eine Ausgangspartei, die eine Klartextnachricht verschlüsseln und an eine andere Partei, d.h. eine Zielpartei, senden will, wobei beide den selben Algorithmus mit öffentlichem Schlüssel verwenden, zuerst auf den öffentlichen Schlüssel der Zielpartei zu, verschlüsselt die Klartextnachricht unter Verwendung dieses öffentlichen Schlüssels zu einer Chiffretextnachricht und sendet die Chiffretextnachricht an die Zielpartei. Nach Empfang der Chiffretextnachricht dechiffriert die Zielpartei unter Verwendung ihres privaten Schlüssels die Nachricht, um den ursprünglichen Klartext wiederzugewinnen. Die Schlüssel sind unter Verwendung sehr spezifischer Algorithmen präzise berechnet, um ein erforderliches Maß an Sicherheit zu bieten, während sie vollständige Reversibilität gewährleisten.
  • Ein Signaturschema mit öffentlichem Schlüssel, das auf elliptischen Kurven basiert, ist durch OKAMOTO T. ET AL.: "AN EFFICIENT DIGITAL SIGNATURE SCHEME BASED ON AN ELLIPTIC CURVE OVER THE RING ZN" PROCEEDINGS OF THE ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE, DE, BERLIN, SPRINGER, Vol. CONF. 12, 18. August 1992 (1992-08-12), Seiten 54–65, XP000470375 ISBN: 3-540-57340-2, offenbart.
  • Zwar können Kryptographiesysteme mit öffentlichen Schlüsseln eine extrem sichere Verschlüsselung in einem Ausmaß bieten, dass das dechiffrieren einer Chiffrierung mit einem öffentlichen Schlüssel angesichts der schieren Zahl von hierfür potentiell erforderlichen Operationen einfach undurchführbar ist, jedoch haben derartige Systeme Nachteile, die ihren Nutzen einschränken können. Ein Hauptnachteil eines Systems mit öffentlichem Schlüssel ist dessen Abhängigkeit von individuellen Schlüsseln und einem Modulus, die jeweils eine relativ lange Bitsequenz tragen. Ein Modulus kann beispielsweise leicht 1024 Bit lang sein, während ein individueller Schlüssel aus einer Abfolge von Hunderten von Bits gebildet sein kann. Bei einigen Anwendungen, beispielsweise kryptographischen Anwendungsprogrammen, bei denen derartige Schlüssel leicht gespeichert und indiziert werden bzw. bei denen auf diese nach Bedarf zuge griffen werden kann, stellt die Länge des Schlüssels wenige, wenn überhaupt eine praktische Schwierigkeit für einen Benutzer dar. Bei anderen Anwendungen können derartige lange Schlüsselsequenzen, selbst wenn sie in alphanumerische Daten umgewandelt sind, immer noch übermäßig lange Zeichenketten ergeben, die eine leichte manuelle Eingabe durch einen Benutzer verhindern. Tatsächlich liegt die Quelle der extremen Sicherheit eines Systems mit öffentlichem Schlüssel in seiner Verwendung einer sehr langen Bitsequenz sowohl für die Schlüssel, als auch für den Modulus. Würde der Modulus merklich gekürzt, könnte eine verschlüsselte Nachricht durch Kryptoanalyse leicht entschlüsselt werden und somit wäre die Sicherheit des zugrundeliegenden Systems leicht zu beeinträchtigen.
  • Die Computertechnologie entwickelt sich stetig weiter. Prozessoren, die vor nur wenigen Jahren hinsichtlich ihres hohen Maßes an Komplexität und Geschwindigkeit noch unbekannt waren, werden zu immer weiter sinkenden Preisen kommerziell erhältlich. Infolgedessen vermitteln Verarbeitungssysteme, wie PCs und Workstations, deren Verarbeitungsleistung zuvor als zu gering angesehen wurde, um zahlreiche sogenannte "sichere" kryptographische Chiffrierungen zu überwinden, nunmehr aufgrund ihrer gegenwärtigen Leistungsfähigkeit und Ausgereiftheit Dritte die notwendige Fähigkeit, eben diese Chiffrierungen zu dechiffrieren. Was vor einem Jahrzehnt Jahre kontinuierlicher Berechnungen erfordert hat, kann nun in einem sehr kleinen Bruchteil dieser Zeit durchgeführt werden. Mit dem Fortschritt der Technologie schreitet im Gleichschritt auch die Kryptographie in dem stetigen Bemühen voran, zunehmend fortschrittlichere Kryptographieverfahren zu schaffen, die vor entsprechend intensiverer Kryptoanalyse gefeit ist.
  • Vollkommen losgelöst von der Kryptographie waren und sind Computersoftwarehersteller zumindest während des letzten Jahrzehnts erheblicher nicht autorisierter Verwendung ihrer Produkte durch nicht lizenzierte Dritte ausgesetzt. Dies ist teilweise durch die relative Leichtigkeit begründet, mit der ein Vertriebsmedium, wie Disketten oder eine CD-ROM, das ein Softwarepro gramm enthält, dupliziert werden kann. In dem Bemühen, derartige nicht autorisierte Nutzung zu verhindern, wird oft eine relativ lange alphanumerische Kennzeichnung mit jeder legitimen Kopie eines verpackten Softwareprodukts ausgegeben und muss von einem Benutzer eingegeben werden, wenn er dazu bei der Benutzerinstallation dieser Kopie auf einem Computer aufgefordert wird. Insbesondere enthält die Kopie ein Installationsprogramm, das zuerst geladen und von dem Benutzer ausgeführt wird, um den Installationsvorgang einzuleiten und in korrekter Abfolge durchzuführen. Zu einem frühen Zeitpunkt in dem Installationsvorgang fordert das Programm üblicherweise den Benutzer der installierten Kopie auf, manuell die Kennzeichnung einzugeben. Die Kennzeichnung kann beispielsweise zehn oder mehr Zeichen umfassen. Bei einem Vertrieb über Compact Discs (CDs) ist die Kennzeichnung auf ein Etikett aufgedruckt, das an jeder eine CD enthaltenden Hülle angebracht ist. Bei einem Vertrieb auf Diskettenbasis ist die Kennzeichnung oft auf ein Zertifikat oder einen anderen Einleger gedruckt, der in jeder Softwarepackung enthalten ist. Sobald der Benutzer die Kennzeichnung vollständig eingegeben und dies dem Programm üblicherweise durch Anclicken des auf einem Bildschirm angezeigten Buttons "OK" (oder dergleichen) signalisiert hat, versucht das Installationsprogramm in jedem Fall in dem Bemühen, festzustellen, ob die spezifische installierte Kopie eine lizenzierte Version ist, diese Kennzeichnung auf Gültigkeit zu prüfen. Ist die Kennzeichnung gültig, wird der Installationsvorgang fortgesetzt; ansonsten wird er frühzeitig abgebrochen. Die zugrundeliegende Voraussetzung ist, dass jeder Benutzer (d.h. Lizenznehmer), der eine gültige Kopie legal erworben hat, die gesamte Verpackung, wie sie von dem Hersteller bereitgestellt wird, besitzt und somit über eine gültige Kennzeichnung verfügt; ein nicht autorisierter Benutzer, der einfach ein Kopie des Programms selbst ohne die zugehörige Verpackung und/oder Einleger erhält, verfügt jedoch nicht über diese Kennzeichnung. Angesichts der Länge der Kennzeichnung ist die Wahrscheinlichkeit sehr gering, dass ein Benutzer rein zufällig eine gültige Kennzeichnung wählt. Daher wird erwartet, dass ein Benutzer, der versucht, eine nicht autorisierte Kopie zu installieren, wiederholt inkorrekte Kennzeich nungen eingibt, und somit praktisch nie erfolgreich die Kopie des erworbenen Programms installieren wird und infolgedessen diese Kopie effektiv nutzlos ist.
  • Unglücklicherweise hat sich in der Praxis gezeigt, dass die zugrundeliegenden Algorithmen zum Erzeugen derartiger Kennzeichnungen relativ leicht zu ermitteln sind, und sie wurden anscheinend recht weit und unerlaubterweise verbreitet. Daher offenbart US 5 737 424 A den Schutz von Software gegen unautorisierte Verwendung, indem sie einen mit einem auf einer elliptischen Kurve basierenden Algorithmus verschlüsselten Freischaltcode vorschlägt. Angesichts der anscheinenden Verfügbarkeit der Algorithmen, kann ein nicht autorisierter Benutzer mit einigem Aufwand eine gültige Kennzeichnung für ein zu installierendes Programm ermitteln. Somit schlagen die Versuche der Hersteller, die Verwendung derartiger nicht autorisierter Kopien zu verhindern, oft fehl.
  • Offensichtlich gehen Softwareherstellern durch nicht autorisierte Kopien ihrer Produkte Einnahmen verloren. Darüber hinaus bieten Softwarehersteller in der ein oder anderen Form oft Kundensupport für ihre Produkte an. In dem Bemühen, derartigen Support auf die Lizenznehmer zu beschränken, fordert das Kundensupportpersonal oft von einem Benutzer zuerst die Angabe der mit der Kopie des Produkts, für das Hilfe gesucht wird, einhergehenden Kennzeichnung als Vorbedingung für die Hilfe. Angesichts der Leichtigkeit, mit der nicht autorisierte Benutzer gültige Kennzeichnungen erhalten können, sehen sich Softwarehersteller erheblichen Schwierigkeiten gegenüber, zwischen Lizenznehmern und derartigen nicht autorisierten Benutzern zu unterscheiden, um den ersteren Hilfestellung zu geben und diese den letzteren zu verwehren. Infolgedessen geben Hersteller oft unwissentlich nicht autorisierten Nutzern Hilfestellung, wodurch zusätzliche und unnötige Support-Kosten entstehen. Wenn die Anzahl der nicht autorisierten Benutzer eines bestimmten Softwareprodukts ausreichend groß ist, können die mit diesem Produkt einhergehenden zusätzlichen Kosten relativ erheblich sein.
  • Es besteht daher auf diesem Gebiet ein Bedarf an einem Verfahren, welches es einem Softwarehersteller ermöglicht, das Auftreten von nicht autorisierten Kopien seines Softwareprodukts merklich zu reduzieren. Ein derartiges Verfahren sollte jede Kopie dieses Produkts einzigartig kennzeichnen und das Feststellen der Authentizität dieser Kopie ermöglichen. Vorzugsweise sollte ein derartiges Verfahren die kryptographische Erzeugung einer ausreichend sicheren Kennung durch ein System mit öffentlichem Schlüssel ermöglichen (d.h. bei dem heutigen Stand und der erwarteten Entwicklung der Computertechnologie, wäre es für einen Dritten in Unkenntnis der Schlüssel eine unlösbare Aufgabe, eine gültige Kennung zu erzeugen). Ferner sollte die Kennung ausreichend lang sein, um ihre Sicherheit zu gewährleisten, jedoch nicht derart übermäßig lang, um einen Benutzer zu verärgern, nötigenfalls die Kennung manuell eingeben muss, wie während eines Installationsvorgangs oder im Verlauf einer nachgesuchten Produkthilfestellung. Durch die Verwendung eines derartigen Verfahrens sollte ein Softwarehersteller in der Lage sein, die nicht autorisierte Verwendung seines Softwareprodukts und die ansonsten entstehenden einhergehenden Kosten merklich zu reduzieren. Dies kann es wiederum dem Hersteller wirtschaftlich ermöglichen, den Lizenznehmern andere Dienstleistungen wie Werbeaktionen anzubieten, wodurch die Zufriedenheit des Lizenznehmers sowohl mit dem Produkt, als auch dem Hersteller erhöht wird.
  • Überblick über die Erfindung
  • Vorteilhafterweise befriedigt die vorliegende Erfindung diesen Bedarf und überwindet die Nachteile des Standes der Technik, indem sie, eine Nachricht, beispielsweise eine numerische Produktkopie-Kennung, vorausgesetzt, eine authentische kryptographische Signatur basierend auf einem Kryptosystem mit öffentlichem Schlüssel und unter Verwendung eines Generatorwerts erzeugt, welcher unter Punkten auf einer elliptischen Kurve über einem finiten Feld gewählt ist. Das Verfahren bildet eine authentische Signatur unter Verwendung des Generatorwerts in Verbindung mit drei Schlüsseln: nämlich einem öffentlichen Schlüssel, einem privaten Schlüssel und einem geheimen Schlüssel, und erhöht somit die Sicherheit kryptographischer Signaturen erheblich, die durch ein herkömmliches Zwei-Schlüssel-Kryptosystem mit öffentlichem Schlüssel erzeugt wurden.
  • Durch die Verwendung der Erfindung ist die Kenntnis des öffentlichen und des privaten Schlüssels allein weitestgehend unzureichend, um es einer Person zu ermöglichen, innerhalb gegenwärtiger Möglichkeiten und ohne Kenntnis des geheimen Schlüssels, ein neues signiertes Nachrichtenpaar zu erzeugen, da eine authentische Signatur enthält.
  • Gemäß den Lehren der Erfindung wird, bei Vorhandensein von Punkten auf einer elliptischen Kurve, der Wert eines bestimmten Punkts auf der Kurve als der Generatorwert gewählt. Der private Schlüssel wird zufällig gewählt. Der öffentliche Schlüssel wird als eine vorbestimmte Funktion des Wertes des Generators und des privaten Schlüssels bestimmt, insbesondere durch eine Exponentiation des ersteren mit dem letzteren. Der geheime Schlüssel dient der Erzeugung einer Pseudo-Zufallszahl. Ein erster Teil der authentischen Signatur wird sodann durch vordefinierte Funktionen des Generators, der Pseudo-Zufallszahl und einer Nachricht (beispielsweise eine zufällig gewählte Kennung) gebildet. Insbesondere wird zuerst eine Exponentiation des Generators mit dem Wert der Pseudo-Zufallszahl durchgeführt, um einen Wert zu erhalten, der seinerseits mit der Nachricht verknüpft wird. Die resultierende verknüpfte Zahl wird sodann durch eine vorbestimmte Hash-Funktion verarbeitet, um den ersten Teil der authentischen Signatur zu erhalten. Der verbleibende Teil der authentischen Signatur wird in Reaktion auf eine vordefinierte Funktion des ersten Teils, der Pseudo-Zufallszahl und des privaten Schlüssels erzeugt. Die gesamte authentische Signatur wird schließlich durch das Verknüpfen beider Teile der Signatur miteinander gebildet.
  • Eine binäre Kennzeichnung, wie sie zur Verwendung mit einer Softwareproduktkopie benutzt wird, wird durch Verknüpfen der Kennung mit der authentischen Signatur gebildet. Die binäre Kennzeichnung wird in alphanumerische Form umgewandelt, und anschließend der Produktkopie zugeordnet, üblicherweise durch Drucken auf ein Etikett, welches an der Verpackung dieser Kopie anzubringen ist. Der öffentliche Schlüssel und der Generatorwert sind in einer geeigneten Datei (Dateien) in der Produktkopie selbst gespeichert, um bei einer nachfolgenden Authentisierung der Kopie während der Installation auf dem Computer eines Kunden Verwendung zu finden.
  • Während der Installation der Produktkopie wird die von dem Benutzer eingegebene Signatur authentisiert, indem zuerst im Kundencomputer der erste Teil der Signatur unter Verwendung des Generatorwerts, des öffentlichen Schlüssels und der gesamten Kennzeichnung, insbesondere deren Kennung und die Signatur, welche der Benutzer eingegeben hat, berechnet wird. Anschließend wird der Wert des ersten Teils mit dem Wert des gleichen Teils in der Signatur verglichen, welche in der Kennzeichnung enthalten ist, welche der Benutzer eingegeben hat, um festzustellen, ob diese beiden Werte identisch übereinstimmen. Ist eine derartige Übereinstimmung gegeben, ist die eingegebene Signatur authentisch und die Installation dieser Kopie geht weiter; ansonsten ist sie nicht authentisch und die Installation wird vorzeitig beendet.
  • Drei verschiedene Phasen werden zur Implementierung der Erfindung in Verbindung mit der Erzeugung von Produktkopiekennzeichnungen verwendet: (a) Initialisierung, die einmal auftritt, üblicherweise durch den Softwarehersteller veranlasst, um verschiedene Parameterwerte zu erzeugen; (b) die Kennzeichnungserzeugung, die wiederholt an einem Medienduplikationsort erfolgt, wobei die während der Initialisierung erzeugten Parameterwerte verwendet werden, um für jede unterschiedliche Produktkopie eine entsprechende Kennzeichnung zu erzeugen, die eine authentische Signatur zur Verwendung mit dieser Kopie enthält; und (c) die Authentisierung, die bei dem Benutzer während der Ausführung eines Installationsprogramms separat und anschließend durchgeführt wird, um die Signatur in einer von dem Benutzer eingegebenen und einer bestimmten Produktkopie, welche der Benutzer zu installieren versucht, zugeordneten Kennzeichnung zu authentisieren.
  • Kurzbeschreibung der Zeichnungen
  • Die Lehren der vorliegenden Erfindung sind leichter verständlich, wenn sie unter Bezugnahme auf die nachfolgende detaillierte Beschreibung in Verbindung mit den zugehörigen Zeichnungen betrachtet werden, welche zeigen:
  • 1 ein vereinfachtes High-Level-Blockdiagramm des CD-ROM-Herstellungssystems 5, das die Lehren der vorliegenden Erfindung beinhaltet;
  • 2 ein High-Level-Blockdiagramm eines typischen Kundencomputers 200, der illustrativ die vorliegende Erfindung im Verlauf der Installation eines Programms von einer beispielsweise mittels des Systems 5 von 1 hergestellten CD-ROM verwendet;
  • 3 ein Blockdiagramm des Kundencomputers 200 von 2;
  • 4 ein Flussdiagramm des Kennzeichnungserzeugungsvorgangs 400, das innerhalb des Computers 10 von 1 ausgeführt wird; und
  • 5 ein Flussdiagramm des Authentisierungsvorgangs 500, der in dem Kundencomputer 200 der 2 und 3 ausgeführt wird.
  • Zum leichteren Verständnis wurden, wenn möglich, identische Bezugszeichen verwendet, um identische Elemente zu bezeichnen, die den Figuren gemeinsam sind.
  • Detaillierte Beschreibung
  • Nach der Betrachtung der nachfolgenden Beschreibung wird für den Fachmann auf diesem Gebiet deutlich ersichtlich sein, dass die Lehren der vorliegenden Erfindung in einer beliebigen Anwendung aus einer Vielzahl verschiedener Anwendungen eingesetzt werden können, bei denen bei einem Absender die Notwendigkeit entsteht, eine kryptographische Signatur für eine bestimmte Nachricht zu erzeugen. Die Erfindung ist insbesondere, obgleich nicht ausschließlich, zur Verwendung in solchen Fällen geeignet, in denen Signaturen für eine einzigartige Reihe von Nachrichten, welche sämtlich von einem gemeinsamen Absender, d.h. einem Unterzeichner, stammen, erzeugt werden. Nicht nur bietet jede resultierende Signatur hohe Sicherheit, d.h. macht eine Kryptoanalyse undurchführbar, sondern sie kann auch als von nur diesem gemeinsamen Unterzeichner kommend authentisiert werden. In dieser Hinsicht kann jede derartige Signatur durch einen öffentlichen Schlüssel öffentlich als Teil einer Gruppe von gültigen Schlüsseln verifiziert werden, und kann ferner unter Verwendung eines geheimen Schlüssels auch privat und einzigartig authentisiert werden. Durch die Verwendung der Erfindung würde vorteilhafterweise selbst wenn ein Dritter (nicht der beabsichtigte Unterzeichner) durch Kryptoanalyse feststellen könnte, wie unerlaubterweise eine Signatur erzeugt werden kann, die für den Empfänger gültig erscheint, dieser Dritte der undurchführbaren Aufgabe gegenüberstehen, diese bestimmte Signatur gegenüber dem Empfänger korrekt zu authentisieren. Zur Vereinfachung der nachfolgenden Erörterung wird die Erfindung in Zusammenhang mit der Erzeugung einer Signatur dargelegt, die in einer entsprechenden Kennzeichnung zu verwenden ist, welche selbst in einzigartiger Weise einer bestimmten Kopie eines Softwareprodukts zugeordnet ist, um diese bestimmte Kopie während der Installation auf beispielsweise einem Kundencomputer (PC) zu authentisieren.
  • A. Anwendungsumgebung
  • Es wird auf 1 verwiesen, welche ein vereinfachtes High-Level-Blockdiagramm eines CD-ROM-Produktionssystems 5 darstellt. Dieses System in seiner dargestellten rudimentären Form, weist den Computer 10, den CD-Brenner 50 und den Drucker 60 auf. Dieses System produziert eine CD-ROM, welche sämtliche Dateien enthält, die zum zusammenfassenden Implementie ren einer vollständigen Kopie eines Anwendungsprogramms, wie zum Einbinden in ein verpacktes Softwareprodukt, erforderlich sind. Dieses Produkt kann beispielsweise ein Textverarbeitungsprogramm, ein Tabellenkalkulationsprogramm, eine Gruppe derartiger Programme, die zusammen angeboten werden, ein Betriebssystem, oder jedes andere verpackte Softwareprodukt sein, das von dem Hersteller als eine Einheit hergestellt und vertrieben wird.
  • Das System 5 kopiert nicht nur sämtliche Dateien, die zum Implementieren einer bestimmten Kopie erforderlich sind, sondern das System erzeugt ferner eine alphanumerische Kennzeichnung, die im allgemeinen auf ein Etikett gedruckt und entweder an einem Träger, der die CD-ROM enthält, oder einer Box befestigt wird, in welcher die CD-ROM angeordnet wird. Diese Kennzeichnung hat zwei Funktionen: (a) sie ist eine einzigartige Kennzeichnung der bestimmten CD-ROM, der sie zugeordnet ist, und (b) durch die vorliegende Erfindung kann sie kryptographisch für diese bestimmte CD-ROM und im wesentlichen für keine andere authentisiert werden. Hinsichtlich der letzteren Funktion wird nachfolgend bei jeder auf eine Aufforderung hin erfolgenden Eingabe der Kennzeichnung durch den Benutzer während der Installation des Produkts von dieser bestimmten CD-ROM auf einen PC (dieser Vorgang wird im folgenden in Verbindung mit 2 allgemein und mit 5 im Detail beschrieben) ein Authentisierungsvorgang, der als Teil des Installationsprogramms ausgeführt wird, in Verbindung mit auf der CD-ROM gespeicherten spezifischen Informationen (einschließlich öffentlichen und geheimen Schlüsseln) kryptographisch feststellen, ob die von dem Benutzer gerade eingegebene Kennzeichnung von dem Hersteller stammt und für diese bestimmte CD-ROM authentisch ist.
  • Zwar kann der Hersteller eine großen Satz gültiger Kennzeichnungen für seine eigenen Verwendungszwecke erzeugen oder diesen Satz während der Herstellung des Produkts auf sichere Weise an autorisierte dritte Disk-Kopierer ausgeben, jedoch kann jede einzelne von dem System 5 für eine bestimmte Kopie des Produkts erzeugte Kennzeichnung einzigartig für die entsprechende Produktkopie authentisiert werden. Sollte ein Dritter eine unrechtmäßige Kopie der Software erhalten, die sämtliche Anwendungs- und Installationsdateien enthält, ist es auf diese Weise ungeachtet des Mediums, auf dem sich diese Kopie befindet, für den Dritten, selbst wenn er über eine Liste gültiger Kennzeichnungen verfügt, undurchführbar, ein Kennzeichnung zu erzeugen, die für die bestimmte Kopie korrekt authentisiert werden kann.
  • Wie insbesondere in der 1 dargestellt, speichert der Computer 10 lokal Anwendungsprogramm 20 und insbesondere das Softwarekopieerzeugungsprogramm 30, und führt diese aus. Diese Dateien umfassen sämtliche Programm- (welche ggf. zugehörige Datendateien einschließen) und Installationsdateien, die zum vollständigen Installieren und Implementieren des Produkts auf einem entfernten Computer, beispielsweise einem Kunden-PC erforderlich sind. In diesem Computer 10 befinden sich diese Dateien kollektiv im Programmspeicher 15, illustrativ eine lokale Festplatte, welcher alternativ als eine Netzwerkverbindung mit einem entfernten Datenserver implementiert sein kann. Diese Dateien werden, wie durch die Linie 17 symbolisiert, nacheinander durch das herkömmliche Dateienkopierprogramm 32 heruntergeladen, das innerhalb des Softwarekopieerzeugungsprogramms 30 ausgeführt wird. Das Programm 32 gibt die jeweiligen herunterzuladenden Dateien an, greift auf jede dieser Dateien entsprechend der von dem Programmspeicher 15 kommenden Reihenfolge zu und lädt jede solche Datei in den CD-Brenner 50 mit einem Befehl, diese Datei auf eine CD-ROM zu schreiben, die sodann in den Brenner eingelegt wird. Der Kennzeichnungserzeugungsvorgang 400, der im folgenden und insbesondere in Zusammenhang mit 4 näher erörtert wird, erzeugt eine alphanumerische Kennzeichnung 75, die üblicherweise 25 Zeichen lang ist und der jeweiligen CD-ROM zuzuordnen ist, auf welche diese Dateien geschrieben werden. Sobald die Kennzeichnung durch den Vorgang 400 erzeugt worden ist, liefert dieser Vorgang diese Kennzeichnung an den in 1 dargestellten Drucker 60, der die Kennzeichnung auf ein Etikett druckt. Nachdem sämtliche Dateien auf die CD-ROM kopiert wurden, wird diese anschließend, wie durch die gestrichelte Linie 55 symbolisiert, in eine geeignete Verpackung 70, beispielsweise einen CD-ROM-Träger, eingelegt. Das Etikett wird anschließend, wie durch die gestrichelte Linie 65 symbolisiert, an der Außenfläche dieser Verpackung angebracht. Das Verfahren 400 kann derart durchgeführt werden, dass die Kennzeichnung im wesentlichen gleichzeitig mit dem Schreiben der Programmdateien auf die CD-ROM oder in einem zeitversetzten Verhältnis dazu erzeigt wird. Zwar ist das System 5 aus Gründen der Einfachheit als nur einen Computer, einen CD-Brenner und einen Drucker aufweisend dargestellt, jedoch kann das System 5 tatsächlich mehrere Computer, üblicherweise mit Netzwerkverbindungen zu einem entfernen Datenserver, mehrere CD-Brenner und mehrere Drucker umfassen, um je nach Wunsch Pipeline- und Parallel-Programmkopiervorgänge zu implementieren.
  • Die Kennzeichnung 75, die bei 80 dargestellt ist, enthält die Felder 83 und 87, welche einen Identifikator (ID) enthalten, dem eine aus diesem Identifikator gebildete Signatur, d.h. SIGN(ID), folgt. Wie in der Detaildarstellung 90 der Kennzeichnung gezeigt, enthält der Identifikator eine Nachricht M mit einem Wert, der für jede Kopie jedes von einem Softwarehersteller erzeugten Produkts einzigartig ist. Illustrativ handelt es sich bei dieser Nachricht, wenn sie in Binärform umgewandelt ist, um eine binäre serielle 32-Bit-Zahl, die für lediglich eine Kopie eines Softwareprodukts unter sämtlichen von dem Hersteller hergestellten Produkten kennzeichnend ist. Die Signatur enthält, in Binärform umgewandelt, einen illustrativen 83-Bit-Wert, bei dem es sich um eine Verknüpfung (wobei eine Verknüpfungsoperation als "0" wiedergegeben wird) zweier Werte r und s handelt, welche im folgenden näher erörtert werden, und mittels der Erfindung von dem Hersteller unter Verwendung des Identifikators gebildet werden.
  • 2 zeigt ein High-Level-Blockdiagramm eines typischen Kundencomputers 200, der illustrativ während der Installation eines Programms von einer CD-ROM, wie beispielsweise der mittels des Systems 5 von 1 hergestellten CD-ROM, die Erfindung verwendet.
  • Um ein Programm von der CD-ROM zu installieren, führt der Benutzer, wie symbolisch durch die Linie 207 dargestellt, die CD-ROM in ein CD-Laufwerk des Kundencomputers 200 ein. Entweder befiehlt der Benutzer dem Computer 200 manuell die Ausführung des auf der CD-ROM gespeicherten Installationsprogramms 220 (das üblicherweise beispielsweise "setup.exe" oder "install.exe" heißt) oder dieses Programm wird automatisch ausgeführt, beispielsweise durch eine herkömmliche "Autorun"-Fähigkeit, die sowohl das Programm 220 enthält, als auch in einem auf dem Kundencomputer ausgeführten Betriebssystem implementiert ist. Das Installationsprogramm 220 wird als eines der Anwendungsprogramme 210 ausgeführt, welche sodann auf dem Kundencomputer ausgeführt werden. Das Programm 220, das einen vordefinierten Installationsvorgang für das Produkt und vor der Übertragung irgendwelcher Programmdateien für das Produkt von der CD-ROM in den lokalen Massenspeicher durchführt, führt den Authentisierungsvorgang 500 durch. Dieser Vorgang, der in Verbindung mit 5 näher beschrieben ist, fordert den Benutzer auf, die Kennzeichnung einzugeben, welche der bestimmten CD-ROM zugeordnet ist, von welcher das Programm installiert wird. Der Benutzer gibt in Reaktion auf diese Aufforderung manuell, üblicherweise über eine zu dem Computer 200 gehörende Tastatur, die spezifische 25-stellige alphanumerische Kennzeichnung ein, die zu dieser bestimmten CD gehört. Sobald der Benutzer angibt, dass er die Kennzeichnung vollständig eingegeben hat, üblicherweise durch Anclicken eines geeigneten Buttons, der auf einem ebenfalls zu dem Computer 200 gehörenden lokalen Bildschirm angezeigt wird, mit einer Maus, wird durch den Authentisierungsvorgang 500 unter Verwendung von in der Kennzeichnung enthaltenen Informationen, insbesondere der Werte M, r und s sowie auf der CD-ROM selbst gespeicherter spezifischer Datenwerte, die im folgenden definiert werden, festgestellt, ob die von dem Benutzer eingegebene Kennzeichnung authentisch ist, d.h., ob sie von dem Hersteller stammt und in bezug auf diese bestimmte CD-ROM authentisch ist.
  • Wenn der Authentisierungsvorgang 500 die von dem Benutzer eingegebene Kennzeichnung erfolgreich authentisiert, setzt dieser Vorgang das Installati onsprogramm 220 davon in Kenntnis (wie in 2 dargestellt), welches seinerseits den Installationsvorgang fortsetzt und anschließend geeignete Programmdateien von der CD-ROM auf den Kundencomputer 200 kopiert. Wenn der Authentisierungsvorgang 500 die Kennzeichnung jedoch nicht authentisiert, beendet der Vorgang 500 den Installationsvorgang frühzeitig, ohne irgendwelche Programmdateien auf den Kundencomputer 200 zu kopieren. Basierend auf der Tatsache, ob die Kennzeichnung authentisiert wurde oder nicht, erzeugt der Authentisierungsvorgang 500 eine geeignete Nachricht und zeigt diese dem Benutzer an, wie durch die Linie 230 dargestellt. Sei die Kennzeichnung authentisiert oder nicht, diese Nachricht kann einfach in der Erzeugung und Anzeige eines nächstfolgenden Bildschirms in einer Postauthentisierungsphase des Installationsvorgangs impliziert sein, oder es kann sich um eine spezifische Warnungsnachricht handeln, die angibt, dass der Benutzer nicht berechtigt ist, die zu installierende Kopie zu verwenden und die Installation daher vorzeitig beendet wird.
  • 3 zeigt ein Blockdiagramm des Kundencomputers (PC) 200.
  • Wie dargestellt, umfasst der Kundencomputer 200 Eingabeschnittstellen (I/F) 320, einen Prozessor 340, eine Kommunikationsschnittstelle 350, eine Speicher 330 und Ausgabeschnittstellen 360, die sämtlich auf herkömmliche Weise durch den Bus 370 verbunden sind. Der Speicher 330, der üblicherweise in unterschiedlichen Ausführungsformen vorliegt, wie beispielsweise: als ein Direktzugriffsspeicher (RAM) 332 zum temporären Speichern von Daten und Befehlen; als Diskettenlaufwerk(e) 334, um auf einen Benutzerbefehl hin Daten mit Floppydisketten auszutauschen; als ein nichtflüchtiger Massenspeicher 335, der als eine Festplatte implementiert und üblicherweise von magnetischer Natur ist; und als ein CD-Laufwerk 336. Obwohl die Erfindung in Zusammenhang mit der Verwendung mit auf CD-ROM vertriebenen Softwareprodukten beschrieben wird, ist die Erfindung jedoch auf andere Softwareprodukte anwendbar, die auf anderen Massenmedien vertrieben werden, wie beispielsweise Floppydisketten, wobei die Medien in diesem Fall in ein geeignetes Laufwerk eingesetzt werden, wie beispielsweise ein Diskettenlaufwerk 334, von welchem das Installationsprogramm gelesen und ausgeführt wird. Der Massenspeicher 335 kann ebenfalls eine andere (nicht spezifisch dargestellte) optische Medienleseeinrichtung (oder -schreibeinrichtung) enthalten, um Informationen von geeigneten Speichermedien zu lesen (und Informationen auf diese zu schreiben). Darüber hinaus speichert der Massenspeicher 335 auch ausführbare Befehle und zugehörige Daten für das Betriebssystem (O/S) 337 und Anwendungsprogramme 210. Die Programme 210 umfassen ein Installationsprogramm 220, welches, sobald es während eines Softwareinstallationsvorgangs geladen wird, selbst den erfindungsgemäßen Authentisierungsvorgang 500 umfasst (siehe 5). Das O/S 337, das in 3 dargestellt ist, kann durch jedes herkömmliche Betriebssystem implementiert sein, wie beispielsweise das Betriebssystem WINDOWS NT ("WINDOWS NT" ist ein eingetragenes Warenzeichen der Microsoft Corporation, Redmond, Washington). Angesichts dessen werden hierin keinerlei Komponenten des O/S 337 erörtert, da diese sämtlich irrelevant sind. Es mag genügen, dass das Installationsprogramm 220, das eines der Anwendungsprogramme 210 ist, unter der Steuerung des O/S ausgeführt wird.
  • Vorteilhafterweise erfordert das erfindungsgemäße Verfahren, wenn es zur Verwendung in einem Softwareprodukt eingebettet ist, keine weitere wesentliche Benutzerinteraktion als die Eingabe der Kennzeichnung der spezifischen zu installierenden Produktkopie.
  • Wie in 3 dargestellt, können eingehende Informationen von zwei beispielhaften externen Quellen kommen: von einem Netzwerk gelieferte Informationen, beispielsweise von dem Internet und/oder einer anderen Netzwerkeinrichtung, über die Netzwerkverbindung 355 mit der Kommunikationsschnittstelle 350, oder von einer gewidmeten Eingangsquelle, über den (die) Pfad(e) 310 zu den Eingangsschnittstellen 320. Ein gewidmeter Eingang kann aus einer großen Vielzahl verschiedener Datenquellen stammen, von denen keine hier besonders relevant ist. Obwohl die Erfindung im Zusammenhang mit einer lokalen Installation von einer CD-ROM erörtert wird, kann die Erfindung mit einer Netzwerkinstallation eines Produkts, beispielsweise über das Internet oder eine andere Netzwerkeinrichtung (beispielsweise ein Intranet), auf den Computer 200 eingesetzt werden. In diesem Fall kann ein Hersteller oder ein Seiten-Lizenzadministrator, beispielsweise bei Empfang einer elektronischen Zahlung für die Produktkopie oder eine korrekt autorisierte Anforderung einer lizenzierten Kopie, sodann von einem entfernten Netzwerkdatenserver eine Datei herunterladen, welche eine entsprechende Kennzeichnung für diese Produktkopie enthält. Wenn ein zugehöriges Installationsprogramm entfernt auf dem Datenserver ausgeführt werden muss, greift der Server auf die auf dem Kundencomputer gespeicherte Datei zu, welche die Kennzeichnung enthält, und authentisiert sodann diese Kennzeichnung vor dem Herunterladen einer Programmdatei auf den Computer 200. Wenn das Installationsprogramm lokal ausgeführt werden soll, initiiert der Server (oder der Benutzer zu einem späteren Zeitpunkt) sobald sämtliche Programm- und Installationsdateien durch den Server heruntergeladen sind, die lokale Ausführung des Installationsprogramms. Dieses Programm greift lokal auf die Datei zu, welche die Kennzeichnung enthält, und geht zur Authentisierung der Produktkopie über.
  • Die Eingangsschnittstellen 320 umfassen geeignete Schaltungen, um die notwendigen und entsprechenden elektrischen Verbindungen herzustellen, welche zur physischen Verbindung und Schnittstellenbildung für jede unterschiedliche gewidmete Eingangsinformationsquelle mit dem Computersystem 200 erforderlich sind. Unter Steuerung durch das Betriebssystem tauschen Anwendungsprogramme 210 Befehle und Daten mit den externen Quellen über die Netzwerkverbindung 355 oder den (die) Pfad(e) 310 aus, um Informationen, welche von einem Benutzer während der Programmausführung üblicherweise angefordert werden, zu senden und zu empfangen.
  • Darüber hinaus dienen die Eingangsschnittstellen 320 auch der elektrischen Verbindung und der Bildung von Schnittstellen für Benutzereingabevorrichtungen 395, wie eine Tastatur und eine Maus, mit dem Computersystem 200. Die Anzeige 380, beispielsweise ein herkömmlicher Farbbildschirm, und der Drucker 385, beispielsweise ein herkömmlicher Laserdrucker, sind über die Kabel 363 bzw. 367 mit Ausgangsschnittstellen 360 verbunden. Die Ausgangsschnittstellen weisen die erforderlichen Schaltungen zum elektrischen Verbinden und zum Bilden der Schnittstellen von Anzeige und Drucker mit dem Computersystem auf. Allgemein gesagt, und wie ersichtlich, kann die Erfindung einzigartige, sichere und authentisierbare Signaturen für nahezu jede Art von Nachricht erzeugen, nicht nur um Produktkopiekennzeichnungen zu erzeugen, und dies ungeachtet der Modalitäten durch welche der Kundencomputer 200 diese Nachrichten erhält, speichert und/oder überträgt.
  • Da ferner die spezifischen Hardwarekomponenten des Computersystems 200 sowie sämtliche Aspekte der in dem Speicher 335 gespeicherten Software, außer den die Erfindung implementierenden Modulen, herkömmlich und bekannt sind, werden sie nicht weiter im Detail erörtert. Allgemein gesagt weist der Computer 10 eine Architektur auf, die derjenigen des Kundencomputers 200 ähnlich ist.
  • B. Erfindungsgemäßes Verfahren
  • Mittels der Erfindung wird bei Vorliegen einer Nachricht, beispielsweise eines numerischen Produktkopie-Identifikators, basierend auf einem kryptographischen System mit öffentlichem Schlüssel und durch Verwenden eines unter Punkten auf einer elliptischen Kurve über einem finiten Feld gewählten Generatorwerts eine authentische Signatur für diese Nachricht erzeugt. Das Verfahren beruht auf der Erzeugung der authentischen Signatur unter Verwendung des Generatorwerts in Verbindung mit drei Schlüsseln für eine beispielhafte signierende Partei A: einem öffentlichen Schlüssel (PA), einem Privaten Schlüssel (SA) und einem geheimen Schlüssel (KA).
  • Wie bei der Kryptographie mit öffentlichem Schlüssel wird eine Signatur für eine Nachricht (M) von dem Unterzeichner A als Funktion der Nachricht und des öffentlichen und des privaten Schlüssels des Unterzeichners erzeugt, d.h.: Sign (M, PA, SA) → SIGNATURE_A (M).
  • Ein Empfänger dieser Nachricht, B, kann die Signatur der Nachricht, welche er empfängt, als Funktion der Nachricht, ihrer Signatur und des öffentlichen Schlüssels des Unterzeichners verifizieren, d.h. Verify (M,SIGNATURE_A(M), PA). Die Ergebnisse der Verifizierung sind im allgemeinen eine Ja/Nein-Angabe, welche angeben, ob die Signatur gültig ist oder nicht. Wenn die Signatur gültig ist, wird sie als eine Signatur angesehen, die aus der Verwendung der bestimmten öffentlichen und privaten Schlüssel ("Schlüsselpaar") des Unterzeichners resultiert. Sollte ein Dritter Kenntnis von diesem Schlüsselpaar erlangen, entweder durch Kryptoanalyse von Nachrichten und zugehörigen Signaturen oder unerlaubterweise, wie durch Diebstahl dieser Schlüssel, so kann dieser Dritte neue signierte Nachrichtenschlüsselpaare, d.h. Nachrichten und gültige Signaturen für jede dieser Nachrichten, erzeugen.
  • Das erfindungsgemäße Verfahren erhöht die Sicherheit von Signaturen erheblich, indem sie erfordert, dass eine authentische Signatur nicht nur aus einem öffentlichen und einem privaten Schlüssel des Unterzeichners, sondern auch aus dem geheimen Schlüssel des Unterzeichners gebildet wird: Authentic_Sign (M, PA, SA, KA) → AUTHENTIC_SIGNATURE_A(M).
  • Durch die Verwendung der Erfindung ist die Kenntnis des öffentlichen und des privaten Schlüssels allein bei weitem unzureichend, um es einer Person, innerhalb der Grenzen des Durchführbaren und ohne Kenntnis des geheimen Schlüssels, ein neues signiertes Nachrichtenpaar zu erzeugen, das eine authentische Signatur enthält. Es wird angenommen, dass bei der Vielzahl von Nachrichten und deren authentischen Signaturen, die Aufgabe der Wiederge winnung des geheimen Schlüssels aus signierten Nachrichtenpaaren, d.h. aus lediglich den Nachrichten und den authentischen Signaturen, ebenfalls schlichtweg undurchführbar ist. In dieser Hinsicht wird geschätzt, dass bei einer binären 83-Bit-Signatur die Wahrscheinlichkeit des Erzeugens einer derartigen authentischen Signatur ohne vorherige Kenntnis des geheimen Schlüssels in der Größenordnung von (0,5)30 liegt, was bei der infinitesimalen Größe einer Wahrscheinlichkeit der Wahrscheinlichkeit eines zufälligen Erratens nahe kommt.
  • Im wesentlichen und gemäß den Lehren der Erfindung wird, bei Vorhandensein von Punkten auf einer spezifischen elliptischen Kurve, der Wert eines bestimmten Punkts auf der Kurve als ein Generatorwert gewählt. Der private Schlüssel wird zufällig ausgewählt. Der öffentliche Schlüssel wird als eine vordefinierte Funktion der Werte des Generators und des privaten Schlüssels bestimmt, insbesondere als eine Exponentiation des ersteren mit dem letzteren. Der geheime Schlüssel dient der Erzeugung einer Pseudo-Zufallszahl. Ein erster Teil der authentischen Signatur wird sodann durch vordefinierte Funktionen des Generators, der Pseudo-Zufallszahl und einer Nachricht (beispielsweise einen zufällig gewählten Produktkopie-Identifikator) erzeugt. Insbesondere wird der Generator zuerst mit dem Wert der Pseudo-Zufallszahl potenziert, um einen Wert zu erhalten, der wiederum mit der Nachricht verknüpft wird. Eine resultierende verknüpfte Zahl wird sodann mittels einer vorbestimmten Hash-Funktion verarbeitet, um den ersten Teil der authentischen Signatur zu ergeben. Der verbleibende Teil der authentischen Signatur wird in Reaktion auf eine vordefinierte Funktion des ersten Teils, der Pseudo-Zufallszahl und des privaten Schlüssels erzeugt. Die vollständige authentische Signatur wird sodann durch Verknüpfen beider Teile der Signatur miteinander gebildet.
  • Wenn die Erfindung verwendet wird, um Produktkopiekennzeichnungen zu implementieren, werden der öffentliche Schlüssel und der Generatorwert in einer geeigneten Datei (Dateien) in der Produktkopie selbst gespeichert, um während der Installation der Kopie auf einem Kundencomputer, beispielsweise dem in 2 dargestellten Kundencomputer 200, bei der Authentisierung Verwendung zu finden.
  • Während der Installation dieser Produktkopie wird die von einem Benutzer eingegebene Signatur authentisiert, indem zuerst in dem Kundencomputer der erste Teil der Signatur unter Verwendung des Generatorwerts, des öffentlichen Schlüssels und der gesamten von dem Benutzer eingegebenen Kennzeichnung, insbesondere deren Identifikator und der Signatur, berechnet wir, und anschließend festgestellt wird, ob der Wert des ersten Teils identisch mit dem Wert des gleichen Teils der Signatur ist, welche der Benutzer eingegeben hat. Ist eine derartige Übereinstimmung gegeben, ist die eingegebene Signatur authentisch und die Installation der Produktkopie wird fortgesetzt; ansonsten ist sie nicht authentisch und die Installation dieser Kopie wird vorzeitig abgebrochen.
  • Drei unterschiedliche Phasen werden zur Implementierung der Erfindung in Verbindung mit der Erzeugung von Produktkopiekennzeichnungen verwendet: (a) die Initialisierung, welche üblicherweise durch den Softwarehersteller ein Mal erfolgt, um verschiedene Parameterwerte zu erzeugen; (b) die Erzeugung der Kennzeichnung (insbesondere der im folgenden anhand der 4 näher erörterte Vorgang 400), die an einer Medienkopierstelle unter Verwendung der während der Initialisierung erzeugten Parameterwerte wiederholt durchgeführt wird, um für jede unterschiedliche Produktkopie eine entsprechende Kennzeichnung zu erzeugen, die eine authentische Signatur zur Verwendung mit dieser Kopie enthält, und (c) die Authentisierung (insbesondere der im folgenden anhand der 5 näher erörterte Vorgang 500), welche während der Ausführung eines Installationsprogramms bei einem Benutzer (Kundencomputer) separat und anschließend erfolgt, um die Signatur in einer von dem Benutzer eingegebenen Kennzeichnung zu authentisieren, welche einer bestimmten Produktkopie zugeordnet ist, die der Benutzer zu installieren versucht, und um so die Installation fortzusetzen oder nicht.
  • Soweit eine mittels der vorliegenden Erfindung erzeugte authentische Signatur auf herkömmliche Weise durch die Verwendung des öffentlichen Schlüssels verifiziert werden kann, werden aus Gründen der Kürze sämtliche Details bezüglich der spezifischen Realisierung der Verifizierung ausgelassen.
  • 1. Definitions- und Initialisierungsaspekte
  • Zunächst werden verschiedene von dem erfindungsgemäßen Verfahren verwendete Variablen und die zum Initialisieren des Verfahrens verwendeten Schritte definiert.
  • Zuerst wird ein finites Feld (K), vorzugsweise ein Galois-Feld, d.h. K = GF(p), derart definiert, dass p sehr groß ist, beispielsweise 384 Bit und größer, und p = 1 (mod 4). Alternativ könnte dieses Feld als K = GF(2m) definiert werden.
  • Anschließend wird eine elliptische Kurve E über diesem Feld definiert. Gemäß den erfindungsgemäßen Lehren wird eine elliptische Kurve verwendet, bei der komplexe Addition und komplexe Multiplikation gegeben sind, damit die bei dem erfindungsgemäßen Verfahren und den resultierenden Kennzeichnungen verwendeten Parameter relativ kurz sind und dennoch die erforderliche Sicherheit vor bestimmten Formen kryptographischer Angriffe bieten, wobei diese Sicherheit ohne die Verwendung elliptischer Kurven bei derartig kurzen Parametern nicht möglich wäre. Allgemein gesagt weisen die elliptischen Kurven Punkte (x,y) auf, welche Kurven der Form y2 = ax3 + bx2 + cx + d entsprechen, wobei a, b, c und d vordefinierte Koeffizienten sind. Durch Variieren der Werte dieser vier Koeffizienten variiert die Anzahl der Punkte auf der Kurve entsprechend. Zwar könnte eine elliptische Kurve der allgemeinen Form verwendet werden, jedoch wurde vorzugsweise und zu Beispielzwecken die Kurve y2 = x3 + x über das finite Feld K gewählt, wodurch wiederum die Anzahl der Punkte |E| auf der Kurve E wie folgt berechnet werden kann. Wenn p = α2 + β2, wobei α = 1 (mod 4), dann ist |E| = p +1 – 2α = (α – 1)2 + β2. Somit kann die Anzahl der Punkte auf der Kurve durch entsprechendes Wählen von α und β bestimmt werden.
  • Eine große Primzahl q wird derart gewählt, dass sie mindestens ungefähr 60 Bit lang ist, und α sowie β werden entsprechend vorgegeben, um sicherzustellen dass q gleichmäßig zu |E| teilbar ist und ebenso 1 (mod 4) erfüllt.
  • Sobald ein Wert von q entsprechend gewählt ist, wird ein Wert des Generators g, üblicherweise ein zufälliger Punkt, auf der Kurve E für eine Untergruppe der Ordnung q definiert. Dies erfolgt üblicherweise durch wiederholtes Wählen eines zufälligen Punkts als g auf der Kurve E und Testen seiner Eigenschaften, d.h., ob diese Zahl die folgenden Gleichungen G = {g, 2g, 3g,..., (q – 1)g} und |G| = q erfüllt, bis eine geeignete Zahl gefunden ist.
  • Sobald ein geeigneter Wert eines Generators gewählt wurde, wird eine Zufallszahl als privater Exponent X gewählt. Diese Zahl X wird der private Schlüssel. Der Parameter gpow ist der öffentliche Schlüssel und wird als gleich gx seiend berechnet.
  • Zuletzt wird der geheime Schlüssel KA beispielsweise als eine Verknüpfung zweier vordefinierter Komponenten A1 und A2, d.h. KA = (A1·A2), definiert.
  • Sobald die vorgenannten Parameter definiert sind, werden die Parameter q, g, gpow und X zur nachfolgenden Verwendung während jeder Ausführung des Kennzeichnungserzeugungsvorgangs 400 gespeichert, um jede Kennzeichnung, einschließlich eines einzigartigen Identifikators und der zugehörigen authentischen Signatur, für jede einzelne unterschiedliche Kopie jedes Softwareprodukts zu erzeugen, das der Hersteller sodann produziert. Ferner werden die Werte der Parameter g und gpow und eine Spezifizierung einer im folgenden erörterten Hash-Funktion sämtlich als Daten in jeder derartigen Produktkopie gespeichert, um nachfolgend während der Installation dieser Kopie darauf zu zugreifen und diese zu verwenden, insbesondere während der Authentisierung (d.h. während der Ausführung des im folgenden näher erörterten Authentisierungsvorgangs 500) einer manuell von einem Benutzer während der Installation dieser Kopie eingegebenen Kennzeichnung.
  • 2. Kennzeichnungserzeugungsvorgang 400
  • 4 zeigt ein Flussdiagramm des Kennzeichnungserzeugungsvorgangs 400. Wie zuvor erörtert, wird dieser Vorgang von einem Computer 10 separat durchgeführt und wird durch geeignete gespeicherte (ausführbare) Programmbefehle implementiert, die sich in dessen (nicht spezifisch dargestellten) Speicher befinden, um eine einzigartige Kennzeichnung für jede nachfolgende Produktkopie zu erzeugen. Dieser Vorgang verwendet die Werte des geheimen Schlüssels KA, q, g, gpow und des privaten Exponenten X.
  • Beim Eintritt in den Vorgang 400 geht die Ausführung zunächst zu dem Block 410 über. Dieser Block weist bei seiner Ausführung einer gegenwärtigen Produktkopie einen zufälligen nächstfolgenden Wert (der nicht benutzt wird) als Identifikator (hier M) im Bereich von (232 – 1) > M > 0 zu. Alternativ kann dieser Identifikator sequentiell zugewiesen werden. In diesem Fall wird dem Identifikator der Wert eins für eine erste Produktkopie, der Wert zwei für eine zweite Produktkopie und so weiter über sämtliche Produktkopien und sämtliche verschiedenen Produkte eines Softwareherstellers zugewiesen. In jedem Fall weist jede Kopie eines beliebigen Produkts einen einzigartigen Identifikator auf. Wenn erwartet wird, dass mehr als 232 Kopien sämtlicher Produkte eines Softwareherstellers während eines Zeitraums, in dem das erfindungsgemäße Verfahren zur Erzeugung von Produktkennzeichnungen verwendet werden soll, so kann dieses Verfahren auf eine dem Fachmann leicht ersichtliche Weise modifiziert werden, um längere Identifikatoren und somit längere Schlüssel und Parameterwerte zu verwenden.
  • Sobald ein geeigneter Wert durch den Block 410 als Identifikator für die gegenwärtige Produktkopie zugewiesen wurde, geht die Ausführung zum Block 420 über. Dieser Block erzeugt einen Pseudo-Zufallswert eines Exponenten k im Bereich von [1, q – 1] unter Verwendung des geheimen Schlüssels und des Identifikators M, welcher der gegenwärtigen Produktkopie zugewiesen wurde. Allgemein gesagt, gilt k = G_MS(M), wobei G_MS ein Pseudo-Zufallszahlgenerator ist. Vorzugsweise ist der Pseudo-Zufallszahlgenerator unter Verwendung einer herkömmlichen und bekannten sicheren Hash-Funktion, insbesondere SHA_1, implementiert. Eine derartige Hash-Funktion bildet eine digitale Eingangszahl jeglicher Länge als einen Wert von 160 Bit ab, so dass ein Lokalisieren eines beliebigen Paars von gleich langen Zahlen (x,y), wobei SHA_1(x) = SHA_1(y), undurchführbar ist, d.h. in diesem Fall mehr als 280 Operationen erfordern würde. Insbesondere, und wie zuvor erwähnt, handelt es sich bei dem geheimen Schlüssel KA beispielsweise um eine Verknüpfung zweier vordefinierter Komponenten A1 und A2, d.h. KA = (A1·A2) und bleibt, sobald er erzeugt ist, fest, während sämtliche Produktkopiekennzeichnungen erzeugt werden. Um k zu berechnen, teilt der Block 420 zuerst den geheimen Schlüssel in dessen Bestandteile A1 und A2 und berechnet sodann unter Verwendung mehrerer Hash-Operationen den Exponenten k, wie durch die Gleichungen (1) und (2) angegeben, wie folgt: h = SHA_1 (A1·M) (1) k = SHA_1[(A2·M)] ⊕ h (2)
  • Für zusätzliche Sicherheit, kann der Wert von k, der durch die Gleichungen (1) und (2) erzeugt wurde, als Anfangswert durch eine andere Pseudo-Zufallsfunktion verarbeitet werden, um einen neuen Pseudo-Zufallswert von k zu ergeben, wobei der neue Wert in den übrigen Schritten der Erzeugung der Kennzeichnung für die gegenwärtige Produktkopie alternativ anstelle des durch diese Gleichungen erzeugten Wertes verwendet werden kann.
  • Sobald der Wert von k wie zuvor beschrieben für die aktuelle Produktkopie bestimmt wurde, wird der Block 430 ausgeführt, um gk zu berechnen. Danach geht die Ausführung zum Block 440 über, in dem unter Verwendung einer Hash-Funktion, welche einer authentisierenden Partei bekannt ist, der Wert des Parameters r als eine Funktion von gk und M gemäß der Gleichung (3) wie folgt bestimmt wird. Diese Hash-Funktion ist beispielsweise die Hash-Funktion SHA_1. r = HASH(gk·M) (3)
  • Anschließend wird der Block 450 ausgeführt, um den Parameter s als eine Funktion von k, X, r und q entsprechend der Gleichung (4) wie folgt zu berechnen: s = k – Xr(mod q) (4)
  • Sobald s vollständig berechnet ist, geht die Ausführung zu Block 460 über, der eine binäre 115-Bit-Kennzeichnung als Verknüpfung von M, r und s bildet, wobei die authentische Signatur selbst die Verknüpfung von r und s ist. Nach der Bildung der binären Kennzeichnung wandelt der Block 470 diese Kennzeichnung in eine 25-stellige alphanumerische Form um und gibt die resultierende alphanumerische Kennzeichnung als Ausgangswert beispielsweise an den Drucker 60 (siehe 1) zur Verwendung mit der aktuellen Produktkopie aus. Um Verwechselungen und mögliche Fehler des Benutzers bei der manuellen Eingabe der Kennzeichnung zu verringern und somit eine verbesserte Verwendbarkeit zu bieten, verwendet der Block 470 (in 4 dargestellt), je nach dem zum Drucken der Kennzeichnung verwendeten Font, vorzugsweise bestimmte alphanumerische Zeichen nicht, wie beispielsweise die Buchstaben I und O (sei es in Groß- oder in Kleinschreibung), die Ziffer Null, das kleine L, die Ziffer 1 und so weiter, die einem Benutzer ähnlich erscheinen können. Darüber hinaus können ähnlich erscheinende Zeichen wie das kleine "L" und die Ziffer "1" als ein gemeinsames Zeichen, beispielsweise die Ziffer "1", abgebildet werden.
  • Es wird angenommen, dass durch die vorliegende Erfindung und bei einem Schlüsselpaar mit öffentlichem und privatem Schlüssel bei einem 32-Bit-Identifikatorwert eine authentische 83-Bit-Signatur innerhalb einer Sekunde Verarbeitungszeit auf einem gegenwärtig erhältlichen PC erzeugt werden kann.
  • 3. Authentisierungsvorgang 500
  • 5 zeigt ein Flussdiagramm des Authentisierungsvorgangs 500, der in einem Kundencomputer, beispielsweise dem in den 2 und 3 dargestellten Computer 200, ausgeführt wird. Wie zuvor erwähnt, authentisiert dieser Vorgang eine von einem Benutzer manuell eingegebene Kennzeichnung für eine bestimmte Produktkopie während der Installation dieser Kopie auf dem Kundencomputer. In der bestimmten Produktkopie, und allen Produktkopien des Softwareherstellers gemeinsam, sind die Werte von g, gpow und eine Spezifikation einer während der Authentisierung zu verwendenden Hash-Funktion gespeichert. Zwar werden die Werte der Parameter g und gpow sowie die Spezifikation der Hash-Funktion aus Gründen der Vereinfachung hier als sämtlichen Kopien sämtlicher Produkte eines bestimmten Softwareherstellers beschrieben, jedoch können für eine zusätzliche Sicherheit diese Parameterwerte und die Spezifikation der Hash-Funktion lediglich allen Kopien eines bestimmten Produkts (Produkte) dieses Herstellers oder einer Gruppe bestimmter Kopien dieses Produkts (Produkte) gemeinsam sein, oder sie könnten einzigartig für lediglich eine derartige Kopie sein.
  • Beim Eintreten in den Vorgang 500 geht die Ausführung zuerst zu dem Block 510 über. Dieser Block liest die alphanumerische Kennzeichnung, welche der Benutzer manuell für die bestimmte Produktkopie eingegeben hat, welche er nunmehr auf seinem Kundencomputer, d.h. dem in den 2 und 3 darge stellten Kundencomputer 200, zu installieren beabsichtigt. Sobald diese Kennzeichnung gelesen wurde, wandelt der Block 520 zuerst die alphanumerischen Zeichen in eine binäre Sequenz um und extrahiert anschließend die Werte der Parameter M, r und s in dieser Kennzeichnung. Anschließend geht die Ausführung zum Block 530 über, in welchem aus der Produktkopie selbst gespeicherte Werte der Parameter g und gpow und eine Spezifikation einer zur Authentisierung verwendeten spezifischen Hash-Funktion gelesen werden.
  • Sobald diese Parameterwerte und die Hash-Funktionsspezifikation in dem Block 530 gelesen wurden, geht die Ausführung zum Block 540 über, in dem bei der Ausführung die Werte von gs und gpow r unter Verwendung der gerade aus der Kennzeichnung extrahierten Werte von r und s berechnet. Sobald die Werte berechnet sind, werden die Blöcke 550 und 560 ausgeführt, um die Kennzeichnung gemeinsam zu authentisieren, indem zuerst ein Teil der authentischen Signatur, insbesondere der Parameter r berechnet wird (wobei der wieder berechnete Teil hier als r ^ bezeichnet wird), und anschließend dessen Wert mit dem aus der Kennzeichnung extrahierten Wert des gleichen Parame-ters verglichen wird. Insbesondere berechnet der Block 550 r ^ entsprechend der Gleichung (5) wie folgt: r ^ = HASH[(gs·gpow r)·M) (5)wobei HASH eine Hash-Funktion bezeichnet, die in der Produktkopie zur Verwendung bei der Authentisierung angegeben ist. Bei dieser Funktion handelt es sich üblicherweise um die SHA -Funktion.
  • Nachdem der Wert r ^ berechnet wurde, geht die Ausführung zum Entscheidungsblock 550 über, der dieses Wert mit dem Wert r, der aus der von dem Benutzer eingegebenen Kennzeichnung extrahiert wurde, vergleichend prüft. Wenn diese beiden Werte identisch sind (übereinstimmen), wurde die Signatur in der Kennzeichnung authentisiert. Somit verlässt die Ausführung den Authentisierungsvorgang 500 über den JA-Pfad 563, um mit der Installation dieser Produktkopie fortzufahren. Wenn alternativ diese beiden Werte in irgendeiner Weise unterschiedlich sind, ist die Kennzeichnung, insbesondere die Signatur, welche sie enthält, nicht authentisch. Somit ist der Benutzer nicht autorisiert, die Produktkopie zu installieren. In diesem Fall leitet der Entscheidungsblock 560 die Ausführung über den NEIN-Pfad 567 zum Block 570. Der letztere Block zeigt, bei seiner Ausführung, eine geeignete Nachricht an einem lokalen Monitor (beispielsweise der Anzeige 380 von 3) an, welche angibt, dass der Benutzer nicht autorisiert ist, die Produktkopie zu installieren. Sobald diese Nachricht derart angezeigt wird, verlässt die Ausführung (wie in 5 dargestellt) den Vorgang 500, jedoch derart, dass die weitere Installation der Produktkopie vorzeitig beendet wird.
  • Es ist für den Fachmann nunmehr ersichtlich, dass trotz der Beschreibung des erfindungsgemäßen Verfahrens zur Erzeugung sicherer und authentischer Signaturen als Teil von Kennzeichnungen zur Verwendung mit Softwareproduktkopien, welche auf Benutzercomputern installiert werden sollen, beschrieben wurde, die Erfindung verwendet werden kann, um auf höchst sichere Weise bereits installierte Softwarekopien zu serialisieren, sobald ein Benutzer eine Netzwerkverbindung mit einem von dem Softwarehersteller betriebenen Server herstellt. Sollte insbesondere ein Benutzer eines O/S, die auf einem Kundencomputer läuft, eine Internetverbindung mit einer Webseite des Herstellers dieser O/S herstellen, könnte ein Webserver eine Installationsnummer, beispielsweise eine zuvor beschriebene Kennzeichnung erzeugen, welche eine authentische Signatur enthält, und diese Nummer zur Speicherung auf den Kundencomputer herunterladen (selbstverständlich davon ausgehend, dass ein auf dem Kundencomputer laufender Web-Browser derart eingestellt ist, dass er "Cookies" akzeptiert, d.h. dass er ein derartiges Download akzeptiert). Diese Installationsnummer kann sodann von dem Hersteller verwendet werden, um diese bestimmte O/S-Installation einzigartig und sicher zu identifizieren. Sobald der Benutzer nachfolgend eine Internetverbindung mit der Webseite des Herstellers aufbaut, kann der Hersteller die spezifische Installation des O/S durch Zugriff auf die und Authentisieren der in dem Kundencomputer gespeicherten Installationsnummer leicht identifizieren. Durch das erfolgreiche Authentisieren gespeicherter Installationsnummern kann der Hersteller zwischen autorisierten und nicht autorisierten O/S-Installationen unterscheiden. Somit kann der Hersteller Produktsupport, Upgrades, Werbeaktionen und/oder andere Dienste lediglich für die ersteren Installationen anbieten, während sie den letzteren Installationen verwehrt bleiben. Auf ähnliche Weise kann der Hersteller eine einzigartige Installationsnummer für andere Arten von Softwareprogrammkopien, wie beispielsweise Anwendungsprogramme, erzeugen und herunterladen, die zuvor installiert wurden und für welche der Hersteller im Nachhinein eine Identifizierung anstrebt.
  • Obwohl die Kennzeichnung hier eine Produktkopie-Identifikator als die Nachricht verwendet, für welche eine authentische Signatur erzeugt wird, ist die Nachricht nicht darauf beschränkt. Diese Nachricht kann jede Form von digitaler Information aufweisen, welche digital verschlüsselt und von einer Partei zu einer anderen übertragen werden soll. Die Erfindung kann somit einen höchst sicheren Mechanismus zum Authentisieren jeder Nachricht in einem zwischen einer sendenden und einer empfangenden Seite fließenden Strom eines verschlüsselten Nachrichtenverkehrs schaffen.
  • Obwohl das erfindungsgemäße Verfahren als eine sichere Hash-Funktion zum Erzeugen der Parameter r und r ^ in dem Kennzeichnungserzeugungs- und dem Authentisierungsverfahren (insbesondere Blöcke 440 und 550 in den 4 bzw. 5) verwendend beschrieben wurde, können andere sichere Funktionen verwendet werden, vorausgesetzt, die gleiche Funktion wird in beiden Vorgängen verwendet, und eine Spezifikation dieser Funktion ist in der zugehörigen Produktkopie gespeichert und wird von dem Authentisierungsverfahren während der Installation dieser bestimmten Kopie gelesen.
  • Zwar wurde die Erfindung beispielhaft zur Verwendung mit 32-Bit-Nachrichten (hier, beispielhaft Produktkopie-Identifikatoren) und authentischen Signaturen mit 83 Bit beschrieben, jedoch kann die Erfindung angesichts ihrer beabsichtigten Verwendung leicht modifiziert werden, um längere Nachrichten und Signaturen oder, bei den Anwendungen, bei denen weniger Sicherheit tolerierbar ist, kürzere Nachrichten und Signaturen handhaben zu können.
  • Zwar wurde hierin ein Ausführungsbeispiel mit verschiedenen Modifizierungen, welches die Lehren der vorliegenden Erfindung beinhaltet, im Detail dargestellt und beschrieben, jedoch kann der Fachmann auf dem Gebiet leicht zahlreiche andere Ausführungsbeispiele entwerfen, die ebenfalls diese Lehren verwenden.

Claims (51)

  1. Verfahren zum Erzeugen einer authentischen Signatur zur Verwendung mit einem Kryptosystem mit öffentlichem Schlüssel, das ein öffentliches Schlüssel-Paar bestehend aus einem öffentlichen Schlüssel (gpow) und einem privaten Schlüssel (X) umfasst, mit dem folgenden Schritt: Bilden einer authentischen Signatur für eine eingehende Nachricht M in Reaktion auf: den privaten Schlüssel; die Nachricht M; einen vordefinierten Generator (g), der aus mehreren Punkten auf einer elliptischen Kurve über einem finiten Feld ausgewählt ist; und einen geheimen Schlüssel (KA), der von dem öffentlichen und dem privaten Schlüssel verschieden ist.
  2. Verfahren nach Anspruch 1, bei dem der Schritt des Bildens die folgenden Schritte umfasst: Erzeugen eines ersten Teils (r) der authentischen Signatur in Reaktion auf den Generator, den geheimen Schlüssel und die Nachricht; und Erzeugen eines zweiten Teils (s) der authentischen Signatur in Reaktion auf den ersten Teil der authentischen Signatur und den geheimen sowie den privaten Schlüssel.
  3. Verfahren nach Anspruch 2, bei dem der Schritt des Bildens ferner die folgenden Schritte umfasst: Erzeugen eines ersten Parameterwerts k als eine vordefinierte Pseudo-Zufallsfunktion des geheimen Schlüssels (KA) und der Nachricht M; und Bestimmen des ersten Teils (r) der authentischen Signatur als eine erste vordefinierte Funktion des ersten Parameterwerts, des Generators und der Nachricht.
  4. Verfahren nach Anspruch 3, bei dem (420) die vordefinierte Pseudo-Zufallsfunktion eine erste vordefinierte Hash-Funktion umfasst.
  5. Verfahren nach Anspruch 4, bei dem der geheime Schlüssel (KA) aus einer Konkatenation eines ersten Schlüsselteils A1 und eines zweiten Schlüsselteils A2 gebildet ist, und der erste Parameterwert k durch die folgenden Gleichungen bestimmt ist: h = SHA_1(A1·M); und k = SHA_1[(A2·M)] ⊕ hwobei: SHA_1 eine SHA 1-Hash-Funktion ist.
  6. Verfahren nach Anspruch 4, ferner mit dem Schritt des Anwendens des ersten Parameterwerts als eine Eingabe in eine vorbestimmte Pseudo-Zufallsfunktion, um einen neuen Wert für den ersten Parameterwert zu erhalten.
  7. Verfahren zur Authentisierung einer durch ein Kryptosystem mit einem öffentlichem Schlüssel erzeugten Signatur (r·s) für eine Nachricht M, wobei die Signatur einen öffentlichen Schlüssel (gpow), einen privaten Schlüssel (X) und einen geheimen Schlüssel (KA) aufweist, wobei der dritte Schlüssel von dem ersten und dem zweiten Schlüssel verschieden ist, wobei das Verfahren die folgenden Schritte umfasst: Extrahieren (550) eines ersten und zweiten Teils (r, s) aus der Signatur, um einen extrahierten ersten und zweiten Teil der Signatur zu erhalten; Bestimmen (560) eines neuen Werts (r ^) des ersten Teils (r) der Signatur in Reaktion auf einen vordefinierten Generator (g), der aus mehreren Punkten auf einer elliptischen Kurve über einem finiten Feld gewählt ist, den öffentlichen Schlüssel (gpow), die Nachricht und den extrahierten ersten und zweiten Teil (r, s) der Signatur; und Feststellen (540), ob der neue Wert (r ^) des ersten Teils mit dem ersten extrahierten Teil (r) übereinstimmt oder nicht, um anzugeben, ob die Signatur authentisch ist oder nicht.
  8. Vorrichtung, die auf eine eingehende Nachricht M (93) reagiert, um eine authentische Signatur (97, r·s) für die Nachricht zu erzeugen, und zur Verwendung in einem Kryptosystem mit öffentlichem Schlüssel, das ein öffentliches Schlüssel-Paar bestehend aus einem öffentlichen Schlüssel (gpow) und einem privaten Schlüssel (X) umfasst, mit: einem Prozessor (340); und einem Speicher (330) mit darin gespeicherten computerausführbaren Befehlen; wobei der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle die authentische Signatur (97, r·s) für eine eingehende Nachricht M in Reaktion auf: den privaten Schlüssel; die Nachricht; einen vordefinierten Generator (g), der aus mehreren Punkten auf einer elliptischen Kurve über einem finiten Feld ausgewählt ist; und einen geheimen Schlüssel (KA), der von dem öffentlichen und dem privaten Schlüssel verschieden ist, zu erzeugen.
  9. Vorrichtung nach Anspruch 8, bei welcher der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle: einen ersten Teil (r) der authentischen Signatur in Reaktion auf den Generator, den geheimen Schlüssel und die Nachricht zu erzeugen; und einen zweiten Teil (s) der authentischen Signatur in Reaktion auf den ersten Teil der authentischen Signatur und den geheimen sowie den privaten Schlüssel zu erzeugen.
  10. Vorrichtung zum Authentisieren einer Signatur (97, r·s) für eine Nachricht (M), die einen öffentlichen Schlüssel (gpow), einen privaten Schlüssel (X) und einen geheimen Schlüssel (KA) aufweist, wobei die Signatur durch ein Kryptosystem mit öffentlichem Schlüssel erzeugt ist, wobei der geheime Schlüssel von dem ersten und dem zweiten Schlüssel verschieden ist, mit: einem Prozessor (340); und einem Speicher (330) mit darin gespeicherten computer-ausführbaren Befehlen; wobei der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle: aus der Signatur einen ersten und zweiten Teil derselben zu extrahieren, um einen extrahierten ersten und zweiten Teil der Signatur zu erhalten; einen neuen Wert (r ^) des ersten Teils (r) der Signatur in Reaktion auf einen vordefinierten Generator (g), der aus mehreren Punkten auf einer elliptischen Kurve über einem finiten Feld gewählt ist, den öffentlichen Schlüssel (gpow), die Nachricht und den extrahierten ersten und zweiten Teil (r, s) der Signatur zu bestimmen; und festzustellen, ob der neue Wert (r ^) des ersten Teils mit dem ersten extrahierten Teil (r) übereinstimmt oder nicht, um anzugeben, ob die Signatur authentisch ist oder nicht.
  11. Verfahren zum Erzeugen einer Markierung (I), die eine authentische Signatur enthält, zur Zuordnung zu einer entsprechenden Produktkopie, wobei die authentische Signatur in Verbindung mit einem Kryptosystem verwendet wird, das einen öffentlichen Schlüssel (gpow) und einen privaten Schlüssel (X) aufweist, wobei das Verfahren die folgenden Schritte umfasst: Zuweisen einer einzigartigen Kennzeichnung als Nachricht M zu der Produktkopie; Erzeugen der authentischen Signatur (r·s) in Reaktion auf den privaten Schlüssel, die Nachricht, einen vordefinierten Generator g, der unter mehreren Punkten auf einer elliptischen Kurve über einem finiten Feld gewählt ist, und einen geheimen Schlüssel (KA), der von dem öffentlichen und dem privaten Schlüssel verschieden ist; Bilden der Markierung in Reaktion auf die Nachricht M und die authentische Signatur (r·s), und Zuordnen der Markierung zu der Produktkopie.
  12. Verfahren nach Anspruch 11, bei dem der Schritt der Markierungsbildung den Schritt des Konkatenierens der Nachricht M mit der authentischen Signatur (r·s) umfasst, um die Markierung zu erhalten.
  13. Verfahren nach Anspruch 12, bei dem der Zuweisungsschritt den Schritt des Wählens der Nachricht M entweder als Zufallswert innerhalb eines bestimmten Bereichs oder als nächste verfügbare Zahl in einer vordefinierten Folge in dem Bereich umfasst.
  14. Verfahren nach Anspruch 13, bei dem der Erzeugungsschritt die folgenden Schritte umfasst: Erzeugen eines ersten Teils (r) der authentischen Signatur in Reaktion auf den Generator g, den geheimen Schlüssel (KA) und die Nachricht M; und Erzeugen eines zweiten Teils (s) der authentischen Signatur in Reaktion auf den ersten Teil der authentischen Signatur und den geheimen sowie den privaten Schlüssel.
  15. Verfahren nach Anspruch 14, bei dem der Erzeugungsschritt ferner die folgenden Schritte umfasst: Erzeugen eines ersten Parameterwerts k als eine vordefinierte Pseudo-Zufallsfunktion des geheimen Schlüssels (KA) und der Nachricht M; und Bestimmen des ersten Teils (r) der authentischen Signatur als eine erste vorbestimmte Funktion des ersten Parameterwerts k, des Generators g und der Nachricht.
  16. Verfahren nach Anspruch 15, bei dem die vordefinierte Pseudo-Zufallsfunktion eine erste vordefinierte Hash-Funktion umfasst.
  17. Verfahren nach Anspruch 16, bei dem (420) der geheime Schlüssel (KA) aus einer Konkatenation eines ersten Schlüsselteils A1 und eines zweiten Schlüsselteils A2 gebildet ist, und der erste Parameterwert k durch die folgenden Gleichungen bestimmt ist: h = SHA_1(A1·M); und k = SHA_1(A2·M)] ⊕ hwobei: SHA_1 eine SHA_1-Hash-Funktion ist.
  18. Verfahren nach Anspruch 17, ferner mit dem Schritt des Anwendens des ersten Parameterwerts als eine Eingabe in eine vorbestimmte Pseudo-Zufallsfunktion, um einen neuen Wert für den ersten Parameterwert zu erhalten.
  19. Verfahren nach den Ansprüchen 3 oder 17, ferner mit den folgenden Schritten: Erzeugen des zweiten Teils s der authentischen Signatur in Reaktion auf eine zweite vordefinierte Funktion des ersten Parameterwerts k, den privaten Schlüssel X und den ersten Teil r der authentischen Signatur; und Konkatenieren des ersten und des zweiten Teils der authentischen Signatur, um die authentische Signatur (r·s) zu erhalten.
  20. Verfahren nach Anspruch 19, bei dem der erste Teil r der authentischen Signatur nach der folgenden Gleichung berechnet wird (440): r = f(gk·M)wobei f eine vordefinierte sichere Funktion ist.
  21. Verfahren nach Anspruch 20, bei dem die Funktion f eine vordefinierte Hash-Funktion ist.
  22. Verfahren nach Anspruch 20, bei dem der zweite Teil s der authentischen Signatur nach der folgenden Gleichung berechnet wird: s = k – Xr(mod q)wobei q eine vordefinierte Primzahl ist.
  23. Verfahren nach Anspruch 20, ferner mit den folgenden Schritten: Konvertieren (470) der Markierung in alphanumerische Form, um eine alphanumerische Markierung zu erhalten; und Anbringen der alphanumerischen Markierung an der Produktkopie oder einem Bestandteil derselben.
  24. Verfahren zum Authentisieren einer Markierung (I), die einer entsprechenden Produktkopie zugeordnet ist, welche auf einen Computer installiert wird, wobei die Markierung eine Produktkopiekennzeichnung als Nachricht M und eine zugehörige Signatur (r·s) enthält, welche mittels eines Kryptosystems mit öffentlichem Schlüssel erzeugt wurde, wobei das Kryptosystem mit öffentlichem Schlüssel einen öffentlichen Schlüssel (gpow), einen privaten Schlüssel (X) und einen geheimen Schlüssel (KA) umfasst, wobei der geheime Schlüssel von dem ersten und dem zweiten Schlüssel verschieden ist, wobei das Verfahren während der Installation der Produktkopie auf einen Computer die folgenden Schritte umfasst: Erfassen (510) der Markierung für die Produktkopie während der Installation der Produktkopie auf einen Computer; und Authentisieren der in der Markierung enthaltenen Signatur (r·s), mit den folgenden Schritten: Extrahieren eines ersten und zweiten Teils (r, s) der Signatur aus der Markierung, um einen extrahierten ersten und zweiten Teil der Signatur zu erhalten, und der Nachricht M; Bestimmen (550) eines neuen Werts r ^ des ersten Teils r der Signatur in Reaktion auf einen vordefinierten Generator g, der aus mehreren Punkten auf einer elliptischen Kurve über einem finiten Feld gewählt ist, die Kennzeichnung und den extrahierten ersten und zweiten Teil der Signatur; und Feststellen, ob der neue Wert (r ^) des ersten Teils mit dem ersten extrahierten Teil r übereinstimmt oder nicht, um anzugeben, ob die in der Markierung enthaltene Signatur authentisch ist oder nicht; und wenn die Signatur authentisch ist oder nicht, Fortsetzen der Installation des Produkts auf den Computer bzw. Beenden der Installation.
  25. Verfahren nach Anspruch 24, bei dem der Schritt des Bestimmens den Schritt des Erhaltens gespeicherter Werte des Generators g und des öffentlichen Schlüssels gpow aus der Produktkopie umfasst.
  26. Verfahren nach den Ansprüchen 7 oder 25, bei dem der Schritt des Bestimmens des neuen Werts den Schritt des Erzeugens des neuen Werts r ^ als eine vordefinierte Funktion des Generators, des öffentlichen Schlüssels, der Nachricht M und des extrahierten ersten und zweiten Teils der Signatur umfasst.
  27. Verfahren nach Anspruch 26, bei dem der neue Wert r ^ nach der folgenden Gleichung berechnet wird: r ^ = HASH[(gs·gpow r·M] wobei HASH eine vordefinierte Hash-Funktion ist, die beim Erzeugen der Signatur verwendet wird.
  28. Verfahren nach den Ansprüchen 21 oder 27, bei dem die vordefinierte Hash-Funktion eine SHA_1-Hash-Funktion ist.
  29. Verfahren nach den Ansprüchen 18, 22 oder 27, bei dem das finite Feld über ein Galois-Feld definiert ist.
  30. Verfahren nach den Ansprüchen 18, 22 oder 27, bei dem die elliptische Kurve die Form y2 = x3 + x hat.
  31. Computerlesbares Medium mit darin gespeicherten computer-ausführbaren Befehlen zum Durchführen der Schritte der Ansprüche 1, 7, 13 oder 24.
  32. Vorrichtung zum Erzeugen einer Markierung (75, 90), die eine authentische Signatur (87, 97) enthält, zur Zuordnung zu einer entsprechenden Produktkopie (70), wobei die authentische Signatur in Verbindung mit einem Kryptosystem mit öffentlichem Schlüssel verwendet wird, das einen öffentlichen Schlüssel (gpow) und einen privaten Schlüssel X umfasst, wobei die Vorrichtung aufweist: einen Prozessor (340); und einen Speicher (330) mit darin gespeicherten computerausführbaren Befehlen; wobei der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle: der Produktkopie eine einzigartige Kennzeichnung als Nachricht M zuzuweisen; die authentische Signatur in Reaktion auf den privaten Schlüssel, die Nachricht, einen vordefinierten Generator g, der aus mehreren Punkten auf einer elliptischen Kurve über einem finiten Feld gewählt ist, und einen geheimen Schlüssel (KA), der von dem öffentlichen sowie dem privaten Schlüssel verschieden ist, zu erzeugen; die Markierung in Reaktion auf die Nachricht M und die authentische Signatur zu bilden, und und die Markierung der Produktkopie zuzuordnen.
  33. Vorrichtung nach Anspruch 32, bei welcher der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle die Nachricht M mit der authentischen Signatur zu konkatenieren, um die Markierung zu erhalten.
  34. Vorrichtung nach Anspruch 33, bei welcher der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle die Nachricht M entweder als einen zufälligen Wert innerhalb eines bestimmten Bereichs oder als eine nächste verfügbare Zahl in einer vordefinierten Folge in dem Bereich zu wählen.
  35. Vorrichtung nach Anspruch 34, bei welcher der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle: einen ersten Teil r der authentischen Signatur in Reaktion auf den Generator, den geheimen Schlüssel und die Nachricht zu erzeugen; und einen zweiten Teil s der authentischen Signatur in Reaktion auf den ersten Teil der authentischen Signatur und den geheimen sowie den privaten Schlüssel zu erzeugen.
  36. Vorrichtung nach den Ansprüchen 9 oder 35, bei welcher der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle: einen ersten Parameterwert k als eine vordefinierte Pseudo-Zufallsfunktion des geheimen Schlüssels (KA) und der Nachricht M zu erzeugen; und den ersten Teil r der authentischen Signatur als eine erste vorbestimmte Funktion des ersten Parameterwerts k, des Generators g und der Nachricht M zu bestimmen.
  37. Vorrichtung nach Anspruch 36, bei der die vordefinierte Pseudo-Zufallsfunktion eine erste vordefinierte Hash-Funktion umfasst.
  38. Vorrichtung nach Anspruch 37, bei welcher der geheime Schlüssel aus einer Konkatenation eines ersten Schlüsselteils A1 und eines zweiten Schlüsselteils A2 gebildet ist, und der erste Parameterwert k durch die folgenden Gleichungen bestimmt ist: h = SHA_1(A1·M); und k = SHA_1[(A2·M)] ⊕ hwobei: SHA_1 eine SHA_1-Hash-Funktion ist.
  39. Vorrichtung nach Anspruch 38, bei welcher der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle den ersten Parameterwert als eine Eingabe in eine vorbestimmte Pseudo-Zufallsfunktion anzuwenden, um einen neuen Wert für den ersten Parameterwert zu erhalten.
  40. Vorrichtung nach den Ansprüchen 8 oder 35, bei welcher der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle: den zweiten Teil s der authentischen Signatur in Reaktion auf eine zweite vordefinierte Funktion des ersten Parameterwerts, den privaten Schlüssel und den ersten Teil der authentischen Signatur zu erzeugen; und den ersten und den zweiten Teil der authentischen Signatur zu konkatenieren, um die authentische Signatur zu erhalten.
  41. Vorrichtung nach Anspruch 40, bei welcher der erste Teil r der authentischen Signatur nach der folgenden Gleichung berechnet wird: r = f(gk·M)wobei f eine vordefinierte sichere Funktion ist.
  42. Vorrichtung nach Anspruch 41, bei der die Funktion f eine vordefinierte Hash-Funktion ist.
  43. Vorrichtung nach Anspruch 41, bei dem der zweite Teil s der authentischen Signatur nach der folgenden Gleichung berechnet wird: s = k – Xr(mod q)wobei q eine vordefinierte Primzahl ist.
  44. Vorrichtung nach Anspruch 39, bei welcher der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle: die Markierung in alphanumerische Form umzuwandeln, um eine alphanumerische Markierung zu erhalten; und die alphanumerische Markierung an der Produktkopie oder einem Bestandteil derselben anzubringen.
  45. Vorrichtung zum Authentisieren einer Markierung (75, 90), die einer entsprechenden Produktkopie (70) zugeordnet ist, welche auf einen Computer installiert wird, wobei die Markierung eine Produktkopiekennzeichnung als Nachricht M und eine zugehörige Signatur enthält, welche mittels eines Kryptosystems mit öffentlichem Schlüssel erzeugt wurde, wobei das Kryptosystem mit öffentlichem Schlüssel einen öffentlichen Schlüssel (gpow), einen privaten Schlüssel (X) und einen geheimen Schlüssel (KA) umfasst, wobei der geheime Schlüssel von dem ersten und dem zweiten Schlüssel verschieden ist, wobei die Vorrichtung aufweist: einen Prozessor (340); und einen Speicher (330) mit darin gespeicherten computer-ausführbaren Befehlen; wobei der Prozessor in der Lage ist, in Reaktion auf die gespeicherten Befehle und während der Installation der Produktkopie auf einen Computer: die Markierung für die Produktkopie während der Installation der Produktkopie auf einen Computer zu erfassen; um einen extrahierten ersten und zweiten Teil der Signatur zu erhalten, einen ersten und zweiten Teil der Signatur und die Kennzeichnung aus der Markierung zu extrahieren; einen neuen Wert des ersten Teils r der Signatur in Reaktion auf einen vordefinierten Generator g, der aus mehreren Punkten auf einer elliptischen Kurve über einem finiten Feld gewählt ist, den öffentlichen Schlüssel (gpow), die Kennzeichnung und den extrahierten ersten und zweiten Teil der Signatur zu bestimmen; und festzustellen, ob der neue Wert r ^ des ersten Teils mit dem ersten extrahierten Teil r übereinstimmt oder nicht, um anzugeben, ob die in der Markierung enthaltene Signatur authentisch ist oder nicht; und wenn die Signatur authentisch ist oder nicht, die Installation des Produkts auf den Computer fortzusetzen bzw. die Installation zu beenden.
  46. Vorrichtung nach Anspruch 45, bei welcher der Prozessor in Reaktion auf die gespeicherten Befehle gespeicherte Werte des Generators g und des öffentlichen Schlüssels aus der Produktkopie ermittelt.
  47. Vorrichtung nach den Ansprüchen 10 oder 46, bei welcher der Prozessor in Reaktion auf die gespeicherten Informationen den neuen Wert r ^ als eine vordefinierte Funktion des Generators, des öffentlichen Schlüssels, der Nachricht und des extrahierten ersten und zweiten Teils der Signatur erzeugt.
  48. Vorrichtung nach Anspruch 47, bei welcher der neue Wert r ^ nach der folgenden Gleichung berechnet wird: r ^ = HASH[(gs·gpow)·M]wobei HASH eine vordefinierte Hash-Funktion ist, die beim Erzeugen der Signatur verwendet wird.
  49. Vorrichtung nach den Ansprüchen 42 oder 48, bei der die vordefinierte Hash-Funktion eine SHA_1-Hash-Funktion ist.
  50. Vorrichtung nach den Ansprüchen 39, 43 oder 48, bei der das finite Feld über ein Galois-Feld definiert ist.
  51. Vorrichtung nach den Ansprüchen 10, 39, 43 oder 48, bei der die elliptische Kurve die Form y2 = x3 + x hat.
DE69935980T 1998-06-23 1999-06-23 Eine Technik zur Erstellung Privat authentifizierbarer kryptografischer Unterschriften und zur Verwendung einer solchen Unterschrift in Verbindung mit der Kopie eines Produktes Expired - Lifetime DE69935980T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US102851 1998-06-23
US102948 1998-06-23
US09/102,851 US6163841A (en) 1998-06-23 1998-06-23 Technique for producing privately authenticatable cryptographic signatures and for authenticating such signatures
US09/102,948 US6209093B1 (en) 1998-06-23 1998-06-23 Technique for producing a privately authenticatable product copy indicia and for authenticating such an indicia
PCT/US1999/014215 WO1999067920A1 (en) 1998-06-23 1999-06-23 A technique for producing privately authenticatable cryptographic signatures and for using such a signature in conjunction with a product copy

Publications (2)

Publication Number Publication Date
DE69935980D1 DE69935980D1 (de) 2007-06-14
DE69935980T2 true DE69935980T2 (de) 2008-01-10

Family

ID=26799803

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69935980T Expired - Lifetime DE69935980T2 (de) 1998-06-23 1999-06-23 Eine Technik zur Erstellung Privat authentifizierbarer kryptografischer Unterschriften und zur Verwendung einer solchen Unterschrift in Verbindung mit der Kopie eines Produktes

Country Status (7)

Country Link
EP (1) EP1088420B1 (de)
JP (1) JP4644368B2 (de)
CN (2) CN100334831C (de)
AT (1) ATE361605T1 (de)
AU (1) AU5457699A (de)
DE (1) DE69935980T2 (de)
WO (1) WO1999067920A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5697180B2 (ja) * 2010-03-31 2015-04-08 イルデト カナダ コーポレーション ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法
CN114424166A (zh) * 2019-08-28 2022-04-29 惠普发展公司,有限责任合伙企业 加密表签名

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
JP2868104B2 (ja) * 1992-07-27 1999-03-10 日本電信電話株式会社 楕円曲線に基づくデイジタル署名方法とその署名者装置及び検証者装置
US5299262A (en) * 1992-08-13 1994-03-29 The United States Of America As Represented By The United States Department Of Energy Method for exponentiating in cryptographic systems
JP3540477B2 (ja) * 1995-12-13 2004-07-07 松下電器産業株式会社 署名方式
US5638447A (en) * 1996-05-15 1997-06-10 Micali; Silvio Compact digital signatures
US5737424A (en) * 1996-06-04 1998-04-07 Software Security, Inc. Method and system for secure distribution of protected data using elliptic curve systems
US6279110B1 (en) * 1997-11-10 2001-08-21 Certicom Corporation Masked digital signatures

Also Published As

Publication number Publication date
CN100334831C (zh) 2007-08-29
EP1088420B1 (de) 2007-05-02
JP4644368B2 (ja) 2011-03-02
DE69935980D1 (de) 2007-06-14
CN1534922A (zh) 2004-10-06
AU5457699A (en) 2000-01-10
CN1264305C (zh) 2006-07-12
JP2002519723A (ja) 2002-07-02
CN1306714A (zh) 2001-08-01
ATE361605T1 (de) 2007-05-15
EP1088420A1 (de) 2001-04-04
WO1999067920A1 (en) 1999-12-29

Similar Documents

Publication Publication Date Title
DE112005001672B4 (de) Verfahren zum Liefern eines geheimen Direktnachweisschlüssels an Vorrichtungen unter Verwendung eines Onlinedienstes
DE112005001666B4 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE112005001654B4 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
DE60314402T2 (de) System und methode zum speichern sowie abrufen kryptographischer geheimnisse von unterschiedlichen kundenendgeräten in einem netzwerk
DE69534212T2 (de) Verfahren und Vorrichtung zur Verbesserung der Softwaresicherheit und zur Software-Verteilung
DE60211841T2 (de) Vorrichtung zur Aktualisierung und zum Entzug der Gültigkeit einer Marke in einer Infrastruktur mit öffentlichen Schlüsseln
DE602005001613T2 (de) Einrichten eines sicheren kontexts zur übermittlung von nachrichten zwischen computersystemen
DE69230429T2 (de) Sicherung/Rückgewinnung der Umgebung einer Geheimübertragungseinrichtung und Vervielfältigung in einem Kryptosystem mit öffentlichem Schlüssel
DE69704684T2 (de) Vorrichtung und Verfahren zur Authentifizierung von Zugangsrechten eines Benutzers zu Betriebsmitteln nach dem Challenge-Response-Prinzip
DE69837303T2 (de) Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme
DE60224219T2 (de) Sicheres drucken eines dokuments
DE69431426T2 (de) System und Verfahren zur Nachrichtenauthentisierung in einem nicht-schmiedbaren Kryptosystem mit öffentlichen Schlüssel
DE60019432T2 (de) Eine technik, um einen parameter, wie z.b. eine prüfsumme, durch ein primitiv zu erzeugen, welche elementare register-operationen verwendet
WO2007053864A9 (de) Verfahren zur erzeugung einer fortgeschrittenen elektronischen signatur eines elektronischen dokuments
EP2918040A1 (de) Erstellen eines abgeleiteten schlüssels aus einem kryptographischen schlüssel mittels einer physikalisch nicht klonbaren funktion
US6163841A (en) Technique for producing privately authenticatable cryptographic signatures and for authenticating such signatures
DE60114069T2 (de) System und Verfahren für den Schutz von Digitalwerken
DE69720971T2 (de) Computersystem und Verfahren zum Schutz von Software
EP3422274A1 (de) Verfahren zur konfiguration oder änderung einer konfiguration eines bezahlterminals und/oder zur zuordnung eines bezahlterminals zu einem betreiber
DE60130832T2 (de) Verfahren und Vorrichtung zur Anordnung von digitalen Zertifikaten auf einem Hardware-Token
DE69935980T2 (de) Eine Technik zur Erstellung Privat authentifizierbarer kryptografischer Unterschriften und zur Verwendung einer solchen Unterschrift in Verbindung mit der Kopie eines Produktes
EP1785900A1 (de) Verfahren und System zum Übertragen von Daten von einer ersten Datenverarbeitungseinrichtung an eine zweite Datenverarbeitungseinrichtung
EP2909779B1 (de) Verfahren zur erzeugung eines one-time-password (otp)
DE202022101844U1 (de) Ein System zur Ver- und Entschlüsselung von Daten für gesicherte Kommunikation
DE102015111715A1 (de) Sichere elektronische Unterzeichnung von Information

Legal Events

Date Code Title Description
8364 No opposition during term of opposition