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
Links
- 238000000034 method Methods 0.000 title claims description 59
- 238000013475 authorization Methods 0.000 claims description 40
- 238000004422 calculation algorithm Methods 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims 1
- 238000013478 data encryption standard Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 17
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000000853 adhesive Substances 0.000 description 1
- 230000001070 adhesive effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 238000007790 scraping Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/10—Mechanisms 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/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
- G06Q20/40975—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/0014—Coin-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.
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)
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)
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 |
-
1985
- 1985-10-03 CA CA000492225A patent/CA1238427A/en not_active Expired
- 1985-11-13 JP JP60253012A patent/JPS61145642A/ja active Granted
- 1985-11-29 EP EP85115147A patent/EP0191162B1/de not_active Expired - Lifetime
- 1985-11-29 DE DE8585115147T patent/DE3587072T2/de not_active Expired - Lifetime
-
1987
- 1987-02-03 US US07/011,419 patent/US4757534A/en not_active Expired - Lifetime
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 |