DE60302844T2 - Halbleitervorrichtung mit Verschlüsselung, Halbleitervorrichtung mit externer Schnittstelle, und Inhaltswiedergabeverfahren - Google Patents

Halbleitervorrichtung mit Verschlüsselung, Halbleitervorrichtung mit externer Schnittstelle, und Inhaltswiedergabeverfahren Download PDF

Info

Publication number
DE60302844T2
DE60302844T2 DE60302844T DE60302844T DE60302844T2 DE 60302844 T2 DE60302844 T2 DE 60302844T2 DE 60302844 T DE60302844 T DE 60302844T DE 60302844 T DE60302844 T DE 60302844T DE 60302844 T2 DE60302844 T2 DE 60302844T2
Authority
DE
Germany
Prior art keywords
program
encryption
semiconductor device
section
mode
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
DE60302844T
Other languages
English (en)
Other versions
DE60302844D1 (de
Inventor
Makoto Kyoto-shi Fujiwara
Yusuke Kobe-shi Nemoto
Junichi Takatsuki-shi Yasui
Takuji Neyagawa-shi Maeda
Takayuki Kadoma-shi Ito
Yasushi Inazawa-shi Yamada
Shinji Neyagawa-shi Inoue
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE60302844D1 publication Critical patent/DE60302844D1/de
Publication of DE60302844T2 publication Critical patent/DE60302844T2/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf eine Technik zum Verbessern einer Sicherheit in einer Halbleitervorrichtung, wie beispielsweise einer LSI-Vorrichtung, verwendet in einem mittels Schlüssel installierten System.
  • Die Japanische Patentanmeldung No. 2001-286881, angemeldet durch den Anmelder der vorliegenden Unterlagen, offenbart eine Technik zum Verbessern der Sicherheit und der Vertraulichkeit eines Schlüssels in einem mittels Schlüssel installierten System, verglichen mit herkömmlichen Techniken.
  • Eine Aufgabe der vorliegenden Erfindung ist es, eine Hochsicherheits-Halbleitervorrichtung zu schaffen. Eine andere Aufgabe der vorliegenden Erfindung ist es, ein Hochsicherheits-Inhalt-Wiedergabeverfahren zu schaffen.
  • Diese Aufgabe wird durch die Ansprüche 1, 9 und 17 gelöst.
  • Das Dokument D1 befasst sich mit dem Schützen einer Eigentums-Software gegen eine Veröffentlichung und eine nicht autorisierte Benutzung. Sie erreicht dieses Ziel durch zuerst Verteilen der Software, die unter der Steuerung eines Verteilungs-Chiffriereinrichtungsschlüssels verschlüsselt worden ist. Bevor diese Programme verwendet werden können, müssen sie kundenspezifisch dadurch angepasst werden, dass sie unter der Steuerung eines zweiten Chiffriereinrichtungsschlüssels zurückverschlüsselt werden; solche kundenspezifischen Programme werden nicht auf irgendeinem Computersystem, ein anderes als ein solches, das mit einem Prozessor-Chip aufgebaut ist, der einen Krypto-Mikroprozessor einsetzt, laufen. Der Krypto-Mikroprozessor ist in der Lage, diese Zurückverschlüsselung durchzuführen. Der kundenspezifische Vorgang erfordert einen Zugang zu einem entfernten Austausch-Datenbanksystem mittels eines Modems, um diese Aufgabe durchzuführen. Deshalb ist ersichtlich, dass die D1 mit einem Verfahren befasst ist, das sehr unterschiedlich zu demjenigen ist, das in der vorliegenden Erfindung beschrieben ist. Es befasst sich nicht mit der Fähigkeit, den Krypto-Prozess innerhalb des Prozessors durch Unterteilen davon in Sequenzen unter der Steuerung des Werts, enthalten in einem Mode-ID-Register, zu steuern.
  • Das Dokument D2 befasst sich mit einem Programmschlüssel, gehalten innerhalb eines Mikroprozessors, um ein Programm zu entschlüsseln, und einem Datenschlüssel zum Verschlüsseln/Entschlüsseln von Daten, die durch das Programm verarbeitet werden. Beide dieser Schlüssel werden als ein kryptographisch untrennbares Paar innerhalb des Mikroprozessors behandelt, so dass es für den Mikroprozessor möglich wird, die Prozesse, die tatsächlich das Programm ausführen, ohne den Eingriff des Betriebssystems zu schützen, und es wird zusätzlich möglich, geheime Informationen des Programms nicht nur gegenüber anderen Benutzer-Programmen, sondern auch gegenüber dem Betriebssystem, zu verbergen.
  • Die vorliegende Erfindung zieht dieses Konzept weiterhin dahingehend heran, dass es sich auf eine Technik zum Verbessern der Sicherheit innerhalb der Halbleitervorrichtung bezieht, durch Unterteilen der Operationen, durchgeführt durch einen Verschlüsselungsabschnitt, in eine Vielzahl von Sequenzen, wobei jede davon unabhängig oder in Kombination mit einer anderen unter der Steuerung eines Verschlüsselungs-Steuerabschnitts ausgeführt werden kann. D2 beruht auf einem Bit, um zu Steuern, ob kryptographische Funktionen global innerhalb des Systems freigegeben oder gesperrt sind; es ist nicht möglich, die Ausführung einer Sequenz zuzulassen, während nicht die Ausführung einer anderen Sequenz zugelassen wird, so dass eine nicht autorisierte Ausführung bestimmter Sequenzen nicht verhindert werden kann. D2 ist demzufolge weit von den Offenbarungen der vorliegenden Erfindung entfernt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Blockdiagramm, das den Aufbau einer sicheren LSI-Vorrichtung mit einer Halbleitervorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
  • 2 stellt den gesamten Ablauf einer Entwicklung und Herstellung, die die sichere LSI-Vorrichtung der 1 verwenden, dar.
  • 3 zeigt ein Flussdiagramm eines gesamten Verfahrensablaufes eines Boot-Programms.
  • 4 zeigt ein Flussdiagramm einer Anfangswert-Einstellungsverarbeitung SZ1.
  • 5 stellt einen Verschlüsselungsabschnitt und Komponenten, die dazu relevant sind, in der sicheren LSI-Vorrichtung der 1, dar.
  • 6 stellt ein Verfahren zum Einstellen eines gemeinsamen Busses und eines privaten Busses in der sicheren LSI-Vorrichtung der 1 dar.
  • 7 stellt einen externen Host I/F und Komponenten, die dazu relevant sind, in der sicheren LSI-Vorrichtung der 1, dar.
  • 8 stellt einen Betrieb des externen Host I/F in dem Produkt-Operations-Modus dar.
  • 9 stellt eine Zugangssteuerung eines sicheren Speichers dar.
  • 10 stellt den ersten Teil eines Datenflusses eines normalen Boot-Vorgangs in dem Produkt-Operations-Modus dar.
  • 11 stellt den zweiten Teil des Datenflusses des normalen Boot-Prozessors in dem Produkt-Operations-Modus dar.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Nachfolgend wird eine Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die Zeichnungen beschrieben.
  • 1 zeigt ein Blockdiagramm, das einen inneren Aufbau einer sicheren LSI-Vorrichtung gemäß der vorliegenden Ausführungsform darstellt. In 1 kann die sichere LSI-Vorrichtung 1 mit einem externen Speicher 100 (einschließlich eines Flash-Speichers 101 und eines RAM 102) über einen externen Bus 120 verbunden sein. Der Betriebs-Modus der sicheren LSI-Vorrichtung 1 kann durch Zuführen einer Modus-ID zu der sicheren LSI-Vorrichtung 1 eingestellt werden.
  • Die Hauptkomponenten der sicheren LSI-Vorrichtung 1, die für die vorliegende Ausführungsform relevant sind, werden kurz beschrieben.
  • Die sichere LSI-Vorrichtung 1 besitzt einen sicheren Speicher (z.B. einen sicheren Flash) 10, umfassend einen nicht wieder beschreibbaren Bereich 11. Der nicht wieder beschreibbare Bereich 11 umfasst ein Schreib-Zeichen 12 für den nicht wieder beschreibbaren Bereich. Wenn einmal eine Modus-ID in dem sicheren Speicher 10 geschrieben ist, wird der Zeichen-Wert des Schreib-Zeichens 12 für den nicht wieder beschreibbaren Bereich von „WRITABLE" zu „WRITTEN" geändert, und ein Schreiben in dem nicht wieder beschreibbaren Bereich 11 wird danach verboten. Es sollte angemerkt werden, dass der sichere Speicher 10 aus einem Flash-Speicher in der vorliegenden Ausführungsform auf gebaut ist, allerdings ist die vorliegende Erfindung nicht hierauf beschränkt. Irgendein Typ eines Speichers kann verwendet werden, solange wie er nicht flüchtig ist.
  • Ein Verschlüsselungsabschnitt 2 führt eine Verschlüsselung und Entschlüsselung von Programmen durch. Der Verschlüsselungsabschnitt 2 umfasst einen arithmetischen Privatschlüssel-Verarbeitungsabschnitt (arithmetischen Verschlüsselungs-Verarbeitungsabschnitt) 20, eine Schlüssel-Erzeugungs/Aktualisierungs-Abfolgesteuereinrichtung (Verschlüsselungs-Steuerabschnitt) 30 und einen Speicherabschnitt 35 zum Speichern einer Programm-Verschlüsselungs-Grundstruktur (Seed). Der arithmetische Privatschlüssel-Verarbeitungsabschnitt 20 umfasst Register zum Speichern von verschiedenen Schlüsseln, oder dergleichen, und ist dazu in der Lage, eine Vielzahl von Sequenzen auszuführen, umfassend ein Verfahren zum Verschlüsseln oder Entschlüsseln von Programmen. Die Schlüssel-Erzeugungs/Aktualisierungs-Abfolgesteuereinrichtung 30 bestimmt, ob eine Ausführung jeder der Sequenzen, die durch den arithmetischen Privatschlüssel-Verarbeitungsabschnitt 20 ausgeführt werden können, zuzulassen ist, und verhindert den Betrieb des arithmetischen Privatschlüssel-Verarbeitungsabschnitts 20 in Bezug auf eine Sequenz, deren Ausführung dahingehend bestimmt wird, dass sie unzulässig ist. Die Schlüssel-Erzeugungs/Aktualisierungs-Abfolgesteuereinrichtung 30 umfasst ein Modus-ID-Speicher-Register 31. Die Schlüssel-Erzeugungs/Aktualisierungs-Abfolgesteuereinrichtung 30 bestimmt, ob eine Ausführung jeder Sequenz basierend auf dem Wert der Modus-ID, gespeichert in dem Modus-ID-Speicher-Register 31, zuzulassen ist. Weiterhin umfasst die Schlüssel-Erzeugungs/Aktualisierungs-Abfolgesteuereinrichtung 30 ein Verschlüsselungs-Typ-Identifizierer-Speicher-Register 32 zum Speichern eines Verschlüsselungs-Typ-Identifizierers. Der Verschlüsselungs-Typ-Identifizierer zeigt an, welcher Algorithmus und welche Schlüssellänge zum Verschlüsseln eines Schlüssels oder Programms verwendet werden. Details der Struktur und der Betriebsweise des Verschlüsselungsabschnitts 2 werden später beschrieben werden.
  • Eine Modus-Abfolgesteuereinrichtung 40 umfasst auch ein Modus-ID-Speicher-Register 41. Die Modus-Abfolgesteuereinrichtung 40 steuert die Betriebsweise einer externen Host-Schnittstelle (I/F) 50, d.h. welche Schnittstelle zum Lesen eines Programms oder von Daten, gespeichert in dem externen Speicher 100, zu verwenden ist, entsprechend einer Modus-ID, gespeichert in dem Modus-ID-Speicher-Register 41, und des Werts eines Jumpers 43. Mit dieser Anordnung ist es möglich, zu steuern, ob ein grobes (binäres) Programm, gespeichert in dem externen Speicher 100, ausgeführt werden kann oder nicht. Die Modus-Abfolge Steuereinrichtung 40 umfasst weiterhin ein Verschlüsselungs-Typ-Identifizierer-Speicher-Register 42 zum Speichern eines Verschlüsselungs-Typ-Identifizierers. Der Verschlüsselungs-Typ-Identifizierer zeigt an, welches Verfahren für eine Verschlüsselung eines Schlüssels verwendet wird.
  • Die externe I/F 50 sendet/empfängt ein Programm oder Daten zu/von dem externen Speicher 100 über entweder einen Durchgangsabschnitt 52 oder eine Kryptographiemaschine 53 für eine Programm-Entschlüsselung (nachfolgend bezeichnet als eine „Programm-Entschlüsselungs-Kryptographie-Engine" 53), die in einem Programm-Verarbeitungsabschnitt 51 enthalten ist, und einen Durchgangsabschnitt 56 und eine Kryptographie-Engine 58 für eine Daten-Verschlüsselung/Entschlüsselung (nachfolgend bezeichnet als „Daten-Verschlüsselungs/Entschlüsselungs-Kryptographie-Engine" 58), die indem Daten-Verarbeitungsabschnitt 55 enthalten sind, gemäß der Steuerung durch die Modus-Abfolgesteuereinrichtung 40.
  • Ein Programmeingang über den Durchgangsabschnitt 52 wird nicht innerhalb der sicheren LSI-Vorrichtung 1 mit Ausnahme dann ausgeführt, wenn sich die sichere LSI-Vorrichtung 1 in einem Administrator-Modus befindet oder mit der Anwendungs-Programm-Entwicklung befasst ist (beschrieben später). Das bedeutet, dass der Durchgangsabschnitt 52 dann aktiviert wird, wenn ein grobes (binäres) Programm verschlüsselt wird oder wenn ein bereits verschlüsseltes Programm wieder verschlüsselt wird, und zwar unter Verwendung eines anderen Schlüssels. Die sichere LSI-Vorrichtung 1 ist so strukturiert, dass die Betriebsweise der sicheren LSI-Vorrichtung 1 nicht zu einem Programm fortschreitet, das über den Durchgangsabschnitt 52 eingegeben ist, mit der Ausnahme dann, wenn sich die sichere LSI-Vorrichtung 1 in dem Administrator-Modus befindet oder mit einer Anwendungs-Programm-Entwicklung befasst ist (beschrieben später). Deshalb kann, zum Beispiel, gerade dann, wenn die sichere LSI-Vorrichtung 1, aufgebaut als ein kommerzielles Produkt, ein grobes (binäres) Programm über den Durchgangsabschnitt 52 liest, die sichere LSI-Vorrichtung 1 nicht das grobe (binäre) Programm ausführen.
  • Ein Boot-ROM 60 speichert ein Boot-Programm zum Steuern eines Boot-Up-Vorgangs der sicheren LSI-Vorrichtung 1. Ein HASH-Berechnungsabschnitt 70 berechnet einen HASH-Wert zum Verifizieren der Gültigkeit eines Programms, das in die sichere LSI-Vorrichtung 1 eingelesen ist.
  • Weiterhin sind, in dem externen Speicher 100, Programme in dem Flash-Speicher 101 gespeichert, und Daten (Inhalte) sind in dem RAM 102 gespeichert. Das externe Tool 110 speichert verschiedene Anfangswerte, die zu dem sicheren Speicher 10 des ersten Boot-Up der sicheren LSI-Vorrichtung 1 übertragen sind und darin gespeichert sind. Der Typ des Anfangswerts variiert in Abhängigkeit von einem ausgewählten Betriebs-Modus.
  • 2 stellt den gesamten Ablauf einer Entwicklung und Herstellung, die die sichere LSI-Vorrichtung 1 der 1 verwendet, dar. Wie in 2 dargestellt ist, arbeitet die sichere LSI-Vorrichtung 1 in den folgenden vier Betriebs-Modi: Administrator-Modus (Modus-ID: 00), Schlüssel-Erzeugungs-Modus (Modus-ID: 01), Entwicklungs-Modus (Modus-ID: 10) und Produkt-Betriebs-Modus (Modus-ID: 11).
  • Wenn auf den Administrator-Modus eingestellt wird, arbeitet die sichere LSI-Vorrichtung 1 als eine LSI-Vorrichtung für einen Administrator (nachfolgend bezeichnet als „Administrator-LSI-Vorrichtung"). In der Administrator-LSI-Vorrichtung wird ein Schlüssel-Erzeugungs-Programm entwickelt (PA1) und das entwickelte Schlüssel-Erzeugungs-Programm wird unter Verwendung irgendeines Schlüssel-Erzeugungs-Schlüssels verschlüsselt (PA2).
  • Wenn auf den Schlüssel-Erzeugungs-Modus eingestellt wird, arbeitet die sichere LSI-Vorrichtung 1 als eine LSI-Vorrichtung für eine Schlüssel-Erzeugung (nachfolgend bezeichnet als eine „Schlüssel-Erzeugungs-LSI-Vorrichtung"). In der Schlüssel-Erzeugungs-LSI-Vorrichtung wird das Erzeugungs-Programm für den verschlüsselten Schlüssel, erzeugt in der Administrator-LSI-Vorrichtung, installiert (PB1) und das Schlüssel-Erzeugungs-Programm wird ausgeführt, um verschiedene Schlüssel (PB2) zu erzeugen.
  • Wenn auf den Entwicklungs-Modus eingestellt ist, arbeitet die sichere LSI-Vorrichtung 1 als eine LSI-Vorrichtung für eine Entwicklung (nachfolgend bezeichnet als eine „Entwicklungs-LSI-Vorrichtung"). In der Entwicklungs-LSI-Vorrichtung wird ein Anwendungs-Programm, das in einem tatsächlichen Produkt ausgeführt werden soll, entwikkelt (PC1). Das Anwendungs-Programm wird unter Verwendung des gemeinsamen Programm-Schlüssels (PC2) verschlüsselt.
  • Wenn auf den Produkt-Operations-Modus eingestellt wird, arbeitet die sichere LSI-Vorrichtung 1 als eine tatsächliche Produkt-LSI-Vorrichtung. Das Anwendungs-Programm, erzeugt in der Entwicklungs-LSI-Vorrichtung, und verschlüsselt mit dem gemeinsamen Programm-Schlüssel, wird in der Produkt-LSI-Vorrichtung installiert. Innerhalb der Produkt-LSI-Vorrichtung wird das installierte Anwendungs-Programm zu einem Anwendungs-Programm, verschlüsselt mit einem programmeigenen Schlüssel (PD1), umgewandelt. Das Anwendungs-Programm, verschlüsselt mit dem programmeigenen Schlüssel, wird in einem normalen Betrieb des Produkts ausgeführt. Diese Umwandlungsverarbeitung kann auch in der Entwicklungs-LSI-Vorrichtung (PC3) für den Zweck eines Debugging des Anwendungs-Programms ausgeführt werden (PC4).
  • Die sichere LSI-Vorrichtung 1 arbeitet so, wie dies nachfolgend beschrieben ist, durch Ausführen des Boot-Programms, gespeichert in dem Boot-ROM 60.
  • 3 zeigt ein Flussdiagramm, das den gesamten Ablauf des Boot-Programms darstellt. Wenn die sichere LSI-Vorrichtung 1 hochgefahren wird, wird das Boot-Programm, gespeichert in dem Boot-ROM 60, durch eine CPU 65 ausgeführt. Wie 3 zeigt, wird jede Hardware zuerst initialisiert (SZ0). Dann werden die verschiedenen Anfangswerte von dem externen Tool 110 gelesen und in den sicheren Speicher 10 eingestellt (SZ1).
  • 4 zeigt ein Flussdiagramm, das die den Anfangswert einstellende Verarbeitung SZ1 darstellt. Zunächst wird, an einer Sprungeinrichtung 44, bestimmt, ob der sichere Speicher 10 in der LSI-Vorrichtung (SZ11) montiert ist oder nicht. Als nächstes wird bestimmt, ob ein Schreib-Zeichen 12 für den unbeschreibbaren Bereich „WRITTEN" (SZ12) anzeigt oder nicht. Wenn es „WRITTEN" (Ja an SZ12) anzeigt, wird die Verarbeitung SZ1 beendet, da ein Anfangswert bereits in dem sicheren Speicher 10 eingestellt ist. Wenn das Schreib-Zeichen 12 für den unbeschreibbaren Bereich „WRITABLE" (Nein an SZ12) anzeigt, werden Anfangswerte in den sicheren Speicher 10 hineingeschrieben. Zusätzlich zu der Modus-ID werden ein eigener Schlüssel für das verschlüsselte Programm, Adressen-Verwaltungs-Informationen und ein dateneigener Schlüssel in den unbeschreibbaren Bereich 11 des sicheren Speichers 10 hineingeschrieben (SZ13, SZ16 bis SZ18). Falls die erste Bestimmung anzeigt, dass der sichere Speicher 10 außerhalb der LSI-Vorrichtung (Nein an SZ14) existiert, wird die Modus-ID mit einem Wert überschrieben, der den Produkt-Operations-Modus anzeigt (SZ15). Als eine Folge arbeitet ein Produkt, das einen si cheren Speicher 10 außerhalb seiner LSI-Packung besitzt, nur dann, wenn es sich in dem Produkt-Operations-Modus befindet.
  • Als nächstes wird das Schreib-Zeichen 12 für den unbeschreibbaren Bereich auf „WRITTEN" gesetzt (SZ19), wodurch ein Überschreiben in dem nicht wieder überschreibbaren Bereich 11 danach verhindert wird. Weiterhin werden ein Verschlüsselungs-Typ-Identifizierer und ein Installations-Modus-Zeichen in allgemeinen Bereichen 13 und 14 geschrieben (SZ1A). Wenn die Modus-ID einen Modus, einen anderen als den Administrator-Modus (Nein an SZ1B), anzeigt, werden ein verschlüsselter, gemeinsamer Schlüssel und ein Erzeugungs-Schlüssel für einen verschlüsselten Schlüssel in die allgemeinen Bereiche 13 und 14 zusätzlich zu dem Verschlüsselungs-Typ-Identifizierer und einem Installations-Modus-Zeichen geschrieben (SZ1C).
  • Danach wird, wie wiederum 3 zeigt, eine Vorverarbeitung SZ2 ausgeführt. Hierbei wird die Modus-ID, eingestellt in dem nicht wieder beschreibbaren Bereich 11 des sicheren Speichers 10, in das Modus-ID-Speicher-Register 31 der Schlüssel-Erzeugungs-Aktualisierungs-Abfolgesteuereinrichtung 30 und in das Modus-ID-Speicher-Register 41 der Modus-Abfolgesteuereinrichtung 40 eingestellt. Weiterhin wird ein Verschlüsselungs-Typ-Identifizierer, eingestellt in dem allgemeinen Bereich 13 des sicheren Speichers 10, in dem Verschlüsselungs-Typ-Identifizierer-Speicher-Register 32 der Schlüssel-Erzeugungs/Aktualisierungs-Abfolgesteuereinrichtung 30 und in dem Modus-ID-Speicher-Register 42 der Modus-Abfolgesteuereinrichtung 40 eingestellt. Weiterhin werden die Adressen-Verwaltungs-Informationen, gespeichert in dem unbeschreibbaren Bereich 11 des sicheren Speichers 10, in einem Adressen-Segment-Speicher-Register 81 eines MEMC 80 eingestellt. Die Vorgänge, beschrieben vorstehend, entsprechen den Anfangs-Wert-Einstell-Phasen PA0, PB0, PC0 und PD0 von 2.
  • Danach wird der Vorgang in einem Modus, bestimmt gemäß dem Wert der Modus-ID, durchgeführt (SZ3).
  • Wenn die Modus-ID „00" ist, wird die sichere LSI-Vorrichtung 1 auf den Administrator-Modus eingestellt, um eine grobe (binäre) Programm-Ausführungs-Verarbeitung SA1 oder eine Programm-Verschlüsselungs-Verarbeitung SA2, in Abhängigkeit von dem Wert der Sprungeinrichtung 43 (bestimmt an SA0), auszuführen. In der Schlüssel-Erzeugungs-Programm-Entwicklungs-Phase PA1 wird eine grobe (binäre) Programm-Ausführungs-Verarbeitung SA1 ausgeführt, um ein Schlüssel-Erzeugungs-Programm zu erzeugen. Das Schlüssel-Erzeugungs-Programm wird in dem externen Speicher 100 gespeichert. In der Schlüssel-Erzeugungs-Programm-Verschlüsselungs-Phase PA2 wird das Schlüssel-Erzeugungs-Programm mit irgendeinem Schlüssel-Erzeugungs-Schlüssel verschlüsselt.
  • Wenn die Modus-ID „01" ist, wird die sichere LSI-Vorrichtung 1 auf den Schlüssel-Erzeugungs-Modus eingestellt, um eine Schlüssel-Generator-Erzeugungs-Verarbeitung SB1 oder eine Schlüssel-Management/Ausgabe-Verarbeitung SB2 in Abhängigkeit von dem Wert des Installations-Modus-Zeichens (bestimmt an SB0) auszuführen. In der Schlüssel-Generator-Erzeugungs-Phase PB1 wird die Schlüssel-Generator-Erzeugungs-Verarbeitung SB1 ausgeführt, und das Schlüssel-Erzeugungs-Programm, verschlüsselt mit irgendeinem Schlüssel-Erzeugungs-Schlüssel, wird erneut mit einem programmeigenen Schlüssel verschlüsselt. In der Schlüssel-Verwaltungs/Ausgabe-Phase PB2 wird das Schlüssel-Erzeugungs-Programm, verschlüsselt mit dem programmeigenen Schlüssel, ausgeführt, wodurch die Schlüssel-Verwaltungs/Ausgabe-Verarbeitung SB2 ausgeführt wird, um einen Schlüssel zu erzeugen.
  • Wenn die Modus-ID „10" ist, wird die sichere LSI-Vorrichtung 1 auf den Entwicklungs-Modus eingestellt, um eine Programm-Verschlüsselungs-Verarbeitung SC1, eine Verarbeitung SC2 für eine grobe (binäre) Programm-Ausführung, eine Programm-Installations-Verarbeitung SC3 oder eine Ausführungs-Verarbeitung SC4 für ein verschlüsseltes Programm, in Abhängigkeit von dem Wert der Sprungeinrichtung 43 (bestimmt an SC0), auszuführen. In der Anwendungs-Programm-Entwicklungs-Phase PC1 wird eine grobe (binäre) Programm-Ausführungs-Verarbeitung SC2 ausgeführt, um ein Anwendungs-Programm zu entwickeln. Das entwickelte Anwendungs-Programm wird in dem externen Speicher 100 gespeichert. In der Anwendungs-Programm-Verschlüsselungs-Phase PC2 wird die Programm-Verschlüsselungs-Verarbeitung SC1 ausgeführt. In der Anwendungs-Programm-Installations-Phase PC3 wird eine Programm-Installations-Verarbeitung SC3 ausgeführt. In der Anwendungs-Programm-Debugg-Phase PC4 wird eine Ausführungs-Verarbeitung SC4 des verschlüsselten Programms ausgeführt. Die Programm-Installations-Verarbeitung SC3 und die Ausführungs-Verarbeitung SC4 des verschlüsselten Programms sind dieselben wie die Verarbeitung SD1 und SD2 in dem Produkt-Operations-Modus, jeweils.
  • Wenn die Modus-ID „11" ist, wird die sichere LSI-Vorrichtung 1 auf den Produkt-Operations-Modus eingestellt, um eine Programm-Installations-Verarbeitung SD1 oder eine normale Boot-Verarbeitung SD2 in Abhängigkeit von dem Wert des Installations-Modus-Zeichens (bestimmt an SD0) auszuführen. In der Produkt-Installations-Phase PD1 wird eine Programm-Installations-Verarbeitung SD1 ausgeführt. In der Produkt-Operations-Phase PD2 wird eine normale Boot-Verarbeitung SD2 ausgeführt.
  • 5 stellt den Verschlüsselungsabschnitt 2 und Komponenten, die dafür relevant sind, dar. Wie in 5 dargestellt ist, umfasst die Schlüssel-Erzeugungs/Aktualisierungs-Abfolgesteuereinrichtung 30 Register 33 und einen Steuerabschnitt 34 zusätzlich zu dem Modus-ID-Speicher-Register 31 und dem Verschlüsselungs-Typ-Identifizierer-Speicher-Register 32. Die Register 33 sind so vorgesehen, um den jeweiligen Sequenzen zu entsprechen, die durch den arithmetischen Verarbeitungsabschnitt 20 für den privaten Schlüssel auf einer Basis eins zu eins ausgeführt werden. Jedes der Register 33 speichert die Anzahl von Ausgaben einer entsprechenden einen der Sequenzen. Der Steuerabschnitt 34 nimmt auf die Register 31 und 33 Bezug, um zu bestimmen, ob eine Ausführung jeder Sequenz zuzulassen ist (ob eine Ausführung jedes Programms in dem Boot-ROM 60 und einem externen Programm zuzulassen ist), und steuert die Betriebsweise des arithmetischen Verarbeitungsabschnitts 20 für den privaten Schlüssel. In der sicheren LSI-Vorrichtung 1 wird, wenn jede Sequenz einmal ausgegeben ist, 1 (eins) zu einem entsprechenden einen der Register 33 hinzugefügt.
  • Eine Programm-Verschlüsselungs-Grundstruktur (Seed) 35 wird für eine Entschlüsselung oder eine Erzeugung eines Schlüssels verwendet. Die Programm-Verschlüsselungs-Grundstruktur 35 umfasst eine Programm-Verschlüsselungs-Grundstruktur für einen gemeinsamen Schlüssel und eine Programm-Verschlüsselungs-Grundstruktur für einen eigenen Schlüssel.
  • In dem Produkt-Operations-Modus und dem Entwicklungs-Modus beschränkt der Steuerabschnitt 34 die Betriebsweise des Verschlüsselungsabschnitts 2 so, dass die Folge einer Einstellung von Werten, gespeichert in dem sicheren Speicher 10 in den jeweiligen Registern des Verschlüsselungsabschnitts 2 (sichere Flash-Ladeeinrichtung) und die Sequenz einer Erzeugung/Entschlüsselung eines Schlüssels (Schlüssel-Abfolgesteuereinrichtung) jeweils nur einmal ausgegeben werden können. Zum Beispiel kann, wenn einmal die Modus-ID, gespeichert in dem sicheren Speicher, in dem Modus-ID-Speicher-Register 31 durch ein Boot-Programm zu dem Zeitpunkt eines Bootens der sicheren LSI-Vorrichtung 1 gespeichert ist, die gespeicherte Modus-ID nicht erneut geän dert werden. Weiterhin wird, falls ein gemeinsamer Schlüssel und ein eigener Schlüssel zu dem Zeitpunkt eines Bootens der sicheren LSI-Vorrichtung 1 entschlüsselt werden, und die entschlüsselten Schlüssel in den Registern innerhalb des arithmetischen Verarbeitungsabschnitts 20 für den privaten Schlüssel gespeichert sind, irgendein Schlüssel erneut erzeugt/entschlüsselt werden. Demzufolge ist es, gerade wenn ein Schlüssel-Erzeugungs-Programm in dem externen Speicher 100 installiert ist, unmöglich, einen Schlüssel zu erzeugen. Ein einmal entschlüsselter, eigener Schlüssel wird in einem Eigen-Schlüssel-Speicher-Register der externen I/F 50 gespeichert. Das verschlüsselte Programm wird unter Verwendung dieses eigenen Schlüssels ausgeführt. Eine Aktualisierung von Programmen wird unter Verwendung eines gemeinsamen Schlüssels oder eines eigenen Schlüssels, gespeichert in Registern innerhalb des arithmetischen Verarbeitungsabschnitts 20 für den privaten Schlüssel, durchgeführt.
  • In dem Schlüssel-Erzeugungs-Modus und dem Administrator-Modus wird die Beschränkung auf die Schlüssel-Abfolgesteuereinrichtung entfernt, so dass ein Schlüssel erzeugt werden kann.
  • Hierbei kann ein Speicher-Register einer Benutzungsnummer für jede Programm-Verschlüsselungs-Grundstruktur, anstelle der Sequenz-Ausgabe-Zahl-Speicher-Register 33, vorgesehen sein. Das Speicher-Register für die Benutzungsnummer der Programm-Verschlüsselungs-Grundstruktur speichert die Zahl von Malen, für die die Verschlüsselungs-Grundstruktur verwendet worden ist. Da der Programm-Verschlüsselungs-Schlüssel für eine Erzeugung/Entschlüsselung eines Schlüssels verwendet wird, ist eine Erzeugung/Entschlüsselung von Schlüsseln durch Begrenzen der Zahl von Benutzungen der Programm-Verschlüsselungs-Grundstruktur durch die Modus-ID und durch Zählen der Zahl von Benutzungen der Programm-Verschlüsselungs-Grundstruktur begrenzt.
  • Die Programm-Verschlüsselungs-Grundstruktur muss nicht sowohl die Programm-Verschlüsselungs-Grundstruktur für den gemeinsamen Schlüssel als auch die Programm-Verschlüsselungs-Grundstruktur für einen eigenen Schlüssel umfassen.
  • 6 stellt ein Verfahren zum Einstellen eines gemeinsamen Busses und eines privaten Busses dar. Hierbei bedeutet der „private Bus" ein Bus, der extern nicht zugreifbar ist, allerdings nicht notwendigerweise physikalisch von dem externen I/F 50 abhängt. Das bedeutet, dass, in einem Register, das so eingestellt ist, um mit einem privaten Bus 91 verbunden zu sein, ein Lesen und ein Schreiben, basierend auf einem externen Zugriff, unterbunden wird.
  • Adressen werden zu den Registern und anderen Elementen, die innerhalb der sicheren LSI-Vorrichtung 1 vorgesehen sind, zugeordnet. Unter diesen Adressen werden die Adressen von Registern und den anderen Elementen, die mit einem gemeinsamen Bus 92 („0X00000" bis „0X10000" in 6) verbunden sind, in dem Adressen-Speicherabschnitt 82 für den gemeinsamen Bus gespeichert. Wenn ein externer Zugriff empfangen wird, nimmt ein Adressen-Bestimmungsabschnitt 83 für einen externen Zugriff auf den Adressen-Speicherabschnitt 82 für den gemeinsamen Bus Bezug, um zu bestimmen, ob der externe Zugriff auf den gemeinsamen Bus 92 gerichtet ist oder nicht. Falls dies der Fall ist, akzeptiert der Adressen-Bestimmungsabschnitt 83 den externen Zugriff. Andererseits bedeutet, wenn der externe Zugriff nicht ein Zugriff auf den gemeinsamen Bus 92 ist, dies, dass der externe Zugriff ein Zugriff auf den privaten Bus 91 ist, und deshalb wird der externe Zugriff abgewiesen.
  • Wenn ein Zugriff von der CPU 65 (interner Zugriff) empfangen wird, wird ein solcher Bestimmungs-Vorgang nicht durchgeführt, und ein interner Zugriff wird akzeptiert.
  • 7 stellt die externe I/F 50 und Komponenten, die dazu relevant sind dar. In 7 speichert ein Adressen-Segment-Speicher-Register 81 Adressen-Verwaltungs-Informationen, die die Korrespondenz zwischen den jeweiligen Bereichen des externen Speichers 100 und den Adressen darstellen. Hierbei ist der externe Speicher 100 in den ersten Bereich (Programme innerhalb eines vorbestimmten Bereichs), den zweiten Bereich (Programme außerhalb des vorbestimmten Bereichs), den dritten Bereich (Daten innerhalb des vorbestimmten Bereichs) und den vierten Bereich (Daten außerhalb des vorbestimmten Bereichs) unterteilt, und das Adressen-Segment-Speicher-Register 81 speichert die Adressen, getrennt für diese vier Bereiche.
  • Ein Komparator 85 nimmt auf die Adressen-Verwaltungs-Informationen, gespeichert in dem Adressen-Segment-Speicher-Register 81, Bezug, und bestimmt, welcher des ersten bis vierten Bereichs der Adresse von Informationen, um eingegeben/ausgegeben zu werden, darin hineinfällt. Der Komparator 85 schickt das Bestimmungsergebnis zu einem Eingangs/Ausgangs-Steuersignal-Erzeugungsabschnitt 84.
  • Der Eingangs/Ausgangs-Steuersignal-Erzeugungsabschnitt 84 bestimmt, welche Schnittstelle der externen I/F 50 basierend auf der Modus-ID und dem Sprungeinrich tungs-Bestimmungsergebnis aktiviert wird, die von der Modus-Abfolgesteuereinrichtung 40 ausgegeben werden, und den Ausgang des Komparators 85. Der Eingangs/Ausgangs-Steuersignal-Erzeugungsabschnitt 84 schickt das Bestimmungsergebnis als ein Eingangs/Ausgangs-Steuersignal zu einem Eingangs/Ausgangs-Modus-Steuerabschnitt 54. Der Eingangs/Ausgangs-Modus-Steuerabschnitt 54 aktiviert irgendeine der Schnittstellen entsprechend dem empfangenen Eingangs/Ausgangs-Steuersignal. Es sollte angemerkt werden, dass dann, wenn die Modus-ID den Produkt-Operations-Modus anzeigt, ein Durchgangsabschnitt 52b zum Ausführen (nachfolgend bezeichnet als „Ausführung durch den Abschnitt 52b") immer inaktiv gehalten wird, wodurch die Operation der sicheren LSI-Vorrichtung 1 so beschränkt ist, dass ein grobes (binäres) Programm, gespeichert in dem externen Speicher 100, nicht ausgeführt wird.
  • In dem Administrator-Modus oder in einem Debugging-Prozess des Entwicklungs- Modus werden Programme, gespeichert in dem ersten Bereich des externen Speichers 100, in die sichere LSI-Vorrichtung 1 über den Ausführungs-Durchgangsabschnitt 52b des Programm-Verarbeitungsabschnitts 51 gelesen. In dem Schlüssel-Erzeugungs-Modus, dem Produkt-Operations-Modus oder dem Entwicklungs-Modus, mit Ausnahme des Debugging-Prozesses, werden die Programme, gespeichert in dem ersten Bereich, über die Programm-Entschlüsselungs-Kryptographie-Engine 53 gelesen. Diese Programme können in der sicheren LSI-Vorrichtung 1 ausgeführt werden. Andererseits werden Programme, gespeichert in dem zweiten Bereich des externen Speichers 100, in die sichere LSI-Vorrichtung 1 über einen Durchgangsabschnitt 52a für eine Verschlüsselung (nachfolgend bezeichnet als „Verschlüsselungs-Durchgangsabschnitt 52a") des Programm-Verarbeitungsabschnitts 51 hineingelesen. Diese Programme werden zu dem Verschlüsselungsabschnitt 2 zugeführt und verschlüsselt oder erneut verschlüsselt. Diese Programme können nicht in der sicheren LSI-Vorrichtung 1 ausgeführt werden.
  • Weiterhin werden Daten, gespeichert in dem dritten Bereich des externen Speichers 100, in die sichere LSI-Vorrichtung 1 über die Daten-Verschlüsselungs/Entschlüsselungs-Kryptographie-Engine 58 des Daten-Verarbeitungsabschnitts 55 hineingelesen. Daten, gespeichert in dem vierten Bereich des externen Speichers 100, werden in die sichere LSI-Vorrichtung 1 über den Durchgangsabschnitt 56 des Daten-Verarbeitungsabschnitts 55 hineingelesen.
  • Das Programm, gelesen durch den Verschlüsselungs-Durchgangsabschnitt 52a, wird in dem arithmetischen Verarbeitungsabschnitt 20 für den privaten Schlüssel des Verschlüsselungsabschnitts 2 verschlüsselt oder erneut verschlüsselt. Dann wird das verschlüsselte oder erneut verschlüsselte Programm über den Verschlüsselungs-Durchgangsabschnitt 52a übertragen und in den ersten Bereich des externen Speichers 100 hineingeschrieben. Danach kann das Programm in der sicheren LSI-Vorrichtung 1 ausgeführt werden.
  • Daten werden in das Adressen-Segment-Speicher-Register 81 und das Modus-ID-Speicher-Register 41 über den privaten Bus 91 eingestellt. Das bedeutet, dass eine Daten-Einstellung durch einen internen Zugriff durchgeführt wird. Weiterhin kann dieser Daten-Einstellungs-Vorgang nur einmal durchgeführt werden, nachdem die sichere LSI-Vorrichtung 1 zurückgesetzt wird.
  • 8 stellt einen Betrieb der externen I/F 50 dar, der dann durchgeführt wird, wenn sich die sichere LSI-Vorrichtung 1 in dem Produkt-Operations-Modus befindet. Wie in 8 dargestellt ist, wird ein Anwendungs-Programm, verschlüsselt mit einem gemeinsamen Schlüssel, in dem zweiten Bereich (außerhalb des vorbestimmten Bereichs) des externen Speichers 100 gespeichert, bevor es in der sicheren LSI-Vorrichtung 1 installiert wird. Demzufolge kann das Anwendungs-Programm nicht so, wie es ist, ausgeführt werden. Das bedeutet, dass ein Anwendungs-Programm, das mit einem gemeinsamen Schlüssel verschlüsselt ist und in dem zweiten Bereich gespeichert ist, über den Verschlüsselungs-Durchgangsabschnitt 52a gelesen wird, wenn es in der sicheren LSI-Vorrichtung 1 installiert ist. Das Anwendungs-Programm wird mit einem gemeinsamen Schlüssel entschlüsselt und wird dann erneut mit einem eigenen Schlüssel verschlüsselt. Das Anwendungs-Programm für eine erneute Verschlüsselung wird über den Verschlüsselungs-Durchgangsabschnitt 52a wieder übertragen und in dem ersten Bereich (innerhalb des vorbestimmten Bereichs) des externen Speichers 100 gespeichert. Das Anwendungs-Programm, verschlüsselt mit dem eigenen Schlüssel, und gespeichert in dem ersten Bereich, wird in die sichere LSI-Vorrichtung 1 über die Programm-Entschlüsselungs-Kryptographie-Engine 53 hineingelesen und in der sicheren LSI-Vorrichtung 1 ausgeführt.
  • In dem Entwicklungs-Modus wird der nachfolgende Vorgang durchgeführt. Wenn der Debugging-Prozess durchgeführt wird, wird ein Programm, das ausgeführt werden soll, in den ersten Bereich (innerhalb des vorbestimmten Bereichs) geschrieben. Mit einer solchen Vorbereitung wird das Programm in die sichere LSI-Vorrichtung 1 über den Ausführungs-Durchgangsabschnitt 52b hineingelesen und darin sogar dann ausgeführt, wenn dies ein grobes (binäres) Programm ist. Wenn der Verschlüsselungs-Vorgang durchgeführt wird, wird ein Programm, das verschlüsselt werden soll, in den zweiten Bereich (außerhalb des vorbestimmten Bereichs) hineingeschrieben. Mit einer solchen Präparation wird eine Verschlüsselungs-Sequenz zu dem Zeitpunkt ausgeführt, wenn die sichere LSI-Vorrichtung 1 gebootet wird, und das Programm wird mit einem gemeinsamen Schlüssel verschlüsselt und in dem externen Speicher 100 gespeichert. Wenn ein mit einem Debugging-Vorgang verarbeitetes Programm installiert wird, wird ein Programm, das erneut verschlüsselt werden soll. in den zweiten Bereich (außerhalb des vorbestimmten Bereichs) geschrieben. Weiterhin wird, wenn ein verschlüsseltes Programm im Debugging-Verfahren verarbeitet wird, das verschlüsselte Programm, das im Debugging-Verfahren verarbeitet werden soll, in den ersten Bereich (innerhalb des vorbestimmten Bereichs) hineingeschrieben. Mit einer solchen Vorbereitung wird das Programm entschlüsselt und ausgeführt.
  • 9 stellt eine Zugangs-Steuerung des sicheren Speichers 10 dar. Wie in 9 dargestellt ist, umfasst ein Zugangs-Steuerabschnitt 95 ein Register 96 zum Speichern von Adressen des unbeschreibbaren Bereichs 11, ein Register 97 zum Speichern einer Adresse des Schreib-Zeichens 12 für den unbeschreibbaren Bereich und einen Schreib-Zulassungs-Bestimmungsabschnitt 98. Die Register 96 und 97 sind so ausgelegt, dass, wenn einmal Daten in die Register 96 und 97 hineingeschrieben sind, ein anderer Schreib-Vorgang mittels einer Zeichen-Verwaltung, oder dergleichen, unterbunden wird.
  • Die Zugangs-Steuerung wird wie folgt durchgeführt. Ein Zugang von der CPU 65 zu dem sicheren Speicher 10 wird immer über den Zugangs-Steuerabschnitt 95 durchgeführt. Wenn ein gegebener Befehl der „Lese" Befehl ist, werden Daten in dem sicheren Speicher 10 zu dem privaten Bus 91 ungeachtet davon ausgegeben, ob eine Adresse, auf die zugegriffen werden soll, innerhalb des unbeschreibbaren Bereichs oder des allgemeinen Bereichs vorhanden ist. Andererseits nimmt, wenn ein gegebener Befehl der „Schreib" Befehl ist, der Schreib-Zulassungs-Bestimmungsabschnitt 98 auf eine Adresse, auf die zugegriffen werden soll, eine Adresse, gespeichert in dem Register 96, und den Wert des Schreib-Zeichens 12 für den unbeschreibbaren Bereich Bezug, um zu bestimmen, ob ein Schrei ben durchgeführt wird oder nicht. Genauer gesagt wird die folgende Bestimmung vorgenommen:
    (Zeichen „WRITTEN" und unbeschreibbarer Bereich) ... Schreiben ist nicht zugelassen
    (Zeichen „WRITTEN" und allgemeiner Bereich) ... Schreiben ist zugelassen
    (Zeichen „WRITABLE" und unbeschreibbarer Bereich) ... Schreiben ist nicht zugelassen
    (Zeichen „WRITABLE" und allgemeiner Bereich) ... Schreiben ist zugelassen
  • Der sichere Speicher 10 umfasst die Befehle von „Sektor löschen", „Chip löschen", usw.. Wenn das Schreib-Zeichen 12 des unbeschreibbaren Bereichs „WRITTEN" ist, wird der „Sektor löschen" Befehl für den allgemeinen Bereich akzeptiert, wird allerdings nicht für den unbeschreibbaren Bereich akzeptiert. Der „Chip löschen" Befehl wird nicht akzeptiert.
  • Gerade bei der Wiedergabe der Inhalte (Daten) wird die Sicherheit durch Einsetzen des folgenden Verfahrens verbessert.
  • Daten werden zuerst in dem vierten Bereich (außerhalb des vorbestimmten Bereichs) des externen RAM 102 gespeichert. Während man sich in dem vierten Bereich befindet, sind die Daten solche Daten, die mit einem gemeinsamen Daten-Schlüssel (unterschiedlich gegenüber dem gemeinsamen Programm-Schlüssel) oder groben (binären) Daten verschlüsselt sind. Demzufolge ist dabei eine Möglichkeit vorhanden, dass die Daten betrügerisch durch eine LSI-Vorrichtung verwendet werden, d.h. dort ist eine Verwundbarkeit in der Sicherheit vorhanden.
  • Um eine solche Verwundbarkeit zu beseitigen, insbesondere für die Inhalte, wie beispielsweise Bilder, Musik, oder dergleichen, die gegen eine betrügerische Benutzung geschützt werden sollten, ist ein Programm zum Wiedergeben der Inhalte so ausgelegt, dass nur Inhalte, gespeichert in dem dritten Bereich (innerhalb des vorbestimmten Bereichs) des externen RAM 102, wiedergegeben werden können. Die Daten, gespeichert in dem dritten Bereich, werden durch die Daten-Verschlüsselungs/Entschlüsselungs-Kryptographie-Engine 58 entschlüsselt, wenn die Daten in die sichere LSI-Vorrichtung 1 hineingelesen werden. Ein dateneigener Schlüssel, verwendet in diesem Entschlüsse lungs-Vorgang, wird von einer eigenen ID und Zufallszahlen erzeugt, und deshalb ist der dateneigene Schlüssel nicht nur unter den jeweiligen, sicheren LSI-Vorrichtungen 1 unterschiedlich, sondern ist auch bei jedem Boot-Up-Vorgang unterschiedlich. Demzufolge ist es nicht wahrscheinlich, dass die Daten betrügerisch verwendet werden, und die Sicherheit wird verbessert. Weiterhin ist es nicht wahrscheinlich, dass ein Programm zum Wiedergeben von Inhalten auch mit dem eigenen Schlüssel verschlüsselt wird, und es ist deshalb unwahrscheinlich, dass er manipuliert wird.
  • Die 10 und 11 stellen einen Datenfluss des normalen Boot-Vorgangs in dem Produkt-Operations-Modus dar. In 10 wird ein verschlüsselter, programmeigener Schlüssel Enc (programmeigener Schlüssel, MK0), Enc (MK0, CK), der in dem unbeschreibbaren Bereich 11 des sicheren Speichers 10 gespeichert ist, in dem Verschlüsselungs-Schlüssel-Speicher-Register des arithmetischen Verarbeitungsabschnitts 20 des privaten Schlüssels eingestellt. Dann wird der eigene Schlüssel des verschlüsselten Programms unter Verwendung einer Verschlüsselungs-Grundstruktur des installierten Programms entschlüsselt, um dadurch einen programmeigenen Schlüssel zu erhalten. Der erhaltene, programmeigene Schlüssel wird in dem Speicher-Register für den programmeigenen Schlüssel der Programm-Entschlüsselungs-Kryptographie-Engine 53 der externen I/F 50 eingestellt. Danach wird die dateneigene ID, gespeichert in dem unbeschreibbaren Bereich 11 des sicheren Speichers 10, in dem Speicher-Register für die eigene ID des arithmetischen Verarbeitungsabschnitts 20 für den privaten Schlüssel eingestellt. Weiterhin werden Zufallszahlen durch die CPU 65 erzeugt, und die erzeugten Zufallszahlen werden in dem Zufallszahl-Speicher-Register des arithmetischen Verarbeitungsabschnitts 20 für den privaten Schlüssel eingestellt. Dann wird der dateneigene Schlüssel von der dateneigenen ID und den Zufallszahlen durch den arithmetischen Verarbeitungsabschnitt 20 des privaten Schlüssels erzeugt. Der erzeugte, dateneigene Schlüssel wird in dem Speicher-Register für den dateneigenen Schlüssel der Daten-Verschlüsselungs/Entschlüsselungs-Kryptographie-Engine 58 der externen I/F 50 eingestellt.
  • Danach wird, in 11, ein Anwendungs-Programm Enc (Anwendungs-Programm, programmeigener Schlüssel), das mit dem programmeigenen Schlüssel verschlüsselt worden ist und in dem externen Speicher 100 gespeichert worden ist, über die Programm-Entschlüsselungs-Kryptographie-Engine 53 der externen I/F 50 entschlüsselt. Das entschlüsselte Anwendungs-Programm wird zu dem HASH Berechnungsabschnitt 70 über tragen, um den HASH Wert zu berechnen. Der berechnete HASH Wert wird mit dem HASH Wert, gespeichert in dem allgemeinen Bereich 13 des sicheren Speichers 10, gespeichert, um zu prüfen, ob das Anwendungs-Programm manipuliert worden ist oder nicht. Falls die HASH Werte gleich zueinander sind, geht das Programm weiter zu dem Anwendungs-Programm Enc (Anwendungs-Programm, programmeigener Schlüssel), gespeichert in dem externen Speicher 100, um die Anwendung auszuführen. Falls die HASH Werte nicht gleich zueinander sind, wird bestimmt, dass ein bestimmter Betrug vorgenommen worden ist, und ein Kontroll-Vorgang für einen betrügerischen Zugang wird ausgeführt.
  • Das Anwendungs-Programm wird durch die CPU 65 ausgeführt. Das bedeutet, dass die CPU 65 innerhalb der sicheren LSI-Vorrichtung 1 die Zugangs-Steuerung als eine Master-Vorrichtung durchführt. Demzufolge wird der externe Zugangs-Adressen-Bestimmungsabschnitt 83 nicht in die darauf folgenden Prozesse eingebunden, die interne Zugangs-Prozesse sind. Ein Inhalt (originaler Inhalt), verschlüsselt mit dem gemeinsamen Daten-Schlüssel, wird von dem vierten Bereich (nicht reproduzierbarer Bereich) des externen RAM 102 in die sichere LSI-Vorrichtung 1 durch das Anwendungs-Programm gelesen. Der Inhalt der in die sichere LSI-Vorrichtung 1 hineingelesen ist, wird in dem arithmetischen Verarbeitungsabschnitt 20 für den privaten Schlüssel unter Verwendung des gemeinsamen Daten-Schlüssels, geschrieben in dem sicheren Speicher 10, entschlüsselt. Danach wird der Inhalt mit dem dateneigenen Schlüssel über die Daten-Verschlüsselungs/Entschlüsselungs-Kryptographie-Engine 58 in dem Daten-Verarbeitungsabschnitt 55 der externen I/F 50 verschlüsselt. Der verschlüsselte Inhalt wird in den dritten Bereich (reproduzierbarer Bereich) des externen RAM 102 geschrieben. Nachdem er in den dritten Bereich hineingeschrieben ist, ist der Inhalt, verschlüsselt mit dem dateneigenen Schlüssel, reproduzierbar. In dem Fall eines Reproduzieren des Inhalts wird der Inhalt mit dem dateneigenen Schlüssel über die Daten-Verschlüsselungs/Entschlüsselungs-Kryptographie-Engine 58 entschlüsselt, die in dem Daten-Verarbeitungsabschnitt 55 der externen I/F 50 vorgesehen ist.
  • Wie vorstehend beschrieben ist, wird, gemäß der vorliegenden Erfindung, nur eine Sequenz, bestimmt durch den Verschlüsselungs-Steuerabschnitt, dass eine Ausführung der Sequenz zugelassen ist, durch den arithmetischen Verschlüsselungs-Verarbeitungsabschnitt ausgeführt. Demzufolge kann eine betrügerische Ausführung der Sequenz verhindert werden. Weiterhin sind, in der externen Schnittstelle, der Programm-Verarbeitungsabschnitt und der Daten-Verarbeitungsabschnitt unabhängig voneinander strukturiert. Demzufolge wird das Risiko einer betrügerischen Ausführung eines Programms verteilt. Weiterhin kann, da ein Inhalt, der verschlüsselt ist, unter Verwendung des dateneigenen Schlüssels, erzeugt von der eigenen ID, in dem reproduzierbaren Bereich des externen Speichers gespeichert ist, der Inhalt nicht durch eine unterschiedliche LSI-Vorrichtung reproduziert werden, die nicht denselben, dateneigenen Schlüssel besitzt. Deshalb kann eine betrügerische Ausführung des Inhalts verhindert werden. Demzufolge wird das Sicherheitsniveau verbessert.

Claims (18)

  1. Halbleitervorrichtung, die einen Verschlüsselungsabschnitt (1) umfasst, der wenigstens Verschlüsselung oder Entschlüsselung eines Programms durchführt und einen Verschlüsselungs-Rechenverarbeitungsabschnitt (22) enthält, der in der Lage ist, eine Vielzahl von Sequenzen auszuführen, wobei jede der Vielzahl von Sequenzen aus einer Vielzahl von Prozessen besteht, die einen Verschlüsselungsprozess oder einen Entschlüsselungsprozess eines Programms enthalten, dadurch gekennzeichnet, dass: der Verschlüsselungsabschnitt (2) des Weiteren ein Modus-Kennungs-Speicherregister (31) zum Speichern einer Modus-Kennung und einen Verschlüsselungs-Steuerabschnitt (30) enthält, der auf Basis der in dem Modus-Kennungs-Speicherregister (31) gespeicherten Modus-Kennung bestimmt, ob Ausführung jeder der Sequenzen zugelassen wird, die unter Verwendung des Verschlüsselungs-Rechenverarbeitungsabschnitts (20) ausgeführt werden können.
  2. Halbleitervorrichtung nach Anspruch 1, wobei die Vielzahl von Sequenzen einen Verschlüsselungsprozess oder einen Entschlüsselungsprozess eines Schlüssels enthält.
  3. Halbleitervorrichtung nach Anspruch 1, wobei: der Verschlüsselungs-Steuerabschnitt (30) eine Vielzahl von Registern enthält, die den Sequenzen eineindeutig entsprechen, und jedes Register die Anzahl von Ausgaben einer entsprechenden der Sequenzen speichert; und der Verschlüsselungs-Steuerabschnitt (30) unter Berücksichtigung der Anzahl von Ausgaben jeder Sequenz, die in dem entsprechenden Register gespeichert ist, zu sätzlich zum Wert der Modus-Kennung bestimmt, ob Ausführung jeder Sequenz zugelassen wird.
  4. Halbleitervorrichtung nach Anspruch 1, die des Weiteren einen sicheren Speicher umfasst, der einen nicht überschreibbaren Bereich (11) aufweist, wobei der nicht überschreibbare Bereich (11) die Modus-Kennung speichert, wobei das Modus-Kennungs-Speicherregister (41) nur zum Zeitpunkt des Bootens der Halbleitervorrichtung beschrieben werden kann; und zum Zeitpunkt der Bootens der Halbleitervorrichtung die aus dem nicht überschreibbaren Bereich (11) des sicheren Speichers gelesene Modus-Kennung in das Modus-Kennungs-Speicherregister (41) geschrieben wird.
  5. Halbleitervorrichtung nach Anspruch 4, die des Weiteren einen Boot-ROM (60) zum Speichern eines Boot-Programms umfasst, wobei Schreiben der Modus-Kennung in das Modus-Kennungs-Speicherregister (41) durch das Boot-Programm durchgeführt wird, das in dem Boot-ROM (60) gespeichert ist.
  6. Halbleitervorrichtung nach Anspruch 1, die des Weiteren einen sicheren Speicher (10) zum Speichern eines Installationsmodus-Flag umfasst, wobei das Installationsmodus-Flag anzeigt, ob die Halbleitervorrichtung zum ersten Mal gebootet wird oder nicht, wobei der Verschlüsselungs-Steuerabschnitt (30) unter Bezugnahme auf das Installationsmodus-Flag zusätzlich zu dem Wert der Modus-Kennung bestimmt, ob Ausführung jeder Sequenz zugelassen wird.
  7. Halbleitervorrichtung nach Anspruch 1, die des Weiteren einen Boot-ROM (60) zum Speichern wenigstens eines Boot-Programms umfasst, das einer der Vielzahl von Sequenzen entspricht, wobei der Verschlüsselungs-Rechenverarbeitungsabschnitt (20) das in dem Boot-ROM (60) gespeicherte Boot-Programm ausführt und so die Sequenz ausführt, die dem Boot-Programm entspricht.
  8. Halbleitervorrichtung nach Anspruch 1, die des Weiteren einen Controller umfasst, der Zugriffe von außerhalb der Halbleitervorrichtung auf die Register des Verschlüsselungs-Rechenverarbeitungsabschnitts (20) und des Verschlüsselungs-Steuerabschnitts (30) verhindert.
  9. Halbleitervorrichtung, die eine externe Schnittstelle (50) umfasst, die einen Programmverarbeitungsabschnitt (51) zum Eingeben/Ausgeben eines Programms in/aus einen/einem externen Speicher (100) und einen Datenverarbeitungsabschnitt (55) zum Eingeben/Ausgeben von Daten in/aus einen/einem externen Speicher (100) umfasst, wobei der Programmverarbeitungsabschnitt (51) und der Datenverarbeitungsabschnitt (53) unabhängig voneinander strukturiert sind, dadurch gekennzeichnet, dass: eine Modus-Abfolgesteuereinrichtung (40) vorhanden ist, die ein Modus-Kennungs-Speicherregister (41) zum Speichern einer Modus-Kennung aufweist, wobei der Programmverarbeitungsabschnitt (51) enthält: einen Durchgangsabschnitt (52) zum unveränderten Eingeben/Ausgeben eines Programms in unveränderter Form, und eine Programmentschlüsselungs-Kryptografie-Engine (53), die ein verschlüsseltes Programm von dem externen Speicher empfängt, das verschlüsselte Programm zu einem Ursprungs(Binär)-Programm entschlüsselt und das Ursprungs(Binär)-Programm dem Inneren der Halbleitervorrichtung (1) zuführt, wobei der Wert der Modus-Kennung, die in dem Modus-Kennungs-Register (41) gespeichert ist, berücksichtigt wird, um zu bestimmen, ob der Durchgangsab schnitt (52) oder die Programmentschlüsselungs-Kryptografie-Engine (53) aktiviert wird.
  10. Halbleitervorrichtung nach Anspruch 9, wobei: der Durchgangsabschnitt (52) einen Ausführungs-Durchgangsabschnitt (52b) und einen Verschlüsselungs-Durchgangsabschnitt (52a) enthält, und eine Programmeingabe über den Verschlüsselungs-Durchgangsabschnitt (52a) in der Halbleitervorrichtung ausgeführt wird, und ein Programm, das über den Ausführungs-Durchgangsabschnitt (52b) zugeführt wird, dem Verschlüsselungsabschnitt zugeführt und in ihm verschlüsselt wird.
  11. Halbleitervorrichtung nach Anspruch 10, die des Weiteren ein Adresssegment-Speicherregister (81) umfasst, das Adressverwaltungs-Informationen speichert, die die Entsprechung zwischen jeweiligen Bereichen des externen Speichers (100) und Adressen darstellen, wobei wenn die Halbleitervorrichtung auf den externen Speicher (100) zugreift, um ein Programm zu lesen, auf die Adressverwaltungs-Informationen Bezug genommen wird, um zu bestimmen, ob der Verschlüsselungs-Durchgangsabschnitt (52a), der Ausführungs-Durchgangsabschnitt (52b) oder die Programmentschlüsselungs-Kryptografie-Engine (53) aktiviert wird.
  12. Halbleitervorrichtung nach Anspruch 11, wobei das Adresssegment-Speicherregister (81) nur zum Zeitpunkt des Bootens der Halbleitervorrichtung beschrieben werden kann.
  13. Halbleitervorrichtung nach Anspruch 12, die des Weiteren einen sicheren Speicher (10) mit einem nicht überschreibbaren Bereich (11) umfasst, wobei der nicht überschreibbare Bereich (11) die Adressverwaltungs-Informationen speichert, wobei zum Zeitpunkt des Bootens der Halbleitervorrichtung die Adressverwaltungs-Informationen, die aus dem nicht überschreibbaren Bereich (11) des sicheren Spei chers (10) gelesen werden, in das Adresssegment-Speicherregister (81) geschrieben werden.
  14. Halbleitervorrichtung nach Anspruch 13, wobei der Wert der Modus-Kennung, die in dem Moduskennungs-Speicherregister (41) gespeichert ist, zusätzlich berücksichtigt wird, um zu bestimmen, ob der Verschlüsselungs-Durchgangsabschnitt (52a), der Ausführungs-Durchgangsabschnitt (52b) oder die Programmentschlüsselungs-Kryptografie-Engine (53) aktiviert wird.
  15. Halbleitervorrichtung nach Anspruch 14, wobei: die Modus-Abfolgesteuereinrichtung einen Jumper-Wert-Bestimmungsabschnitt (45) enthält und ein durch den Jumper-Wert-Bestimmungsabschnitt (45) bestimmter Jumper-Wert zusätzlich berücksichtigt wird, um zu bestimmen, ob der Verschlüsselungs-Durchgangsabschnitt (52a), der Ausführungs-Durchgangsabschnitt (52b) oder die Programmentschlüsselungs-Kryptografie-Engine (53) aktiviert wird.
  16. Halbleitervorrichtung nach Anspruch 9, wobei der Datenverarbeitungsabschnitt einen Durchgangsabschnitt (56) zum unveränderten Eingeben/Ausgeben von Daten und eine Datenverschlüsselungs/-entschlüsselungs-Kryptografie-Engine (58) enthält, die Verschlüsselung oder Entschlüsselung von Daten zum Zeitpunkt der Eingabe/Ausgabe der Daten durchführt.
  17. Inhalts-Wiedergabeverfahren zum Einsatz in der Halbleitervorrichtung nach Anspruch 1, das die folgenden Schritte umfasst: Lesen eines Originalinhaltes, der in einem nicht reproduzierbaren Bereich eines externen Speichers (100) gespeichert ist, in eine LSI-Vorrichtung (1); Erzeugen eines eigenen Datenschlüssels in der LSI-Vorrichtung (1) und Verschlüsseln des Originalinhaltes in der LSI-Vorrichtung (1) unter Verwendung des eigenen Datenschlüssels; Speichern des verschlüsselten Inhaltes in einem reproduzierbaren Bereich des externen Speichers (100); Lesen des in dem reproduzierbaren Bereiches gespeicherten verschlüsselten Inhaltes in die LSI-Vorrichtung (1); Entschlüsseln des verschlüsselten Inhaltes in der LSI-Vorrichtung (1) unter Verwendung des eigenen Datenschlüssels; und Reproduzieren des entschlüsselten Inhaltes in der LSI-Vorrichtung (1), dadurch gekennzeichnet, dass: der eigene Datenschlüssel auf Basis der eigenen Kennung, die in einem internen Speicher gespeichert ist, und von Zufallszahlen zum Zeitpunkt jedes Bootvorgangs erzeugt wird.
  18. Inhalts-Reproduktionsverfahren nach Anspruch 17, wobei: der Originalinhalt, der in dem nicht reproduzierbaren Bereich gespeichert ist, ein mit einem gemeinsamen Datenschlüssel verschlüsselter Inhalt ist; vor Verschlüsselung mit dem eigenen Datenschlüssel der Originalinhalt unter Verwendung des gemeinsamen Datenschlüssels entschlüsselt wird, der in dem internen Speicher gespeichert ist.
DE60302844T 2002-09-04 2003-09-04 Halbleitervorrichtung mit Verschlüsselung, Halbleitervorrichtung mit externer Schnittstelle, und Inhaltswiedergabeverfahren Expired - Lifetime DE60302844T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002258481A JP3881942B2 (ja) 2002-09-04 2002-09-04 暗号化部を有する半導体装置
JP2002258481 2002-09-04

Publications (2)

Publication Number Publication Date
DE60302844D1 DE60302844D1 (de) 2006-01-26
DE60302844T2 true DE60302844T2 (de) 2006-06-29

Family

ID=31712299

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60302844T Expired - Lifetime DE60302844T2 (de) 2002-09-04 2003-09-04 Halbleitervorrichtung mit Verschlüsselung, Halbleitervorrichtung mit externer Schnittstelle, und Inhaltswiedergabeverfahren

Country Status (6)

Country Link
US (6) US7340614B2 (de)
EP (1) EP1396778B1 (de)
JP (1) JP3881942B2 (de)
CN (5) CN101241533A (de)
DE (1) DE60302844T2 (de)
TW (1) TWI253565B (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3881942B2 (ja) 2002-09-04 2007-02-14 松下電器産業株式会社 暗号化部を有する半導体装置
US7543158B2 (en) * 2004-03-23 2009-06-02 Texas Instruments Incorporated Hybrid cryptographic accelerator and method of operation thereof
JP2005332221A (ja) * 2004-05-20 2005-12-02 Renesas Technology Corp 記憶装置
JP2006023957A (ja) * 2004-07-07 2006-01-26 Sony Corp 半導体集積回路及び情報処理装置
WO2006033347A1 (ja) 2004-09-21 2006-03-30 Matsushita Electric Industrial Co., Ltd. 機密情報処理方法、機密情報処理装置、およびコンテンツデータ再生装置
EP1640844A1 (de) * 2004-09-27 2006-03-29 STMicroelectronics Limited Gesichertes OTP mit externem Speicher
CN100388240C (zh) * 2004-09-30 2008-05-14 三洋电机株式会社 内容再生装置和内容再生方法
CN101167301B (zh) * 2005-04-27 2011-02-16 松下电器产业株式会社 机密信息处理用主机及机密信息处理方法
JP4836504B2 (ja) 2005-06-30 2011-12-14 富士通株式会社 Icチップ、ボード、情報処理装置及びコンピュータプログラム
JP4372061B2 (ja) 2005-07-01 2009-11-25 パナソニック株式会社 機密情報実装システム及びlsi
JP4818651B2 (ja) * 2005-07-13 2011-11-16 ルネサスエレクトロニクス株式会社 暗号化・復号化回路
US7363564B2 (en) * 2005-07-15 2008-04-22 Seagate Technology Llc Method and apparatus for securing communications ports in an electronic device
JP2007066021A (ja) * 2005-08-31 2007-03-15 Nec Electronics Corp 外部データ改ざん検出装置、および外部データ改ざん検出方法
JP4957148B2 (ja) * 2006-09-26 2012-06-20 富士通株式会社 鍵管理機能を持つセキュア素子および情報処理装置
JP2011128659A (ja) * 2008-03-10 2011-06-30 Nec Corp Os起動可否判定装置、os起動可否判定システム、os起動可否判定方法およびos起動可否判定プログラム
US8819839B2 (en) * 2008-05-24 2014-08-26 Via Technologies, Inc. Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels
US20090292931A1 (en) * 2008-05-24 2009-11-26 Via Technology, Inc Apparatus and method for isolating a secure execution mode in a microprocessor
US8281229B2 (en) * 2008-12-30 2012-10-02 Intel Corporation Firmware verification using system memory error check logic
JP2009124766A (ja) * 2009-03-12 2009-06-04 Panasonic Corp 機密情報実装システム、lsi、記憶装置及び機密情報実装方法
WO2010111438A2 (en) 2009-03-25 2010-09-30 Pacid Technologies, Llc System and method for protecting a secrets file
JP2011013789A (ja) * 2009-06-30 2011-01-20 Toshiba Corp 情報処理装置および情報処理方法
JP2010033613A (ja) * 2009-11-12 2010-02-12 Panasonic Corp 情報処理装置
US8943330B2 (en) * 2011-05-10 2015-01-27 Qualcomm Incorporated Apparatus and method for hardware-based secure data processing using buffer memory address range rules
JP5782120B2 (ja) * 2011-06-06 2015-09-24 株式会社ソシオネクスト コンテンツデータ再生方法、およびサムネイル画像生成方法
US8479021B2 (en) 2011-09-29 2013-07-02 Pacid Technologies, Llc Secure island computing system and method
WO2014049830A1 (ja) 2012-09-28 2014-04-03 富士通株式会社 情報処理装置および半導体装置
US9055038B1 (en) * 2013-02-04 2015-06-09 Stealth Software Technologies, Inc. Apparatus, system, and method to garble programs
JP6287284B2 (ja) * 2014-02-05 2018-03-07 大日本印刷株式会社 Icチップ及びプログラム暗号化方法
WO2016088273A1 (ja) * 2014-12-05 2016-06-09 富士通株式会社 セキュリティ装置および制御方法
JP2017108293A (ja) * 2015-12-10 2017-06-15 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびデータ処理装置
US10341361B2 (en) * 2017-06-05 2019-07-02 Hewlett Packard Enterprise Development Lp Transmitting secure information
JP7242233B2 (ja) * 2018-09-28 2023-03-20 キヤノン株式会社 情報処理装置及びその制御方法とプログラム
CN118435179A (zh) * 2021-12-23 2024-08-02 索尼半导体解决方案公司 数据处理装置

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4465901A (en) 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
JPH0548573A (ja) 1991-08-20 1993-02-26 Aiphone Co Ltd Isdn用電話装置
US5224166A (en) * 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US5666411A (en) * 1994-01-13 1997-09-09 Mccarty; Johnnie C. System for computer software protection
DE69532153T2 (de) * 1994-09-30 2004-09-02 Mitsubishi Corp. Datenurheberrechtsverwaltungssystem
JPH08214090A (ja) 1995-02-07 1996-08-20 Ekushingu:Kk 情報提供システム
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
JP3059918B2 (ja) 1995-09-11 2000-07-04 三洋電機株式会社 Fm多重放送受信機におけるデータ加工装置
JPH10154976A (ja) 1996-11-22 1998-06-09 Toshiba Corp タンパーフリー装置
JP3651732B2 (ja) * 1997-04-24 2005-05-25 株式会社東芝 再生装置
JP3724944B2 (ja) 1998-03-06 2005-12-07 株式会社ルネサステクノロジ 評価用モジュール、評価用マイクロコンピュータチップ、及びデバッグシステム
JP4611523B2 (ja) * 1998-05-18 2011-01-12 ギーゼッケ ウント デフリエント ゲーエムベーハー アクセス防護型データ記憶媒体
AU763294B2 (en) * 1998-07-22 2003-07-17 Panasonic Intellectual Property Corporation Of America Digital data recording device and method for protecting copyright and easily reproducing encrypted digital data and computer readable recording medium recording program
JP2000122931A (ja) 1998-10-15 2000-04-28 Toshiba Corp デジタル集積回路
TW420796B (en) 1999-01-13 2001-02-01 Primax Electronics Ltd Computer system equipped with portable electronic key
US7266202B1 (en) * 1999-02-17 2007-09-04 Sony Corporation Information processing device and method, and program storage medium
WO2000057290A1 (fr) 1999-03-19 2000-09-28 Hitachi, Ltd. Processeur d'informations
US7162452B1 (en) * 1999-03-25 2007-01-09 Epstein Michael A Key distribution via a memory device
JP2000347847A (ja) 1999-03-30 2000-12-15 Sony Corp 情報処理装置および方法、半導体ic、情報処理システム、並びにプログラム格納媒体
JP2000347852A (ja) 1999-03-30 2000-12-15 Sony Corp 情報処理装置および方法、並びにプログラム格納媒体
JP4011792B2 (ja) 1999-06-16 2007-11-21 株式会社東芝 記録方法、再生方法、記録装置、再生装置及び記録媒体
KR100373669B1 (ko) * 1999-09-29 2003-02-26 가부시키가이샤 히타치세이사쿠쇼 비밀 정보의 처리 장치, 비밀 정보의 처리 프로그램을 기록한 기록 매체 및 처리 시스템
JP2001103444A (ja) 1999-10-01 2001-04-13 Matsushita Electric Ind Co Ltd パケット暗号化装置およびプログラム記録媒体
JP2001358708A (ja) 1999-10-29 2001-12-26 Matsushita Electric Ind Co Ltd コンテンツ情報変換装置、コンテンツ情報変換方法、及びプログラム記憶媒体
KR20010051292A (ko) 1999-10-29 2001-06-25 마츠시타 덴끼 산교 가부시키가이샤 콘텐츠 데이터 변환 장치와 그 방법 및 콘텐츠 데이터변환 프로그램 저장 기록 매체
JP2001274786A (ja) * 2000-01-21 2001-10-05 Victor Co Of Japan Ltd コンテンツ情報伝送方法、コンテンツ情報記録方法、コンテンツ情報伝送装置、コンテンツ情報記録装置、伝送媒体、及び記録媒体
JP2001339383A (ja) * 2000-05-29 2001-12-07 Hitachi Ltd 認証通信用半導体装置
US7103782B1 (en) * 2000-09-27 2006-09-05 Motorola, Inc. Secure memory and processing system having laser-scribed encryption key
JP3945616B2 (ja) 2000-09-29 2007-07-18 グローリー株式会社 同型cpuを備えた複数ユニットから成る紙幣処理機の初期化方法
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
US7185145B2 (en) * 2001-06-04 2007-02-27 Renesas Technology Corp. Memory card
JP2003018143A (ja) * 2001-06-28 2003-01-17 Mitsubishi Electric Corp 情報処理装置
JP4486277B2 (ja) 2001-07-02 2010-06-23 信越化学工業株式会社 Mri用磁場発生装置
TWI222609B (en) * 2001-07-25 2004-10-21 Matsushita Electric Ind Co Ltd A method of producing a decrypting apparatus having a cryptographic device and cryptographic information, a system for providing such device and information, and the decrypting apparatus produced by the production method
US20030212897A1 (en) * 2001-08-18 2003-11-13 Russell Dickerson Method and system for maintaining secure semiconductor device areas
JP3773431B2 (ja) 2001-09-20 2006-05-10 松下電器産業株式会社 鍵実装システムおよびこれを実現するためのlsi、並びに鍵実装方法
JP2004054834A (ja) 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
JP3881942B2 (ja) * 2002-09-04 2007-02-14 松下電器産業株式会社 暗号化部を有する半導体装置

Also Published As

Publication number Publication date
US8407488B2 (en) 2013-03-26
US20080144818A1 (en) 2008-06-19
EP1396778A3 (de) 2004-03-31
US20130151836A1 (en) 2013-06-13
US8122262B2 (en) 2012-02-21
JP2004096666A (ja) 2004-03-25
CN1797267A (zh) 2006-07-05
US7831841B2 (en) 2010-11-09
CN1495620A (zh) 2004-05-12
US20040059928A1 (en) 2004-03-25
US9208356B2 (en) 2015-12-08
CN101241534A (zh) 2008-08-13
CN101241533A (zh) 2008-08-13
CN100377028C (zh) 2008-03-26
US8719595B2 (en) 2014-05-06
CN100357849C (zh) 2007-12-26
US20100329456A1 (en) 2010-12-30
US20140129849A1 (en) 2014-05-08
EP1396778B1 (de) 2005-12-21
TWI253565B (en) 2006-04-21
JP3881942B2 (ja) 2007-02-14
CN100380348C (zh) 2008-04-09
CN1797268A (zh) 2006-07-05
TW200405164A (en) 2004-04-01
US7340614B2 (en) 2008-03-04
DE60302844D1 (de) 2006-01-26
US20110202752A1 (en) 2011-08-18
EP1396778A2 (de) 2004-03-10

Similar Documents

Publication Publication Date Title
DE60302844T2 (de) Halbleitervorrichtung mit Verschlüsselung, Halbleitervorrichtung mit externer Schnittstelle, und Inhaltswiedergabeverfahren
DE60303476T2 (de) Verfahren und server für eine programm-aktualisierung
DE112009002502B4 (de) Multilayer inhalte-schützender Mikrocontoller
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
DE69619186T2 (de) Gerät für die ausführung eines verschlüsselten progamms
DE102009041176B4 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
DE112008003855B4 (de) System und Verfahren zum Bereitstellen von sicherem Zugriff auf einen Systemspeicher
DE3751047T2 (de) Softwareschutzsystem einschliesslich eines Einschlüsselkryptosystems, eines auf Hardware beruhenden Genehmigungssystems und eines geschützten Zusatzprozessors.
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
WO1998009209B1 (en) Systems and methods for secure transaction management and electronic rights protection
DE112011104325T5 (de) Computerlesbare Speichermedien zum Verschlüsseln und Entschlüsseln einer virtuellen Platte
DE112005003340T5 (de) Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten
DE112010005842T5 (de) Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung
DE102007045743A1 (de) Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes
DE69521399T2 (de) Einrichtung zur Sicherung von Informationssystemen, die auf der Basis von Mikroprozessoren organisiert sind
DE102012205689A1 (de) Anweisungsverschlüsselungs-/-entschlüsselungsanordnung und -verfahren mit iterativer Verschlüsselungs-/Entschlüsselungsaktualisierung
DE102014208855A1 (de) Verfahren zum Durchführen einer Kommunikation zwischen Steuergeräten
DE102013224578A1 (de) Codeschutz unter verwendung von online-authentifizierung und verschlüsselter ausführung von code
EP0280035B1 (de) Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme
DE102015201298A1 (de) Verfahren zum kryptographischen Bearbeiten von Daten
DE102014208848A1 (de) Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls
Fu et al. Some new approaches for preventing software tampering
DE102020206039A1 (de) Erstellen einer Container-Instanz
DE102012004780B4 (de) Verfahren und Anordnung zum Schutz von Datengeheimnissen in Speicher
WO2019166398A1 (de) Computerprogramm, insbesondere für ein steuergerät eines kraftfahrzeugs

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: PANASONIC CORP., KADOMA, OSAKA, JP