WO2001053931A2 - Mikroprozessoranordnung und verfahren zum betreiben einer mikroprozessoranordnung - Google Patents

Mikroprozessoranordnung und verfahren zum betreiben einer mikroprozessoranordnung Download PDF

Info

Publication number
WO2001053931A2
WO2001053931A2 PCT/DE2001/000018 DE0100018W WO0153931A2 WO 2001053931 A2 WO2001053931 A2 WO 2001053931A2 DE 0100018 W DE0100018 W DE 0100018W WO 0153931 A2 WO0153931 A2 WO 0153931A2
Authority
WO
WIPO (PCT)
Prior art keywords
memory
data
key
microprocessor arrangement
microprocessor
Prior art date
Application number
PCT/DE2001/000018
Other languages
English (en)
French (fr)
Other versions
WO2001053931A3 (de
Inventor
Berndt Gammel
Oliver Kniffler
Holger Sedlak
Original Assignee
Infineon Technologies Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies Ag filed Critical Infineon Technologies Ag
Priority to JP2001554159A priority Critical patent/JP2003521034A/ja
Publication of WO2001053931A2 publication Critical patent/WO2001053931A2/de
Publication of WO2001053931A3 publication Critical patent/WO2001053931A3/de
Priority to US10/197,792 priority patent/US7526655B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Definitions

  • the invention relates to a microprocessor arrangement with a processing unit and a memory which is coupled to the processing unit for carrying out a read or write access.
  • the invention also relates to a method for operating a microprocessor arrangement with such a memory.
  • Microprocessors need a memory in order to store data or programs to be processed permanently or volatile. When the program is being processed, the microprocessor accesses the memory in order to load currently required program parts or data.
  • Microprocessors are used, among other things, in security-critical systems, for example in chip cards. The microprocessor is used there, among other things, to encrypt data traffic or to handle other security-critical applications for the chip card holder.
  • Safety-critical data and programs are stored in the volatile and non-volatile memory units of the microprocessor. In order to prevent this information from being spied on and made visible, such data is stored in encrypted form.
  • the encryption process is relatively complex and requires the corresponding hardware and computing time during the read and write accesses to these memories.
  • the data currently to be processed by the central processing and control unit (CPU) of the microprocessor are therefore temporarily stored in further memories which can respond much faster.
  • a cache memory is provided in which data to be read from or written to from the slower encrypted memories be cached.
  • registers are provided in which current data values or operating settings to be processed are temporarily stored.
  • the object of the invention is to provide a microprocessor arrangement which has a higher security against spying out stored data.
  • Another object of the invention is to provide a method for operating a microprocessor arrangement with a memory.
  • a microprocessor arrangement comprising: a processing unit; a memory coupled to the processing unit for performing a read or write access; a cryptographic unit for encrypting and decrypting data values written or read into the memory; Means for providing a changeable key, the means being controllable in such a way that the key is changed when there are no more data values to be read out in the memory.
  • this object is achieved by a method for operating a microprocessor arrangement which contains a processing unit and a memory which is coupled to the processing unit for carrying out a read or write access, in which the data values are encrypted or decrypted in accordance with a key and the key is changed while the memory is being accessed by the microprocessor arrangement, when there is no more data to be read in the memory.
  • a cryptographic unit is additionally inserted in the access path to a memory which is coupled to the processing unit, for example a cache memory or a register.
  • a memory which is coupled to the processing unit, for example a cache memory or a register.
  • the key used to encrypt or decrypt is changed. So that
  • the key When reading in and reading out or from the memory using the same key, the key is only changed when there are no more data values to be read out in the memory. Because of the changing key, the encryption process itself can be relatively simple. The data are stored in non-volatile memory, so that even after the supply voltage has been switched off, there is no more usable information and repeated read attempts are unsuccessful. During operation, there is little time available to spy on the key until the key is changed. Overall, the combination of changeable keys with a simple encryption method offers sufficient security against an attack.
  • the invention is particularly suitable in connection with a further, slower memory, in which the data are stored with a hard, complex encryption.
  • the data are buffered in the memory connected according to the invention for rapid provision to the central processing unit of the processor.
  • the further hard-coded memories can be non-volatile memories such as ROMS or E 2 PROMs or volatile RAMs.
  • ROMS read-only memory
  • E 2 PROMs volatile RAMs.
  • the cache memory is located between the bus and the CPU.
  • the invention is applied to a register bank, the registers are connected directly to the CPU as is conventional.
  • the cache memory is characterized in that when an access request is made to an external memory, that is to say only accessible via the bus, it is first checked whether a data value is contained in the cache memory.
  • the cache memory If the data value is contained there, it is output to the processor from the cache memory and not from the external memory. If the requested data value is not contained in the cache memory, the cache memory is first reloaded with the data value and a suitable environment of this data value, the requested data value also being output to the CPU. For this purpose, the cache memory contains a memory field in order to be able to determine the presence of the requested data value.
  • the memory cells of the memory cell array are static or dynamic memory cells.
  • a register bank is characterized in that it contains a large number of registers which can be addressed directly by the CPU. The registers provide, for example, operands for logic operations to be processed in the CPU or status and configuration setting values.
  • the register cells are designed as bistable flip-flops or flip-flops.
  • the circuitry required for the encryption provides logical logic elements, advantageously exclusive OR gates, which are connected to the data lines in the access path of the memory.
  • the data to be stored or read out of the memory are linked with a keyword via the exclusive OR gates.
  • the key word is provided by a register which contains the key which can be changed from time to time.
  • the keywords are preferably generated randomly.
  • a random generator is used for this purpose, which is connected on the output side to the key register. The random generator provides the key physically random or pseudorandom. The random generator is then prompted to provide a new keyword when there is no longer any valid data in the memory. On the one hand, this applies when all the data read into the memory have already been read out again.
  • FIG. 1 is a block diagram of a microprocessor according to the invention.
  • Figure 2 shows a cache memory that shows details relevant to the invention.
  • the microprocessor according to FIG. 1 comprises a data bus 1, via which the various functional units of the microprocessor exchange data, control or program information with one another.
  • the data bus 1 comprises a large number of lines for the transmission of the useful and control information.
  • a central processing unit 2 controls the program sequence and carries out calculations. Data and program information are stored permanently unchangeable in a ROM memory 3 or permanently changeable in one E 2 PROM 4. Volatile data are stored in a RAM memory 5.
  • at least one peripheral unit 6 is provided in order to receive data from the outside or to deliver it to the outside. All functional units are arranged on a single integrated semiconductor chip.
  • the units 2, ..., 6 are all connected to the bus 1 and exchange the information to be processed. Access control to the bus is monitored by a bus control unit 7.
  • the data stored in the memories 3, 4, 5 are encrypted.
  • the data is decrypted and forwarded as plain text.
  • a corresponding encryption and decryption unit 71 (MED - memory encryption / decryption) serves this purpose.
  • the unit 71 provides appropriate encryption. Since the data contained in the memories 3, 4, 5 is volatile or non-volatile for a prolonged period of time, the cryptographic method processed by the MED unit 71 is correspondingly complex. Memory access takes a relatively long time.
  • a cryptographic unit can be assigned directly to each of the memories 3, 4, 5.
  • a cache memory 8 is provided in order to accelerate data access to the external memories 3, 4, 5.
  • the memory 8 lies in the signal path between the bus controller 7 and the CPU 2.
  • the data currently requested by the CPU 2 and a suitable environment for this data are temporarily stored in the cache memory 8.
  • a read request to one of the memories 3, 4, 5 is processed in such a way that it is first checked in the cache memory 8 whether the requested data is contained there. If not, the data and the corresponding environment are reloaded from the external memory into the cache. If the requested data is contained in cache 8, there is no need to reload.
  • the cache memory 8 is divided into an instruction cache memory and a data cache memory. In the former, command sequences of the program just processed are buffered, in the latter the associated data.
  • the cache memory can also be designed as a common cache for commands and data (unified cache).
  • a unit is in turn divided into an associative memory for the addresses and the associated instruction / data memory part. Querying the associative memory very quickly determines whether the requested date is in the cache. If the date is not available (so-called cache miss), a request for reloading is issued to the corresponding external memory. Corresponding processes take place when a data value is written back into RAM 5.
  • the cache memory 8 When the cache memory 8 is reloaded, the information received via the bus 1 is encrypted in plain text by a cryptographic unit 81. During a write operation, the device 81 decrypts the data stored in encrypted form in the cache memory 8. When the data stored in encrypted form in the cache memory 8 is transmitted to the CPU 2, it is encrypted by a
  • Unit 82 decrypted. During a write operation, the unit 82 encrypts information to be cached in the cache memory 8. As will be described further below, the key supplied to the cryptographic units 81, 82 is identical and is changed in a random manner when the
  • Cache memory 8 are no longer valid data to be read.
  • Operators and status information for the CPU 2 are stored in a register bank 9.
  • the CPU 2 can directly and directly access one or more of the registers arranged in the register bank 9. Data stored there encrypted or decrypted by a cryptographic unit 91 when accessing one of the registers in register bank 9.
  • the current key used in units 81 and 82 on the one hand and unit 91 on the other hand is expediently different.
  • a key register 83 contains the key currently in use.
  • the key is provided by a random number generator 84, which generates the keyword physically genuinely randomly or pseudo-randomly.
  • Exclusive OR gates 85a, 85b and 85c are connected in the data signal or bit lines which carry the information written into or read from the cache memory 8.
  • Each of the exclusive OR gates 85 is also connected to an output of the register 83.
  • the exclusive OR gates 85 are located both on the side of the cache memory 8 facing the bus 1 and on the side facing the CPU 2. When data is read into the cache memory 8, the exclusive OR
  • the keyword is changed when the cache memory 8 contains no valid data, that is to say data which are still to be read out.
  • the random generator 84 is then activated to calculate a randomly generated new keyword. There is no longer any valid data in the memory 8 when all the data values temporarily stored there have been read out again.
  • the key word when initializing the To change cache memory 8 a so-called cache flush.
  • a cache flush occurs, for example, when the program processed by the microprocessor changes, when the application, ie the application in which the microprocessor is used, changes. In this case, a cache flush and the resultant complete initialization and resetting of all memory cells of the cache memory 8 can also be dispensed with, since the data can no longer be decrypted anyway by changing the keyword in the register 83.
  • the cryptographic unit 91 is constructed in detail in accordance with one of the cryptographic units in the access path to the cache memory 8.
  • the key register is then loaded with a new random value when all the registers in the register bank 9 no longer contain any valid data to be read out or have to be reinitialized.
  • the invention provides increased security from spying out temporarily stored data by storing the data in encrypted form and changing the key from time to time. Even if the program is run several times, the stored data are different due to different keys.

Abstract

Bei einer Mikroprozessoranordnung werden Daten temporär in einem Cache-Speicher (8) oder einer Registerbank (9) gespeichert. Eine jeweils zugeordnete kryptographische Einheit (81, 82; 91) sorgt für eine Ver-/Entschlüsselung der Daten bei einem Zugriff auf den Cache-Speicher (8) bzw. die Registerbank (9). Das dabei verwendete Schlüsselwort wird verändert, wenn der Cache-speicher (8) bzw. das Register (9) keine gültigen auszulesenden Daten mehr enthält. Dadurch wird eine erhöhte Sicherheit vor einem Ausspähen von Daten und Programmablauf erhalten.

Description

Beschreibung
Mikroprozessoranordnung und Verfahren zum Betreiben einer Mikroprozessoranordnung
Die Erfindung betrifft eine Mikroprozessoranordnung mit einer Verarbeitungseinheit und einem Speicher, der zur Ausführung eines Lese- oder Schreibzugriffs mit der Verarbeitungseinheit gekoppelt ist.
Die Erfindung betrifft außerdem ein Verfahren zum Betreiben einer Mikroprozessoranordnung mit einem solchen Speicher.
Mikroprozessoren benötigen einen Speicher, um dauerhaft oder flüchtig zu verarbeitende Daten oder Programme zu speichern. Bei der Abarbeitung des Programms greift der Mikroprozessor auf den Speicher zu, um aktuell benötigte Programmteile oder Daten zu laden. Mikroprozessoren finden unter anderem Anwendung in sicherheitskritischen Systemen, beispielsweise in Chipkarten. Der Mikroprozessor wird dort unter anderem dazu verwendet, um Datenverkehre zu verschlüsseln oder andere sicherheitskritische Anwendungen für den Chipkarteninhaber abzuwickeln. Dabei sind sicherheitskritische Daten und Programme in den flüchtigen und nichtflüchtigen Speichereinheiten des Mikroprozessors gespeichert. Um ein Ausspähen und Sichtbarmachen dieser Informationen zu verhindern, sind solche Daten verschlüsselt gespeichert. Das Verschlüsselungsverfahren ist relativ aufwendig und erfordert entsprechenden Hardware- Aufwand und Rechenzeit während den Lese- und Schreibzugriffen auf diese Speicher.
Die aktuell von der zentralen Verarbeitungs- und Steuereinheit (CPU) des Mikroprozessors zu verarbeitenden Daten werden daher in weiteren Speichern zwischengespeichert, die wesent- lieh schneller antworten können. Zum einen ist ein Cache- Speicher vorgesehen, in dem aus den langsameren verschlüsselten Speichern auszulesende oder dorthin zu schreibende Daten zwischengespeichert werden. Zum anderen sind Register vorgesehen, in denen aktuelle zu verarbeitende Datenwerte oder Betriebseinstellungen zwischengespeichert werden.
Da bei einer Zugriffsanfrage an den Cache-Speicher oder eines der Register die Informationen möglichst schon im nächsten Arbeitstakt zur Verfügung stehen sollen, wird dort eine Verschlüsselung der zwischengespeicherten Information bisher nicht erwogen. Wenn man herkömmliche Verschlüsselungsverfah- ren für die Verschlüsselung des Inhalts von Cache-Speichern oder Registern anwenden würde, wäre die Antwortzeit zu groß. Daher werden die Daten in Cache-Speichern und den Arbeitsregistern des Prozessors bisher im Klartext zwischengespeichert. Problematisch ist, daß die Daten durch geeignete Meß- methoden ausgespäht werden könnten.
Die Aufgabe der Erfindung besteht darin, eine Mikroprozessoranordnung anzugeben, die eine höhere Sicherheit vor einem Ausspähen abgespeicherter Daten aufweist.
Eine weitere Aufgabe der Erfindung besteht darin, ein Verfahren zum Betreiben einer Mikroprozessoranordnung mit einem Speicher anzugeben.
Betreffend die Anordnung wird diese Aufgabe durch eine Mikroprozessoranordnung gelöst, die umfaßt: eine Verarbeitungseinheit; einen Speicher, der mit der Verarbeitungseinheit zur Ausführung eines Lese- oder Schreibzugriffs gekoppelt ist; eine kryptographische Einheit zur Verschlüsselung und Ent- schlüsselung von in den Speicher geschriebenen oder gelesenen Datenwerten; Mittel zur Bereitstellung eines veränderbaren Schlüssels, wobei die Mittel derart steuerbar sind, daß der Schlüssel geändert wird, wenn im Speicher keine auszulesenden Datenwerte mehr enthalten sind.
Betreffend das Verfahren wird diese Aufgabe durch ein Verfahren zum Betreiben einer Mikroprozessoranordnung gelöst, die eine Verarbeitungseinheit und einen Speicher enthält, der mit der Verarbeitungseinheit zur Ausführung eines Lese- oder Schreibzugriffs gekoppelt ist, bei dem während eines Zugriffs auf den Speicher durch die Mikroprozessoranordnung die Daten- werte gemäß einem Schlüssel ver- oder entschlüsselt werden und der Schlüssel geändert wird, wenn keine auszulesenden Daten im Speicher mehr enthalten sind.
Bei einer Mikroprozessoranordnung gemäß der Erfindung ist im Zugangspfad zu einem Speicher, der mit der Verarbeitungseinheit gekoppelt ist, beispielsweise ein Cache-Speicher oder ein Register, im Unterschied zu bekannten Mikroprozessoranordnungen zusätzlich eine kryptographische Einheit eingefügt. Der Schlüssel, unter dessen Verwendung die Ver- bzw. Entschlüsselung betrieben wird, wird verändert. Damit das
Ein- und Auslesen m bzw. aus dem Speicher mit dem gleichen Schlüssel ausgeführt werden kann, erfolgt der Wechsel des Schlüssels nur, wenn im Speicher keine auszulesenden Datenwerte mehr enthalten sind. Wegen des wechselnden Schlüssels kann das Verschlüsselungsverfahren selbst relativ einfach sein. Die Daten sind im Speicher nichtflüchtig gespeichert, so daß auch nach dem Abschalten der VersorgungsSpannung keine verwertbaren Informationen mehr vorliegen und wiederholte Ausleseversuche keinen Erfolg haben. Während des Betriebs ist die verfügbare Zeit zum Ausspähen des Schlüssels bis zu einem Schlüsselwechsel gering. Insgesamt bietet die Kombination aus veränderbaren Schlüssel mit einem einfachen Verschlüsselungsverfahren ausreichend hohe Sicherheit vor einem Angriff.
Die Erfindung eignet sich besonders m Verbindung mit einem weiteren, langsameren Speicher, m welchem die Daten mit einer harten, aufwendigen Verschlüsselung gespeichert sind. Die Daten werden zur schellen Bereitstellung an die zentrale Verarbeitungseinheit des Prozessors im erfindungsgemäß beschal - teten Speicher zwischengepuffert. Die weiteren, hart verschlüsselten Speicher können nichtflüchtige Speicher wie ROMS oder E2PROMs oder fluchtige RAMs sein. In herkömmlichen Pro- zessorarchitekturen greift die CPU über einen Bus auf diese Speicher zu. Der Cache-Speicher liegt demgegenüber zwischen Bus und CPU. Bei der Anwendung der Erfindung auf eine Registerbank sind die Register wie herkömmlich direkt an die CPU angeschlossen. Der Cache-Speicher ist dadurch gekennzeichnet, daß bei einer Zugriffsanfrage an einen externen, d.h. nur über den Bus zugänglichen Speicher zuerst überprüft wird, ob ein Datenwert im Cache-Speicher enthalten ist. Ist der Datenwert dort enthalten, wird er aus dem Cache-Speicher und nicht aus dem externen Speicher an den Prozessor ausgegeben. Wenn der nachgefragte Datenwert nicht im Cache-Speicher enthalten ist, wird der Cache-Speicher zuerst mit dem Datenwert und ein geeignetes Umfeld dieses Datenwerts nachgeladen, wobei der angeforderte Datenwert auch an die CPU ausgegeben wird. Der Cache-Speicher enthält hierzu ein Speicherfeld, um das Vorhandensein des angeforderten Datenwerts feststellen zu können. Die Speicherzellen des Speicherzellenfeldes sind statische oder dynamische Speicherzellen. Eine Registerbank ist dadurch gekennzeichnet, daß sie eine Vielzahl von Registern enthält, die von der CPU direkt ansprechbar sind. Die Register stellen beispielsweise Operanden für in der CPU zu verarbeitende logische Verknüpfungen bereit oder Status- und Konfigurationseinstellwerte. Die Registerzellen sind als bistabile Kippstufen oder Flipflops ausgeführt.
Der Schaltungsaufwand für die Verschlüsselung sieht logische Verknüpfungselemente, zweckmäßigerweise Exklusiv-ODER-Gatter, vor, die in die Datenleitungen im Zugriffspfad des Speichers geschaltet sind. Die zu speichernden oder auszulesenden Daten des Speichers werden mit einem Schlüsselwort über die Exklusiv-ODER-Gatter verknüpft. Das Schlüsselwort wird von einem Register bereitgestellt, welches den von Zeit zu Zeit veränderbaren Schlüssel enthält. Die Schlüsselworte werden vorzugsweise zufallsgesteuert erzeugt. Hierzu dient ein Zufalls- generator, der ausgangsseitig mit dem Schlüsselregister verbunden ist. Der Zufallsgenerator stellt den Schlüssel physikalisch zufällig oder pseudozufällig bereit. Der Zufallsgenerator wird dann zur Bereitstellung eines neuen Schlüsselworts veranlaßt, wenn im Speicher keine gültigen Daten mehr vorhanden sind. Dies trifft einerseits dann zu, wenn alle in den Speicher eingelesenen Daten bereits wieder ausgelesen sind. Dies trifft andererseits auch dann zu, wenn der Prozessor auf eine andere Anwendung umgeschaltet wird und hierzu neu initialisiert wird. Auf herkömmliche Weise mußte dann der Inhalt des Speichers vollständig gelöscht werden, so daß für die nachfolgende Anwendung keine Daten der vorhergehenden Anwendung mehr verfügbar sind. Bei der Erfindung ist ein Initialisieren des Speichers, indem jede Speicherzelle zurückgesetzt wird, nicht mehr erforderlich. Es genügt vielmehr, nur den Schlüssel zufallsgesteuert zu verändern. Die im Speicher enthaltenen Datenwerte sind dann nicht mehr entschlüsselbar. Ein Rücksetzen jeder einzelnen Speicherzelle ist nicht mehr erforderlich.
Nachfolgend wird die Erfindung anhand des in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert. Einander entsprechende Elemente sind mit gleichen Bezugszeichen versehen. Es zeigen:
Figur 1 ein Blockschaltbild eines Mikroprozessors gemäß der Erfindung und
Figur 2 einen Cache-Speicher, der erfindungsrelevante Details zeigt.
Der Mikroprozessor gemäß Figur 1 umfaßt einen Datenbus 1, über den die verschiedenen Funktionseinheiten des Mikroprozessors miteinander Daten-, Steuerungs- oder Programminformation austauschen. Der Datenbus 1 umfaßt eine Vielzahl von Leitungen zur Übermittlung der Nutz- und Steuerungsinformation. Eine zentrale Verarbeitungseinheit 2 steuert den Pro- grammablauf und führt Berechnungen aus. Daten- und Programminformation sind dauerhaft unveränderbar in einem ROM- Speicher 3 gespeichert oder dauerhaft veränderbar in einem E2PROM 4. Flüchtige Daten werden in einem RAM-Speicher 5 abgelegt. Außerdem ist mindestens eine periphere Einheit 6 vorgesehen um Daten von außen zu empfangen oder nach außen abzugeben. Alle Funktionseinheiten sind auf einem einzigen inte- grierten Halbleiterchip angeordnet. Die Einheiten 2, ..., 6 sind alle an den Bus 1 angeschlossen und tauschen darüber die zu verarbeitende Information aus. Die Zugriffssteuerung auf den Bus wird von einer Bussteuerungseinheit 7 überwacht.
Die in den Speichern 3, 4, 5 abgelegten Daten sind verschlüsselt. Beim Ausgeben der Datenwerte auf den Bus werden die Daten entschlüsselt und als Klartext weitergeleitet. Hierzu dient eine entsprechende Ver- und Entschlüsselungseinheit 71 (MED - Memory En-/Decryption) . Beim Einspeichern von Daten- werten in den RAM-Speicher 5 besorgt die Einheit 71 eine entsprechende Verschlüsselung. Da die in den Speichern 3, 4, 5 enthaltenen Daten längerdauernd flüchtig oder nichtflüchtig zur Verfügung stehen ist das von der MED-Einheit 71 abgearbeitete kryptographische Verfahren entsprechend aufwendig. Speicherzugriffe dauern relativ lange. Alternativ zu der zentralen MED-Einheit 71 kann jedem der Speicher 3, 4, 5 direkt eine kryptographische Einheit zugeordnet sein.
Um Datenzugriffe auf die externen Speicher 3, 4, 5 zu be- schleunigen, ist ein Cache-Speicher 8 vorgesehen. Der Speicher 8 liegt im Signalpfad zwischen der Bussteuerung 7 und der CPU 2. Im Cache-Speicher 8 werden die aktuell von der CPU 2 angeforderten Daten und ein geeignetes Umfeld dieser Daten zwischengespeichert . Eine Leseanfrage an einen der Speicher 3, 4, 5 wird derart abgearbeitet, daß zuerst im Cache- Speicher 8 überprüft wird, ob dort die angeforderten Daten enthalten sind. Falls nicht, werden die Daten und das entsprechende Umfeld aus den externen Speichern in den Cache nachgeladen. Wenn die angeforderten Daten im Cache 8 enthal- ten sind, erübrigt sich das Nachladen. Der Cache-Speicher 8 ist im Ausführungsbeispiel in einen Befehls-Cache-Speicher und einen Daten-Cache-Speicher aufgeteilt. In ersterem werden Befehlsfolgen des gerade abgearbeiteten Programms zwischengespeichert, in letzterem die zugehö- rigen Daten. Prinzipiell sind auch andere Strukturen für den Cache-Speicher möglich. Der Cache-Speicher kann auch als gemeinsamer Cache für Befehle und Daten ausgelegt sein (Unified Cache) . Im Falle einer assoziativen Cache-Speicher-Architektur ist eine solche Einheit wiederum ist in einen Assoziativ- Speicher für die Adressen aufgeteilt und den zugehörigen Be- fehls-/Daten-Speicherteil . Durch Abfrage des Assoziativspeichers wird sehr schnell festgestellt, ob das angeforderte Datum im Cache enthalten ist . Wenn das Datum nicht vorhanden ist (sogenannter Cache-Miss) wird eine Anfrage zum Nachladen an den entsprechenden externen Speicher ausgegeben. Entsprechende Vorgänge laufen beim Schreiben eines Datenwerts zurück in das RAM 5 ab.
Beim Nachladen des Cache-Speichers 8 werden die über den Bus 1 empfangenen Informationen in Klartext durch eine kryptographische Einheit 81 verschlüsselt. Bei einem Schreibvorgang werden durch die Einrichtung 81 die im Cache-Speicher 8 verschlüsselt gespeicherten Daten entschlüsselt . Bei der Übermittlung der im Cache-Speicher 8 verschlüsselt gespeicherten Daten an die CPU 2 werden sie durch eine kryptographische
Einheit 82 entschlüsselt. Bei einem Schreibvorgang verschlüsselt die Einheit 82 im Cache-Speicher 8 zwischenzuspeichernde Information. Wie weiter unten noch beschrieben, ist der den kryptographisehen Einheiten 81, 82 zugeführte Schlüssel iden- tisch und wird zufallsgesteuert verändert, wenn sich im
Cache-Speicher 8 keine gültigen auszulesenden Daten mehr befinden.
Operatoren und Statusinformation für die CPU 2 sind in einer Registerbank 9 gespeichert. Auf eines oder mehrere der in der Registerbank 9 angeordneten Register kann die CPU 2 direkt und unmittelbar zugreifen. Dort gespeicherte Daten werden durch eine kryptographische Einheit 91 beim Zugriff auf eines der Register der Registerbank 9 ver- oder entschlüsselt. Der in den Einheiten 81 und 82 einerseits und der Einheit 91 andererseits verwendete momentane Schlüssel ist zweckmäßiger Weise verschieden.
Die kryptographisehen Einheiten sind am Beispiel des Cache- Speichers 8 in Figur 2 im Detail dargestellt. Ein Schlüsselregister 83 enthält den momentan verwendeten Schlüssel. Der Schlüssel wird von einem Zufallsgenerator 84 bereitgestellt, welcher das Schlüsselwort physikalisch echt zufällig oder pseudo-zuf llig erzeugt. In die Datensignal- oder Bitleitungen, welche die in den Cache-Speicher 8 eingeschriebene oder davon ausgelesene Information führen sind jeweilige Exklusiv- ODER-Gatter 85a, 85b und 85c geschaltet. Jedes der Exklusiv- ODER-Gatter 85 ist außerdem mit einem Ausgang des Registers 83 verbunden. Die Exklusiv-ODER-Gatter 85 liegen sowohl auf der dem Bus 1 zugewandten als auch auf der der CPU 2 zugewandten Seite des Cache-Speichers 8. Beim Einlesen von Daten in den Cache-Speicher 8 erfolgt aufgrund der Exklusiv-ODER-
Verknüpfung der Datenwerte mit dem aus dem Register 83 zugeführten Schlüsselwort eine Verschlüsselung. Beim Auslesen erfolgt durch die gleiche Exklusiv-ODER-Verknüpfung mit dem gleichen Schlüsselwort die komplementäre Entschlüsselung. So- lange im Cache-Speicher 8 gültige Daten zum Auslesen gespeichert sind, muß das vom Register 83 bereitgestellte Schlüsselwort unverändert gleich bestehen bleiben. Jeder der n Bit- leitungen entspricht ein Bit des Schlüsselworts.
Gemäß der Erfindung wird das Schlüsselwort dann geändert, wenn der Cache-Speicher 8 keine gültigen Daten, d.h. solche Daten, die noch auszulesen sind, enthält. Dann wird der Zufallsgenerator 84 aktiviert, um ein zufallsgesteuert erzeugtes neues Schlüsselwort zu berechnen. Es sind keine gültigen Daten im Speicher 8 mehr enthalten, wenn alle dort zwischengespeicherten Datenwerten wieder ausgelesen sind. Des weiteren ist das Schlüsselwort bei einer Initialisierung des Cache-Speichers 8, einem sogenannten Cache-Flush, zu verändern. Ein Cache-Flush erfolgt beispielsweise bei einer Änderung des vom Mikroprozessor abgearbeiteten Programms, wenn die Applikation, d.h. der Anwendungsfall , in welchem der Mi- kroprozessor eingesetzt wird, wechselt. In diesem Fall kann auch auf einen Cache-Flush und ein dadurch bedingtes vollständiges Initialisieren und Rücksetzen sämtlicher Speicherzellen des Cache-Speichers 8 verzichtet werden, da durch ein Wechseln des Schlüsselworts im Register 83 die Daten ohnehin nicht mehr entschlüsselbar sind.
Die kryptographische Einheit 91 ist entsprechend einer der kryptographisehen Einheiten im Zugangspfad an den Cache- Speicher 8 im Detail aufgebaut . Deren Schlüsselregister wird dann mit einem neuen Zufallswert geladen, wenn sämtliche Register der Registerbank 9 keine gültigen auszulesenden Daten mehr enthalten oder neu initialisiert werden müssen.
Durch die Erfindung wird eine erhöhte Sicherheit von einem Ausspähen von temporär gespeicherten Daten erhalten, indem die Daten verschlüsselt gespeichert werden und der Schlüssel von Zeit zu Zeit geändert wird. Auch bei mehrfach gleichem Programmablauf sind die gespeicherten Daten aufgrund unterschiedlicher Schlüssel verschieden. Der vom Mikroprozessor während der Abarbeitung des Programms gezogene Strom, insbesondere die Stromspitzen oder Stromtäler, ist unterschiedlich. Dadurch werden Angriffsverfahren, die eine Auswertung des Stromprofils anwenden, erschwert.

Claims

Patentansprüche
1. Mikroprozessoranordnung, die umfaßt:
- eine Verarbeitungseinheit (2), - einen Speicher (8, 9), der mit der Verarbeitungseinheit (2) zur Ausführung eines Lese- oder Schreibzugriffs gekoppelt ist,
- eine kryptographische Einheit (81, 82; 91) zur Verschlüsselung und Entschlüsselung von in den Speicher (8; 9) ge- schriebenen oder gelesenen Datenwerten,
- Mittel (83) zur Bereitstellung eines veränderbaren Schlüssels, wobei
- die Mittel (83) derart steuerbar sind, daß der Schlüssel geändert wird, wenn im Speicher (8) keine auszulesenden Da- tenwerte mehr enthalten sind.
2. Mikroprozessoranordnung nach Anspruch 1, g e k e n n z e i c h n e t d u r c h einen weiteren Speicher (3, 4, 5), in dem Datenwerte ver- schlüsselt speicherbar sind, und eine Entschlüsselungseinrichtung (71), durch die die Datenwerte des weiteren Speichers (3, 4, 5) beim Auslesen entschlüsselbar sind.
3. Mikroprozessoranordnung nach Anspruch 1 oder 2, d a d u r c h g e k e n n z e i c h n e t, daß der Speicher ein Cache-Speicher (8) ist.
4. Mikroprozessoranordnung nach Anspruch 3 , d a d u r c h g e k e n n z e i c h n e t, daß der Cache-Speicher (8) eine Zugriffssteuerung enthält, durch die zuerst überprüfbar ist, ob ein Datenwert einer Zugriffsanfrage der Verarbeitungseinheit (2) im Cache-Speicher (8) enthalten sind, so daß dann, wenn die Datenwerte der Zugriffsanfrage im Cache-Speicher (8) enthalten sind, aus dem Cache-Speicher (8) ausgelesen werden.
5. Mikroprozessoranordnung nach 3 oder 4, d a d u r c h g e k e n n z e i c h n e t, daß ein Bus (1) zur Abwicklung von Datenverkehr vorgesehen ist, daß der Speicher (8) in den Datenpfad zwischen Bus (1) und Verarbeitungseinheit (2) geschaltet ist und daß der weitere Speicher (3, 4, 5) über den Bus (1) mit der Verarbeitungseinheit (2) verbunden ist.
6. Mikroprozessoranordnung nach Anspruch 1 oder 2, d a d u r c h g e k e n n z e i c h n e t, daß der Speicher ein Register (9) ist, das Registerzellen umfaßt, die als bistabile Kippstufen ausgeführt sind.
7. Mikroprozessoranordnung nach einem der Ansprüche 1 bis 6, d a d u r c h g e k e n n z e i c h n e t, daß die Mittel zur Bereitstellung des veränderbaren Schlüssels ein Register (83) umfassen und daß die Registerausgänge über logische Verknüpfungselemente (85a, 85b, 85c) mit den Leitungen gekoppelt sind, über die auf Speicherzellen im Speicher (8) zugreifbar ist.
8. Mikroprozessoranordnung nach Anspruch 7, g e k e n n z e i c h n e t d u r c h einen Zufallsgenerator (84), der mit dem Register (83) zur Einspeisung des Schlüssels gekoppelt ist.
9. Mikroprozessoranordnung nach Anspruch 8, d a d u r c h g e k e n n z e i c h n e t, daß das Register (83) aus dem Zufallsgenerator (84) dann ladbar ist, wenn der Mikroprozessor zur Abarbeitung einer anderen Anwendung initialisiert wird.
10. Verfahren zum Betreiben einer Mikroprozessoranordnung, die eine Verarbeitungseinheit (2) und einen Speicher (8; 9) enthält, der mit der Verarbeitungseinheit zur Ausführung ei- nes Lese- oder Schreibzugriffs gekoppelt ist, bei dem während eines Zugriffs auf den Speicher (8; 9) durch die Mikroprozessoranordnung die Datenwerte gemäß einem Schlüssel ver- oder entschlüsselt werden und der Schlüssel geändert wird, wenn keine auszulesenden Daten im Speicher (8; 9) mehr enthalten sind.
11. Verfahren zum Betreiben einer Mikroprozessoranordnung nach Anspruch 10, d a d u r c h g e k e n n z e i c h n e t, daß der Schlüssel zufallsgesteuert geändert wird.
12. Verfahren zum Betreiben einer Mikroprozessoranordnung nach Anspruch 10 oder 11, d a d u r c h g e k e n n z e i c h n e t, daß der Schlüssel geändert wird, wenn der Speicher (8; 9) vollständig ausgelesen ist .
13. Verfahren zum Betreiben einer Mikroprozessoranordnung nach Anspruch 10 oder 11, d a d u r c h g e k e n n z e i c h n e t, daß der Schlüssel geändert wird, wenn das Programm, welches von der Mikroprozessoranordnung verarbeitet wird, gewechselt wird.
PCT/DE2001/000018 2000-01-18 2001-01-05 Mikroprozessoranordnung und verfahren zum betreiben einer mikroprozessoranordnung WO2001053931A2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001554159A JP2003521034A (ja) 2000-01-18 2001-01-05 マイクロプロセッサシステムおよびそれを操作する方法
US10/197,792 US7526655B2 (en) 2000-01-18 2002-07-18 Microprocessor configuration and method for operating a microprocessor configuration

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00100954.7 2000-01-18
EP00100954A EP1118941B1 (de) 2000-01-18 2000-01-18 Mikroprozessoranordnung und Verfahren zum Betreiben einer Mikroprozessoranordnung

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/197,792 Continuation US7526655B2 (en) 2000-01-18 2002-07-18 Microprocessor configuration and method for operating a microprocessor configuration

Publications (2)

Publication Number Publication Date
WO2001053931A2 true WO2001053931A2 (de) 2001-07-26
WO2001053931A3 WO2001053931A3 (de) 2001-12-20

Family

ID=8167654

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2001/000018 WO2001053931A2 (de) 2000-01-18 2001-01-05 Mikroprozessoranordnung und verfahren zum betreiben einer mikroprozessoranordnung

Country Status (7)

Country Link
US (1) US7526655B2 (de)
EP (1) EP1118941B1 (de)
JP (1) JP2003521034A (de)
CN (1) CN1202478C (de)
AT (1) ATE382897T1 (de)
DE (1) DE50014893D1 (de)
WO (1) WO2001053931A2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10158393A1 (de) * 2001-11-28 2003-06-12 Infineon Technologies Ag Speicher für die Zentraleinheit einer Rechenanlage, Rechenanlage und Verfahren zum Synchronisieren eines Speichers mit dem Hauptspeicher einer Rechenanlage
WO2003067438A2 (de) * 2002-02-08 2003-08-14 Infineon Technologies Ag Schlüsselmanagementeinrichtung und verfahren zur verschlüsselten ablage von digitalen datenwörtern

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10201442C1 (de) * 2002-01-16 2003-07-31 Infineon Technologies Ag Vorrichtung und Verfahren zum Multiplizieren oder Dividieren eines ersten Operanden mit bzw. durch einen zweiten Operanden
FR2840748B1 (fr) * 2002-06-05 2004-08-27 France Telecom Procede et systeme de verification de signatures electroniques et carte a microcircuit pour la mise en oeuvre du procede
US6870873B2 (en) * 2003-05-28 2005-03-22 Systems Spray-Cooled, Inc. Device for improved slag retention in water cooled furnace elements
BRPI0318492B1 (pt) * 2003-09-05 2019-12-10 Telecom Italia Spa rede dependente de chave combinatória e método para criptografia/decifração de dados digitais de entrada
US20050172113A1 (en) * 2004-01-30 2005-08-04 Ati Technologies, Inc. Method and apparatus for basic input output system loading
CA2593441A1 (en) * 2005-02-11 2006-08-17 Universal Data Protection Corporation Method and system for microprocessor data security
US7725719B2 (en) 2005-11-08 2010-05-25 International Business Machines Corporation Method and system for generating ciphertext and message authentication codes utilizing shared hardware
DE102006006057B4 (de) 2006-02-09 2007-12-27 Infineon Technologies Ag Datenverschlüsselungsvorrichtung und Verfahren zum Verschlüsseln von Daten
US7681047B2 (en) 2006-04-18 2010-03-16 International Business Machines Corporation Decryption of data in storage systems
TWI444021B (zh) * 2007-09-17 2014-07-01 Htc Corp 解譯串列傳輸訊號之方法
US8726043B2 (en) 2009-04-29 2014-05-13 Empire Technology Development Llc Securing backing storage data passed through a network
US8799671B2 (en) * 2009-05-06 2014-08-05 Empire Technology Development Llc Techniques for detecting encrypted data
US8924743B2 (en) * 2009-05-06 2014-12-30 Empire Technology Development Llc Securing data caches through encryption
DE102010045580A1 (de) 2010-09-16 2012-03-22 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Betreiben einer Schaltungsanordnung
US8858867B2 (en) 2011-02-01 2014-10-14 Superior Machine Co. of South Carolina, Inc. Ladle metallurgy furnace having improved roof
EP2595458A1 (de) 2011-11-16 2013-05-22 Dahwa International Limited Fluoreszenzlampe
CN107590402A (zh) 2017-09-26 2018-01-16 杭州中天微系统有限公司 一种存储数据加解密装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0583140A1 (de) * 1992-08-11 1994-02-16 International Business Machines Corporation System zur ununterbrochenen Verarbeitung verschlüsselter und unverschlüsselter Daten und Befehle
US5987572A (en) * 1997-09-29 1999-11-16 Intel Corporation Method and apparatus employing a dynamic encryption interface between a processor and a memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866770A (en) * 1986-07-08 1989-09-12 Scientific Atlanta, Inc. Method and apparatus for communication of video, audio, teletext, and data to groups of decoders in a communication system
US4944008A (en) * 1988-02-18 1990-07-24 Motorola, Inc. Electronic keying scheme for locking data
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6442568B1 (en) * 1998-12-11 2002-08-27 Compaq Computer Corporation Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment
JP2000276457A (ja) * 1999-03-25 2000-10-06 Mitsubishi Electric Corp データ共有コンピュータシステム及びクライアント

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0583140A1 (de) * 1992-08-11 1994-02-16 International Business Machines Corporation System zur ununterbrochenen Verarbeitung verschlüsselter und unverschlüsselter Daten und Befehle
US5987572A (en) * 1997-09-29 1999-11-16 Intel Corporation Method and apparatus employing a dynamic encryption interface between a processor and a memory

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10158393A1 (de) * 2001-11-28 2003-06-12 Infineon Technologies Ag Speicher für die Zentraleinheit einer Rechenanlage, Rechenanlage und Verfahren zum Synchronisieren eines Speichers mit dem Hauptspeicher einer Rechenanlage
US7181576B2 (en) 2001-11-28 2007-02-20 Infineon Technologies Ag Method for synchronizing a cache memory with a main memory
WO2003067438A2 (de) * 2002-02-08 2003-08-14 Infineon Technologies Ag Schlüsselmanagementeinrichtung und verfahren zur verschlüsselten ablage von digitalen datenwörtern
WO2003067438A3 (de) * 2002-02-08 2003-11-27 Infineon Technologies Ag Schlüsselmanagementeinrichtung und verfahren zur verschlüsselten ablage von digitalen datenwörtern
DE10205316B4 (de) * 2002-02-08 2008-01-17 Infineon Technologies Ag Schlüsselmanagementeinrichtung und Verfahren zur verschlüsselten Ablage von digitalen Datenwörtern
US7437572B2 (en) 2002-02-08 2008-10-14 Infineon Technologies Ag Key management device and method for the encrypted storage of digital data words

Also Published As

Publication number Publication date
EP1118941B1 (de) 2008-01-02
WO2001053931A3 (de) 2001-12-20
JP2003521034A (ja) 2003-07-08
ATE382897T1 (de) 2008-01-15
CN1395702A (zh) 2003-02-05
CN1202478C (zh) 2005-05-18
DE50014893D1 (de) 2008-02-14
US7526655B2 (en) 2009-04-28
US20030005314A1 (en) 2003-01-02
EP1118941A1 (de) 2001-07-25

Similar Documents

Publication Publication Date Title
EP1118941B1 (de) Mikroprozessoranordnung und Verfahren zum Betreiben einer Mikroprozessoranordnung
EP1249010B1 (de) Mikroprozessoranordnung mit verschlüsselung
EP0932867B1 (de) Elektronische datenverarbeitungsschaltung
DE2916658C2 (de)
EP1668515B1 (de) Wortindividuelle schlüsselerzeugung
EP0766211A2 (de) Multifunktionale Chipkarte
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE60013424T2 (de) Datenverarbeitungsvorrichtung und integrierter Schaltkreis
DE102019128528A1 (de) Datenkryptografievorrichtungen und speichersysteme
DE60020794T2 (de) Verschlüsselungsschaltungsarchitektur zur gleichzeitigen Ausführung mehrerer Verschlüsselungsalgorithmen ohne Leistungseinbusse
EP0935214B1 (de) Chipkarte mit integrierter Schaltung
DE3013064C2 (de) Schaltungsanordnung zur Übertragung von Bitgruppen zwischen einer von mehreren peripheren Einheiten und einem Pufferspeicher
EP0127809B1 (de) Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE10296979B4 (de) Computersystem mit einer aktiven Speicherbusperipherieeinrichtung und Verfahren zur Steuerung einer aktiven Speicherbusperipherieeinrichtung
EP1449091B1 (de) Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage
DE1499742A1 (de) Steuerbare Speicherzugriffsvorrichtung fuer Speichereinrichtungen von Datenverarbeitungsanlagen mit Multiprogrammverarbeitung
EP1247186B1 (de) Speicherzugriffsverfahren und schaltungsanordung
DE3711209A1 (de) Datenprozessor mit fruehzeitigem op-code-vergleich
DE2717700C2 (de) Speicherzugriffsanordnung
EP0890172B1 (de) Halbleiterspeichervorrichtung
WO2003067438A2 (de) Schlüsselmanagementeinrichtung und verfahren zur verschlüsselten ablage von digitalen datenwörtern
EP3251281B1 (de) Intrinsische authentifizierung von programcode
EP1355269A1 (de) Datenverbeitungsvorrichtung und Verfahren zum Betreiben eines Datenverarbeitungsmoduls
DE10344636B4 (de) Datenabhängige Ver/Entschlüsselung

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): BR CN IN JP KR MX RU UA US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): BR CN IN JP KR MX RU UA US

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

ENP Entry into the national phase

Ref country code: JP

Ref document number: 2001 554159

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 018038042

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 10197792

Country of ref document: US

122 Ep: pct application non-entry in european phase