DE69619186T2 - Gerät für die ausführung eines verschlüsselten progamms - Google Patents
Gerät für die ausführung eines verschlüsselten progammsInfo
- 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
Links
Classifications
-
- 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/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 | 日本電気株式会社 | データ保護装置 |
-
1995
- 1995-04-27 JP JP7104048A patent/JPH08305558A/ja active Pending
-
1996
- 1996-04-18 NZ NZ305469A patent/NZ305469A/en unknown
- 1996-04-18 US US08/765,861 patent/US5982887A/en not_active Expired - Lifetime
- 1996-04-18 DE DE69619186T patent/DE69619186T2/de not_active Expired - Lifetime
- 1996-04-18 EP EP96910189A patent/EP0768601B1/de not_active Expired - Lifetime
- 1996-04-18 MX MX9606515A patent/MX9606515A/es unknown
- 1996-04-18 CN CNB961904186A patent/CN1148645C/zh not_active Expired - Lifetime
- 1996-04-18 AU AU53464/96A patent/AU690840B2/en not_active Ceased
- 1996-04-18 WO PCT/JP1996/001051 patent/WO1996034334A1/ja active IP Right Grant
- 1996-04-18 CA CA002193114A patent/CA2193114C/en not_active Expired - Fee Related
- 1996-04-24 TW TW085104892A patent/TW302459B/zh not_active IP Right Cessation
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 |