DE19782169C2 - Kryptographisch geschütztes Seitenwechsel-Subsystem - Google Patents

Kryptographisch geschütztes Seitenwechsel-Subsystem

Info

Publication number
DE19782169C2
DE19782169C2 DE19782169A DE19782169A DE19782169C2 DE 19782169 C2 DE19782169 C2 DE 19782169C2 DE 19782169 A DE19782169 A DE 19782169A DE 19782169 A DE19782169 A DE 19782169A DE 19782169 C2 DE19782169 C2 DE 19782169C2
Authority
DE
Germany
Prior art keywords
page
memory
environment
encryption
secure
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
DE19782169A
Other languages
English (en)
Other versions
DE19782169T1 (de
Inventor
Howard C Herbert
Derek L Davis
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE19782169C2 publication Critical patent/DE19782169C2/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/86Secure or tamper-resistant housings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

Eine physikalisch sichere Umgebung (1) ist mit einer unsicheren Umgebung (2) gekoppelt. Die Einrichtung enthält eine Integritätsprüfmaschine (13), einen Flash-Speicher (15), einen Prozessor (16), einen Speicher mit wahlfreiem Zugriff (14), einen Zufallszahlengenerator (18), eine Verschlüsselungs/Entschlüsselungs-Maschine (12), eine Busschnittstelle (19), eine externe Speichereinrichtung (4), einen internen Bus (17) und einen externen Bus (7). Die Integritätsprüfmaschine (13) führt eine Ein-Weg-Hash-Operation an seitenweise ein- und auszulagernden Daten durch. Die Verschlüsselungs/Entschlüsselungs-Maschine (12) verschlüsselt hinausgehende Seiten und entschlüsselt hineinkommende Seiten.

Description

Die Erfindung bezieht sich auf ein Verfahren zum Aus- und Einlagern von Speicherseiten zwischen einem Speicher in einer physikalisch sicheren Umgebung und einem Speicher außerhalb der sicheren Umgebung sowie auf eine Speicheranordnung, die dieses Verfahren ausführt.
Die Ressourcenerschöpfung und insbesondere die Speichererschöpfung ist ein allgemeines Problem bei Com­ putersystemen. Der Speicher mit wahlfreiem Zugriff (RAM), aus welchem Programme ausgeführt werden können, ist notwendigerweise begrenzt, sowohl wegen der Kosten als auch wegen des Raumes. Externe Speichereinrichtun­ gen, wie beispielsweise Festplattenlaufwerke, Magnetbän­ der und dergleichen, werden verwendet, um Programme und Daten zu halten, auf die gerade nicht von dem Prozessor zugegriffen wird. Der virtuelle Speicher verwendet diese externen Speichereinrichtungen, um die physikalischen Speichereinschränkungen des RAM zu verbessern und schafft das Erscheinungsbild, daß ausreichender Raum in dem RAM verfügbar ist, um sämtlichen geraden erforderli­ chen Befehlscode und Daten zu halten. Der virtuelle Speicher hat eine hierarchische Struktur, die auf einem Seitenverzeichnis, Seitentabellen und Seitenrahmen ba­ siert. Ein Seitenrahmen enthält einen Block nutzbaren Befehlscodes oder nutzbarer Daten. Die Größe des Blocks wird durch konstruktive Erwägungen bestimmt. Eine übli­ che Seitenrahmengröße bei vorhandenen Systemen ist vier Kilobyte. So ist in einem solchen System ein Block mini­ maler Größe, der von dem externen Speicher in den RAM bewegt werden kann, ein 4 K-Block. Die Seitentabelle hält die Basisadressen einer Reihe von Seitenrahmen. Eine Seitentabelle ist von der gleichen Größe wie ein Seiten­ rahmen und kann auf ähnliche Weise in den externen Spei­ cher ausgelagert werden.
Das Seitenverzeichnis ist ähnlich der Seitenta­ belle mit der Ausnahme, daß es die Basisadressen einer Reihe von Seitentabellen hält. Üblicherweise wird es im internen Speicher gehalten und nicht ausgelagert. Die Basisadresse des Seitenverzeichnisses wird in einem in­ ternen CPU-Steuerregister gehalten. Die Funktion des Seitenwechselsystems wird grundsätzlich gut im Stand der Technik verstanden.
Es ist darüber hinaus möglich, eine physikalisch sichere Umgebung zu erzeugen. Das Einbringen einer CPU oder eines Speichers in eine derartige physikalisch sichere Umgebung ist z. B. aus dem US-Patent No. 5,007,083 bekannt. Beispielsweise bestünde ein drakoni­ sches Verfahren des Erzeugens einer physikalisch siche­ ren Umgebung darin, die CPU und ihren RAM in einen Safe zu bringen, wobei Drähte aus dem Safe heraus zu einer externen Speichereinrichtung laufen. Während dies eine sichere Umgebung innerhalb des Safes schafft, sind die zu dem externen Speicher ausgelagerten Daten sofort ge­ fährdet. Darüber hinaus werden die Ressourcenerschöp­ fungsprobleme bei dem Modell der sicheren Umgebung verschlimmert, da sowohl die Kosten als auch der Flä­ chenbedarf eskalieren, um eine physikalisch sichere Um­ gebung aufrechtzuerhalten, z. B. das Erfordernis eines größeren Safe.
Angesichts dessen wäre es wünschenswert, in der Lage zu sein, eine angemessene Sicherheit gegenüber Aus­ tausch- und Änderungsangriffen auf Programme und Daten auch jenseits der Speicherkapazität einer sicheren Umge­ bung zu sichern.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 bzw. durch eine Spei­ cheranordnung mit den Merkmalen des Patentanspruchs 11 gelöst.
Es werden ein Verfahren und ein System zum Auf­ rechterhalten der Integrität und Vertraulichkeit von Seiten offenbart, die aus einer physikalisch sicheren Umgebung zu einer externen Speichereinheit ausgelagert sind. Eine hinausgehende Seite wird ausgewählt, um aus einer physikalisch sicheren Umgebung in eine unsichere Umgebung exportiert zu werden. Es wird ein Integri­ tätsprüfwert erzeugt und für die hinausgehende Seite ge­ speichert. Bei einem bevorzugten Ausführungsbeispiel wird ein Hash-Wert der Seite erzeugt, wobei eine gut bekannte Ein-Weg-Hash-Funktion verwendet wird. Die hinausgehende Seite wird dann unter Verwendung eines kryptographisch starken Verschlüsselungsalgorithmus verschlüsselt. Algorithmen, die bei einem Ausführungs­ beispiel der Erfindung verwendet werden könnten, sind IDEA und DES. Die verschlüsselte Seite wird dann in den externen Speicher exportiert. Aufgrund der Verschlüs­ selung und der Integritätsprüfung wird die Sicherheit der Daten in der hinausgehenden Seite in der unsicheren Umgebung bewahrt.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
KURZBESCHREIBUNG DER ZEICHNUNGEN
Fig. 1 ist ein Blockschaltbild eines Systems ei­ nes Ausführungsbeispiels der Erfindung.
Fig. 2 ist ein Blockschaltbild eines alternativen Ausführungsbeispiels der Erfindung.
Fig. 3 ist ein Ablaufdiagramm einer Software-In­ stallation bei einem Ausführungsbeispiel der Erfindung.
Fig. 4a ist eine Darstellung der Software, die zur Verwendung in der sicheren Umgebung eines Ausfüh­ rungsbeispiels der Erfindung installiert ist.
Fig. 4b ist eine Darstellung des Seitenverzeich­ nis/Seitentabellen-Eintrags eines Ausführungsbeispiels der Erfindung.
Fig. 5a und b ist ein Ablaufdiagramm einer Sei­ tenwechseloperation bei einem Ausführungsbeispiel der Erfindung, nachdem die Installation vollständig ist.
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
Fig. 1 zeigt ein Ausführungsbeispiel der Erfin­ dung, bei welchem eine physikalisch sichere Umgebung 1 mit einer unsicheren Umgebung 2 und insbesondere mit ei­ ner externen Speichereinheit 4 über einen Bus 7 gekop­ pelt ist. Verschiedene Wege zum Erzeugen dieser physika­ lischen Barriere sind allgemein gut im Stand der Technik bekannt, unter anderem eingriffssichere Verkapselungsma­ terialien, eingriffssichere Chipverkapselungen und ein­ griffssichere Scheibenabdeckungen. Es wurden auch andere Wege zum Aufrechterhalten der physikalischen Sicherheit entwickelt. Zwei derartige Beispiele sind in den paral­ lel anhängigen Patentanmeldungen mit der Seriennummer 08/575,298 und dem Titel "SECURE SEMTCONDUCTOR DEVICE" und mit der Seriennummer 08/412,159 und dem Titel "METHOD TO PREVENT INTRUSIONS INTO ELECTRONIC CIRCUITRY", die beide auf den Inhaber der vorliegenden Anmeldung übertragen wurden.
Diese physikalisch sichere Umgebung 1 enthält ei­ nen Prozessor 16, der mit Hilfe eines Busses 17 mit ei­ nem Speicher mit wahlfreiem Zugriff (RAM) 14 gekoppelt ist. Mittels der Busschnittstelleneinheit 19, welche beispielsweise eine Brückeneinheit sein kann und welche sich innerhalb der sicheren Umgebung befinden muß, ist der Bus 17 elektrisch vom Bus 7 isoliert. Wie in Fig. 1 gezeigt, kann ein zusätzlicher Flash-Speicher 15 vorge­ sehen und mit dem Bus 17 gekoppelt sein. Der Flash-Spei­ cher wird zur Langzeitspeicherung von geheimen Informationen verwendet, und ein Teil von ihm kann Anwendungen zugewiesen sein, die in der sicheren Umgebung ablaufen. Darüber hinaus ist bei einem Ausführungsbeispiel das Echtzeit-Kernel für den sicheren Prozessor 16 in dem Flash-Speicher gespeichert. Dies gestattet es, daß sämt­ liche Grundoperationen ohne externe Eingriffe (aktive oder passive) durchgeführt werden können und verbessert die Leistung im Vergleich zu dem Fall, bei dem das Ker­ nel durch die hier beschriebenen Sicherheitsdienste be­ wegt wird.
Die sichere Umgebung ist darüber hinaus mit Daten­ sicherheitsdiensten versehen. In dieser Verbindung führt eine Integritätsüberprüfungsmaschine 13 einen Ein-Weg- Hash von Daten durch, die seitenweise zwischen der si­ cheren Umgebung 1 und der unsicheren Umgebung 2 ausgela­ gert werden. Dies schafft einen Integritätsdienst, wie er unten erläutert wird. Wenn die Daten aus der sicheren Umgebung 1 seitenweise ausgelagert werden, wird der Ein- Weg-Hash-Wert aus der Integritätsprüfmaschine 13 oder irgendein Abschnitt des Werts innerhalb der sicheren Um­ gebung als Integritätsprüfwert (ICV; integrity check va­ lue) für einen späteren Vergleich dann, wenn die Seite der Daten nachfolgend wieder eingelagert wird, gespei­ chert. Eine Verschlüsselungs-/Entschlüsselungs-Maschine 12 verschlüsselt hinausgehende Seiten und entschlüsselt eingehende Seiten an der Schnittstelle, bevor sie zu dem externen Speicher 4 bzw. der Integritätsprüfmaschine 13 gesendet werden, wodurch ein Vertraulichkeitsdienst zur Verfügung gestellt wird. Ein Zufallszahlengenerator 18 ist mit dem Bus 17 gekoppelt, um Verschlüsselungsmate­ rial für die Verschlüsselungsmaschine 12 zu erzeugen. Eine eingehende Seite wird von der Verschlüsselungsma­ schine 12 entschlüsselt und an die Integritätsprüfma­ schine 13 weitergeleitet, welche einen Ein-Weg-Hash-Wert der eingehenden Seite berechnet. Aus dem Hash-Wert wird ein ICV gewonnen und mit dem zuvor gespeicherten, dieser Seite entsprechenden ICV verglichen. Sofern die ICVs übereinstimmen, wird der Seite gestattet, den sicheren RAM 14 zu bevölkern.
Weil das Seiteneinlagern und Seitenauslagern grundsätzlich eine Verzögerung umfaßt und die Sicher­ heitsdienste die Verzögerung im Falle eines Seitenfeh­ lers erhöhen, ist es erwünscht, daß die Verschlüsse­ lungsmaschine 12 und die Integritätsprüfmaschine 13 als spezielle Hardware implementiert werden. Es liegt aber innerhalb des Umfangs und der Erwägungen der Erfindung, daß eine der beiden oder beide Maschinen in Software im­ plementiert sein können. Darüber hinaus ist es aus Lei­ stungsgründen zu bevorzugen, daß die Verschlüsselungsma­ schine eine symmetrische Verschlüsselung implementiert. Schlüssel für eine symmetrische Verschlüsselung neigen dazu, für den gleichen Grad der Sicherheit viel kürzer zu sein, als es Schlüssel für eine asymmetrische Ver­ schlüsselung sind (z. B. ein typischer symmetrischer Schlüssel ist von der Größenordnung von 56 Bits bis 128 Bits, während asymmetrische Schlüssel dazu neigen, mehr als 512 Bits lang zu sein). Dies ist insbesondere bei einer stark speichereingeschränkten Umgebung wichtig, bei welcher Speicherraum für die Schlüssel begrenzt ist. Die symmetrische Verschlüsselung ist darüber hinaus üb­ licherweise Größenordnungen schneller als die asymmetri­ sche Verschlüsselung. Zwei derartige symmetrische Ver­ schlüsselungsschemata sind IDEA und DES. Es können eben­ so andere kryptographisch starke Verschlüsselungsalgo­ rithmen verwendet werden, ohne vom Umfang und den Erwä­ gungen der Erfindung abzuweichen. Ein-Weg-Hash-Funktio­ nen sind grundsätzlich im Stand der Technik gut bekannt. Zwei akzeptable derartige Hash-Funktionen sind SHA-1 und MD5, es können aber auch andere Hash-Funktionen verwen­ det werden, ohne vom Umfang und den Erwägungen der Er­ findung abzuweichen.
Fig. 2 zeigt ein alternatives Ausführungsbeispiel der Erfindung mit zusätzlichen Diensten innerhalb der sicheren Umgebung 20. Bei diesem Ausführungsbeispiel ist die sichere Umgebung 20 als ein Einzelchip implemen­ tiert, das physikalische Sicherheitstechnologien verwen­ det, wie sie im Stand der Technik bekannt sind. Dieses physikalisch sichere Chip befindet sich auf der Mutter­ platine 30 und teilt sich den Bus 7 mit einem Wirtspro­ zessor 26 und einem Wirts-RAM 25. Die Busschnittstellen­ einheit 19 isoliert den Bus 17 der sicheren Umgebung elektrisch von dem Systembus 7. Sowohl der Prozessor 16 als auch der Wirtsprozessor 26 lagern Seitenrahmen zur externen Speichereinheit 4 aus, welche beispielsweise eine Festplatte eines Personalcomputers sein kann. Bei einem Ausführungsbeispiel führt der sichere Prozessor 16 Seitenauslagerungen in 1 K-Inkrementen aus, während der Wirtsprozessor 26 4 K-Inkremente für den Seitenwechsel verwendet. Da der sichere RAM 14 klein ist (z. B. 128 K) ist es erwünscht, eine kleinere Seitengröße zu benutzen, als sie üblicherweise benutzt wird, wenn die Speicherer­ schöpfung kein so großes Problem ist. Zu diesem Zweck wurde eine 1 K-Seitengröße als wünschenswert in der si­ cheren Umgebung 20 gefunden. Dementsprechend hat der Prozessor 16 eine Architektur, um 1 K-Seiten zu verwen­ den. Der Wirtsprozessor 26 behandelt die Seiten des Pro­ zessors 16, die im externen Speicher 4 gespeichert sind, als 1 K-Datenblöcke.
Die sichere Umgebung 20 enthält sowohl eine asym­ metrische Verschlüsselungsmaschine 22 als auch eine sym­ metrische Verschlüsselungsmaschine 23, die beide mit dem Bus 17 gekoppelt sind. Wie oben erwähnt, hält sich die Busschnittstelleneinheit 19 innerhalb der sicheren Umge­ bung auf und isoliert den Bus 17 elektrisch vom System­ bus 7, welcher sich in die unsichere Umgebung erstreckt. Die symmetrische Maschine 23 ist weiterhin der bevorzug­ te Anbieter des Vertraulichkeitsdienstes. Die asymmetrische Maschine 22 wird während der Installation verwen­ det, um digitale Signaturen (Unterschriften) zu überprü­ fen und um die sichere Umgebung grundsätzlich robuster zu machen. Die Installation wird unten erörtert. Es ist wichtig, sich klarzumachen, daß die sichere Umgebung 1 gemäß Fig. 1 und die sichere Umgebung 20 gemäß Fig. 2 zwischen den Ausführungsbeispielen austauschbar sind.
Bei einem Ausführungsbeispiel führt die Verschlüs­ selungsmaschine eine Verschlüsselung von 8 Bits gleich­ zeitig durch, und die Integritätsprüfmaschine führt eine Hash-Operation an 512 Bits gleichzeitig durch. Bei solch einem Ausführungsbeispiel werden FIFOs oder irgendwelche anderen herkömmlichen Puffereinrichtungen als Teile der Verschlüsselungsmaschine zur Verfügung gestellt, um ei­ nen korrekten Datenfluß zu sichern. Die Bestimmung der Länge und der Art der Puffereinrichtungen, die erforder­ lich sind, liegt innerhalb der Fähigkeiten eines Durch­ schnittsfachmanns, dem die Datenflußraten der jeweiligen Maschinen vorgegeben sind.
Irgendwann muß Software in der sicheren Umgebung installiert werden. Solche externe Software wird selbst­ verständlich nicht auf die Weise verschlüsselt, die in­ nerhalb der sicheren Umgebung verwendet wird. Sie wird üblicherweise eine digitale Signatur (digitale Unter­ schrift) haben, welche verwendet werden kann, um die Au­ thentizität der installierten Software zu überprüfen, wenn die Überprüfung einer digitalen Unterschrift eine innerhalb der sicheren Umgebung unterstützte Funktion ist. Fig. 3 veranschaulicht ein Ablaufdiagramm der In­ stallation eines Programms in dem sicheren System. Beim Funktionsblock 120 werden ein Schlüssel und ein Initia­ lisierungsvektor für eine zu installierende Anwendung erzeugt. Die Schlüsselerzeugung kann unter Verwendung eines Zufallszahlengenerators durchgeführt werden, wel­ che zufällige Bits erzeugt. Die zufälligen Bits werden gesammelt, bis die gewünschte Schlüssellänge erreicht ist. Bei einem Ausführungsbeispiel weist der Zufallszah­ lengenerator ein 32Bit-Ausgaberegister auf. Der Prozes­ sor 16 liest das Register so oft, wie es erforderlich ist, um ausreichend viele zufällige Bits für einen voll­ ständigen Schlüssel zu sammeln. Es kann jeweils ein Schlüssel für jede Anwendung erzeugt werden, d. h. sämt­ liche Befehlscodeseiten und Datenseiten, die einer An­ wendung zugeordnet sind, teilen sich den gleichen Schlüssel. Ein Problem bei zwischen Seiten geteilten Schlüsseln besteht darin, daß dann, wenn beispielsweise zwei Datenseiten einen identischen Inhalt haben, sie grundsätzlich zu dem gleichen verschlüsselten Wert ver­ schlüsselt würden. Zusätzlich zu dem Schlüssel jedoch beeinflußt ein Initialisierungsvektor (IV) das Ver­ schlüsselungsergebnis: IVs werden üblicherweise verwen­ det, um eine kryptographische Synchronisation zur Ver­ fügung zu stellen. Ein Modifizieren dieses IV wird wie ein Modifizieren des Schlüssels den sich ergebenden ver­ schlüsselten Wert ändern. Da dieses System im Endeffekt Nachrichten an sich selbst sendet, kann es einen gehei­ men IV für die Verschlüsselungsmaschine aufweisen. Mit einem geheimen IV und der Verwendung beispielsweise der Seitennummer als ein Offset werden unterschiedliche ver­ schlüsselte Daten für jede Seite sichergestellt. Alter­ nativ kann ein separater Schlüssel für jede Seite er­ zeugt werden. Dies erhöht den erforderlichen Speicher, der für die Schlüsselspeicherung zu widmen ist, aber kann die Sicherheit der Daten verbessern, da die Stärke der Verschlüsselung in den Schlüsseln liegt und die Da­ ten umso schwieriger zu entschlüsseln sind, je kleiner die Probe von Daten ist, die unter einem Schlüssel ver­ schlüsselt sind.
Beim Funktionsblock 121 wird eine Seite von Infor­ mationen von der Installationsdiskette gewonnen. Bus 7 gemäß Fig. 1 oder gemäß Fig. 2 würde beispielsweise mit einem (nicht gezeigten) Plattenlaufwerk gekoppelt, daß eine derartige Installationsdiskette enthält, oder mit einer anderen Quelle, wie beispielsweise dem Inter­ net. Beim Funktionsblock 122 wird die eingehende Seite einer Hash-Operation unterzogen, und ein ICV aus ihr er­ zeugt und gespeichert. Das System muß einen Hash-Wert für jede Seite ebenso wie einen Gesamt-Hash-Wert für die installierte Software erzeugen. Nachdem der Hash-Wert der Seite und der sich ergebende ICV erzeugt worden sind, wird im Funktionsblock 123 ein Eintrag zu einer Seitentabelle hinzugefügt. Ein Seitentabelleneintrag enthält einen Seitenortidentifizierer, um ein Lokalisie­ ren der Seite in den externen Speicher zu gestatten, und kann darüber hinaus einen Software-Zeiger zu dem der Seite entsprechenden ICV enthalten. Dies wird unten in Verbindung mit Fig. 4b erörtert. Dieses Verfahren un­ terstellt eine zuvor erstellte Seitentabelle. Das Erzeu­ gen von Seitentabellen ist allgemein im Stand der Tech­ nik gut bekannt. Zwei Optionen zum Zuweisen von Seiten­ rahmen zu einer Seitentabelle werden unten erörtert.
Sobald ein Schlüssel erzeugt und der Verschlüsse­ lungsmaschine zur Verfügung gestellt worden ist, ver­ schlüsselt die Maschine die zuvor einer Hash-Operation unterzogene Seite beim Funktionsblock 124. Die im Funk­ tionsblock 124 verschlüsselte Seite wird beim Funktions­ block 125 zur externen Speichereinheit 4 exportiert. Auf diese Weise hält sich die installierte Seite nicht in dem sicheren RAM 14 auf, solange sie nicht eingelagert worden ist, nachdem die Installation abgeschlossen ist. Beim Entscheidungsblock 126 wird bestimmt, ob die letzte Seite aus der Installationsdiskette oder einer anderen Quelle gewonnen worden ist. Wenn dies nicht der Fall ist, wird die Installation fortgesetzt, indem zum Gewin­ nen einer weiteren Seite zum Funktionsblock 120 zurück­ gekehrt wird. Wenn die letzte Seite gewonnen worden ist, stellt der Entscheidungsblock 127 eine implizite Ent­ scheidung dar, die davon abhängt, ob das System eine Überprüfung der digitalen Signatur (Unterschrift) erfor­ dert. Wenn es eine derarte Überprüfung erfordert, wird beim Funktionsblock 128 die digitale Signatur unter Ver­ wendung der asymmetrischen Maschine entschlüsselt, wobei sich der vom Urheber der Software erzeugte Gesamt-Hash- Wert ergibt, der extrahiert und mit dem gerade berechne­ ten Gesamt-Hash-Wert verglichen wird, um zu überprüfen, daß eine gültige digitale Signatur für die installierte Software vorhanden ist. Eine digitale Signatur ist übli­ cherweise ein Ein-Weg-Hash des gesamten Befehlscode auf der Installationsdiskette, der unter Verwendung des pri­ vaten Teils eines asymmetrischen Schlüssels verschlüs­ selt worden ist. Zu Überprüfungszwecken gestattet es die asymmetrische Maschine, daß diese Signatur unter Verwen­ dung des öffentlichen Teils eines asymmetrischen Schlüs­ sels entschlüsselt wird. Im Entscheidungsblock 129 wird dann, wenn die Signatur authentisch ist, die Installa­ tion im Funktionsblock 132 als abgeschlossen angesehen. Sofern die Signatur nicht authentisch ist, wird im Funk­ tionsblock 131 die Installation zurückgewiesen und im Funktionsblock 132 der zugewiesene externe Speicherraum für andere Zwecke freigemacht. Als eine Frage der Ver­ fahrensweise können ein System oder ein Benutzer auswäh­ len, daß es nicht erforderlich ist, daß sämtliche Soft­ ware eine Signatur zur Installation aufweist. So würden bei einem solchen System Versuche zum Installieren der Software als gültig angenommen werden, und die Installa­ tion wird im Funktionsblock 130, der dem Entscheidungs­ block 127 folgt, als vollständig angesehen.
Ein Ausführungsbeispiel der Erfindung benutzt eine Seitenauslagerungshierarchie, bei welcher sich das Sei­ tenverzeichnis stets in dem sicheren RAM 14 aufhält und eine Seitentabelle jeder Anwendung zugeordnet ist. Die Seitentabelle könnte ausgelagert werden, wenn die Anwen­ dung nicht in Benutzung ist. Beispielsweise könnte bei Überprüfung der digitalen Signatur die Seitentabelle selbst wie auch jede andere Seite ausgelagert werden. Der Seitenauslagerungsprozeß wird näher in Verbindung mit Fig. 5 erörtert.
Bei einem alternativen Ausführungsbeispiel werden sowohl das Seitenverzeichnis als auch die Seitentabellen (für die gesamte virtuelle Speichergröße) in dem siche­ ren RAM gehalten. So werden bei der Installation die Seiten in diejenigen Seitentabellen abgebildet (beispielsweise können sich mehrere Anwendungen eine Seitentabelle teilen), bevor sie zum externen Speicher exportiert werden. Dies reduziert die Verzögerung beim Starten einer Anwendung, weil nur die erforderlichen Seitenrahmen die Sicherheitsdienste durchlaufen müssen, während in dem anderen Ausführungsbeispiel zunächst die Seitentabelle eingelagert werden muß, bevor die benötig­ ten Seitenrahmen identifiziert und eingelagert werden können. Jedoch können Speichereinschränkungen dieses Ausführungsbeispiel ausschließen. Es liegt außerdem im Umfang und Rahmen der Erfindung, daß sich mehrere Anwen­ dungen eine einzige Seitentabelle teilen, welche ausge­ lagert werden kann. Jedoch verkompliziert dies die Zu­ weisung von Verschlüsselungsschlüsseln (solange nicht jeder Seite anstelle jeder Anwendung ein Schlüssel zuge­ wiesen wird) und kann das Wiedergewinnen einer solchen Seitentabelle aus dem externen Speicher zum Zeitpunkt der Installation jeder zweiten und jeder nachfolgenden Anwendung, die sich die Seitentabelle teilen, erfordern.
Fig. 4a zeigt ein Beispiel, bei welchem 4 Stücke von Software 140, 150, 160, 170 (Software soll sowohl Befehlscode als auch Datenseiten umfassen) über die si­ chere Umgebung installiert und in der externen Speicher­ einheit 4, welche eine PC-Wirts-Festplatte sein kann, gespeichert worden sind. Drei der vier Software-Stücke 140, 160, 170 haben aktive Seiten in dem physikalischen sicheren Speicher. Bei einem Ausführungsbeispiel reprä­ sentieren die aktiven Seiten eine Seitentabelle und einen oder mehrere Seitenrahmen für jedes Software-Stück. Beispielsweise weist die Software 140 eine Seitentabelle 141 und Seitenrahmen 142 bis 144 auf, die sich im siche­ ren Speicher aufhalten. In ähnlicher Weise weisen die Software 160 und 170 die Seitentabellen 161 bzw. 171 und die Seitenrahmen 162 bzw. 172 auf, die im sicheren RAM aktiv sind. Umgekehrt sind die Seitentabelle und sämtli­ che Seitenrahmen der Software 150 zur externen Speicher­ einheit 4 ausgelagert.
Fig. 4b zeigt ein Format eines Seitenverzeichnis- und Seitentabelleneintrags, wobei die Seitentabelle oder der Seitenrahmen, die dem Eintrag entsprechen, vorhanden (200) bzw. nicht vorhanden (201) sind. Der der Software 150 gemäß Fig. 4a entsprechende Seitenverzeichnisein­ trag würde die Nicht-vorhanden-Form 201 aufweisen, bei der angenommen wird, daß die Seitentabellen ausgelagert sind und nicht im Speicher gehalten werden. In jedem Fall würden sämtliche Seitentabelleneinträge der Soft­ ware 150 die Nicht-vorhanden-Form 201 aufweisen. Während das Bit, das anzeigt, daß die Seite nicht vorhanden ist, beibehalten wird, können so die verbleibenden 31 Bits beliebig zwischen einem Seitenortidentifizierer und ei­ nem Software-Zeiger zu einem Integritätsprüfwert aufge­ teilt werden. Verschiedene Implementierungen des Seiten­ ortidentifizierers sind im Stand der Technik gut be­ kannt, da das Lokalisieren von Seiten, die ausgelagert worden sind, auch in einem unsicheren System erforder­ lich ist. Mögliche Implementierungen umfassen den Ab­ schnitt der Adresse oder irgendwelche Indexierung in ei­ ne Tabelle von Adressen. Je weniger Bits als Seitenort­ identifizierer verwendet werden, desto mehr Bits sind für den Software-Zeiger zu dem ICV verfügbar. Somit gibt es in einem System mit einem begrenzten Speicher einen Kompromiß bei der Aufteilung der Bits zwischen diesen Funktionen.
Es sind auch andere Implementierungen möglich, bei welchen weniger als der gesamte Hash-Wert als ICV Ver­ wendet wird. Jedoch reduzieren solche Implementierungen die Sicherheit, die von dem Integritätsprüfdienst zur Verfügung gestellt wird. Bei einem derartigen Beispiel wird der Hash-Wert abgeschnitten, um einen ICV zu erzeu­ gen, welcher in dem Seitentabelleneintrag mit dem Seitenortidentifizierer gefüllt wird. Während dies dabei helfen kann, Speichererschöpfungsprobleme zu lösen, in­ dem nicht separate Sicherheitsspeicherseiten zur ICV- Speicherung zugewiesen werden müssen, ist dies nicht zu empfehlen, wo irgendwelche schwerwiegenden Gefahren für die Integrität vorhanden sein können.
Die Fig. 5a und b zeigen ein Ablaufdiagramm ei­ nes Ausführungsbeispiels der Seitenauslagerungsoperation in einer sicheren Umgebung nach der Installation. Am Funktionsblock 50 wird eine Seite als benötigt identifi­ ziert. Beim Entscheidungsblock 51 wird eine Feststellung darüber getroffen, ob die Seite in dem sicheren Speicher vorhanden ist. Sofern die Seite vorhanden ist, tritt ein Seitentreffer auf und keine weiteren Aktivitäten sind erforderlich. Sofern die Seite nicht vorhanden ist, tritt ein Seitenfehler auf. Wenn ein Seitenfehler auf­ tritt, wird am Entscheidungsblock 52 eine Entscheidung darüber getroffen, ob in dem sicheren Speicher Raum ver­ fügbar ist, in welchen die erforderliche Seite abgebil­ det werden kann. Wenn kein Raum verfügbar ist, dann wird beim Funktionsblock 53 eine Seite zum Auslagern ausge­ wählt. Es können verschiedene Auswahlkriterien benutzt werden, wie beispielsweise das der am längsten ungenutz­ ten Seite (LRU; least recently used). Andere Auswahlkri­ terien sind ebenfalls im Stand der Technik gut bekannt. Beim Entscheidungsblock 54 wird eine Entscheidung dar­ über getroffen, ob die hinausgehende Seite modifiziert worden ist. Sofern sie modifiziert worden ist, wird beim Funktionsblock 55 ein Integritätsprüfwert für die hinausgehende Seite berechnet. Üblicherweise wird dies die Berechnung des Ein-Weg-Hash-Werts der hinausgehenden Seite und die Verwendung des Hash-Werts als ICV umfassen (es kann auch weniger als der gesamte Hash-Wert verwen­ det werden, aber dies reduziert die Zuverlässigkeit des Integritätsdienstes). Beim Funktionsblock 56 wird der Integritätsprüfwert an einem vorgegebenen Ort gespei­ chert. Dieser Ort kann die Form einer Datenstruktur an­ nehmen, die separat zum Halten der Hash-Werte eingerich­ tet wird, wobei ein Zeiger in diese Datenstruktur in dem Seitentabellen- oder Seitenverzeichniseintrag gespei­ chert wird, der der hinausgehenden Seite entspricht. Die Datenstruktur kann sich in dem sicheren RAM aufhalten und kann der unten erörterten Seitenauslagerung unter­ worfen sein.
Am Funktionsblock 57 werden ein Verschlüsselungs­ schlüssel und ein IV gewonnen. Wie oben erörtert, werden der Verschlüsselungsschlüssel und der IV zum Zeitpunkt der Installation erzeugt. Beim Funktionsblock 58 wird die hinausgehende Seite unter Verwendung des im Funkti­ onsblock 57 gewonnenen Schlüssels und eines Initialisie­ rungsvektors, der um irgendeinen Wert versetzt sein kann, um eine einzigartige Verschlüsselung zu sichern, verschlüsselt. Beim Funktionsblock 59 wird die ver­ schlüsselte Seite in den externen Speicher exportiert.
Wenn beim Entscheidungsblock 54 festgestellt wird, daß die hinausgehende Seite nicht modifiziert worden ist, oder nachdem der Export der hinausgehenden Seite beim Funktionsblock 59 abgeschlossen ist, wird dem Sy­ stem ermöglicht, den Abschnitt des sicheren Speichers, der von der hinausgehenden Seite belegt war, zu über­ schreiben. Wenn beim Entscheidungsblock 52 festgestellt wurde, daß der sichere Speicher Raum aufweist, oder nachdem das Überschreiben freigegeben worden ist, wird der Seitenortidentifizierer der gewünschten Seite mit Hilfe des zugehörigen Eintrags in dem Seitenverzeichnis oder der Seitentabelle im Funktionsblock 61 gewonnen. Der Schlüssel und der IV, die der erforderlichen Seite entsprechen, werden aus dem Schlüssel- und IV-Speicher beim Funktionsblock 62 gewonnen. Schlüssel und IV kön­ nen, müssen aber nicht, in der gleichen Datenstruktur gespeichert sein. Eine Anforderung für diese Seite wird dann an die externe Speichereinheit beim Funktionsblock 63 gesendet. Der Schlüssel und der IV werden im Funkti­ onsblock 64 verwendet, um die hineinkommende Seite zu entschlüsseln. Die entschlüsselte Seite wird im Funkti­ onsblock 65 einer Hash-Operation unterzogen und es wird ein ICV bestimmt. Der ICV der eingehenden Seite wird mit dem zuvor gespeicherten ICV beim Entscheidungsblock 66 verglichen. Sofern der ICV der hineingekommenen Seite gleich dem ICV ist, der für die entsprechende Seite ge­ speichert wurde, als sie zuvor entweder während der In­ stallation oder bei einer vorhergehenden Verwendung ex­ portiert worden ist, so wird die Seite in dem sicheren Speicher angeordnet, und die Ausführung oder Operation an dieser Seite kann durch den Prozessor beim Funktions­ block 67 durchgeführt werden. Sofern die ICVs nicht übereinstimmen, wird die Seite beim Funktionsblock 68 verworfen und es wird eine Daten-verfälscht-Nachricht an den sicheren Prozessor im Funktionsblock 69 gesendet.
Bei einem Ausführungsbeispiel, insbesondere wenn der sichere RAM-Raum sehr begrenzt ist, können zusätzli­ che Ebenen von Umwegen verwendet werden, um die Spei­ chererschöpfung zu behandeln. Beispielsweise könnten Verschlüsselungsinformationen enthaltende Seiten selbst einer Hash-Operation unterworfen, verschlüsselt (mit ih­ rem eigenen zufällig erzeugten Schlüssel und IV) und zum externen Speicher exportiert werden. Bei diesem Ausfüh­ rungsbeispiel wird die Verzögerung beim Start erhöht, da die verschlüsselnden Informationen zunächst wiedergewon­ nen, entschlüsselt und hinsichtlich ihrer Integrität überprüft werden müssen und der gewünschte Schlüssel und IV identifiziert werden müssen, bevor die Seitentabel­ len- und/oder Seitenrahmen eingelagert werden können. Der Vorteil für dieses System besteht darin, daß die Speicherung des verschlüsselnden Materials nicht zu ei­ ner kritischen Begrenzung wird. Es ist erwünscht, einen separaten Schlüssel und IV für derartige Seiten zu er­ zeugen, beispielsweise keinen Schlüssel und IV zu ver­ wenden, der einer bestimmten Anwendung zugeordnet ist. In ähnlicher Weise können Seiten, die ICVs halten, aus­ gelagert werden. So können verschiedene Ebenen von Umwe­ gen zu Lasten einer erhöhten Startverzögerung verwendet werden.
Bei einigen Ausführungsbeispielen kann es wün­ schenswert sein, das Verschlüsselungsmaterial zu aktua­ lisieren oder zu ändern. Die Dauer, während welcher ein Schlüssel beibehalten wird, ist die Kryptodauer. Die Kryptodauer kann fest sein oder unter Benutzerkontrolle. In beiden Fällen führt dann, wenn eine Aktualisierung erwünscht ist/auftritt, das System eine der Installati­ onsprozedur ähnliche Prozedur durch. Die Seitentabelle muß, wenn sie ausgelagert ist, in den sicheren RAM ge­ bracht werden, bevor ihre Seiten rückentschlüsselt wer­ den können. Statt daß er von der Installationsdiskette herkommt, um von der Integritätsprüfmaschine von dem Bus beansprucht zu werden, wird jeder Seitenrahmen von der externen Speichereinheit eingelagert, entschlüsselt und in der normalen Weise hinsichtlich der Integrität über­ prüft. Dann wird der Seitenrahmen neu verschlüsselt mit einem neuen Schlüssel und IV (jeder der beiden oder beide können auf der Basis einer Anwendung oder auf ei­ ner seitenweisen Basis erzeugt werden) und zurück zum externen Speicher exportiert. Es ist für die Seitenrah­ men nicht erforderlich, den sicheren RAM während dieser Aktualisierung zu bevölkern.
In der vorstehenden Beschreibung wurde die Erfin­ dung unter Bezugnahme auf spezielle Ausführungsbeispiele beschrieben. Es ist jedoch klar, daß verschiedene Modi­ fikationen und Änderungen daran vorgenommen werden kön­ nen, ohne vom breiteren Umfang und Geist der Erfindung, wie er in den anhängigen Ansprüchen angegeben ist, abzu­ weichen. Dementsprechend sind die Beschreibung und die Zeichnungen in einem veranschaulichenden und nicht in einem einschränkenden Sinne zu verstehen. Folglich soll­ te der Umfang der Erfindung nur durch die anhängigen An­ sprüche eingeschränkt sein.

Claims (23)

1. Verfahren zum Aus- und Einlagern von Speichersei­ ten (Paging) zwischen einem Speicher (14) in einer physika­ lisch sicheren Umgebung (1, 20) mit einem Prozessor (16) und einem Speicher (4) außerhalb der sicheren Umgebung, umfas­ send die Schritte:
Erzeugen (55) eines Integritätsprüfwerts aus einer auszulagernden Seite innerhalb der sicheren Umgebung;
Speichern (56) des Integritätsprüfwerts für die auszulagernde Seite;
Verschlüsseln (58) der auszulagernden Seite mit Hilfe eines kryptografischen Algorithmus, was zu einer verschlüsselten Seite führt; und
Exportieren (59) der verschlüsselten Seite in den Speicher außerhalb der sicheren Umgebung.
2. Verfahren nach Anspruch 1, ferner umfassend die Schritte:
Importieren einer verschlüsselten einzulagernden Seite aus dem Speicher außerhalb der sicheren Umgebung;
Entschlüsseln (64) der eingehenden Seite mit Hilfe eines kryptografischen Algorithmus;
Berechnen (65) eines Integritätsprüfwerts aus der eingehenden Seite; und
Vergleichen (66) des Integritätsprüfwerts der ein­ gehenden Seite mit einem zuvor bei der Auslagerung gespei­ cherten Integritätsprüfwert, der dieser Seite entspricht.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet, daß die auszulagernde Seite unter Verwendung eines symmetrischen Verschlüsselungsalgorithmus verschlüsselt wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß ein zufälliger Schlüssel zur Verwendung in dem Verschlüsselungsschritt gewonnen wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß jede sich auf eine einzelne Anwendung beziehende Seite unter Verwendung des gleichen Schlüssels verschlüsselt wird.
6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß für jede auszulagernde Seite ein unterschiedlicher Schlüssel erzeugt wird.
7. Verfahren nach einem der Ansprüche 4-6, dadurch gekennzeichnet, daß die Schlüssel in einer Tabelle in dem sicheren Speicher gespeichert werden.
8. Verfahren nach einem der Ansprüche 1-7, dadurch gekennzeichnet,
daß zum Erzeugen des Integritätsprüfwerts eine Ein-Weg-Hash-Operation an der auszulagernden Seite ausge­ führt wird; und
daß ein vorgegebener Abschnitt des so gewonnenen Hash-Werts der auszulagernden Seite an einem Ort innerhalb der sicheren Ausführungsumgebung gespeichert wird.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß auf den Ort innerhalb der sicheren Umgebung durch einen Zeiger in einem Feld eines der auszulagernden Seite entspre­ chenden Seitentabelleneintrags verwiesen wird.
10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß der vorgegebene Abschnitt der gesamte Hash-Wert ist.
11. Speicheranordnung mit einem mit einem sicheren Speicher (14) innerhalb einer physikalisch sicheren Umgebung (1, 20) gekoppelten sicheren Prozessor, einer unsicheren Speichereinheit (14) außerhalb der sicheren Umgebung (1, 20), die mit der sicheren Umgebung durch einen Bus (7) gekoppelt ist, und einer Schnittstelle (19, 12, 13) inner­ halb der physikalisch sicheren Umgebung, die zwischen dem Bus (7) und dem sicheren Prozessor (16) eingekoppelt ist, wobei die Schnittstelle für eine zu der Speichereinheit auszulagernde Seite einen Integritätsprüfwert erzeugt und die Seite kryptografisch verschlüsselt und sie eine aus der Speichereinheit eingehende, einzulagernde Seite entschlüs­ selt und aus der Seite einen Integritätsprüfwert erzeugt, der mit einem bei Auslagerung gespeicherten Integritätsprüf­ wert verglichen wird.
12. Speicheranordnung nach Anspruch 11, dadurch ge­ kennzeichnet, daß die Schnittstelle eine Integritätsprüfma­ schine (13) und eine mit der Integritätsprüfmaschine (13) gekoppelte Verschlüsselungsmaschine (12) aufweist.
13. Speicheranordnung nach Anspruch 11 oder 12, da­ durch gekennzeichnet, daß ein Abschnitt des sicheren Spei­ chers einen vorgegebenen Abschnitt eines Ein-Weg-Hash-Werts einer ausgelagerten Seite speichert, der beim Export der hinausgehenden Seite von der Integritätsprüfmaschine erzeugt wurde.
14. Speicheranordnung nach einem der Ansprüche 11-13, dadurch gekennzeichnet, daß die Schnittstelle einen Zufallszahlengenerator (18) zum Erzeugen eines Verschlüsse­ lungsschlüssels aufweist.
15. Speicheranordnung nach einem der Ansprüche 11-14, gekennzeichnet durch einen Schlüsselspeicherbereich, der einen jeder Seite, die von der Schnittstelle exportiert worden ist, entsprechenden Schlüssel speichert.
16. Speicheranordnung nach Anspruch 12, dadurch ge­ kennzeichnet, daß die Verschlüsselungsmaschine einen symme­ trischen Massenverschlüsselungsalgorithmus implementiert.
17. Speicheranordnung nach Anspruch 12, dadurch ge­ kennzeichnet, daß die Verschlüsselungsmaschine eine symme­ trische Verschlüsselungsmaschine ist.
18. Speicheranordnung nach Anspruch 17, dadurch ge­ kennzeichnet, daß die Schnittstelle ferner eine asymmetri­ sche Verschlüsselungsmaschine aufweist.
19. Speicheranordnung nach einem der Ansprüche 11-18, dadurch gekennzeichnet, daß die sichere Umgebung sich auf einem einzelnen Chip aufhält.
20. Speicheranordnung nach Anspruch 11, dadurch ge­ kennzeichnet, daß mit dem Bus (7) ein unsicherer Wirtspro­ zessor (26) gekoppelt ist.
21. Verwendung des Verfahrens nach Anspruch 1 zum Ein­ bringen einer Software zur Verwendung in einer sicheren Umgebung, wobei jeweils eine Seite der einzubringenden Soft­ ware in die sichere Umgebung eingelesen wird, die Seite einer Hash-Operation unterzogen wird, um den Integri­ tätsprüfwert zu erzeugen, und die Seite unter Verwendung des Verfahrens nach Anspruch 1 ausgelagert wird.
22. Verfahren nach Anspruch 21, dadurch gekennzeich­ net, daß überprüft wird, ob eine gültige digitale Signatur auf der Software vorhanden ist, und die Einbringung der Software ungültig gemacht wird, sofern keine gültige digita­ le Signatur vorhanden ist.
23. Verfahren nach Anspruch 22, wobei der Schritt des Überprüfens umfaßt:
Aufrechterhalten eines ersten Gesamt-Hash der Software in ihrer eingebrachten Form;
Entschlüsseln eines zweiten Gesamt-Hash, der von einem Software-Urheber verschlüsselt worden ist, unter Ver­ wendung eines öffentlichen Schlüssels und eines asymmetri­ schen Algorithmus; und
Vergleichen des ersten Gesamt-Hash mit dem zweiten Gesamt-Hash.
DE19782169A 1996-12-12 1997-11-25 Kryptographisch geschütztes Seitenwechsel-Subsystem Expired - Lifetime DE19782169C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/764,154 US5757919A (en) 1996-12-12 1996-12-12 Cryptographically protected paging subsystem
PCT/US1997/021968 WO1998026535A1 (en) 1996-12-12 1997-11-25 Cryptographically protected paging subsystem

Publications (1)

Publication Number Publication Date
DE19782169C2 true DE19782169C2 (de) 2001-09-06

Family

ID=25069838

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19782169T Granted DE19782169T1 (de) 1996-12-12 1997-11-25 Kryptographisch geschütztes Seitenwechsel-Subsystem
DE19782169A Expired - Lifetime DE19782169C2 (de) 1996-12-12 1997-11-25 Kryptographisch geschütztes Seitenwechsel-Subsystem

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE19782169T Granted DE19782169T1 (de) 1996-12-12 1997-11-25 Kryptographisch geschütztes Seitenwechsel-Subsystem

Country Status (7)

Country Link
US (1) US5757919A (de)
JP (1) JP4140863B2 (de)
AU (1) AU5688998A (de)
DE (2) DE19782169T1 (de)
GB (1) GB2334866B (de)
HK (1) HK1022797A1 (de)
WO (1) WO1998026535A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1978463A3 (de) * 2007-04-02 2010-06-02 Francotyp-Postalia GmbH Sicherheitsmodul für eine Frankiermaschine

Families Citing this family (226)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7037426B2 (en) * 2000-05-04 2006-05-02 Zenon Environmental Inc. Immersed membrane apparatus
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
US6021201A (en) * 1997-01-07 2000-02-01 Intel Corporation Method and apparatus for integrated ciphering and hashing
US6141698A (en) * 1997-01-29 2000-10-31 Network Commerce Inc. Method and system for injecting new code into existing application code
US6542610B2 (en) 1997-01-30 2003-04-01 Intel Corporation Content protection for digital transmission systems
US6098170A (en) * 1997-05-21 2000-08-01 At&T Corporation System and method for using a second resource to store a data element from a first resource in a first-in first-out queue
US6101603A (en) * 1997-05-21 2000-08-08 At&T Corporation System and method for using a second resource to store a data element from a first resource in a first-in last-out stack
US6237094B1 (en) 1997-05-21 2001-05-22 At&T Corporation System and method for using a second resource to store a data element from a first resource in a first-in first-out queue
US6357004B1 (en) 1997-09-30 2002-03-12 Intel Corporation System and method for ensuring integrity throughout post-processing
US6003117A (en) 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
US6523118B1 (en) * 1998-06-29 2003-02-18 Koninklijke Philips Electronics N.V. Secure cache for instruction and data protection
US20050060549A1 (en) * 1998-10-26 2005-03-17 Microsoft Corporation Controlling access to content based on certificates and access predicates
US6820063B1 (en) 1998-10-26 2004-11-16 Microsoft Corporation Controlling access to content based on certificates and access predicates
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US7174457B1 (en) 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US7139915B2 (en) * 1998-10-26 2006-11-21 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
JP2002529815A (ja) * 1998-11-05 2002-09-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数の暗号化アルゴリズムを用いるセキュアメモリ管理ユニット
JP2000286836A (ja) * 1999-03-30 2000-10-13 Fujitsu Ltd 認証装置および記録媒体
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6389537B1 (en) 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
FI112315B (fi) 1999-05-11 2003-11-14 Nokia Corp Integriteetin suojausmenetelmä radioverkkosignalointia varten
US6629150B1 (en) 1999-06-18 2003-09-30 Intel Corporation Platform and method for creating and using a digital container
US7330970B1 (en) * 1999-07-13 2008-02-12 Microsoft Corporation Methods and systems for protecting information in paging operating systems
US6289455B1 (en) 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
DE50014893D1 (de) * 2000-01-18 2008-02-14 Infineon Technologies Ag Mikroprozessoranordnung und Verfahren zum Betreiben einer Mikroprozessoranordnung
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US6957332B1 (en) * 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6934817B2 (en) * 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
WO2002025866A2 (en) * 2000-09-18 2002-03-28 At & T Corp. Apparatus, system and method for validating integrity of transmitted data
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US6948065B2 (en) 2000-12-27 2005-09-20 Intel Corporation Platform and method for securely transmitting an authorization secret
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7225441B2 (en) 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7117376B2 (en) 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
JP4281252B2 (ja) * 2001-01-16 2009-06-17 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム記憶媒体
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US7191440B2 (en) 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
GB2379299B (en) * 2001-09-04 2006-02-08 Imagination Tech Ltd A texturing system
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
US7243230B2 (en) * 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7373406B2 (en) * 2001-12-12 2008-05-13 Valve Corporation Method and system for effectively communicating file properties and directory structures in a distributed file system
US7243226B2 (en) * 2001-12-12 2007-07-10 Valve Corporation Method and system for enabling content security in a distributed system
US8108687B2 (en) 2001-12-12 2012-01-31 Valve Corporation Method and system for granting access to system and content
US7290040B2 (en) * 2001-12-12 2007-10-30 Valve Corporation Method and system for load balancing an authentication system
US7580972B2 (en) * 2001-12-12 2009-08-25 Valve Corporation Method and system for controlling bandwidth on client and server
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030120918A1 (en) * 2001-12-21 2003-06-26 Intel Corporation Hard drive security for fast boot
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7308576B2 (en) 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US8135962B2 (en) * 2002-03-27 2012-03-13 Globalfoundries Inc. System and method providing region-granular, hardware-controlled memory encryption
US7028149B2 (en) 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US7127548B2 (en) 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7890771B2 (en) * 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US7266842B2 (en) * 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
US6851056B2 (en) 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
US7089419B2 (en) 2002-04-18 2006-08-08 International Business Machines Corporation Control function with multiple security states for facilitating secure operation of an integrated system
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US7139890B2 (en) 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US20030226029A1 (en) * 2002-05-29 2003-12-04 Porter Allen J.C. System for protecting security registers and method thereof
JP4074620B2 (ja) * 2002-06-05 2008-04-09 富士通株式会社 メモリ管理ユニット
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) * 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US7124327B2 (en) 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6996748B2 (en) 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7296267B2 (en) 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
KR20040009766A (ko) * 2002-07-25 2004-01-31 학교법인 성균관대학 암호 시스템에서 송수신 장치 및 방법
US7165181B2 (en) 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318235B2 (en) 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
FR2849233B1 (fr) * 2002-12-24 2005-05-20 Trusted Logic Procede de securisation des systemes informatiques par confinement logiciel
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
US7472285B2 (en) * 2003-06-25 2008-12-30 Intel Corporation Apparatus and method for memory encryption with reduced decryption latency
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7424709B2 (en) 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7103779B2 (en) 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) * 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7366305B2 (en) 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7237051B2 (en) 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
CN101714102B (zh) * 2003-10-03 2013-06-12 夏普株式会社 记录再现装置和文件存取方法
US7636844B2 (en) * 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US20050108534A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Providing services to an open platform implementing subscriber identity module (SIM) capabilities
US7325115B2 (en) * 2003-11-25 2008-01-29 Microsoft Corporation Encryption of system paging file
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
JP4335707B2 (ja) * 2004-02-06 2009-09-30 Necエレクトロニクス株式会社 プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法
EP1577782B1 (de) 2004-02-12 2010-04-28 Irdeto Access B.V. Verfahren und System zur externen Speicherung von Daten
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7564976B2 (en) * 2004-03-02 2009-07-21 International Business Machines Corporation System and method for performing security operations on network data
US8468337B2 (en) * 2004-03-02 2013-06-18 International Business Machines Corporation Secure data transfer over a network
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
FI117452B (fi) * 2004-03-30 2006-10-13 Tamtron Oy Menetelmä ja järjestely tietojen suojaamiseksi
US7620949B2 (en) * 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
EP1870814B1 (de) 2006-06-19 2014-08-13 Texas Instruments France Verfahren und Vorrichtung für sicheren, nachfragebasierten Seitenabruf für Prozessorvorrichtungen
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US20050288056A1 (en) * 2004-06-29 2005-12-29 Bajikar Sundeep M System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7461268B2 (en) * 2004-07-15 2008-12-02 International Business Machines Corporation E-fuses for storing security version data
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7409558B2 (en) * 2004-09-02 2008-08-05 International Business Machines Corporation Low-latency data decryption interface
US7496753B2 (en) * 2004-09-02 2009-02-24 International Business Machines Corporation Data encryption interface for reducing encrypt latency impact on standard traffic
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
ATE549687T1 (de) * 2004-12-21 2012-03-15 Sandisk Corp Speichersystem mit in-stream- datenverschlüsselung/-entschlüsselung
US8396208B2 (en) 2004-12-21 2013-03-12 Sandisk Technologies Inc. Memory system with in stream data encryption/decryption and error correction
US20070180539A1 (en) * 2004-12-21 2007-08-02 Michael Holtzman Memory system with in stream data encryption / decryption
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
EP1890237A1 (de) * 2005-06-01 2008-02-20 Matsushita Electric Industrial Co., Ltd. Computersystem und programmerzeugungseinrichtung
US20060288051A1 (en) * 2005-06-15 2006-12-21 Geoffrey Levand Methods and apparatuses for ensuring file integrity
US20070005935A1 (en) * 2005-06-30 2007-01-04 Khosravi Hormuzd M Method and apparatus for securing and validating paged memory system
GB0516471D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Protected software identifiers for improving security in a computing device
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US7953225B2 (en) * 2005-10-21 2011-05-31 Harris Corporation Mobile wireless communications device with software installation and verification features and related methods
US7681050B2 (en) 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
WO2007094857A1 (en) * 2006-02-09 2007-08-23 Thomson Licensing Method and apparatus for securing digital content
KR100746033B1 (ko) * 2006-02-17 2007-08-06 삼성전자주식회사 무결성 측정 장치 및 방법
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7891012B1 (en) 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US8364965B2 (en) 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
EP1870813B1 (de) * 2006-06-19 2013-01-30 Texas Instruments France Seitenverarbeitende Schaltkreise, Vorrichtungen, Verfahren und Systeme für sicheren, nachfragebasierten Seitenabruf und andere Tätigkeiten
US20070297606A1 (en) * 2006-06-27 2007-12-27 Tkacik Thomas E Multiple key security and method for electronic devices
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
US7778800B2 (en) * 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
US8032764B2 (en) * 2006-11-14 2011-10-04 Texas Instruments Incorporated Electronic devices, information products, processes of manufacture and apparatus for enabling code decryption in a secure mode using decryption wrappers and key programming applications, and other structures
US8607359B2 (en) * 2007-01-22 2013-12-10 Dell Products L.P. Removable hard disk with front panel input
US7861168B2 (en) * 2007-01-22 2010-12-28 Dell Products L.P. Removable hard disk with display information
US8549619B2 (en) * 2007-01-22 2013-10-01 Dell Products L.P. Removable hard disk with embedded security card
WO2008110971A2 (en) * 2007-03-13 2008-09-18 Koninklijke Philips Electronics N.V. Encryption and decryption of auxiliary data
US8087017B1 (en) 2007-04-09 2011-12-27 Moka5, Inc. Trace-assisted prefetching of virtual machines in a distributed system
US8181038B2 (en) * 2007-04-11 2012-05-15 Cyberlink Corp. Systems and methods for executing encrypted programs
US8296738B1 (en) 2007-08-13 2012-10-23 Nvidia Corporation Methods and systems for in-place shader debugging and performance tuning
US9035957B1 (en) 2007-08-15 2015-05-19 Nvidia Corporation Pipeline debug statistics system and method
US8375219B2 (en) * 2007-10-24 2013-02-12 Microsoft Corporation Program and operation verification
US7765500B2 (en) * 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
US8364973B2 (en) * 2007-12-31 2013-01-29 Intel Corporation Dynamic generation of integrity manifest for run-time verification of software program
JP5069359B2 (ja) 2008-03-04 2012-11-07 アップル インコーポレイテッド 少なくとも1つのインストールされたプロフィールに基づいてソフトウェアコードの実行を許可するシステム及び方法
JP2009253490A (ja) * 2008-04-03 2009-10-29 Nec Corp メモリシステムの暗号化方式
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
US8639943B2 (en) * 2008-06-16 2014-01-28 Qualcomm Incorporated Methods and systems for checking run-time integrity of secure code cross-reference to related applications
DE102008029636A1 (de) * 2008-06-23 2009-12-24 Giesecke & Devrient Gmbh Freischalten eines Dienstes auf einem elektronischen Gerät
EP2138946A1 (de) * 2008-06-24 2009-12-30 Nagravision S.A. Sicheres Speicherverwaltungssystem
US8954696B2 (en) 2008-06-24 2015-02-10 Nagravision S.A. Secure memory management system and method
CA2728445C (en) * 2008-06-24 2017-01-24 Nagravision S.A. Secure memory management system and method
CN101859330B (zh) * 2009-04-09 2012-11-21 辉达公司 验证集成电路效能模型的方法
US10628579B2 (en) 2009-06-26 2020-04-21 International Business Machines Corporation System and method for supporting secure objects using a memory access control monitor
US8644499B2 (en) * 2009-09-14 2014-02-04 Broadcom Corporation Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities
US8918575B2 (en) * 2009-09-14 2014-12-23 Broadcom Corporation Method and system for securely programming OTP memory
JP2010191974A (ja) * 2010-03-26 2010-09-02 Sharp Corp 記録再生装置
TWI496161B (zh) * 2010-08-06 2015-08-11 Phison Electronics Corp 記憶體識別碼產生方法、管理方法、控制器與儲存系統
US9727751B2 (en) 2010-10-29 2017-08-08 Nokia Technologies Oy Method and apparatus for applying privacy policies to structured data
JP5316592B2 (ja) * 2011-06-09 2013-10-16 富士通セミコンダクター株式会社 セキュアプロセッサ用プログラム
EP2626804B1 (de) * 2012-02-09 2017-09-13 Inside Secure Verfahren zur Verwaltung von Speicherplatz in einem sicheren nichtflüchtigen Speicher eines Sicherheitsmoduls
US9569633B2 (en) * 2012-06-29 2017-02-14 Intel Corporation Device, system, and method for processor-based data protection
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
US9519568B2 (en) 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
DE112015005602T5 (de) 2014-12-15 2017-09-07 International Business Machines Corporation System und Verfahren zum Unterstützen von sicherer Objekten unter Verwendung einer Überwachungseinrichtung zur Speicherzugriffsteuerung
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
JP7032926B2 (ja) * 2017-12-27 2022-03-09 ラピスセミコンダクタ株式会社 半導体装置及び暗号鍵の制御方法
US11347869B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11403409B2 (en) 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11206128B2 (en) * 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection
JP7178500B2 (ja) * 2019-07-23 2022-11-25 株式会社ソニー・インタラクティブエンタテインメント アクセス制御装置、アクセス制御方法及びプログラム

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5007083A (en) * 1981-03-17 1991-04-09 Constant James N Secure computer
US5283832A (en) * 1991-10-22 1994-02-01 Motorola, Inc. Paging message encryption
US5285496A (en) * 1992-12-14 1994-02-08 Firstperson, Inc. Methods and apparatus for providing a secure paging system
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5446924A (en) * 1993-05-03 1995-08-29 Motorola, Inc. Method for assuring data integrity during a repeater transition
US5452356A (en) * 1993-02-10 1995-09-19 Data Critical Corp. Paging transmission system
EP0697781A1 (de) * 1994-08-18 1996-02-21 Hewlett-Packard Company Verfahren und Vorrichtung zur Herstellung einer bidirektionalen Kommunikation zwischen einem Funkrufgerät und einem Funkrufdienstleistungsanbieter
EP0351387B1 (de) * 1988-07-15 1996-09-11 International Business Machines Corporation Verriegelungs- und Lese-Minimierung in einem segmentierten Speicherraum

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0552051A2 (de) * 1992-01-17 1993-07-21 Hitachi, Ltd. Personenfunkrufsystem mit Sprachübertragungsfunktion und Funkrufempfänger
US5299263A (en) * 1993-03-04 1994-03-29 Bell Communications Research, Inc. Two-way public key authentication and key agreement for low-cost terminals
US5483595A (en) * 1993-09-20 1996-01-09 Seiko Communications Holding N.V. Paging device including password accessed stored cryptographic keys
GB2315575A (en) * 1996-07-19 1998-02-04 Ibm Encryption circuit in I/O subsystem

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5007083A (en) * 1981-03-17 1991-04-09 Constant James N Secure computer
EP0351387B1 (de) * 1988-07-15 1996-09-11 International Business Machines Corporation Verriegelungs- und Lese-Minimierung in einem segmentierten Speicherraum
US5283832A (en) * 1991-10-22 1994-02-01 Motorola, Inc. Paging message encryption
US5285496A (en) * 1992-12-14 1994-02-08 Firstperson, Inc. Methods and apparatus for providing a secure paging system
US5452356A (en) * 1993-02-10 1995-09-19 Data Critical Corp. Paging transmission system
US5446924A (en) * 1993-05-03 1995-08-29 Motorola, Inc. Method for assuring data integrity during a repeater transition
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
EP0697781A1 (de) * 1994-08-18 1996-02-21 Hewlett-Packard Company Verfahren und Vorrichtung zur Herstellung einer bidirektionalen Kommunikation zwischen einem Funkrufgerät und einem Funkrufdienstleistungsanbieter

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SCHULTE, H.: Telekommunikation, Bd. 3, Augsburg, Interest Verlag GmbH, 1994, S. 1-9 *
Telesec, Kommunikationssicherheit, Telekom, Produktentwicklung Telesec, Siegen 1994, S. 8-9, Bild 14 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1978463A3 (de) * 2007-04-02 2010-06-02 Francotyp-Postalia GmbH Sicherheitsmodul für eine Frankiermaschine

