DE60124845T2 - Mikroprozessor mit Programm- und Datenschutzfunktion in einer Multitasking Umgebung - Google Patents

Mikroprozessor mit Programm- und Datenschutzfunktion in einer Multitasking Umgebung Download PDF

Info

Publication number
DE60124845T2
DE60124845T2 DE60124845T DE60124845T DE60124845T2 DE 60124845 T2 DE60124845 T2 DE 60124845T2 DE 60124845 T DE60124845 T DE 60124845T DE 60124845 T DE60124845 T DE 60124845T DE 60124845 T2 DE60124845 T2 DE 60124845T2
Authority
DE
Germany
Prior art keywords
key
data
key pair
program
identifier
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
DE60124845T
Other languages
English (en)
Other versions
DE60124845D1 (de
Inventor
c/o Toshiba Corporation Kenji Shirakawa
c/o Toshiba Corporation Keiichi Teramoto
c/o Toshiba Corporation Mikio Hashimoto
c/o Toshiba Corporation Kensaku Fujimoto
c/o Toshiba Corporation Satoshi Ozaki
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of DE60124845D1 publication Critical patent/DE60124845D1/de
Publication of DE60124845T2 publication Critical patent/DE60124845T2/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
    • 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

Description

  • HINTERGRUND DER ERFINDUNG
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft einen Mikroprozessor zum Unterstützen einer Multitask-Programmausführungsumgebung und ein Datenschutzverfahren für diesen Mikroprozessor.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Es gibt einen Bedarf für einen Mikroprozessor, der eine Schutzfunktion zu einer Zeit eines Ausführens eines Programms in einem Computersystem hat. In den aktuell verfügbaren Prozessoren werden eine Schutzfunktion in der Verwaltung für einen virtuellen Speicher und ein Mechanismus zur Zugriffsbeschränkung bezüglich von Peripherie-Eingabe/Ausgabegeräten als unentbehrlich betrachtet, um die Sicherheit des Computersystems sicherzustellen, das die Multitask-Ausführungsumgebung bereitstellt.
  • Darüber hinaus wird in den vergangenen Jahren eine Gruppe von Programmen, die selbst geschützt sein sollten, ein wichtiges Schutzziel angesichts der Schutzmechanismen. Zum Beispiel darf ein Programm, das durch den Urheberschutz geschützt ist, nicht in einem Stil ausgeführt werden, der den Urheberschutz verletzt. Es gibt auch ein Programm, das Daten handhabt, die vor Dritten verborgen werden sollen. Wenn es die Möglichkeit gibt, das Programm, das zu verbergende Daten handhabt, und seinen Ausführungszustand zu analysieren, kann die Datensicherheit nicht garantiert werden, so dass der strenge Schutz erforderlich sein wird.
  • Um diese Programme sicher auszuführen, gibt es Systeme zum kryptographischen Garantieren der Sicherheit, die vorgeschlagen und in der Praxis realisiert worden sind. Eine von diesen ist die angriffswiderstandsfähige Software (David Aucsmith et al.: "Tamper Resistant Software: An implimentation", Proceedings of the 1996 Intel Software Developer's Conference). Dieses ist eine Technik, in der ein Teil des Programms oder das gesamte Programm chiffriert und dann verteilt und gespeichert wird, und das Programm und die Daten werden unmittelbar vor dem Nutzen des Programms dechiffriert und ausgeführt, und das Programm wird erneut chiffriert nach Beendigen des Programms, wenn erforderlich.
  • Jedoch tätigt die Technik für eine angriffswiderstandsfähige Software die Analyse nur durch Analysierwerkzeuge, so wie einen Reverse-Assembler und einen im Grunde komplizierteren Debugger. Solange wie das Programm durch den Prozessor ausführbar ist, ist es immer möglich, den Programmausführungsprozess durch die sequentielle Analyse zu analysieren, die der Programmausführung von einem Start des Programms folgt. Obwohl es sicher in einem Prozess zum Verteilen des Programms ist, ist es, mit anderen Worten, unmöglich, das Programm und die Daten vor Dritten zu verbergen, die Einrichtungen zum Zugreifen auf das Computersystem haben, das das Programm ausführt, sobald das Programm ausgeführt wird.
  • Es gibt außerdem Techniken zum Verbergen des dechiffrierten Programms vor einem Äußeren des Mikroprozessors vielmehr durch Bereitstellen einer eingebauten Chiffrier/Dechiffrier-Verarbeitungsfunktion in dem Mikroprozessor, als Ausführen der Chiffrierung/Dechiffrierung durch Software, wie in US Patent Nr. 4 847 902 (Hampson), US Patent Nr. 5 224 166 (Hartman), US Patent Nr. 5 825 878 (Takahashi), und der japanischen offengelegten Patentanmeldung Nr. 11-282756 (1999) offenbart.
  • Es ist charakteristisch für das Schema zum Bereitstellen der eingebauten Chiffrier/Dechiffrier-Verarbeitungsfunktion in dem Mikroprozessor, das der Mikroprozessor die Geheimdaten in einer Form aufrechterhalten kann, die physikalisch vor einem Äußeren verborgen ist. Und zwar werden die Geheimdaten in solch einer Form aufrechterhalten, dass das Geheimnis selbst durch die zerstörerische Inspektion des Mikroprozessors nicht zum Vorschein gebracht werden kann. Dieses kann wie folgt genutzt werden. Der Geheimschlüssel des Kryptosystems für einen öffentlichen Schlüssel wird als eingebaute Geheimdaten in dem Mikroprozessor im Voraus bereitgestellt. Das Programm wird mit irgendeinem Chiffrierschlüssel (für den das Kryptosystem für einen Geheimschlüssel im Allgemeinen verwendet wird) z.B. durch den Programmverkäufer chiffriert, und an den Mikroprozessor verteilt. An dieser Stelle wird der Chiffrierschlüssel weiter chiffriert durch den öffentlichen Schlüssel, der dem Geheimschlüssel des Mikroprozessors entspricht und an das Programm angefügt ist.
  • Durch diesen Mechanismus ist es möglich, das Programm selbst in einer sicheren Form bereitzustellen, so dass dessen Ausführungsprozess nicht durch das analytische Verfahren, so wie das Reverse-Assembling, wiedergewonnen werden kann. Außerdem ist es kryptographisch schwierig, das Programm in eine beabsichtigte Form zu ändern, ohne den Chiffrierschlüssel des Programms zu kennen.
  • Jedoch sind diese Mikroprozessoren zum Ausführen chiffrierter Programme mit einem ernsten Problem verknüpft gewesen. Und zwar werden diese Mikroprozessoren gewöhnlicher Weise mit dem Betriebssystem (OS, Operating System) zum Realisieren der Multitask-Umgebung verwendet. In der Multitask-Umgebung wird eine Vielzahl von Programmen virtuell gleichzeitig durch die Zeitteilung des Prozessors mit Verwenden der Kontext-Umschalten bzw. Kontext-Wechseln genannten Operation ausgeführt. In dem Prozess dieses Kontext-Wechselns kann das OS sämtliche Ausführungszustände des Mikroprozessors lesen und schreiben. Folglich wird es möglich, durch Analysieren des Verhaltens des OS oder durch Ändern des OS selbst, sämtliche Ausführungszustände des Programms zu analysieren, selbst wenn angenommen wird, dass dieses durch die Chiffrierung geschützt ist.
  • Im Stand der Technik ist eine Teillösung dieses Problems bereitgestellt. Zum Beispiel offenbart die offengelegte japanische Patentanmeldung Nr. 11-282756 (1999) eine Technik zum Bereitstellen eines Geheimspeichers in einem Prozessor, um die Geheimdaten der Anwendung aufrecht zu erhalten. In diesem Beispiel ist ein vorbestimmter Referenzwert notwendig, um auf Daten in dem Geheimspeicher zuzugreifen. Jedoch gibt es keine Lehre, wie man den Referenzwert zum Erhalten des Zugriffsrechtes bezüglich der Geheimdaten schützt, besonders vor dem Betriebssystem, wenn eine Vielzahl von Programmen auf demselben Prozessor läuft.
  • Außerdem offenbart die japanische Patentanmeldung Nr. 2000-135010 eine Technik zum Ausführen des Kontext-Wechselns durch Hardware, so dass die Kontexte der Registerdateien zu einer Zeit des Kontext-Wechselns chiffriert und temporär in einem Speicher gesichert sind, um die Ausführungszustände des Programms vor dem Betriebssystem zu verbergen. Auf diese Weise wird es kryptographisch schwierig, die Geheimdaten durch Analysieren der Ausführungszustände des Prozessors wiederzugewinnen, die in dem Speicher gesichert sind, so dass es möglich wird, die Sicherheit des chiffrierten Programms zu garantieren. Jedoch ist diese Technik mit den folgenden Problemen verknüpft.
  • Das erste Problem ist, dass das Ziel eines Schutzes durch die Chiffrierung nur auf die Registerdateien begrenzt ist. Es kann Fälle geben, wo der Mikroprozessor intern viele Speicher oder einen Speicher einer großen Kapazität neben den Registerdateien hat, und in solchen Fällen wird erwartet, dass die Verarbeitungslast aufgrund des Kontext-Wechselns schwerer im Verhältnis zu der Kapazität wird. Jedoch offenbart die japanische Patentanmeldung Nr. 2000-135010 absolut keine Lehre, wie man diese internen Speicher schützt und wie man die Verarbeitungslast aufgrund des Kontext-Wechselns reduziert.
  • Zum Beispiel kann, in dem Fall, wo der Mikroprozessor einen internen Speicher einer großen Kapazität hat, der Speicher nicht gesamt durch den Stand der Technik geschützt werden, so dass das Entweichen der geschützten Daten unvermeidbar ist. Wenn ein Versuch getätigt wird, ihn gesamt zu schützen, würde außerdem die Leistungsverschlechterung aufgrund der Chiffrierverarbeitung wegen der großen Kapazität verursacht werden, so dass es in der Praxis eine ernsthafte Beschränkung bewirken würde.
  • Als ein bekanntes Verfahren zum Reduzieren der Verarbeitungslast aufgrund des Kontext-Umschaltens in einem Prozessor mit einem Cache-Speicher einer großen Kapazität gibt es ein Verfahren zum Einschließen eines Identifizierers zum Identifizieren eines Prozesses, der die gecacheten Daten besitzt, in eine Marke, die zum Beurteilen eines Treffers/Misserfolgs bei einer verknüpften Speichereinheit des Caches verwendet werden soll (auf dieses Verfahren wird hier im Nachfolgenden als ein Prozessmarkenschema verwiesen werden).
  • Jedoch ist es schwierig, dieses Verfahren geradewegs anzuwenden, weil der Prozess ein durch das Betriebssystem verwendetes Konzept ist, um den Prozessor virtuell zu behandeln, und es ist für den Prozessor selbst schwierig, den Identifizierer zum Identifizieren des Prozesses handzuhaben. Selbst wenn der Prozessor mit einem Mechanismus zum Schützen eines Zugriffs auf Daten durch Verwenden eines Identifizierers zum Identifizieren des Prozesses bereitgestellt ist, kann außerdem, solange wie der Prozessidentifizierer unter der Verwaltung des Betriebssystems ist, nichts gegen das Geheimnisentweichen durch die Änderung des Betriebssystems getan werden.
  • Das zweite Problem ist, dass das Kontext-Umschalten starr durch Hardware getan wird, und sämtliche Register gesichert oder wiedergewonnen werden müssen, so dass es einen Flexibilitätsmangel gibt. Zum Beispiel ist es, in dem Fall der häufig auftretenden Abweichungsverarbeitung, vorzuziehen, die Optimierung zum Sichern oder Wiedergewinnen nur eines Teils der Registerdateien zu realisieren, aber eine in der japanischen Patentanmeldung Nr. 2000-135010 offenbarte Technik sichert oder wiedergewinnt sämtliche Inhalte der Registerdateien kollektiv.
  • WO 00/26791 betrifft eine sichere Speicherverwaltungseinheit, die mehrfache kryptographische Algorithmen verwendet.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist deshalb eine Aufgabe der vorliegenden Erfindung, einen Mikroprozessor bereitzustellen, der fähig ist zum Garantieren sowohl der Geheimhaltung des Programms selbst als auch der Geheimhaltung von durch das Programm kryptographisch gehandhabten Daten, und zum Reduzieren der Verarbeitungslast aufgrund des Kontext-Wechselns in der Multitask-Umgebung.
  • Es ist eine andere Aufgabe der vorliegenden Erfindung, einen Mikroprozessor bereitzustellen, der fähig ist zum Realisieren der Optimierung eines Schutzzielverarbeitens, um ein Sichern oder eine Wiedergewinnung von nur einem erforderlichen Teil von Daten in der Multitask-Umgebung zu ermöglichen.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist ein Mikroprozessor bereitgestellt, mit: einer Anweisungsdechiffrier-Verarbeitungseinheit, die konfiguriert ist zum Dechiffrieren eines Programms in einer chiffrierten Form durch Verwenden eines ersten Chiffrierschlüssels; einer Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit, die konfiguriert ist zum Chiffrieren/Dechiffrieren von durch das Programm verarbeiteten Daten in einer dechiffrierten Form durch Verwenden eines zweiten Chiffrierschlüssels; einer Schlüsselpaar-Verwaltungseinheit, die mit der Anweisungsdechiffrier-Verarbeitungseinheit und der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit verbunden ist, mit einem ersten Speicherbereich zum Speichern des ersten Chiffrierschlüssels und des zweiten Chiffrierschlüssels in Zuordnung als ein Schlüsselpaar; und einem zweiten Speicherbereich zum Speichern eines Identifizierers zum Identifizieren des Schlüsselpaares, zusammen mit bezogenen Daten des Programms.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung ist ein Datenschutzverfahren für einen Mikroprozessor bereitgestellt, wobei das Datenschutzverfahren umfasst: Dechiffrieren eines Programms in einer chiffrierten Form durch Verwenden eines ersten Chiffrierschlüssels; Erzeugen eines dem ersten Chiffrierschlüssel entsprechenden zweiten Chiffrierschlüssels, zum Chiffrieren/Dechiffrieren durch das Programm verarbeiteter Daten in einer dechiffrierten Form; Speichern des ersten Chiffrierschlüssels und des zweiten Chiffrierschlüssels in Zuordnung als ein Schlüsselpaar; Vergeben eines Identifizierers zum Identifizieren des Schlüsselpaares, an das Schlüsselpaar; und Auslesen des zweiten Chiffrierschlüssels gemäß dem Identifizierer, Chiffrieren der Daten durch Verwenden des zweiten Chiffrierschlüssels und Speichern der Daten in einer chiffrierten Form in einem externen Speicher, wenn eine Abweichung bzw. Ausnahme während einer Ausführung des Programms auftritt.
  • Die vorliegende Erfindung kann entweder in Hardware oder in Software in einem Prozessor implementiert sein. Ferner kann die vorliegende Erfindung in einer Kombination von Hardware und Software implementiert sein. Die vorliegende Erfindung kann außerdem durch eine einzelne Verarbeitungsvorrichtung oder ein verteiltes Netzwerk von Verarbeitungsvorrichtungen implementiert sein.
  • Da die vorliegende Erfindung durch Software implementiert sein kann, umfasst die vorliegende Erfindung einen einem Prozessor bereitgestellten Computercode auf irgendeinem geeigneten Trägermedium. Das Trägermedium kann irgendein Speicherungsmedium umfassen, so wie eine Diskette, eine CD-ROM, ein magnetisches Gerät oder ein programmierbares Speichergerät, oder irgendein flüchtiges Medium, so wie irgendein Signal, z.B. ein elektrisches, optisches oder Mikrowellensignal.
  • Andere Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden Beschreibung im Zusammenhang mit den begleitenden Zeichnungen ersichtlich werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das eine beispielhafte Konfiguration eines Mikroprozessors gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • 2 ist ein Diagramm, das einen Fluss einer Verarbeitung zum Chiffrieren und Speichern von Daten zeigt, die durch den Mikroprozessor von 1 ausgeführt werden soll.
  • 3 ist ein Diagramm, das einen Fluss einer Verarbeitung zum Wiedergewinnen gespeicherter Daten zeigt, die durch den Mikroprozessor von 1 ausgeführt werden soll.
  • 4 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration eines Prozessorkerns in dem Mikroprozessor von 1 zeigt.
  • 5 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration einer arithmetischen Logikoperationseinheit in dem Prozessorkern von 4 zeigt.
  • 6 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration eines Systemregisters in dem Prozessorkern von 4 zeigt.
  • 7 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration eines Anweisungs-Caches in dem Mikroprozessor von 1 zeigt.
  • 8 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration eines Daten-Caches in dem Mikroprozessor von 1 zeigt.
  • 9 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration einer Anweisungs-Dechiffrier-Verarbeitungseinheit in dem Mikroprozessor von 1 zeigt.
  • 10 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration einer Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit in dem Mikroprozessor von 1 zeigt.
  • 11 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration einer Schlüsselpaar-Verwaltungseinheit in dem Mikroprozessor von 1 zeigt.
  • 12 ist ein Flussdiagramm, das eine Verarbeitung zeigt, die durch den Mikroprozessor von 1 zur Zeit eines Unterbrechungsauftretens ausgeführt werden soll.
  • 13 ist ein Flussdiagramm, das Details einer Abweichungsverarbeitungsroutine in der in 12 gezeigten Verarbeitung zeigt.
  • 14 ist ein Flussdiagramm, das Details eines Kontext-Wiedergewinnungsschrittes in der in 12 gezeigten Verarbeitung zeigt.
  • 15 ist ein Blockdiagramm, das eine beispielhafte detaillierte Konfiguration einer Schlüsselpaar-Tabelle in einem Mikroprozessor gemäß der zweiten Ausführungsform der vorliegenden Erfindung zeigt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Mit Verweis auf 1 bis 14 wird die erste Ausführungsform eines Mikroprozessors gemäß der vorliegenden Erfindung im Detail beschrieben werden. In der vorliegenden Erfindung wird vorausgesetzt, dass der Mikroprozessor das chiffrierte Programm in der Multitask-Umgebung ausführt.
  • 1 zeigt eine funktionale Konfiguration des Mikroprozessors 101 gemäß der ersten Ausführungsform. Der Mikroprozessor 101 hat einen Prozessorkern 201 zum Ausführen des Programms, einen Anweisungs-Cache 301 zum temporären Speichern von Anweisungssequenzen des Programms, einen Daten-Cache 401 zum temporären Speichern einer Datenverarbeitung durch das Programm, eine Anweisungsdechiffrier-Verarbeitungseinheit 501 zum Dechiffrieren des chiffrierten Programms zur Zeit einer Ausführung und eines Lieferns des dechiffrierten Programms an den Prozessorkern 201, eine Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 zum Chiffrieren oder Dechiffrieren von durch das dechiffrierte Programm ausgeführten Daten, und eine Schlüsselpaar-Verwaltungseinheit 701.
  • Für die Dechiffrierung des chiffrierten Programms bei der Anweisungs-Dechiffrier-Verarbeitungseinheit 501 wird ein durch das Kryptosystem für einen öffentlichen Schlüssel gegebener Programmschlüssel verwendet. Außerdem wird für die Chiffrierung/Dechiffrierung der durch das Programm verarbeiteten Daten ein in Zuordnung zu dem Programmschlüssel erzeugter Datenschlüssel verwendet. Ein Merkmal der ersten Ausführungsform ist, dass die Schlüsselpaar-Verwaltungseinheit 701 eine Schlüsselpaar-Tabelle zum Speichern dieses Programmschlüssels und Datenschlüssels in einer Eineindeutigkeit als ein Paar hat, wie unten im Detail beschrieben werden wird.
  • Außerdem enthält der Prozessorkern 201 ein Systemregister 210 und eine Registerdatei 230. Das Systemregister 210 gibt eine Marke (Identifizierer) zum Identifizieren des Schlüsselpaares für das aktuell ausgeführte Programm an. Die Registerdatei 230 speichert die Programmdaten oder die verarbeiteten Daten zusammen mit einer Marke des entsprechenden Schlüsselpaares. Diese Funktionen werden unten in weiterem Detail beschrieben werden.
  • Der Mikroprozessor 101 hat außerdem einen Prozessorbus 102 und eine externe Busschnittstelle 103, durch die der Mikroprozessor 101 mit einem Speicher oder Peripheriegeräten verbunden ist, die außerhalb des Mikroprozessors 101 bereitgestellt sind.
  • Der Prozessorkern 201, der Anweisungs-Cache 301 und der Daten-Cache 401 befinden sich innerhalb eines geschützten Bereiches 104, der durch eine gestrichelte Linie in 1 angegeben ist. Der geschützte Bereich 104 ist ein Bereich, der von dem äußeren oder dem OS geschützt ist, und Daten werden in Klartextformen innerhalb dieses Bereiches gehandhabt. Andererseits sind, außerhalb des geschützten Bereichs 104, zu verbergende Daten immer chiffriert. Wenn die chiffrierten Daten von außerhalb des geschützten Bereichs 104 in das Innere des geschützten Bereiches 104 gelesen werden, werden sie durch die Anweisungsdechiffrier-Verarbeitungseinheit 501 dechiffriert, wenn sie als Anweisung gelesen werden sollen, oder sie werden durch die Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 dechiffriert, wenn sie als Daten gelesen werden sollen. Der Programmschlüssel und der Datenschlüssel, zur Dechiffrierung zu verwenden, werden von der Schlüsselpaar-Verwaltungseinheit 701 geliefert.
  • Wie oben erwähnt ist ein Merkmal der ersten Ausführungsform, dass die dechiffrierten Daten in Klartextform mit einer Marke zum Identifizieren des bei der Dechiffrierungsverarbeitung verwendeten Schlüsselpaares angefügt sind, als ein Attribut, das angibt, dass die kryptographische Operation angewendet wurde, und in der Registerdatei 320 innerhalb des Prozessorkerns 201 gespeichert sind.
  • 2 und 3 zeigen einen Umriss der Verarbeitung durch den Mikroprozessor 101.
  • Wie in 2 gezeigt, wird zuerst, bei dem Schritt S21, die Anweisungssequenz des in dem Außenspeicher 901 außerhalb des Mikroprozessors 101 gespeicherten chiffrierten Programms durch Verwenden des Programmschlüssels des Schlüsselpaares (auf das hier im Nachfolgenden als ein effektives Schlüsselpaar verwiesen wird) entschlüsselt, das für das aktuell ausgeführte Programm wirksam ist. Das aktuelle wirksame Schlüsselpaar ist ein Schlüsselpaar, dessen Marke durch das Systemregister 210 angegeben ist, so dass es gemäß dieser Marke festgestellt werden kann. In dem Beispiel von 2 ist der Markenwert des effektiven Schlüsselpaares #1. Gemäß diesem Markenwert wird der der Marke #1 entsprechende Programmschlüssel von der Schlüsselpaar-Tabelle 710 der Schlüsselpaar-Verwaltungseinheit 701 ausgelesen.
  • Als Nächstes wird, bei dem Schritt S23, das Programm gemäß der dechiffrierten Anweisungssequenz ausgeführt, die nun in der Klartextform ist. Die Daten, die als ein Ergebnis der Ausführung des Programms erhalten sind, d.h. der betrieblichen Manipulation, werden mit einer Schlüsselpaarmarke angefügt und in die Registerdatei 230 gespeichert.
  • Als Nächstes, bei dem Schritt S25, werden die Daten in der Registerdatei an den Daten-Cache 401 transferiert.
  • Schließlich, bei dem Schritt S27, wird der Datenschlüssel von der Schlüsselpaar-Tabelle 710 gemäß der den Daten angehängten Schlüsselpaarmarke ausgelesen, werden die Daten durch Verwenden des Datenschlüssels chiffriert, und werden die chiffrierten Daten an den Außenspeicher bzw. den externen Speicher transferiert (gesichert).
  • 3 zeigt die Wiedergewinnungsverarbeitung für die gesicherten Daten.
  • Zuerst wird die für die Wiedergewinnung zu verwendende Schlüsselpaarmarke spezifiziert, dann werden, bei dem Schritt S31, die chiffrierten Daten von dem Außenspeicher 901 in den Mikroprozessor 101 gelesen, wird der durch die Schlüsselpaarmarke spezifizierte Datenschlüssel von der Schlüsselpaar-Tabelle 710 ausgelesen, werden die chiffrierten Daten durch Verwenden des Datenschlüssels dechiffriert, und werden die dechiffrierten Daten in den Daten-Cache 401 innerhalb des geschützten Bereiches 104 gecachet bzw. zwischengespeichert.
  • Als Nächstes werden, bei dem Schritt S33, die Klartextdaten auf dem Daten-Cache 401 an die Registerdatei 201 transferiert. Dann wird, bei dem Schritt S35, die betriebliche Manipulation bezüglich der Daten auf der Registerdatei 230 fortgesetzt.
  • 4 bis 11 zeigen detaillierte Konfigurationen von Bestandselementen des Mikroprozessors 101, der die wie oben beschriebene Operation ausführt. Mit Verweisen auf 4 bis 11 wird nun die Konfiguration jedes Bestandselementes und der Schutzfunktion basierend auf der Schlüsselpaarmarke im Detail beschrieben werden.
  • 4 zeigt eine beispielhafte detaillierte Konfiguration des Prozessorkerns 201. In dem Folgenden wird ein beispielhafter Fall eines Hinzufügens von Modifizierungen gemäß der vorliegenden Erfindung an eine Architektur des durch MIPS Technologies, Inc. hergestellten RISC-Typ-Mikroprozessors beschrieben werden. Genauer genommen basiert, in dem folgenden Beispiel, die Prozessor-Pipeline-Struktur auf dem R3000-Typ von MIPS Technologies, Inc., und die Anweisungsmenge basiert auf der MIPS-I- oder MIPS-IV-Anweisungsmenge von MIPS-Technologies, Inc., aber die Anwendbarkeit der vorliegenden Erfindung ist nicht auf den Prozessor von MIPS Technologies, Inc. beschränkt.
  • Man beachte, dass die fünf Pipeline-Stufen IF (instruction fetch bw. Anweisungsholen), RF (register read bzw. Registerlesen), EX (execution bzw. Ausführung), MEM (memory access bzw. Speicherzugriff) und WB (write back bzw. Zurückschreiben) des Prozessorkerns 201 von 4 bei dem Abschnitt am weitesten links von 4 angegeben sind.
  • Der Prozessorkern 201 enthält das Systemregister 210, einen Anweisungshol-Decodierer 200, die Registerdatei 230, eine Operationseinheit 250, und eine Speicherzugriffseinheit 260.
  • Das Systemregister 210 basiert auf dem Systemregister, das CPO von MIPS R3000 entspricht, zu dem die Verwaltungsfunktion für eine virtuelle Adresse und die Abweichungsverarbeitungsfunktion hinzugefügt sind, und ein Register für eine wirksame Schlüsselpaarmarke 211 zum Speichern einer Marke des wirksamen Schlüsselpaares ist bereitgestellt, das den aktuell ausgeführten Prozess spezifiziert. Und zwar speichert das Register für eine wirksame Schlüsselpaarmarke 211 eine Marke, die das Schlüsselpaar angibt, das für die Chiffrierverarbeitung des aktuell ausgeführten wirksamen Programms und der durch dieses Programm verarbeiteten Daten verwendet werden soll.
  • Der Anweisungshol-Decodierer 220 enthält einen Programmzähler (PC, Program Counter) 221, einen Anweisungspuffer 222, und eine Anweisungsausführungs-Steuereinheit 223. Unter der Steuerung der Anweisungsausführungs-Steuereinheit 223 wird die Anweisung zu dem Anweisungspuffer 222 von einer Adresse gebracht, die durch den Programmzähler 221 angegeben ist, und das Signal (nicht gezeigt) zum Steuern jedes Datenpfades wird durch Decodieren der gebrachten bzw. geholten Anweisung erzeugt.
  • In der ersten Ausführungsform werden nicht nur eine Anweisungsadresse, sondern auch ein Wert des Registers für eine wirksame Schlüsselpaarmarke 211, die den aktuell ausgeführten Prozess angibt, als Parameter einer Leseanforderung bezüglich des Anweisungs-Caches 301 gesendet.
  • Jedes Register 231 in der Registerdatei 230 hat ein Registerdatenteilstück 231-1 als auch ein Registermarkenteilstück 231-2, das charakteristisch für die vorliegende Erfindung ist. Das Registermarkenteilstück 231-2 speichert die Schlüsselpaarmarke, die das Schutzattribut basierend auf der Chiffrierung in diesem Register gespeicherter Daten angibt.
  • Bei der RF-(register read bzw. Registerlesen)-Phase der Anweisungsausführung-Pipeline wird der Inhalt des Registerdatenteilstücks 231-1 auf einen Operandenbus 240 gegeben, und der Inhalt des Registermarkenteilstücks 231-2 wird auf einen Operandenmarkenbus 241 gegeben.
  • Eine arithmetische Logikoperationseinheit 250 entspricht der EX-Phase der Anweisungsausführungs-Pipeline. In der ersten Ausführungsform hat die arithmetische Logikoperationseinheit 250 eine Markenbeurteilungseinheit 252 zum Beurteilen des Operanden der Operation zusätzlich zu einem gewöhnlichen Operator (Operationsdatenpfad) 251.
  • Wie in 5 gezeigt, hat die Markenbeurteilungseinheit 252 eine Funktion zum Bestimmen, ob die Ausführung der Operation zugelassen wird oder nicht, gemäß wenigstens drei Werten, die einen Typ der Operation, einen Wert der dem Operanden der Operation angefügten Marke, und die wirksamen Schlüsselpaarmarke enthalten. Der Operationstyp wird von der Anweisungsausführungs-Steuereinheit 223 in die Markenbeurteilungseinheit 252 eingegeben, und der Markenwert wird von dem Markenteilstück 231-2 der Registerdatei 230 eingegeben. Die aktuelle wirksame Schlüsselpaarmarke wird von dem Register für eine wirksame Schlüsselpaarmarke 211 des Systemregisters 210 eingegeben. Wenn durch die Markenbeurteilungseinheit 252 beurteilt wird, dass die Ausführung nicht zugelassen wird, wird der Prozessorkern 201 eine Abweichung bzw. Ausnahme verursachen, dass nicht fortgesetzt werden kann, und die Anweisung wird abgebrochen werden. Wenn die Markenbeurteilungseinheit 252 beurteilt, dass die Ausführung zugelassen wird, und wenn das Ausführungsergebnis für diese Anweisung existiert, werden Daten dieses Ausführungsergebnisses auf einen Ergebnisbus 280 gegeben werden, und eine Schlüsselpaarmarke dieses Ausführungsergebnisses wird auf einen Ergebnismarkenbus 281 gegeben werden.
  • Die Speicherzugriffseinheit 260 entspricht der EX/MEM-Phase der Anweisungsausführungs-Pipeline. In der ersten Ausführungsform hat die Speicherzugriffseinheit 260 eine Datentransfer-Markenbeurteilungseinheit 262 zusätzlich zu einer gewöhnlichten Adressenberechnungseinheit 261.
  • Die Speicherzugriffseinheit 260 gibt nicht nur eine durch die Adressenberechnungseinheit 261 erhaltene Datenadresse, sondern auch entweder den dem Operanden angefügten Markenwert oder den wirksamen Speichermarkenwert als Parameter einer Lese/Schreibanforderung bezüglich des Daten-Caches 401 aus. Eine Markenbeurteilungseinheit 262 hat eine Funktion zum Bestimmen, ob die Ausführung des Transfers zugelassen wird oder nicht gemäß wenigstens vier Werten, die eine Datentransferquelle, ein Datentransferziel, einen Wert der an die zu transferierenden Daten angefügten Marke, und die wirksame Schlüsselpaarmarke enthalten. Wenn die Markenbeurteilungseinheit 262 beurteilt, dass die Ausführung nicht zugelassen wird, wird der Prozessorkern 201 eine Abweichung bzw. Ausnahme verursachen, dass nicht fortgesetzt werden kann, und diese Anweisung wird unterbrochen werden. Wenn die Markenbeurteilungseinheit 262 beurteilt, dass die Ausführung zugelassen wird, und wenn das Ausführungsergebnis für diese Anweisung existiert, werden Daten dieses Ausführungsergebnisses auf den Ergebnisbus 208 gegeben werden, und eine Schlüsselpaarmarke dieses Ausführungsergebnisses wird auf den Ergebnismarkenbus 281 gegeben werden.
  • Eine Schlüsselpaar-Verwaltungseinheit-Schnittstelle 270 zum Steuern einer unten zu beschreibenden Schlüsselpaar-Verwaltungseinheit 701 ist eindeutig für die vorliegende Erfindung.
  • Bei der WB-Stufe der Anweisungsausführungs-Pipeline werden die Daten auf dem Ergebnisbus 280 und die Schlüsselpaarmarke auf dem Ergebnismarkenbus 281 zurück an die Registerdatei 230 geschrieben, wenn erforderlich. 6 zeigt eine Konfiguration des Systemregisters 210 zum Angeben der aktuellen wirksamen Schlüsselpaarmarke. Das Register für eine wirksame Schlüsselpaarmarke 211 gibt eine Marke des wirksamen Schlüsselpaares des aktuell ausgeführten Programms an.
  • In der ersten Ausführungsform sind zwei Markenwerte unter den Schlüsselpaarmarkenwerten für die speziellen Zwecke reserviert. Einer ist ein Markenwert zum Angeben, dass die Chiffrierverarbeitung nicht ausgeführt werden sollte (auf eine Marke mit diesem Markenwert wird als eine Nullmarke verwiesen werden). Bei der Anweisungs-Dechiffrier-Verarbeitungseinheit 501 und der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 werden Daten (oder eine Anweisung) transferiert ohne Ausführen der Chiffrieroperation, wenn die Nullmarke (tag-0) als die Schlüsselpaarmarke angegeben ist. Ein anderer ist ein Markenwert (tag-K), der für die Verwendung reserviert ist, wenn der Kernel-Modus als der Operationsmodus des Prozessors ausgewählt ist. Für das diesem Markenwert entsprechende Schlüsselpaar sind der Programmschlüssel und der Datenschlüssel eines in dem Kernel-Modus (der das Betriebssystem in dem gewöhnlichen Computersystem ist) auszuführenden Prozesses registriert.
  • Das Register für eine wirksame Schlüsselpaarmarke 211 hat ein Kernel-Modus-Schlüsselpaarmarken-Register 211-1 zum Speichern der Schlüsselpaarmarke in dem Kernel-Modus und ein Benutzer-Modus-Schlüsselpaarmarken-Register 211-2 zum Speichern der Schlüsselpaarmarke in dem Benutzer-Modus, von denen einer gemäß dem wirksamen Modus des Prozessors zu einer Zeit ausgewählt werden wird zum Ausgeben der Schlüsselpaarmarke (wirksame Schlüsselpaarmarke), die in der folgenden Verarbeitung wirksam ist.
  • 7 zeigt eine beispielhafte detaillierte Konfiguration des Anweisungs-Caches 301. Der Anweisungs-Cache 301 umfasst Arrays einer Vielzahl von Anweisungs-Cache-Leitungen 302. Die Cache-Leitung der vorliegenden Erfindung führt die Suche einer Adresse in dem Cache aus, und jede Anweisungs-Cache-Leitung hat einen Schlüsselpaarmarkenbereich 302-1 zum Speichern der Schlüsselpaarmarke, die das Schutzattribut der Programmdaten angibt, die in dieser Leitung gecachet bzw. zwischengespeichert sind, d.h. den auf die gecachten Programmdaten anzuwendenden Programmschlüssel, welches das charakteristische Merkmal der vorliegenden Erfindung ist. Die Größe des Schlüsselpaarmarkenbereichs 302-1 kann solch eine Anzahl von Bits umfassen, die sämtliche Einträge der unten zu beschreibenden Schlüsselpaar-Tabelle indizieren können. Zum Beispiel in dem Fall eines Verwendens der Schlüsselpaarmarke mit 64 Einträgen, ist der Schlüsselpaarmarken-Bereich 302-1 mit 6-Bitgröße ausreichend. Man beachte, dass jede Cache-Leitung außerdem mit Bereichen zum Angeben einer Adresse bereitgestellt ist, die den Ort der Programmdaten in dem Außenspeicher bzw. externen Speicher und den Zustand angibt.
  • 8 zeigt eine beispielhafte detaillierte Konfiguration des Daten-Caches 401. Der Anweisungs-Cache 401 umfasst Arrays einer Vielzahl von Daten-Cache-Leitungen 402. Jede Daten-Cache-Leitung hat außerdem einen Schlüsselpaarmarken-Bereich 402-1 zum Speichern der Schlüsselpaarmarke, die das Schutzattribut der verarbeiteten Daten angibt, die in dieser Leitung gecachet bzw. gespeichert sind, d.h. den Datenschlüssel, der auf die gecacheten verarbeiteten Daten angewendet werden soll. Man beachte, dass jede Cache-Leitung auch mit Bereichen zum Angeben einer Adresse in dem Außenspeicher und seinem Zustand ähnlich wie der Anweisungs-Cache 301 bereitgestellt ist.
  • 9 zeigt eine beispielhafte detaillierte Konfiguration der Anweisungs-Dechiffrier-Verarbeitungseinheit 501 und ihre Operation. Die Anweisungs-Dechiffrier-Verarbeitungseinheit 501 umfasst ein Befehlsdatenregister 502 zum temporären Speichern der Programmdaten, die das Dechiffrier-Verarbeitungsziel sind, und ihres Chiffrierschlüssels, eine Dechiffriereinheit 503 zum Ausführen der Dechiffrierung mit Verwenden des Geheimschlüssels, und eine Steuereinheit 504 zum Steuern des Befehlsdatenregisters 502 und der Dechiffriereinheit 503.
  • Die Anweisungs-Dechiffrier-Verarbeitungseinheit 501 empfängt zuerst eine Leseanforderung von dem Anweisungs-Cache 301. Die an dieser Stelle zu verwendenden Parameter sind die Adresse in dem Außenspeicher und die Schlüsselpaarmarke zum Spezifizieren des Chiffrierschlüssels (Programmschlüssel), der auf die ausgelesenen Programmdaten angewendet werden soll. Dann wird eine Leseanforderung an den Außenspeicher durch Verwenden der Adresse als ein Parameter ausgestellt. Außerdem wird eine Programmschlüssel-Leseanforderung an die Schlüsselpaar-Verwaltungseinheit 701 durch Verwenden der Schlüsselpaarmarke als ein Parameter ausgestellt.
  • Die chiffrierten Programmdaten von dem Außenspeicher und der Programmschlüssel von der Schlüsselpaar-Verwaltungseinheit 701, die in Ansprechen auf diese Leseanforderungen gesendet sind, werden in dem Befehlsdatenregister 502 gespeichert. Die Dechiffrierdateneinheit 503 dechiffriert die chiffriert Programmdaten durch Anwenden des Programmschlüssels auf die chiffrierten Programmdaten auf dem Befehlsdatenregister 502. Wenn die Dechiffrierung vollendet ist, werden die Klartextdaten an den Anweisungs-Cache 301 ausgegeben.
  • 10 zeigt eine beispielhafte detaillierte Konfiguration der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 und ihre Operation. Die Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 umfasst ein Befehlsdatenregister 602 zum temporären Speichern von Daten in der Klartextform oder der chiffrierten Form, die durch das Programm verarbeitet werden, eine Chiffrier/Dechiffriereinheit 603 zum Ausführen der Chiffrierung/Dechiffrierung mit Verwenden des Geheimschlüssels, und eine Steuereinheit 604 zum Steuern des Befehlsdatenregisters 602 und der Chiffrier/Dechiffriereinheit 603.
  • Die Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 empfängt zuerst eine Lese/Schreibanforderung von dem Daten-Cache 401. Die Leseanforderung wird nach der Unterbrechungsverarbeitung ausgestellt, zum Beispiel in dem Fall eines Wiedergewinnens der Daten, die in dem Außenspeicher temporär zu einer Zeit des Auftretens einer durch die Unterbrechung verursachten Abweichung gespeichert worden sind. Die Schreibanforderung wird zu einer Zeit des Auftretens der Störung ausgestellt, in dem Fall eines Speicherns der bis dahin verarbeiteten Daten in dem Außenspeicher durch Chiffrieren derer, um die Daten zu schützen.
  • Die Parameter der Leseanforderung sind die Adresse in dem Außenspeicher und die Schlüsselpaarmarke zum Spezifizieren des auf die ausgelesenen Daten anzuwendenden Chiffrierungsschlüssels.
  • Zuerst wird eine Leseanforderung an den Außenspeicher durch Verwenden der Adresse als ein Parameter ausgestellt. Außerdem wird eine Datenschlüssel-Leseanforderung an die Schlüsselpaar-Verwaltungseinheit 701 durch Verwenden der Schlüsselpaarmarke als ein Parameter ausgestellt. Die verarbeiteten Daten in der chiffrierten Form von dem Außenspeicher und die Schlüsseldaten von der Schlüsselpaar-Verwaltungseinheit 701, die in Ansprechen auf diese Leseanforderungen gesendet sind, werden in dem Befehlsdatenregister 602 gespeichert. Die Chiffrier/Dechiffriereinheit 603 dechiffriert die chiffrierten Daten durch Anwenden des Datenschlüssels auf die chiffrierten Daten auf dem Befehlsdatenregister 602. Wenn die Dechiffrierung vollendet ist, werden die Klartextdaten an den Daten-Cache 401 ausgegeben.
  • Andererseits sind die Parameter der Schreibanforderung die Adresse in dem Außenspeicher, zu welchem die verarbeiteten Daten geschrieben werden sollen (d.h., zu welchem die verarbeiteten Daten temporär gesichert werden sollen), die zu transferierenden Daten, und die Schlüsselpaarmarke zum Spezifizieren des auf die Daten anzuwendenden Chiffrierschlüssels.
  • Zuerst wird eine Datenschlüssel-Leseanforderung an die Schlüsselpaar-Verwaltungseinheit 701 durch Verwenden der Schlüsselpaarmarke als ein Parameter ausgestellt. Dann chiffriert die Chiffrier/Dechiffriereinheit 603 die Klartextdaten durch Anwenden des Datenschlüssels auf die Klartextdaten auf dem Befehlsdatenregister 602. Wenn die Chiffrierung vollendet ist, werden die chiffrierten Daten an den Außenspeicher ausgegeben.
  • 11 zeigt eine beispielhafte detaillierte Konfiguration der Schlüsselpaar-Verwaltungseinheit 701. Die Schlüsselpaar-Verwaltungseinheit 701 umfasst eine Prozessorkern-Schnittstelle 702, eine Anweisungs-Dechiffrier-Verarbeitungseinheit-Schnittstelle 703, eine Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit-Schnittstelle 704, die Schlüsselpaar-Tabelle 710, und eine Schlüsselpaar-Steuereinheit 720.
  • Die Schlüsselpaar-Tabelle 710 hat eine Vielzahl von Schlüsselpaar-Einträgen 711. Jedes Schlüsselpaar umfasst einen Programmschlüssel 711-1 und einen Datenschlüssel 711-2. Das Schlüsselpaar der vorliegenden Erfindung ist ein Index, der durch diese Schlüsselpaar-Arrays gebildeten Schlüsselpaar-Tabelle 710. Die Operationen der Schlüsselpaar-Tabelle 710 enthalten die folgenden drei Leseoperationen und eine Schreiboperation.
  • (1) Programmschlüssel-Lesen:
  • Dies ist die zwischen der Anweisungs-Dechiffrier-Verarbeitungseinheit 501 und der Schlüsselpaar-Verwaltungseinheit 701 auszuführende Operation. Dies ist die Leseoperation durch einen Anschluss, der mit der Anweisungs- Dechiffrier-Verarbeitungseinheit-Schnittstelle 703 verbunden ist, in welcher der Programmschlüssel des durch das Schlüsselpaar, das durch die Schlüsselpaarmarke (d.h. Index) in dem Register der Anweisungs-Dechiffrier-Verarbeitungseinheit 501 spezifiziert ist, ausgelesen und ausgegeben wird.
  • (2) Datenschlüssel-Lesen:
  • Dies ist die zwischen der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 und der Schlüsselpaar-Verwaltungseinheit 701 auszuführende Operation. Dies ist die Leseoperation durch einen Anschluss, der mit der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit-Schnittstelle 704 verbunden ist, in welcher der Datenschlüssel des Schlüsselpaares, das durch die Schlüsselpaarmarke (d.h. Index) in dem Register der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 spezifiziert ist, ausgelesen und ausgegeben wird.
  • (3) Schlüsselpaar-Lesen:
  • Dies ist die zwischen dem Prozessorkern 201 und der Schlüsselpaar-Verwaltungseinheit 701 auszuführende Operation. Dies ist die Leseoperation durch einen Anschluss, der mit der Schlüsselpaar-Steuereinheit 720 verbunden ist, in welcher sowohl der Programmschlüssel als auch der Datenschlüssel des durch die Schlüsselpaarmarke spezifizierten Schlüsselpaares ausgelesen und ausgegeben werden.
  • (4) Schlüsselpaar-Schreiben:
  • Dies ist die Schreiboperation durch einen Anschluss, der mit der Schlüsselpaar-Steuereinheit 720 verbunden ist, in welcher der Programmschlüssel und der Datenschlüssel, als Parameter gegeben, als das Schlüsselpaar auf der durch den Index spezifizierten Schlüsselpaar-Tabelle 710 gespeichert werden.
  • Die Schlüsselpaar-Steuereinheit 720 der Schlüsselpaar-Verwaltungseinheit 701 führt die folgenden drei Operationen gemäß Anforderungen von dem Prozessorkern 201 aus.
  • (1) Registrierung eines neuen Schlüsselpaares:
  • In dem Fall eines Ausführens eines neuen chiffrierten Programms gibt es einen Bedarf, ein Paar des Programmschlüssels zum Dechiffrieren dieses chiffrierten Programms und des Datenschlüssels zum Chiffrieren/Dechiffrieren der durch dieses Programm verarbeiteten Daten neu zu registrieren. Die Schlüsselpaar-Steuereinheit 720 empfängt die durch Chiffrieren des Programmschlüssels durch Verwenden des öffentlichen Schlüssels des Prozessors erhaltenen Programmschlüsseldaten und die für diesen Programmschlüssel zu verwendende Schlüsselpaarmarke von dem Prozessorkern 201. Die Programmschlüsseldaten werden in einem Schlüsselregistrierungsregister 721 gespeichert, während die Schlüsselpaarmarke als ein Index auf die Schlüsselpaar-Tabelle 710 verwendet wird.
  • Eine Chiffrier-Verarbeitungseinheit für einen öffentlichen Schlüssel 722 dechiffriert die Schlüsseldaten auf dem Schlüsselregistrierungsregister 721 durch Verwenden des Geheimschlüssels des Prozessors, und speichert die chiffrierten Schlüsseldaten in einen Programmschlüssel-Speicherungsbereich 724-1 eines Schlüsselpaarregisters 724. Außerdem erzeugt eine Datenschlüssel-Erzeugungseinheit 723 den Datenschlüssel durch Verwenden einer beliebigen Einrichtung, so wie einer Zufallszahlen-Erzeugungsfunktion, und speichert den erzeugten Datenschlüssel in einen Datenschlüssel-Speicherungsbereich 724-2 des Schlüsselpaarregisters 724. Wenn diese zwei Schlüssel in das Schlüsselpaarregister 724 gespeichert sind, registriert die Schlüsselpaar-Steuereinheit 720 ein neues Schlüsselpaar in die Schlüsselpaar-Tabelle 710 gemäß der Schlüsselpaar-Schreiboperation der Schlüsselpaar-Tabelle 710.
  • (2) Lesen eines existierenden Schlüsselpaares:
  • Die Schlüsselpaar-Steuereinheit 720 empfängt eine erforderliche Schlüsselpaarmarke von dem Prozessorkern 201. Diese Schlüsselpaarmarke wird als ein Index auf die Schlüsselpaar-Tabelle 710 verwendet werden. Die Schlüsselpaar-Tabelle 710 liest das durch den Index spezifizierte Schlüsselpaar durch ihre Leseoperation aus, und speichert das Ergebnis in das Schlüsselpaarregister 724 der Schlüsselpaar-Steuereinheit 720. Eine Schlüsselpaar-Chiffrier-Verarbeitungseinheit 725 chiffriert den Programmschlüssel 724-1 und den Datenschlüssel 724-2 in der Klartextform, gespeichert in dem Schlüsselpaarregister 724, als einzelne Daten durch Verwenden des Geheimschlüssels des Prozessors, und speichert das Ergebnis in ein chiffriertes Schlüsselpaarregister 726. Die Schlüsselpaar-Steuereinheit 720 gibt Daten auf dem chiffrierten Schlüsselpaarregister 726 an den Prozessorkern 201 aus.
  • (3) Schreiben eines existierenden Schlüsselpaares:
  • Die Schlüsselpaar-Steuereinheit 720 empfängt die Schlüsselpaarmarke und die Schlüsselpaardaten, in denen das Schlüsselpaar chiffriert ist durch den Geheimschlüssel des Prozessors, von dem Prozessorkern 201. Die Schlüsselpaardaten werden in das chiffrierte Schlüsselpaarregister 726 gespeichert, während die Schlüsselpaarmarke als ein Index auf die Schlüsselpaar-Tabelle 710 verwendet wird. Die Schlüsselpaar-Verwaltungseinheit 725 dechiffriert Daten auf dem chiffrierten Schlüsselpaarregister 726 durch Verwenden des Geheimschlüssels des Prozessors. Die resultierenden Klartextdaten werden in das Schlüsselpaarregister 724 als der Programmschlüssel und der Datenschlüssel gespeichert. Die Schlüsselpaar-Tabelle 710 schreibt das Schlüsselpaar auf dem Schlüsselpaarregister 724 durch ihre Schreiboperation.
  • Nun existiert, in dem Mikroprozessor der vorliegenden Erfindung, eine Vielzahl von Speichern zum internen Speichern von Daten. Zusätzlich gibt es auch externe Speicher bzw. Außenspeicher, auf die durch die externe Bus-Schnittstelle bzw. eine Schnittstelle für einen externen Bus 103 zuzugreifen ist. Unter ihnen wird auf die Speicher, die innerhalb des Mikroprozessors bereitgestellt sind, die Bereiche zum Speichern der Schlüsselpaarmarke haben (so wie das Systemregister 210, die Registerdatei 230 usw.), als "Innenspeicher" verwiesen werden. Unter den Innenspeichern wird auf die Speicher, die Cache-Speicher sind (so wie der Anweisungs-Cache 301, der Daten-Cache 401 usw.), als "Innen-Cache-Speicher" verwiesen werden. Andererseits wird auf die Speicher, die außerhalb des Prozessors bereitgestellt sind, oder Speicher, die innerhalb des Prozessors bereitgestellt sind, aber die keine Bereiche zum Speichern der Schlüsselpaarmarke haben, als "Außenspeicher" verwiesen werden.
  • Im Folgenden werden die Details der Datentransfers unter diesen Speichern beschrieben werden, wobei die Datentransfers zwischen Speichern in vier Fälle abhängig davon klassifiziert werden können, ob die Transferquelle und das Transferziel intern oder extern sind, mit (i) von einem Innenspeicher zu einem Innenspeicher, (ii) von einem Innenspeicher zu einem Außenspeicher, (iii) von einem Außenspeicher zu einem Innenspeicher und (iv) von einem Außenspeicher zu einem Außenspeicher.
  • Außerdem wird in dieser Ausführungsform der RISC-Typ-Prozessor vorausgesetzt, so dass die Datentransfers außerdem gemäß den Fällen der Datentransfers wie folgt klassifiziert werden können. Hierbei ist auch ein Weg zum Spezifizieren der Schlüsselpaarmarke angegeben, die das Transferziel zur Zeit des Transfers haben sollte.
  • (1) Datentransfer, der durch das Anweisungsholen durch den Anweisungshol-Decodierer 220 des Prozessorkerns 201 verursacht ist:
  • Die Schlüsselpaarmarke des Transferziels in diesem Fall ist die Marke des wirksamen Schlüsselpaares des aktuell ausgeführten Programms.
  • (2) Datentransfer, der durch die Ausführung einer Ladeanweisung oder einer Speicheranweisung bei der Speicherzugriffseinheit 260 des Prozessorkerns 201 verursacht ist:
  • Die Schlüsselpaarmarke des Transferziels in diesem Fall ist die Marke des wirksamen Schlüsselpaares des aktuell ausgeführten Programms. Jedoch werden, in der vorliegenden Erfindung, eine eine Ladeanweisung spezifizierende Marke und eine eine Speicheranweisung spezifizierende Marke, die die Schlüsselpaarmarke spezifizieren, die das Transferziel als ein Operand der Anweisung haben sollte, zu der Ladeanweisung und der Speicheranweisung von MIPS hinzugefügt. Das Anweisungsformat und die Art zum Spezifizieren des Operanden für diese Anweisungen sind beliebig.
  • (3) Datentransfer, der durch die Ausführung einer Anweisung bei der arithmetischen Logikoperationseinheit 250 des Prozessorkerns 201 verursacht ist:
  • In dem RISC-Typ-Prozessor kann nur das Register das Datentransferziel der Operationsanweisung sein, so dass der Datentransfer in diesem Fall nur der Datentransfer zwischen Registern auf der Registerdatei 230 sein kann. Die Schlüsselpaarmarke des Transferziels in diesem Fall ist die Marke des aktuell wirksamen Schlüsselpaares.
  • Als Nächstes wird ein Mechanismus zum Schützen von zu verbergenden Daten in dieser Ausführungsform beschrieben werden. Der Datenschutz ist bei der Markenbeurteilungseinheit 252 der arithmetischen Operationseinheit 250, der Markenbeurteilungseinheit 262 der Speicherzugriffseinheit 260, und der Anweisungsausführungs-Steuereinheit 223 realisiert. In irgendeiner derer wird gemäß den gemeinsamen Markenbeurteilungsregeln bestimmt, ob oder nicht der Datentransfer zugelassen wird. Die Kriterien für die Beurteilung enthalten (1) einen Identifizierer zum Spezifizieren der Datentransferquelle, (2) eine Schlüsselpaarmarke, die an die zu transferierenden Daten angefügt ist (auf die als "Datenmarke" verwiesen werden wird), und (3) eine Schlüsselpaarmarke, die das Transferziel haben sollte (auf welche als "Transferzielmarke" verwiesen werden wird).
  • Die minimal notwendigen Regeln für die auf den Datentransfer bezogene Markenbeurteilung sind wie unten aufgelistet. Es ist auch möglich, weitere Regeln in Form eines Verweigerns des Transfers gemäß dem Bedarf hinzuzufügen. Außerdem kann die Chiffrierverarbeitung in Verbindung mit dem Datentransfer angewendet werden, wenn erforderlich.
    • (1) Der Datentransfer wird zugelassen, wenn er der Datentransfer zwischen Innenspeichern ist, wo die Datenquelle der interne Cache ist, nur wenn die Datenmarke mit der Transferzielmarke übereinstimmt. Daten werden wie sie sind transferiert, und die Datenmarke wird dem Transferziel hinzugefügt.
    • (2) Der Datentransfer wird bedingungslos zugelassen, wenn er der Datentransfer zwischen Innenspeichern ist, wo die Transferquelle nicht der interne Cache ist, und die Datenmarke als die Transferzielmarke gesetzt ist.
    • (3) Der Datentransfer wird bedingungslos zugelassen, wenn er der Datentransfer von einem Innenspeicher an einen Außenspeicher ist. In diesem Fall werden Daten durch Verwenden des Chiffrierschlüssels (Datenschlüssel) des durch die Datenmarke spezifizierten Schlüsselpaares chiffriert. Und zwar werden, in dem Fall eines Transferierens von Daten von dem Innenspeicher an den Außenspeicher, die Daten durch Verwenden des Datenschlüssels des durch die Datenmarke spezifizierten Schlüsselpaares bei der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 zuerst chiffriert. Das Anweisungsholen wird für das Lesen alleine verwendet, und es gibt keine Operation zum Schreiben von Daten nach außen.
    • (4) Der Datentransfer wird bedingungslos zugelassen, wenn er der Datentransfer von einem Außenspeicher an einen Innenspeicher ist. In diesem Fall werden Daten durch Verwenden des Chiffrierschlüssels des durch die Transferzielmarke spezifizierten Schlüsselpaares dechiffriert. Und zwar werden, in dem Fall eines Transferierens von Daten von dem Außenspeicher an den Innenspeicher, wenn er der durch das Anweisungsholen verursachte Datentransfer ist, die Daten durch Verwenden des Programmschlüssels des durch die Transferzielmarke spezifizierten Schlüsselpaares über die Anweisungs-Verarbeitungseinheit 501 chiffriert. Wenn er der durch irgendetwas anderes als das Anweisungsholen verursachte Datentransfer ist, werden die Daten durch Verwenden des Datenschlüssels des durch die Transferzielmarke spezifizierten Schlüsselpaares über die Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit 601 dechiffriert.
    • (5) Der Prozessor dieser Ausführungsform wird nicht involviert sein, wenn es der Datentransfer zwischen Außenspeichern ist. Folglich wird der Datentransfer zwischen Außenspeichern ähnlich wie in dem Stand der Technik ausgeführt werden.
  • Als Nächstes wird das Kontext-Umschalten, das die Grundverarbeitung des Betriebssystems (OS, Operating System) ist, mit Verweis auf 12 bis 14 für einen beispielhaften Fall einer Verarbeitung mit Verwenden der oben beschriebenen Schutzfunktion beschrieben werden. Wie in dem Obigen wird der beispielhafte Fall eines Verwendens des R3000-Typ-Prozessors der MIPS-Technologie unten beschrieben werden.
  • Hierbei wird angenommen, dass das chiffrierte Programm "program-1" in dem Benutzermodus ausgeführt wird, bei dem Schritt S1201. Der Programmschlüssel in "progkey-1" zum Dechiffrieren dieses Programms und der Datenschlüssel "datakey-1", der zur Zeit eines neuen Registrierens des Programmschlüssels erzeugt ist, werden als das Schlüsselpaar in der Schlüsselpaar-Tabelle 710 gespeichert. Dieses Schlüsselpaar wird durch die Schlüsselpaarmarke "tag-1" identifiziert.
  • Dann nehme man an, dass eine Abweichung bzw. Ausnahme in dem Prozessor aus Gründen wie beispielsweise einer Unterbrechung von einer externen Quelle auftritt. In diesem Fall sichert der Prozessor den aktuellen Wert des Programmzählers an das Abweichungswiedergewinnungsregister bei dem Schritt S1203. An dieser Stelle wird auch die wirksame Schlüsselpaarmarke in das Abweichungswiedergewinnungsregister gespeichert. Dann wird der Operationsmodus des Prozessors von dem Benutzer-Modus zu dem Kernel-Modus bei dem Schritt S1205 umgeschaltet. Der Markenwert wird von dem Markenwert des wirksamen Schlüsselpaars zu dem Markenwert "tag-K" umgeschaltet, der für den Kernel-Modus reserviert ist. Durch Umschalten des Betriebsmodus und des Markenwertes wird die Abweichungsverarbeitungsroutine, die als ein Teil des OS bereitgestellt ist, bei dem Schritt S1207 aktiviert. Wenn die Abweichungsverarbeitungsroutine beendet ist, wird der Betriebsmodus wieder zu dem Benutzer-Modus umgeschaltet, um den Kontext bei dem Schritt S1209 wiederzugewinnen.
  • 13 zeigt Details der Abweichungsverarbeitungsroutine des Schrittes S1207. Zuerst wird eine Speicheranweisung zum Speichern des Kontextes des Programms, das ausgeführt wurde, wenn die Abweichung auftrat, d.h. der Kontext der Registerdatei 230, in den externen Speicher bei dem Schritt S1301 ausgeführt. Außerdem wird das durch die gespeicherte wirksame Schlüsselpaarmarkierung (tag-1) spezifizierte Schlüsselpaar von der Schlüsselpaar-Verwaltungseinheit 701 an die Registerdatei 230 (durch die Operation zum Lesen eines existierenden Schlüsselpaars) bei dem Schritt S1303 ausgelesen. Man beachte, dass die an die Registerdatei 230 ausgelesenen Schlüsselpaardaren mit tag-K angefügt wird, weil sie Daten des OS sind. Die ausgelesenen Schlüsselpaardaten werden dann von der Registerdatei 230 an den Speicher bei dem Schritt S1305 transferiert.
  • In dieser Reihe von Operationen, wenn das OS die arithmetische Logikoperation bezüglich der Daten in dem Benutzer-Modus (an den tag-1 angefügt ist) unsauber ausführt, wird die Operation wegen der oben beschriebenen operationsbeschränkenden Bedingung nicht zugelassen werden. Andererseits ist der Transfer der Daten in dem Benutzer-Modus an das Äußere der durch die Datentransfer beschränkende Bedingung zugelassene Datentransfer. An dieser Stelle wird der Kontext des Benutzers außerhalb der Registerdatei 230 gesichert, aber ob er bei dem Daten-Cache (Innenspeicher) gesichert wird oder bei dem Außenspeicher gesichert wird, hängt von dem Zustand des Daten-Caches ab. Man beachte jedoch, dass das Sichern des Kontextes von der Registerdatei 320 bereits von einem Blickpunkt der Operation des OS vollendet ist. Dann wird bei dem Schritt S1307 die Unterbrechungsverarbeitung ausgeführt.
  • 14 zeigt die Benutzerkontext-Wiedergewinnungsverarbeitung (d.h., das Fortführen des Programms), nachdem die Abweichungsverarbeitungsroutine vollendet ist. Zuerst wird das in dem Speicher gesicherte Schlüsselpaar von dem Speicher als Daten des OS bei dem Schritt S1401 geladen. Dann wird dieses Schlüsselpaar als das Schlüsselpaar, tag-1 entsprechend, in der Schlüsselpaar-Tabelle 710 (durch die Operation zum Schreiben eines existierenden Schlüsselpaares) bei dem Schritt S1403 gespeichert. Als Nächstes wird der in dem Speicher gesicherte Kontext an die Registerdatei 230 bei dem Schritt S1405 wiedergewonnen. An dieser Stelle wird die Transferzielmarken-angehängte Ladeanweisung ausgeführt, und tag-1 wird als die Transferzielmarke spezifiziert. Außerdem werden der wiederzugewinnende Programmzählerwert und die wirksame Schlüsselpaarmarke (tag-1) in das Abweichungswiedergewinnungsregister bei dem Schritt S1407 gespeichert. Schließlich wird der Übergang zu dem Benutzer- Modus getätigt durch Verwenden der Abweichungswiedergewinnungsanweisung (ERET-Anweisung in MIPS-IV) bei dem Schritt S1409, und dieses vollendet die Kontext-Wiedergewinnung. Der Datentransfer in dieser Reihe von Operationen ist auch der durch die oben beschriebene Datentransfer-beschränkende Bedingung zugelassene Datentransfer.
  • Die Tatsache, dass mit tag-1 angefügte Daten zu Zeiten des Kontext-Sicherns und Wiedergewinnens geschützt sind, kann wie folgt bestätigt werden. Während der Ausführung mit Verwenden der anderen Schlüsselpaarmarkierung als tag-1 als die wirksame Schlüsselpaarmarkierung können Daten mit tag-1 erstens nicht ein Ziel der Operation gemäß der Datentransfer-beschränkenden Bedingung sein. Während der Ausführung des Programms, das durch Verwenden des durch tag-1 spezifizierten Programmschlüssels dechiffriert ist, ist der Wert der wirksamen Schlüsselpaarmarkierung andererseits tag-1, so dass das OS die Verarbeitung innerhalb des Mikroprozessors nicht feststellen kann. Wenn die ausgeführten Daten an den Außenspeicher durch die Unterbrechung oder Ähnliches transferiert werden, werden die Daten durch Verwenden des Datenschlüssels des durch tag-1 spezifizierten Schlüsselpaares chiffriert, und dieser Datenschlüssel kann möglicherweise nicht ohne Kenntnis des Geheimschlüssels des Mikroprozessors festgestellt werden. Zur Zeit der Kontextwiedergewinnung werden Daten außerdem durch die Markenangefügte Ladeanweisung wiedergewonnen, und diese Marke ist unterschiedlich von der wirksamen Schlüsselpaarmarke des OS, so dass ein Zugriff von dem OS nicht zugelassen werden wird. Umgekehrt, selbst wenn der wirksame Schlüssel des OS selbst geheim auf tag-1 geändert wird, die die Schlüsselpaarmarkierung des wiedergewonnenen Benutzerkontextes ist, würde die eigene Anweisungssequenz durch Verwenden des Programmschlüssels dechiffriert werden, der dem OS unbekannt ist, so dass das OS die unerwarteten Anweisungen ausführen müsste.
  • Durch Handhaben des Programmschlüssels und des Datenschlüssels als untrennbares Schlüsselpaar wird es auf diese Weise möglich, die Geheimdaten sogar vor dem in dem privilegierten Modus ausgeführten Programm zu verbergen.
  • Mit Verweis auf 15 wird nun die zweite Ausführungsform eines Mikroprozessors gemäß der vorliegenden Erfindung im Detail beschrieben werden.
  • 15 zeigt eine Konfiguration einer Schlüsselpaar-Tabelle 810, die in dem Mikroprozessor gemäß der zweiten Ausführungsform der vorliegenden Erfindung verwendet werden soll. Die oben beschriebene erste Ausführungsform verwendet ein Verfahren zum Handhaben eines Programmschlüssels und eines Datenschlüssels in einer Eineindeutigkeitsbeziehung, wohingegen die zweite Ausführungsform ein Verfahren zum Handhaben eines Programmschlüssels und einer Vielzahl von Datenschlüsseln in Zuordnung verwendet.
  • In der Multitask-Umgebung kann es Fälle geben, wo unterschiedliche Typen von Datenverarbeitungen für dasselbe eine Programm ausgeführt werden sollen. In solchen Fällen gibt es nur einen Dechiffrierungsschlüssel des Programms (Programmschlüssel), aber es gibt separate Datenschlüssel zum Chiffrieren/Dechiffrieren der verarbeiteten Daten. Wenn jeder dieser separaten Datenschlüssel mit dem Programm gepaart und separat gespeichert wird, würde eine riesige Speicherkapazität erforderlich sein.
  • Aus diesem Grund sind, in der zweiten Ausführungsform, der Index des Programmschlüssels und der Index des Datenschlüssels im Paar gespeichert, während der Programmschlüssel und der Datenschlüssel separat gespeichert sind.
  • 15 zeigt eine beispielhafte Konfiguration der Schlüsselpaar-Tabelle 810 der zweiten Ausführungsform, die eine Schlüsseltabelle 820 zum Speichern der Schlüssel selbst und eine Schlüsselpaar-Nachschlagtabelle 830 umfasst, die durch Indizes zum indirekten Nachschlagen der Schlüssel gebildet ist.
  • Die Schlüsseltabelle 820 ist durch Arrays von Einträgen gebildet, in denen der Programmschlüssel und die Datenschlüssel separat eingetragen sind. Andererseits gibt die Schlüsselpaar-Nachschlagtabelle 830 die Schlüsselpaare an, aber anstelle eines direkten Speicherns der Schlüsselpaare, ist sie durch den Index 831-1 des Programmschlüssels und den Index des Datenschlüssels 831-2 gebildet. Mit Verwenden dieser Indizes wird es möglich, ein bestimmtes Programm und eine Vielzahl von durch dieses Programm zu verarbeitenden Daten zu spezifizieren. Zum Beispiel können, in dem Beispiel von 15, diese Indizes verwendet werden, zum Kombinieren von durch Verwenden des Datenschlüssels #4 zu chiffrierenden/dechiffrierenden Daten und durch Verwenden des Datenschlüssels #5 zu chiffrierenden/dechiffrierenden Daten mit demselben durch Verwenden des Programmschlüssels #3 zu dechiffrierenden Programm.
  • Die Operationen dieser Schlüsseltabelle 820 enthalten die folgende Leseoperation und Schreiboperation.
  • (1) Schlüssellesen:
  • Der gemeinsame Schlüssel des Schlüsseleintrags, der durch den Index spezifiziert ist, der als ein Parameter gegeben ist, wird von der Schlüsseltabelle 820 ausgelesen.
  • (2) Schlüsselschreiben:
  • Zuerst wird ein nicht verwendeter Schlüsseleintrag zugeteilt. Dann wird der als ein Parameter gegebene gemeinsame Schlüssel (der Programmschlüssel oder der Datenschlüssel) in diesen Schlüsseleintrag gespeichert, und ein Index zum Spezifizieren des zugeteilten Schlüsseleintrags wird ausgegeben.
  • Die Operationen der Schlüsselpaar-Tabelle 810 sind grundsätzlich dieselben wie die der Schlüsselpaar-Tabelle 710 der ersten Ausführungsform. Da die Schlüsselpaar-Tabelle 810 in die Schlüsseltabelle 820 und die Schlüsselpaar-Nachschlagtabelle 830 aufgeteilt ist, werden die Details des Schlüssellesens und -schreibens jedoch wie folgt.
  • (1) Programmschlüssel-Lesen:
  • Dieses ist die Leseoperation durch einen Anschluss, der mit der Anweisungs-Dechiffrier-Verarbeitungseinheit-Schnittstelle 703 verbunden ist, in welcher die Schlüsselleseoperation bezüglich der Schlüsseltabelle 820 durch Verwenden des Index des Programmschlüssels unter den durch das Indexpaar in der Schlüsselpaar-Nachschlagtabelle 830 spezifizierten Schlüsseln ausgeführt wird, und ihr Ergebnis wird ausgegeben.
  • (2) Datenschlüssel-Lesen:
  • Die ist die Leseoperation durch einen Anschluss, der mit der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit-Schnittstelle 704 verbunden ist, in welcher die Schlüsselleseoperation bezüglich der Schlüsseltabelle 820 durch Verwenden des Index des Datenschlüssels unter den durch das Indexpaar in der Schlüsselpaar-Nachschlagtabelle 830 spezifizierten Schlüsseln ausgeführt wird, und ihr Ergebnis wird ausgegeben.
  • (3) Schlüsselpaar-Lesen:
  • Dies ist die Leseoperation durch einen Anschluss, der mit der Schlüsselpaar-Steuereinheit 720 verbunden ist, in welcher sowohl der Programmschlüssel als auch der Datenschlüssel des durch das Indexpaar in der Schlüsselpaar-Nachschlagtabelle 830 spezifizierten Schlüsselpaares von der Schlüsseltabelle 820 durch Verwenden der jeweiligen Indizes ausgelesen werden, und die erhaltenen zwei Schlüssel werden ausgegeben.
  • (4) Schlüsselpaar-Schreiben:
  • Dieses ist die Schreiboperation durch einen Anschluss, der mit der Schlüsselpaar-Steuereinheit 720 verbunden ist, in welcher der Programmschlüssel und der Datenschlüssel, als Parameter gegeben, separat in der Schlüsseltabelle 820 durch die Schlüsselschreiboperation der Schlüsseltabelle 820 gespeichert werden. Die Indizes der als ein Ergebnis erhaltenen Schlüsseleinträge werden in den Programmschlüsselindex und den Datenschlüsselindex in der Schlüsselpaar-Nachschlagtabelle 830 gespeichert.
  • Die Schlüsselpaar-Tabelle 810 hat Schnittstellen zum Bereitstellen derselben Operation aus einem Blickpunkt der Schlüsselpaar-Steuereinheit 720. Folglich sind die drei Operationen der Schlüsselpaar-Steuereinheit 720 einschließlich der Registrierung eines neuen Schlüsselpaares, des Lesens eines existierenden Schlüsselpaares, und des Schreibens eines existierenden Schlüsselpaares, dieselben wie in der ersten Ausführungsform.
  • In der zweiten Ausführungsform sind jedoch die folgenden Operationen zu der Schlüsselpaar-Tabelle 810 und der Schlüsselpaar-Steuereinheit 720 neben den Operationen der ersten Ausführungsform hinzugefügt, um einen Mechanismus bereitzustellen, durch den ein Prozess eine Vielzahl von Datenschlüsseln verwendet.
  • Zunächst ist die zu der Schlüsselpaar-Tabelle 810 hinzuzufügende Operation wie folgt.
  • * Datenschlüssel-Schreiben:
  • Dies ist die Schreiboperation durch einen Anschluss, der mit der Schlüsselpaar-Steuereinheit 720 verbunden ist, in welcher der Programmschlüsselindex, der Datenschlüssel, und die Schlüsselpaarmarke als Parameter empfangen werden.
  • Zuerst wird der Datenschlüssel in die Schlüsseltabelle 820 durch die Schlüsselschreib-Operation der Schlüsseltabelle 820 gespeichert. Der Index des als ein Ergebnis erhaltenen Schlüsseleintrags und der als ein Parameter empfangene Programmschlüsselindex werden in den Datenschlüsselindex 831-2 bzw. den Programmschlüsselindex 831-1 des Schlüsselpaares gespeichert, das durch die Schlüsselpaarmarke als der Index spezifiziert ist.
  • Als Nächstes ist die der Schlüsselpaar-Steuereinheit 720 hinzuzufügende Operation wie folgt.
  • * Registrierung eines neuen Datenschlüssels:
  • Hierbei werden eine erste Schlüsselpaarmarke zum Spezifizieren des Prozesses, der den Datenschlüssel besitzt, eine zweite Schlüsselpaarmarke zum Spezifizieren des neu zu registrierenden Datenschlüssels, und die Schlüsseldaten, in welchen der zu registrierende Datenschlüssel durch Verwenden des Programmschlüssels der ersten Schlüsselpaarmarke chiffriert werden, von dem Prozessorkerns 201 empfangen. Die Schlüsseldaten werden in das chiffrierte Schlüsselpaarregister 726 gespeichert, selbst wenn es nicht die Schlüsselpaardaten sind.
  • Zuerst wird die Operation zum Lesen eines Schlüsselpaares bezüglich der Schlüsseltabelle 820 durch Verwenden der ersten Schlüsselpaarmarke als den Index ausgeführt, und das Schlüsselpaar wird an das Schlüsselpaarregister 724 ausgelesen.
  • Die Schlüsselpaar-Chiffrier-Verarbeitungseinheit 725 dechiffriert Daten auf dem chiffrierten Schlüsselpaarregister 726 durch Verwenden des Programmschlüssels 724-1 auf dem Schlüsselpaarregister 724 durch Betrachten dieser Daten als den chiffrierten Schlüssel, und speichert ihr Ergebnis an den Datenschlüssel 724-2 des Schlüsselpaarregisters 724.
  • Die Schlüsselpaar-Steuereinheit 720 registriert den Index des Programmschlüssels, der durch Verwenden der ersten Schlüsselpaarmarke und des Datenschlüssels 724-2 des Schlüsselpaarregisters 724 ausgelesen ist als das Schlüsselpaar durch Verwenden der Operation zum Schreiben eines Datenschlüssels der Schlüsselpaar-Tabelle 810.
  • Durch diese Operation kann ein neues Schlüsselindexpaar, in welchem der Index des registrierten Datenschlüssels und der Index des mit diesem Datenschlüssel zu verwendenden Programmschlüssels gepaart sind, gebildet werden.
  • Dieses ist, mit anderen Worten, die Operation zum Gruppieren einer Vielzahl von Schlüsselpaaren, die den gemeinsamen Programmschlüssel gemeinsam nutzen. Darüber hinaus ist die den Programmschlüssel verwendende Chiffrierverarbeitung in der Operation zum Hinzufügen des Schlüsselpaares zu der Gruppe erforderlich, so dass es nur für diese Prozesse möglich ist, die den Programmschlüssel kennen.
  • Die oben beschriebene Datenschlüssel-Registrierungsoperation ergibt die durch Verwenden des Programmschlüssels chiffrierten Daten, aber es ist auch möglich, diese Operation zu modifizieren, so dass sie die Daten ergibt, die durch Verwenden eines anderen, von dem Programmschlüssel unterschiedlichen Schlüssels chiffriert sind, so wie dem öffentlichen Schlüssel des Prozessors oder einem anderen Datenschlüssel. In diesem Fall ist sie vielmehr die Operation zum Gruppieren gemäß einem anderen Schlüssel als Gruppieren gemäß dem Programmschlüssel, so dass es anwendbar auf die Situation ist, wo der Schlüssel unter Programmen gemeinsam genutzt werden soll.
  • In der ersten Ausführungsform ist ein begrenzender Mechanismus beschrieben worden, in dem die Übereinstimmung der Schlüsselpaarmarkenwerte als eine Bedingung für den Erfolg des Datentransfers und der Betriebsmanipulation festgelegt ist. In der zweiten Ausführungsform sollen der Datentransfer und die Betriebsmanipulation für die Schlüsselpaare zugelassen werden, die durch denselben Prozess erzeugt sind, selbst wenn die Schlüsselpaarmarken unterschiedlich sind. Und zwar werden, zusätzlich zu dem in der ersten Ausführungsform verwendeten Schlüsselpaarmarkenwert selbst, der Programmschlüsselindex und der Datenschlüsselindex des durch diese Schlüsselpaarmarke spezifizierten Schlüsselpaares auch als das Kriterium zum Beurteilen verwendet, ob der Datentransfer oder die Betriebsmanipulation zugelassen ist oder nicht.
  • Wie für das Kontext-Umschalten durch das Betriebssystem, ist der für die erste Ausführungsform oben beschriebene beispielhafte Fall auch auf die zweite Ausführungsform anwendbar.
  • Man beachte, dass die erste und zweite Ausführungsform oben durch Verwenden von durch funktionale Elemente gebildete Konfigurationen beschrieben worden sind, aber diese Funktionen stellen nur die logische Aufteilung dar und geben nicht die physikalische Anordnung der funktionalen Elemente auf dem Prozessor an. Zum Beispiel wird das Schlüsselpaar als eine Menge in einer Tabelle in den obigen Ausführungsformen gespeichert, aber die physikalische Anordnung auf dem Prozessor kann so sein, dass z.B. eine die Programmschlüssel speichernde Tabelle in einer Nähe der Anweisungs-Dechiffrier-Verarbeitungseinheit bereitgestellt sein soll, während eine die Datenschlüssel speichernde Tabelle in einer Nähe der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit bereitgestellt sein soll.
  • Wie oben beschrieben, werden gemäß der vorliegenden Erfindung der Programmschlüssel zum Dechiffrieren des Programms und der Datenschlüssel zum Chiffrieren/Dechiffrieren der Daten als ein kryptographisch untrennbares Paar innerhalb des Prozessors gehandhabt, so dass es für den Prozessor möglich wird, Prozesse zu schützen, die tatsächlich das Programm ausführen, ohne Intervention durch das Betriebssystem. Folglich wird es möglich, die Geheiminformation des Programms nicht nur vor anderen Benutzerprogrammen sondern auch vor dem Betriebssystem zu verbergen.
  • Außerdem ist, gemäß der vorliegenden Erfindung, eine Marke zum Identifizieren des Prozesses, der ein Ziel des Schutzes durch den Prozessor ist, an Daten innerhalb des Prozessors angefügt, so dass es möglich wird, das Umschalten von Prozessen auszuführen während eines Aufrechterhaltens der Schutzzieldaten in der dechiffrierten Form innerhalb des Innenspeichers.
  • Unter der Annahme, dass das Programmchiffrierschlüssel-Verteilungsschema das Kryptosystem für einen öffentlichen Schlüssel verwendet, schlägt die vorliegende Erfindung nämlich im Grunde ein Schlüsselverwaltungsschema vor, in dem der Programmschlüssel (erster Schlüssel) zum Dechiffrieren des chiffrierten Programms und der Datenschlüssel (zweiter Schlüssel) zum Chiffrieren/Dechiffrieren von Daten, die durch dieses Programm verarbeitet werden, das durch den Mikroprozessor erzeugt wird, in einer Zuordnung als das Schlüsselpaar aufrecht erhalten werden.
  • Gemäß diesem Schema dechiffriert der Mikroprozessor das chiffrierte Programm durch Verwenden des ersten Schlüssels, erzeugt den dem ersten Schlüssel entsprechenden zweiten Schlüssel, und vergibt einen Identifizierer an eine Kombination dieser Schlüssel. Der erste Schlüssel und der zweite Schlüssel werden in die Schlüsselpaar-Tabelle als das Schlüsselpaar geschrieben, und der Identifizierer wird verwendet durch die nachfolgende Verarbeitung für den Zweck eines Identifizierens dieses Schlüsselpaares. Während der Ausführung des dechiffrierten Programms wird der Identifizierer angegeben, der dem Schlüsselpaar des ersten Schlüssels gegeben ist, der beim Dechiffrieren dieses Programms verwendet ist. Wenn die Ausführung des dechiffrierten Programms durch die Unterbrechung oder Ähnliches unterbrochen werden soll, werden die durch dieses Programm verarbeiteten Daten mit Verwenden des dem aktuellen Identifizierer entsprechenden zweiten Schlüssels chiffriert, und an den Außenspeicher oder Ähnliches gesichert. Das Zugriffsrecht bezüglich der verarbeiteten Daten wird gemäß der Übereinstimmung des Schlüsselpaares beurteilt, so dass der Schutz von Daten unter Prozessen kryptographisch garantiert wird.
  • Um dieses Schema zu realisieren, hat der Mikroprozessor der vorliegenden Erfindung eine Anweisungs-Dechiffrier-Verarbeitungseinheit zum Dechiffrieren des chiffrierten Programms durch Verwenden des ersten Chiffrierschlüssels (Programmschlüssel), eine Daten-Chiffrierung/Dechiffrier-Verarbeitungseinheit zum Chiffrieren/Dechiffrieren der Daten, die durch das dechiffrierte Programm (d.h. den Ausführungszustand des Prozesses) verarbeitet sind, durch Verwenden des zweiten Chiffrierschlüssels (Datenschlüssel), eine Schlüsselpaar-Verwaltungseinheit mit einem ersten Speicherbehälter (Schlüsselpaar-Tabelle) zum Speichern des ersten und zweiten Schlüssels im Paar, und einen zweiten Speicherbehälter (Registerdatei) zum Speichern einer Marke (Identifizierer) zum Identifizieren dieses Schlüsselpaares zusammen mit programmbezogenen Daten.
  • Der Programmschlüssel und der Datenschlüssel werden als untrennbares Paar gespeichert, und in dem Fall eines Betreibens dieses Paares von der Programmseite, kann dieses Schlüsselpaar nur in einer chiffrierten Form betrieben werden, die durch Verwenden des für den Prozessor spezifischen Geheimschlüssels erhalten ist. Auf diese Weise wird es möglich, die Analyse des Programms selbst kryptographisch schwierig zu machen, und auch die Analyse des Ausführungszustands des Programms schwierig zu machen, selbst von dem Betriebssystem aus, zu einer Zeit eines Ausführens des chiffrierten Programms. Außerdem kann, durch Anfügen einer Marke zum Identifizieren des Schlüsselpaares an jeweilige entsprechende Daten, der Datentransfer mit Verwenden der Chiffrierverarbeitung innerhalb einer Spanne ausgeführt werden, die zum Erhalten des Geheimnisses minimal erforderlich ist.
  • Der Programmschlüssel zum Dechiffrieren des chiffrierten Programms ist durch das Kryptosystem für einen öffentlichen Schlüssel gegeben. Der Mikroprozessor hat auch eine Datenschlüssel-Erzeugungseinheit, und erzeugt den Datenschlüssel zum Chiffrieren/Dechiffrieren von Daten, die durch das Programm verarbeitet werden sollen, das durch diesen Programmschlüssel dechiffriert ist, wenn der neue Programmschlüssel gegeben ist. Das auf diese Weise erzeugte Schlüsselpaar wird in der Schlüsselpaar-Tabelle gespeichert.
  • Der Mikroprozessor hat einen dritten Speicherbereich (Systemregister) zum Speichern des wirksamen Schlüsselpaar-Identifizierers, der ein Identifizierer des wirksamen Schlüsselpaares ist, das durch das aktuell ausgeführte Programm verwendet wird. Wenn ein Übergang zu dem Kernel-Modus aufgrund der Unterbrechung oder von Ähnlichem getätigt wird, während das Programm in dem Benutzer-Modus ausgeführt wird, wird der wirksame Schlüsselpaar-Identifizierer auf einen spezifischen, den Kernel-Modus angebenden Wert umgeschaltet. Auf diese Weise können das Programm des Benutzer-Modus und das Unterbrechungsverarbeitungsprogramm klar getrennt werden. Wenn das Unterbrechungsverarbeitungsprogramm die Daten, die in dem zweiten Speicherbereich durch das Programm des Benutzer-Modus gespeichert sind, nach außen sichert, transferiert die Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit die Daten an den Außenspeicher durch Verwenden des Chiffrierschlüssels, der durch den an diese Daten angefügten Identifizierer spezifiziert ist. Auf diese Weise können Daten sicher geschützt werden, selbst wenn die Abweichung bzw. Ausnahme aufgrund der Unterbrechung oder von Ähnlichem auftritt.
  • Die Schlüsselpaar-Tabelle speichert eine Vielzahl von Schlüsselpaaren, wobei jedes Schlüsselpaar durch Paaren des ersten Schlüssels (Programmschlüssel) und des zweiten Schlüssels (Datenschlüssel) in einer Eineindeutigkeit gebildet ist.
  • Alternativ kann die Schlüsselpaar-Tabelle einen Nachschlag-Speicherungsbereich zum Speichern eines Index des ersten Schlüssels und eines Index des zweiten Schlüssels in Zuordnung, und einen Schlüsselspeicherungsbereich zum getrennten Speichern des ersten und zweiten Schlüssels enthalten. In diesem Fall hat der Schlüsselindex selbst eine kleine Größe, so dass für den Nachschlag-Speicherungsbereich nur eine kleine Speicherkapazität erforderlich ist. Außerdem sind der separat gespeicherte erste und zweite Schlüssel durch die Indizes spezifiziert, so dass die Indizes zum Spezifizieren einer Information von Schlüsselpaaren durch angemessenes Kombinieren des Programmschlüssels und des Datenschlüssels der verarbeiteten Daten verwendet werden können, z.B. in dem Fall, wo eine Vielzahl unterschiedlicher Daten bezüglich desselben Programms in der Multitask-Umgebung verarbeitet werden.
  • Der Mikroprozessor hat auch eine Speicherzugriffseinheit, die mit dem zweiten Speicherbereich und dem dritten Speicherbereich verbunden ist. Die Speicherzugriffseinheit hat eine Datentransfer-Beurteilungseinheit zum Beurteilen, ob der Datentransfer zugelassen ist oder nicht, gemäß einem Identifizierer des Schlüsselpaares, das an die zu transferierenden Daten angefügt ist, und dem wirksamen Schlüsselpaaridentifizierer.
  • Der Mikroprozessor hat auch eine Logikoperationseinheit, die mit dem zweiten Speicherbereich und dem dritten Speicherbereich verbunden ist. Die Logikoperationseinheit hat eine Operationsausführungs-Beurteilungseinheit zum Beurteilen, ob die Operationsausführung zugelassen ist oder nicht, gemäß einem an den Operanden der Operation angefügten Identifizierer und dem wirksamen Schlüsselpaar-Identifizierer.
  • Auf diese Weise kann die Sicherheit der Daten weiter verbessert werden durch Anfügen des Identifizierers zum Identifizieren des Schlüsselpaares an die innerhalb des Mikroprozessors handzuhabenden Daten, und Verwenden des Identifizierers des an die Daten angefügten Schlüsselpaares zum Beurteilen des Zugriffsrechts oder der Operationsausführungsmöglichkeit zu einer Zeit des Datentransfers oder der Betriebsmanipulation.
  • Der zweite Speicherbereich ist durch eine Vielzahl von Einträgen gebildet, und jeder Eintrag hat programmbezogene Daten und einen Identifizierer zum Identifizieren des für diese Daten verwendeten Schlüsselpaares. Mit dieser Konfiguration, wenn die Verarbeitung in dem Kernel-Modus aufgrund der Unterbrechung angefordert wird, und der wirksame Schlüsselpaar-Identifizierer in dem dritten Speicherbereich einen den Kernel-Modus angebenden Wert annimmt, wird es z.B. möglich, nur die Daten, des gewünschten Eintrags und den entsprechenden Identifizierer zu chiffrieren und diese an den Außenspeicher zu sichern. Zur Zeit des Unterbrechungsauftretens wird es nämlich möglich, zusätzlich zu dem Speichern der gesamten Daten in dem zweiten Speicherbereich, nur einen Teil der Daten in dem zweiten Speicherbereich zu speichern.

Claims (21)

  1. Mikroprozessor (101) mit: einer Anweisungsdechiffrier-Verarbeitungseinheit (501), die konfiguriert ist zum Dechiffrieren eines Programms in einer chiffrierten Form durch Verwenden eines ersten Chiffrierschlüssels (710-1); einer Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit (601), die konfiguriert ist zum Chiffrieren/Dechiffrieren von durch das Programm verarbeiteten Daten in einer dechiffrierten Form durch Verwenden eines zweiten Chiffrierschlüssels (710-2); gekennzeichnet durch eine Schlüsselpaar-Verwaltungseinheit (701), die mit der Anweisungsdechiffrier-Verarbeitungseinheit (501) und der Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit (601) verbunden ist, mit einem ersten Speicherbereich (710:810) zum Speichern des ersten Chiffrierschlüssels (710-1) und des zweiten Chiffrierschlüssels in Zuordnung als ein Schlüsselpaar; und einem zweiten Speicherbereich (230), der einen Identifizierer (231-2) zum Identifizieren des Schlüsselpaares für das Programm speichert, zusammen mit bezogenen Daten des Programms.
  2. Mikroprozessor (101) gemäß Anspruch 1, wobei der erste Chiffrierschlüssel (710-1) durch ein Kryptosystem für einen öffentlichen Schlüssel gegeben ist, und die Schlüsselpaar-Verwaltungseinheit (701) eine Schlüsselerzeugungseinheit (723) hat, die konfiguriert ist zum Erzeugen des zweiten Chiffrierschlüssels (710-2) zum Chiffrieren/Dechiffrieren von durch das Programm verarbeiteten Daten, das durch Verwenden des ersten Chiffrierschlüssels (710-1) dechiffriert wird, wenn der erste Chiffrierschlüssel (710-1) gegeben ist.
  3. Mikroprozessor (101) gemäß Anspruch 2, wobei die Schlüsselpaar-Verwaltungseinheit (701) einen Speicherungsbereich (726) für ein chiffriertes Schlüsselpaar hat zum Speichern des Schlüsselpaares des ersten Chiffrierschlüssels und des zweiten Chiffrierschlüssels in einer durch Verwenden eines Geheimschlüssels des Mikroprozessors (101) erhaltenen, chiffrierten Form.
  4. Mikroprozessor gemäß Anspruch 1, wobei der erste Speicherbereich (710) den ersten Chiffrierschlüssel (710-1) und den zweiten Chiffrierschlüssel (710-2) in einer Eineindeutigkeit speichert.
  5. Mikroprozessor (101) gemäß Anspruch 1, wobei der erste Speicherbereich (810) einen Schlüsselpaar-Nachschlag-Speicherungsbereich (830) zum Speichern eines Index (831-1) des ersten Chiffrierschlüssels und eines Index (831-2) des zweiten Chiffrierschlüssels als ein Paar enthält, und einen Schlüsselspeicherungsbereich (820) zum separaten Speichern des ersten Chiffrierschlüssels (821) und des zweiten Chiffrierschlüssels (821).
  6. Mikroprozessor (101) gemäß Anspruch 1, ferner umfassend: einen dritten Speicherbereich (210) zum Speichern eines Identifizierers (211) für ein wirksames Schlüsselpaar eines durch ein aktuell ausgeführtes Programm verwendeten, wirksamen Schlüsselpaares, und wobei die Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit (601) die bezogenen, in dem zweiten Speicherbereich (230) gespeicherten, Daten an einen externen Speicher transferiert durch Verwenden eines Chiffrierschlüssels, der durch einen Identifizierer spezifiziert ist, der den bezogenen Daten entspricht, wenn ein Wert des in dem dritten Speicherbereich (210) gespeicherten Identifizierers (211) für ein wirksames Schlüsselpaar einen spezifischen Wert annimmt.
  7. Mikroprozessor (101) gemäß Anspruch 6, ferner umfassend: eine Speicherzugriffseinheit (260), die mit dem zweiten Speicherbereich (230) und dem dritten Speicherbereich (210) verbunden ist, wobei die Speicherzugriffseinheit (260) eine Datentransfer-Beurteilungseinheit hat, die konfiguriert ist zum Beurteilen, ob ein Datentransfer zugelassen wird oder nicht gemäß dem Identifizierer (231-2) des an die zu transferierenden Daten angefügten Schlüsselpaares und dem in dem dritten Speicherbereich (210) gespeicherten Identifizierer (211) für ein wirksames Schlüsselpaar.
  8. Mikroprozessor (101) gemäß Anspruch 6, ferner umfassend: eine Logikoperationseinheit (250), die mit dem zweiten Speicherbereich (230) und dem dritten Speicherbereich (210) verbunden ist, wobei die Logikoperationseinheit (250) eine Operationsausführungs-Beurteilungseinheit (252) hat, die konfiguriert ist zum Beurteilen, ob eine Operationsausführung zugelassen wird oder nicht gemäß dem an den Operanden einer auszuführenden Operation angefügten Identifizierer (231-2) und dem in dem dritten Speicherbereich (210) gespeicherten Identifizierer (211) für ein wirksames Schlüsselpaar.
  9. Mikroprozessor (101) gemäß Anspruch 6, wobei der zweite Speicherbereich (230) durch eine Vielzahl von Einträgen (231) gebildet wird, und jeder Eintrag (231) die bezogenen Daten (231-1) des Programms und den Identifizierer (231-2) zum Identifizieren des für die bezogenen Daten (231-1) verwendeten Schlüsselpaares speichert, und die Daten-Chiffrier/Dechiffrier-Verarbeitungseinheit (601) gewünschte Daten (231-1) in einem gewünschten Eintrag (231) und einen entsprechenden Identifizierer (231-2) in einer chiffrierte Form transferiert, wenn ein Wert des Identifizierers (211) für ein wirksames Schlüsselpaar in dem dritten Speicherbereich (210) den spezifischen Wert annimmt.
  10. Mikroprozessor (101) gemäß Anspruch 6, wobei der in dem dritten Speicherbereich (210) gespeicherte Identifizierer (211) für ein wirksames Schlüsselpaar den spezifischen Wert annimmt, wenn eine Abweichung auftritt.
  11. Datenschutzverfahren für einen Mikroprozessor (101), wobei das Datenschutzverfahren umfasst: Dechiffrieren eines Programms in einer chiffrierten Form durch Verwenden eines ersten Chiffrierschlüssels (710-1); Erzeugen eines dem ersten Chiffrierschlüssel (710-1) entsprechenden zweiten Chiffrierschlüssels (710-2), zum Chiffrieren/Dechiffrieren von durch das Programm verarbeiteten Daten in einer dechiffrierten Form; Speichern des ersten Chiffrierschlüssels (710-1) und des zweiten Chiffrierschlüssels in Zuordnung als ein Schlüsselpaar; Vergeben eines Identifizierers (231-2) zum Identifizieren des Schlüsselpaares an das Schlüsselpaar; und Auslesen des zweiten Chiffrierschlüssels (710-2) gemäß dem Identifizierer (231-2), Chiffrieren der Daten durch Verwenden des zweiten Chiffrierschlüssels (710-2) und Speichern der Daten in einer chiffrierten Form in einem externen Speicher, wenn eine Abweichung während einer Ausführung des Programms auftritt.
  12. Datenschutzverfahren gemäß Anspruch 11, ferner umfassend: Auslesen der Daten in der in dem externen Speicher gespeicherten, chiffrierten Form, und Dechiffrieren der Daten durch Verwenden des zweiten Chiffrierschlüssels (710-2) gemäß dem Identifizierer (231-2), nachdem die Abweichung vorbei ist.
  13. Datenschutzverfahren gemäß Anspruch 11, wobei der Speicherschritt den ersten Chiffrierschlüssel (710-1) und den zweiten Chiffrierschlüssel (710-2) in einer Eineindeutigkeit speichert.
  14. Datenschutzverfahren gemäß Anspruch 11, wobei der Speicherschritt einen Index (831-1) des ersten Chiffrierschlüssels und einen Index (831-2) des zweiten Chiffrierschlüssels als ein Paar speichert, während eines separaten Speicherns des ersten Chiffrierschlüssels (821) und des zweiten Chiffrierschlüssels (821).
  15. Datenschutzverfahren gemäß Anspruch 11, ferner umfassend: Speichern des Schlüsselpaares des ersten Chiffrierschlüssels und des zweiten Chiffrierschlüssels in einer durch Verwenden eines Geheimschlüssels des Mikroprozessors (101) erhaltenen, chiffrierten Form.
  16. Datenschutzverfahren gemäß Anspruch 11, ferner umfassend: Speichern eines Identifizierers (211) für ein wirksames Schlüsselpaar eines durch ein aktuell ausgeführtes Programm verwendeten, wirksamen Schlüsselpaares, und Transferieren bezogener Daten des Programms an einen externen Speicher durch Verwenden eines Chiffrierschlüssels, der durch einen Identifizierer spezifiziert ist, der den bezogenen Daten entspricht, wenn ein Wert des Identifizierers (211) für ein wirksames Schlüsselpaar einen spezifischen Wert annimmt.
  17. Datenschutzverfahren gemäß Anspruch 16, ferner umfassend: Beurteilen, ob ein Datentransfer zugelassen wird oder nicht gemäß dem Identifizierer (231) des an die zu transferierenden Daten angefügten Schlüsselpaares und dem gespeicherten Identifizierer (211) für ein wirksames Schlüsselpaar.
  18. Datenschutzverfahren gemäß Anspruch 16, ferner umfassend: Beurteilen, ob eine Operationsausführung zugelassen wird oder nicht gemäß dem an den Operanden einer auszuführenden Operation angefügten Identifizierer (231-2) und dem Identifizierer (211) für ein wirksames Schlüsselpaar.
  19. Datenschutzverfahren gemäß Anspruch 16, wobei der Vergabeschritt den Identifizierer (231-2) in einem durch eine Vielzahl von Einträgen (231) gebildeten Speicherbereich (230) speichert, wobei jeder Eintrag (231) die bezogenen Daten (231-1) des Programms und den Identifizierer (231-2) zum Identifizieren des für die bezogenen Daten (231-1) verwendeten Schlüsselpaares speichert, und das Datenschutzverfahren ferner umfasst: Transferieren gewünschter Daten (231-1) in einem gewünschten Eintrag (231) und eines entsprechenden Identifizierers (231-2) in einer chiffrierten Form, wenn ein Wert des Identifizierers (211) für ein wirksames Schlüsselpaar in dem dritten Speicherbereich (210) den spezifischen Wert annimmt.
  20. Datenschutzverfahren gemäß Anspruch 16, wobei der Identifizierer (211) für ein wirksames Schlüsselpaar den spezifischen Wert annimmt, wenn eine Abweichung auftritt.
  21. Trägermedium, das Computer-lesbare Anweisungen trägt zum Steuern eines Computers, das Verfahren eines der Ansprüche 11 bis 20 auszuführen.
DE60124845T 2000-10-31 2001-10-30 Mikroprozessor mit Programm- und Datenschutzfunktion in einer Multitasking Umgebung Expired - Lifetime DE60124845T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000333635A JP4153653B2 (ja) 2000-10-31 2000-10-31 マイクロプロセッサおよびデータ保護方法
JP2000333635 2000-10-31

Publications (2)

Publication Number Publication Date
DE60124845D1 DE60124845D1 (de) 2007-01-11
DE60124845T2 true DE60124845T2 (de) 2007-04-19

Family

ID=18809679

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60124845T Expired - Lifetime DE60124845T2 (de) 2000-10-31 2001-10-30 Mikroprozessor mit Programm- und Datenschutzfunktion in einer Multitasking Umgebung

Country Status (4)

Country Link
US (2) US7065215B2 (de)
EP (1) EP1202150B1 (de)
JP (1) JP4153653B2 (de)
DE (1) DE60124845T2 (de)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
US7797550B2 (en) 2002-09-25 2010-09-14 Broadcom Corporation System and method for securely buffering content
US6983374B2 (en) 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
GB0015276D0 (en) * 2000-06-23 2000-08-16 Smith Neale B Coherence free cache
US7603703B2 (en) 2001-04-12 2009-10-13 International Business Machines Corporation Method and system for controlled distribution of application code and content data within a computer network
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
EP1471405A4 (de) * 2001-11-12 2010-01-13 Gerite Associates Ltd Verfahren und einrichtung zum schutz von informationen vor unautorisierter benutzung
US7107459B2 (en) * 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
US7065651B2 (en) * 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
US7350069B2 (en) * 2002-04-18 2008-03-25 Herz Frederick S M System and method which employs a multi user secure scheme utilizing shared keys
US7515173B2 (en) * 2002-05-23 2009-04-07 Microsoft Corporation Head pose tracking system
JP2004023351A (ja) * 2002-06-14 2004-01-22 Oki Electric Ind Co Ltd マイクロコンピュータのプログラム保護方法
US8155314B2 (en) 2002-06-24 2012-04-10 Microsoft Corporation Systems and methods for securing video card output
JP2004054834A (ja) 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
US20040023646A1 (en) * 2002-07-31 2004-02-05 Satoshi Inami Information processing terminal and information processing method
JP3881942B2 (ja) * 2002-09-04 2007-02-14 松下電器産業株式会社 暗号化部を有する半導体装置
JP2004133087A (ja) * 2002-10-09 2004-04-30 Sony Corp ブロック暗号方法およびブロック暗号回路
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
JP2004246637A (ja) * 2003-02-14 2004-09-02 Fainaaku Kk 固有情報化プロセッサ、これを備えた処理装置および記憶装置、関連するプログラム実行方法、およびコンピュータプログラム
JP4375980B2 (ja) * 2003-03-11 2009-12-02 株式会社エヌ・ティ・ティ・ドコモ マルチタスク実行システム及びマルチタスク実行方法
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
JP2007526590A (ja) * 2003-06-23 2007-09-13 ケストレル ワイヤレス,インク. 光メディア作動方法並びに装置
WO2005020043A2 (en) * 2003-08-26 2005-03-03 Matsushita Electric Industrial Co., Ltd. Program execution device
JP4263976B2 (ja) * 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
JP4282472B2 (ja) * 2003-12-26 2009-06-24 株式会社東芝 マイクロプロセッサ
JP4696449B2 (ja) * 2004-01-09 2011-06-08 ソニー株式会社 暗号化装置およびその方法
JP4294514B2 (ja) * 2004-03-05 2009-07-15 シャープ株式会社 半導体装置および電子装置
US20050210274A1 (en) * 2004-03-22 2005-09-22 Frantz Gene A Apparatus and method for intellectual property protection using the microprocessor serial number
JP4612461B2 (ja) * 2004-06-24 2011-01-12 株式会社東芝 マイクロプロセッサ
JP4559794B2 (ja) * 2004-06-24 2010-10-13 株式会社東芝 マイクロプロセッサ
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP4204522B2 (ja) * 2004-07-07 2009-01-07 株式会社東芝 マイクロプロセッサ
US8954751B2 (en) 2004-10-08 2015-02-10 International Business Machines Corporation Secure memory control parameters in table look aside buffer data fields and support memory array
US7657756B2 (en) * 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
US20060095385A1 (en) * 2004-10-26 2006-05-04 Paul Atkinson Method and network for selectively controlling the utility a target
KR20070111453A (ko) * 2004-12-07 2007-11-21 케스트럴 와이어리스 인코포레이티드 타깃의 유틸리티를 선택적으로 제어하는 장치 및 그 방법
US20070194945A1 (en) * 2004-12-07 2007-08-23 Paul Atkinson Mobile Device for Selectively Activating a Target and Method of Using Same
US20060126827A1 (en) * 2004-12-14 2006-06-15 Dan P. Milleville Encryption methods and apparatus
US20070180539A1 (en) * 2004-12-21 2007-08-02 Michael Holtzman Memory system with in stream data encryption / decryption
US8045714B2 (en) * 2005-02-07 2011-10-25 Microsoft Corporation Systems and methods for managing multiple keys for file encryption and decryption
US7254768B2 (en) * 2005-02-18 2007-08-07 Broadcom Corporation Memory command unit throttle and error recovery
US20060192653A1 (en) * 2005-02-18 2006-08-31 Paul Atkinson Device and method for selectively controlling the utility of an integrated circuit device
US8086871B2 (en) * 2005-04-26 2011-12-27 International Business Machines Corporation Method for fast decryption of processor instructions in an encrypted instruction power architecture
US20110181981A1 (en) * 2005-05-09 2011-07-28 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Method and system for rotational control of data storage devices
US7916615B2 (en) * 2005-06-09 2011-03-29 The Invention Science Fund I, Llc Method and system for rotational control of data storage devices
US7596073B2 (en) * 2005-05-09 2009-09-29 Searete Llc Method and system for fluid mediated disk activation and deactivation
US9396752B2 (en) * 2005-08-05 2016-07-19 Searete Llc Memory device activation and deactivation
US7916592B2 (en) 2005-05-09 2011-03-29 The Invention Science Fund I, Llc Fluid mediated disk activation and deactivation mechanisms
US8140745B2 (en) * 2005-09-09 2012-03-20 The Invention Science Fund I, Llc Data retrieval methods
US8218262B2 (en) * 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device including structured data and primary and secondary read-support information
US8121016B2 (en) * 2005-05-09 2012-02-21 The Invention Science Fund I, Llc Rotation responsive disk activation and deactivation mechanisms
US8220014B2 (en) * 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Modifiable memory devices having limited expected lifetime
US7565596B2 (en) * 2005-09-09 2009-07-21 Searete Llc Data recovery systems
US8159925B2 (en) * 2005-08-05 2012-04-17 The Invention Science Fund I, Llc Limited use memory device with associated information
US8099608B2 (en) * 2005-05-09 2012-01-17 The Invention Science Fund I, Llc Limited use data storing device
US8462605B2 (en) * 2005-05-09 2013-06-11 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device
US20070007358A1 (en) * 2005-07-06 2007-01-11 White Charles A Device and System for Authenticating and Securing Transactions Using RF Communication
WO2007008916A2 (en) * 2005-07-11 2007-01-18 Kestrel Wireless Inc. A radio frequency activated integrated circuit and method of disabling the same
CN100424611C (zh) * 2005-07-28 2008-10-08 国际商业机器公司 用于处理加密软件的方法和中央处理单元
US7783896B2 (en) * 2005-09-06 2010-08-24 Research In Motion Limited System and method for management of plaintext data in a mobile data processing device
US20070223692A1 (en) * 2005-10-18 2007-09-27 Paul Atkinson Activation confirmation feedback circuits and methods
US20080028420A1 (en) * 2006-01-20 2008-01-31 Paul Atkinson Optical Media with Reduced Areal-Sized Optical shutters
US7594101B2 (en) * 2006-02-06 2009-09-22 Stmicroelectronics S.A. Secure digital processing unit and method for protecting programs
JP4795812B2 (ja) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
WO2008054456A2 (en) * 2006-02-22 2008-05-08 Luna Innovations Inc. Hardware-facilitated secure software execution environment
US8264928B2 (en) * 2006-06-19 2012-09-11 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US7870336B2 (en) 2006-11-03 2011-01-11 Microsoft Corporation Operating system protection against side-channel attacks on secrecy
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
US20090268902A1 (en) * 2008-04-25 2009-10-29 Koolspan, Inc. System for and method of cryptographic provisioning
US8842836B2 (en) * 2007-11-26 2014-09-23 Koolspan, Inc. System for and method of cryptographic provisioning
US8515080B2 (en) * 2007-12-19 2013-08-20 International Business Machines Corporation Method, system, and computer program product for encryption key management in a secure processor vault
US8085148B2 (en) * 2008-11-11 2011-12-27 Monster Medic, Inc. Mobile monitoring and alert system
JP5322620B2 (ja) 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
US20120011144A1 (en) * 2010-07-12 2012-01-12 Frederik Transier Aggregation in parallel computation environments with shared memory
US8468365B2 (en) * 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
US10127281B2 (en) 2010-12-23 2018-11-13 Sap Se Dynamic hash table size estimation during database aggregation processing
US8516271B2 (en) * 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
JP5700481B2 (ja) * 2011-06-29 2015-04-15 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
EP2653992A1 (de) * 2012-04-17 2013-10-23 Itron, Inc. Mikrocontroller mit Konfiguration für externe Speicherentschlüsselung
GB2515047B (en) * 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
US9442864B2 (en) * 2013-12-27 2016-09-13 Intel Corporation Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes
CN106714075B (zh) * 2015-08-10 2020-06-26 华为技术有限公司 一种处理授权的方法和设备
GB201607476D0 (en) * 2016-04-29 2016-06-15 Eitc Holdings Ltd Operating system for blockchain IOT devices
US10721067B2 (en) * 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
US10198349B2 (en) * 2016-09-19 2019-02-05 Advanced Micro Devices, Inc. Programming in-memory accelerators to improve the efficiency of datacenter operations
US10417433B2 (en) 2017-01-24 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Encryption and decryption of data owned by a guest operating system
US10896267B2 (en) * 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
EP3731453B1 (de) * 2018-02-06 2023-08-02 Sony Group Corporation Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren, programm und informationsverarbeitungssystem
EP4088214A4 (de) * 2020-02-21 2023-08-30 Hewlett-Packard Development Company, L.P. Rechnervorrichtungen zur verschlüsselung und entschlüsselung von daten
US20220414270A1 (en) * 2021-06-24 2022-12-29 International Business Machines Corporation Encrypted data processing design including cleartext register files
US11868275B2 (en) 2021-06-24 2024-01-09 International Business Machines Corporation Encrypted data processing design including local buffers

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
GB2122777A (en) * 1982-06-16 1984-01-18 Open Computer Services Limited Software protection apparatus and method
US4847902A (en) 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
US5224166A (en) 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
JP3627384B2 (ja) * 1996-01-17 2005-03-09 富士ゼロックス株式会社 ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法
JPH09259044A (ja) * 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
US5825878A (en) 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
US6003117A (en) * 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
JPH11282756A (ja) 1998-03-31 1999-10-15 Nakamichi Corp 秘密デ−タ管理方法
US6311270B1 (en) * 1998-09-14 2001-10-30 International Business Machines Corporation Method and apparatus for securing communication utilizing a security processor
JP2002529815A (ja) * 1998-11-05 2002-09-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数の暗号化アルゴリズムを用いるセキュアメモリ管理ユニット
JP4161466B2 (ja) * 1999-04-22 2008-10-08 日本ビクター株式会社 コンテンツ情報記録方法及びコンテンツ情報処理装置
JP4226760B2 (ja) * 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法

Also Published As

Publication number Publication date
US20060126849A1 (en) 2006-06-15
JP2002140236A (ja) 2002-05-17
EP1202150B1 (de) 2006-11-29
US20020051536A1 (en) 2002-05-02
US7673152B2 (en) 2010-03-02
DE60124845D1 (de) 2007-01-11
US7065215B2 (en) 2006-06-20
EP1202150A3 (de) 2003-07-30
EP1202150A2 (de) 2002-05-02
JP4153653B2 (ja) 2008-09-24

Similar Documents

Publication Publication Date Title
DE60124845T2 (de) Mikroprozessor mit Programm- und Datenschutzfunktion in einer Multitasking Umgebung
DE112015004555B4 (de) Verarbeiten eines Gast-Ereignisses in einem von einem Hypervisor gesteuerten System
DE10196006B4 (de) Erzeugen einer Schlüsselhierarchie zur Verwendung in einer isolierten Ausführungsumgebung
DE60214640T2 (de) Mikroprozessor mit verbesserten Taskverwaltungs- und Tabellenverwaltungsvorrichtungen
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
DE60303476T2 (de) Verfahren und server für eine programm-aktualisierung
DE60306952T2 (de) Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich
DE112016004435T5 (de) Hardware-gestützte einseitige kryptografie
DE69531077T2 (de) Verfahren und Vorrichtung mit Benutzereinwirkung der Art Erproben-und-Kaufen, die es ermöglicht, Software zu erproben
DE112014000965T5 (de) Verarbeiten eines Gastereignisses in einem hypervisorgesteuerten System
DE102018123710A1 (de) Kryptografische Speicherinhaberschaftstabelle für eine sichere öffentliche Cloud
DE102013203126B4 (de) System, Verfahren und Programmprodukt zum transparenten Zugreifen auf verschlüsselte nicht-relationale Daten in Echtzeit
DE602004005025T2 (de) Instruktionen zur verarbeitung einer verschlusselten nachricht
DE102013200161A1 (de) Datenverschlüsselung/-Komprimierung auf der Grundlage einer Speicheradressübersetzung
CN107851151A (zh) 保护虚拟机的状态信息
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE102019126125A1 (de) System, vorrichtung und verfahren zum integritätsschutz von kunden-arbeitslasten in einer mehrkunden-datenverarbeitungsumgebung
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE112014000845T5 (de) Anweisung zum Ausführen einer Seed-Operation für eine pseudozufällige Zahl
DE112009005466T5 (de) Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung
DE102018129420A1 (de) Indirektionsverzeichnis für den kryptografischen speicherschutz
WO2011054639A1 (de) Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
DE102020126293A1 (de) Vorrichtungen, verfahren und systeme für anweisungen für kryptografisch an daten gebundene nutzungsbeschränkungen
DE10196440T5 (de) Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung
DE102015113468A1 (de) Datenverarbeitungsvorrichtung und verfahren zum sichern einer datenverarbeitungsvorrichtung gegen angriffe

Legal Events

Date Code Title Description
8364 No opposition during term of opposition