DE3587072T2 - Softwaresicherungsverfahren. - Google Patents

Softwaresicherungsverfahren.

Info

Publication number
DE3587072T2
DE3587072T2 DE8585115147T DE3587072T DE3587072T2 DE 3587072 T2 DE3587072 T2 DE 3587072T2 DE 8585115147 T DE8585115147 T DE 8585115147T DE 3587072 T DE3587072 T DE 3587072T DE 3587072 T2 DE3587072 T2 DE 3587072T2
Authority
DE
Germany
Prior art keywords
key
program
computer
password
user
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
DE8585115147T
Other languages
English (en)
Other versions
DE3587072D1 (de
Inventor
Stephen Michael Matyas
Jonathan Oseas
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3587072D1 publication Critical patent/DE3587072D1/de
Application granted granted Critical
Publication of DE3587072T2 publication Critical patent/DE3587072T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0014Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Description

  • Diese Erfindung befaßt sich mit Softwaresicherungsverfahren, insbesondere mit einem kryptographischen Verfahren, das das Kopieren und die Mehrfachnutzung gekaufter Softwareprogramme verhindern soll, indem ein verschlüsseltes Programm nur auf einem bestimmten Computer ausgeführt werden kann oder alternativ auf einem beliebigen Computer, jedoch nur von einem Benutzer ausgeführt werden kann, der eine spezielle Smart-Karte besitzt.
  • Parallel zur Verbreitung der sogenannten Mikrocomputer oder Personal Computer fand eine explosionsartige Entwicklung in der Erstellung und Veröffentlichung von Software für diese Computer statt. Der Aufwand an Zeit und Kapital für die Entwicklung guter Softwareprogramme kann beträchtlich sein, und um diese Kosten zu decken müssen die Autoren, Urheberrechtsinhaber und/oder Herausgeber sich durch Lizenzgebühren und die Amortisierung der Kosten durch den Verkauf der Programme absichern. Da Programme im allgemeinen auf preiswerten Disketten in den Handel kommen, macht sich der Endbenutzer häufig kein Bild von den erheblichen Kosten, die für die Herstellung der Programme auf zuwenden sind. Außerdem verfügen die Betriebssysteme der meisten Mikrocomputer über ein Kopier-Dienstprogramm, mit dem der Endbenutzer problemlos Sicherungskopien von Programmdisketten erstellen kann. Dies hat zur mißbräuchlichen Verwendung des Dienstprogramms für die Herstellung von Raubkopien geführt. So können sich z. B. zwei oder mehr potentielle Endbenutzer, die sich für ein Programm interessieren, zusammentun und gemeinsam ein Exemplar des Programms kaufen und dann sowohl die Programmdiskette als auch das urheberrechtlich geschützte Handbuch zu dieser Programmdiskette kopieren. Ein weiteres Beispiel: Ein kleiner Betrieb, der mehrere Mikrocomputer besitzt, kauft ein Exemplar des Programms, kopiert dann die Programmdiskette und das Handbuch und setzt diese Kopien auf den verschiedenen Mikrocomputern des Betriebs ein. Beide Beispiele stellen eindeutige Verstöße gegen das Urheberrecht dar, doch erweist es sich häufig als unmöglich, die Täter zu ermitteln und strafrechtlich zu belangen. Letztendlich entstehen den Autoren und Herausgebern von Software dadurch erhebliche Einnahmeverluste. Diese Einnahmen werden benötigt, um die Entwicklung neuer und verbesserter Softwareprogramme zu finanzieren und denjenigen, die die Programme, die unberechtigt kopiert werden, hergestellt haben, einen angemessenen Gewinn zu ermöglichen.
  • Auf das Problem des unberechtigten Kopierens und Verwendens von Programmen wurde bereits in früheren Patentschriften eingegangen. In Patentschrift US-A-4,120,030 beschreibt Johnstone ein Computersoftware-Sicherheitssystem, bei dem die Datenadreßteile eines Satzes von Computerinstruktionen nach einem vorgegebenen Chiffrierschlüssel verwürfelt werden, bevor die Instruktionen in einen Instruktionsspeicher geladen werden. Die Daten für das Programm werden in einen separaten Datenspeicher an die im unverwürfelten Programm spezifizierten Adressen geladen. Eine Entwürflerschaltung, die nach dem Chiffrierschlüssel arbeitet, wird mit den Adreßeingabeleitern des Datenspeichers in Reihe geschaltet.
  • In Patentschrift US-A-4,168,396 beschreibt Best einen Mikroprozessor zur Ausführung von Computerprogrammen, die bei der Herstellung chiffriert wurden, um die Ausführung der Programme in hierfür nicht berechtigten Computern zu verhindern. In Patentschrift US-A-4,287,837 beschreibt Best einen Krypto- Mikroprozessorchip, der mit Hilfe eines individuellen Chiffrierschlüssels oder von Tabellen ein Programm so dechiffriert, daß ein Programm, das in einem derartigen Chip ausgeführt werden kann, in keinem anderen Mikroprozessor ausgeführt werden kann.
  • In US-A-4,433,207 beschreibt Best einen IC-Decodierer, über den die Benutzer von Mikrocomputern Zugriff auf verschiedene urheberrechtlich geschützte Programme erhalten, die chiffriert an die Benutzer verkauft wurden. Der Decodierer-Chip kann ein Programm dechiffrieren, wenn ein chiffrierter Schlüssel, ein sogenannter "Erlaubniscode", eingegeben wird.
  • In Patentschrift US-A-4,446,519 beschreibt Thomas ein Verfahren zur Sicherung von Computersoftware, bei dem jeder Käufer eines Softwarepakets eine elektronische Sicherheitsvorrichtung erhält, die operativ mit dem Computer des Käufers verbunden werden muß. Die Software sendet codierte Abfragesignale an die elektronische Sicherheitsvorrichtung, die die Abfragesignale verarbeitet und codierte Antwortsignale an die Software überträgt. Die Programme können nur ausgeführt werden, wenn die Software die Antwortsignale anhand vorgegebener Sicherheitskriterien erkennt.
  • Bei den verschiedenen in diesen Patenschriften vorgestellten Konzeptionen kann die Sicherungsfunktion nur durch spezielle und dedizierte Hardware realisiert werden. Diese Konzeptionen sind generell aufwendig und kostspielig in der Implementierung und daher unter betriebswirtschaftlichen Gesichtspunkten nicht akzeptabel. Gefordert ward ein Softwaresicherungskonzept, das einfach und preisgünstig zu implementieren ist und für das - in einfacherer Ausführung - keine spezielle und dedizierte Hardware erforderlich ist, das jedoch durch den Einsatz zusätzlicher Hardware erweitert werden kann und das für eine große Zahl verschiedener Softwarehäuser attraktiv ist.
  • Weitere Verfahren zum Schutz gegen unberechtigtes Kopieren werden in den Patentschriften EP-121853-A und EP-089876-A beschrieben sowie in dem Artikel "Combatting software piracy by encryption and key management", Computer, Vol. 17, No. 4, April 1984, Seite 68-73, Long Beach, California, USA; D.J. Albert et al.
  • Deshalb wird im Rahmen der vorliegenden Erfindung als zentrales Verfahren ein Verfahren zur Sicherung von Software beschrieben, das die folgenden Schritte aufweist: Verschlüsseln eines Programms mit einem Dateischlüssel und Schreiben des verschlüsselten Programms als Programmdatei auf ein Speichermedium; Bereitstellen eines Computers, der einen geschützten Speicher und eine kryptographische Einrichtung besitzt, mit einer geheimen kryptographischen Schlüsselerkennung, die kryptographisch aus einer den Computer identifizierenden Nummer hergeleitet wird; Ausstatten eines Benutzers des Speichermediums, welches das verschlüsselte Programm enthält, mit einem Kennwort, das kryptographisch zumindest aus dem Datenschlüssel, der den Computer identifizierenden Nummer, einer das Speichermedium identifizierenden Nummer und einer das Programm identifizierenden Nummer hergeleitet wird; Eingeben des Kennwortes in den Computer, wenn das Medium darin geladen ist; Herleiten des Dateischlüssels von zumindest dem Kennwort, der Nummer des Speichermediums, der Programmnummer und der kryptographischen Schlüsselerkennung, und Entschlüsseln zumindest eines Teilabschnitts des Programms in eine ausführbare Form unter Verwendung des hergeleiteten Dateischlüssels.
  • Ein derartiges Softwaresicherungskonzept ist preisgünstig zu implementieren und für den Endbenutzer generell transparent, so daß es den eigentlichen Inhalt des Softwareprogramms nicht beeinträchtigt. Es kann so ausgelegt werden, daß die Programmdisketten auf eine Festplatte kopiert oder Sicherungskopien erstellt werden können, ohne daß jedoch gleichzeitig mehrere Kopien auf einem oder mehreren spezifischen Computern genutzt werden können; alternativ kann die Nutzung auf eine spezielle, nicht reproduzierbare, tragbare Vorrichtung beschränkt oder aber die Ausführung auf jedem beliebigen Computer ermöglicht werden, jedoch dann nur für einen Benutzer, der eine spezielle Smart- Karte besitzt.
  • Anders ausgedrückt: Idealerweise wird bei dieser Konzeption jedes Programm, das von einem Softwarehersteller verkauft wird, mit einem individuellen Dateischlüssel verschlüsselt und dann auf die Diskette geschrieben. Ein Benutzer, der eine Diskette mit einem verschlüsselten Programm kauft, muß sich zunächst vom Hersteller der Software ein geheimes Kennwort geben lassen. Mit diesem Kennwort kann das verschlüsselte Programm auf einem vorgegebenen, speziellen Computer mit einer ordnungsgemäß implementierten und initialisierten Verschlüsselungseinrichtung wiederhergestellt werden, die z. B. im Nur-Lese-Speicher (ROM) gespeichert sein kann. Im Rahmen der Initialisierung - beim erstmaligen Laden des Programms - fordert das Programm den Benutzer auf, das Kennwort einzugeben. Das Kennwort wird vom Programm in den Kopfdatensatz der Datei geschrieben; nachdem das Kennwort einmal in den Kopfdatensatz geschrieben wurde, fordert das Programm den Benutzer bei einer nachfolgenden Verwendung des Programms nicht mehr zur Eingabe seines Kennwortes auf. Wenn die Diskette in den betreffenden Computer geladen wird, wird das verschlüsselte Programm oder ein Steuerungsteil des Programms automatisch entschlüsselt und in einen geschützten Speicher geladen, von dem aus es lediglich ausgeführt werden kann; ein Zugriff für andere Zwecke ist dann nicht möglich. Bei einem alternativen Ausführungsbeispiel ist der Benutzer nicht auf einen vorgegebenen, speziellen Computer beschränkt, sondern kann das Programm auch auf anderen, unterschiedlichen Computern einsetzen, sofern diese Computer über eine Smart-Karte verfügen. Eine Smart-Karte ist hier definiert als eine Karte mit Kryptographiefähigkeit, typischerweise implementiert durch eine Mikroschaltung auf der Karte. Die Smart-Karte erhält der Benutzer beim Kauf eines Computers. Die Smart-Karte wird vom Computerhersteller vorab mit einem geheimen Parameter initialisiert, der individuell für diese eine Karte gilt. Der Ablauf ist ähnlich, nur ermöglicht in diesem Fall das Kennwort, das in Verbindung mit der Smart-Karte verwendet wird, die Entschlüsselung und Ausführung des Programms auf jedem beliebigen Computer, der über eine ordnungsgemäß implementierte und initialisierte Verschlüsselungseinrichtung verfügt. Das Ausführungsbeispiel mit der Smart-Karte kann weiter modifiziert werden, so daß es Übertragbarkeit durch eine Kombination aus einem Öffentlichen Schlüssel- (PK-)-Algorithmus und dem DES-Algorithmus (DES = Data Encryption Standard = Datenverschlüsselungsstandard) ermöglicht. In diesem Fall personalisiert das jeweilige öffentliche Register (Schlüsselverteilungszentrum) die Karte zusätzlich mit dem öffentlichen Schlüssel des Computerherstellers und einem individuellen, geheimen Kartenschlüssel (dem DES-Schlüssel). Wenn ein Kunde Software kauft, erhält er automatisch eine personenbezogene intelligente Sicherheitskarte (Smart-Karte). Jedes einzelne Programm auf der Diskette ist mit einem anderen Dateischlüssel verschlüsselt, der vom Softwarehersteller zugeordnet wird. Der Kunde erhält dann - wie zuvor - vom Softwareverkäufer eine Autorisierungsnummer und ein Kennwort. Das Kennwort wird in den Kopfdatensatz der Datei auf der Diskette geschrieben. Der Computer wird ebenfalls durch ein individuelles Paar von Schlüsseln - einen öffentlichen Computerschlüssel und einen geheimen Computerschlüssel - personalisiert. Der öffentliche Computerschlüssel wird jedoch zunächst mit dem geheimen Schlüssel des Computerschlüssels entschlüsselt und in dieser Form im Computer gespeichert. Wenn die Programmdiskette verwendet wird, wird über ein Handshake-Protokoll zwischen der Smart- Karte und dem Computer der Dateischlüssel wiederhergestellt und mit dem öffentlichen Schlüssel des Computers chiffriert. Dieses Protokoll ist so ausgelegt, daß die Übergabe (Handshake) nur auf einem geeigneten Computer mit öffentlichem Schlüsselalgorithmus und ordnungsgemäß installiertem Schlüsselpaar, d. h. einem geheimen Computerschlüssel und einem öffentlichen Computerschlüssel, der mit dem geheimen Schlüssel des entsprechenden öffentlichen Registers entschlüsselt wurde, erfolgen kann. Der Vorteil dieses Verfahrens besteht darin, daß der Dateischlüssel mit einem öffentlichen Schlüssel verschlüsselt werden kann, und daß nicht auf jeder Smart-Karte ein universeller geheimer DES-Schlüssel gespeichert sein muß. Das Protokoll zur Generierung und Verteilung wird durch die Modifikation des internen Protokolls nicht beeinflußt, d. h. es bleibt für die reine DES-Smart-Karte und für die DES/PK-Smart-Karte gleich.
  • Die vorliegende Erfindung wird anhand eines Beispiels weiter erläutert und anhand von Ausführungsbeispielen in den beigefügten Abbildungen dargestellt.
  • Fig. 1 zeigt ein Blockdiagramm mit einer Übersicht für eine Ausführung des Systems nach der Erfindung, bei der keine Smart- Karte verwendet wird.
  • Fig. 2 zeigt ein Programmdiskettenformat, das mit dem System von Fig. 1 kompatibel ist.
  • Fig. 3 ist ein Flußdiagramm, das die Verwaltung des Kennwortgenerierungsschlüssels für das in Fig. 1 dargestellte System zeigt.
  • Fig. 4 ist ein Flußdiagramm, das die Funktionsweise der Schlüsselverwaltung der kryptographischen Einrichtung für das in Fig. 1 dargestellte System zeigt.
  • Fig. 5 zeigt ein Blockdiagramm mit einer Übersicht einer anderen Ausführung des Systems nach der Erfindung, bei der eine Smart- Karte verwendet wird.
  • Fig. 6 ist ein Flußdiagramm, das die Verwaltung des Kennwortgenerierungsschlüssels für das in Fig. 5 dargestellte System zeigt.
  • Fig. 7 zeigt ein Programmdiskettenformat, das mit dem System von Fig. 5 kompatibel ist.
  • Fig. 8 ist ein Flußdiagramm, das die Funktionsweise der Schlüsselverwaltung der kryptographischen Einrichtung für das in Fig. 5 dargestellte System mit dem DES-Algorithmus zeigt.
  • Fig. 9 ist ein Flußdiagramm, das die Funktionsweise der Smart- Karte unter Verwendung des DES-Algorithmus zeigt.
  • Fig. 10 zeigt in einem Flußdiagramm die Generierung von Programmdisketten durch einen Softwarelieferant.
  • Fig. 11 zeigt in einem Blockdiagramm die Bauelemente, die in einen Computer integriert sind, der über eine kryptographische Einrichtung verfügt, wie sie zur praktischen Anwendung der vorliegenden Erfindung erforderlich ist.
  • Fig. 12 zeigt in einem Blockdiagramm die wesentlichen Bauelemente einer Smart-Karte, wie sie bei bestimmten Ausführungsbeispielen der Erfindung eingesetzt wird.
  • Fig. 13 ist ein Flußdiagramm, das die Funktionsweise der Schlüsselverwaltung der kryptographischen Einrichtung mit der Smart-Karte unter Verwendung des DES/PK-Algorithmus zeigt.
  • Fig. 14 ist ein Flußdiagramm, das die Funktionsweise der Smart- Karte unter Verwendung des DES/PK-Algorithmus zeigt.
  • Fig. 15 zeigt in einem Flußdiagramm eine erste Operation der kryptographischen Einrichtung, bei der ein Dateischlüssel aus Benutzereingabeparametern hergeleitet wird.
  • Fig. 16 zeigt in einem Flußdiagramm eine zweite Operation der kryptographischen Einrichtung, bei der eine Zufallszahl generiert wird.
  • Fig. 17 zeigt in einem Flußdiagramm eine dritte Operation der kryptographischen Einrichtung, bei der anhand eines Kennwortes von einer Smart-Karte und einer Zufallszahl ein Dateischlüssel zur Entschlüsselung eines Programms hergeleitet wird.
  • Fig. 18 zeigt in einem Flußdiagramm eine vierte Operation der kryptographischen Einrichtung, ähnlich der ersten Operation, bei der mit einer anderen algorithmischen Prozedur als bei der ersten Operation ein Dateischlüssel generiert wird.
  • Fig. 19 zeigt in einem Flußdiagramm eine fünfte Operation der kryptographischen Einrichtung, ähnlich der zweiten Operation, bei der mit der gleichen algorithmischen Prozedur wie bei der vierten Operation ein Dateischlüssel generiert wird.
  • Fig. 20 zeigt in einem Flußdiagramm eine sechste Operation der kryptographischen Einrichtung, bei der anhand von Benutzereingabeparametern zur Verschlüsselung von Daten ein Dateischlüssel generiert wird.
  • Fig. 21 zeigt in einem Flußdiagramm eine siebte Operation der kryptographischen Einrichtung, bei der ein Kennwort von einer Smart-Karte zur Generierung eines Dateischlüssels zur Verschlüsselung von Daten angenommen wird.
  • In der nachfolgenden Beschreibung stehen die Buchstaben "e" und "d" für "verschlüsselt" (encrypted) bzw. "entschlüsselt" (decrypted); "ePKt(KF)" z. B. bedeutet, daß der Schlüssel KF mit dem Schlüssel PKt verschlüsselt wird; entsprechend bedeutet "dSKu(PKt)", daß der Schlüssel PKt mit dem Schlüssel SKu entschlüsselt wird. Die Bezeichnung "Personal Computer" schließt sogenannte "intelligente Datenstationen" mit ein, bei denen es sich um Personal Computer handeln kann, die an einen Großrechner im Netzwerk angeschlossen sind.
  • Zu den Zeichnungen: Fig. 1 zeigt in einer Übersicht das erste Ausführungsbeispiel der Erfindung. Das System nach diesem Ausführungsbeispiel besteht aus einem Personal Computer 10 mit einer kryptographisch gesicherten Speichereinrichtung 101. Jedes Programmangebot 12, das von dem Softwarelieferanten verkauft wird, wird mit einem individuellen Dateischlüssel KF verschlüsselt und dann auf die Diskette geschrieben. Fig. 2 zeigt eine allgemeine Darstellung des Diskettenformats. Als Verschlüsselungsverfahren kann eine Verkettungstechnik mit einem Chiffrierblock verwendet werden, für die ein Initialisierungsvektor erforderlich ist. Ggf. können verschiedene Initialisierungsvektoren mit demselben Dateischlüssel KF verwendet werden, um dasselbe Programm zum Schreiben auf verschiedene Disketten zu verschlüsseln. Dadurch wird gewährleistet, daß für jede Diskette ein anderer Chiffretext erzeugt wird, und es wird verhindert, daß durch den Vergleich mit dem entsprechenden Chiffretext Unterschiede im/zum reinen Text erkennbar werden. Der Initialisierungsvektor wird in den Kopfdatensatz der Diskette geschrieben.
  • Ein Benutzer, der eine Diskette mit einem verschlüsselten Programm erwirbt, muß zunächst vom Softwarelieferanten ein geheimes Kennwort erhalten. Mit diesem Kennwort kann das verschlüsselte Programm auf dem vorgegebenen, speziellen Personal Computer 10 mit ordnungsgemäß implementierter und initialisierter Verschlüsselungseinrichtung wiederhergestellt werden. Mit dem geheimen Kennwort kann dieses spezielle Programm nur auf einem bestimmten Personal Computer entschlüsselt und damit ausgeführt werden. Dieses geheime Kennwort bezieht sich speziell auf das bestimmte Programm und den bestimmten Computer, auf dem dieses wiederhergestellt und ausgeführt wird. Mit dem Kennwort können auf diesem Computer keine anderen Programme entschlüsselt werden, und es ermöglicht auch nicht die Wiederherstellung desselben Verschlüsselten Programms auf einem anderen Computer. Wahlweise kann dem Benutzer zusätzlich ein zweites Kennwort gegeben werden, mit dem er das verschlüsselte auf einem speziellen Sicherungscomputer wiederherstellen kann. Abgesehen von diesem Kennwort für den Sicherungscomputer müßte der Benutzer normalerweise für jedes zusätzliche Kennwort, mit dem das verschlüsselte Programm auf einem anderen Computer wiederhergestellt werden könnte, eine zusätzliche Gebühr bezahlen.
  • Jede Diskette ist mit einer individuellen Seriennummer versehen, die auf der Diskettenhülle oder der Außenhülle (nicht dargestellt) aufgedruckt ist, und die für den Benutzer sichtbar ist. Wie in Fig. 2 dargestellt, ist diese Seriennummer auch im Kopfdatensatz der Diskette erfaßt. Außerdem ist im Kopfdatensatz der Diskette die Programmnummer angegeben. In dem in Fig. 2 dargestellten Beispiel lautet die Programmnummer "12" und die Seriennummer oder Diskettennummer "3456". Durch Verschlüsselung der verketteten Programmnummer und Disketten-Seriennummer mit einem geheimen kryptographischen Schlüssel, der nur dem Softwarelieferanten zugänglich und bekannt ist, erhält man eine mehrstellige Autorisierungsnummer. Ein aus n Bit bestehender Teil der Autorisierungsnummer wird ebenfalls auf die Diskettenhülle auf gedruckt, jedoch durch einen dünnen Metallfilm abgedeckt, wie er bei Lotterien zur Abdeckung der Nummern auf den Losen verwendet wird. Nimmt man für n z. B. 16, gibt es 65.536 mögliche Kombinationen für den Teil der Autorisierungsnummer, der auf die Diskettenhülle auf gedruckt wird, damit stünden die Chancen, daß zufällig die richtige, auf die Diskettenhülle aufgedruckte Zahl erraten wird, eins zu 65.536.
  • Wenn ein Kennwort angefordert wird, wird in gleicher Weise wie bei der Generierung der Autorisierungsnummer eine Bezugs-Autorisierungsnummer erzeugt. Für jedes erstmals vergebene Kennwort wird in einer Datenbank ein Datensatz angelegt, der angibt, daß dies die erstmalige Verwendung der Bezugs-Autorisierungsnummer bei der Vergabe des Kennwortes an einen anfordernden Benutzer ist; zusätzlich wird ein Datensatz angelegt, der das vergebene Kennwort enthält. Bei jeder Kennwortanforderung wird daher eine Prüfung auf Erstverwendung durchgeführt, bei der festgestellt wird, ob die Bezugs-Autorisierungsnummer bereits zuvor zur Generierung des Kennwortes verwendet wurde.
  • Fig. 3 zeigt diesen Vorgang. Nach dem Kauf einer Diskette ruft der Benutzer per Telefon den Softwarelieferanten an. Es wird davon ausgegangen, daß der Benutzer keine Diskette akzeptiert, bei der die Autorisierungsnummer freigelegt ist, d. h. bei der der Metallfilm abgeschabt wurde. Der Kunde gibt dem Softwarelieferanten die Programmnummer, den n Bit umfassenden Teil der Autorisierungsnummer, die Disketten-Seriennummer und die Computernummer durch. Jeder Computer 10 hat eine individuelle Identifikation oder Nummer, die - z. B. in Form eines für den Benutzer sichtbaren Haftetiketts - außen am Computer angebracht ist. Diese Identifikation oder Nummer ist dem geheimen Schlüssel der kryptographischen Einrichtung des Computers zugeordnet. Die Programmnummer und die Disketten-Seriennummer werden in Register 20 geladen. Wie bereits erwähnt, wurden für das in Fig. 2 dargestellte Beispiel die Nummern "12" bzw. "3456" gewählt. In Block 21 verschlüsselt der Softwarelieferant dann einfach die angegebene Programmnummer und die Disketten-Seriennummer, die mit einander verkettet sind, mit einem speziellen geheimen Schlüssel SK, der ausschließlich zur Generierung mehrstelliger Autorisierungsnummern verwendet wird. Der aus n Bit bestehende Teil der Autorisierungsnummern, die auf die Disketten geschrieben werden, wird mit dem gleichen Verschlüsselungsverfahren erstellt. Zuerst wird in der Datenbank des Softwarelieferanten die mehrstellige Autorisierungsnummer oder Bezugsnummer geprüft, um festzustellen, ob die Autorisierungsnummer bereits zuvor verwendet wurde. Alternativ könnte der Softwarelieferant diese Prüfung anhand der Programmnummer und der Disketten-Seriennummer vornehmen. In diesem Fall erfaßt der Softwarelieferant in seiner Datenbank einfach Programmnummer und Disketten-Seriennummer, sobald für diese Nummern ein Kennwort vergeben wurde. Wenn die Autorisierungsnummer oder die Programmnummer und die Disketten- Seriennummer bereits verwendet wurden, weiß der Softwarelieferant, daß für diese Programmnummer und Disketten-Seriennummer ein Kennwort vergeben wurde und daß dieses Kennwort in seiner Datenbank registriert ist. In diesem Fall wird das Kennwort abgerufen und erneut an den Anruf er vergeben. Dieser Vorgang ist in Block 22 von Fig. 3 dargestellt. Ergibt andererseits dieser Abfragevorgang eine erstmalige Verwendung, wird in Block 24 der betreffende, n Bit umfassende Teil der in Block 21 erzeugten Bezugs-Autorisierungsnummer mit dem vom Anrufer durchgegebenen n Bit umfassenden Teil der Autorisierungsnummer verglichen. Wird eine Entsprechung gefunden, generiert der Softwarelieferant ein spezifisches Kennwort, mit dem das verschlüsselte Programm auf dem speziellen Computer entschlüsselt und ausgeführt werden kann. Dazu übermittelt der Softwarelieferant eine elektronische Nachricht mit Programmnummer, Disketten- Seriennummer und Computernummer an das Schlüsselverteilungszentrum 14. Das Schlüsselverteilungszentrum 14 verschlüsselt im Verschlüsselungsblock 26 die Computernummer mit einem Schlüssel KT zu einem Verschlüsselungsschlüssel eKT(TR), der sich speziell auf diesen einen Computer bezieht. Alternativ könnte der Schlüssel eKT(TR) anhand einer Tabelle der gespeicherten Schlüssel bestimmt werden. Anschließend werden die Programmnummer und die Disketten-Seriennummer in Register 28 im Verschlüsselungsblock 30 mit dem Schlüssel eKT(TR) zu einem für dieses Programm und diesen Computer spezifischen kryptographischen Schlüssel verschlüsselt. In dem dargestellten Beispiel lautet dieser kryptographische Schlüssel eKT(PG123456). Das Schlüsselverteilungszentrum 14 übermittelt dann den kryptographischen Schlüssel zurück an den Softwarelieferanten. Um die Sicherheit des Systems noch weiter zu erhöhen, kann auch zwischen Softwarelieferant und Schlüsselverteilungszentrum mit Verschlüsselung gearbeitet werden, um die Geheimhaltung des kryptographischen Schlüssels zu gewährleisten.
  • In der Zwischenzeit hat der Softwarelieferant den Dateischlüssel KF aus seiner Datenbank erhalten, der der vom Anrufer durchgegebenen Programmnummer entspricht - siehe Tabelle 32.
  • In Verschlüsselungsblock 34 wird dann der Schlüssel KF mit dem vom Schlüsselverteilungszentrum 14 übermittelten kryptographischen Schlüssel verschlüsselt und daraus das angeforderte Kennwort generiert. Das generierte Kennwort wird an den Anrufer übermittelt. Kennwörter können z. B. 64 Bit lang sein und können daher vom Anrufer nicht erraten oder aus anderen, dem Anrufer zugänglichen Informationen hergeleitet werden. Als letzten Schritt legt der Softwarelieferant nun in seiner Datenbank einen Datensatz an, aus dem hervorgeht, daß dies die erstmalige Verwendung der Bezugs-Autorisierungsnummer bei der Vergabe eines Kennwortes auf Benutzeranforderung ist, und er registriert das ermittelte Kennwort in seiner Datenbank.
  • Bei der Initialisierung fordert das Programm, wenn es in den Computer 10 geladen wird, den Benutzer zur Eingabe des Kennwortes auf. Das Kennwort wird vom Programm - wie in Fig. 2 dargestellt - in den Kopfdatensatz der Datei geschrieben; bei späterer Verwendung dieses Programms wird der Benutzer nicht mehr zur Eingabe seines Kennwortes aufgefordert. So könnte z. B. ein Protokoll so ausgelegt sein, daß der Computer immer den Kopfdatensatz der Diskette liest und dort ein Kennwort sucht. Wird kein Kennwort gefunden, fordert das Programm den Benutzer zur Eingabe des Kennwortes auf und schreibt dieses dann in den Kopfdatensatz. Wird das Kennwort im Kopfdatensatz gefunden, verwendet der Computer dieses Kennwort und fordert den Benutzer nicht zur Eingabe eines Kennwortes auf. Der Benutzer könnte auch eine Überschreibungsmöglichkeit erhalten, so daß er das Kennwort überschreiben kann, falls das im Kopfdatensatz erfaßte Kennwort nicht den richtigen Dateischlüssel KF ergibt, also die verschlüsselte Daten mit dem wiederhergestellten Schlüssel KF nicht richtig wiederhergestellt wird. Zu beachten ist hierbei, daß für den Softwarelieferanten keine Notwendigkeit besteht, das Kennwort geheimzuhalten, da damit keine anderen verschlüsselten Programme entsperrt werden können.
  • Wahlweise könnte das Verfahren zur Vergabe von Kennwörtern beim Softwarelieferanten durch Einsatz eines sprachgestützten Rückantwortsystems in Verbindung mit einer Mehrfrequenztoneingabe auch voll automatisiert werden. Dabei könnte der Anrufer z. B. zur Eingabe der entsprechenden Nummern über die Mehrfrequenzton-Tastatur eines Telefons aufgefordert werden, wobei die Nummern zur Bestätigung durch den Benutzer wiederholt würden. Wird eine gültige Autorisierungsnummer eingegeben, wird über eine elektronische Nachricht an das Schlüsselverteilungszentrum 14 der erforderliche kryptographische Schlüssel angefordert. Anhand dieser Nachricht wird das Kennwort berechnet, das für den Anrufer wiederum über das automatisierte Sprachsystem wiederholt wird. Die Anforderung des Kennwortes beim Softwarelieferanten könnte sogar noch weiter automatisiert werden, indem eine Übertragungssitzung zwischen einem Initialisierungsprogramm im Personal Computer 10 und einem im Computersystem des Softwarelieferanten geladenen Kennwortverteilungsprogramm gestartet wird. In diesem Fall würde der Benutzer die entsprechende Nummer wählen und die Sitzung starten. Die Programmnummer und die Disketten-Seriennummer könnten aus dem Kopfdatensatz der Diskette gelesen werden, in den sie vom Softwarelieferanten geschrieben wurden. Die Computernummer könnte in dem System gespeichert und ebenfalls automatisch angegeben werden. Der Benutzer würde an der entsprechenden Stelle in der Sitzung aufgefordert, die Autorisierungsnummer über die Tastatur einzugeben. Das ermittelte Kennwort würde automatisch in den Kopfdatensatz der Diskettendatei geschrieben.
  • Bei Bedarf kann sich der Benutzer später jederzeit an den Softwarelieferanten wenden, um sein Kennwort nochmals abzufragen. Dazu gibt er lediglich die Programmnummer und die Disketten-Seriennummer an; diese Informationen reichen für den Softwarelieferanten aus, um festzustellen, daß für dieses Nummernpaar bereits ein Kennwort vergeben wurde und um das Kennwort, das zuvor in seiner Datenbank abgespeichert wurde, abzurufen. Kurz: der Anrufer erhält für jede beliebige Kombination aus Programmnummer und Disketten-Seriennummer in der Datenbank des Softwarelieferanten ein bereits berechnetes Kennwort. Diese Option bedeutet keine Schwachstelle für das System, sondern macht es lediglich für den Endbenutzer leichter handhabbar.
  • Wenn die Diskette in den Computer 10 geladen wird, wird das verschlüsselte Programm oder ein Teilabschnitt davon automatisch entschlüsselt und in einen geschützten Speicher 101 geschrieben, von dem aus es nur ausgeführt werden kann, während ein Zugriff für andere Zwecke nicht möglich ist. Fig. 4 zeigt diesen Vorgang; dabei liest die kryptographische Einrichtung 101 des Computers 10 Kennwort, Programmnummer und Disketten-Seriennummer aus dem Datei-Kopfdatensatz. Programmnummer und Disketten- Seriennummer, die miteinander verkettet sind, werden im Verschlüsselungsblock 103 mit dem Verschlüsselungsschlüssel für diesen speziellen Computer zu einem Entschlüsselungsschlüssel verschlüsselt, der im Entschlüsselungsblock 105 zur Entschlüsselung des Kennwortes und zur Erzeugung des geheimen Dateischlüssels KF verwendet wird, der zur Entschlüsselung des Programms oder eines Teilabschnitts des Programms dient. Dazu wird der Datenverschlüsselungsstandard (DES - Data Encryption Standard) verwendet. Zu beachten ist, daß nur der spezielle, dafür vorgesehene Computer in der Lage ist, den Entschlüsselungsschlüssel zu generieren, der den Dateischlüssel KF liefert.
  • In Fig. 5 wird ein alternatives Ausführungsbeispiel gezeigt, das eine Erweiterung des ersten mit Möglichkeit zur Übertragung eines verschlüsselten Programms mit Hilfe einer Smart-Karte 16 darstellt. Bei diesem Ausführungsbeispiel erhält der Benutzer beim Kauf eines Computers eine Smart-Karte 16, die vom Computerhersteller mit einem für diese Karte spezifischen geheimen Parameter vorinitialisiert ist. Ein Benutzer, der eine Diskette mit einem verschlüsselten Programm erwirbt, erhält - wie zuvor - vom Softwarelieferanten ein geheimes Kennwort, nur ermöglicht hier das Kennwort in Verbindung mit der Smart-Karte dem Benutzer die Entschlüsselung und Ausführung des Programms auf jedem beliebigen Personal Computer mit ordnungsgemäß implementierter und initialisierter Verschlüsselungseinrichtung.
  • Diesen Vorgang zeigt Fig. 6. Um das geheime Kennwort zu erhalten, gibt der Benutzer in diesem Fall nicht die Computernummer, sondern die Nummer der Smart-Karte an. Jede Smart-Karte hat eine spezifische Indentifikations- oder Kartennummer, die für den Benutzer lesbar ist. Ist die Autorisierungsnummer gültig und wurde für diese Programmnummer und Disketten-Seriennummer keine andere Anforderung eingegeben, wie in den Vergleichsblöcken 22 und 24 ermittelt, generiert der Softwarelieferant ein spezielles Kennwort, mit dem das verschlüsselte Programm in Verbindung mit der Smart-Karte auf jedem beliebigen Personal Computer mit gültiger Verschlüsselungseinrichtung entschlüsselt werden kann. Der Softwarelieferant erhält wiederum vom Schlüsselverteilungszentrum 14 einen spezifischen kryptographischen Schlüssel, mit dem in Verbindung mit dem geheimen Dateischlüssel das angeforderte Kennwort generiert wird. In diesem Fall befindet sich das Schlüsselverteilungszentrum 14 im Besitz des Computerherstellers oder wird unter dessen Aufsicht betrieben. Das Schlüsselverteilungszentrum 14 bestimmt anhand der Kartennummer in Tabelle 27 einen entsprechenden Kartenverschlüsselungsschlüssel KP. Alternativ kann der Schlüssel KP anhand eines geheimen, dem Schlüsselverteilungszentrum gehörigen Schlüssels in ähnlicher Weise generiert werden, wie die eKT(TR)-Schlüssel in Fig. 3 mit dem geheimen Schlüssel KT erzeugt werden. Mit diesem Verschlüsselungsschlüssel werden dann in Verschlüsselungsblock 30 die Programmnummer und Disketten-Seriennummer verschlüsselt, so daß ein kryptographischer Schlüssel entsteht, der an den Softwarelieferanten übermittelt wird. Wie zuvor kann auch hier die Sicherheit des Systems durch eine Verschlüsselung zwischen dem Schlüsselverteilungszentrum und dem Softwarelieferanten erhöht werden, um die Geheimhaltung bei der Schlüsselübermittlung zu gewährleisten. Ansonsten ist das Protokoll mit demjenigen des ersten Ausführungsbeispiels identisch. Das Kennwort wird - wie in Fig. 7 dargestellt - in den Kopfdatensatz der Diskette geschrieben. Zur Automatisierung des Vorgangs beim Softwarelieferanten bestehen dieselben Möglichkeiten. Entsprechend kann über ein Initialisierungsprogramm im Personal Computer 10 das Kennwort automatisch beim Softwarelieferanten abgerufen werden, nur muß hierbei an Stelle der Computernummer die Nummer der Smart-Karte eingegeben werden. Die Nummer der Smart-Karte kann von der Smart-Karte oder von einer Adresse im Computer gelesen werden, unter der sie zuvor gespeichert wurde.
  • Wenn die Diskette in einen autorisierten Computer geladen und die Smart-Karte 16 in die entsprechende Lesevorrichtung eingeführt wird, über die Karte und Computer in einen elektronischen Dialog treten können, wird das verschlüsselte Programm automatisch entschlüsselt und in den geschützten Speicher 101 geschrieben, aus dem heraus es nur ausgeführt werden kann. Ausführlicher dargestellt und wie in Fig. 8 und 9 gezeigt, liest der Computer 10 Programmnummer, Disketten-Seriennummer und Kennwort aus dem Datei-Kopfdatensatz und übermittelt diese Daten zusammen mit seiner Computernummer an die Smart-Karte 16. Auf der Smart-Karte wird die Computernummer im Verschlüsselungsblock 161 mit einem universellen Schlüssel KT verschlüsselt, der auf jeder Smart-Karte gespeichert ist. Programmnummer und Disketten- Seriennummer werden im Verschlüsselungsblock 162 mit einem Schlüssel KP verschlüsselt, der kartenspezifisch ist und auf der Smart-Karte gespeichert ist. Die Ausgabe des Verschlüsselungsblocks 162 ist ein Entschlüsselungsschlüssel, der von Entschlüsselungsblock 163 zur Entschlüsselung des Kennwortes verwendet wird, um den geheimen Dateischlüssel KF zu erzeugen.
  • In der Zwischenzeit erzeugt die kryptographische Einrichtung 101 des Computers 10 mit einem Zufallszahlengenerator 107 oder mit Hilfe der Systemuhr eine Zufallszahl T. Im Rahmen des internen Protokollaustauschs zwischen dem Computer 10 und der Smart-Karte 16 wird die Zufallszahl T an die Smart-Karte übergeben, wo sie durch eine Exklusiv-ODER-Verknüpfung mit dem Dateischlüssel KF verknüpft wird. Die daraus resultierende Ausgabe wird im Verschlüsselungsblock 164 mit der Ausgabe von Verschlüsselungsblock 161 zu einem Computerkennwort verschlüsselt, das wieder an den Computer übergeben wird. Dieses Computerkennwort wird anschließend im Entschlüsselungsblock 109 mit einem für den Computer spezifischen Schlüssel entschlüsselt. Die Ausgabe von Entschlüsselungsblock 109 wird mit einer Exklusiv-ODER-Verknüpfung mit der Zufallszahl T zu dem geheimen Dateischlüssel KF verknüpft. Dabei ist zu beachten, daß die von der Karte generierten Kennwörter zeitabhängig sind. Werden sie abgefangen und zu einem späteren Zeitpunkt wieder in den Computer zurück übertragen, kann damit keine weitere Kopie des verschlüsselten Programms auf einer anderen Diskette entschlüsselt und ausgeführt werden.
  • Fig. 10 zeigt den Ablauf bei der Generierung von Programmdisketten. Zunächst wird die unverschlüsselte Diskette 36 mit dem Programm vom Softwarelieferanten an den Softwarehändler geliefert. Der Softwarehändler verschlüsselt dann im Verschlüsselungsblock 38 mit einem Schlüssel KF die Datei und erhält damit eine verschlüsselte Diskette 40. Der Schlüssel KF kann generell für ein bestimmtes Programm oder aber speziell für jede einzelne Diskette ausgelegt sein. Die verschlüsselte Diskette wird dann mit einem Diskettenkopierer 42 kopiert, um verschlüsselte Disketten 44 zu erhalten, die zum Verkauf an die Benutzer vorgesehen sind. Bei diesem Ablauf können natürlich Softwarelieferant und Softwarehändler ein und dieselbe Person sein.
  • Fig. 11 zeigt die kryptographische Einrichtung 101 im Personal Computer 10. Bei der kryptographischen Einrichtung handelt es sich um eine geschützte Implementierung mit dem DES-Algorithmus und Speicherkapazität für eine begrenzte Anzahl geheimer Schlüssel. Logischer Zugriff ist nur über spezielle, gegen Eindringen, Umgehen und Manipulation geschützte Schnittstellen möglich, wodurch die Verarbeitung von Anforderungen über eine Steuerleitung, die Eingabe von Schlüssel- und Datenparametern und das Empfangen von umgewandelten Ausgabedaten möglich sind. Die kryptographische Einrichtung umfaßt einen ROM, z. B. einen EAPROM (Elektrisch veränderbarer, programmierbarer Festwertspeicher) 113, der den Computerschlüssel enthält. Zusätzlich enthält der ROM 114 Programme für Ablaufgeneratoren für die Schlüsselverwaltung und einen Diskettenlader. Ein zusätzlicher RAM (Arbeitsspeicher) 115 enthält einen Parameterausgabepuffer, einen Parametereingabepuffer, einen Zwischenspeicher für Parameter, Daten und Schlüssel, sowie einen zusätzlichen Speicher für die entschlüsselten Programme. Der RAM 115 ist der geschützte Speicher der kryptographischen Einrichtung 101 - die darin gespeicherten entschlüsselten Programme können nur ausgeführt werden; Zugriff für andere Zwecke ist nicht möglich.
  • Abb. 12 zeigt die wichtigsten Bauelemente einer Smart-Karte, wie sie für bestimmte Ausführungsbeispiele der Erfindung verwendet wird. Die Smart-Karte muß einen Mikroprozessorchip 165 zur Ausführung des kryptographischen Algorithmus enthalten. Außerdem verfügt die Karte über einen Speicher für den Schlüssel KP und die Kartennummer. Der kartenspezifische, geheimzuhaltende Schlüssel KP wird im privaten Speicher 166 gespeichert, die Kartennummer dagegen im öffentlichen Speicher 167. Die Stromversorgung für den Mikroprozessorchip und die Speicher wird vom Computer 10 bezogen.
  • Das beschriebene Protokoll ermöglicht anderen Softwarelieferanten den Vertrieb von verschlüsselten Programmen, die über einen Personal Computer oder einen Personal Computer und eine Smart- Karte ausgeführt werden, ohne Sicherheitsverlust für die geschützte Software oder die geheimen Schlüssel oder Parameter, die das System unterstützen. Um Zugang zu dem System zu erhalten, muß der Softwarelieferant lediglich eine elektronische Nachricht an das Schlüsselverteilungszentrum übermitteln, mit der Programmnummer und Computernummer oder - bei einer Implementierung mit Smart-Karte - Programmnummer und Smart-Kartennummer übermittelt werden. Das Schlüsselverteilungszentrum sendet einen kryptographischen Schlüssel zurück, der spezifisch für die jeweilige Programmnummer und Computernummer oder Smart-Kartennummer angelegt ist, die der Softwarelieferant in Verbindung mit dem geheimen Dateischlüssel verwendet hat, mit dem das Programm zur Generierung des erforderlichen Kennwortes verschlüsselt wurde. Um zu gewährleisten, daß nicht zwei verschiedene Softwarelieferanten, die zwei verschiedene Programme mit identischer Programmnummer haben, denselben Schlüssel erzeugen, kann das Protokoll geringfügig verändert werden, indem jedem Softwarelieferanten eine spezifische, zwei- oder dreistellige Codenummer zugewiesen wird. Dann muß lediglich die Programmnummer dahingehend neu definiert werden, daß sie aus der Codenummer für den Softwarelieferanten, gefolgt von der vom Softwarelieferanten definierten Programmnummer besteht, also aus so vielen Stellen wie zur Unterscheidung verschiedener Programme notwendig sind, die von diesem Softwarelieferanten angeboten werden. Auf diese Weise werden die Programmnummer und die Disketten-Seriennummer, die bei den Berechnungen verwendet werden, durch Lieferantennummer, Programmnummer und Disketten-Seriennummer ersetzt.
  • Zu Fig. 13 und 14: Wie bereits angedeutet kann das zweite Ausführungsbeispiel mit der Smart-Karte durch einen öffentlichen Schlüsselalgorithmus erweitert werden, genauer: auf der Smart- Karte und im Computer wird zusätzlich zum DES-Algorithmus ein "Öffentlicher Schlüssel"-Algorithmus (PK-Algorithmus) installiert. Der Vorteil besteht darin, daß die Protokolle für alle drei Verfahren ziemlich ähnlich sind. Die Einführung des PK- Algorithmus hat keine Auswirkung auf den bei Fig. 6 beschriebenen Prozeß der Kennwortgenerierung/-verteilung. Bei diesem Ausführungsbeispiel wird der entscheidende Vorteil des PK- Algorithmus genutzt: auf der Smart-Karte muß kein universeller geheimer Schlüssel gespeichert werden. Der Kartenhersteller personalisiert die Karte mit dem Schlüssel KP; außerdem wird die Karte vom Hersteller mit PKu, dem öffentlichen Schlüssel des Registers, personalisiert. Beim Kauf von Software erhält der Kunde automatisch eine personalisierte Smart-Karte. Jedes einzelne Programm, das auf einer Diskette gespeichert ist, wird mit einem anderen Dateischlüssel KF verschlüsselt, der vom Lieferanten der Software zugeordnet wird. Wenn ein Kunde ein Programm auf Diskette erwirbt, sendet er unter Angabe seines Namens und der Seriennummer seiner Smart-Karte einen Kaufnachweis an den Lieferanten. Der Kaufnachweis kann statt dessen eine Autorisierungsnummer enthalten, die - wie zuvor beschrieben - durch Abschaben eines Films freigelegt werden muß. Die Nummern sind so angelegt, daß eine gültige Autorisierungsnummer nicht durch Raten ermittelt werden kann. Der Kunde ruft den Lieferanten an und fordert ein spezielles Kennwort an, um seine Diskette zu aktivieren. Diese Nummer wird nur dann ausgegeben, wenn die Autorisierungsnummer von dem Kaufnachweis vorliegt und anhand einer aktiven Online-Datei geprüft wurde, um zu gewährleisten, daß diese Nummer noch nicht verwendet wurde. Sind alle Voraussetzungen erfüllt, fragt der Lieferant den Kunden nach dessen Kartennummer und greift über diese Nummer auf eine weitere aktive Online-Datei zu, um den Schlüssel KP abzurufen, der dieser Smart-Karte - wie bei Fig. 6 beschrieben - zugeordnet ist. Der Lieferant chiffriert den Dateischlüssel KF für das erworbene Programm und gibt diese Nummer als Kennwort an den Kunden weiter. Der Kunde schreibt dann über den Computer das Kennwort in den Kopfdatensatz der Datei auf der Diskette, wie zuvor beschrieben. Wie in Fig. 20 dargestellt, ist im Kopfdatensatz der Diskette das Kennwort eKP-(PG123456(KF) gespeichert, wobei KF der geheime Dateischlüssel für das Programm ist. Bis zu diesem Punkt ist der Ablauf damit genauso wie für die Kombination Smart-Karte/nur DES-Algorithmus beschrieben.
  • Der Computerhersteller personalisiert den Computer mit einem spezifischen Schlüsselpaar, dem öffentlichen Schlüssel für den Computer PKt und dem geheimen Schlüssel für den Computer SKt. Der Computerhersteller läßt den öffentlichen Schlüssel für den Computer in einem öffentlichen Register erfassen. Dies bedeutet, daß PKt in der Form dSKu(PKt) gespeichert wird, wobei SKu der geheime Schlüssel des Registers und PKt der öffentliche Schlüssel für den Computer ist. Dieser Wert dSKu(PKt) wird ebenfalls im Computer gespeichert.
  • Für die Verwendung einer Diskette auf einem beliebigen Computer gibt es ein Handshake-Protokoll, das zwischen der Smart-Karte 16 und dem Computer 10 eingesetzt wird und das den Dateischlüssel KF aus der Chiffrierung mit dem Schlüssel KP wiederherstellt und mit dem öffentlichen Schlüssel PKt des Computers chiffriert. Der Vorgang im Einzelnen: Der öffentliche Schlüssel PKt für den Computer 10 in der Form dSKu(PKt) wird im Verschlüsselungsblock 161 mit dem öffentlichen Schlüssel PKu des Registers zum öffentlichen Schlüssel PKt für den Computer verschlüsselt. Die Bezeichnung dSKu(PKt,0) bedeutet, daß der öffentliche Schlüssel PKt, verkettet mit mehreren Redundanzbits (in diesem Fall 0 Bit), mit dem geheimen Schlüssel SKu verschlüsselt wird. SKu ist der geheime Schlüssel des Computerherstellers. Die Redundanzbits werden zu der Nachricht hinzugefügt, so daß nach der Verschlüsselung gewährleistet ist, daß kein unechter Text verschlüsselt und als Schlüssel PKt verwendet wird. Im Normalfall reicht eine Redundanz von 16 bis 64 Bit aus. Wegen der Redundanzbits muß die Ausgabe des Verschlüsselungsblocks 161 geprüft werden, um zu gewährleisten, daß die Redundanzbits einem vorgegebenen konstanten Wert entsprechen. Ist dies der Fall, ist sichergestellt, daß der wiederhergestellte PKt der öffentliche Schlüssel für einen von dem Computerhersteller hergestellten Computer ist. Dadurch ist gewährleistet, daß ein Unbefugter die Smart-Karte nicht veranlassen kann, einen anderen als den vom Computerhersteller ausgegebenen öffentlichen Schlüssel PKt zu verwenden. Fachleute werden feststellen, daß der Block mit den Redundanzbits im Normalfall länger ist als der öffentliche Schlüssel PKu, so daß der Block aufgeteilt und die Verschlüsselung mit PKu mit Hilfe üblicher Verkettungsverfahren durchgeführt werden muß.
  • Die von der Diskette gelesene Programmnummer wird außerdem im Verschlüsselungsblock 162 mit dem Schlüssel KP verschlüsselt, um den Schlüssel eKP(PG1234s6) zu generieren, der zur Entschlüsselung des verschlüsselten Schlüssels KF im Entschlüsselungsblock 163 dient. Die Ausgabe von Entschlüsselungsblock 163 wird durch eine Exklusiv-ODER-Verknüpfung mit einer vom Zufallszahlengenerator 107 erzeugten Zufallszahl T verknüpft; das Ergebnis wird im Verschlüsselungsblock 164 mit dem Schlüssel PKt zu dem geheimen Dateischlüssel KF verschlüsselt, welcher wiederum durch eine Exklusiv-ODER-Verknüpfung mit der mit dem öffentlichen Schlüssel für den Computer PKt Verschlüsselten Zufallszahl T verknüpft wird. Dieses Kennwort wird von der Smart-Karte 16 an die kryptographische Einrichtung 101 des Computers 10 übergeben. Dort wird es in Entschlüsselungsblock 105 mit dem geheimen Schlüssel SKt des Computers entschlüsselt und anschließend über eine Exklusiv-ODER-Verknüpfung mit der Zufallszahl T verknüpft. Der Dateischlüssel KF ist damit in eine für den Computer verwendbare Form gebracht. Das Protokoll ist so ausgelegt, daß die Übergabe (Handshake) nur auf einem geeigneten Computer mit einem öffentlichen Schlüssel erfolgen kann, der im Register erfaßt ist, d. h. für den PKt mit dem geheimen Schlüssel des Registers dechiffriert wurde.
  • Das Ausführungsbeispiel mit der Kombination von öffentlichem Schlüssel und DES-Algorithmus bietet mehrere Vorteile. Auf der Karte braucht kein geheimer universeller Schlüssel gespeichert zu werden, da alle universellen Schlüssel, die in dem System verwendet werden, öffentliche Schlüssel sind. Selbst wenn ein Unbefugter den Dateischlüssel KF herausfindet, kann er die Karte nicht veranlassen, einen unverschlüsselten Schlüssel zu akzeptieren. Der vom Computer gesendete Wert T verhindert, daß Unbefugte die Schnittstelle anzapfen, um den verschlüsselten Schlüssel KF zu erhalten und wieder in den Computer einzugeben. Selbst wenn es einfach wäre, von einer gefälschten Karte Parameter über die Schnittstelle einzugeben, würde ein derartiger Versuch durch Verwendung des Wertes T zunichte gemacht.
  • Das beschriebene Protokoll ermöglicht Softwarelieferanten den Vertrieb verschlüsselter Programme, die auf einem bestimmten Computer mit Smart-Karte laufen, ohne Sicherheitseinbußen für die geschützte Software eines bestimmten Lieferanten oder die geheimen Schlüssel oder Parameter, die das System unterstützen. Um die Schnittstelle zum System herzustellen, muß der Softwarelieferant lediglich eine elektronische Nachricht an das Schlüsselverteilungszentrum übermitteln, die die Programmnummer und die Computernummer oder - bei einer Implementierung mit Smart-Karte - die Programmnummer und die Nummer der Smart-Karte enthält. Das Schlüsselverteilungszentrum übermittelt an den Lieferanten einen kryptographischen Schlüssel, der spezifisch für die Programmnummer und Computernummer oder Smart-Kartennummer gilt. Der Softwarelieferant verwendet diesen kryptographischen Schlüssel in Verbindung mit dem geheimen Dateischlüssel, mit dem das Programm verschlüsselt wurde, um das erforderliche Kennwort zu generieren.
  • Die kryptographische Einrichtung 101 unterstützt einen begrenzten Satz von kryptographischen Operationen zur Schlüsselverwaltung. Diese Operationen werden über sieben Mikrocode-Routinen gesteuert, die im ROM gespeichert sind und durch die Decodierung eines Operationscodes für eine bestimmte Operation gestartet werden. Die erste der sieben Operationen ist in Fig. 15 dargestellt. Wird keine Smart-Karte verwendet, wird die erste Operation in der Operationssteuereinheit 102 decodiert und die Adresse für den Mikrocode in Register 104 gespeichert. Die erste Operation akzeptiert ein Kennwort P1 und eine Zahl P2, die die Verkettung der Programmnummer und der aus einem Datei-Kopfdatensatz gelesenen Disketten-Seriennummer darstellt; anhand dieser Eingabeparameter leitet sie einen Dateischlüssel KF her, der nur von der kryptographischen Einrichtung zur Entschlüsselung eines verschlüsselten Programms mit dem einzigen Zweck der Ausführung des Programms verwendet wird. Genauer: Die Programmnummer und die Disketten-Seriennummer, die miteinander verkettet sind, werden im Verschlüsselungsblock 103 mit einem "festen" Schlüssel eKT(TR5678) zu einer Chiffretextausgabe C1 verschlüsselt. Anschließend wird in Block 105 das Kennwort verschlüsselt, wobei als Schlüssel der von Block 103 erzeugte Chiffretext C1 verwendet wird; dabei wird der Chiffretext C2 erzeugt, der den Dateischlüssel KF darstellt. Der Benutzer kann nicht auf den Dateischlüssel zugreifen, d. h. der Schlüssel ist geheim.
  • Bei Verwendung einer Smart-Karte veranlaßt die in Fig. 16 dargestellte zweite Operation die Generierung einer Zufallszahl T in der kryptographischen Einrichtung. Als Ergebnis dieser Operation wird außerdem ein spezielles Latch 106 in der kryptographischen Einrichtung gesetzt. Der Wert T wird vom Zufallszahlengenerator 107 generiert und in einem T-Register 108 in der kryptographischen Einrichtung gespeichert und auch als Ausgabe präsentiert, die an die Smart-Karte gesendet werden kann. Bei der Ausführung mit Computer/Smart-Karte zusammen mit den Parametern P1 (Kennwort) und P2 (Programmnummer // Disketten-Seriennummer, wobei // für Verkettung steht) und einem dritten Parameter P3, wobei die kryptographische Einrichtung den DES-Algorithmus, wie in Fig. 8 und 9 dargestellt, zur Verschlüsselung des Dateischlüssels verwendet, ist P3 die Computernummer. Alternativ stellt, wenn die kryptographische Einrichtung zur Verschlüsselung des Dateischlüssels den PK-Algorithmus verwendet, wie in Fig. 13 und 14 dargestellt, P3 die Verkettung des öffentlichen Schlüssels für den Computer PKt dar, sowie eine nicht geheime Konstante, die aus einer ausreichenden Anzahl von Bits besteht und den Wert Null haben kann, wobei alle Werte mit dem geheimen Schlüssel SKu des Verteilungszentrums entschlüsselt werden.
  • Ebenfalls bei Verwendung einer Smart-Karte akzeptiert eine in Fig. 17 dargestellte dritte Operation ein Kennwort P4 von der Smart-Karte, sofern das Latch 106 gesetzt ist; anderenfalls wird die Anforderung ignoriert. Aus dem Kennwort P4 und der in Register 108 gespeicherten Zufallszahl T leitet die Operation einen Dateischlüssel KF her, der von der kryptographischen Einrichtung zur Entschlüsselung eines verschlüsselten Programms zur ausschließlichen Ausführung dieses Programms verwendet wird. Als Entschlüsselungsalgorithmus für die Herleitung von Dateischlüssel KF kann der DES- oder der PK-Algorithmus verwendet werden. Der Benutzer hat keinen Zugriff auf den Dateischlüssel. Nachdem das Latch 106 getestet wurde, wird das Latch 106 von der Operationssteuereinheit 102 zurückgesetzt. Dadurch wird gewährleistet, daß eine neue Zufallszahl T generiert werden muß, damit die kryptographische Einrichtung durch erneuten Aufruf der dritten Operation ein weiteres Kennwort akzeptiert. Damit wird verhindert, daß alte Kennwörter wieder in die kryptographische Einrichtung gelangen. Werden die zweite und die dritte Operation zusammen verwendet, ermöglichen sie die Entschlüsselung eines verschlüsselten Programms und dessen Ausführung auf jedem Computer, der mit einer entsprechend installierten kryptographischen Einrichtung ausgestattet ist, die diese Operationen unterstützt. Der Mikrocode für die dritte Operation ist wie folgt aufgebaut: Zunächst wird getestet, ob Latch 106 gesetzt ist. Ist dies nicht der Fall, wird die Operation abgebrochen, anderenfalls wird das Latch zurückgesetzt. Anschließend wird der Parameter P4 im Entschlüsselungsblock 105 mit dem "festen" Schlüssel KT entschlüsselt, so daß die Chiffretextausgabe C1 entsteht. Dieser Entschlüsselungsvorgang wird - falls nur DES verfügbar ist - mit dem DES-Algorithmus unter Verwendung von KT = eKT(TR5678) ausgeführt, wie in Fig. 8 dargestellt; falls DES und PK verfügbar sind, wird die Entschlüsselung mit dem PK-Algorithmus durchgeführt, wobei KT = SKt, wie in Fig. 13 dargestellt. In beiden Fällen wird der dabei entstandene Chiffretext C1 durch Exklusiv-ODER-Verknüpfung mit der in Register 108 gespeicherten Zufallszahl T verknüpft, um den Chiffretext C2 zu erzeugen, der den Dateischlüssel KF darstellt.
  • Das Register 104, in dem die Adresse für den decodierten Mikrocode gespeichert ist, weist drei Markierungen - D, E und P - auf. Bis zu diesem Punkt der Beschreibung war die Aufgabe der kryptographischen Einrichtung die Herleitung des Dateischlüssels, der zur Entschlüsselung eines verschlüsselten Programms verwendet werden kann. Wie aus der nachfolgenden Beschreibung ersichtlich, kann der Dateischlüssel vom Benutzer auch zum Verschlüsseln von Daten eingesetzt werden. Zur Steuerung dieser Operationen dienen die Markierungen D, E und P. Die Markierung D ist die Entschlüsselungsmarkierung, die Markierung E die Verschlüsselungsmarkierung. Bei den kryptographischen Operationen zur Chiffrierung und Dechiffrierung von Daten wird davon ausgegangen, daß sie so angelegt sind, daß eine Chiffrieroperation nur dann ausgeführt wird, wenn die Markierung E getestet und dabei festgestellt wurde, daß sie für eine Chiffrieroperation gesetzt ist oder wenn die Markierung D getestet und dabei festgestellt wurde, daß sie für eine Dechiffrieroperation gesetzt ist. Zusätzlich testet die kryptographische Einrichtung, bevor sie entschlüsselte Daten weiterleitet, die Markierung P. Ist die Markierung P gesetzt, werden die entschlüsselten Daten in einen "Nur Ausführungs"-Speicher in der kryptographischen Einrichtung gestellt; anderenfalls werden die entschlüsselten Daten in den Hauptspeicher gestellt. Damit würden bei der zuvor beschriebenen zweiten und dritten Operation die Mikrocodes für diese Operationen zusätzlich die Markierung D setzen, die Markierung E zurücksetzen und die Markierung P setzen.
  • Neben den ersten drei Operationen unterstützt die kryptographische Einrichtung eine begrenzte Anzahl allgemeiner kryptographischer Operationen. Die erste dieser Operationen, also die vierte Operation, entspricht weitgehend der ersten Operation; sie ist in Fig. 18 dargestellt. Wird keine Smart-Karte verwendet, akzeptiert die vierte Operation die vom Benutzer ausgewählten Parameter P1 und P2, bei denen es sich um zwei vom Benutzer festzulegende Werte handelt, die jedoch unterschiedlich sein müssen. Anhand dieser Parameter generiert die vierte Operation mit einer anderen als der von der ersten Operation verwendeten algorithmischen Prozedur einen Dateischlüssel KF1, wobei KF1 eine Variante des Dateischlüssels KF ist. Bei der vierten Operation dient der "feste" Schlüssel eKT(TR5678) zur Verschlüsselung des Parameters P2 im Verschlüsselungsblock 103. Die Ausgabe des Verschlüsselungsblocks 103 ist der Chiffretext C1, der im Entschlüsselungsblock zur Erzeugung des Chiffretexts C2 verwendet wird, der KF darstellt. KF wird durch Exklusiv-ODER-Verknüpfung mit der Konstanten C, die ungleich null ist, zur Dateischlüsselvariante KF1 verknüpft. Der Schlüssel KF1 wird nur von der kryptographischen Einrichtung zur Verschlüsselung und Entschlüsselung von Daten verwendet. Die verschlüsselten und entschlüsselten Daten unterliegen der Kontrolle des Computerbenutzers und sind für diesen zugänglich. In diesem Fall steht dem Benutzer eine eingeschränkte Ver- und Entschlüsselungsfunktion zur Verfügung, allerdings wird der Vorgang durch einen für den Benutzer des Computers unbekannten Schlüssel gesteuert. Durch erneute Verwendung der Parameter P1 und P2 kann der Benutzer verschlüsselte Daten später jederzeit auf seinem Computer oder jedem anderen Computer mit entsprechend installierter kryptographischer Einrichtung, die die zweite und die fünfte Operation unterstützt, wieder entschlüsseln, indem er die zweite Operation zur Generierung einer neuen Zufallszahl T aufruft. Das Computer/Smart-Karten-Protokoll übergibt T, P1, P2 und P3 zur Generierung von P4 an die Smart-Karte, wie in Fig. 9 oder Mol-%14 dargestellt. Dann wird eine fünfte Operation aufgerufen, die die kryptographische Einrichtung veranlaßt, aus P4, C und der gespeicherten Zufallszahl T den Schlüssel KF1 wiederherzustellen. Der Benutzer kann daher die verschlüsselten Daten nicht auf einen anderen Computer übertragen und mit denselben Parametern P1 und P2 entschlüsseln.
  • Bei Verwendung einer Smart-Karte akzeptiert die in Fig. 19 dargestellte fünfte Operation ein Kennwort P4 von der Smart- Karte, sofern Latch 106 gesetzt ist; anderenfalls wird die Anforderung ignoriert. Aus diesem Parameter P4 generiert die fünfte Operation mit einer anderen algorithmischen Prozedur als bei der dritten Operation den Dateischlüssel KF1. Das in der fünften Operation verwendete Kennwort P4 wird von der Smart- Karte mit der in Fig. 9 dargestellten DES-Algorithmusprozedur oder der in Fig. 14 dargestellten PK-Algorithmusprozedur anhand der Parameter P1, P2 und P3 sowie der von der zweiten Operation generierten Zufallszahl T erzeugt, wobei P1 und P2 benutzerdefinierte Parameter sind und P3 die Computernummer, wenn die kryptographische Einrichtung zur Verschlüsselung von KF den DES- Algorithmus einsetzt, oder P3 die kryptographische Variable eSKu(PKt,0) ist, wenn die kryptographische Einrichtung zur Verschlüsselung von KF den PK-Algorithmus einsetzt. In diesem Fall steht dem Benutzer wiederum eine eingeschränkte Ver- und Entschlüsselungsfunktion zur Verfügung, allerdings wird der Vorgang durch einen für den Benutzer des Computers unbekannten Schlüssel gesteuert. Durch erneute Verwendung der Parameter P1 und P2 kann der Benutzer verschlüsselte Daten später jederzeit auf seinem Computer oder jedem anderen Computer mit entsprechend installierter kryptographischer Einrichtung, die die zweite und die fünfte Operation unterstützt, wieder entschlüsseln, indem er die zweite Operation zur Generierung einer neuen Zufallszahl T aufruft. Das Computer/Smart-Karten-Protokoll übergibt T, P1, P2 und P3 zur Generierung von P4 an die Smart-Karte, wie in Fig. 9 oder Fig. 14 dargestellt. Dann wird eine fünfte Operation aufgerufen, die die kryptographische Einrichtung veranlaßt, aus P4, C und der gespeicherten Zufallszahl T den Schlüssel KF1 wiederherzustellen. Der Benutzer kann daher die verschlüsselten Daten auf einen anderen Computer übertragen und mit denselben Parametern P1 und P2 entschlüsseln. Die verschlüsselten und entschlüsselten Daten unterliegen wiederum der Steuerung durch den Benutzer und sind für diesen zugänglich. Der Mikrocode für die fünfte Operation ist wie folgt aufgebaut: Zunächst wird getestet, ob Latch 106 gesetzt ist. Ist dies nicht der Fall, wird die Operation abgebrochen, anderenfalls wird das Latch zurückgesetzt. Anschließend wird der Parameter P4 im Entschlüsselungsblock 105 mit dem "festen" Schlüssel KT entschlüsselt. Falls nur DES verfügbar ist - KT = eKT(TR5678); falls jedoch DES und PK verfügbar sind - KT = SKt. Die Ausgabe des Entschlüsselungsblocks 105 ist der Chiffretext C1, der durch Exklusiv-ODER- Verknüpfung mit der in Register 108 gespeicherten Zufallszahl T verknüpft wird, um den Chiffretext C2 zu erzeugen, der KF repräsentiert. KF wird anschließend durch Exklusiv-ODER- Verknüpfung mit einer Konstanten C ungleich null verknüpft, um die Dateischlüsselvariante KF1 zu erzeugen. Daraufhin setzt der Mikrocode im Register 104 die Markierungen D und E und setzt die Markierung P zurück.
  • Wird keine Smart-Karte verwendet, akzeptiert eine sechste, in Fig. 20 dargestellte Operation ein vom Benutzer ausgewähltes Kennwort P1 und eine Zahl P2, die vom Benutzer frei gewählt werden kann; beide Werte dürfen jedoch nicht identisch sein. Anhand dieser Werte generiert die sechste Operation mit der gleichen algorithmischen Prozedur, die auch von der ersten Operation verwendet wurde einen Dateischlüssel KF. Dieser Dateischlüssel wird nur von der kryptographischen Einrichtung zur Verschlüsselung von Daten verwendet. In diesem Fall kann der Benutzer eigene Daten verschlüsseln, jedoch nicht entschlüsseln. In Verbindung mit der ersten Operation ermöglicht die sechste Operation die Verschlüsselung eines Programms durch den Benutzer und die Speicherung dieses verschlüsselten Programms in gesicherter Form auf Diskette oder Festplatte. Die Parameter P1 und P2 können ebenfalls in den Kopfdatensatz der Diskettendatei oder Plattendatei geschrieben werden. Später werden die gespeicherten Werte für P1 und P2 als Eingabeparameter für die erste Operation zur Entschlüsselung und Ausführung von Programmen verwendet. P1 und P2 sind so angelegt, daß sie die Entschlüsselung und Ausführung des verschlüsselten Programms nur auf dem Computer ermöglichen, auf dem das Programm ursprünglich verschlüsselt wurde, so daß verschlüsselte Programme nicht auf andere Computer übertragen und dort ausgeführt werden können.
  • Der Mikrocode für die sechste Operation ist wie folgt aufgebaut: Zunächst wird der Parameter P2 im Verschlüsselungsblock 103 mit dem "festen" Schlüssel eKT(TR5678) verschlüsselt, um den Chiffretext C1 zu erzeugen. Der Chiffretext C1 wird im Entschlüsselungsblock 105 zum Entschlüsseln des Parameters P1 und zur Erzeugung des Chiffretexts C2 verwendet, der den Dateischlüssel KF repräsentiert. Der Mikrocode setzt in Register 104 die Markierung E und setzt die Markierungen D und P zurück.
  • Bei Verwendung einer Smart-Karte akzeptiert die in Fig. 21 dargestellte siebte Operation ein Kennwort P4 von der Smart- Karte, sofern Latch 106 gesetzt ist; anderenfalls wird die Anforderung ignoriert. Aus diesem Kennwort P4 generiert die siebte Operation mit der gleichen algorithmischen Prozedur wie bei der dritten Operation den Dateischlüssel KF. Genauer: Der Mikrocode entschlüsselt in Entschlüsselungsblock 105 mit dem "festen" Schlüssel KT den Eingabeparameter P4, um den Chiffretext C1 zu erzeugen. Wird nur der DES-Algorithmus verwendet - KT = eKT(TR5678), wird auch der PK-Algorithmus verwendet - KT = SKt. Der Chiffretext wird dann durch Exklusiv-ODER-Verknüpfung mit der in Register 108 gespeicherten Zufallszahl T verknüpft, um den Chiffretext C2 zu erzeugen, der den Dateischlüssel KF repräsentiert. Außerdem setzt der Mikrocode für die siebte Operation in Register 104 die Markierung E und setzt die Markierungen D und P zurück. In der siebten Operation wird der Schlüssel KF nur von der kryptographischen Einrichtung zur Verschlüsselung von Daten verwendet. Der Benutzer kann seine eigenen Daten verschlüsseln, jedoch nicht entschlüsseln. Das in der siebten Operation verwendete Kennwort P4 wird von der Smart- Karte mit der in Fig. 9 dargestellten DES-Algorithmusprozedur oder der in Fig. 14 dargestellten PK-Algorithmusprozedur anhand der Parameter P1, P2 und P3 sowie der von der zweiten Operation generierten Zufallszahl T erzeugt, wobei P1 und P2 benutzerdefinierte Parameter sind. Wenn die kryptographische Einrichtung zur Verschlüsselung des Dateischlüssels den DES-Algorithmus einsetzt, wie in Fig. 8 und 9 dargestellt, ist P3 die Computernummer. Alternativ ist, wenn die kryptographische Einrichtung zur Verschlüsselung des Dateischlüssels, wie in Fig. 13 und 14 dargestellt, den PK-Algorithmus verwendet, stellt P3 die Verkettung des öffentlichen Schlüssels für den Computer PKt mit einer nicht geheimen Konstanten dar, die genügend Bits umfaßt und die den Wert null aufweisen kann, wobei alle Werte mit dem geheimen Schlüssel SKu des Verteilungszentrums verschlüsselt sind. In Verbindung mit der zweiten Operation ermöglicht die siebte Operation dem Benutzer die Verschlüsselung seiner eigenen Programme und deren Speicherung auf Diskette oder Festplatte in gesicherter Form. Die Parameter P1 und P2 können ebenfalls in den Kopfdatensatz der Diskettendatei oder Plattendatei geschrieben werden. Später kann der Benutzer das Programm auf seinem Computer oder jedem anderen Computer mit entsprechend installierter kryptographischer Einrichtung, die die zweite und dritte Operation unterstützt, entschlüsseln und ausführen, indem er die zweite Operation aufruft, um eine neue Zufallszahl T zu erzeugen, wobei die Parameter P1, P2, P3 und T an die Smart-Karte übergeben und ein neuer Wert für P4 angefordert wird, und indem er die dritte Operation zur Wiederherstellung des Dateischlüssels KF in der kryptographischen Einrichtung anhand des Parameters P4 und der gespeicherten Zufallszahl T aufruft. Die Parameter P1 und P2 sind also so angelegt, daß sie die Entschlüsselung und Ausführung eines verschlüsselten Programms auf anderen Computern ermöglichen, die die zweite und dritte Operation unterstützen. Da die siebte Operation keine Entschlüsselung mit dem wiederhergestellten Schlüssel KF ermöglicht, kann sie nicht mißbräuchlich zur Entschlüsselung eines auf übliche Weise erworbenen verschlüsselten Programms verwendet werden.
  • Nachfolgend sind die Prozeduren aufgeführt, die Benutzern von Computern mit einer kryptographischen Einrichtung zur Verfügung stehen, die die sieben zuvor beschriebenen Operationen unterstützt:
  • Nur DES, ohne Smart-Karte Operationen
  • 1. Programm entschlüsseln-ausführen OP1
  • 2. Datei verschlüsseln/entschlüsseln OP4
  • 3. Programm verschlüsseln OP6
  • Nur DES, mit Smart-Karte
  • 1. Programm entschlüsseln-ausführen OP2, OP3
  • 2. Datei verschlüsseln/entschlüsseln OP2, OP5
  • 3. Programm verschlüsseln OP2, OP7
  • DES/PK, mit Smart-Karte
  • 1. Programm entschlüsseln-ausführen OP2, OP3
  • 2. Datei verschlüsseln/entschlüsseln OP2, OP5
  • 3. Programm verschlüsseln OP2, OP7

Claims (18)

1. Verfahren zur Sicherung von Software, das die folgenden Schritte aufweist:
Verschlüsseln eines Programmes mit einem Dateischlüssel und Schreiben des verschlüsselten Programmes als Programmdatei auf ein Speichermedium;
Bereitstellen eines Computers, der einen geschützten Speicher und eine kryptographische Einrichtung besitzt mit einer Erkennung für eine geheime kryptographischen Schlüsselerkennung, der kryptographisch aus einer den Computer identifizierenden Nummer hergeleitet wird;
Ausstatten eines Benutzers des Speichermediums, welches das verschlüsselte Programm enthält, mit einem Kennwort, das kryptographisch zumindest aus dem Datenschlüssel, der den Computer identifizierenden Nummer, einer das Speichermedium identifizierenden Nummer und einer das Programm identifizierenden Nummer hergeleitet wird;
Eingeben des Kennwortes in den Computer, wenn das Medium darin geladen ist;
Herleiten des Dateischlusseis von zumindest dem Kennwort, der Nummer des Speichermediums, der Programmnummer und der kryptographischen Schlüsselerkennung und
Entschlüsseln zumindest eines Teilabschnittes des Programmes in eine ausführbare Form unter Verwendung des Dateischlüssels.
2. Verfahren nach Anspruch 1, bei welchem die Schritte der Eingabeaufforderung des Kennwortes an den Benutzer nur ausgeführt werden, wenn zuerst das Programm in den Computer geladen wurde, und bei welchem als Reaktion auf die Eingabe des Kennwortes durch den Benutzer das Kennwort in den Kopfdatensatz der Programmdatei geschrieben wird.
3. Verfahren nach Anspruch 1 oder 2, das weiters den Schritt zum Schreiben des entschlüsseiten Programmes in den geschützten Speicher aufweist, aus dem es ausschließlich ausgeführt werden kann.
4. Verfahren nach einem der vorigen Ansprüche, bei welchem der Schritt zum Bereitsteilen des Kennwortes durch Ausstatten des Benutzers des Speichermediums, weiches das verschlüsselte Programm enthält, mit einer Autorisierungsnummer, Auffordern des Benutzers zur Eingabe der Autorisierungsnummer, der Programmnummer, der Nummer des Speichermediums und der den Computer identifizierenden Nummer, Berechnen einer berechneten Autorisierungsnummer aus der eingegebenen Programmnummer und der Nummer des Speichermediums, Vergleichen der berechneten Autorisierungsnummer mit der eingegebenen Autorisierungsnummer, Beliefern eines Schlüsseiverteilungszentrums mit der eingegebenen Programmnummer, Nummer des Speichermediums und der den Computer identifizierenden Nummer, falls die berechnete und die eingegebene Autorisierungsnummer gleich sind, andernfalls Zurückweisen einer Kennwortanforderung des Benutzers, Erzeugen eines ersten Schlüsseis als Funktion der den Computer identifizierenden Nummer und dann Verschlüsseln der Programmnummer und der Nummer des Speichermediums, die mit dem ersten Schlüssel miteinander verkettet sind, um in dem Schlüsselverteilungszentrum einen zweiten Schlüssel zu erzeugen, und Verschlüsseln des geheimen Dateischlüssels des Programmes mit dem zweiten Schlüssel, um das Kennwort zu erzeugen, ausgeführt wird.
5. Verfahren nach Anspruch 4, das weiters den Schritt des Bestimmens, ob die berechnete Autorisierungsnummer zuvor benutzt wurde, und wenn das nicht der Fall ist, dann das Ausführen des Schrittes zum Vergleichen der berechneten Autorisierungsnummer mit der eingegebenen Autorisierungsnummer, und andernfalls das Zurückweisen der Kennwortanforderung des Benutzers aufweist.
6. Verfahren nach Anspruch 2 und einem der Ansprüche 4 oder 5, bei welchem die Schritte zum Herleiten des Dateischlüssels und zum Entschlüssein zumindest eines Teilabschnittes des Programmes durch die folgenden Schritte ausgeführt werden: Lesen des Kennwortes, der Programmnummer und der Nummer des Speichermediums vom Kopfdatensatz, Verschlüsseln der Programmnummer und der Nummer des Speichermediums vom Kopfdatensatz, Verschlüsseln der Programmnummer und der Nummer des Speichermediums, die miteinander mit einem Schlüssel verkettet sind, der eine Funktion der geheimen kryptographischen Schlüsselerkennung ist, um einen Entschlüsselungsschlüssel zu erzeugen, Entschlüsseln des Kennwortes mit dem Entschlüsselungsschlüssels, um den Dateischlüssel zu erzeugen, und Entschlüsseln des Programmes unter Verwendung des geheimen Dateischlüssels.
7. Verfahren nach Anspruch 1 oder 2, bei welchem der Schritt des Bereitstellens eines Computers mit einer geheimen kryptographischen Schlüsselerkennung von dem Software- oder dem Computerhändler durch Ausgeben einer Smart-Karte durchgeführt wird, welche die geheime kryptographische Schlüsselerkennung besitzt, wobei die Smart-Karte an den Computer angeschlossen wird.
8. Verfahren nach Anspruch 7, bei welchem der Schritt zum Bereitstellen des Kennwortes durch die folgenden Schritte ausgeführt wird: Ausstatten des Benutzers des Speichermediums, welches das verschlüsselte Programm enthält, mit einer Autorisierungsnummer, Auffordern des Benutzers zur Eingabe der Autorisierungsnummer, einer Nummer der Smart-Karte, der Programmnummer und der Nummer des Speichermediums, Berechnen einer Autorisierungsnummer aus der eingegebenen Programmnummer und der Nummer des Speichermediums, Vergleichen der berechneten Autorisierungsnummer mit der eingegebenen Autorisierungsnummer, und falls die berechnete und die eingegebene Autorisierungsnummer gleich sind, Beliefern eines Schlüsselverteilungszentrums mit der eingegebenen Nummer der Smart-Karte, der Programmnummer und der Nummer des Speichermediums, andernfalls Zurückweisen einer Kennwortanforderung des Benutzers, Erzeugen eines Kartenschlüssels entsprechend der eingegebenen Kartennummer und dann Verschlüsseln der Programmnummer und der Nummer des Speichermediums, die miteinander durch den Kartenschlüssel verkettet sind, um im Schlüsselverteilungszentrum einen Verschlüsselungsschlüssel zu erzeugen, Erzeugen eines geheimen Dateischlüssels entsprechend der eingegebenen Programmnummer und Verschlüsseln des geheimen Dateischlüssels mit dem Verschlüsselungsschlüssel, um das Kennwort zu erzeugen.
9. Verfahren nach Anspruch 7 oder 8, bei welchem die Schritte zum Herleiten des Dateischlüssels und zum Entschlüssein zumindest eines Teilabschnittes des Programmes durch die folgenden Schritte ausgeführt wird: Beliefern der Smart-Karte mit dem Kennwort, der Programmnummer und der Nummer des Speichermediums, Verschlüsseln der Programmnummer und der Nummer des Speichermediums in der Smart-Karte, die miteinander durch den Schlüssel der Smart-Karte verkettet sind, um einen Entschlüsselungsschlüssel zu erzeugen, Entschlüsseln des Kennwortes mit dem Entschlüsselungsschlüssel, um einen geheimen Dateischlüssel zu erzeugen, und Entschlüsseln zumindest den Teilabschnitt des Programmes in dem Computer unter Verwendung des geheimen Dateischlüssels
10. Verfahren nach Anspruch 9, das weiters die folgenden Schritte aufweist: Beliefern der Smart-Karte mit einer die kryptographische Einrichtung identifizierenden Nummer, Verschlüsseln der die kryptographische Einrichtung identifizierenden Nummer mit einem universellen Schlüssel in der Smart-Karte, um einen Computerverschlüsselungsschlüssel zu erzeugen, Erzeugen einer Zufallszahl im Computer und Beliefern der Smart- Karte mit der Zufallszahl, Exklusiv-ODER-Verknüpfen des geheimen Dateischlüssels mit der Zufallszahl in der Smart-Karte und Verschlüsseln des Ergebnisses mit dem Computerverschlüsselungsschlüssel, um eine verschlüsselte Exklusiv-ODER-Ausgabe zu erzeugen, Entschlüsseln der verschlüsselten Exklusiv-ODER-Ausgabe mit einem Computerverschlüsselungsschlüssel in dem Computer und Exklusiv-ODER-Verknüpfen der entschlüsselten Exklusiv-ODER-Ausgabe mit der Zufallszahl, um den geheimen Dateischlüssel zu erzeugen.
11. Verfahren nach Anspruch 10, bei welchem die Schritte des Verschlüsselns in der Smart-Karte und des Entschlüsselns im Computer unter Verwendung des DES-Algorithmus durchgeführt werden.
12. Verfahren nach Anspruch 9, das weiters die folgenden Schritte aufweist: Beliefern des Computers mit einem öffentlichen Schlüssel, PKt, der mit dem geheimen Schlüssel einer öffentlichen Registrierung entschlüsselt wurde, und ebenso Beliefern der kryptographischen Einrichtung mit einem entsprechenden geheimen Schlüssel, SKt, Beliefern der Smart-Karte mit einem öffentlichen Schlüssel, PKu, Verschlüsseln des öffentlichen Schlüssels des Computers in der Smart-Karte, der mit dem geheimen Schlüssel der öffentlichen Registrierung entschlüsseit wurde, mit dem öffentlichen Schlüssel PKu der Karte, um den Schlüssel PKt zu erzeugen, Erzeugen einer Zufallszahl im Computer und Liefern der Zufallszahl an die Smart- Karte, Exclusiv-ODER-Verknüpfen des geheimen Dateischlüsseis mit der Zufallszahl in der Smart-Karte und Verschlüsseln des Ergebnisses mit dem Schlüssel PKt, um eine verschlüsselte Exklusiv-ODER-Ausgabe zu erzeugen, Entschlüssein der verschlüsselten Exklusiv-ODER-Ausgabe im Computer mit dem Schlüssel SKt und Exklusiv-ODER-Verknüpfen der entschlüsselten Exklusiv-ODER Ausgabe mit der Zufallszahl, um den geheimen Dateischlüssel zu erzeugen.
13. Verfahren nach Anspruch 12, bei welchem die Schritte des Verschlüsselns und des Entschlüsselns in der Smart-Karte und im Computer durch selektives Verwenden des DES-Algorithmus und eines öffentlichen Schlüsselalgorithmus ausgeführt werden.
14. Verfahren nach Anspruch 1, bei welchem die kryptographische Einrichtung das Verschlüsseln und Entschlüsseln von Daten unterstützt, die vom Benutzer erzeugt werden, das die Schritte des Annehmens eines Benutzereingabeparameters und des Entschlüsselns des Benutzereingabeparameters mit einem Schlüssel aufweist, der eine Funktion der geheimen eindeutigen kryptographischen Schlüsselerkennung ist, um einen Dateischlüssel zum Verschlüsseln und Entschlüssein der vom Benutzer erzeugten Daten zu erzeugen.
15. Verfahren nach Anspruch 14, bei welchem der Eingabeparameter als erster und als zweiter Parameter eingegeben wird, wobei der Schritt des Entschlüsselns die folgenden Schritte aufweist: Verschlüsseln des zweiten Parameters mit dem Schlüssel, der eine Funktion der geheimen eindeutigen kryptographischen Schlüsselerkennung ist, um einen ersten Chiffretext zu erzeugen, und Entschlüsseln des ersten Parameters unter Verwendung des ersten Chiffretextes, um einen zweiten Chiffretext zu erzeugen, der einem Schlüssel KF entspricht.
16. Verfahren nach Anspruch 14, das weiters den Schritt des Exklusiv- ODER-Verknüpfens des Schlüsseis KF mit einer Konstante aufweist, um einen Schlüssel KF1 zu erzeugen, der als Dateischlüssel zum Verschlüsseln und Entschlüsseln der vom Benutzer erzeugten Daten verwendet wird.
17. Verfahren nach Anspruch 14, das weiters die Schritte des Erzeugens einer Zufallszahl und des Exklusiv-ODER-Verknüpfens der Zufallszahl mit dem entschlüsselten Benutzereingabeparameter, um einen Schlüssel KF zu erzeugen, und des Exklusiv-ODER-Verknüpfens des Schlüssels KF mit einer Konstante aufweist, um einen Schlüssel KF1 zu erzeugen, der zum Verschlüsseln und Entschlüssein der vom Benutzer erzeugten Daten verwendet wird.
18. Verfahren nach Anspruch 14, bei welchem die kryptographische Einrichtung das Verschlüsseln von Daten unterstützt, die vom Benutzer erzeugt werden, das die folgenden Schritte aufweist: Verschlüsseln vom Benutzer erzeugter Daten mit dem Dateischlüssel, Entschlüsseln der vom Benutzer erzeugten Daten durch die Schritte des Annehmens des Benutzereingabeparameters in Form eines ersten und eines zweiten Parameters, Verschlüsseln des zweiten Parameters mit dem Schlüssel, der eine Funktion der geheimen kryptographischen Schlüsselerkennung ist, um einen Entschlüsselungsschlüssel zu erzeugen, Entschlüssein des ersten Parameters mit dem Entschlüsselungsschlüssel, um einen Schlüssel KF zu erzeugen, der mit dem Dateischlüssel in Verbindung steht, und Entschlüssein der vom Benutzer erzeugten Daten unter Verwendung des Dateischlüssels.
DE8585115147T 1984-12-18 1985-11-29 Softwaresicherungsverfahren. Expired - Lifetime DE3587072T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US68285484A 1984-12-18 1984-12-18

Publications (2)

Publication Number Publication Date
DE3587072D1 DE3587072D1 (de) 1993-03-18
DE3587072T2 true DE3587072T2 (de) 1993-08-12

Family

ID=24741461

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8585115147T Expired - Lifetime DE3587072T2 (de) 1984-12-18 1985-11-29 Softwaresicherungsverfahren.

Country Status (5)

Country Link
US (1) US4757534A (de)
EP (1) EP0191162B1 (de)
JP (1) JPS61145642A (de)
CA (1) CA1238427A (de)
DE (1) DE3587072T2 (de)

Families Citing this family (248)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3782780T2 (de) * 1986-08-22 1993-06-09 Nippon Electric Co Schluesselverteilungsverfahren.
US4796181A (en) * 1986-10-24 1989-01-03 Wiedemer John D Billing system for computer software
US4907268A (en) * 1986-11-03 1990-03-06 Enigma Logic, Inc. Methods and apparatus for controlling access to information processed a multi-user-accessible digital computer
US5146575A (en) * 1986-11-05 1992-09-08 International Business Machines Corp. Implementing privilege on microprocessor systems for use in software asset protection
EP0266748B1 (de) * 1986-11-05 1995-02-08 International Business Machines Corporation Softwareschutzsystem einschliesslich eines Einschlüsselkryptosystems, eines auf Hardware beruhenden Genehmigungssystems und eines geschützten Zusatzprozessors
GB2204971A (en) * 1987-05-19 1988-11-23 Gen Electric Co Plc Transportable security system
GB2205667B (en) * 1987-06-12 1991-11-06 Ncr Co Method of controlling the operation of security modules
US4930073A (en) * 1987-06-26 1990-05-29 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
US4866769A (en) * 1987-08-05 1989-09-12 Ibm Corporation Hardware assist for protecting PC software
US4864616A (en) * 1987-10-15 1989-09-05 Micronyx, Inc. Cryptographic labeling of electronically stored data
FR2623640B1 (fr) * 1987-11-19 1990-03-16 Dassault Electronique Dispositif micro-informatique contre le deroulement de programmes frauduleux
EP0339115A1 (de) * 1988-04-28 1989-11-02 Siemens Aktiengesellschaft Verfahren zur Sicherung eines auf einem Speichermedium gespeicherten Programms
EP0403656B1 (de) * 1988-07-13 1995-05-24 Matsushita Electric Industrial Co., Ltd. Übertragungsvorrichtung
US4959861A (en) * 1988-07-13 1990-09-25 Howlette Edward L Security system for computer software
US4932054A (en) * 1988-09-16 1990-06-05 Chou Wayne W Method and apparatus for protecting computer software utilizing coded filter network in conjunction with an active coded hardware device
US5293029A (en) * 1989-01-17 1994-03-08 Kabushiki Kaisha Toshiba System for mutually certifying an IC card and an IC card terminal
FR2643475A1 (fr) * 1989-02-21 1990-08-24 Livowsky Jean Michel Procede de controle de l'utilisation d'un support d'informations, notamment magnetique ou magneto-optique et systemes pour sa mise en oeuvre
GB8908470D0 (en) * 1989-04-14 1989-06-01 Smiths Industries Plc Processors
US5099516A (en) * 1989-06-12 1992-03-24 Dell Corporate Services Corporation Digital computer code word identification system
GB9012949D0 (en) * 1989-08-25 1990-08-01 Ibm An apparatus and method for loading bios from a diskette in a personal computer system
US5136713A (en) * 1989-08-25 1992-08-04 International Business Machines Corporation Apparatus and method for decreasing the memory requirements for bios in a personal computer system
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5210875A (en) * 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
JPH0383132A (ja) * 1989-08-28 1991-04-09 Fujitsu Ltd ソフトウェア保護制御方式
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
ES2024250A6 (es) * 1990-05-11 1992-02-16 Telettra Espa Sistema de proteccion integral para vehiculos.
US5058162A (en) * 1990-08-09 1991-10-15 Hewlett-Packard Company Method of distributing computer data files
GB9017683D0 (en) * 1990-08-13 1990-09-26 Marconi Gec Ltd Data security system
US5230052A (en) * 1990-10-01 1993-07-20 International Business Machines Corp. Apparatus and method for loading bios into a computer system from a remote storage location
JPH05197732A (ja) * 1991-12-16 1993-08-06 Sofuto Banku Kk 情報販売端末装置のインタフェース
JP3073590B2 (ja) * 1992-03-16 2000-08-07 富士通株式会社 電子化データ保護システム、使用許諾者側装置および使用者側装置
USRE39802E1 (en) 1992-03-16 2007-08-28 Fujitsu Limited Storage medium for preventing an irregular use by a third party
IL106439A (en) * 1992-07-21 1997-07-13 Sunline Holdings Limited Method and means for identifying equipment which includes electronics
US5343525A (en) * 1992-08-05 1994-08-30 Value Technology Inc. Hard disk data security device
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
FR2697357B1 (fr) * 1992-10-23 1994-12-23 Gemplus Card Int Procédé d'acquisition de logiciels et système informatique pour mettre en Óoeuvre le procédé.
US5329570A (en) * 1992-12-03 1994-07-12 At&T Bell Laboratories Copy protection of software for use in a private branch exchange switch
US7089212B2 (en) * 1992-12-15 2006-08-08 Sl Patent Holdings Llc System and method for controlling access to protected information
US7831516B2 (en) * 1992-12-15 2010-11-09 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US6266654B1 (en) 1992-12-15 2001-07-24 Softlock.Com, Inc. Method for tracking software lineage
GB9303595D0 (en) * 1993-02-23 1993-04-07 Int Computers Ltd Licence management mechanism for a computer system
US5677989A (en) * 1993-04-30 1997-10-14 Lucent Technologies Inc. Speaker verification system and process
US5337357A (en) * 1993-06-17 1994-08-09 Software Security, Inc. Method of software distribution protection
US5416840A (en) * 1993-07-06 1995-05-16 Phoenix Technologies, Ltd. Software catalog encoding method and system
US5400403A (en) * 1993-08-16 1995-03-21 Rsa Data Security, Inc. Abuse-resistant object distribution system and method
WO1995009410A1 (fr) * 1993-09-29 1995-04-06 Pumpkin House Incorporated Dispositif et procede de chiffrement/dechiffrement et systeme de communication a chiffrement/dechiffrement
US5572589A (en) * 1993-12-09 1996-11-05 Microsoft Corporation Disc serialization
US5666411A (en) * 1994-01-13 1997-09-09 Mccarty; Johnnie C. System for computer software protection
DE69402955T2 (de) * 1994-02-08 1997-08-14 Belle Gate Investment B.V., Den Haag Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten
JPH07271865A (ja) 1994-04-01 1995-10-20 Mitsubishi Corp データベース著作権管理方法
US7036019B1 (en) * 1994-04-01 2006-04-25 Intarsia Software Llc Method for controlling database copyrights
US6744894B1 (en) 1994-04-01 2004-06-01 Mitsubishi Corporation Data management system
US5768568A (en) * 1994-04-29 1998-06-16 International Business Machines Corp. System and method for initializing an information processing system
JPH0823315A (ja) * 1994-07-08 1996-01-23 Sony Corp 情報提供システム
US6449717B1 (en) 1994-09-30 2002-09-10 Mitsubishi Corporation Data copyright management system
US6741991B2 (en) 1994-09-30 2004-05-25 Mitsubishi Corporation Data management system
US7302415B1 (en) * 1994-09-30 2007-11-27 Intarsia Llc Data copyright management system
DE69532153T2 (de) * 1994-09-30 2004-09-02 Mitsubishi Corp. Datenurheberrechtsverwaltungssystem
EP0709760B1 (de) 1994-10-27 2006-05-31 Intarsia Software LLC Urheberrechtsdatenverwaltungssystem
US6424715B1 (en) 1994-10-27 2002-07-23 Mitsubishi Corporation Digital content management system and apparatus
DE69532434T2 (de) 1994-10-27 2004-11-11 Mitsubishi Corp. Gerät für Dateiurheberrechte-Verwaltungssystem
DE4445847A1 (de) * 1994-12-22 1996-06-27 Sel Alcatel Ag Verfahren zum Verkaufen von Datensätzen sowie Verkaufsautomat, Speichereinrichtung und Chip-Karte dafür und Verkaufs-System für Telekommunikations-Software damit
SE504085C2 (sv) 1995-02-01 1996-11-04 Greg Benson Sätt och system för att hantera dataobjekt i enlighet med förutbestämda villkor för användare
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US8639625B1 (en) 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
CN101359350B (zh) 1995-02-13 2012-10-03 英特特拉斯特技术公司 用于安全地管理在数据项上的操作的方法
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5822291A (en) * 1995-03-23 1998-10-13 Zoom Television, Inc. Mass storage element and drive unit therefor
US5615264A (en) * 1995-06-08 1997-03-25 Wave Systems Corp. Encrypted data package record for use in remote transaction metered data system
JPH09115241A (ja) 1995-06-30 1997-05-02 Sony Corp データ記録装置及び方法、データ再生装置及び方法、並びに記録媒体
JPH0922352A (ja) * 1995-07-07 1997-01-21 Mitsubishi Electric Corp 著作権管理装置
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
JPH0991133A (ja) * 1995-09-20 1997-04-04 Fujitsu Ltd 不正申告検出システム
US8595502B2 (en) 1995-09-29 2013-11-26 Intarsia Software Llc Data management system
US5636096A (en) * 1995-10-02 1997-06-03 Aris Mardirossian, Inc. Magnetic disc cartridge and corresponding system/method for limiting copying of software
US5896255A (en) * 1995-10-02 1999-04-20 Aris Mardirossian, Inc. Magnetic disc cartridge and corresponding system/method for limiting coping of software
CN100347985C (zh) * 1995-10-09 2007-11-07 松下电器产业株式会社 内容重放装置及方法
US7801817B2 (en) 1995-10-27 2010-09-21 Makoto Saito Digital content management system and apparatus
JPH09134310A (ja) * 1995-11-07 1997-05-20 Fujitsu Ltd データの復号アルゴリズムを記憶する記憶媒体および方法
US5943423A (en) * 1995-12-15 1999-08-24 Entegrity Solutions Corporation Smart token system for secure electronic transactions and identification
US6067622A (en) * 1996-01-02 2000-05-23 Moore; Steven Jerome Software security system using remove function to restrict unauthorized duplicating and installation of an application program
CA2245822A1 (en) * 1996-02-09 1997-08-14 Integrated Technologies Of America, Inc. Access control/crypto system
US5937158A (en) * 1996-04-19 1999-08-10 Matsushita Electric Industrial Co., Ltd. System and method for connecting portable media with network and computer for use with the system
SE506853C2 (sv) 1996-06-20 1998-02-16 Anonymity Prot In Sweden Ab Metod för databearbetning
JPH1079000A (ja) * 1996-09-03 1998-03-24 Hitachi Ltd プログラム書き込み可能なicカード
US5887131A (en) * 1996-12-31 1999-03-23 Compaq Computer Corporation Method for controlling access to a computer system by utilizing an external device containing a hash value representation of a user password
TW401573B (en) * 1997-01-10 2000-08-11 Victor Company Of Japan Methods, apparatuse, and systems for producing and writing cipher keys, reproducing information with a cipher key, and for permitting reproduction of information with a cipher key, and optical disc recorded with a cipher key
US5920861A (en) * 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
FR2762111B1 (fr) * 1997-04-09 1999-06-18 Telediffusion Fse Procede et systeme de protection contre la copie et l'utilisation illicites d'un fichier informatique
FR2762417B1 (fr) 1997-04-16 1999-07-02 Gemplus Card Int Procede de controle de l'execution d'un produit logiciel
JPH10301772A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
US6173403B1 (en) * 1997-04-30 2001-01-09 Achates Reference Publishing, Inc. Method and apparatus for distributing information products
JPH10301773A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
EP1653463A1 (de) * 1997-05-13 2006-05-03 Kabushiki Kaisha Toshiba Verfahren und Vorrichtung zum Kopieren von Lizenzinformationen, Verfahren zum Versetzen von Lizenzinformationen
US6385723B1 (en) * 1997-05-15 2002-05-07 Mondex International Limited Key transformation unit for an IC card
US6212635B1 (en) * 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
GB2329499B (en) * 1997-09-19 2001-05-30 Ibm Method for controlling access to electronically provided services and system for implementing such method
US6112181A (en) * 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6094724A (en) * 1997-11-26 2000-07-25 Atmel Corporation Secure memory having anti-wire tapping
US6643775B1 (en) 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
US6480959B1 (en) 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US6334189B1 (en) 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
AU8251998A (en) * 1998-01-05 1999-07-26 Chew Wah Lui A computer software activation system and a method of authenticating computer software
EP1056015A4 (de) * 1998-01-21 2005-01-05 Tokyo Electron Ltd Speichervorrichtung, ver- und entschlüsselungsvorrichtung und zugriffsverfahren auf nichtflüchtige speicher
US7233948B1 (en) 1998-03-16 2007-06-19 Intertrust Technologies Corp. Methods and apparatus for persistent control and protection of content
US7246246B2 (en) * 1998-04-17 2007-07-17 Iomega Corporation System for keying protected electronic data to particular media to prevent unauthorized copying using a compound key
JP4539874B2 (ja) * 1998-05-14 2010-09-08 株式会社セガ 情報処理装置、情報処理方法及び情報記録媒体並びに情報処理システム
FR2779543B1 (fr) * 1998-06-04 2001-08-17 Eastman Kodak Co Procede de protection de logiciel
DE69819790D1 (de) * 1998-06-12 2003-12-18 Gemplus Gemenos Verfahren zur kontrolle der ausführung eines programmproduktes
FR2780177B1 (fr) * 1998-06-17 2001-10-05 Schlumberger Ind Sa Systeme de protection d'un logiciel
US6959288B1 (en) 1998-08-13 2005-10-25 International Business Machines Corporation Digital content preparation system
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US7110984B1 (en) 1998-08-13 2006-09-19 International Business Machines Corporation Updating usage conditions in lieu of download digital rights management protected content
US6389403B1 (en) 1998-08-13 2002-05-14 International Business Machines Corporation Method and apparatus for uniquely identifying a customer purchase in an electronic distribution system
US6611812B2 (en) 1998-08-13 2003-08-26 International Business Machines Corporation Secure electronic content distribution on CDS and DVDs
US6983371B1 (en) * 1998-10-22 2006-01-03 International Business Machines Corporation Super-distribution of protected digital content
JP4763866B2 (ja) 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
CA2332034C (en) * 1999-03-15 2008-07-29 Koninklijke Philips Electronics N.V. A method and system for providing copy-protection on a storage medium and storage medium for use in such a system
DE50012858D1 (de) * 1999-03-18 2006-07-06 Scm Microsystems Gmbh Verfahren zur sicherung von daten in einem tragbaren massenspeicher gegen unautorisierte vervielfältigung
US7810152B2 (en) * 2002-05-08 2010-10-05 Broadcom Corporation System and method for securely controlling access to device functions
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
FR2793049B1 (fr) 1999-04-28 2001-08-17 Fingerprint Procede pour securiser l'utilisation d'un logiciel a partir d'une unite de traitement et de memorisation d'un secret et systeme en faisant application
FR2793050B1 (fr) * 1999-04-28 2001-08-17 Fingerprint Procede pour securiser un logiciel d'utilisation a partir d'une unite de traitement et de memorisation d'un secret et systeme en faisant application
US7197144B1 (en) * 1999-06-08 2007-03-27 Ethos Technologies, Inc. Method and apparatus to authenticate a user's system to prevent unauthorized use of software products distributed to users
US6442559B1 (en) * 1999-06-22 2002-08-27 Microsoft Corporation Dynamic SKU management
US7243236B1 (en) 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US7171567B1 (en) * 1999-08-02 2007-01-30 Harris Interactive, Inc. System for protecting information over the internet
US20080082446A1 (en) * 1999-10-01 2008-04-03 Hicks Christian B Remote Authorization for Unlocking Electronic Data System and Method
US6683954B1 (en) * 1999-10-23 2004-01-27 Lockstream Corporation Key encryption using a client-unique additional key for fraud prevention
GB9925227D0 (en) 1999-10-25 1999-12-22 Internet Limited Data storage retrieval and access system
US7278016B1 (en) 1999-10-26 2007-10-02 International Business Machines Corporation Encryption/decryption of stored data using non-accessible, unique encryption key
US6912513B1 (en) * 1999-10-29 2005-06-28 Sony Corporation Copy-protecting management using a user scrambling key
US6831982B1 (en) * 1999-11-19 2004-12-14 Storage Technology Corporation Encryption key management system using multiple smart cards
US7213005B2 (en) * 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US6834110B1 (en) 1999-12-09 2004-12-21 International Business Machines Corporation Multi-tier digital TV programming for content distribution
CN100392624C (zh) * 1999-12-20 2008-06-04 谢浩强 用于限制软件只可被其使用权拥有者使用的方法
US6792113B1 (en) 1999-12-20 2004-09-14 Microsoft Corporation Adaptable security mechanism for preventing unauthorized access of digital data
JP2001209583A (ja) * 2000-01-26 2001-08-03 Sony Corp データ記録再生器およびセーブデータ処理方法、並びにプログラム提供媒体
US6920565B2 (en) * 2000-06-05 2005-07-19 Iomega Corporation Method and system for providing secure digital music duplication
US6718446B1 (en) 2000-02-11 2004-04-06 Iomega Corporation Storage media with benchmark representative of data originally stored thereon
NO311197B1 (no) * 2000-03-02 2001-10-22 Ramirez Olguin Nelson Eric Sikkerhetssystem mot ulovlig bruk eller kopiering av elektronisk data
EP1279249B1 (de) * 2000-03-29 2007-08-01 Vadium Technology Inc. Einmalige pad-verschlüsselung mit zentralschlüsseldienst und schlüsselfähigen zeichen
JP2001307424A (ja) * 2000-04-21 2001-11-02 Pioneer Electronic Corp 情報記録装置及び方法、情報再生装置及び方法並びに情報記録媒体
DE10023820B4 (de) * 2000-05-15 2006-10-19 Siemens Ag Software-Schutzmechanismus
FR2810480B1 (fr) * 2000-06-20 2002-11-15 Gemplus Card Int Traitement de donnees avec une cle
IT1317991B1 (it) * 2000-06-23 2003-07-21 Ipm Ind Politecnica Meridiona Dispositivo lettore di smart card con interfaccia usb per collegamento a personal computer e simili
US7215771B1 (en) 2000-06-30 2007-05-08 Western Digital Ventures, Inc. Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network
DE10033384A1 (de) * 2000-07-08 2002-01-17 Deutsche Telekom Ag Verfahren zur Installation von Software in einer Hardware
JP4892167B2 (ja) 2000-07-18 2012-03-07 シンプレックス メジャー センドリアン ベルハッド ディジタル・データ保護構成
JP4608749B2 (ja) * 2000-07-24 2011-01-12 ソニー株式会社 データ処理装置、データ処理方法、およびライセンスシステム、並びにプログラム提供媒体
US7155616B1 (en) 2000-07-31 2006-12-26 Western Digital Ventures, Inc. Computer network comprising network authentication facilities implemented in a disk drive
US7003674B1 (en) * 2000-07-31 2006-02-21 Western Digital Ventures, Inc. Disk drive employing a disk with a pristine area for storing encrypted data accessible only by trusted devices or clients to facilitate secure network communications
US7051211B1 (en) 2000-08-21 2006-05-23 International Business Machines Corporation Secure software distribution and installation
US6454709B1 (en) * 2000-08-29 2002-09-24 Peter Kleinschmidt Tele-evaluation system, especially for medicine
US6978375B1 (en) 2000-09-08 2005-12-20 International Business Machines Corporation System and method for secure authentication of external software modules provided by third parties
US20020042879A1 (en) * 2000-10-10 2002-04-11 Gould Terry A. Electronic signature system
US7362868B2 (en) * 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8160864B1 (en) * 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
EP2009634A1 (de) 2000-12-14 2008-12-31 ECD Systems, Inc. Systeme und Verfahren zur Modifikation optischer Medien
US20070219918A1 (en) * 2001-01-19 2007-09-20 Jonathan Schull System and method for controlling access to protected information
US20020108054A1 (en) * 2001-02-02 2002-08-08 Moore Christopher S. Solid-state memory device storing program code and methods for use therewith
US7302584B2 (en) * 2001-03-16 2007-11-27 Mcafee, Inc. Mechanisms for banning computer programs from use
US7017190B2 (en) * 2001-03-21 2006-03-21 Weber Warren D Portable recordable media anti-theft system
JP2002297477A (ja) * 2001-03-28 2002-10-11 Sony Computer Entertainment Inc 配信システム及び配信方法
US20020157011A1 (en) * 2001-04-20 2002-10-24 Thomas Iii Fred C. Method and apparatus for secure transmission of identifier for removable storage media
FR2824408A1 (fr) * 2001-05-03 2002-11-08 Thomson Licensing Sa Procede de gestion de jeu de pari sur une combinaison gagnante
KR100408287B1 (ko) * 2001-06-15 2003-12-03 삼성전자주식회사 컨텐트 보호 시스템 및 방법
US20030009686A1 (en) * 2001-07-03 2003-01-09 Yu-Te Wu Computer-implemented method for denying unauthorized access to data in a computer data storage medium
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7562396B2 (en) * 2001-08-21 2009-07-14 Ecd Systems, Inc. Systems and methods for media authentication
US7313828B2 (en) * 2001-09-04 2007-12-25 Nokia Corporation Method and apparatus for protecting software against unauthorized use
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US7526422B1 (en) 2001-11-13 2009-04-28 Cypress Semiconductor Corporation System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller
JP4198060B2 (ja) * 2001-11-15 2008-12-17 ソニー ミュージック エンターテインメント インコーポレイテッド リムーバル記録媒体によって配布されるデジタルコンテンツの使用及びコピーを制御するシステム
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6865555B2 (en) * 2001-11-21 2005-03-08 Digeo, Inc. System and method for providing conditional access to digital content
US20030105970A1 (en) * 2001-11-30 2003-06-05 Phillip Yuan Pei Jen Systems and methods for enforcing single computer use of software
WO2003049664A2 (en) * 2001-12-11 2003-06-19 Quigg Robert T Stair-climbing wheelchair
US7643393B2 (en) * 2001-12-12 2010-01-05 Ecd Systems, Inc. Systems and methods for optical media modification
JP4408601B2 (ja) * 2001-12-27 2010-02-03 富士通株式会社 情報再生装置およびセキュアモジュール
TW569144B (en) * 2002-01-03 2004-01-01 Winbond Electronics Corp Smart card with built-in keypro
US7065651B2 (en) 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
US7716485B2 (en) * 2002-02-01 2010-05-11 Sca Ipla Holdings Inc. Systems and methods for media authentication
US20040255134A1 (en) * 2002-02-27 2004-12-16 Harutoshi Miyamoto Host device
AU2002257640A1 (en) * 2002-03-07 2003-09-16 Activcard Ireland, Limited Method and system for playing a song in dependence upon personalised digital audio data.
US20030217280A1 (en) * 2002-05-17 2003-11-20 Keaton Thomas S. Software watermarking for anti-tamper protection
US7107461B2 (en) 2002-06-03 2006-09-12 Sony Computer Entertainment America, Inc. Methods and apparatus for customizing a rewritable storage medium
FR2841349A1 (fr) * 2002-06-20 2003-12-26 Kniazeff Nicolas Michel Alexis Procede de protection d'un logiciel contre la copie frauduleuse
US8155314B2 (en) 2002-06-24 2012-04-10 Microsoft Corporation Systems and methods for securing video card output
US7206940B2 (en) 2002-06-24 2007-04-17 Microsoft Corporation Methods and systems providing per pixel security and functionality
US7545940B2 (en) * 2002-08-02 2009-06-09 Disney Enterprises, Inc. System for publishing content on a portable digital storage medium
US7395435B2 (en) * 2002-09-20 2008-07-01 Atmel Corporation Secure memory device for smart cards
JP4299247B2 (ja) * 2002-11-05 2009-07-22 ヴィジョネア株式会社 情報記録媒体に記録された特定コンテンツの視聴管理方法及び情報記録媒体
US7293178B2 (en) * 2002-12-09 2007-11-06 Microsoft Corporation Methods and systems for maintaining an encrypted video memory subsystem
WO2004053664A1 (ja) * 2002-12-12 2004-06-24 Fujitsu Limited プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム
EP1632091A4 (de) * 2003-05-12 2006-07-26 Gtech Corp Verfahren und system zur authentifizierung
KR100982513B1 (ko) * 2003-11-12 2010-09-16 삼성전자주식회사 사용자 키를 이용한 저장 매체 디스크 사용 제한 방법 및장치
JP2005173197A (ja) * 2003-12-11 2005-06-30 Buffalo Inc 暗号復号処理システム及び暗号復号処理装置
US20050138387A1 (en) * 2003-12-19 2005-06-23 Lam Wai T. System and method for authorizing software use
US20050204405A1 (en) * 2004-03-04 2005-09-15 Brian Wormington Method and system for digital rights management
FR2867868A1 (fr) * 2004-03-19 2005-09-23 Tan Truyen Tran Procede de protection de logiciels et de donnees avec methode de gestion de clefs securisees
US20050235357A1 (en) * 2004-04-19 2005-10-20 Securemedia International Preventing cloning of high value software using embedded hardware and software functionality
JP4565895B2 (ja) * 2004-06-07 2010-10-20 大日本印刷株式会社 認証システム、認証方法及び認証プログラム等
US7681042B2 (en) * 2004-06-17 2010-03-16 Eruces, Inc. System and method for dis-identifying sensitive information and associated records
US8087091B2 (en) * 2004-07-08 2011-12-27 Media Rights Technologies Method and system for preventing unauthorized reproduction of electronic media
US20060041510A1 (en) * 2004-08-19 2006-02-23 Securemedia International Method for a secure system of content distribution for DVD applications
WO2006044765A2 (en) 2004-10-18 2006-04-27 Syphermedia International, Inc. Method and apparatus for supporting multiple broadcasters independently using a single conditional access system
US10477151B2 (en) 2004-10-18 2019-11-12 Inside Secure Method and apparatus for supporting multiple broadcasters independently using a single conditional access system
US20060130154A1 (en) * 2004-11-30 2006-06-15 Wai Lam Method and system for protecting and verifying stored data
JP2008524692A (ja) * 2004-12-20 2008-07-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 保護されたポータブル記憶媒体の解除方法
US20060294395A1 (en) * 2005-06-28 2006-12-28 Ogram Mark E Executable software security system
JP2007065850A (ja) * 2005-08-30 2007-03-15 Fujitsu Ltd 情報処理装置、情報処理方法およびプログラム
US20070162390A1 (en) * 2005-12-22 2007-07-12 Macrovision Corporation Techniques for distributing and monitoring content
US7970138B2 (en) * 2006-05-26 2011-06-28 Syphermedia International Method and apparatus for supporting broadcast efficiency and security enhancements
US20080008321A1 (en) * 2006-07-10 2008-01-10 Syphermedia International, Inc. Conditional access enhancements using an always-on satellite backchannel link
US20080080711A1 (en) * 2006-09-28 2008-04-03 Syphermedia International, Inc. Dual conditional access module architecture and method and apparatus for controlling same
US8761393B2 (en) * 2006-10-13 2014-06-24 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
US9277259B2 (en) 2006-10-13 2016-03-01 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
US20080133419A1 (en) * 2006-12-05 2008-06-05 Brian Wormington Secure financial transaction system and method
JP4930028B2 (ja) * 2006-12-13 2012-05-09 ソニー株式会社 情報処理装置、情報処理方法、プログラム
US8001596B2 (en) 2007-05-03 2011-08-16 Microsoft Corporation Software protection injection at load time
US20090094160A1 (en) * 2007-10-09 2009-04-09 Webster Kurt F Portable digital content device and methods for use therewith
US9830278B1 (en) * 2008-03-06 2017-11-28 EMC IP Holding Company LLC Tracking replica data using key management
US20090285390A1 (en) * 2008-05-16 2009-11-19 Ati Technologies Ulc Integrated circuit with secured software image and method therefor
EP2128867A1 (de) * 2008-05-28 2009-12-02 Sony DADC Austria AG Verfahren zur Steuerung des Zugriffs auf Inhalte eines Datenträgers
CN102812431A (zh) 2010-03-22 2012-12-05 Lrdc系统有限公司 用于识别与保护一组源数据的完整性的方法
US8510552B2 (en) * 2010-04-07 2013-08-13 Apple Inc. System and method for file-level data protection
US9032186B2 (en) * 2010-07-09 2015-05-12 Blackberry Limited Utilization of a microcode interpreter built in to a processor
JP5712842B2 (ja) * 2011-07-26 2015-05-07 富士通株式会社 情報処理装置及びパスワードの入力規則更新方法
FR2986124B1 (fr) * 2012-01-25 2014-03-14 Ercom Engineering Reseaux Comm Procede d'authentification d'un dispositif comprenant un processeur et une carte a puce par generation d'un motif
WO2013144719A1 (en) * 2012-03-26 2013-10-03 Assa Abloy Ab Field revisions for a personal security device
US10581844B2 (en) * 2014-09-05 2020-03-03 Utc Fire & Security Corporation System and method for access authentication
US20180145957A1 (en) * 2016-11-22 2018-05-24 Ca, Inc. User-defined dynamic password
US10614254B2 (en) 2017-12-12 2020-04-07 John Almeida Virus immune computer system and method
US10642970B2 (en) 2017-12-12 2020-05-05 John Almeida Virus immune computer system and method
US10346608B2 (en) 2017-12-12 2019-07-09 John Almeida Virus immune computer system and method
US10614232B2 (en) 2018-09-10 2020-04-07 John Almeida Storing and using multipurpose secret data
US10892895B2 (en) * 2018-09-10 2021-01-12 Atense, Inc. Storing and using multipurpose secret data
US11921868B2 (en) 2021-10-04 2024-03-05 Bank Of America Corporation Data access control for user devices using a blockchain

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218738A (en) * 1978-05-05 1980-08-19 International Business Machines Corporation Method for authenticating the identity of a user of an information system
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
US4433207A (en) * 1981-09-10 1984-02-21 Best Robert M Cryptographic decoder for computer programs
US4453074A (en) * 1981-10-19 1984-06-05 American Express Company Protection system for intelligent cards
FR2523745B1 (fr) * 1982-03-18 1987-06-26 Bull Sa Procede et dispositif de protection d'un logiciel livre par un fournisseur a un utilisateur
EP0121853A3 (de) * 1983-04-04 1988-01-13 BURROUGHS CORPORATION (a Delaware corporation) Datenverarbeitungssystem mit öffentlichem Chiffrier- und privatem Dechiffrierschlüssel
US4536647A (en) * 1983-07-15 1985-08-20 Atalla Corporation Pocket banking terminal, method and system
US4575621A (en) * 1984-03-07 1986-03-11 Corpra Research, Inc. Portable electronic transaction device and system therefor

Also Published As

Publication number Publication date
EP0191162A3 (en) 1989-03-08
JPS61145642A (ja) 1986-07-03
DE3587072D1 (de) 1993-03-18
US4757534A (en) 1988-07-12
CA1238427A (en) 1988-06-21
JPH0260007B2 (de) 1990-12-14
EP0191162A2 (de) 1986-08-20
EP0191162B1 (de) 1993-02-03

Similar Documents

Publication Publication Date Title
DE3587072T2 (de) Softwaresicherungsverfahren.
DE60306844T2 (de) Methode und System zur Datenaktualisierung
DE60016972T2 (de) Anpassbarer sicherheitsmechanismus, um unerlaubten zugang zu digitalen daten zu verhindern
DE69724946T2 (de) Programmvermietungssystem und Verfahren zur Vermietung von Programmen
DE69724235T2 (de) Computersystem und Verfahren zum Schutz von Software
DE69736696T2 (de) Netzwerk-Daten-Ubertragungssystem
DE69531082T2 (de) Verfahren und Vorrichtung mit einem Verschlüsselungskopfteil, die es ermöglicht, Software zu erproben
DE69435066T2 (de) Verfahren zur Verhinderung des unabsichtlichen Verrats des gespeicherten digitalen Geheimnisses durch einen Treuhänder
DE69433077T2 (de) Software-Verteilungsschutzverfahren
DE69531077T2 (de) Verfahren und Vorrichtung mit Benutzereinwirkung der Art Erproben-und-Kaufen, die es ermöglicht, Software zu erproben
DE60128785T2 (de) Aktivieren und Deaktivieren von Softwarefunktionen
EP1133849B1 (de) Verfahren und vorrichtung zum erzeugen eines verschlüsselten nutzdatenstroms und verfahren und vorrichtung zum entschlüsseln eines verschlüsselten nutzdatenstroms
DE60211841T2 (de) Vorrichtung zur Aktualisierung und zum Entzug der Gültigkeit einer Marke in einer Infrastruktur mit öffentlichen Schlüsseln
EP1151561B1 (de) Verfahren und vorrichtung zum erzeugen eines datenstroms und verfahren und vorrichtung zum abspielen eines datenstroms
DE69724947T2 (de) Rechnersystem und Verfahren zur Sicherung einer Datei
DE10124111B4 (de) System und Verfahren für verteilte Gruppenverwaltung
DE4142964C2 (de) Datenaustauschsystem mit Überprüfung der Vorrichtung auf Authentisierungsstatus
EP2810400B1 (de) Kryptographisches authentifizierungs - und identifikationsverfahren mit realzeitverschlüsselung
EP1184771A1 (de) Verfahren zum Schutz von Computer-Software und/oder computerlesbaren Daten sowie Schutzgerät
DE60114069T2 (de) System und Verfahren für den Schutz von Digitalwerken
DE69720972T2 (de) Computersystem und Verfahren zum Schutz von Software
DE60012622T2 (de) System und Programme zur Verhinderung des unerlaubten Kopierens von Software
EP1152379A2 (de) Verfahren zum anfordern der ausführung einer mit der karte verbundenen verpflichtung durch den kartenhalter und zum anerkennen dieser verpflichtung durch den kartenausgeber
EP1374189A2 (de) Verfahren zum sichern von digitalen waren beim verkauf über ein computernetzwerk
EP3629516A1 (de) Dezentralisierte identitätsmanagement-lösung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition