[go: up one dir, main page]

DE69619186T2 - Gerät für die ausführung eines verschlüsselten progamms - Google Patents

Gerät für die ausführung eines verschlüsselten progamms

Info

Publication number
DE69619186T2
DE69619186T2 DE69619186T DE69619186T DE69619186T2 DE 69619186 T2 DE69619186 T2 DE 69619186T2 DE 69619186 T DE69619186 T DE 69619186T DE 69619186 T DE69619186 T DE 69619186T DE 69619186 T2 DE69619186 T2 DE 69619186T2
Authority
DE
Germany
Prior art keywords
program
encrypted
decryption
decrypted
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69619186T
Other languages
English (en)
Other versions
DE69619186D1 (de
Inventor
Takayuki Hirotani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intellectual Ventures Holding 81 LLC
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Publication of DE69619186D1 publication Critical patent/DE69619186D1/de
Application granted granted Critical
Publication of DE69619186T2 publication Critical patent/DE69619186T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

    Technisches Gebiet
  • Die vorliegende Erfindung betrifft eine Vorrichtung zum Ausführen eines verschlüsselten Programms, die in einen Computer oder dergleichen geladen wird, welche eine Funktion zum Entschlüsseln eines verschlüsselten Programms und zum Ausführen des entschlüsselten Programms aufweist. Insbesondere betrifft sie eine Vorrichtung zum Ausführen eines verschlüsselten Programms zum Ausführen eines verschlüsselten Programms, von welchem zumindest ein Teil verschlüsselt ist, wobei die Vorrichtung eine erste Speichereinrichtung zum Speichern eines Entschlüsselungsprogramms und eine Entschlüsselungseinrichtung zum Entschlüsseln des verschlüsselten Programms unter Verwendung des in der ersten Speichereinrichtung gespeicherten Entschlüsselungsprogramms umfaßt, wobei die Entschlüsselungseinrichtung eine CPU, die in einer LSI ausgebildet ist, zum Ausführen des in der ersten Speichereinrichtung gespeicherten Entschlüsselungsprogramms umfaßt.
  • Stand der Technik
  • Eine Vielfalt von Arten von Software wurden in letzter Zeit gemäß der beachtlichen Verbreitung von Computern entwickelt und können ungeachtet einer Art eines Computers als Universalsoftware verwendet werden. Eine illegale Kopie der Software nimmt jedoch zu, und somit müssen sofort einige Maßnahmen ergriffen werden, um eine illegale Kopie zu verhindern.
  • Als eine Maßnahme zum Verhindern, daß eine Software illegal kopiert wird, wird ein Kopierverhinderungsverfahren bereitgestellt, bei dem eine Software verschlüsselt wird und nur ein berechtigter Benutzer über ein Entschlüsselungsprogramm informiert ist und die verschlüsselte Software vor der Ausführung entschlüsselt wird.
  • Die herkömmliche Verschlüsselung wird hauptsächlich unter Verwendung eines Softwareumwandlungsalgorithmus durchgeführt. Je komplizierter der Umwandlungsalgorithmus ist, desto schwieriger ist die Entschlüsselung der Software, es ist jedoch tatsächlich sehr schwierig, einen solchen Verschlüsselungsalgorithmus zu erstellen. Ferner weist das herkömmliche Verschlüsselungsverfahren Nachteile auf, wobei ein Entschlüsselungsprogramm selbst kopiert wird und die verschlüsselte Software entschlüsselt wird und das entschlüsselte Programm kopiert und verwendet wird, und so weiter.
  • Anders ausgedrückt, die Kopie der Software wird beim herkömmlichen System durch ein Softwareverfahren unter Verwendung eines Paßworts verhindert. Das Softwareverfahren ist jedoch keine allmächtige Maßnahme und kann eine illegale Kopie nicht vollkommen verhindern. Es ist möglich, die Software vollständig zu kopieren. Die vollständige Kopie kann vom Original nicht unterschieden werden.
  • Aus JP 4 268 924 ist es bekannt, einen Inhalt, der teilweise mit Geheimhaltung belegt ist, in einem Objektprogramm vor einer leichtsinnigen Rückassemblierung eines Benutzers zu schützen. Ein Objektmodul, dessen Objektinhalt mit Geheimhaltung belegt ist, wird verschlüsselt und einem Benutzer als verschlüsseltes Objektmodul angeboten. Das verschlüsselte Objektmodul und ein normales unverschlüsseltes Objektmodul werden miteinander verbunden, um ein Ladmodul zu bilden. Zum Zeitpunkt der Ausführung eines Programms wird das Ladmodul in einen Speicher geladen, so daß sein verschlüsselter Teil entschlüsselt und in einen speziellen Block des Speichers geladen wird. Obwohl es gestattet ist, daß der Block aus einer CPU als Befehlswort ausgelesen wird, wird sein Lesen als Daten verboten.
  • JP 3 148 734 schlägt vor, den Schreibsperrbereich eines Hauptspeichers durch Ausgeben eines Schreibschutzsignals, wenn auf den Schreibsperrbereich und den Hauptspeicher zugegriffen wird, einem Cache-Speicher zuzuweisen. Ein Decodierer decodiert eine Kennzeichenadresse und eine Gruppenadresse von einer CPU, und wenn die Adresse, auf die von der CPU zugegriffen wird, den Schreibsperrbereich des Hauptspeichers zeigt, wird ein aktives Schreibschutzsignal an eine Steuersignal-Erzeugungsschaltung ausgegeben. Entsprechend dem Schreibschutzsignal stoppt die Steuersignal-Erzeugungsschaltung die Ausgabe eines Steuersignals. Folglich werden Cachedaten nicht in einen Cache- Datenspeicher geschrieben und der Cache-Speicher wird nicht aktualisiert. Somit wird der Schreibsperrbereich des Hauptspeichers einem Cacheraum zugewiesen und die Schreibschutzfunktion für den Cache-Speicher kann realisiert werden.
  • Die vorliegende Erfindung wurde in Anbetracht des obigen entwickelt und ihre Aufgabe ist die Bereitstellung einer Vorrichtung zum Ausführen eines verschlüsselten Programms, die in der Lage ist, zu verhindern, daß ein verschlüsseltes Programm kopiert und verwendet wird.
  • Offenbarung der Erfindung
  • Das obige Problem wird durch eine Vorrichtung zum Ausführen eines verschlüsselten Programms mit den Merkmalen von Anspruch 1 gelöst. Als Ausführungsvorrichtung für ein verschlüsseltes Programm zum Ausführen eines verschlüsselten Programms, von welchem zumindest ein Teil verschlüsselt ist, umfaßt eine erfindungsgemäße Vorrichtung eine erste Speichereinrichtung zum Speichern eines Entschlüsselungsprogramms, eine Entschlüsselungseinrichtung zum Entschlüsseln des verschlüsselten Programms unter Verwendung des in der ersten Speichereinrichtung gespeicherten Entschlüsselungsprogramms, wobei die Entschlüsselungseinrichtung eine CPU, die in einer LSI (Großintegration) ausgebildet ist, zum Ausführen des in der ersten Speichereinrichtung gespeicherten Entschlüsselungsprogramms umfaßt, eine zweite Speichereinrichtung mit einem Cache-Speicher, der in der LSI ausgebildet ist, zum Speichern eines von der Entschlüsselungseinrichtung entschlüsselten Programms, und eine Sperreinrichtung zum Verbieten, daß das in der zweiten Speichereinrichtung gespeicherte entschlüsselte Programm ausgelesen wird, wobei die Sperreinrichtung eine Sperrkennzeichen-Speichereinrichtung umfaßt, die in der LSI ausgebildet ist, in welcher ein Sperrkennzeichen gesetzt wird, wenn das Entschlüsselungsprogramm ausgeführt wird, und eine Cache-Funktion des Cache-Speichers gesperrt wird, wenn das Sperrkennzeichen in der Sperrkennzeichen-Speichereinrichtung gesetzt ist.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung umfaßt die Sperrkennzeichen-Speichereinrichtung ein Steuerregister oder einen Flip-Flop.
  • Gemäß einem weiteren Aspekt der Erfindung umfaßt die erfindungsgemäße Vorrichtung zum Ausführen eines verschlüsselten Programms ferner eine dritte Speichereinrichtung zum Speichern einer speziellen Information der Vorrichtung, eine Ladeinrichtung zum Laden eines Programms mit einem Paßwort- Berechnungsprogramm, von welchem zumindest ein Teil verschlüsselt ist, und eine Eingabeeinrichtung zum Eingeben eines Benutzerpaßworts, wobei die Entschlüsselungseinrichtung das verschlüsselte Paßwort-Berechnungsprogramm unter Verwendung des in der ersten Speichereinrichtung gespeicherten Entschlüsselungsprogramms entschlüsselt, und die zweite Speichereinrichtung ein von der Entschlüsselungseinrichtung entschlüsseltes Paßwort-Berechnungsprogramm speichert, eine Einrichtung zum Berechnen eines Paßworts auf der Basis der in der dritten Speichereinrichtung gespeicherten speziellen Information unter Verwendung des in der zweiten Speichereinrichtung gespeicherten entschlüsselten Paßwort-Berechnungsprogramms, und eine Einrichtung zum Vergleichen des Benutzerpaßworts mit dem berechneten Paßwort, um zu verbieten, daß eine illegale Kopie des Programms ausgeführt wird.
  • Ein weiteres vorteilhaftes Ausführungsbeispiel der erfindungsgemäßen Vorrichtung zum Ausführen eines verschlüsselten Programms ist dadurch gekennzeichnet, daß sie ferner umfaßt eine Ladeeinrichtung zum Laden eines Programms mit einem Urheberrechtsanspruchprogramm zum Anzeigen einer Urheberrechtsanspruchsmeldung und einem Verarbeitungsprogramm, von welchem zumindest ein Teil verschlüsselt ist, wobei die Entschlüsselungseinrichtung das verschlüsselte Urheberrechtsanspruchsprogramm unter Verwendung des in der ersten Speichereinrichtung gespeicherten Entschlüsselungsprogramms entschlüsselt, und die zweite Speichereinrichtung ein von der Entschlüsselungseinrichtung entschlüsseltes Urheberrechtsanspruchsprogramm speichert, und eine Einrichtung zum Anzeigen der Urheberrechtsanspruchsmeldung auf der Basis des in der zweiten Speichereinrichtung gespeicherten entschlüsselten Urheberrechtsanspruchsprogramms.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist ein Blockdiagramm, das einen Computer zeigt, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung belegt ist;
  • Fig. 2 ist ein Ablaufplan, der eine Ausführungssequenz eines verschlüsselten Programms gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • Fig. 3 ist ein Blockdiagramm, das einen Computer zeigt, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung belegt ist;
  • Fig. 4 ist ein Ablaufplan, der eine Ausführungssequenz eines verschlüsselten Programms gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • Fig. 5 ist ein Blockdiagramm, das einen Computer zeigt, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung belegt ist;
  • Fig. 6 ist ein Ablaufplan, der eine Ausführungssequenz eines verschlüsselten Programms gemäß dem dritten Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • Fig. 7 ist ein Blockdiagramm, das einen Computer zeigt, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß einem vierten Ausführungsbeispiel der vorliegenden Erfindung belegt ist; und
  • Fig. 8 ist ein Ablaufplan, der eine Ausführungssequenz eines verschlüsselten Programms gemäß dem vierten Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • Beste Art zur Ausführung der Erfindung
  • Ein bevorzugtes Ausführungsbeispiel einer erfindungsgemäßen Vorrichtung zum Ausführen eines verschlüsselten Programms wird nun mit Bezug auf die zugehörigen Zeichnungen beschrieben.
  • Fig. 1 ist ein Blockdiagramm der gesamten Konfiguration eines Computers, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung belegt ist. Der Computer umfaßt einen Ein-Chip-Mikrocomputer 10 und eine externe Speichervorrichtung 15. Der Ein-Chip-Mikrocomputer 10 umfaßt eine CPU (Zentralverarbeitungseinheit) 11 zum Steuern der gesamten Vorrichtung. Die CPU 11 steuert die Operationen der jeweiligen Schaltungen in dem Computer gemäß den Programmen, die im voraus in einem internen ROM (Nur-Lese-Speicher) 12 gespeichert werden. Der Ein-Chip-Mikrocomputer 10 umfaßt auch einen Cache- Speicher 13 und ein Steuerregister 14 zum Speichern von Steuerdaten zum Steuern einer Cache-Funktion des Cache-Speichers 13. Der ROM 12 und der Cache-Speicher 13 sind mit der CPU 11 über einen Systembus 16 verbunden, der aus einem Datenbus, einem Adressenbus und einem Steuerbus besteht.
  • Der Cache-Speicher 13 ist so aufgebaut, daß eine Cache-Funktion (Löschen und Schreiben von Daten) für einen Speicherbereich gemäß einer gesetzten "1" oder einer rückgesetzten "0" eines im Steuerregister 14 gespeicherten Kennzeichens und entsprechend dem Speicherbereich gesperrt oder zugelassen wird. Wenn die Cache-Funktion für einen gegebenen Bereich gesperrt ist, können die in dem Bereich gespeicherten Daten residente Daten sein. Die CPU 11 setzt das Kennzeichen und setzt es zurück.
  • Der Systembus 16 des Ein-Chip-Mikrocomputers 10 ist mit der Speichervorrichtung 15 über einen E/A-Puffer 17 verbunden. Ein Teil des Busses zwischen dem E/A-Puffer 17 und der Speichervorrichtung 15 wird externer Bus genannt. Die Speichervorrichtung 15 speichert zwei Arten von Programmen, einschließlich eines verschlüsselten Programms, das vor der Ausführung entschlüsselt werden muß, und eines nicht-verschlüsselten Programms. Es ist nicht notwendigerweise das gesamte Programm verschlüsselt, sondern es reicht aus, daß zumindest ein Teil des Programms verschlüsselt ist. Die Speichervorrichtung 15 ist nicht auf eine Halbleiterspeichervorrichtung begrenzt, sondern kann eine Speicherkarte, ein Festplattenlaufwerk und ein Diskettenlaufwerk sein. Es ist möglich, Programme von einem Netzwerk in die Speichervorrichtung 15 herunterzuladen.
  • Wenn ein in der Speichervorrichtung 15 gespeichertes Programm gelesen wird, führt die CPU 11 eine Steueroperation gemäß dem Programm aus. Ein Entschlüsselungsprogramm wird vorher in den ROM 12 geschrieben. Wenn das verschlüsselte Programm gelesen wird, wird das Programm ausgeführt, nachdem ein verschlüsselter Teil desselben entschlüsselt wurde. Das entschlüsselte Programm wird im Cache-Speicher 13 als residente Datei gespeichert. Wenn das aus der Speichervorrichtung 15 gelesene Programm ein nicht-verschlüsseltes Programm ist, führt die CPU 11 das Programm unter Verwendung einer Cache-Funktion für alle Bereiche des Cache-Speichers 13 aus. Da der E/A-Puffer 17 zwischen den Systembus 16 und den externen Bus (Speichervorrichtung 15) geschaltet ist, kann der Inhalt des ROM 12, einschließlich des Entschlüsselungsprogramms, nicht aus dem Ein-Chip-Mikrocomputer 10 ausgelesen werden.
  • Eine Operation zur Ausführung eines verschlüsselten Programms in dem Computer, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms mit der obigen Konfiguration gemäß dem ersten Ausführungsbeispiel belegt ist, wird nun beschrieben.
  • Fig. 2 ist ein Ablaufplan, der einen Prozeß der Ausführung des verschlüsselten Programms in dem Computer, der mit der Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß dem ersten Ausführungsbeispiel belegt ist, zeigt.
  • In Schritt S11 wird ein verschlüsseltes Programm, das entschlüsselt werden muß, in die Speichervorrichtung 15 geladen. Ein Teil von dem oder das gesamte Programm ist ungeachtet von Befehl und Daten verschlüsselt, und Informationen, die ein verschlüsseltes Programm anzeigen, sind zum Anfangsblock des Programms oder dergleichen hinzugefügt. Auf der Basis der Informationen, die zum Anfangsblock oder dergleichen hinzugefügt sind, stellt die CPU 11 fest, daß das aus der Speichervorrichtung 15 ausgelesene Programm ein verschlüsseltes Programm ist.
  • In Schritt S12 wird der verschlüsselte Teil des gelesenen Programms in die CPU 11 aufgenommen. In Schritt S13 wird der verschlüsselte Teil entschlüsselt.
  • Wenn der verschlüsselte Teil des Programms in die CPU 11 aufgenommen wird, wird der verschlüsselte Teil gemäß dem im ROM 12 gespeicherten Entschlüsselungsprogramm entschlüsselt. Das entschlüsselte Programm wird in Schritt S14 in den Cache-Speicher 13 geschrieben.
  • Da der Inhalt des ROM 12, wie vorstehend beschrieben, nicht zum externen Bus ausgelesen werden kann, ist es unwahrscheinlich, daß der Algorithmus des Entschlüsselungsprogramms durch einen Dritten analysiert wird.
  • Nachdem der verschlüsselte Teil des verschlüsselten Programms entschlüsselt ist und dieses entschlüsselte Programm in den Cache-Speicher 13 geschrieben ist, wird in Schritt S13 ein Cache-Sperrkennzeichen, das im Steuerregister 14 gespeichert wird und eine Cache-Funktion steuert, wie z. B. eine Datenlöschung eines Speicherbereichs des Speichers 13, in den das entschlüsselte Programm geschrieben ist, gesetzt. Daher wird verhindert, daß das entschlüsselte Programm zum externen Bus ausgelesen wird.
  • Das entschlüsselte Programm, das in den Cache-Funktion-Sperrbereich des Cache-Speichers 13 geschrieben ist, wird mit einem nicht-verschlüsselten Teil des verschlüsselten Programms, das in die Speichervorrichtung 15 geladen ist, kombiniert. Das kombinierte Programm wird durch die CPU 11 ausgeführt (Schritt S16). Von dem verschlüsselten Programm, das in die Speichervorrichtung 15 geladen ist, wird der verschlüsselte Teil entschlüsselt und im Cache-Speicher 13 als residente Datei gespeichert, wohingegen der nicht-verschlüsselte Teil durch eine normale Cache-Funktion unter Verwendung des restlichen Teils des Cache- Speichers 13 ausgeführt wird.
  • Wenn das verschlüsselte Programm nicht ausgeführt werden muß, wird der im Cache-Speicher 13 gespeicherte entschlüsselte Teil gelöscht und das Cache- Funktion-Sperrkennzeichen, das im Steuerregister 14 gemäß dem Speicherbereich entsprechend dem entschlüsselten Programm gesetzt ist, wird zum Aufheben der Cache-Funktionssperre rückgesetzt.
  • Gemäß einem Computer, der mit der Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß dem ersten Ausführungsbeispiel belegt ist, wird der verschlüsselte Teil des verschlüsselten Programms, das in die Speichervorrichtung 15 geladen wird, in den Ein-Chip-Mikrocomputer 11 aufgenommen und wird auf der Basis des Entschlüsselungsprogramms, das im voraus im ROM 12 gespeichert wird, welches nicht zum externen Bus ausgelesen werden kann, entschlüsselt. Das entschlüsselte Programm wird in den Cache-Speicher 13 geschrieben und ein Kennzeichen, das im Steuerregister 14 gespeichert wird und dem Speicherbereich des entschlüsselten Programms entspricht, wird gesetzt, wodurch die Cache-Funktion des Speicherbereichs gesperrt wird und verhindert wird, daß das entschlüsselte Programm zum externen Bus ausgelesen wird. Das im Cache-Speicher 13 gespeicherte entschlüsselte Programm und das in der Speichervorrichtung 15 gespeicherte nicht-verschlüsselte Programm werden kombiniert und durch die CPU 11 ausgeführt. Daher können die herkömmlichen Nachteile, bei denen das Entschlüsselungsprogramm selbst kopiert wird und das verschlüsselte Programm entschlüsselt wird oder das entschlüsselte Programm kopiert und verwendet wird, durch eine einfache Modifikation an der Konfiguration des Computers beseitigt werden.
  • Wenn ein verschlüsseltes Programm durch sein zweckgebundenes Entschlüsselungsprogramm in einem speziellen Computer entschlüsselt wird, kann eine Vorrichtung zum Ausführen eines verschlüsselten Programms mit hoher Zuverlässigkeit, die verhindert, daß das Entschlüsselungsprogramm oder das entschlüsselte Programm durch einen Dritten ausgelesen wird, bereitgestellt werden.
  • Wenn beim obigen Ausführungsbeispiel das entschlüsselte Programm in den Cache-Speicher 13 geschrieben wird, wird die Cache-Funktion in seinem Speicherbereich durch das Steuerregister 14 gesperrt und es wird verhindert, daß das entschlüsselte Programm zum externen Bus ausgesandt wird. Wenn, wie bei einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung, das in Fig. 3 und 4 gezeigt ist, ein Befehl (erweiterter Schreibbefehl) zum Schreiben eines entschlüsselten Programms in den Cache-Speicher 13 und gleichzeitig zum Hinzufügen eines Cache-Sperrkennzeichens in dem Systemprogramm einer CPU 21 eingeschlossen ist, ist das vorangehende Steuerregister 14 zum Sperren der Cache-Funktion und zum Aufheben der Sperre unnötig, was es somit schwieriger macht, das entschlüsselte Programm auszulesen.
  • Weitere Ausführungsbeispiele der Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß der vorliegenden Erfindung werden beschrieben.
  • Fig. 3 ist ein Blockdiagramm der gesamten Konfiguration eines Computers, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung belegt ist. Der Computer umfaßt einen Ein-Chip-Mikrocomputer 20 und eine externe Speichervorrichtung 25. Der Ein-Chip-Mikrocomputer 20 umfaßt eine CPU 21 zum Steuern der gesamten Vorrichtung. Die CPU 21 steuert die Operationen der jeweiligen Schaltungen in dem Computer gemäß den Programmen, die im voraus in einem internen ROM 22 gespeichert werden. Der Ein-Chip-Mikrocomputer 20 umfaßt auch einen Cache-Speicher 23 und einen Flip-Flop 27 zum Speichern von Steuerdaten zum Steuern einer Cache-Funktion des Cache-Speichers 23. Der ROM 22 und der Cache-Speicher 23 sind mit der CPU 21 über einen Systembus 26 verbunden, der aus einem Datenbus, einem Adressenbus und einem Steuerbus besteht.
  • Der Cache-Speicher 23 ist so aufgebaut, daß eine Cache-Funktion (Löschen und Schreiben von Daten) für einen vorbestimmten Speicherbereich gesperrt wird, wenn die Daten durch die CPU 21 mit einem erweiterten Schreibbefehl in den Speicherbereich geschrieben werden. Der Flip-Flop 27 ist entsprechend dem vorbestimmten Speicherbereich des Cache-Speichers 23 vorgesehen, in den die Daten unter dem erweiterten Schreibbefehl geschrieben werden. Wenn die CPU 21 unter dem erweiterten Schreibbefehl Daten in den Cache-Speicher 23 schreibt, wird folglich das Kennzeichen im Flip-Flop 27 gesetzt, so daß die Cache-Funktion des Cache-Speichers 23 gesperrt wird. Wenn die Cache-Funktion gesperrt ist, können die Daten im Cache-Speicher 23 residente Daten sein.
  • Der Systembus 26 des Ein-Chip-Mikrocomputers 20 ist mit der Speichervorrichtung 25 über einen E/A-Puffer 28 verbunden. Ein Teil des Busses zwischen dem E/A-Puffer 27 und der Speichervorrichtung 25 wird externer Bus genannt. Die Speichervorrichtung 25 speichert zwei Arten von Programmen, einschließlich eines verschlüsselten Programms, das vor der Ausführung entschlüsselt werden muß, und eines nicht-verschlüsselten Programms. Es ist nicht notwendigerweise das gesamte Programm verschlüsselt, sondern es reicht aus, daß zumindest ein Teil des Programms verschlüsselt ist. Die Speichervorrichtung 25 ist nicht auf eine Halbleiterspeichervorrichtung begrenzt, sondern kann eine Speicherkarte, ein Festplattenlaufwerk und ein Diskettenlaufwerk sein. Es ist möglich, Programme von einem Netzwerk in die Speichervorrichtung 25 herunterzuladen.
  • Wenn ein in der Speichervorrichtung 25 gespeichertes Programm gelesen wird, führt die CPU 21 eine Steueroperation gemäß dem Programm aus. Ein Entschlüsselungsprogramm wird vorher in den ROM 22 geschrieben. Wenn das verschlüsselte Programm gelesen wird, wird das Programm ausgeführt, nachdem ein verschlüsselter Teil desselben entschlüsselt wurde. Das entschlüsselte Programm wird im Cache-Speicher 23 als residente Datei gespeichert. Wenn das aus der Speichervorrichtung 25 gelesene Programm ein nicht-verschlüsseltes Programm ist, führt die CPU 21 das Programm unter Verwendung einer Cache-Funktion für alle Bereiche des Cache-Speichers 23 aus. Da der E/A-Puffer 28 zwischen den Systembus 26 und den externen Bus (Speichervorrichtung 15) geschaltet ist, kann der Inhalt des ROM 22, einschließlich des Entschlüsselungsprogramms, nicht aus dem Ein-Chip-Mikrocomputer 20 ausgelesen werden.
  • Eine Operation zur Ausführung eines verschlüsselten Programms in dem Computer, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms mit der obigen Konfiguration gemäß dem zweiten Ausführungsbeispiel belegt ist, wird nun beschrieben.
  • Fig. 4 ist ein Ablaufplan, der einen Prozeß der Ausführung des verschlüsselten Programms in dem Computer, der mit der Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß dem zweiten Ausführungsbeispiel belegt ist, zeigt.
  • In Schritt S21 wird ein verschlüsseltes Programm, das entschlüsselt werden muß, in die Speichervorrichtung 25 geladen. Ein Teil von dem oder das gesamte Programm ist ungeachtet von Befehl und Daten verschlüsselt, und Informationen, die ein verschlüsseltes Programm anzeigen, sind zum Anfangsblock des Programms oder dergleichen hinzugefügt. Auf der Basis der Informationen, die zum Anfangsblock oder dergleichen hinzugefügt sind, stellt die CPU 21 fest, daß das aus der Speichervorrichtung 25 ausgelesene Programm ein verschlüsseltes Programm ist.
  • In Schritt S22 wird der verschlüsselte Teil des gelesenen Programms in die CPU 21 aufgenommen. In Schritt S23 wird der verschlüsselte Teil entschlüsselt.
  • Wenn der verschlüsselte Teil des Programms in die CPU 21 aufgenommen wird, wird der verschlüsselte Teil gemäß dem im ROM 22 gespeicherten Entschlüsselungsprogramm entschlüsselt. Das entschlüsselte Programm wird in Schritt S24 in einen vorbestimmten Speicherbereich des Cache-Speichers 23 geschrieben. Dieses Datenschreiben wird durch einen erweiterten Schreibbefehl der CPU 21 durchgeführt und ein Cache-Sperrkennzeichen wird im Flip-Flop 27 ebenso wie das Datenschreiben gesetzt, so daß verhindert wird, daß das entschlüsselte Programm zum externen Bus ausgelesen wird.
  • Da der Inhalt des ROM 22, wie vorstehend beschrieben, nicht zum externen Bus ausgelesen werden kann, ist es unwahrscheinlich, daß der Algorithmus des Entschlüsselungsprogramms durch einen Dritten analysiert wird.
  • Der entschlüsselte Teil des verschlüsselten Programms, der in den Cache- Sperrbereich des Cache-Speichers 23 geschrieben ist, wird mit einem nicht- verschlüsselten Teil des verschlüsselten Programms, das in die Speichervorrichtung 25 geladen ist, kombiniert. Das kombinierte Programm wird durch die CPU 21 ausgeführt (Schritt S25). Von dem verschlüsselten Programm, das in die Speichervorrichtung 15 geladen ist, wird der verschlüsselte Teil entschlüsselt und im Cache-Speicher 23 als residente Datei gespeichert, wohingegen der nicht- verschlüsselte Teil durch eine normale Cache-Funktion unter Verwendung des restlichen Teils des Cache-Speichers 23 ausgeführt wird.
  • Wenn das verschlüsselte Programm nicht ausgeführt werden muß, wird das im Flip-Flop 27 gesetzte Cache-Funktion-Sperrkennzeichen zurückgesetzt und das im Cache-Speicher 23 gespeicherte entschlüsselte Programm wird gelöscht.
  • Gemäß einem Computer, der mit der Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß dem zweiten Ausführungsbeispiel belegt ist, wird der verschlüsselte Teil des verschlüsselten Programms, das in die Speichervorrichtung 25 geladen wird, in den Ein-Chip-Mikrocomputer 20 aufgenommen und wird auf der Basis des Entschlüsselungsprogramms, das im voraus im ROM 22 gespeichert wird, welches nicht zum externen Bus ausgelesen werden kann, entschlüsselt. Das entschlüsselte Programm wird unter dem erweiterten Schreibbefehl in den Cache-Speicher 23 geschrieben und ein Kennzeichen zum Sperren der Cache-Funktion des Speicherbereichs des Cache-Speichers 23 wird im Flip- Flop 27 gesetzt. Das im Cache-Speicher 23 gespeicherte entschlüsselte Programm und das in der Speichervorrichtung 25 gespeicherte nicht-verschlüsselte Programm werden kombiniert und durch die CPU 21 ausgeführt. Daher können die herkömmlichen Nachteile, bei denen das Entschlüsselungsprogramm selbst kopiert wird und das verschlüsselte Programm entschlüsselt wird oder das entschlüsselte Programm kopiert und verwendet wird, durch eine einfache Modifikation an der Konfiguration des Computers beseitigt werden.
  • Das vorliegende Ausführungsbeispiel verwendet den Flip-Flop 27 zum Speichern des Cache-Sperrkennzeichens anstelle des Steuerregisters 14 des ersten Ausführungsbeispiels. Auf das Steuerregister 14 kann von außen zugegriffen werden und das Cache-Sperrkennzeichen kann zurückgesetzt werden. Auf den Flip-Flop 27 kann jedoch nicht von außen zugegriffen werden.
  • Wie vorstehend beschrieben, weist der Stand der Technik einen Nachteil auf, indem die tote Kopie nicht vom Originalprogramm unterschieden werden kann. Nachstehend wird ein drittes Ausführungsbeispiel beschrieben, das eine illegale Ausführung einer illegalen Kopie des Programms unter Verwendung von speziellen Daten der Vorrichtung, die das Programm ausführt, prüft.
  • Fig. 5 ist ein Blockdiagramm der gesamten Konfiguration eines Computers, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung belegt ist. Der Computer umfaßt einen Ein-Chip-Mikrocomputer 30 und eine externe Speichervorrichtung 35. Der Ein-Chip-Mikrocomputer 30 umfaßt eine CPU 31 zum Steuern der gesamten Vorrichtung. Die CPU 31 steuert die Operationen der jeweiligen Schaltungen in dem Computer gemäß den Programmen, die im voraus in einem internen ROM 32 gespeichert werden. Der Ein-Chip-Mikrocomputer 30 umfaßt auch einen Cache-Speicher 33, einen nicht-flüchtigen Speicher 34 zum Speichern von speziellen Daten der Vorrichtung, wie z. B. einer Seriennummer des Computers, und einen Flip-Flop 37 zum Speichern von Steuerdaten zum Steuern einer Cache-Funktion des Cache-Speichers 33. Der ROM 32, der Cache-Speicher 33 und der nicht-flüchtige Speicher 34 sind mit der CPU 31 über einen Systembus 36 verbunden, der aus einem Datenbus, einem Adressenbus und einem Steuerbus besteht.
  • Der Cache-Speicher 33 ist so aufgebaut, daß eine Cache-Funktion (Löschen und Schreiben von Daten) für einen vorbestimmten Speicherbereich gesperrt wird, wenn die Daten durch die CPU 31 mit einem erweiterten Schreibbefehl in den Speicherbereich geschrieben werden. Der Flip-Flop 37 ist entsprechend dem vorbestimmten Speicherbereich des Cache-Speichers 33 vorgesehen, in den die Daten unter dem erweiterten Schreibbefehl geschrieben werden. Wenn die CPU 31 unter dem erweiterten Schreibbefehl Daten in den Cache-Speicher 33 schreibt, wird folglich das Kennzeichen im Flip-Flop 37 gesetzt, so daß die Cache-Funktion des Cache-Speichers 33 gesperrt wird. Wenn die Cache-Funktion gesperrt ist, können die Daten im Cache-Speicher 33 residente Daten sein.
  • Der Systembus 36 des Ein-Chip-Mikrocomputers 30 ist mit der Speichervorrichtung 35 über einen E/A-Puffer 38 verbunden. Ein Teil des Busses zwischen dem E/A-Puffer 37 und der Speichervorrichtung 35 wird externer Bus genannt. Die Speichervorrichtung 35 speichert ein Softwareprogramm, das von einer Softwarefirma erworben wird (von welchem zumindest ein Teil verschlüsselt ist), ein Paßwort, das von der Softwarefirma zum Zeitpunkt des Erwerbs festgelegt wird, und ein verschlüsseltes Vergleichsprogramm. Die Speichervorrichtung 35 ist nicht auf eine Halbleiterspeichervorrichtung begrenzt, sondern kann eine Speicherkarte, ein Festplattenlaufwerk und ein Diskettenlaufwerk sein. Es ist möglich, Programme von einem Netzwerk in die Speichervorrichtung 35 herunterzuladen.
  • Wenn ein in der Speichervorrichtung 35 gespeichertes Programm gelesen wird, führt die CPU 31 eine Steueroperation gemäß dem Programm aus. Ein Entschlüsselungsprogramm wird vorher in den ROM 32 geschrieben. Wenn das verschlüsselte Programm gelesen wird, wird das Programm ausgeführt, nachdem ein verschlüsselter Teil desselben entschlüsselt wurde. Das entschlüsselte Programm wird im Cache-Speicher 33 als residente Datei gespeichert. Wenn das aus der Speichervorrichtung 35 gelesene Programm ein nicht-verschlüsseltes Programm ist, führt die CPU 31 das Programm unter Verwendung einer Cache-Funktion für alle Bereiche des Cache-Speichers 33 aus. Da der E/A-Puffer 38 zwischen den Systembus 36 und den externen Bus (Speichervorrichtung 35) geschaltet ist, kann der Inhalt des ROM 32, einschließlich des Entschlüsselungsprogramms, nicht aus dem Ein-Chip-Mikrocomputer 30 ausgelesen werden.
  • Eine Operation zum Prüfen einer Ausführung einer illegalen Kopie der Software im Computer, der eine Vorrichtung zum Ausführen eines verschlüsselten Programms mit der obigen Konfiguration gemäß dem dritten Ausführungsbeispiel lädt, wird nun mit Bezug auf einen in Fig. 6 gezeigten Ablaufplan beschrieben.
  • Wie in Schritt S31 gezeigt, informiert der Benutzer die Softwarefirma oder das Softwaregeschäft zum Zeitpunkt des Erwerbs der Software über die Seriennummer des Computers als spezielle Daten.
  • In Schritt S32 legt die Softwarefirma oder das Softwaregeschäft ein Paßwort auf der Basis der Seriennummer unter Verwendung eines vorbestimmten Programms fest und informiert den Benutzer über das Paßwort. Tatsächlich wird das Paßwort in das Softwareprogramm geschrieben, das vom Benutzer erworben wird. Das erworbene Programm enthält auch ein Vergleichsprogramm (eine Funktion desselben wird später beschrieben) mit dem vorstehend erwähnten vorbestimmten Programm in einer verschlüsselten Form.
  • Wenn die Software verwendet wird, wie in Schritt S33 gezeigt, wird die Software in der Speichervorrichtung 35 installiert und startet.
  • Unmittelbar nach dem Start des Programms wird in Schritt S34 das verschlüsselte Vergleichsprogramm im Softwareprogramm in den Ein-Chip-Mikrocomputer 30 aufgenommen und mittels des im ROM 32 gespeicherten Entschlüsselungsprogramms entschlüsselt. Das entschlüsselte Vergleichsprogramm wird im Cache- Speicher 33 als residente Datei gespeichert.
  • Wenn das Vergleichsprogramm startet, wird eine Meldung zum Auffordern des Benutzers, ein Paßwort einzugeben, in Schritt S35 angezeigt.
  • Wenn das Paßwort eingegeben wird, werden die speziellen Daten im Speicher 34 gemäß dem vorbestimmten Programm in Schritt S36 berechnet, um ein Paßwort zu erhalten. Das berechnete Paßwort wird mit dem eingegebenen Paßwort verglichen. Da das Paßwort auf der Basis der speziellen Daten berechnet wird, ist es möglich, das eingegebene Paßwort, d. h., daß der Benutzer, der die Software ausführt, ein Käufer der Software ist, durch Bezugnahme auf die speziellen Daten zu überprüfen. Das Paßwort wird nicht unbedingt vom Benutzer eingegeben, sondern kann automatisch aus dem Speicher 35 ausgelesen werden.
  • Wenn die Überprüfung bestätigt wird, wird die Software in Schritt S37 normal ausgeführt. Wenn die Überprüfung nicht bestätigt wird, wird die Ausführung der Software in Schritt S38 verboten.
  • Gemäß dem dritten Ausführungsbeispiel sind die Seriennummer als spezielle Daten des Computers und das Paßwort, das aus der Seriennummer erhalten wird, zum Ausführen einer Software erforderlich. Es wird verboten, daß die Software durch eine andere Hardware als jene, die zum Zeitpunkt des Erwerbs der Software registriert wird, ausgeführt wird. Die illegale Kopie der Software kann in einer einfachen Hardware verhindert werden. Da das Vergleichsprogramm mit dem vorbestimmten Programm, das das Paßwort berechnet, entschlüsselt wird, wird das Paßwort niemals berechnet, selbst wenn die Seriennummer bekannt ist.
  • Die speziellen Daten sind nicht auf die Seriennummer begrenzt. Im Fall eines elektronischen Notebooks wird der Name des Besitzers registriert. Daher kann der Besitzername die speziellen Daten sein.
  • Die obige Beschreibung wird für einen Fall durchgeführt, in dem ein Benutzer ein Softwarepaket im Geschäft kauft. Es ist möglich, das Softwareprogramm von einem Datenübertragungsnetzwerk herunterzuladen. Beispielsweise wird eine gewünschte Software auf einer Homepage der Softwarefirma im Internet angeführt. Der Benutzer des Netzwerks gibt eine Bestellung für die Software auf. Zur Bestellliste wird der Besitzername der Hardware oder der Karte hinzugefügt. Ein Paßwort wird gemäß dem Besitzernamen berechnet. Wenn die Bestellung vollendet ist, wird die Software in die Speichervorrichtung 35 heruntergeladen. Zum Zeitpunkt des Herunterladens der Software wird ein Paßwort verschlüsselt und das verschlüsselte Paßwort wird an die Software angehängt. Wenn das heruntergeladene Programm in einer Hardware installiert werden soll, beginnt das Vergleichsprogramm, den Besitzernamen der Hardware zu prüfen. Wenn das heruntergeladene Programm in einer anderen Hardware installiert werden soll, gibt das Vergleichsprogramm folglich ein NG-Ergebnis aus, so daß die illegale Installation verhindert wird. Aufgrund dieses Systems ist sich der Benutzer nicht über das Vergleichsprogramm bewußt.
  • Nachstehend wird ein viertes Ausführungsbeispiel als Gegenmaßnahme gegen eine illegale tote Kopie des Programms beschrieben.
  • Fig. 7 ist ein Blockdiagramm der gesamten Konfiguration eines Computers, der mit einer Vorrichtung zum Ausführen eines verschlüsselten Programms gemäß dem vierten Ausführungsbeispiel der vorliegenden Erfindung belegt ist. Der Ein- Chip-Mikrocomputer 40 umfaßt eine CPU 41 zum Steuern der gesamten Vorrichtung. Die CPU 41 steuert die Operationen der jeweiligen Schaltungen in dem Computer gemäß den Programmen, die im voraus in einem internen ROM 42 gespeichert werden. Der Ein-Chip-Mikrocomputer 40 umfaßt auch einen Cache- Speicher 43, eine Anzeige-Steuereinheit 44 und einen Flip-Flop 47 zum Speichern von Steuerdaten zum Steuern einer Cache-Funktion des Cache-Speichers 43. Der ROM 42, der Cache-Speicher 43 und die Anzeige-Steuereinheit 44 sind mit der CPU 41 über einen Systembus 46 verbunden, der aus einem Datenbus, einem Adressenbus und einem Steuerbus besteht.
  • Der Cache-Speicher 43 ist so aufgebaut, daß eine Cache-Funktion (Löschen und Schreiben von Daten) für einen vorbestimmten Speicherbereich gesperrt wird, wenn die Daten durch die CPU 41 mit einem erweiterten Schreibbefehl in den Speicherbereich geschrieben werden. Der Flip-Flop 47 ist entsprechend dem vorbestimmten Speicherbereich des Cache-Speichers 43 vorgesehen, in den die Daten unter dem erweiterten Schreibbefehl geschrieben werden. Wenn die CPU 41 unter dem erweiterten Schreibbefehl Daten in den Cache-Speicher 43 schreibt, wird folglich das Kennzeichen im Flip-Flop 47 gesetzt, so daß die Cache-Funktion des Cache-Speichers 43 gesperrt wird. Wenn die Cache-Funktion gesperrt ist, können die Daten im Cache-Speicher 43 residente Daten sein.
  • Der Systembus 46 des Ein-Chip-Mikrocomputers 40 ist über einen E/A-Puffer 48 mit einem externen ROM 45 verbunden. Ein Teil des Busses zwischen dem E/A- Puffer 48 und dem externen ROM 45 wird externer Bus genannt. Der externe ROM 45 speichert ein Softwareprogramm, das von einer Softwarefirma erworben wird (von welchem zumindest ein Teil verschlüsselt ist) und ein Urheberrechtsanspruchsprogramm, das ebenfalls verschlüsselt ist. Der externe ROM 45 ist nicht auf eine Halbleiterspeichervorrichtung begrenzt, sondern kann eine Speicherkarte sein. Es ist möglich, Programme von einem Netzwerk in den externen ROM 45 herunterzuladen.
  • Wenn ein im externen ROM 45 gespeichertes Programm gelesen wird, führt die CPU 41 eine Steueroperation gemäß dem Programm aus. Ein Entschlüsselungsprogramm wird vorher in den ROM 42 geschrieben. Wenn das verschlüsselte Programm (das Urheberrechtsanspruchsprogramm und zumindest ein Teil des Softwareprogramms) gelesen wird, wird das Programm ausgeführt, nachdem ein verschlüsselter Teil desselben entschlüsselt wurde. Das entschlüsselte Programm wird im Cache-Speicher 43 als residente Datei gespeichert. Wenn das aus dem externen ROM 45 gelesene Programm ein nicht-verschlüsseltes Programm ist, führt die CPU 41 das Programm unter Verwendung einer Cache-Funktion für alle Bereiche des Cache-Speichers 43 aus. Da der E/A-Puffer 48 zwischen den Systembus 46 und den externen Bus (externen ROM 45) geschaltet ist, kann der Inhalt des ROM 42, einschließlich des Entschlüsselungsprogramms, nicht aus dem Ein-Chip-Mikrocomputer 40 ausgelesen werden.
  • Eine Softwareausführungsprozedur des Computers, der eine Vorrichtung zum Ausführen eines verschlüsselten Programms mit der obigen Konfiguration gemäß dem vierten Ausführungsbeispiel lädt, wird nun mit Bezug auf einen Ablaufplan, der in Fig. 8 gezeigt ist, beschrieben.
  • Wenn die Software in Schritt S41 startet, wird das verschlüsselte Urheberrechtsanspruchsprogramm in den Ein-Chip-Mikrocomputer 40 aufgenommen und durch das im ROM 42 gespeicherte Entschlüsselungsprogramm entschlüsselt, wie in Schritt S42 gezeigt. Das entschlüsselte Urheberrechtsanspruchsprogramm wird im Cache-Speicher 43 als residente Datei gespeichert.
  • Wenn das Urheberrechtsanspruchsprogramm startet, wird in Schritt S43 eine Urheberrechtsanspruchsmeldung, beispielsweise "Super Software Ver. 2.0, Urheberrecht CASIO Co., Ltd." auf der Anzeige 47 angezeigt.
  • Dann wird die Software in Schritt S44 normal ausgeführt.
  • Gemäß dem vierten Ausführungsbeispiel kann der Benutzer vor der Ausführung der Software das Urheberrecht der Software kennen und erkennen, daß die illegale Kopie der Software das Urheberrecht verletzt.
  • Es ist aus dem folgenden Grund nicht möglich, die Software ausschließlich des Urheberrechtanspruchsprogramms zu kopieren, um die Urheberrechtsanspruchsmeldung abzuschalten. Da nicht nur das Urheberrechtsanspruchsprogramm, sondern auch ein Teil des Programms, der für die Ausführung der Software erforderlich ist, verschlüsselt ist, ist es nicht möglich, den verschlüsselten Teil zu löschen. Ferner kann der verschlüsselte Teil ähnlich den obigen Ausführungsbeispielen nicht entschlüsselt werden. Daher ist es nicht möglich, die Urheberrechtsanspruchsmeldung abzuschalten.
  • Industrielle Anwendbarkeit
  • Gemäß der Vorrichtung zum Ausführen eines verschlüsselten Programms der vorliegenden Erfindung wird das durch das Entschlüsselungsprogramm entschlüsselte Programm in einem Speicher gespeichert. Es wird verhindert, daß das entschlüsselte Programm ausgelesen und dann kopiert wird. Die spezielle Information der Vorrichtung und eine Identifikationsinformation, die von der speziellen Information abgeleitet wird und einem legalen Benutzer des verschlüsselten Programms übergeben wird, werden überprüft, so daß die Ausführung des verschlüsselten Programms zugelassen/verboten wird und eine illegale Verwendung des verschlüsselten Programms verhindert wird.
  • Die beschriebenen Ausführungsbeispiele können miteinander kombiniert werden.

Claims (4)

1. Ausführungsvorrichtung für ein verschlüsseltes Programm zum Ausführen eines verschlüsselten Programms, von welchem zumindest ein Teil verschlüsselt ist, wobei die Vorrichtung folgendes umfaßt:
eine erste Speichereinrichtung (12) zum Speichern eines Entschlüsselungsprogramms; und
eine Entschlüsselungseinrichtung (11) zum Entschlüsseln des verschlüsselten Programms unter Verwendung des in der ersten Speichereinrichtung (12) gespeicherten Entschlüsselungsprogramms, wobei die Entschlüsselungseinrichtung eine CPU (11), die in einer LSI (Großintegration) (10) ausgebildet ist, zum Ausführen des in der ersten Speichereinrichtung (12) gespeicherten Entschlüsselungsprogramms umfaßt, dadurch gekennzeichnet, daß sie ferner folgendes umfaßt:
eine zweite Speichereinrichtung (13) mit einem Cache-Speicher (13), der in der LSI (10) ausgebildet ist, zum Speichern eines von der Entschlüsselungseinrichtung (11) entschlüsselten Programms; und
eine Sperreinrichtung (11, 14) zum Verbieten, daß das in der zweiten Speichereinrichtung (13) gespeicherte entschlüsselte Programm ausgelesen wird, wobei die Sperreinrichtung eine Sperrkennzeichen-Speichereinrichtung (14; 27) umfaßt, die in der LSI (10) ausgebildet ist, in welcher ein Sperrkennzeichen gesetzt wird, wenn das Entschlüsselungsprogramm ausgeführt wird, und eine Cache-Funktion des Cache-Speichers gesperrt wird, wenn das Sperrkennzeichen in der Sperrkennzeichen-Speichereinrichtung (14; 27) gesetzt ist.
2. Vorrichtung zum Ausführen eines verschlüsselten Programms nach Anspruch 1, dadurch gekennzeichnet, daß die Sperrkennzeichen- Speichereinrichtung ein Steuerregister (14) oder einen Flip-Flop (27) umfaßt.
3. Vorrichtung zum Ausführen eines verschlüsselten Programms nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß sie ferner folgendes umfaßt:
eine dritte Speichereinrichtung (34) zum Speichern einer speziellen Information der Vorrichtung;
eine Ladeinrichtung (31) zum Laden eines Programms mit einem Paßwort- Berechnungsprogramm, von welchem zumindest ein Teil verschlüsselt ist; und
eine Eingabeeinrichtung (31) zum Eingeben eines Benutzerpaßworts, wobei die Entschlüsselungseinrichtung (31) das verschlüsselte Paßwort- Berechnungsprogramm unter Verwendung des in der ersten Speichereinrichtung (32) gespeicherten Entschlüsselungsprogramms entschlüsselt, und die zweite Speichereinrichtung (33) ein von der Entschlüsselungseinrichtung (31) entschlüsseltes Paßwort-Berechnungsprogramm speichert;
eine Einrichtung (31) zum Berechnen eines Paßworts auf der Basis der in der dritten Speichereinrichtung (34) gespeicherten speziellen Information unter Verwendung des in der zweiten Speichereinrichtung (33) gespeicherten entschlüsselten Paßwort-Berechnungsprogramms; und
eine Einrichtung (31) zum Vergleichen des Benutzerpaßworts mit dem berechneten Paßwort, um zu verbieten, daß eine illegale Kopie des Programms ausgeführt wird.
4. Vorrichtung zum Ausführen eines verschlüsselten Programms nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß sie ferner folgendes umfaßt:
eine Ladeeinrichtung (41) zum Laden eines Programms mit einem Urheberrechtsanspruchprogramm zum Anzeigen einer Urheberrechtsanspruchsmeldung und einem Verarbeitungsprogramm, von welchem zumindest ein Teil verschlüsselt ist, wobei die Entschlüsselungseinrichtung (41) das verschlüsselte Urheberrechtsanspruchsprogramm unter Verwendung des in der ersten Speichereinrichtung (42) gespeicherten Entschlüsselungsprogramms entschlüsselt, und die zweite Speichereinrichtung (43) ein von der Entschlüsselungseinrichtung (41) entschlüsseltes Urheberrechtsanspruchsprogramm speichert; und
eine Einrichtung (44, 47) zum Anzeigen der Urheberrechtsanspruchsmeldung auf der Basis des in der zweiten Speichereinrichtung (43) gespeicherten entschlüsselten Urheberrechtsanspruchsprogramms.
DE69619186T 1995-04-27 1996-04-18 Gerät für die ausführung eines verschlüsselten progamms Expired - Lifetime DE69619186T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP7104048A JPH08305558A (ja) 1995-04-27 1995-04-27 暗号化プログラム演算装置
PCT/JP1996/001051 WO1996034334A1 (fr) 1995-04-27 1996-04-18 Dispositif pour l'execution d'un programme chiffre

Publications (2)

Publication Number Publication Date
DE69619186D1 DE69619186D1 (de) 2002-03-21
DE69619186T2 true DE69619186T2 (de) 2002-11-14

Family

ID=14370339

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69619186T Expired - Lifetime DE69619186T2 (de) 1995-04-27 1996-04-18 Gerät für die ausführung eines verschlüsselten progamms

Country Status (11)

Country Link
US (1) US5982887A (de)
EP (1) EP0768601B1 (de)
JP (1) JPH08305558A (de)
CN (1) CN1148645C (de)
AU (1) AU690840B2 (de)
CA (1) CA2193114C (de)
DE (1) DE69619186T2 (de)
MX (1) MX9606515A (de)
NZ (1) NZ305469A (de)
TW (1) TW302459B (de)
WO (1) WO1996034334A1 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185306B1 (en) 1995-12-07 2001-02-06 Hyperlock Technologies, Inc. Method of secure server control of local media via a trigger through a network for local access of encrypted data on an internet webpage
US7770230B2 (en) * 2002-04-22 2010-08-03 Arvato Digital Services Canada, Inc. System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
CA2271012A1 (en) * 1996-11-25 1998-06-04 Hyperlock Technologies, Inc. Method for securely triggering the playing of crippled local media through the web
JP3877388B2 (ja) * 1997-09-16 2007-02-07 三菱電機株式会社 情報提供システム
US6223288B1 (en) * 1998-05-22 2001-04-24 Protexis Inc. System for persistently encrypting critical software file to prevent installation of software program on unauthorized computers
US6775778B1 (en) * 1998-05-29 2004-08-10 Texas Instruments Incorporated Secure computing device having boot read only memory verification of program code
DE19824814C2 (de) * 1998-06-03 2000-06-21 Siemens Ag Einrichtung zur Ermittlung von freizugebenden Funktionen in einer Telekommunikationsanlage
US6681212B1 (en) 1999-04-23 2004-01-20 Nianning Zeng Internet-based automated system and a method for software copyright protection and sales
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
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
US6449720B1 (en) * 1999-05-17 2002-09-10 Wave Systems Corp. Public cryptographic control unit and system therefor
JP2001043139A (ja) * 1999-07-29 2001-02-16 Pioneer Electronic Corp 信号処理装置及びそれに用いる情報記録媒体
EP1237323A4 (de) * 1999-12-07 2005-09-07 Sanyo Electric Co Datenwiedergabegerät
US20010034838A1 (en) * 2000-01-14 2001-10-25 Motoshi Ito Control program, device including the control program, method for creating the control program, and method for operating the control program
US7270193B2 (en) 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
EP1168185A3 (de) * 2000-05-08 2004-01-02 Nokia Corporation Verfahren zum Schutz einer Speicherkarte und eine Speichekarte
US6895506B1 (en) 2000-05-16 2005-05-17 Loay Abu-Husein Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
EP1366404B1 (de) 2000-07-18 2007-03-14 Simplex Major SDN.BHD Vorrichtung zum schutz digitaler daten
JP2002169620A (ja) * 2000-12-01 2002-06-14 Konami Co Ltd ゲーム装置の管理システム、ゲーム装置、制御方法、ソフトウェア記録媒体
JP3970040B2 (ja) * 2001-01-31 2007-09-05 株式会社ソニー・コンピュータエンタテインメント コンピュータシステム及びその使用方法
GB0103119D0 (en) * 2001-02-08 2001-03-28 Comodo Technology Dev Ltd Improvements in and relating to software modification
US7039814B2 (en) * 2001-03-07 2006-05-02 Sony Corporation Method for securing software via late stage processor instruction decryption
US20050097342A1 (en) * 2001-05-21 2005-05-05 Cyberscan Technology, Inc. Trusted watchdog method and apparatus for securing program execution
US7979740B2 (en) * 2001-05-21 2011-07-12 Mudalla Technology, Inc. Gaming machine having game play suspension and resumption features using biometrically-based authentication and method of operating same
US7051332B2 (en) * 2001-05-21 2006-05-23 Cyberscan Technology, Inc. Controller having a restart engine configured to initiate a controller restart cycle upon receipt of a timeout signal from a watchdog timer
US6996725B2 (en) 2001-08-16 2006-02-07 Dallas Semiconductor Corporation Encryption-based security protection for processors
EP1471405A4 (de) * 2001-11-12 2010-01-13 Gerite Associates Ltd Verfahren und einrichtung zum schutz von informationen vor unautorisierter benutzung
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
JP3548829B2 (ja) * 2002-01-10 2004-07-28 オムロン株式会社 ユニット及びplc並びにユーザプログラムの処理方法
FR2838894A1 (fr) * 2002-04-19 2003-10-24 St Microelectronics Sa Chiffrement du contenu d'une memoire externe a un processeur
JP2004054834A (ja) * 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
JP4349788B2 (ja) * 2002-10-31 2009-10-21 パナソニック株式会社 半導体集積回路装置
JP3946624B2 (ja) * 2002-11-29 2007-07-18 株式会社東芝 Av通信制御集積回路及びav通信制御プログラム
CN100440140C (zh) * 2003-02-11 2008-12-03 Vi实验室有限公司 用于调节计算机软件的执行的系统和方法
JP4252828B2 (ja) * 2003-03-19 2009-04-08 株式会社日立製作所 キャッシュ制御方法、ノード装置、プログラム
JP4335707B2 (ja) * 2004-02-06 2009-09-30 Necエレクトロニクス株式会社 プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法
CN1279458C (zh) * 2004-08-03 2006-10-11 威盛电子股份有限公司 数据加密/解密方法及其装置
JP2006190119A (ja) * 2005-01-07 2006-07-20 Hitachi Industrial Equipment Systems Co Ltd プログラマブルコントローラ
JP4669934B2 (ja) * 2005-06-10 2011-04-13 国立大学法人 奈良先端科学技術大学院大学 プログラム変換装置、実行支援装置、それらの方法およびそれらのコンピュータ・プログラム
US8782433B2 (en) * 2008-09-10 2014-07-15 Inside Secure Data security
DE102009019981A1 (de) * 2009-05-05 2010-11-11 Giesecke & Devrient Gmbh Verfahren zum Schutz von auf einem tragbaren Datenträger gespeicherter Software und tragbarer Datenträger
JP4865839B2 (ja) * 2009-06-02 2012-02-01 パナソニック株式会社 半導体集積回路装置
US8756434B2 (en) * 2011-04-08 2014-06-17 Apple Inc. System and method for executing an encrypted binary from a memory pool
EP2717186A4 (de) * 2011-05-25 2015-05-13 Panasonic Ip Man Co Ltd Informationsverarbeitungsvorrichtung und informationsverarbeitungsverfahren
US20120303533A1 (en) 2011-05-26 2012-11-29 Michael Collins Pinkus System and method for securing, distributing and enforcing for-hire vehicle operating parameters
US20130253999A1 (en) 2012-03-22 2013-09-26 Frias Transportation Infrastructure Llc Transaction and communication system and method for vendors and promoters
US10534725B2 (en) * 2017-07-25 2020-01-14 International Business Machines Corporation Computer system software/firmware and a processor unit with a security module
DE102023102691A1 (de) * 2023-02-03 2024-08-08 btv technologies gmbh Verfahren zum Beschreiben von Daten auf einen IC sowie System zur Ausführung des Verfahrens

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4433207A (en) * 1981-09-10 1984-02-21 Best Robert M Cryptographic decoder for computer programs
US4442486A (en) * 1981-11-25 1984-04-10 U.S. Philips Corporation Protected programmable apparatus
JPS59212954A (ja) * 1983-05-18 1984-12-01 Toshimi Onodera 電子回路におけるプログラム盗難防止装置
JPS59229646A (ja) * 1983-06-10 1984-12-24 Fanuc Ltd 暗号化されたプログラムの無断使用禁止装置
DE3483410D1 (de) * 1983-10-14 1990-11-22 Toshiba Kawasaki Kk Einchip mikrocomputer mit verschluesselbarer funktion des programmspeichers.
US4633388A (en) * 1984-01-18 1986-12-30 Siemens Corporate Research & Support, Inc. On-chip microprocessor instruction decoder having hardware for selectively bypassing on-chip circuitry used to decipher encrypted instruction codes
JPH03148734A (ja) * 1989-11-06 1991-06-25 Toshiba Corp キャッシュメモリ制御装置
JPH04149652A (ja) * 1990-10-09 1992-05-22 Mitsubishi Electric Corp マイクロコンピュータ
JPH04268924A (ja) * 1991-02-25 1992-09-24 Hitachi Ltd 逆アセンブル保護方法
JPH04287124A (ja) * 1991-03-15 1992-10-12 Daikin Ind Ltd 計算機システムにおけるソフトウェア無断使用禁止方法およびその装置
JP2942837B2 (ja) * 1992-01-31 1999-08-30 株式会社セガ・エンタープライゼス セキュリティチェック方法及びゲーム装置並びにそれらに用いられる情報記憶媒体
JP2576385B2 (ja) * 1993-10-28 1997-01-29 日本電気株式会社 データ保護装置

Also Published As

Publication number Publication date
AU5346496A (en) 1996-11-18
EP0768601B1 (de) 2002-02-13
CN1152363A (zh) 1997-06-18
JPH08305558A (ja) 1996-11-22
DE69619186D1 (de) 2002-03-21
AU690840B2 (en) 1998-04-30
EP0768601A1 (de) 1997-04-16
CA2193114C (en) 2000-06-13
MX9606515A (es) 1997-05-31
TW302459B (de) 1997-04-11
EP0768601A4 (de) 1999-05-12
WO1996034334A1 (fr) 1996-10-31
US5982887A (en) 1999-11-09
NZ305469A (en) 1998-05-27
CA2193114A1 (en) 1996-10-31
CN1148645C (zh) 2004-05-05

Similar Documents

Publication Publication Date Title
DE69619186T2 (de) Gerät für die ausführung eines verschlüsselten progamms
DE60224060T2 (de) Verwendung von daten gespeichert in einem lese-zerstörenden speicher
DE69729557T2 (de) Verfahren und gerät zum softwarezugriff auf eine mikroprozessorseriennummer
DE69326119T2 (de) Überprüfung von Softwareprogrammen
DE69325072T2 (de) Gesicherte Speicherkarte
DE69531077T2 (de) Verfahren und Vorrichtung mit Benutzereinwirkung der Art Erproben-und-Kaufen, die es ermöglicht, Software zu erproben
DE69327206T2 (de) System zur ununterbrochenen Verarbeitung verschlüsselter und unverschlüsselter Daten und Befehle
DE60001685T2 (de) Halbleiterspeicherkarte und Datenlesevorrichtung
DE69729558T2 (de) Verfahren und vorrichtung zum verschlüsseln und entschlüsseln von mikroprozessorseriennummern
DE69326089T2 (de) Personalcomputersystem mit Sicherheitseigenschaften und -verfahren
DE69724946T2 (de) Programmvermietungssystem und Verfahren zur Vermietung von Programmen
DE69926970T2 (de) Selbstschützende Dokumente
DE69323926T2 (de) Verfahren und Vorrichtung zur Sicherheit eines Computersystem mit Programmberechtigungsdatenstrukturen
DE69531082T2 (de) Verfahren und Vorrichtung mit einem Verschlüsselungskopfteil, die es ermöglicht, Software zu erproben
DE69522998T2 (de) Gesicherte anwendungskarte zur aufteilung von anwendungsdaten und prozeduren zwischen mehreren mikroprozessoren
DE68926606T2 (de) Empfangs- und Annahmeprüfungsverfahren für elektronisch abgegebene Datenobjekte
DE3689569T2 (de) Verfahren zur Systemdateiensicherung und Datenverarbeitungseinheit zu dessen Durchführung.
DE69326858T2 (de) Sichere Dateilöschung
DE69507129T2 (de) Vorurladungsschutz für eine datensicherheitseinrichtung
DE69427571T2 (de) Speicherzugangsschutzschaltung mit kryptographischem Schlüssel
DE60301782T2 (de) Apparate und verfahren zum entschüsseln von verschlüsselten datenblöcken und zum lokalisieren der verschlüsselten datenblöcke im für die ausführung verwendeten speicherbereich
DE19803218A1 (de) Informationsspeichermedium und zugehöriges Schutzverfahren
DE102004008702B4 (de) Inhaltsverschlüsselung unter Verwendung einer programmierbaren Hardware
EP0965076B1 (de) Elektronische datenverarbeitungseinrichtung und -system
DE112007003231B4 (de) Programmierbare Anzeigevorrichtung und Steuersystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: INTELLECTUAL VENTURES HOLDING 56 LLC, CARSON C, US