Also Published As

Publication number Publication date
JP2001508893A (ja) 2001-07-03
US5757919A (en) 1998-05-26
HK1022797A1 (en) 2000-08-18
GB2334866B (en) 2001-07-18
AU5688998A (en) 1998-07-03
GB2334866A (en) 1999-09-01
WO1998026535A1 (en) 1998-06-18
DE19782169T1 (de) 1999-10-28
GB9912947D0 (en) 1999-08-04
JP4140863B2 (ja) 2008-08-27

Similar Documents

Publication Publication Date Title
DE19782169C2 (de) Kryptographisch geschütztes Seitenwechsel-Subsystem
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
DE10196006B4 (de) Erzeugen einer Schlüsselhierarchie zur Verwendung in einer isolierten Ausführungsumgebung
DE69634880T2 (de) Verfahren und gerät zum kontrollierten zugriff zu verschlüsselten datenakten in einem computersystem
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE102011010613B4 (de) Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
DE112005001654B4 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
DE2810168A1 (de) Verfahren zum sichern eines computerprogramms gegenueber entnahme bzw. wiedergabe durch einen benutzer sowie vorrichtung zur durchfuehrung des verfahrens
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE19964198A1 (de) Datenverarbeitungsvorrichtung
DE10254396A1 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
WO2005036406A1 (de) Entschlüsselung bzw. verschlüsselung bei schreibzugriffen auf einen speicher
EP1612636A1 (de) Verfahren zur Datenarchivierung mit automatischer Ver- und Entschlüsselung
EP1883906B1 (de) Tragbarer datenträger mit sicherer datenverarbeitung
EP3254227B1 (de) Verfahren zum schutz sicherheitsrelevanter daten in einem cachespeicher
EP2499774B1 (de) Verfahren und system zur beschleunigten entschlüsselung von kryptographisch geschützten nutzdateneinheiten
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
EP0280035B1 (de) Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme
DE112006004173T5 (de) Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
EP1661069B1 (de) Prozessorschaltung und verfahren zum zuordnen eines logikchips zu einem speicherchip
DE102018112742A1 (de) Computerimplementiertes Verfahren zum Übergeben eines Datenstrings von einer Anwendung an eine Datenschutzeinrichtung
DE102010045580A1 (de) Schaltungsanordnung und Verfahren zum Betreiben einer Schaltungsanordnung