DE112004002259B4 - Access to private data about the status of a data processing machine from a publicly accessible storage - Google Patents
Access to private data about the status of a data processing machine from a publicly accessible storage Download PDFInfo
- Publication number
- DE112004002259B4 DE112004002259B4 DE112004002259T DE112004002259T DE112004002259B4 DE 112004002259 B4 DE112004002259 B4 DE 112004002259B4 DE 112004002259 T DE112004002259 T DE 112004002259T DE 112004002259 T DE112004002259 T DE 112004002259T DE 112004002259 B4 DE112004002259 B4 DE 112004002259B4
- Authority
- DE
- Germany
- Prior art keywords
- processor
- data
- private
- memory
- status data
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
Abstract
Gemäß einer Ausführnungsform der Erfindung ist ein Verfahren zum Betreiben einer Datenverarbeitungsmaschine beschrieben, wobei Daten zum Status der Maschine an einen Ort in einem Speicher geschrieben werden. Dabei handelt es sich um einen Ort, der für Software zugänglich ist, die für die Maschine geschrieben sein kann. Die geschriebenen Statusdaten sind codiert. Diese Statusdaten können aus dem Speicher gemäß einem Decodierungsprozeß abgerufen werden. Andere Ausführungsformen sind ebenfalls beschrieben und beansprucht.According to one embodiment of the invention, a method for operating a data processing machine is described, wherein data on the status of the machine are written to a location in a memory. This is a location accessible to software that may be written for the machine. The written status data is coded. This status data may be retrieved from the memory according to a decoding process. Other embodiments are also described and claimed.
Description
ALLGEMEINER STAND DER TECHNIKGENERAL PRIOR ART
Einige der Ausführungsformen der Erfindung betreffen die Art und Weise, wie Prozessoren Statusdaten von einem Speicher eines Computersystems ablesen und in diesen schreiben. Andere Ausführungsformen sind ebenfalls beschrieben.Some embodiments of the invention relate to the manner in which processors read and write status data from a memory of a computer system. Other embodiments are also described.
Aufgrund verschiedener Designanforderungen können einige Prozessoren Daten mit privatem Status in öffentlich zugängliche Speicher schreiben. Das Format, die Semantik und der Ort dieser Privatdaten können je nach Design-Implementierung unterschiedlich sein. In der Literatur, die den Prozessor beschreibt, sind solche Speicherregionen oft als „RESERVIERT” markiert, was anzeigt, daß ihr Inhalt nicht gelesen oder modifiziert werden sollte, da sie Privatdaten enthalten. Da diese Daten in einen öffentlich zugänglichen Speicher geschrieben sind, können unglücklicherweise Software-Anwendungen, Betriebssysteme oder externe Agenten (z. B. Eingabe-Ausgabe-Vorrichtungen) auf die Speicherregion zugreifen und die Privatstatusdaten, die darin gespeichert sind, in unzulässiger Weise verwenden. Zugriff und Benutzung dieser Privatdaten durch nicht berechtigte Einheiten kann zu irrtümlichen und/oder unerwünschten Auswirkungen auf Prozessor- und Plattformhersteller und Endnutzer führen.Due to various design requirements, some processors may write private state data to publicly accessible memory. The format, semantics and location of this private data may vary depending on the design implementation. In the literature describing the processor, such storage regions are often marked as "RESERVED," indicating that their contents should not be read or modified because they contain private data. Unfortunately, because this data is written to publicly accessible memory, software applications, operating systems, or external agents (eg, input-output devices) may access the memory region and improperly use the private state data stored therein. Accessing and using this Private Information by unauthorized entities may result in erroneous and / or undesirable effects on processor and platform manufacturers and end users.
Die Aufgabe der Erfindung besteht darin, ein Verfahren sowie eine Vorrichtung bereitzustellen, durch das beziehungsweise durch die in öffentlich zugängliche Speicher geschriebene Privat-Status-daten vor einer unzulässigen Verwendung geschützt sind.The object of the invention is to provide a method and a device by which the private status data written in publicly accessible memories is protected against unauthorized use.
Diese Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen gemäß Anspruch 1, eine Datenverarbeitungsmaschine mit den Merkmalen gemäß Anspruch 12 und ein System mit den Merkmalen gemäß Anspruch 20.This object is achieved by a method having the features according to claim 1, a data processing machine having the features according to claim 12 and a system having the features according to claim 20.
KURZE BESCHREIBUNG DER FIGURENBRIEF DESCRIPTION OF THE FIGURES
Die Ausführungsformen der Erfindung sind beispielhaft und nicht begrenzend in den Figuren der begleitenden Zeichnungen illustriert, wobei gleiche Bezugszeichen gleiche Elemente anzeigen. Es ist zu beachten, daß eine Bezugnahme auf „eine” Ausführungsform der Erfindung in dieser Offenbarung nicht notwendigerweise eine Bezugnahme auf dieselbe Ausführung bedeutet, und daß damit wenigstens eine Ausführungsform gemeint ist.The embodiments of the invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, wherein like reference numerals indicate like elements. It should be noted that a reference to "an" embodiment of the invention in this disclosure does not necessarily mean a reference to the same embodiment, and is meant by at least one embodiment.
GENAUE BESCHREIBUNGPRECISE DESCRIPTION
Der Prozessorstatus, wie er während des Betriebs eines Prozessors in einen Speicher geschrieben wird, umfaßt zwei Arten von Information oder Daten. Eine Art wird hier als Architekturdaten bezeichnet, während die andere als implementierungsspezifische Daten bezeichnet wird (hier auch als „Privatdaten” oder „Privatstatusdaten” bezeichnet).The processor status, as written to memory during operation of a processor, includes two types of information or data. One type is referred to herein as architectural data, while the other is referred to as implementation-specific data (also referred to herein as "private data" or "private status data").
Architekturdaten sind Statusinformationen, die allen Prozessoren einer jeweiligen Klasse gemäß der Bestimmung durch den Hersteller gemeinsam sind, d. h. sie weisen im Wesentlichen dieselbe High-Level-Schnittstelle zwischen Hardware und Software auf. Diese Schnittstelle wird als die Instruction Set Architecture (ISA) bezeichnet. Die Benutzung derselben ISA für mehrere unterschiedliche Prozessorimplementierungen unterstützt die Fähigkeit der Software, die ausdrücklich für eine Implementierung geschrieben wurde, unmodifiziert auf späteren Implementierungen zu laufen. Architecture data is status information that is common to all processors of a given class as determined by the manufacturer, ie, they have substantially the same high-level interface between hardware and software. This interface is referred to as the Instruction Set Architecture (ISA). Using the same ISA for several different processor implementations supports the ability of the software written specifically for an implementation to run unmodified on later implementations.
Eine ISA definiert den Status, der für eine Software verfügbar ist, die auf dem Prozessor läuft, ihr Format und ihre Semantik, sowie verfügbare Betriebsschnittstellen (z. B. Instruktionen, Ereignisse). Ein Teil der ISA-Spezifizierung beschreibt, wie der Prozessor eine oder mehrere Regionen im Speicher der Maschine benutzen kann, um ihren Betrieb zu unterstützen. Diese Speicherregionen können für Software und andere Vorrichtungen der Datenverarbeitungsmaschine zugänglich sein, in der der Prozessor angeordnet ist (z. B. Eingabe-Ausgabe-Vorrichtungen usw.). Der Prozessor kann diese Speicherregionen benutzen, um sowohl Architektur- als auch Privatstatusdaten zu speichern.An ISA defines the status that is available for software running on the processor, its format and semantics, as well as available operational interfaces (eg, instructions, events). Part of the ISA specification describes how the processor can use one or more regions in the memory of the machine to support its operation. These storage regions may be accessible to software and other devices of the data processing machine in which the processor is located (eg, input-output devices, etc.). The processor may use these storage regions to store both architectural and private status data.
Beispielsweise kann an Prozessoren gedacht werden, die die ISA des Intel® Pentium® Prozessors aufweisen, wie er von der Intel Corporation hergestellt wird, hier bezeichnet als die ISA IA-32. Der Prozessor kann Regionen im Speicher während bestimmter Vorgänge einsetzen. Wenn beispielsweise ein ISA-IA-32-Prozessor in den Systemmanagementmodus übergeht, speichert er verschiedene Werte in einer Speicherregion namens Systemmanagement-(SMM)-Status-Speicherbereich. Verschiedene Architekturdaten (z. B. die verschiedenen Maschinenregister wie z. B. ESI, EBP usw.) werden an Orten und in Formaten gespeichert, die in der Dokumentation für die ISA vorgegeben sind. Zusätzlich werden verschiedene Privatdaten in dem Systemmanagement-Statusspeicherbereich gespeichert. In der Dokumentation für die ISA sind diese Privatstatusbereiche als „reserviert” markiert; der Inhalt, das Format und die Semantik dieser Privatdaten sind nicht in der ISA-Dokumentation vorgegeben. Diese „reservierten” Speicherregionen werden hier als „Privatstatusregionen” bezeichnet.For example, processors having the ISA of the Intel® Pentium® processor as manufactured by Intel Corporation, referred to herein as the ISA IA-32, may be considered. The processor can use regions in memory during certain operations. For example, when an ISA IA-32 processor enters system management mode, it stores various values in a memory region called the system management (SMM) state memory area. Various architectural data (eg, the various machine registers such as ESI, EBP, etc.) are stored in locations and formats specified in the documentation for the ISA. In addition, various private data is stored in the system management status storage area. In the documentation for the ISA, these private status areas are marked as "reserved"; the content, format and semantics of this private data are not specified in the ISA documentation. These "reserved" storage regions are referred to herein as "private status regions."
Verschiedene Prozessoren können dazu entworfen sein, verschiedene Privatstatusdaten aufzuweisen, die hier auch als „Privatdaten” bezeichnet werden. Dies kann beispielsweise geschehen, um die Leistung zu verbessern oder Herstellungskosten zu senken. Beispielsweise können neue interne Register hinzugefügt werden, einige der alten können anders genutzt werden, und das Format oder der Ort ihres Inhalts, der in den Speicher geschrieben werden soll, können zwecks höherer Effizienz geändert werden. Als Resultat unterscheiden sich die Privatdaten für diese neueren Prozessoren in Inhalt, Format, Semantik oder Ort von denen der älteren Versionen.Various processors may be designed to have various private status data, also referred to herein as "private data." This can be done, for example, to improve performance or reduce manufacturing costs. For example, new internal registers may be added, some of the old ones may be used differently, and the format or location of their content to be written into memory may be changed for greater efficiency. As a result, the private data for these newer processors differ in content, format, semantics or location from those of the older versions.
Es kann zu Schwierigkeiten kommen, wenn Privatstatusdaten in öffentlich zugänglichen Bereichen wie z. B. dem Hauptspeicher oder einem anderen Speicher gespeichert werden. Hier ist es für Software wie z. B. das Basic Input Output System (BIOS), Betriebssysteme, den virtuelle Maschinenmanager oder Hypervisor, Gerätetreiber oder Applikationen und Hardware wie E/A-Vorrichtungen oder andere externe Agenten möglich, auf die Privatstatusdaten zuzugreifen (d. h. sie zu lesen und/oder zu schreiben). Die Benutzung dieser Privatstatusdaten durch solche Einheiten kann zu irrtümlichen und/oder unerwünschten Auswirkungen auf Prozessor- und Plattformhersteller und Endnutzer führen. Wenn eine Applikation beispielsweise von bestimmten Privatstatusdaten abhängig ist, die in einer Prozessorimplementierung verfügbar sind, könnte die Applikation fehlerhaft arbeiten, wenn sie auf einer unterschiedlichen Prozessorimplementierung läuft, die die Privatstatusdaten anders (oder gar nicht) implementiert. Software, die von Privatdaten abhängig ist, kann auch aufgrund interner Prozessor-Speicher-Kohärenzverhaltensweisen bzw. -richtlinien ausfallen, die von Implementierung zu Implementierung variieren. Softwareabhängigkeit von Privatstatusdaten kann dem Prozessorhersteller zur Verfügung stehende Implementierungsalternativen hinsichtlich der Privatstatusdatennutzung erschweren und/oder einschränken. Aus diesem Grund dokumentieren Prozessorhersteller oft diese Privatstatusdaten (und ihre Speicherung in einer Speicherregion) als RESERVIERT, wodurch sie anzeigen, daß diese in zukünftigen Implementierungen verändert werden können.It can be difficult to find private status data in publicly accessible areas such as: As the main memory or other memory. Here it is for software such. For example, the Basic Input Output System (BIOS), operating systems, virtual machine manager or hypervisor, device drivers or applications, and hardware such as I / O devices or other external agents may access (ie read and / or write) the private state data ). Use of such personal status data by such entities may result in erroneous and / or undesirable effects on processor and platform manufacturers and end users. For example, if an application depends on certain private state data that is available in a processor implementation, the application could malfunction if it runs on a different processor implementation that implements the home state data differently (or not at all). Software that relies on private data may also fail due to internal processor memory coherency behaviors that vary from implementation to implementation. Software dependency on private state data may complicate and / or limit the implementation options available to the processor manufacturer regarding private state data usage. For this reason, processor manufacturers often document this private state data (and its storage in a memory region) as RESERVED, indicating that it may be changed in future implementations.
Die oben genannte Möglichkeit, alte Software auf neueren Maschinen laufen zu lassen, geht davon aus, daß die alte Software auf die Privatdaten einer Maschine (die bei einer neueren Version der Maschine unterschiedlich sein können) nicht falsch zugegriffen hat. Allerdings wurde festgestellt, daß die Softwareentwickler Applikationen und Betriebssystemprogramme schreiben, die das Gegenteil tun, d. h., sie greifen auf Privatdaten, so wie sie z. B. im Hauptspeicher gespeichert sind zu und verlassen sich auf sie. Dies erzeugt ein Problem, da ältere Software auf einer neueren Maschine möglicherweise nicht korrekt läuft, obwohl die neuere Maschine dieselben Architekturdaten aufweist wie die ältere Maschine und immer noch die älteren Mechanismen zum Zugriff auf gespeicherte Statusdaten (z. B. Lade- und Speicherinstruktionen gemäß der ISA) „verstehen” kann. Dies liegt daran, daß bei der neueren Maschine ein Teil oder die Gesamtheit der Privatdaten geändert worden sein kann, was dazu führt, daß die Software nicht richtig arbeitet. Zusätzlich kann der Hersteller zögern, zukünftige Versionen seines Prozessors mit Verbesserungen auszustatten, da dies Kompatibilitätsprobleme mit älterer Software verursachen könnte.The above possibility of running old software on newer machines assumes that the old software did not access the machine's private data (which may be different on a newer version of the machine). However, it has been discovered that software developers write applications and operating system programs that do the opposite, that is, they access private data as described, for example, in US Pat. B. are stored in main memory and rely on them. This creates a problem because older software may not run correctly on a newer machine, although the newer machine has the same architectural data as the older machine and still has the older mechanisms for accessing stored status data (e.g., load and store instructions according to the ISA) can "understand". This is because with the newer machine, some or all of the private data may have been changed, resulting in the software not working properly. In addition, the Manufacturers are reluctant to provide future versions of their processor with enhancements as this could cause compatibility issues with older software.
Gemäß einer Ausführungsform der Erfindung sind eine Datenverarbeitungsmaschine und ein Verfahren zum Betreiben beschrieben, die einen Softwareentwickler davon abhalten können, Software zu schreiben, die von Privatstatusdaten (z. B. einem bestimmten Wert, seinem Ort, seiner Semantik oder seinem Format) abhängig ist, die in einer öffentlich zugänglichen Region des Speichers gespeichert sind. Dies kann es zukünftigen Versionen der Maschine erlauben, ein andersartiges Verhalten hinsichtlich privater Daten an den Tag zu legen, was erforderlich sein kann, da sich das interne Hardwaredesign der Maschine weiterentwickelt, während sie immer noch dieselbe ISA aufweisen, die benötigt wird, um ältere Software lauffähig zu machen.According to one embodiment of the invention, there is described a data processing engine and method for operating that may prevent a software developer from writing software that is dependent on home status data (eg, a particular value, its location, semantics or format), stored in a publicly accessible region of the memory. This may allow future versions of the machine to behave differently from private data, which may be required because the machine's internal hardware design evolves while still having the same ISA needed to run older software to make it workable.
Einige Ausführungsformen der Erfindung können die Anwendung von Architekturschnittstellen zu Daten fördern, die als Privatstatusdaten gespeichert sind. Beispielsweise können Instruktionen vorgesehen sein, um auf Daten zuzugreifen, die als Privatstatusdaten gespeichert sein können, indem die Identität der Daten spezifiziert wird, auf die zugegriffen werden soll, anstelle des Speicherortes der Daten in der Privatstatusdatenregion. Dies erlaubt dahingehend eine Implementierungsfreiheit, wie die Daten gespeichert sind (z. B. innerhalb der Privatstatusregion), während ein Architekturmechanismus zum Zugriff auf die Daten ausgebildet ist. Es wird beispielsweise angenommen, daß ein Datenelement, das in dem Systemmanagement-Statusspeicherbereich der ISA IA-32 (wie oben beschrieben) gespeichert ist, der Wert der CS-Segment-Basisadresse ist. Der Speicherort dieses Datenelements innerhalb des Statusspeicherbereichs ist nicht in der ISA-Spezifikation angegeben. Statt dessen kann von der ISA eine Instruktion bereitgestellt werden, welche die Daten indirekt adressiert. Das Datenelement kann in jeder möglichen Art und Weise in dem Statusspeicherbereich codiert und gespeichert sein, die für eine Prozessorimplementierung gewünscht wird (oder es muß überhaupt nicht in dem Statusspeicherbereich gespeichert sein und kann statt dessen beispielsweise in einem speziellen Register oder einem Ort im Prozessor angeordnet sein).Some embodiments of the invention may promote the application of architectural interfaces to data stored as private state data. For example, instructions may be provided to access data that may be stored as private state data by specifying the identity of the data to be accessed rather than the location of the data in the private state data region. This allows for freedom of implementation of how the data is stored (eg, within the private status region) while an architecture mechanism is configured to access the data. For example, it is assumed that a data item stored in the system management status storage area of the ISA IA-32 (as described above) is the value of the CS segment base address. The location of this data item within the state storage area is not specified in the ISA specification. Instead, an instruction may be provided by the ISA that indirectly addresses the data. The data element may be encoded and stored in whatever manner is desired in the status storage area desired for a processor implementation (or not at all stored in the status storage area and may instead be located, for example, in a particular register or location in the processor ).
Die Erfindung erlaubt es, daß Privatstatusdaten so codiert werden, daß eine schnelle Software-Decodierung der Daten vereitelt wird, im Gegensatz zu den vorgegebenen Architekturschnittstellen. Ausführungsformen der Erfindung können die Codierungskomplexität je nach Zielprozessor oder -plattform variieren. Sobald der Zielprozessor bekannt ist, kann ein Fachmann eine Ausführungsform der Erfindung wählen, die sicherstellt, daß softwarebasierte Verfahren zum Decodieren der gewählten Codierung mehr Zeit benötigen als das Benutzen der vorgegebenen Schnittstellen (z. B. Instruktionen). Beispielsweise können nicht vorgegebene Softwareverfahren dazu in der Lage sein, bestimmte Privatstatusdaten in
Der hier verwendete Begriff „Codieren” umfaßt Konzepte wie Verschlüsselung, Chiffrierung, Formatierung oder die Zuweisung oder Interpretation spezifischer Bitmuster. Von Codierungen durch Ausführungsformen dieser Erfindung wird hier als die Privatdaten „verschleiernd” gesprochen.The term "encoding" as used herein includes concepts such as encryption, ciphering, formatting, or the assignment or interpretation of specific bit patterns. Encodings by embodiments of this invention are referred to herein as "disguised" private data.
Bezugnehmend auf
Der Prozessor
Die E/A-Vorrichtung oder E/A-Vorrichtungen
Der Speicher
Daten zum Status der Maschine
Die abgerufenen Daten können dann in den lokalen Status
Obwohl die Statusdaten, die in den öffentlich zugänglichen Bereich des Speichers
In einer Ausführungsform muß der benutzte Codierungsprozeß nur stark genug sein, um einen Autor der Software
Steuersignale, die benutzt werden, um die Codierung und Decodierung der Privatstatusdaten zu steuern, können an Hardware-Statusmaschinen, Prozessorinstruktionen (auch bekannt als Makroinstruktionen), Betriebsmodi (z. B. PAL-Modi) oder Mode-Bits oder Instruktionsoperationsgruppen, Mikrocodes oder Mikrocode-Operationen (UOPs) und Hardware-Steuersignale oder Ereignisse gekoppelt oder für diese zugänglich sein.Control signals used to control the encoding and decoding of the private status data may be sent to hardware state machines, processor instructions (also known as macro instructions), operating modes (e.g., PAL modes), or mode bits or instruction operation groups, microcodes, or microcode Operations (UOPs) and hardware control signals or events may be coupled to or accessible to them.
Es können verschiedene Arten von Codierungsprozessen benutzt werden. Die Daten, die in die Privatstatusregion des Speichers geschrieben werden, können vor der Speicherung verändert werden. Diese Art des Codierungsprozesses wird als Datencodierung bezeichnet. Alternativ können die Adressen verändert werden, die benutzt werden, um auf Privatstatusdaten in Privatstatusregionen zuzugreifen. Diese Art Codierungsprozeß wird als Adreßverschleierung bezeichnet, und die Umwandlung von der Originaladresse in die verschleierte Adresse wird als Adressenzuordnung bezeichnet. Datencodierung und Adreßverschleierung werden im folgenden beschrieben.Various types of coding processes can be used. The data written to the private status region of the memory may be changed prior to storage. This type of encoding process is called data encoding. Alternatively, the addresses used to access private status data in private status regions may be changed. This type of encoding process is referred to as address veiling, and the conversion from the original address to the veiled address is referred to as address mapping. Data encoding and address obfuscation are described below.
Codierungsprozesse können entweder statisch oder dynamisch sein. Statische Codierungen verändern sich nicht im Laufe der Zeit, während die Maschine läuft (und den Codierungsprozeß durchführt). (Statische Codierungen können während der Initialisierung bzw. der Zurücksetzung des Prozessors oder während der Startphase neu konfiguriert werden, jedoch nicht später während des Betriebs.) Ein Prozeß, der statische Codierungen erzeugt, wird als eine statische Verschleierung bezeichnet.Encoding processes can be either static or dynamic. Static encodings do not change over time while the machine is running (and performing the encoding process). (Static codes can be used during the Initialization, or during the startup phase, but not later during operation.) A process that generates static encodings is referred to as static obfuscation.
Beispielsweise kann sich ein Speicherformat des Inhalts eines bestimmten Elements von Privatstatusdaten, wie es in den Speicher
In einer Ausführungsform werden Privatstatusdaten, wenn sie in einen Speicher geschrieben werden sollen, in eine Speicherregion (z. B. den Hauptspeicher) geschrieben, der zusammenhängende Adressen aufweist. In anderen Ausführungsformen ist der Privatdatenbereich nicht zusammenhängend und besteht aus mehr als einer gesonderten Speicherregion. Es ist nicht nötig, daß die Codierung die Privatstatusregion vollständig besetzt; d. h., einige Bits oder Bytes bleiben ungenutzt. Es kann ein gewisses Maß an Freiheit beim Entwerfen der Codierungs- und/oder Verschleierungsfunktionen erreicht werden, indem die Größe der Privatstatusregion geändert wird, indem sie beispielsweise größer ausgebildet wird, als dies strenggenommen zum Speichern der Privatdaten notwendig wäre. (Dies würde beispielsweise, wie später beschrieben, die Benutzung größerer Polynome im MISR (Multiple Input Shift Register) erlauben.)In one embodiment, private state data, when it is to be written to memory, is written to a memory region (eg, main memory) that has contiguous addresses. In other embodiments, the private data area is contiguous and consists of more than one separate storage region. It is not necessary that the coding completely occupy the private status region; d. h., some bits or bytes are left unused. Some degree of freedom in designing the encoding and / or obfuscation functions can be achieved by changing the size of the private status region, for example, by making it larger than strictly necessary to store the private data. (For example, this would allow the use of larger polynomials in the Multiple Input Shift Register (MISR), as described later.)
In einer Ausführungsform wird ein Multibyte-Wert (z. B. eine 32-Bit „lange” ganze Zahl) von Statusdaten in mehrere Teile aufgeteilt, die dann statt in einer Sequenz an nicht zusammenhängenden Orten gespeichert werden. Auf diese Weise kann ein 4-Byte-Wert in vier 1-Byte-Werte aufgeteilt werden, die an nicht zusammenhängenden Orten in einer Privatstatusregion gespeichert werden. Die Orte, an denen die vier 1-Byte-Werte gespeichert sind, können einem dynamischen und zufälligen Wechsel unterliegen, während die Maschine arbeitet. Natürlich sollten die Ausführungsformen auch dazu in der Lage sein, solche Daten zu lokalisieren und zu decodieren. Es ist zu beachten, daß die ISA bestimmte Anforderungen hinsichtlich der Atomarität der Zugriffe aufstellen kann, für den Fall, daß einzelne Datenwerte unter Benutzung multipler Speicherzugriffe gespeichert oder geladen werden.In one embodiment, a multibyte value (eg, a 32-bit "long" integer) of status data is divided into multiple parts, which are then stored in non-contiguous locations rather than in a sequence. In this way, a 4-byte value can be divided into four 1-byte values stored in non-contiguous locations in a private state region. The locations where the four 1-byte values are stored may undergo a dynamic and random change while the machine is operating. Of course, the embodiments should also be able to locate and decode such data. It should be noted that the ISA may impose certain requirements regarding the atomicity of the accesses in the event that individual data values are stored or loaded using multiple memory accesses.
In einer Ausführungsform der Erfindung werden die Adreßbits codiert, die zum Speicherzugriff benutzt werden. Diese Codierung von Adreßbits kann die Reihenfolge der Adreßbits (oder der Adreßbitgruppen) verändern. Ein Beispiel dafür kann das Umstellen vom Little-Endian-Format auf ein Big-Endian-Format innerhalb eines bestimmten Speicherbereichs sein. Andere Adreßmischzuordnungen sind möglich, wobei einige komplexere Umwandlungen umfassen.In one embodiment of the invention, the address bits used for memory access are encoded. This coding of address bits can change the order of the address bits (or address bit groups). An example of this may be moving from little-endian format to big-endian format within a particular memory area. Other address mixes are possible, with some involving more complex conversions.
Eine andere Art Adreßcodierung ordnet einen Satz von einzigartigen Adressen K einem anderen Satz von einzigartigen Adressen K zu; das heißt, daß das Zuordnen mathematisch gesehen bijektiv ist (sowohl injektiv (eins zu eins) als auch surjektiv (zu)). Hier können die oberen Adreßbits unverändert bleiben, während die unteren Adreßbits modifiziert werden. In solchen Fällen ist es möglich, Zuordnungen zu bilden, die einen bestimmten Speicherbereich sich selbst zuordnen. Das heißt, die Basis-Adreßverschiebung des Speicherabschnitts ist dieselbe, und die Größe der Speicherregion ist dieselbe. Dies ist eine attraktive Lösung, da nur die Daten innerhalb des Speicherabschnitts „verschleiert” werden. Das heißt, nur die Adreßbits innerhalb des Speicherabschnitts werden gemischt.
Adreßverschleierungsmechanismen sind leichter benutzbar, wenn die Privatstatusregionen eine Größe oder eine Basisadresse aufweisen, die Potenzen der zugrundeliegenden N-ären Logik sind. Die meisten gegenwärtigen Prozessoren benutzen Binärlogik, weshalb Privatstatusregionen mit einer Größe oder Basisadresse, die eine Potenz von 2 ist, zu bevorzugen sind. (Es werden hier Binärlogik und -arithmetik behandelt, doch können bei Bedarf auch N-äre Logik und Arithmetik benutzt werden und werden im Allgemeinfall angenommen.) Filter und andere Mechanismen können benutzt werden, um Privatstatusregionen mit einer Größe oder Basisadresse zu verwalten, die nicht Potenzen der N-ären Logik sind. Solche Adreßbit-Manipulationen können neben verschiedenen Speicheranordnungen und virtuellen Speicherverfahren (z. B. Seitenorientierung, Segmentierung usw.) existieren.Address veiling mechanisms are easier to use when the private status regions have a size or base address that is powers of the underlying N-ary logic. Most current processors use binary logic, which is why private status regions with a size or base address that is a power of 2 are preferable. (Binary logic and arithmetic are treated here, but N-ary logic and arithmetic can be used if needed and are generally accepted.) Filters and other mechanisms can be used to manage private status regions with a size or base address that is not Powers of N-ary logic are. Such address bit manipulations may exist in addition to various memory arrangements and virtual memory methods (eg, page orientation, segmentation, etc.).
Adreßverschleierungsmechanismen können die Datenanordnung im Speicher verändern und dazu dienen, die Daten zu mischen, bisweilen jedoch nur mit einer Granularität des Speichers. Bei den meisten gegenwärtigen Prozessoren ist der Hauptspeicher Byteadressierbar, weshalb der Ort individueller Bytes eines Datenelements innerhalb der Privatstatusregion neu angeordnet werden kann, wobei jedoch die Datenbits innerhalb individueller Bytes nicht durch die Adreßverschleierung verändert werden (obwohl sie durch Datencodierungsmechanismen verändert werden können).Address veiling mechanisms may alter the data arrangement in memory and serve to mix the data, but sometimes only with granularity of the memory. For most current processors, the main memory is byte-addressable, and therefore the location of individual bytes of a data item within the private status region can be rearranged, however, the data bits within individual bytes are not altered by the address veiling (although they may be altered by data encoding mechanisms).
Bei diesen Ausführungsformen der Adreßzuordnung können die ursprünglichen Adreßzuordnungen durch einen Decodierungsprozeß extrahiert werden. Diese Extraktion ist die Anwendung einer Umkehrfunktion der Adreßzuordnungsfunktion. Die Auswahl der Zuordnungsfunktion kann unter Berücksichtigung dieser Anforderung erfolgen, da nicht alle Adreßzuordnungsfunktionen umkehrbar sind.In these address mapping embodiments, the original address assignments may be extracted by a decoding process. This extraction is the application of an inverse function of the address assignment function. The selection of the assignment function can take place in consideration of this requirement, since not all address assignment functions are reversible.
Eine Ausführungsform der Erfindung codiert die Datenbits, die in den Speicher geschrieben werden. Diese Datencodierungen können die Daten umformen, die in der Privatstatusregion gespeichert werden, ohne notwendigerweise von Adressierbarkeitsbeschränkungen eingeschränkt zu werden, wie z. B. der Größe des adressierbaren Speichers. Datensegmente können mit anderen Datensegmenten vertauscht werden. Beispielsweise können zwei Halbbytes (d. h. 4-Bit-Segmente in einem Byte) innerhalb jedes Byte vertauscht werden. Datencodierungen können bitweise exklusiv-OR innerhalb einer konstanten XOR-Maske erfolgen. Daten können auch bitweise exklusiv-OR mit der Ausgabe eines MISR (Multiple Input Feedback Shift Register) codiert werden. Datencodierungen können unter Benutzung einer kryptographischen Funktion erfolgen. In diesen Ausführungsformen können die Originaldaten durch einen Decodierungsprozeß extrahiert werden. Dieser Decodierungsprozeß sollte sicherstellen, daß er schneller ist als Decodierungsverfahren, die der Software zur Verfügung stehen, die auf der Plattform läuft (z. B. Benutzung von ISA-definierten Lade- und Speicheroperationen, mathematische Operationen usw.). Die Tabellen
Einige der oben genannten Ausführungsformen können mit statischen Zuordnungen implementiert werden. Das heißt, sie verändern sich während der Betriebszeit von Prozessor oder Plattform nicht. Geeignete Zuordnungen können zum Zeitpunkt des Entwurfs, während der Herstellung, nach der Herstellung oder zu einem frühen Zeitpunkt des Systembetriebs (z. B. während des Systemstarts, beim Einschalten des Systems, bei Zurücksetzen des Prozessors) eingestellt werden. Verschiedene Prozessoren können, müssen aber nicht mit denselben statischen Zuordnungen konfiguriert sein. Wenn Zuordnungen nicht festgelegt sind, bis das System betriebsbereit ist (z. B. zum Systemstart), ist es möglich, bei jedem Prozessorstart eine neue Zuordnung zu wählen. In einer Ausführungsform können verschiedene Steuerungsgruppen (z. B. Betriebsmodi, Gruppen von Instruktionen) jeweils eine unterschiedliche Zuordnungskonfiguration benutzen. Innerhalb einer Steuerungsgruppe bleiben die Zuordnungen konstant. Zwischen Instruktionsgruppen oder Modi können die Zuordnungen jedoch unterschiedlich sein (müssen dies aber nicht).Some of the above embodiments may be implemented with static mappings. That is, they do not change during the operating time of the processor or platform. Suitable assignments may be made at the time of design, during manufacture, after manufacture, or early in system operation (eg, during system boot, when the system is powered up, when the processor is reset). Different processors may or may not be configured with the same static mappings. If mappings are not set until the system is ready (for example, at system startup), it is possible to choose a new mappings each time the processor starts up. In one embodiment, different control groups (eg, operation modes, groups of instructions) may each use a different assignment configuration. Within a control group, the assignments remain constant. However, between instruction groups or modes, the mappings may or may not be different.
Andere Ausführungsformen können mit dynamischen Zuordnungen implementiert sein, die sich verändern, während der Prozessor arbeitet. In einer Ausführungsform können sich Zuordnungskonfigurationen nur dann ändern, wenn gegenwärtig keine verbleibenden codierten Daten in einer Privatstatusregion des Speichers gespeichert sind. Diese Ausführungsform kann einen Zähler benutzen, der erhöht wird, wenn codierte Daten in eine Privatstatusregion des Speichers geschrieben werden, sodaß diese aktiviert wird. Der Zähler wird herabgesetzt, wenn die Privatstatusregion nicht länger als aktiv betrachtet wird. Wenn der Zähler null ist, kann die Zuordnungskonfiguration geändert werden. In einer Ausführungsform wird die Zuordnungskonfiguration für jede Privatstatusregion in einem Zuordnungsdeskriptor gespeichert. Der Zuordnungsdeskriptor kann an einem bekannten, nicht codierten Ort innerhalb der Privatstatusregion selbst gespeichert oder separat durch eine Verfolgungsstruktur wie z. B. eine Warteschlange oder eine Suchtabelle verwaltet werden, die innerhalb oder außerhalb des Prozessors vorgesehen sein kann. In einer Ausführungsform sind unterschiedliche Zuordnungen für jede Privatstatusregion möglich.Other embodiments may be implemented with dynamic allocations that change while the processor is operating. In one embodiment, mapping configurations may only change if no remaining encoded data is currently stored in a private status region of the memory. This embodiment may use a counter which is incremented when coded data is written to a private status region of the memory so that it is activated. The counter is decremented if the Private Status region is no longer considered active. If the counter is zero, the mapping configuration can be changed. In one embodiment, the mapping configuration for each private state region is stored in a mapping descriptor. The assignment descriptor may be stored at a known unencoded location within the private status region itself or separated by a tracking structure such as a tracking structure. For example, a queue or look-up table may be maintained that may be internal or external to the processor. In one embodiment, different associations are possible for each private status region.
Bezugnehmend auf
Eine Ausführungsform der Erfindung benutzt ein Mikrocode-erzeugtes oder Hardware-erzeugtes Steuersignal, das der Verarbeitungslogik anzeigt, daß das abgefragte Datenelement einer Decodierung bedarf. Eine Abwesenheit dieses Signals führt dazu, daß der NEIN-Pfad zu Block
Wenn das Datenelement nicht decodiert werden soll, geht die Verarbeitungslogik zu Verarbeitungsblock
Wenn allerdings das Datenelement decodiert werden soll, bestimmt die Verarbeitungslogik als nächstes anhand der Adresse, die in Verarbeitungsblock
Bezugnehmend auf
Eine Ausführungsform der Erfindung benutzt ein Mikrocode-erzeugtes oder Hardware-erzeugtes Steuersignal, um der Verarbeitungslogik anzuzeigen, daß das geschriebene Datenelement einer Codierung bedarf. Eine Abwesenheit dieses Signals führt dazu, daß der NEIN-Pfad zu Block
Wenn das Datenelement nicht in codierter Form in einer Privatstatusregion gespeichert werden soll, geht die Verarbeitungslogik zu Verarbeitungsblock
Wenn allerdings das Datenelement in codierter Form in einer Privatstatusregion gespeichert werden soll, codiert die Verarbeitungslogik als nächstes das Datenelement (Verarbeitungsblock
Es ist zu beachten, daß die Verarbeitung, die in Verarbeitungsblock
Bezugnehmend auf
In
Wie oben beschrieben, kann die Verschleierung von Daten, die in der codierten Privatstatusregion
Die Tabelle
Hier repräsentiert der Operator „+” eine Modulo-2-Addition (XOR) und „·” repräsentiert eine Modulo-2-Multiplikation (AND). Parameter „t” repräsentiert Zeit (Takte), S, den Status des i-ten Flipflop, Ii, das i-te Inputvektor-Bit, und Pi den i-sten Polynomkoeffizienten. Der Koeffizient Pw ist implizit 1. Um die Adreßmischausführungsform aus
Primitive Polynome der Ordnung w sind insofern nützlich, als sie eine „maximale Sequenz” erzeugen können; das heißt, sie können alle Binärkombinationen oder -muster mit der Bitbreite w erzeugen. Es können primitive Polynome von bis zu
Um unter Benutzung von
Speicherung und Abruf codierter Privatstatusdaten in Speicher
Für dieses Beispiel wurde eine spezielle Mikrooperation (d. h. ein Steuersignal) für den Prozessor festgelegt, die (oder das) benutzt wird, wenn Privatstatusdaten im Speicher gespeichert oder aus diesem abgerufen werden.For this example, a special micro-operation (i.e., a control signal) has been set for the processor that will be used when storing or retrieving private status data in memory.
Eine Adreßerzeugungseinheit (AGU)
Eine Adreßverschleierungs- bzw. -codierungseinheit
In einer Ausführungsform bestimmen die spezielle Mikrooperation oder das UOP-Signal (Steuersignal), ob die Adreßcodierungseinheit
Die hohe Komponente der physikalischen Adresse (erzeugt von TLB
Es ist zu beachten, daß in dieser Ausführungsform eine Region im Speicher
Immer noch bezugnehmend auf
In einigen Ausführungsformen können in der ISA des Prozessors spezielle Instruktionen zum Zugriff auf einige oder alle Privatstatusdaten vorgesehen sein. Diese Instruktionen können, wenn sie ausgeführt werden, zum Transfer nicht codierter Daten von dem Privatstatusbereich
Obwohl der oben beschriebene Mechanismus logische Komponenten aufweist, die innerhalb einer Prozessorvorrichtung implementiert sind, sind andere Anordnungen möglich, wobei ein Teil der Logik oder die gesamte Logik beispielsweise im System-Chipsatz implementiert ist. Zusätzlich können spezielle Buszyklen für den Zugriff auf die Privatstatusregion
Unter Hinwendung auf
Das logische Diagramm aus
In
Wie oben beschrieben, können das Maskenregister
Die Codierung der Inhaltswerte der Privatstatusdaten kann in ähnlicher Weise erreicht werden, wie oben für die Adreßverschleierung beschrieben wurde. Ein Ansatz ist es, die logischen Adreßverschiebungen (für ausgerichtete Regionen von Privatstatusdaten) oder einige konstante Abszissenwerte mit XOR zu verknüpfen, wobei die Inhalte eines gegebenen Priviatstatuselements zu kodieren sind. Ein anspruchsvollerer Codierungsmechanismus kann auf einen Strom von Privatstatusdatenwerten angewandt werden. Eine Variante eines rückgekoppelten Schieberegisterverfahrens (linear, nicht-linear, multi-Input usw.) kann mit einem Initialsamen benutzt werden. Der Initialsamen ist als der Ausgangsstatus definiert, der in das rückgekoppelte Schieberegister geladen wird. Für jeden Datenwert in Folge kann das rückgekoppelte Schieberegister vorgeschoben und sein Inhalt bitweise mit dem Inhalt des internen Registers XOR-verknüpft werden. Dies wird als eine Vigenère-Chiffre bezeichnet, und ein Beispiel hierfür ist in Tabellen
In einer Ausführungsform der Erfindung kann der Prozessor die Privatstatusregion
In einer Ausführungsform der Erfindung kann der Prozessor die Privatstatusregion
Die ISA kann außerdem einen Mechanismus vorsehen, wodurch der VMM bestimmen kann, daß eine Privatstatusregion nicht länger benutzt werden soll (z. B. durch Ausführen einer Instruktion). In anderen Ausführungsformen können Privatstatusregionen unter Benutzung anderer Verfahren zugeteilt werden. Beispielsweise kann eine Privatstatusregion durch Schreiben von modellspezifischen Registern (MSRs), durch Ausführen von Instruktionen in der ISA, durch Schreiben von Speicherorten usw. zugeteilt werden.The ISA may also provide a mechanism whereby the VMM may determine that a private status region should no longer be used (eg, by executing an instruction). In other embodiments, private status regions may be allocated using other methods. For example, a private status region may be assigned by writing model-specific registers (MSRs), by executing instructions in the ISA, by writing memory locations, and so on.
Obwohl die oben genannten Beispiele Ausführungsformen der vorliegenden Erfindung im Kontext von Ausführungseinheiten und logischen Schaltungen beschreiben, lassen sich andere Ausführungsformen der vorliegenden Erfindung mit Hilfe von Software erzielen. Beispielsweise kann die vorliegende Erfindung in einigen Ausführungsformen als ein Computerprogrammprodukt oder als Software vorgesehen sein, die eine Maschine oder ein computerlesbares Medium umfaßt, worauf Instruktionen gespeichert sind, die zum Programmieren eines Computers (oder anderer elektronischer Vorrichtungen) benutzt werden können, um einen Prozeß gemäß einer Ausführungsform der Erfindung durchzuführen. In anderen Ausführungsformen können Vorgänge von spezifischen Hardwarekomponenten durchgeführt werden, die Mikrocode, festverkabelte Logik oder irgendeine andere Kombination programmierter Computerkomponenten und maßgefertigter Hardwarekomponenten aufweisen.Although the above examples describe embodiments of the present invention in the context of execution units and logic circuits, other embodiments of the present invention may be accomplished by software. For example, in some embodiments, the present invention may be embodied as a computer program product or software that includes a machine or computer-readable medium having stored thereon instructions that may be used to program a computer (or other electronic device) to perform a process to perform an embodiment of the invention. In other embodiments, operations may be performed on specific hardware components that include microcode, hardwired logic, or any other combination of programmed computer components and custom hardware components.
So kann ein maschinenlesbares Medium einen Mechanismus zum Speichern oder Übertragen von Information in einer von einer Maschine (z. B. einem Computer) lesbaren Form aufweisen, ist aber nicht beschränkt auf, Disketten, Compact Disks, Lesespeicher (CDROMs) und magnetooptische Disks, Lesespeicher (ROMS), Schreib-Lese-Speicher (RAM), löschbare programmierbare Lesespeicher (EPROM), elektrisch löschbare programmierbare Lesespeicher (EEPROM), magnetische oder optische Karten, Flash-Speicher, eine Übertragung über das Internet, elektrische, optische, akustische oder andere Formen von übertragenen Signalen (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) oder ähnliches.Thus, a machine-readable medium may include, but is not limited to, a mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer), floppy disks, compact disks, read-only memories (CDROMs), and magneto-optic disks, read-only memory (ROMS), random access memory (RAM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), magnetic or optical cards, flash memory, transmission over the Internet, electrical, optical, acoustic or other Shapes of transmitted signals (eg, carrier waves, infrared signals, digital signals, etc.) or the like.
Ferner kann ein Entwurf mehrere Stufen durchlaufen, von der Erzeugung bis zur Simulation hin zur Herstellung. Daten, die einen Entwurf repräsentieren, können den Entwurf auf unterschiedliche Art und Weise repräsentieren. Zunächst, wie es in Simulationen nützlich ist, kann die Hardware unter Benutzung einer Hardware-Beschreibungssprache oder einer anderen funktionalen Beschreibungssprache repräsentiert werden. Außerdem kann auf einigen Stufen des Entwurfsprozesses ein Schaltungslevelmodell mit Logik- und/oder Transistorgattern erzeugt werden. Auch erreichen die meisten Entwürfe auf einer Stufe ein Datenlevel, das die physikalische Anordnung verschiedener Vorrichtungen im Hardwaremodell repräsentiert. Für den Fall, daß übliche Halbleiterherstellungsverfahren benutzt werden, können die Daten, die ein Hardwaremodell repräsentieren, die Daten sein, die das Vorhandensein oder die Abwesenheit verschiedener Merkmale auf verschiedenen Maskenschichten spezifizieren, die benutzt werden, um den integrierten Schaltkreis herzustellen. Bei jeder Repräsentation des Entwurfs können die Daten auf jeder Art maschinenlesbaren Mediums gespeichert werden. Eine optische oder elektrische Welle, die moduliert oder anders erzeugt wird, um solche Information zu übertragen, ein Speicher oder ein magnetischer oder optischer Speicher wie z. B. eine Disk können ein maschinenlesbares Medium sein. Jedes dieser Medien kann den Entwurf oder die Softwareinformation „tragen” oder „anzeigen”. Wenn eine elektrische Trägerwelle, die den Code oder den Entwurf anzeigt oder trägt, übertragen wird, sodaß ein Kopieren, Puffern oder eine Neuübertragung des elektrischen Signals durchgeführt wird, wird eine neue Kopie erstellt. So kann ein Kommunikationsanbieter oder ein Netzwerkanbieter Kopien eines Artikels (einer Trägerwelle) anfertigen, die Verfahren der vorliegenden Erfindung verkörpert.Furthermore, a design may go through several stages, from generation to simulation, to fabrication. Data representing a design can represent the design in different ways. First, as useful in simulations, the hardware may be represented using a hardware description language or other functional description language. In addition, at some stages of the design process, a circuit level model with logic and / or transistor gates may be generated. Also, most designs at one level achieve a level of data that represents the physical arrangement of various devices in the hardware model. In the event that conventional semiconductor manufacturing techniques are used, the data representing a hardware model may be the data that specifies the presence or absence of various features on different mask layers that are used to fabricate the integrated circuit. With each representation of the design, the data can be stored on any type of machine-readable medium. An optical or electrical wave that is modulated or otherwise generated to transmit such information, a memory or a magnetic or optical memory such. B. a disc may be a machine-readable medium. Each of these media may "carry" or "display" the design or software information. When an electric carrier wave indicating or carrying the code or design is transmitted so that copying, buffering or retransmission of the electrical signal is performed, a new copy is made. Thus, a communications provider or a network provider may make copies of an article (a carrier wave) embodying methods of the present invention.
In der vorangegangenen Beschreibung wurde die Erfindung unter Bezugnahme auf verschiedene Verfahren zum Zugreifen auf Daten zum Status einer Datenverarbeitungsmaschine von einem öffentlich zugänglichen Speicher beschrieben. Man wird jedoch verstehen, daß verschiedene Modifizierungen und Änderungen vorgenommen werden können, ohne vom breiteren Geist und Umfang der Ausführungsformen der Erfindung abzuweichen, die in den beiliegenden Ansprüchen definiert ist. Die Beschreibung und die Figuren sind dementsprechend als erläuternd und nicht als begrenzend zu verstehen.In the foregoing description, the invention has been described with reference to various methods for accessing data on the status of a data processing machine from a publicly accessible memory. It will, however, be understood that various modifications and changes may be made without departing from the broader spirit and scope of the embodiments of the invention as defined in the appended claims. The description and the figures are accordingly to be understood as illustrative rather than limiting.
Claims (26)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/724,321 | 2003-11-26 | ||
US10/724,321 US8156343B2 (en) | 2003-11-26 | 2003-11-26 | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
PCT/US2004/038734 WO2005055024A1 (en) | 2003-11-26 | 2004-11-07 | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112004002259T5 DE112004002259T5 (en) | 2006-10-26 |
DE112004002259B4 true DE112004002259B4 (en) | 2013-06-06 |
Family
ID=34592462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112004002259T Expired - Fee Related DE112004002259B4 (en) | 2003-11-26 | 2004-11-07 | Access to private data about the status of a data processing machine from a publicly accessible storage |
Country Status (6)
Country | Link |
---|---|
US (3) | US8156343B2 (en) |
JP (2) | JP2007515709A (en) |
KR (1) | KR100974973B1 (en) |
CN (1) | CN1886711B (en) |
DE (1) | DE112004002259B4 (en) |
WO (1) | WO2005055024A1 (en) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044408A1 (en) * | 2003-08-18 | 2005-02-24 | Bajikar Sundeep M. | Low pin count docking architecture for a trusted platform |
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 |
JP2005182499A (en) * | 2003-12-19 | 2005-07-07 | Matsushita Electric Ind Co Ltd | Parallel arithmetic unit |
US7203808B2 (en) * | 2004-03-19 | 2007-04-10 | Intel Corporation | Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware |
US20060039554A1 (en) * | 2004-08-18 | 2006-02-23 | Roxio, Inc. | High security media encryption |
US9280473B2 (en) * | 2004-12-02 | 2016-03-08 | Intel Corporation | Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner |
US20060150247A1 (en) * | 2004-12-30 | 2006-07-06 | Andrew Gafken | Protection of stored data |
US20060259900A1 (en) * | 2005-05-12 | 2006-11-16 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
US20060259903A1 (en) * | 2005-05-12 | 2006-11-16 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
US8041958B2 (en) * | 2006-02-14 | 2011-10-18 | Lenovo (Singapore) Pte. Ltd. | Method for preventing malicious software from execution within a computer system |
US8694797B2 (en) * | 2006-02-14 | 2014-04-08 | Lenovo (Sinapore) Pte Ltd | Method for preventing malicious software from execution within a computer system |
US8146089B2 (en) * | 2006-06-14 | 2012-03-27 | Intel Corporation | Sharing resources of a partitioned system |
US9280659B2 (en) * | 2006-12-29 | 2016-03-08 | Intel Corporation | Methods and apparatus for remeasuring a virtual machine monitor |
US8904552B2 (en) * | 2007-04-17 | 2014-12-02 | Samsung Electronics Co., Ltd. | System and method for protecting data information stored in storage |
US8848924B2 (en) * | 2008-06-27 | 2014-09-30 | University Of Washington | Privacy-preserving location tracking for devices |
US8719588B2 (en) * | 2008-06-30 | 2014-05-06 | Atmel Corporation | Memory address obfuscation |
US9405931B2 (en) * | 2008-11-14 | 2016-08-02 | Dell Products L.P. | Protected information stream allocation using a virtualized platform |
JP2011232801A (en) * | 2010-04-23 | 2011-11-17 | Renesas Electronics Corp | Information processing system and ic card |
FR2990034B1 (en) * | 2012-04-25 | 2014-04-25 | Inside Secure | METHOD FOR CONTROLLING CYCLIC REDUNDANCY PROTECTED AGAINST AUXILIARY CHANNEL ATTACK |
US9015400B2 (en) * | 2013-03-05 | 2015-04-21 | Qualcomm Incorporated | Methods and systems for reducing the amount of time and computing resources that are required to perform a hardware table walk (HWTW) |
US8983068B2 (en) * | 2013-03-06 | 2015-03-17 | Infineon Technologies Ag | Masked nonlinear feedback shift register |
US9251090B1 (en) * | 2014-06-03 | 2016-02-02 | Amazon Technologies, Inc. | Hypervisor assisted virtual memory obfuscation |
WO2017059396A1 (en) * | 2015-09-30 | 2017-04-06 | Clark Jonathan A | Computer and method for transmitting confidential information in a network |
KR102431928B1 (en) * | 2015-10-29 | 2022-08-16 | 엘지디스플레이 주식회사 | Memory Protection Device And Method And Organic Light Emitting Display Device Including The Same |
US10437953B2 (en) * | 2016-07-08 | 2019-10-08 | efabless corporation | Systems for engineering integrated circuit design and development |
US10146604B2 (en) | 2016-08-23 | 2018-12-04 | Oracle International Corporation | Bad block detection and predictive analytics in NAND flash storage devices |
US11093588B2 (en) * | 2017-06-26 | 2021-08-17 | Micron Technology, Inc. | Memory system including data obfuscation |
CN109450592A (en) * | 2018-09-29 | 2019-03-08 | 广东雅达电子股份有限公司 | A kind of communication protocol recombination method |
US11481336B2 (en) * | 2019-08-19 | 2022-10-25 | Micron Technology, Inc. | Host assisted operations in managed memory devices |
FR3101980B1 (en) * | 2019-10-11 | 2021-12-10 | St Microelectronics Grenoble 2 | Processor |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0700002A1 (en) * | 1994-08-31 | 1996-03-06 | Motorola, Inc. | Modular chip select control circuit and related circuit and methods |
US5655125A (en) * | 1992-12-29 | 1997-08-05 | Intel Corporation | Register for identifying processor characteristics |
US20010018736A1 (en) * | 2000-02-14 | 2001-08-30 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
US20030055928A1 (en) * | 2001-09-03 | 2003-03-20 | Nec Corporation | Automatic computer configuration system, method and program making use of portable terminal |
US20030097551A1 (en) * | 2001-11-16 | 2003-05-22 | Fuller David W. | System and method for a deploying a hardware configuration with a computer program |
Family Cites Families (263)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3699532A (en) * | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
US3996449A (en) | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4162536A (en) | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4247905A (en) | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) * | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
JPS5823570B2 (en) * | 1978-11-30 | 1983-05-16 | 国産電機株式会社 | Liquid level detection device |
JPS5576447A (en) | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4319323A (en) | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4419724A (en) * | 1980-04-14 | 1983-12-06 | Sperry Corporation | Main bus interface package |
US4366537A (en) | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4403283A (en) * | 1980-07-28 | 1983-09-06 | Ncr Corporation | Extended memory system and method |
DE3034581A1 (en) | 1980-09-13 | 1982-04-22 | Robert Bosch Gmbh, 7000 Stuttgart | READ-OUT LOCK FOR ONE-CHIP MICROPROCESSORS |
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
US4558176A (en) * | 1982-09-20 | 1985-12-10 | Arnold Mark G | Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software |
JPS59111561A (en) | 1982-12-17 | 1984-06-27 | Hitachi Ltd | Access controlling system of composite processor system |
US4630269A (en) * | 1983-05-16 | 1986-12-16 | Data General Corporation | Methods for diagnosing malfunctions in a disk drive |
US4759064A (en) | 1985-10-07 | 1988-07-19 | Chaum David L | Blind unanticipated signature systems |
US4975836A (en) | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
JPS61206057A (en) | 1985-03-11 | 1986-09-12 | Hitachi Ltd | Address converting device |
FR2592510B1 (en) | 1985-12-31 | 1988-02-12 | Bull Cp8 | METHOD AND APPARATUS FOR CERTIFYING SERVICES OBTAINED USING A PORTABLE MEDIUM SUCH AS A MEMORY CARD |
FR2601535B1 (en) | 1986-07-11 | 1988-10-21 | Bull Cp8 | METHOD FOR CERTIFYING THE AUTHENTICITY OF DATA EXCHANGED BETWEEN TWO DEVICES CONNECTED LOCALLY OR REMOTELY THROUGH A TRANSMISSION LINE |
FR2601476B1 (en) | 1986-07-11 | 1988-10-21 | Bull Cp8 | METHOD FOR AUTHENTICATING EXTERNAL AUTHORIZATION DATA BY A PORTABLE OBJECT SUCH AS A MEMORY CARD |
FR2601525B1 (en) | 1986-07-11 | 1988-10-21 | Bull Cp8 | SECURITY DEVICE PROHIBITING THE OPERATION OF AN ELECTRONIC ASSEMBLY AFTER A FIRST SHUTDOWN OF ITS POWER SUPPLY |
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
JPS63253451A (en) * | 1987-04-10 | 1988-10-20 | Hitachi Ltd | Control system for security of storage device |
FR2618002B1 (en) | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | METHOD AND SYSTEM FOR AUTHENTICATING ELECTRONIC MEMORY CARDS |
US5007082A (en) | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
FR2640798B1 (en) | 1988-12-20 | 1993-01-08 | Bull Cp8 | DATA PROCESSING DEVICE COMPRISING AN ELECTRICALLY ERASABLE AND REPROGRAMMABLE NON-VOLATILE MEMORY |
JPH02171934A (en) | 1988-12-26 | 1990-07-03 | Hitachi Ltd | Virtual machine system |
JPH02208740A (en) | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | Virtual computer control system |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (en) | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | Display control method in virtual machine |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
JP2825550B2 (en) | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | Multiple virtual space address control method and computer system |
CA2010591C (en) | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
CA2027799A1 (en) | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
EP0473913A3 (en) | 1990-09-04 | 1992-12-16 | International Business Machines Corporation | Method and apparatus for providing a service pool of virtual machines for a plurality of vm users |
US5108590A (en) | 1990-09-12 | 1992-04-28 | Disanto Dennis | Water dispenser |
US5230069A (en) | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
US5317705A (en) | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5287363A (en) * | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5437033A (en) | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5255379A (en) | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5453003A (en) | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
US5551033A (en) | 1991-05-17 | 1996-08-27 | Zenith Data Systems Corporation | Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program |
JPH04348434A (en) | 1991-05-27 | 1992-12-03 | Hitachi Ltd | Virtual computer system |
US5319760A (en) | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5522075A (en) | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5455909A (en) | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
JPH06236284A (en) | 1991-10-21 | 1994-08-23 | Intel Corp | Method for preservation and restoration of computer-system processing state and computer system |
US5627987A (en) | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5486529A (en) | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5610981A (en) | 1992-06-04 | 1997-03-11 | Integrated Technologies Of America, Inc. | Preboot protection for a data security system with anti-intrusion capability |
US5237616A (en) * | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
US5796835A (en) | 1992-10-27 | 1998-08-18 | Bull Cp8 | Method and system for writing information in a data carrier making it possible to later certify the originality of this information |
JP2765411B2 (en) | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | Virtual computer system |
EP0600112A1 (en) | 1992-11-30 | 1994-06-08 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Data processing system with virtual memory addressing and memory access controlled by keys |
US5668971A (en) * | 1992-12-01 | 1997-09-16 | Compaq Computer Corporation | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer |
JPH06187178A (en) | 1992-12-18 | 1994-07-08 | Hitachi Ltd | Input and output interruption control method for virtual computer system |
US5483656A (en) * | 1993-01-14 | 1996-01-09 | Apple Computer, Inc. | System for managing power consumption of devices coupled to a common bus |
US5469557A (en) | 1993-03-05 | 1995-11-21 | Microchip Technology Incorporated | Code protection in microcontroller with EEPROM fuses |
FR2703800B1 (en) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Method for signing a computer file, and device for implementing it. |
FR2704341B1 (en) | 1993-04-22 | 1995-06-02 | Bull Cp8 | Device for protecting the keys of a smart card. |
JPH06348867A (en) | 1993-06-04 | 1994-12-22 | Hitachi Ltd | Microcomputer |
FR2706210B1 (en) | 1993-06-08 | 1995-07-21 | Bull Cp8 | Method for authenticating a portable object by an offline terminal, portable object and corresponding terminal. |
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5825880A (en) * | 1994-01-13 | 1998-10-20 | Sudia; Frank W. | Multi-step digital signature method and system |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5604805A (en) * | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
FR2717286B1 (en) | 1994-03-09 | 1996-04-05 | Bull Cp8 | Method and device for authenticating a data medium intended to allow a transaction or access to a service or a place, and corresponding medium. |
JP3642533B2 (en) * | 1994-04-26 | 2005-04-27 | 株式会社東芝 | Program card and computer using the same |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5533123A (en) | 1994-06-28 | 1996-07-02 | National Semiconductor Corporation | Programmable distributed personal security |
US5978481A (en) | 1994-08-16 | 1999-11-02 | Intel Corporation | Modem compatible method and apparatus for encrypting data that is transparent to software applications |
JPH0883211A (en) * | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | Data processor |
DE69534757T2 (en) | 1994-09-15 | 2006-08-31 | International Business Machines Corp. | System and method for secure storage and distribution of data using digital signatures |
US6058478A (en) | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
FR2725537B1 (en) | 1994-10-11 | 1996-11-22 | Bull Cp8 | METHOD FOR LOADING A PROTECTED MEMORY AREA OF AN INFORMATION PROCESSING DEVICE AND ASSOCIATED DEVICE |
US5903752A (en) | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5606617A (en) | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US5564040A (en) | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
US6269392B1 (en) | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US5560013A (en) * | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5555414A (en) | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
US5615263A (en) | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
FR2731536B1 (en) | 1995-03-10 | 1997-04-18 | Schlumberger Ind Sa | METHOD FOR SECURE INFORMATION RECORDING ON A PORTABLE MEDIUM |
US5717903A (en) | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3451595B2 (en) | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Microprocessor with architectural mode control capable of supporting extension to two distinct instruction set architectures |
JPH0944407A (en) * | 1995-08-02 | 1997-02-14 | Nec Eng Ltd | Method for protecting data file and security system |
US5684948A (en) * | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
US5633929A (en) * | 1995-09-15 | 1997-05-27 | Rsa Data Security, Inc | Cryptographic key escrow system having reduced vulnerability to harvesting attacks |
US5737760A (en) | 1995-10-06 | 1998-04-07 | Motorola Inc. | Microcontroller with security logic circuit which prevents reading of internal memory by external program |
US6093213A (en) * | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
JP3693721B2 (en) | 1995-11-10 | 2005-09-07 | Necエレクトロニクス株式会社 | Microcomputer with built-in flash memory and test method thereof |
IL116708A (en) | 1996-01-08 | 2000-12-06 | Smart Link Ltd | Real-time task manager for a personal computer |
WO1997025798A1 (en) | 1996-01-11 | 1997-07-17 | Mrj, Inc. | System for controlling access and distribution of digital property |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
US5860028A (en) * | 1996-02-01 | 1999-01-12 | Paragon Electric Company, Inc. | I/O bus expansion system wherein processor checks plurality of possible address until a response from the peripheral selected by address decoder using user input |
IL117085A (en) | 1996-02-08 | 2005-07-25 | Milsys Ltd | Secure computer system |
US5835594A (en) | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5978892A (en) | 1996-05-03 | 1999-11-02 | Digital Equipment Corporation | Virtual memory allocation in a virtual address space having an inaccessible gap |
US5809546A (en) * | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US6175925B1 (en) | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
US6205550B1 (en) | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US6178509B1 (en) | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5740178A (en) * | 1996-08-29 | 1998-04-14 | Lucent Technologies Inc. | Software for controlling a reliable backup memory |
WO1998012620A1 (en) | 1996-09-20 | 1998-03-26 | Mitsubishi Denki Kabushiki Kaisha | Microcomputer having reset control function |
US6055637A (en) | 1996-09-27 | 2000-04-25 | Electronic Data Systems Corporation | System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5935242A (en) * | 1996-10-28 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for initializing a device |
JPH10134008A (en) | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | Semiconductor device and computer system |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
DE19649292A1 (en) | 1996-11-28 | 1998-06-04 | Deutsche Telekom Ag | Access protection method for pay television |
US5901225A (en) | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US5757919A (en) | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US5818939A (en) | 1996-12-18 | 1998-10-06 | Intel Corporation | Optimized security functionality in an electronic system |
US6412035B1 (en) | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
US6148401A (en) | 1997-02-05 | 2000-11-14 | At&T Corp. | System and method for providing assurance to a host that a piece of software possesses a particular property |
US5953502A (en) | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
JP4000654B2 (en) | 1997-02-27 | 2007-10-31 | セイコーエプソン株式会社 | Semiconductor device and electronic equipment |
EP0970411B1 (en) | 1997-03-27 | 2002-05-15 | BRITISH TELECOMMUNICATIONS public limited company | Copy protection of data |
US6272637B1 (en) | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US6557104B2 (en) * | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US6044478A (en) | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6075938A (en) | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6175924B1 (en) | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6035374A (en) * | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
US6584565B1 (en) | 1997-07-15 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Method and apparatus for long term verification of digital signatures |
US6014745A (en) | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US6212635B1 (en) | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
US5978475A (en) | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US6188995B1 (en) | 1997-07-28 | 2001-02-13 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
US5919257A (en) * | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
DE19735948C1 (en) | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Method for improving controllability in data processing equipment with translation-look-aside-buffer (TLB) |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US5935247A (en) * | 1997-09-18 | 1999-08-10 | Geneticware Co., Ltd. | Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same |
US6148379A (en) | 1997-09-19 | 2000-11-14 | Silicon Graphics, Inc. | System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system |
US6182089B1 (en) | 1997-09-23 | 2001-01-30 | Silicon Graphics, Inc. | Method, system and computer program product for dynamically allocating large memory pages of different sizes |
US5987572A (en) * | 1997-09-29 | 1999-11-16 | Intel Corporation | Method and apparatus employing a dynamic encryption interface between a processor and a memory |
US6061794A (en) | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6357004B1 (en) | 1997-09-30 | 2002-03-12 | Intel Corporation | System and method for ensuring integrity throughout post-processing |
US5970147A (en) | 1997-09-30 | 1999-10-19 | Intel Corporation | System and method for configuring and registering a cryptographic device |
US5987604A (en) | 1997-10-07 | 1999-11-16 | Phoenix Technologies, Ltd. | Method and apparatus for providing execution of system management mode services in virtual mode |
US6085296A (en) | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
US6378072B1 (en) | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
US6108644A (en) | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6131166A (en) * | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
US6192455B1 (en) | 1998-03-30 | 2001-02-20 | Intel Corporation | Apparatus and method for preventing access to SMRAM space through AGP addressing |
US6374286B1 (en) | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
US6173417B1 (en) | 1998-04-30 | 2001-01-09 | Intel Corporation | Initializing and restarting operating systems |
US6339826B2 (en) | 1998-05-05 | 2002-01-15 | International Business Machines Corp. | Client-server system for maintaining a user desktop consistent with server application user access permissions |
US6397242B1 (en) | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
FR2778998B1 (en) | 1998-05-20 | 2000-06-30 | Schlumberger Ind Sa | METHOD FOR AUTHENTICATING A PERSONAL CODE OF A USER OF AN INTEGRATED CIRCUIT CARD |
DE69942712D1 (en) | 1998-05-29 | 2010-10-14 | Texas Instruments Inc | Secure computing device |
US6421702B1 (en) | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
WO1999065579A1 (en) | 1998-06-17 | 1999-12-23 | Aristocrat Technologies Australia Pty. Ltd. | Software verification and authentication |
US6289438B1 (en) * | 1998-07-29 | 2001-09-11 | Kabushiki Kaisha Toshiba | Microprocessor cache redundancy scheme using store buffer |
US6339815B1 (en) | 1998-08-14 | 2002-01-15 | Silicon Storage Technology, Inc. | Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space |
US6505279B1 (en) | 1998-08-14 | 2003-01-07 | Silicon Storage Technology, Inc. | Microcontroller system having security circuitry to selectively lock portions of a program memory address space |
JP2000076139A (en) | 1998-08-28 | 2000-03-14 | Nippon Telegr & Teleph Corp <Ntt> | Portable information storage medium |
US6363485B1 (en) | 1998-09-09 | 2002-03-26 | Entrust Technologies Limited | Multi-factor biometric authenticating device and method |
JP2000090002A (en) * | 1998-09-09 | 2000-03-31 | Toshiba Corp | Data base managing system |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
US6230248B1 (en) | 1998-10-12 | 2001-05-08 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US6327652B1 (en) * | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
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 |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US6445797B1 (en) | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
US6463537B1 (en) | 1999-01-04 | 2002-10-08 | Codex Technologies, Inc. | Modified computer motherboard security and identification system |
US6282650B1 (en) | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6560627B1 (en) * | 1999-01-28 | 2003-05-06 | Cisco Technology, Inc. | Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore |
US6188257B1 (en) | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
EP1030237A1 (en) | 1999-02-15 | 2000-08-23 | Hewlett-Packard Company | Trusted hardware device in a computer |
US6272533B1 (en) | 1999-02-16 | 2001-08-07 | Hendrik A. Browne | Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device |
US7225333B2 (en) * | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US6615278B1 (en) * | 1999-03-29 | 2003-09-02 | International Business Machines Corporation | Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment |
US6684326B1 (en) * | 1999-03-31 | 2004-01-27 | International Business Machines Corporation | Method and system for authenticated boot operations in a computer system of a networked computing environment |
US6651171B1 (en) * | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
CA2368858A1 (en) | 1999-04-12 | 2000-10-19 | Digital Media On Demand, Inc. | Secure electronic commerce system |
US6389537B1 (en) | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6275933B1 (en) | 1999-04-30 | 2001-08-14 | 3Com Corporation | Security system for a computerized apparatus |
EP1056014A1 (en) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System for providing a trustworthy user interface |
EP1055989A1 (en) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System for digitally signing a document |
US6321314B1 (en) | 1999-06-09 | 2001-11-20 | Ati International S.R.L. | Method and apparatus for restricting memory access |
US6633981B1 (en) | 1999-06-18 | 2003-10-14 | Intel Corporation | Electronic system and method for controlling access through user authentication |
US6158546A (en) | 1999-06-25 | 2000-12-12 | Tenneco Automotive Inc. | Straight through muffler with conically-ended output passage |
JP3602984B2 (en) * | 1999-07-09 | 2004-12-15 | 富士通株式会社 | Memory device |
US6301646B1 (en) | 1999-07-30 | 2001-10-09 | Curl Corporation | Pointer verification system and method |
US6779114B1 (en) * | 1999-08-19 | 2004-08-17 | Cloakware Corporation | Tamper resistant software-control flow encoding |
US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
JP2001148344A (en) | 1999-09-09 | 2001-05-29 | Nikon Corp | Aligner, method for controlling output of energy source, laser using the method and method for manufacturing device |
EP1085396A1 (en) | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Operation of trusted state in computing platform |
US6535988B1 (en) | 1999-09-29 | 2003-03-18 | Intel Corporation | System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate |
US6374317B1 (en) | 1999-10-07 | 2002-04-16 | Intel Corporation | Method and apparatus for initializing a computer interface |
GB9923804D0 (en) | 1999-10-08 | 1999-12-08 | Hewlett Packard Co | Electronic commerce system |
GB9923802D0 (en) | 1999-10-08 | 1999-12-08 | Hewlett Packard Co | User authentication |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
JP4226760B2 (en) | 2000-05-08 | 2009-02-18 | 株式会社東芝 | Microprocessor, multitask execution method using the same, and multired execution method |
JP3801833B2 (en) * | 2000-02-14 | 2006-07-26 | 株式会社東芝 | Microprocessor |
FR2805074B1 (en) | 2000-02-15 | 2003-06-27 | Ascom Monetel Sa | ANTI-INTRUSION DEVICE |
WO2001063994A2 (en) | 2000-02-23 | 2001-08-30 | Iridian Technologies, Inc. | Tamper proof case for electronic devices having memories with sensitive information |
AU2001251701A1 (en) | 2000-02-25 | 2001-09-03 | Identix Incorporated | Secure transaction system |
WO2001065366A1 (en) | 2000-03-02 | 2001-09-07 | Alarity Corporation | System and method for process protection |
JP3710671B2 (en) * | 2000-03-14 | 2005-10-26 | シャープ株式会社 | One-chip microcomputer, IC card using the same, and access control method for one-chip microcomputer |
CA2341931C (en) | 2000-03-24 | 2006-05-30 | Contentguard Holdings, Inc. | System and method for protection of digital works |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6990579B1 (en) | 2000-03-31 | 2006-01-24 | Intel Corporation | Platform and method for remote attestation of a platform |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6507904B1 (en) | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
CA2305078A1 (en) * | 2000-04-12 | 2001-10-12 | Cloakware Corporation | Tamper resistant software - mass data encoding |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
GB0020416D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
US20020062452A1 (en) | 2000-08-18 | 2002-05-23 | Warwick Ford | Countering credentials copying |
US7149878B1 (en) * | 2000-10-30 | 2006-12-12 | Mips Technologies, Inc. | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values |
US6948065B2 (en) | 2000-12-27 | 2005-09-20 | Intel Corporation | Platform and method for securely transmitting an authorization secret |
JP4098478B2 (en) * | 2001-01-31 | 2008-06-11 | 株式会社東芝 | Microprocessor |
US7631160B2 (en) * | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
US8909555B2 (en) | 2001-04-24 | 2014-12-09 | Hewlett-Packard Development Company, L.P. | Information security system |
US6976136B2 (en) * | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
US7676430B2 (en) * | 2001-05-09 | 2010-03-09 | Lenovo (Singapore) Ptd. Ltd. | System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset |
US20030061385A1 (en) * | 2001-05-31 | 2003-03-27 | Lucas Gonze | Computer network interpretation and translation format for simple and complex machines |
EP1271277A3 (en) | 2001-06-26 | 2003-02-05 | Redstrike B.V. | Security system and software to prevent unauthorized use of a computing device |
US20030018892A1 (en) | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
JP2003051819A (en) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | Microprocessor |
US6996725B2 (en) * | 2001-08-16 | 2006-02-07 | Dallas Semiconductor Corporation | Encryption-based security protection for processors |
JP4226816B2 (en) * | 2001-09-28 | 2009-02-18 | 株式会社東芝 | Microprocessor |
US7191464B2 (en) * | 2001-10-16 | 2007-03-13 | Lenovo Pte. Ltd. | Method and system for tracking a secure boot in a trusted computing environment |
JP4335516B2 (en) * | 2001-12-04 | 2009-09-30 | パナソニック株式会社 | Video encoding apparatus and method using a plurality of processors |
US7103771B2 (en) * | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
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 |
US20030126453A1 (en) * | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7107460B2 (en) * | 2002-02-15 | 2006-09-12 | International Business Machines Corporation | Method and system for securing enablement access to a data security device |
US7343493B2 (en) * | 2002-03-28 | 2008-03-11 | Lenovo (Singapore) Pte. Ltd. | Encrypted file system using TCPA |
US6986028B2 (en) * | 2002-04-22 | 2006-01-10 | Texas Instruments Incorporated | Repeat block with zero cycle overhead nesting |
US7729386B2 (en) * | 2002-09-04 | 2010-06-01 | Tellabs Operations, Inc. | Systems and methods for frame synchronization |
US7818519B2 (en) * | 2002-12-02 | 2010-10-19 | Silverbrook Research Pty Ltd | Timeslot arbitration scheme |
US7318141B2 (en) * | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
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 |
-
2003
- 2003-11-26 US US10/724,321 patent/US8156343B2/en not_active Expired - Fee Related
-
2004
- 2004-11-07 CN CN200480035019.4A patent/CN1886711B/en not_active Expired - Fee Related
- 2004-11-07 DE DE112004002259T patent/DE112004002259B4/en not_active Expired - Fee Related
- 2004-11-07 KR KR1020067010203A patent/KR100974973B1/en not_active IP Right Cessation
- 2004-11-07 JP JP2006541379A patent/JP2007515709A/en active Pending
- 2004-11-07 WO PCT/US2004/038734 patent/WO2005055024A1/en active Application Filing
-
2011
- 2011-01-04 JP JP2011000154A patent/JP5021078B2/en not_active Expired - Fee Related
-
2012
- 2012-03-06 US US13/413,176 patent/US9348767B2/en not_active Expired - Fee Related
-
2013
- 2013-03-15 US US13/836,863 patent/US9087000B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5655125A (en) * | 1992-12-29 | 1997-08-05 | Intel Corporation | Register for identifying processor characteristics |
EP0700002A1 (en) * | 1994-08-31 | 1996-03-06 | Motorola, Inc. | Modular chip select control circuit and related circuit and methods |
US20010018736A1 (en) * | 2000-02-14 | 2001-08-30 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
US20030055928A1 (en) * | 2001-09-03 | 2003-03-20 | Nec Corporation | Automatic computer configuration system, method and program making use of portable terminal |
US20030097551A1 (en) * | 2001-11-16 | 2003-05-22 | Fuller David W. | System and method for a deploying a hardware configuration with a computer program |
Also Published As
Publication number | Publication date |
---|---|
JP2007515709A (en) | 2007-06-14 |
DE112004002259T5 (en) | 2006-10-26 |
JP5021078B2 (en) | 2012-09-05 |
KR20060090296A (en) | 2006-08-10 |
US20130067184A1 (en) | 2013-03-14 |
US9348767B2 (en) | 2016-05-24 |
CN1886711A (en) | 2006-12-27 |
WO2005055024A1 (en) | 2005-06-16 |
US20050114610A1 (en) | 2005-05-26 |
JP2011076632A (en) | 2011-04-14 |
US20130275772A1 (en) | 2013-10-17 |
US9087000B2 (en) | 2015-07-21 |
CN1886711B (en) | 2014-07-23 |
US8156343B2 (en) | 2012-04-10 |
KR100974973B1 (en) | 2010-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112004002259B4 (en) | Access to private data about the status of a data processing machine from a publicly accessible storage | |
DE10195999B3 (en) | A computer system comprising a memory controller, included in a chipset, for controlling accesses to an isolated memory for an isolated implementation | |
DE10196005B4 (en) | Apparatus and method for isolated execution of isolated instructions | |
DE112012007063B4 (en) | Merge adjacent collect/scatter operations | |
DE112005002298B4 (en) | Increasing the performance of an address translation using translation tables comprising large address spaces | |
DE10196006B4 (en) | Create a key hierarchy for use in an isolated execution environment | |
DE102018115491A1 (en) | SYSTEM, APPARATUS AND METHOD FOR SIDE GRANULAR, SOFTWARE CONTROLLED MEMORY ENCRYPTION WITH SEVERAL KEYS | |
DE102018005977A1 (en) | SLIDING COMBINATION TO FIXED COMMERCIAL CONVERSION | |
DE102009017496B4 (en) | Memory access in a system with memory protection | |
DE202019005671U1 (en) | Coexistence of trust domain architecture with multi-key total storage encryption technology on servers | |
DE102015006863A1 (en) | Commands and logic to pause and resume paging in Secure Enclaves | |
DE102015002215A1 (en) | Sorting processor, methods, systems and commands | |
DE112013005431T5 (en) | Secure key derivation and cryptography logic for integrated circuits | |
DE102013200161A1 (en) | Data encryption / compression based on memory address translation | |
DE102015002124A1 (en) | Return Destination Restricted Procedural Return Instructions, Processors, Methods, and Systems | |
DE112004001605T5 (en) | Computer system in which a secure execution environment is applied and in which a memory controller is formed, which is designed to erase the memory | |
DE202019005682U1 (en) | Hardware-based paging mechanisms | |
DE102019109845A1 (en) | Unified acceleration of a block secret code of a symmetric key for AES-SMS4-Camellia | |
DE102019128261A1 (en) | Data sharing control based on authentication and link protection | |
DE102018129341A1 (en) | Method and apparatus for multi-load and multi-store vector instructions | |
DE102018004290A1 (en) | Cryptographic memory protection with multiple keys | |
DE102015007422A1 (en) | An instruction set for eliminating misaligned memory accesses during processing of an array with misaligned data lines | |
DE102019109119A1 (en) | HOST-MANAGED COHERENT DEVICE STORAGE | |
DE112007003206T5 (en) | Reconfiguring a secure system | |
DE10196440T5 (en) | Control access to multiple isolated stores in an isolated execution environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law |
Ref document number: 112004002259 Country of ref document: DE Date of ref document: 20061026 Kind code of ref document: P |
|
8125 | Change of the main classification |
Ipc: G06F 12/14 AFI20060731BHDE |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |
Effective date: 20130907 |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20140603 |