Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberWO2005043396 A2
Publication typeApplication
Application numberPCT/EP2004/009054
Publication dateMay 12, 2005
Filing dateAug 12, 2004
Priority dateSep 30, 2003
Also published asDE10345454A1, EP1668515A2, EP1668515B1, EP1668515B8, US7451288, US20060265563, WO2005043396A3
Publication numberPCT/2004/9054, PCT/EP/2004/009054, PCT/EP/2004/09054, PCT/EP/4/009054, PCT/EP/4/09054, PCT/EP2004/009054, PCT/EP2004/09054, PCT/EP2004009054, PCT/EP200409054, PCT/EP4/009054, PCT/EP4/09054, PCT/EP4009054, PCT/EP409054, WO 2005/043396 A2, WO 2005043396 A2, WO 2005043396A2, WO-A2-2005043396, WO2005/043396A2, WO2005043396 A2, WO2005043396A2
InventorsAstrid Elbe, Berndt Gammel, Rainer GÖTTFERT, Steffen Sonnekalb
ApplicantInfineon Technologies Ag
Export CitationBiBTeX, EndNote, RefMan
External Links: Patentscope, Espacenet
Word-individual key generation
WO 2005043396 A2
Abstract
The invention is based on the finding that the grouping of individually addressable units of a memory (12) into groups or pages (12a) already present in many systems can be used for substantially reducing the complexity of the address-dependent key generation while only insubstantially decreasing security, if a page pre-key is calculated (36) on the basis of a page address (30a) and the individual key is determined on the basis of the page pre-key and the word address (30b). As a result, the address-dependent key generation can be split up into a cryptographically demanding and relatively time-consuming process to be carried out rarely, namely page pre-key generation (34), and a fast step (36) of virtually low technical complexity which has to be carried out for every word or every individually addressable unit (12b), namely determination of the individual key on the basis of the page pre-key and the word address (30b).
Claims  translated from German  (OCR text may contain errors)
Patentansprüche claims
1. Vorrichtung zur Erzeugung eines individuellen Schlüssels zum Zugriff auf eine vorbestimmte adressierbare Einheit (12b) eines in adressierbaren Einheiten (12b) gegliederten Speichers (12), wobei die adressierbaren Einheiten (12b) gruppenweise zu Seiten (12a) zusammengefasst sind, wobei der vorbestimmten adressierbaren Einheit eine eindeutige Adresse (30) zugeordnet ist, die sich aus einer Seitenadresse (30a) , die die Seite angibt, der die adressierbare Einheit angehört, und einer Einheitsadresse (30b) , die die adressierbare Einheit unter den übrigen adressierbaren Einheiten, die der Seite angehören, identifiziert, zusammensetzt, mit folgenden Merkmalen: 1. A device for generating an individual key for accessing a predetermined addressable unit (12b) one in addressable units (12b) articulated memory (12), wherein the addressable units (12b) are combined into groups to sides (12a), wherein the predetermined addressable unit is a unique address (30) is assigned, which stems from a page address (30a) that specifies the page to which it belongs, the addressable unit, and a unit address (30b), the addressable unit among the other addressable units of belong page identified, composed, with the following characteristics:
eine Einrichtung (34) zum Berechnen eines Seitenvorschlüssels auf der Basis der Seitenadresse (30a) , und means (34) for calculating a Seitenvorschlüssels on the basis of the page address (30a), and
einer Einrichtung (36) zum Ermitteln des individuellen Schlüssels auf der Basis des Seitenvorschlüssels und der Wortadresse (30b) . a means (36) for determining the individual key on the basis of the word address Seitenvorschlüssels and (30b).
2. Vorrichtung gemäß Anspruch 1, bei der die Einrichtung (34) zum Berechnen des Seitenvorschlüssels mehr Chipfläche und/oder mehr Verarbeitungslaufzeitdauer aufweist als die 2. Device according to claim 1, wherein the means (34) for calculating the Seitenvorschlüssels having more chip area and / or longer processing time than the runtime
Einrichtung (36) zum Ermitteln des individuellen Schlüssels. Means (36) for determining the individual key.
3. Vorrichtung gemäß Anspruch 1 oder 2, bei der die Einrichtung (34) zum Berechnen eine Einrichtung (56) zum Chiffrieren der Seitenadresse oder eines aus derselben hergeleiteten Datenblocks mit einem Generalschlüssel aufweist, um den Seitenvorschlüssel zu halten. 3. A device according to claim 1 or 2, wherein the means (34) for calculating comprises means (56) for encrypting the page address or a signal derived from the same data block with a master key, in order to keep the page pre.
4. Vorrichtung gemäß Anspruch 3, bei der die Einrichtung (56) zum Chiffrieren eine Einrichtung (54) zum Expandieren der Seitenadresse (30a) aufweist, um einen expandierten Datenblock (58) zu erhalten, durch Abbilden jedes Bits der Seitenadresse (30a) auf zumindest ein unterschiedliches Bit des expandierten Datenblocks (58) und Abbilden zumindest eines Bits der Seitenadresse (30a) auf zumindest zwei Bits des expandierten Datenblocks (58) , und bei der die Einrich- tung zum Chiffrieren angepasst ist, um den expandierten Datenblock (58) zu chiffrieren. 4. The device according to claim 3, wherein the means (56) for encrypting means (54) for expanding the page address (30a) in order to obtain an expanded data block (58) by mapping each bit of the page address (30a) on at least one different bit of the expanded data block (58) and imaging at least one bit of the page address (30a) is adapted on at least two bits of the expanded data block (58), and in which device the establishment for enciphering to the expanded data block (58) to cipher.
5. Vorrichtung gemäß einem der Ansprüche 1 bis 4, bei der die Einrichtung (36) zum Ermitteln des individuellen Schlüs- sels eine Einrichtung (60a - 60e) zur bitweisen XOR-Verknüp- fung von Bits der Wortadresse (30b) mit vorbestimmten Bits des Seitenvorschlüssels aufweist, um den individuellen Schlüssel zu erhalten. 5. Device according to one of claims 1 to 4, wherein the means (36) for determining the individual key Sels means (60a - 60e) for bit-wise XOR linking of bits of the word address (30b) with predetermined bits of the Seitenvorschlüssels having to obtain the individual keys.
6. Vorrichtung gemäß einem der Ansprüche 1 bis 4, bei der die Einrichtung (36) zum Ermitteln des individuellen Schlüssels ferner folgende Merkmale aufweist: 6. The device according to one of claims 1 to 4, wherein the means (36) for determining the individual key further comprises:
eine Nachschlagtabelle (70) mit Maskierungsvektoren, von denen jeder einer möglichen Wortadresse zugeordnet ist; a look-up table (70) with masking vectors, each of which is a possible word address is assigned;
einer Einrichtung (74) zum Nachschlagen in der Nachschlagtabelle mit der Wortadresse als Index, um den zugeordneten Maskierungsvektor zu erhalten; means (74) for looking up the look-up table with the word address as an index to obtain the associated masking vector; und and
einer Einrichtung (72) zur bitweisen XOR-Verknüpfung des Maskierungsvektors und des Seitenvorschlüssels, um den individuellen Schlüssel zu erhalten. means (72) for bit-wise XOR operation between the masking vector and the Seitenvorschlüssels to obtain the individual key.
7. Vorrichtung gemäß einem der Ansprüche 1 bis 4, bei der die Einrichtung zum Ermitteln des individuellen Schlüssels eine steuerbare Permutationseinrichtung (82) zum Permutieren von Bits der Seitenadresse gemäß einer Permutationsvorschrift, die von der Wortadresse abhängt, um den individuel- len Schlüssel zu erhalten, aufweist. 7. Device according to one of claims 1 to 4, wherein in order to receive the means for determining the individual key a controllable permutation means (82) for permuting bits of the page address according to a permutation, which depends on the word address the indi- vidual key having.
8. Vorrichtung gemäß einem der Ansprüche 1 bis 4, bei der die Einrichtung (36) zum Ermitteln des individuellen Schlüssels eine Auswahleinrichtung (90) zum Auswählen von Bits der Seitenadresse gemäß einer Auswahlvorschrift, die von der Wortadresse abhängt, um den individuellen Schlüssel zu erhalten, aufweist. 8. Device according to one of claims 1 to 4, wherein the means (36) for determining the individual key selection means (90) for selecting bits of the page address according to a selection rule that is dependent on the word address to obtain the individual key having.
9. Vorrichtung gemäß einem der Ansprüche 1 bis 4, bei der die Einrichtung (36) zum Ermitteln des individuellen Schlüs- sels folgendes Merkmal aufweist: 9. Device according to one of claims 1 to 4, wherein the means (36) for determining the individual key has Sels the following feature:
eine Einrichtung (140) zum Herleiten mehrerer Rundenschlüssel aus dem Seitenvorschlüssel; means (140) for deriving a plurality of round keys from the page pre; und and
eine Einrichtung (144, 146) zum Definieren einer Reihenfolge unter den Rundenschlüsseln, um eine Folge der Rundenschlüssel zu erhalten, wobei die Reihenfolge von der Wortadresse abhängt, und die Folge den individuellen Schlüssel darstellt. means (144, 146) representing the individual key for defining an order among the round keys to obtain a result of the round keys, wherein the order of the word address dependent and the sequence.
10. Vorrichtung gemäß einem der vorhergehenden Ansprüche, die ferner folgende Merkmale aufweist: 10. The device according to any preceding claim, further comprising:
eine Einrichtung (38) zum Speichern des berechneten Seitenvorschlüssels; means (38) for storing the calculated Seitenvorschlüssels; und and
eine Einrichtung zum Überprüfen, ob bei einem nächsten Zugriff auf eine weitere vorbestimmte Einheit, der eine weitere eindeutige Adresse zugeordnet ist, in dem temporären Speicher (38) ein bereits berechneter Seitenvorschlüssel existiert, der basierend auf einer Seitenadresse einer eindeutigen Adresse berechnet worden ist, die zu der Seitenadresse der weiteren eindeutigen Adresse identisch ist, und, falls dies der Fall ist, zum Weiterleiten, unter Umgehung der Einrichtung (34) zum Berechnen, des bereits berechneten Seitenvorschlüssels an die Einrichtung (36) zum Ermitteln und, falls dies nicht der Fall ist, zum Weiterleiten der Seitenadresse der weiteren eindeutigen Adresse an die Einrichtung (34) zum Berechnen. means for checking whether in a next access to another predetermined unit that is associated with another unique address, a previously calculated page pre exists in the temporary memory (38), which has been calculated based on a page address a unique address, the is identical to the page address of the other unique address, and, if this is the case, to forward, bypassing the device (34) for calculating, the already calculated Seitenvorschlüssels to the means (36) for detecting and, if this is not the case is, for forwarding the page address of the unique address to the other device (34) for calculating.
11. System zum Zugriff auf eine vorbestimmte adressierbare Einheit eines in adressierbaren Einheiten gegliederten Speichers (12), wobei die adressierbaren Einheiten (12b) gruppenweise zu Seiten (12a) zusammengefasst sind, wobei der vorbestimmten adressierbaren Einheit eine eindeutige Adresse (30) zugeordnet ist, die sich aus einer Seitenadresse (30a) , die die Seite angibt, der die adressierbare Einheit angehört, und einer Einheitsadresse (30b) , die die adressierbare Einheit unter den übrigen adressierbaren Einheiten, die der Seite angehören, identifiziert, zusammensetzt, mit folgenden Merkmalen: Wherein the predetermined addressable unit is assigned 11 system for accessing a predetermined addressable unit of an articulated in addressable units memory (12), wherein the addressable units (12b) groups to form sides (12) are combined with a unique address (30), which stems from a page address (30a) that specifies the page to which it belongs, the addressable unit, and a unit address (30b), which among other addressable units that belong to the page, identifies the addressable unit, composed, with the following characteristics:
einer Vorrichtung zur Erzeugung gemäß einem der Ansprüche 1 bis 10; an apparatus for producing according to any of claims 1 to 10; und and
einer Vorrichtung zum Entschlüsseln eines verschlüsselten Speicherinhalts in der vorbestimmten adressierbaren Einheit auf der Basis des individuellen Schlüssels. a device for descrambling a scrambled content in the predetermined memory addressable unit on the basis of the individual key.
12. System zum Zugriff auf eine vorbestimmte adressierbare Einheit eines in adressierbaren Einheiten gegliederten Spei- chers (12), wobei die adressierbaren Einheiten (12b) gruppenweise zu Seiten (12a) zusammengefasst sind, wobei der vorbestimmten adressierbaren Einheit eine eindeutige Adresse (30) zugeordnet ist, die sich aus einer Seitenadresse (30a) , die die Seite angibt, der die adressierbare Einheit angehört, und einer Einheitsadresse (30b) , die die adressierbare Einheit unter den übrigen adressierbaren Einheiten, die der Seite angehören, identifiziert, zusammensetzt, mit folgenden Merkmalen: Wherein the predetermined addressable unit assigned a unique address (30) 12. A system for accessing a predetermined addressable unit of an articulated in addressable units mem- ory (12), wherein the addressable units (12b) are combined in groups to form sides (12a) is that from a page address (30a) that specifies the page to which it belongs, the addressable unit, and a unit address (30b), which among other addressable units that belong to the page, identifies the addressable unit, composed, with the following features:
einer Vorrichtung zur Erzeugung gemäß einem der Ansprüche 1 bis 10; an apparatus for producing according to any of claims 1 to 10; und eine Vorrichtung zum Verschlüsseln zu speichernder Daten auf der Basis des individuellen Schlüssels und Schreiben der verschlüsselten, zu schreibenden Daten in die vorbestimmte adressierbare Einheit. and a device for encrypting data to be stored on the basis of the individual key and writing the encrypted data to be written in the predetermined addressable unit.
13. Verfahren zur Erzeugung eines individuellen Schlüssels zum Zugriff auf eine vorbestimmte adressierbare Einheit (12b) eines in adressierbaren Einheiten (12b) gegliederten Speichers (12) , wobei die adressierbaren Einheiten (12b) gruppen- weise zu Seiten (12a) zusammengefasst sind, wobei der vorbestimmten adressierbaren Einheit eine eindeutige Adresse (30) zugeordnet ist, die sich aus einer Seitenadresse (30a) , die die Seite angibt, der die adressierbare Einheit angehört, und einer Einheitsadresse (30b) , die die adressierbare Einheit unter den übrigen adressierbaren Einheiten, die der Seite angehören, identifiziert, zusammensetzt, mit folgenden Schritten: 13. A method for generating an individual key for accessing a predetermined addressable unit (12b) in an addressable units (12b) articulated memory (12), wherein the addressable units (12b) are combined to form group-wise sides (12a), wherein the predetermined addressable unit is assigned a unique address (30) extending from one side address (30a) that specifies the page to which it belongs, the addressable unit, and a unit address (30b), the addressable unit among the other addressable units, belong to the page identified, composed, comprising the steps of:
Berechnen eines Seitenvorschlüssels auf der Basis der Seiten- adresse (30a) , und Calculating a Seitenvorschlüssels on the basis of the page address (30a), and
Ermitteln des individuellen Schlüssels auf der Basis des Seitenvorschlüssels und der Wortadresse (30b) . Determining the individual key on the basis of the word address Seitenvorschlüssels and (30b).
14. Computer-Programm mit einem Programmcode zur Durchführung des Verfahrens nach Anspruch 13, wenn das Computer-Programm auf einem Computer abläuft. 14. Computer program having a program code for performing the method of claim 13 when the computer program runs on a computer.
Description  translated from German  (OCR text may contain errors)

Beschreibung description

Wortindividuelle Schlüsselerzeugung Word Custom key generation

Die vorliegende Erfindung bezieht sich auf den Schutz von Speicherinhalten durch Verschlüsselung im allgemeinen und insbesondere auf die Erzeugung einheitenindividueller Schlüssel zum Zugreifen auf die adressierbaren Einheiten eines Speichers . The present invention relates to the protection of memory contents by encryption in general and in particular to the generation unit individual key for accessing the addressable units of a memory.

Zum Schutz gegen unberechtigtes Ausspähen von gespeicherten Informationen werden in verschiedenen Anwendungen die Speicherinhalte des Speichers verschlüsselt. To protect against unauthorized snooping of information stored in various applications, the memory contents of the memory are encrypted. Im Bereich des bargeldlosen Zahlungsverkehrs beispielsweise werden auf Chipkarten gespeicherte Geldbeträge verschlüsselt gespeichert, um sie vor unberechtigtem Ausspähen zu schützen, oder vor Manipulationen, wie zB unberechtigten Betragsveränderungen. In the field of cashless payment transactions, for example, stored monetary amounts are to smart cards stored in encrypted form, to protect them against unauthorized spying, or tampering, such as unauthorized amount changes.

An die in einem Speicher gespeicherten verschlüsselten Informationen, dh den Klartext, gelangt ein Unberechtigter beispielsweise durch statistische Analyse des auf dem Speicher gespeicherten Chiffrats. On the data stored in a memory encrypted information, ie, the plaintext, an unauthorized person enters, for example, by statistical analysis of the data stored on the memory cipher. Diese statistische Analyse umfasst beispielsweise eine Analyse der Auftretenswahrschein- lichkeit bestimmter Chiffrat-Datenblöcke oder dergleichen. This statistical analysis, for example, includes an analysis of the probability of occurrence of certain cipher data blocks or the like. Um ' diese statistischen Analysen zu erschweren, ist es wünschenswert, dass gleiche Klartexte, die sich in verschlüsselter Form an unterschiedlichen Speicherpositionen des Speichers befinden, dort nicht in Form identischer Chiffretexte vorlie- gen. To 'to aggravate these statistical analyzes, it is desirable that the same plain texts that are encrypted at different memory positions of the memory, there is not gen present in the form of identical ciphertext.

Eine Möglichkeit, die Verschlüsselung von Klartexten an unterschiedlichen Speicherpositionen in den unterschiedlichen Chiffretexten sicherzustellen, besteht darin, zur Verschlüs- seiung das sogenannte Cipher-Block-Chaining-Verfahren zu verwenden, dh das Betreiben einer Blockchiffre im CBC- Modus, wie er beispielsweise im Handbook of Applied Cryp- tography, CRC Press, NY, 1997, S. 230, beschrieben ist. One way to ensure the encryption of plain texts at different memory positions in the various cipher text, is the encryption seiung the so-called cipher block chaining method to use, ie operating a block cipher in CBC mode, as for example in the Handbook of Applied Crypto tography, CRC Press, NY, 1997, p 230, is described. Im CBC-Modus wird zur Verschlüsselung eines Klartext-Datenblocks immer das Chiffrat des vorhergehenden Klartext-Datenblocks herangezogen, wie zB des Klartext-Datenblocks mit um 1 niedrigerer oder um 1 höherer Adresse in dem Speicher. In CBC mode always the ciphertext of the previous plaintext data block is used for encrypting a plaintext data block, such as the plaintext data block lower by 1 or 1 higher address in memory. Der CBC-Modus hat den Nachteil, dass ein einzelnes isoliertes Datum in dem Speicher nur entschlüsselt werden kann, wenn die gesamte Kette der sequentiellen Daten entschlüsselt wird. The CBC mode has the disadvantage that a single isolated data in the memory can only be decrypted when the entire chain of sequential data is decrypted. Folglich ist kein direkter Zugriff auf Daten innerhalb der CBC-Kette möglicht. Consequently, no direct access to data within the CBC chain is made possible. Das Durchgehen der Chiffre-Kette kostet wiederum kostbare Rechenzeit und verbraucht unnötig viel Strom, was insbesondere bei Smartcards von Nachteil ist, die in batteriebetriebenen Geräten verwendet werden, wie zB Handys, oder bei Chipkarten, bei denen die Kunden der Chip- kartenherausgeber möglichst kurze Transaktionszeiten an den Terminals verlangen. The runaway cipher chain costs turn precious computing time and unnecessarily consumed a lot of electricity, which is especially smartcards disadvantageous used in battery-powered devices, such as cell phones, or smart cards, where customers of the chip card issuers shortest possible transaction times require at the terminals.

Eine weitere Möglichkeit sicherzustellen, dass gleiche Klartexte, die sich an unterschiedlichen Speicherpositionen befinden, in unterschiedliche Chiffretexte verschlüsselt werden, besteht in der Generierung adressabhängiger Schlüssel zur Verschlüsselung der Klartexte. ensure Another way that same plain texts located at different memory positions are encrypted into different ciphertexts, is the generation of address-dependent key to encrypt the plaintext. Die Verwendung adressabhängiger Schlüssel macht sich den Umstand zunutze, dass einem zu speichernden, zu verschlüsselnden Datum ein fester Spei- cherplatz und somit eine fest zugeordnete Adresse zugeordnet ist, und dass das verschlüsselte, gespeicherte Datum genau an dieser fest zugeordneten Adresse gespeichert ist und bleibt, bis es wieder anhand dieser Adresse ausgelesen wird. The use of address-dependent key makes use of the fact that one to be saved, to be encrypted date cherplatz a fixed memory and thus a dedicated address is assigned, and that encrypted that data stored is stored exactly at this dedicated address and remains, until it is read again using this address. Aus einem vorhandenen geheimen Generalschlüssel und der Adressin- formation für eine Speicherposition bzw. eine individuell adressierbare Einheit kann nun ein individueller Schlüssel generiert werden, mit welchem dann das betreffende Datum bei einem Schreibevorgang verschlüsselt und bei einem Lesevorgang entschlüsselt werden kann. From an existing secret master key and the address information for a location or an individually addressable unit an individual key can now be generated with which then the date in question can be encrypted in a write operation and decrypted in a read operation. Die adressabhängige Generierung hat den Nachteil, dass der Aufwand für die Schlüsselgenerie- rung in etwa so groß ist, wie der Aufwand für die Verschlüsselung bzw. Entschlüsselung selbst, da für jeden adressierba- ren Speicherplatz bzw. für jedes adressierbare Speicherwort eine Schlüsselgenerierung durchgeführt werden muss, die dafür sorgt, dass die Abbildung von Adresse auf zugehörige adressabhängige Schlüssel für einen Unbefugten möglichst undurch- sichtig ist. The address-dependent generation has the disadvantage that the cost of key generation is roughly as large as the expense for the encryption or decryption itself as a key generation must be performed for each addressable ren space or for each addressable memory word which ensures that the mapping of address to associated address-dependent key for an unauthorized person is possible impene- carefully. Schlüsselgenerierung auf Speicherwortgranulari- tät zieht folglich ebenfalls ein hohes Maß an Performancereduzierung mit sich, was die Kundenfreundlichkeit bei beispielsweise Chipkarten verringern kann. ity key generation on Speicherwortgranulari- consequently attracts also a high level of performance reduction with it, which can reduce the customer-friendliness at eg smart cards.

Eine Möglichkeit, das Sicherheitsdefizit durch Weglassen der Adressabhängigkeit bei der Verschlüsselung gespeicherter Speicherinhalte auszugeichen, bestünde darin, die Blockgrößen bei der Verschlüsselung zu vergrößern, da dies die Anzahl möglicher Klartexte für ein Chiffrat erhöht. A way to counter calibrate the security deficit by omitting the address dependency in the encryption of stored memory contents, would be the block sizes to increase during encryption, as this increases the number of possible plaintexts for a cipher. Damit verbunden ist jedoch ein erhöhter Aufwand auf Seiten der Verschlüsse- lungs- und Entschlüsselungshardware, der diese Option für Massenware wie Chipkarten untragbar macht. However, This is associated with an increased effort on the part of the encryption and decryption ment hardware, which makes this option for mass-produced goods such as smart cards prohibitive.

Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren und eine Vorrichtung zur Erzeugung individueller Schlüssel zu schaffen, die einen Zugriff auf einen Speicher auf der Basis dieser individuellen Schlüssel ermöglichen und dabei den Gesamtaufwand zum Zugriff zu verringern. The object of the present invention is to provide a method and an apparatus for generating individual keys that allow access to a memory on the basis of individual key, thereby reducing the overall cost to access.

Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 13 gelöst. This object is achieved by an apparatus according to claim 1 and a method according to claim thirteenth

Die Erkenntnis der vorliegenden Erfindung besteht darin, dass die in vielen Systemen bereits vorhandene Gruppierung der individuell adressierbaren Einheiten eines Speichers zu The finding of the present invention is that the existing systems, in many grouping of individually addressable memory units to a

Gruppen bzw. Seiten verwendet werden kann, um die Komplexität der adressabhängigen Schlüsselgenerierung bei nur geringfügiger Verringerung an der Sicherheit deutlich zu verkleinern, wenn zunächst ein Seitenvorschlüssel auf der Basis einer Seitenadresse berechnet wird und dann auf der Basis des Groups or pages can be used to reduce the complexity of address-dependent key generation with only slight reduction in the safety significantly, if at first a page pre is calculated based on a page address and then on the basis of

Seitenvorschlüssels und der Wortadresse erst der individuelle Schlüssel ermittelt wird. Seitenvorschlüssels and the word address only the individual key is determined. Hierdurch kann die adressabhängige Schlüsselgenerierung in einen kryptographisch anspruchsvollen relativ aufwendigen Prozess, der aber nur selten durchgeführt werden muss, nämlich die Seitenvorschlüsselberechnung, und in einen schnellen, nahezu aufwandslosen Schritt, der für jedes Wort bzw. jede individuell adressierbare Einheit ausgeführt werden muss, nämlich die Ermittlung des individuellen Schlüssels auf der Basis des Seitenvorschlüssels und der Wortadresse, aufgespalten werden. In this way, the address-dependent key generation in a cryptographically demanding relatively expensive process, but it must be carried out only rarely, namely Seitenvorschlüsselberechnung, and in a quick, almost expense-free step that must be performed for each word or each individually addressable unit, namely the determining the individual key are based on the Seitenvorschlüssels and the word address, split. Der Seitenvorschlüsselberechnungs- vorgang kann also derart gewählt werden, dass der Vorgang bei der Implementierung weniger Chipfläche und/oder mehr Verarbeitungslaufzeitdauer aufweist als die Implementierung der Ermittlung des individuellen Schlüssels. The Seitenvorschlüsselberechnungs- operation can thus be selected such that the operation in the implementation of less chip area and / or longer processing time than the runtime implementation of the determination of the individual key. Hierdurch kann die Zugriffszeit auf den Speicher verringert werden, da die Seitenadresse ja für alle individuell adressierbaren Einhei- ten, die zu einer Seite gehören, gleich ist und folglich nicht immer erneut berechnet werden muss. Thereby, the access time can be reduced to the memory because the page address so th for all individually addressable units belonging to one side, is equal and therefore does not have to be calculated always again. Vielmehr kann die Seitenadresse zwischengespeichert werden, um für diejenigen unter den nachfolgenden Zugriffen auf den Speicher zur Verfügung zu stehen, die sich auf adressierbare Einheiten in der entsprechenden Speicherseite beziehen. Instead, the page address can be cached in order for those to be under the subsequent accesses to the memory available, referring to addressable units in the corresponding memory page. Die Speicherung kann beispielsweise in einem Verdrängungsspeicher erfolgen, bei dem ein gewisser Verdrängungsmechanismus verwendet wird, um in demselben beispielsweise die Seitenvorschlüssel für diejenigen Seiten zeitweilig gespeichert bereitzustellen, auf die bzw. deren inbegriffenen Einheiten mit hoher Wahrscheinlichkeit in kürze wieder zugegriffen wird. The storage can for example take place in a displacement memory in which a certain displacement mechanism is used in the same example, the page pre for those pages provide temporarily stored on or their complimentary units likely is accessed again soon. Dieser Speicher kann, wenn vorhanden, mit einem Cache- oder Daten-Cache-Speicher integriert bzw. kombiniert werden, der ja auf ähnlich Weise dazu da ist, aktuelle Daten für einen schnellen Zugriff bereitzustellen, ohne dass ein Zugriff auf einen langsameren Hintergrundspeicher notwendig ist. This memory can be if present, integrated or combined with a cache or data cache memory in a similar manner to this is yes as to provide current data for quick access without having to access a slower backing store is necessary ,

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeich- nungen näher erläutert. Preferred embodiments of the present invention will be detailed subsequently referring to the appended drawings. Es zeigen: Fig. 1 ein Blockschaltbild eines Speichersystems, in welchem eine erfindungsgemäße Schlüsselerzeugung verwendet werden kann, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; In the drawings: Figure 1 is a block diagram of a memory system in which a key generation according to the invention can be used, according to an embodiment of the present invention.

Fig. 2a ein schematisches Blockschaltbild zur Veranschaulichung des Aufbaus und der Funktionsweise der Schlüsselerzeugungseinrichtung in dem Speichersystem von Fig. 1 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; Figure 2a is a schematic block diagram for illustrating the structure and operation of the key generation device in the memory system of Figure 1 according to an embodiment of the present invention..;

Fig. 2b eine schematische Darstellung des Aufbaus einer Seite aus Wörtern gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; Figure 2b is a schematic representation of the structure of a page of words according to an embodiment of the present invention.

Fig . Fig. 3 ein schematisches Blockschaltbild zur Veranschaulichung des Aufbaus und der Funktionsweise der Vor- schlüsselberechnungseinrichtung in Fig . 3 is a schematic block diagram for illustrating the structure and operation of the key advantages calculating means in FIG. 2 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 2 according to an embodiment of the present invention;

Fig. 4 eine schematische Zeichnung zur Veranschaulichung des Aufbaus und der Funktionsweise der Einrichtung zur Ermittlung des individuellen Schlüssels aus den Seitenvorschlüsseln und der Wortadresse von Fig. 2 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; Figure 4 is a schematic drawing showing the construction and operation of the means for determining the individual key from the Seitenvorschlüsseln and the word address of Figure 2 according to an embodiment of the present invention..;

Fig. 5 eine schematische Zeichnung zur Veranschaulichung des Aufbaus und der Funktionsweise der Ermittlungs- einrichtung von Fig. 2 gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung; Fig. 5 is a schematic drawing to illustrate the structure and operation of the determining device of Figure 2 according to another embodiment of the present invention.

Fig. 6 eine schematische Zeichnung zur Veranschaulichung des Aufbaus und der Funktionsweise der Ermittlungs- einrichtung von Fig. 2 gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung; Fig. 6 is a schematic drawing showing the construction and operation of the determining device of Figure 2 according to another embodiment of the present invention. Fig. 7 eine schematische Zeichnung zur Veranschaulichung des Aufbaus und der Funktionsweise der Ermittlungs ¬ einrichtung von Fig. 2 gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung; Figure 7 is a schematic drawing showing the construction and operation of the discovery ¬ device of Figure 2 according to another embodiment of the present invention..;

Fig. 8 ein Blockschaltbild eines für die Entschlüsselung zuständigen Teils einer Ver-/Entschlüsselungsein- richtung wie in Fig. 1 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; Fig. 8 is a block diagram of a relevant portion for the decryption of an encryption / Entschlüsselungsein- direction as in Fig 1 according to an embodiment of the present invention.

Fig. 9 ein Blockschaltbild eines für die Verschlüsselung zuständigen Teils einer Ver-/Entschlüsselungsvor- richtung wie in Fig. 1 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 9 is a block diagram of a relevant part for the encryption of an encryption / Entschlüsselungsvor- direction as in Fig 1 according to an embodiment of the present invention..; und and

Fig. 10 ein Blockschaltbild einer Einrichtung zur Berech ¬ nung einer Rundenschlüsselfolge als dem individuellen Schlüssel aus dem Vorschlüssel gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfin- düng . Fig. 10 fertil a block diagram of a device for calculation ¬ tion of a round key sequence as the individual key from the prekeys according to another embodiment of the present invention.

Bevor bezugnehmend auf die Zeichnungen die vorliegende Erfindung anhand von Ausführungsbeispielen näher erläutert wird, wird darauf hingewiesen, dass gleiche Elemente oder ähnliche Elemente in diesen Figuren mit gleichen oder ähnlichen Bezugszeichen versehen sind, und dass eine wiederholte Beschreibung dieser Elemente vermieden wird. Before referring to the drawings, the present invention will be explained in more detail with reference to embodiments, it is noted that the same elements or similar elements in these figures are provided with the same or similar reference numerals, and that a repeated description of these elements is avoided.

Fig. 1 stellt ein System aus CPU 10, Speicher 12 und einer Speicherzugriffsvorrichtung 14 dar. Das System von Fig. 1 ist beispielsweise Teil eines Kryptocontrollers auf einer Chipkarte. Fig. 1 illustrates a system of CPU 10, memory 12 and a memory accessing device 14. The system of Fig. 1 is for example part of a crypto controller on a chip card. In dem Speicher 12, der beispielsweise Teil eines physikalisch größeren Speichers sein kann, sind geheime Informationen gespeichert, wie zB ein Guthaben, ein Master- schlüssel eines chipkartenherausgebenden Institutes oder aber ein geheimer Code eines geheimen Kryptographiealgorithmus. In the memory 12, which may be part of a physically larger memory, for example, secret information is stored, such as a bank, a master key of a smart card-issuing institution or a secret code of a secret cryptographic algorithm. Die CPU 10 arbeitet ein Programm ab, das beispielsweise ebenfalls in dem Speicher 12 gespeichert sein kann, um vor Zugriffen unberechtigter geschützt zu sein. The CPU 10 runs a program that can be, for example, also stored in the memory 12 in order to be protected against access by unauthorized. Einige Befehle in dem Programm erfordern, dass die CPU 10 Speicherinhalte in dem Speicher 12 lädt bzw. ausliest oder Speicherinhalte in dem Speicher 12 durch neue Informationen be- oder überschreibt . Some require instructions in the program that the CPU 10 loads the memory contents in the memory 12 or reads or memory contents in the memory 12 determined by new information or overrides.

Die Zugriffsvorrichtung 14 ist dazu vorgesehen, sicherzustel- len, dass die geheimen Informationen in dem Speicher 12 immer in verschlüsselter Form gespeichert werden, und dass umgekehrt die verschlüsselten Speicherinhalte des Speichers 12 bei Ladevorgängen bzw. bei Auslesen derselben wieder entschlüsselt werden. The access device 14 is intended to ensure that the secret information is always stored in the memory 12 in an encrypted form, and that, conversely, the encrypted memory contents of the memory 12 during loading and unloading or in reading the same be decrypted.

Die Zugriffsvorrichtung 14 umfasst eine Ver-/Entschlüsse- lungseinrichtung 16 sowie eine Schlüsselerzeugungseinrichtung 18. Die Ver-/Entschlüsselungseinrichtung 16 ist dazu vorgesehen, Daten von der CPU 10, die in dem Speicher 12 gespeichert werden sollen, vor ihrer Speicherung zu verschlüsseln, und von dem Speicher 12 ausgegebene, gespeicherte und verschlüsselte Daten vor ihrer Weiterleitung an die CPU 10 zu entschlüsseln. The access device 14 includes an encryption / decryption device 16 and a key generation device 18. The encryption / decryption means 16 is intended to encrypt data from the CPU 10 to be stored in the memory 12 prior to storage, and from the memory to decode 12 output, stored and encrypted data before forwarding to the CPU 10th Die Ver-/Entschlüsselungseinrichtung 16 verwendet hierzu einen wortindividuellen Schlüssel, den sie von der Schlüsseleinrichtung 18 erhält. The encryption / decryption means 16 uses this word a unique key, which they receive from the key device 18th

Genauer ausgedrückt ist die CPU 10 über einen Adressbus 20 mit sowohl einem Adresseingang des Speichers 12 als auch einem Adresseingang der Schlüsselerzeugungseinrichtung 18 verbunden. More specifically, the CPU 10 is connected via an address bus 20 with both an address input of the memory 12 and an address input of the key generation device 18. Die Schlüsselerzeugungseinrichtung 18 gibt an ihrem Ausgang wortindividuelle Schlüssel für die Adressen auf dem Adressbus 20 aus, wobei der Ausgang der Schlüsselerzeugungseinrichtung 18 mit einem Schlüsseleingang der Ver- /Entschlüsselungseinrichtung 16 verbunden ist. The key generation device 18 outputs at its output from word custom key for the address on the address bus 20, the output of the key generation device 18 is connected to a key input of the encryption / decryption means 16th Über einen Datenbus 22 ist die CPU 10 mit einem Daten-Ein/Ausgang des Speichers 12 verbunden. About a data bus 22, the CPU 10 is connected to a data input / output of the memory 12th In den Datenbus 22 ist die Ver- /Entschlüsselungseinrichtung 16 geschaltet. In the data bus 22, the encryption / decryption means 16 is connected. Insbesondere ist ein Dateneingang der Ver-/Entschlüsselungseinrichtung 16 mit einem Datenausgang der CPU 10 und ein weiterer Dateneingang der Ver-/Entschlüsselungseinrichtung 16 mit einem Datenaus ¬ gang des Speichers 12 verbunden, während ein Datenausgang der Ver-/Entschlüsselungseinrichtung 16 mit einem Dateneingang des Speichers 12 und ein weiterer Datenausgang der Ver-/Ent- schlüsselungseinrichtung 16 mit einem Dateneingang der CPU 10 verbunden ist. In particular, a data input of the encryption / decryption means 16 to a data output of the CPU 10 and another data input of the encryption / decryption means 16 is connected to a DATAOUT ¬ output of the memory 12 while a data output of the encryption / decryption means 16 to a data input of the memory 12 and a further output data of the encryption / decryption device 16 is connected to a data input of the CPU 10th Die Ver-/Entschlüsselungseinrichtung 16 bildet also eine Schnittstelle zwischen CPU 10 und Speicher 12 und sorgt dafür, dass auf dem Datenbus 22 zwischen CPU 10 und The encryption / decryption means 16 thus forms an interface between CPU 10 and memory 12 and ensures that on the data bus 22 between CPU 10 and

Ver-/Entschlüsselungseinrichtung 16 die Daten in entschlüs ¬ selter Form, dh im Klartext, und in dem Teil des Datenbusses 22 zwischen dem Speicher 12 und der Ver-/Entschlüsse- lungseinrichtung 16 nur in verschlüsselter Form, dh als Chiffrat, vorkommen. Encryption / decryption means 16, the data in entschlüs ¬ selter form, ie, in plain text, and in the portion of the data bus 22 between the memory 12 and the encryption / decryption device 16 in encrypted form, ie as a cipher, occur.

Nachdem im Vorhergehenden der Aufbau des Systems von Fig. 1 beschrieben worden ist, wird im Folgenden dessen Funktionsweise beschrieben. Having described above the construction of the system of FIG. 1, hereinafter the operation of which will be described. Bei der nachfolgenden Beschreibung der Funktionsweise der CPU 10 wird angenommen, dass sich in dem Speicher 12 bereits verschlüsselte Speicherinhalte befinden. In the following description of the operation of the CPU 10, it is assumed that in the memory 12 are already encrypted memory contents. Der Speicher 12 ist in kleinste individuell adressierbare Einheiten, im Folgenden als Wörter bezeichnet, gegliedert. The memory 12 is the smallest individually addressable units, hereinafter referred to as words, structured. Jedem Wort des Speichers 12 ist eine eindeutige Adresse zugeordnet. Each word of the memory 12 is assigned a unique address. Wird nun die CPU 10 bei Abarbeitung eines Programms angewiesen einen Ladevorgang durchzuführen, dh den verschlüsselten Speicherinhalt an einem individuell adressierbaren Element bzw. ein Wort aus dem Speicher 12 zu laden, so gibt die CPU 10 auf dem Adressbus 20 die entsprechende eindeutige Adresse aus. Now, if the CPU 10 is instructed to perform when executing a program, a charging operation, ie to load the encrypted memory contents to an individually addressable element or a word from the memory 12, the CPU 10 outputs to the address bus 20 from the corresponding unique address. Der Speicher 12 verwendet die Adresse um auf die entsprechende physikalische Speicherposition zuzugreifen und das dort gespeicherte verschlüsselte Wort auszulesen und auf den Datenbus 22 an die Ver-/Entschlüsse- lungseinrichtung 16 auszugeben. The memory 12 uses the address to access the corresponding physical memory location and read out the stored there encrypted word and to the data bus 22 to the encryption / decryption device outputting 16th

Die Schlüsselerzeugungseinrichtung 18 empfängt die von der CPU 10 ausgegebene Adresse ebenfalls. The key generation device 18 receives the output from the CPU 10 address also. Wie es im Folgenden noch beschrieben werden wird, ermittelt die Schlüsselerzeugungseinrichtung 18 aus der Adresse auf dem Adressbus 20 einen wortindividuellen Schlüssel, den die Ver-/Entschlüsse- lungseinrichtung 16 benötigt, um den verschlüsselten ausgele- senen Speicherinhalt von dem Speicher 12 entschlüsseln zu können. As will be described hereinafter, determines the key generation device 18 from the address on the address bus 20 a word individual keys, the encryption / decryption device 16 needed to decrypt the encrypted read out nected memory content of the memory 12 can. Die Schlüsselerzeugungseinrichtung 18 gibt den wortindividuellen Schlüssel deshalb an die Ver-/Entschlüsselungs- einrichtung 16 aus. The key generating means 18 outputs the word-individual key therefore made to the encryption / decryption device 16th Diese entschlüsselt auf der Basis des wortindividuellen Schlüssels den von dem Speicher 12 erhalte- nen Speicherinhalt und gibt diesen Speicherinhalt im Klartext an die CPU 10 aus, die den nun entschlüsselten Speicherinhalt je nach Befehl im Klartext verarbeitet, wie zB in ein internes Register lädt oder dergleichen. This decrypted based on the word individual key the services received from the memory 12 memory contents and outputs memory contents of plain text to the CPU 10 which processes the now decrypted memory contents according to the command in plain text, such as charges in an internal register or the like ,

In dem Fall, dass das auszuführende Programm in der auszuführenden Befehlszeile einen Schreibvorgang anzeigt, gibt die CPU 10 auf dem Adressbus 20 die Adresse aus, die das Wort angibt, in welchem ein durch den Schreibbefehl spezifiziertes Datum gespeichert werden soll. In the event that the program being executed indicates a write to the executed command line, the CPU 10 outputs to the address bus 20 from the address indicating the word in which a specified by the write command data to be stored. Das zu speichernde Datum gibt die CPU 10 auf dem Datenbus 22 an die Ver-/Entschlüsselungs- einrichtung 16 aus. The date to be stored, the CPU 10 on the bus 22 to the encryption / decryption device 16 from. Wie zuvor bei dem Ladevorgang erzeugt die Schlüsselerzeugungseinrichtung 18 aus der Adresse auf dem Adressbus 20 einen wortindividuellen Schlüssel und gibt denselben an die Ver-/Entschlüsselungseinrichtung 16 aus. As previously in the charging process generates the key generation device 18 from the address on the address bus 20 a word-individual key and outputs the same to the encryption / decryption means 16th Diese verwendet den wortindividuellen Schlüssel zur Verschlüsselung des zu speichernden Datums und gibt das Chiffrat an den Speicher 12 aus. This uses the word individual encryption key to be memorized date and returns the ciphertext to the memory 12th Der Speicher 12 speichert das empfangene Chiffrat an der durch die Adresse auf dem Adressbus 20 angegebenen Stelle in dem entsprechenden Wort ab. The memory 12 stores the received cipher text at the specified by the address on the address bus 20 location in the corresponding word.

Bei der bisherigen Beschreibung wurde noch nicht genau auf die Funktionsweise der Schlüsselerzeugungseinrichtung 18 eingegangen. In the description so far has not yet received attention to the operation of the key generation device 18th Wie es die im Folgenden beschriebenen Ausführungsbeispiele für die Schlüsselerzeugungseinrichtung 18 zei- gen werden, ist die Schlüsselerzeugungseinrichtung 18 derart ausgebildet, dass sie in der Lage ist, wortindividuelle Schlüssel zur Verschlüsselung der Speicherinhalte bzw. Wörter in dem Speicher 12 zu erzeugen, ohne aber dabei jedes Mal einen in etwa gleich aufwendigen Schlüsselerzeugungsprozess durchzuführen. As described in the following exemplary embodiments of the key generation device 18 show gen are, the key generation device 18 is configured such that it is able to generate word custom key to encrypt the memory contents or words in the memory 12 without, however, any times a perform about the same complex key generation process. Dies wird erzielt, indem mehrere Wörter, die ja die kleinsten adressierbaren Dateneinheiten des Speichers 12 darstellen, jeweils zu einer Seite zusammengefasst werden, und dass für eine Seite nur die Seitenadresse, die die Seite unter den Seiten des Speichers 12 spezifiziert, auf komplizierte und aufwendige und damit sichere Weise zur Erzeugung eines Seitenvorschlüssels herangezogen wird, während für die Wörter innerhalb dieser Seite die wortindividuellen Schlüssel auf einfache, weniger kompliziertere Weise auf der Basis des Seitenvorschlüssels erzeugt werden. This is achieved by using multiple words that indeed constitute the minimum addressable data units of the memory 12, are combined to one side, and that for one side only, the page address, which specifies the site at the sides of the memory 12, to complicated and expensive and thus secure manner is used to produce a Seitenvorschlüssels while for the words within this page the word individual keys are generated in a simple, less complicated manner on the basis of Seitenvorschlüssels. Lädt dann, wie es häufig vorkommt, die CPU 10 nacheinander die Wörter einer Seite aus, dann ist es nur beim ersten Wort dieser Seite notwendig, die aufwendige Vorschlüsselgenerierung durchzuführen, während für die restlichen Wörter der Seite dann nur noch die weniger aufwendige Herleitung der wortindividuellen Schlüssel auf der Basis dieses Vorschlüssels notwendig ist. then Loads, as often occurs, the CPU 10 successively the words one side, then it is necessary only at the first word of this page to perform the elaborate Vorschlüsselgenerierung while for the remaining words of the page then only the less complex derivation of the word individual key this prekeystream is necessary based.

Um die Aufgliederung des Speichers 12 in Seiten und Wörter näher zu veranschaulichen, wird zunächst auf Fig. 2a und 2b Bezug genommen. In order to illustrate the allocation of the memory 12 in sides and closer words, first 2a and 2b Referring to Figs.. Fig. 2a zeigt in ihrer oberen Hälfte schematisch als Rechteck dargestellt einen Ausschnitt aus dem Speicher 12. Der in Fig. 2a dargestellte Ausschnitt umfasst exemplarisch 15 Seiten 12a. Fig. 2a shows in its upper half schematically shown as a rectangle a section of the memory 12. The section shown in Fig. 2a includes examples 12a 15 pages. Jede Seite umfasst wiederum 16 Wörter 12b, wobei dies der Übersichtlichkeit halber in Fig. 2a jedoch nur für eine Seite 12a dargestellt ist. Each page, in turn, consists of 16 words 12b, this being of clarity sake, however, shown in Fig. 2a only one side 12a. Die Wörter 12b des Speichers 12 sind die kleinsten adressierbaren Dateneinheiten des Speichers 12. Das bedeutet anders ausgedrückt, dass jedem Wort 12b eine eindeutige Adresse zugeordnet ist, durch die es mit dem Speicher 12 verbundenen Einheiten, wie zB der CPU 10 von Fig. 1, möglich ist, auf die Speicherinhalte der einzelnen Wörter 12b zuzugreifen. The words 12b of the memory 12 are the smallest addressable units of data of the memory 12. This means in other words that each word 12b is assigned a unique address by which it, with the memory 12 connected to units such as the CPU 10 of Fig. 1 is possible to access to the memory contents of the individual words 12b. Es wird darauf hingewiesen, dass die räumliche Anordnung der Wörter 12b, wie sie in Fig. 2a dargestellt ist, freilich nur exemplarisch ist, und dass der Speicher 12 auch mehrere übereinanderange- ordnete Speicherebenen aufweisen kann, und dass die einzelnen Wörter 12b auch anders zu Seiten zusammengefasst sein können oder anders angeordnet sein können als in Zeilen und Spalten, wie in Fig. 2a gezeigt. It should be noted that the spatial arrangement of the words 12b, as shown in Fig. 2a, of course, is only exemplary, and that the memory 12 also may have a plurality übereinanderange- arranged memory planes, and that the individual words and 12b differently to Sites may be combined or otherwise may be arranged as shown in rows and columns, as shown in Fig. 2a.

Um nun die Darstellung der nachfolgenden Beschreibung zu vereinfachen, wird im Folgenden davon ausgegangen, dass der Speicher 12 2 20 Wörter umfasse. To simplify the representation of the now following description, it is assumed in the following assume that the memory 12 encompasses 2 20 words. Jedes Wort bestehe aus 32 = 2 5 Bits. Each word consists of 32 bits = 2 5. Die Speichergröße des Speichers 12 beträgt also nach diesem lediglich illustrativen Beispiel 2 25 Bit = 2 17 x 2 8 Bit = 128 Kilobyte. The memory size of the memory 12 is therefore for this purely illustrative example 2 25 bit = 2 17 x 2 8 bits = 128 kilobytes. Die Einteilung in Seiten wird exemplarisch derart vorgenommen, dass alle Wörter mit Adressen, deren 16 höchstwertige Bits (MSB; MSB = Most Significant Bits) gleich sind, zu einer Seite gehören bzw. zu einer Seite zusammenge- fasst werden. The division into pages is exemplarily made such that all words with addresses whose 16 most significant bits (MSB MSB = Most Significant Bits) are the same, belong to one side or be combined to form one side. Die Wortadressen von Wörtern in einer Seite unterscheiden sich folglich lediglich in den verbleibenden vier niedrigstwertigen Bits (LSB; LSB = Least Significant Bits) der Zwanzig-Bit-Wortadresse . The word addresses of words in a page differ therefore only in the remaining four least significant bits (LSB Least Significant Bits) of the twenty-bit word address. Der Speicher 12 enthält folglich 2 15 Seiten. Consequently, the memory 12 contains 2 15 pages.

In Fig. 2a ist bei 30 noch exemplarisch der Aufbau einer eindeutigen Adresse eines Worts 12b gezeigt. In Fig. 2a, the construction of a unique address of a word 12b is at 30 still shown exemplarily. Wie bereits erwähnt, wird im Folgenden davon ausgegangen, dass die eindeutige Adresse 30 20 Bit lang ist. As already mentioned, is assumed in the following that the unique address 30 is 20 bits long. Der höherwertigere Teil der eindeutigen Adresse 30 bestehend aus den 16 MSBs und wird als der Seitenadressteil 30a der eindeutigen Adresse bezeichnet. The higher-value part of the unique address of 30 consisting of the 16 MSBs and is referred to as the page address portion 30a of the unique address. Der Seitenadressteil 30a enthält die sog. Seitenadresse. The page address portion 30a contains the so-called. Page address. Der niedrigwertigere Teil 30b der eindeutigen Adresse wird aus den vier LSBs gebildet und stellt den Wortadressteil 30b dar. Der Wortadressteil 30b gibt an, welchem der Wörter in der durch den Seitenadressteil angegebenen Seite 12a die eindeutige Adresse 30 zugeordnet ist. The less significant part 30b of the unique address is formed from the four LSBs and represents the word address part 30b. The word address part 30b indicates which of the words associated with the unique address 30 in the direction indicated by the page address portion side 12a.

Dies wird in Fig. 2b näher veranschaulicht, die für eine Seite 12b die Aufteilung in die 16 Wörter 12a dieser Seite 12b veranschaulicht, und in der die Wörter durchnummeriert und mit einer zugehörigen 4-Bit-Wortadresse bzw. mit einem 4- Bit-Versatzwert versehen sind, der für das jeweilige Wort in dem Wortadressteil 30b enthalten sein muss. This is shown in Fig. 2b further illustrated that the division in the 16 words illustrates a side 12b 12a side 12b, and in the numbers the words and with an associated 4-bit word address and a 4-bit offset value are provided, which must be included for each word in the word address part 30b. Durch die Wortadresse bzw. den Versatzwert in dem Wortadressteil 30b wird folglich jedem Wort einer Seite ein fester Platz innerhalb der Seite zugewiesen. By word address or the offset value in the word address part 30b is assigned a fixed place within the side consequently every word of a page.

Bezugnehmend auf Fig. 2a wird nun im Folgenden die Schlüsselerzeugungseinrichtung 18 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung näher beschrieben. Referring to FIG. 2a, the key generating means 18 is now in accordance with an embodiment of the present invention will be described in more detail below. Die Schlüsselerzeugungseinrichtung 18 umfasst eine Seitenwechselfeststellungs- einrichtung 32, eine Vorschlüsselberechnungseinrichtung 34 und eine Einrichtung 36 zur Ermittlung des individuellen Schlüssels. The key generation device 18 includes a Seitenwechselfeststellungs- device 32, a Vorschlüsselberechnungseinrichtung 34 and means 36 for determining the individual key. Ferner umfasst die Schlüsselerzeugungseinrichtung 18 einen Speicher, wie zB einen flüchtigen Speicher, 38 zur vorübergehenden Speicherung von dem oder den zuletzt verwen- deten Seitenvorschlüssel (n) , auf deren Funktion und Erzeugung noch im Folgenden näher eingegangen wird. Further, the key generation device 18 includes a memory, such as a volatile memory 38 for temporarily storing the or the most recently used page pre (n), is their function and produce yet been received in the following.

Die Seitenwechselfeststellungseinrichtung 32 ist dazu vorgesehen, den Seitenadressteil 30a der eindeutigen Adresse 30 auf dem Adressbus 20 zu empfangen und daraufhin zu überprüfen, ob dieselbe eine Seite betrifft, für die sich bereits ein Seitenvorschlüssel in dem Zwischenspeicher 38 befindet. The page change detection means 32 is provided to receive the page address part 30a of the unique address 30 on the address bus 20 and to check to see if the same is directed to a page that already page pre located in the latch 38th Ist dies der Fall, ist die Seitenwechselfeststellungseinrichtung 32 in der Lage, anhand der dort gespeicherten Seitenad- resse auf den Zwischenspeicher 38 zuzugreifen, welcher daraufhin den zwischengespeicherten Seitenvorschlüssel für die durch die Seitenadresse angegebene Seite an einen Seiten- vorschlüsseleingang der Einrichtung 36 weiterleitet. If this is the case, the page change detection means 32 is capable of using the Seitenad- stored there ress on the latch 38 access, which then the cached page pre for the specified by the page address page to a side vorschlüsseleingang the device 36 forwards.

Stellt die Seitenwechselfeststellungseinrichtung 32 fest, dass für die durch die Seitenadresse angezeigte Seite noch kein Seitenvorschlüssel vorliegt, gibt dieselbe die Seitenadresse an einen Seitenadresseingang der Vorschlüsselberech- nungseinrichtung 34 weiter. Sets the page change detection means 32 determines that the direction indicated by the page address page yet there is no page pre, are the same, the page address to a page address input of Vorschlüsselberech- recovery device 34 further. Die Vorschlüsselberechnungsein- richtung 34 berechnet aus der Seitenadresse einen Seitenvorschlüssel für diese Seite und gibt den berechneten Seitenvorschlüssel an den Seitenvorschlüsseleingang der Einrichtung 36 weiter. The Vorschlüsselberechnungsein- device 34 calculated from the page address a page pre for this page and are calculated on the page pre Seitenvorschlüsseleingang the device 36 further. Ferner gibt sie denselben unter Verdrängung eines bereits gespeicherten Seitenvorschlüssels zur vorübergehenden Speicherung an den Speicher 38 aus. Furthermore, they are the same, displacing an already stored Seitenvorschlüssels for temporary storage to the memory 38 from.

Der Wortadressteil 30b der auf dem Adressbus 20 vorliegenden eindeutigen Adresse 30 wird an einen Wortadresseingang der Einrichtung 36 zur Ermittlung des individuellen Schlüssels weitergeleitet. The word address part 30b of the present on the address bus 20 unique address 30 36 forwarded to a word address input of the means for determining the individual key. Die Einrichtung 36 ermittelt aus eingegangener Wortadresse bzw. eingegangenem Versatzwert und eingegan- genem Seitenvorschlüssel einen wortindividuellen Schlüssel für das Wort, auf die die eindeutige Adresse 30 zeigt. The device 36 determines from incoming word address or lodged offset value and entered into genic page pre a word-individual key for the word pointed to the unique address of 30th Die Einrichtung 36 gibt diesen wortindividuellen Schlüssel an ihrem Ausgang aus, der gleichzeitig auch den Ausgang der Schlüsselerzeugungseinrichtung 18 darstellt, der, wie in Fig. 1 gezeigt, mit dem Schlüsseleingang der Ver-/Entschlüsse- lungseinrichtung 16 verbunden ist. The device 36 is this word-individual key made at its output, and simultaneously represents the output of the key generation device 18 which, as shown in FIG. 1, with the key input of the encryption / decryption device 16 is connected.

Nachdem im Vorhergehenden der Aufbau sowie die Funktionsweise der einzelnen Komponenten der Schlüsselerzeugungseinrichtung 18 beschrieben worden ist, wird im Folgenden die Funktionsweise beschrieben. Having described the structure and operation of the individual components of the key generation device 18 has been described above, in the following, the operation will be described. Zu diesem Zweck wird zunächst davon ausgegangen, dass noch zu keiner Seite 12a des Speichers 12 ein Seitenvorschlüssel erzeugt worden ist, also auch noch keiner im Speicher 38 gespeichert ist. For this purpose is first assumed that there is still no side 12a of the memory 12, a page pre has been generated, and therefore one does not already stored in the memory 38th

Bei Eingang einer eindeutigen Adresse 30 schlägt die Seitenwechselfeststellungseinrichtung 32 zunächst im Speicher 38 nach, ob für die in dem Seitenadressteil 30a enthaltene Seitenadresse der Seite, in der sich das Wort befindet, auf die die eindeutige Adresse 30 zeigt, wie es durch einen Pfeil 40 angedeutet ist, ein Seitenvorschlüssel vorhanden ist. Upon receipt of a unique address 30 the paging detection means 32 proposes initially to the memory 38 whether the contained in the page address part 30a page address of the page in which the word is located at the unique address 30 shows, as indicated by an arrow 40 is a page pre exists. Das Nachschlagen findet unter Verwendung der Seitenadresse als Index statt, wobei in dem Speicher 38 eine Tabelle von Seite- nadress/Seitenvorschlüssel-Paaren bereitgestellt ist. The lookup finds using the page address instead of an index, which in the memory 38 a table of side- nadress / is page pre-pairs provided. Der Speicher 38 ist somit ein inhaltsadressierbarer Speicher, der für ankommende Seitenadressen nachschlägt, ob er ein Seite- nadress/Seitenvorschlüssel-Paar mit dieser Seitenadresse hat und den entsprechenden Schlüssel ausgibt, falls dies der Fall ist. The memory 38 thus provides a content addressable memory, the look up for incoming page addresses, whether it has a side- nadress / page pre-pair with this page address and the corresponding key outputs, if this is the case. Dies soll jedoch vorliegend gemäß obiger Annahme zunächst nicht der Fall sein. However, this is presently under the above assumption initially not be the case. Der Speicher 38 teilt den Fehlschlag (miss) folglich der Seitenwechselfeststellungseinrich- tung 32 mit, die ihrerseits wiederum die Seitenadresse an die Vorschlüsselberechnungseinrichtung 34 weiterleitet. The memory 38 divides the bust (miss) hence the Seitenwechselfeststellungseinrich- device 32, which in turn forwards the page address to the Vorschlüsselberechnungseinrichtung 34th

Die Vorschlüsselberechnungseinrichtung 34 berechnet auf der Basis der Seitenadresse einen Seitenvorschlüssel. The Vorschlüsselberechnungseinrichtung 34 calculated based on the page address a page pre. Diese Berechnung umfasst gemäß dem bezugnehmend auf Fig. 3 näher beschriebenen Ausführungsbeispiel wie die Verschlüsselungsbe- rechnungseinrichtung 34 beispielsweise eine Verschlüsselung der Seitenadresse unter Verwendung eines Generalschlüssels, so dass die Korrelation zwischen Seitenvorschlüsseln, die die Vorschlüsselberechnungseinrichtung 34 aus den Seitenadressen berechnet, zu den Seitenadressen möglichst kompliziert ist. This calculation includes in accordance with the reference to FIG. 3 described in more detail embodiment as Verschlüsselungsbe- calculation device 34, for example, an encryption of the page address using a master key, so that the correlation between Seitenvorschlüsseln that the Vorschlüsselberechnungseinrichtung 34 calculated from the page address to the page addresses complicated as possible is. Die Vorschlüsselberechnungseinrichtung 34 kann beispielsweise ganz allgemein die Seitenadresse an ihrem Seitenadresseingang gemäß einer nichtlinearen Abbildung auf die Seitenvorschlüs- sei abbilden. The Vorschlüsselberechnungseinrichtung 34 For example, in general, the page address to their page address input according to a non-linear mapping to the Seitenvorschlüs- was mapped. Diese nichtlineare Abbildung kann jedweder Abbildung der 16-Bit-Seitenadresse auf einen M-Bit- Seitenvorschlüssel sein, wobei m > 16 sein muss, damit wirklich für jede Seite ein unterschiedlicher Seitenvorschlüssel generiert wird, m aber auch kleiner 16 sein kann, wenn dies nicht erforderlich ist. This non-linear mapping may be page pre to an M-bit of any picture of 16-bit page address, where m must be> 16, so really for each page a different page pre generated, m but less than 16 may be, if this is not is required. Die Vorschlüsselbe- rechnungseinrichtung 34 kann auch eine Einwegfunktion oder eine asymmetrische Verschlüsselung verwenden, um die Seitenadresse auf den Seitenvorschlüssel abzubilden. The Vorschlüsselbe- calculation device 34 may also be a one-way function or asymmetric encryption use to map the page address on the page pre.

Der den Versatzwert enthaltende Wortadressteil 30b der auf dem Datenbus 20 vorliegenden eindeutigen Adresse 30 und der soeben von der Vorschlüsselberechnungseinrichtung 34 berechnete Seitenvorschlüssel wird von der Einrichtung 36 dazu verwendet, den wortindividuellen Schlüssel zu berechnen. The bottle containing the offset value word address part 30b of the present on the data bus 20 unique address 30 and the just calculated from the 34 page pre Vorschlüsselberechnungseinrichtung is used by the device 36 to calculate the word-individual key. Wie es später bezugnehmend auf die Fig. 4 - 7 noch näher erläutert werden wird, kann die Einrichtung zur Ermittlung des individuellen Schlüssels 36 beispielsweise den Versatzwert bzw. die Wortadresse an ihren Wortadresseingang dazu verwenden, den Seitenvorschlüssel zu modifizieren, und zwar unter Verwendung einfacher Rechenoperationen, wie zB XOR- oder NXOR-Operationen oder dergleichen. As it later with reference to FIG. 4 - will be discussed 7 in more detail, the device for determining the individual key 36 can use, for example, the offset value or the word address at their word address input to modify the page pre, namely using simple arithmetic operations such as XOR or NXOR operations or the like. Vorzugsweise sollten die Rechenoperationen, die die Einrichtung 36 zur Ermittlung des individuellen Schlüssels verwendet, geringer an Zahl und weniger zeitaufwendig sein als die Vorschlüsselberechnungs- einrichtung 34 zur Berechnung des Seitenvorschlüssels verwendet. Preferably, should the computing operations used by the device 36 for determining the individual key, less in number and less time consuming than the Vorschlüsselberechnungs- means 34 for calculating the Seitenvorschlüssels used. Ferner wird es bevorzugt, dass die Einrichtung 36 zur Ermittlung des individuellen Schlüssels mit weniger Chipfläche implementiert ist und/oder die Implementierung der Einrichtung 36 zur Ermittlung des individuellen Schlüssels eine geringere Berechnungszeitdauer aufweist als die Vorschlüssel- berechnungseinrichtung 34. Further, it is preferred that the means 36 is implemented for determining the individual key with less chip area and / or the implementation of the means 36 for determining the individual key has a smaller calculating time duration than the Vorschlüssel- calculating means 34th

Der wortindividuelle Schlüssel, wie er von der Einrichtung 36 ermittelt worden ist, wird dann an die Ver-/Entschlüsselungs- einrichtung 16 weitergeleitet. The word individual key, as it has been determined by the device 36 is then connected to the supply / decryption device 16 passed.

Um nun zu verhindern, dass für jede eindeutige Adresse 30, die auf dem Adressbus 20 ausgegeben wird, die komplizierte Vorschlüsselberechnung erneut durchgeführt werden muss, speichert die Vorschlüsselberechnungseinrichtung 34 bei jeder Berechnung den soeben berechneten Seitenvorschlüssel in dem Zwischenspeicher 38. Der Zwischenspeicher 38 wird beispielsweise nach dem FIFO-Prinzip (FIFO = zuerst hinein zuerst hinaus) verwaltet, so dass bei Speicherung eines neuen Seitenvorschlüssels durch die Vorschlüsselberechnungseinrichtung 34 derjenige Seitenvorschlüssel verdrängt bzw. überschrieben wird, der zuerst hineingeschrieben worden ist. In order to prevent that for any unique address 30 that is output on the address bus 20, the complicated Vorschlüsselberechnung must be performed again, the Vorschlüsselberechnungseinrichtung 34 stores for each calculation the just calculated page pre in the latch 38. The latch 38 is, for example, by the FIFO principle (FIFO = First in First out) managed so that when storing a new Seitenvorschlüssels by Vorschlüsselberechnungseinrichtung 34 displaces one page pre or is overwritten, which has been first written into. Freilich sind auch andere Aktualisierungs- bzw. Verdrängungsprinzipien anwendbar, wie zB das LRU- (Least Recently Used) Prinzip, bei dem der Seitenvorschlüssel ausgelagert wird, auf den die längste Zeit nicht mehr durch die Seitenwechselfeststellungs- einrichtung 32 zugegriffen worden ist, oder das LFU- (Least Frequently Used) Prinzip, bei dem der Seitenvorschlüssel ausgelagert wird, der die geringste Anzahl von Zugriffen durch die Seitenwechselfeststellungseinrichtung 32 aufweist. Of course, other update or displacement principles are applicable, such as the LRU (Least Recently Used) principle, in which the page pre paged to the university for the longest time not by the Seitenwechselfeststellungs- has been accessed 32, or the LFU - (least frequently used) principle, in which the page pre paged which has the smallest number of accesses by the page change detection means 32nd

Wenn nun eine folgende eindeutige Adresse 30, die auf dem Adressbus 20 danach ausgegeben wird, einen Seitenadressteil 30a aufweist, in der eine Seitenadresse enthalten ist, die eine Seite anzeigt, für die in dem Zwischenspeicher 38 noch ein Seitenvorschlüssel zwischengespeichert ist, zeigt dies der Speicher 38 der Seitenwechselfeststellungseinrichtung 32 auf Erhalt der Seitenadresse als Index hin durch ein Treffer- (hit) Signal an. If now, a page address portion 30a has a following unique address 30 that is output on the address bus 20 after that in which a page address is indicative of a page for which in the buffer memory 38, a page pre is cached yet, it indicates the memory 38 of the page change detection means 32 on receiving the page address as the index down by a hit (hit) signal. Die Seitenwechselfeststellungseinrichtung 32 leitet die Seitenadresse hierauf nicht an den Seitenadress- eingang der Verschlüsselungsberechnungseinrichtung 34 weiter, sondern unter Umgehung der letztgenannten wird der der inte- ressierenden Seitenadresse zugeordnete und bereits früher berechnete Seitenvorschlüssel von dem Speicher 38 an den Seitenvorschlüsseleingang der Einrichtung 36 ausgegeben. The page change detection means 32 derives the page address then not to Seitenadress- input the encryption calculation means 34 further, but bypassing the latter is of the inte- ressierenden page address assigned and previously calculated page pre of the memory 38 is output to the Seitenvorschlüsseleingang the establishment 36th Aufgrund der Umgehung der Vorschlüsselberechnungseinrichtung 34 im Fall eines Treffers muss in diesem Fall also keine komplizierte und zeitraubende Vorschlüsselberechnung durchgeführt werden. Due to the circumvention of Vorschlüsselberechnungseinrichtung 34 in case of a hit, no complicated and time-consuming Vorschlüsselberechnung must be carried out in this case. Lediglich ein Nachschlagvorgang in dem Zwischenspeicher 38 ist notwendig, um den Seitenvorschlüssel für die neue eindeutige Adresse 30 auf dem Adressbus 20 zu ermitteln. Only one look-up operation in the buffer 38 is necessary in order to determine the page pre for the new unique address on the address bus 30 twentieth Hierbei können zwischen der eindeutigen Adresse 30, auf deren Ausgabe auf dem Adressbus 20 hin der Seitenvorschlüssel tatsächlich durch die Vorschlüsselberechnungseinrichtung 34 berechnet und in den Zwischenspeicher 38 eingetragen worden ist, und der eindeutigen Adresse 30, auf welche hin der Seitenvorschlüssel aus dem Speicher 38 abgerufen wird, auf dem Adressbus 20 zwischenzeitlich schon eine oder mehr eindeutige Adressen 30 ausgegeben worden sein. Here, between the unique address 30, has been on their output on the address bus 20 toward the page pre actually calculated by the Vorschlüsselberechnungseinrichtung 34 and entered into the latch 38, and the unique address 30, on which way the page pre is retrieved from memory 38 have been issued already have one or more unique addresses 30 in the meantime on the address 20th Das bedeutet, dass bei geeigneter, an die jeweilige Anwendung des Systems von Fig. 1 angepasster Verdrängungsstrategie des Speichers 38 eventuell über lange Zeitdauern hinweg bzw. über mehrere eindeutige Adressen 30 auf dem Adressbus 20 hinweg, keine Vorschlüsselberechnung durchgeführt werden muss. This means that at suitable to the respective application of the system of Fig. 1 adjusted displacement strategy of the memory 38 may no Vorschlüsselberechnung must be carried out over long periods of time and over a number of unique addresses on the address bus 30 20 of time. Lediglich die unkomplizierte Modifizierung des von dem Zwischenspeicher 38 abgerufenen Seitenvorschlüssels durch die Wortadresse bzw. den Versatzwert in der Einrichtung 36 muss durchgeführt werden, um zu dem wortindividuellen Schlüssel für das Wort zu gelangen, dem die eindeutige Adresse 30 auf dem Adressbus 20 zugeordnet ist. Only the simple modification of the data fetched from the buffer memory 38 Seitenvorschlüssels by the word address, or the offset value in the device 36 must be carried out to arrive at the word individual key for the word, the 30 is associated on the address bus 20, the unique address.

Der Zwischenspeicher 38 kann in einem der CPU 10 zugeordneten Cash-Speicher (nicht gezeigt in Fig. 1) zu einem erweiterten Cache integriert sein. The latch 38 (not shown in Fig. 1) in one of the CPU 10 assigned to the cache memory may be integrated into an extended cache. Die Cache enthielte dann beispielswei- se für einen schnelleren Datenzugriff die Inhalte kürzlich verwendeter Seiten, dh Seiten auf die kürzlich zugegriffen wurde. The cache contained then for example for faster data access the contents of recently used pages, ie pages were accessed recently. Die Inhalte wären dann verschlüsselt gespeichert. The contents were then stored encrypted. Zu jedem Seiteninhalt wäre in dem Cache die zugehörige Seitenadresse und der Seitenvorschlüssel gespeichert. For each page content the associated page address and the page pre be stored in the cache. Dieser erwei- terte Cache enthielte also eine Tabelle von Triplets aus Seitenadresse, Seitenvorschlüssel und Seitenchiffrat . Thus this extended shouldered cache contained a table of triplets from page address, and page pre Seitenchiffrat. Die Verdrängungsstrategie dieses erweiterten Caches könnte eine der vorhergehenden genannten sein. The predation of this extended caches could be one of the previous mentioned. In dem Fall eines Fehlschlags wäre die Funktionsweise die gleiche, wie oben be- schrieben, mit dem Unterschied, dass nun auch der verschlüsselte Inhalt der aktuellen Seite unter Verdrängung einer anderen Seite in dem Cache gespeichert wird. In the case of failure, the operation would be the same, described as above described, with the difference that now the encrypted content of the page is stored, displacing another page in the cache. In dem Fall eines Treffers würde neben der Ausgabe des Seitenvorschlüssels an die Einrichtung 36 ferner die Ausgabe des verschlüs- selten Worts, auf den die eindeutige Adresse 30 zeigt, aus dem Chiffrat der interessierenden Seite an den Dateneingang der Ver/Entschlüsselungseinrichtung 16 (Fig. 1) ausgegebene werden, der mit dem Speicher 12 verbunden ist, wodurch der langsamere Zugriff auf den Speicher 12 umgangen würde. In the case of a hit, in addition to the output of the Seitenvorschlüssels to the device 36 would further the output of the encrypted word pointed to by the unique address 30, from the cryptogram of interest side to the data input of the encryption / decryption device 16 (Fig. 1 ) are output, which is connected to the memory 12, which would circumvent the memory 12 of the slower access. Frei- lieh könnte der Cache-Speicher auch wortweise organisiert sein mit Tripein aus Wortadresse, Wortchiffrat und Seitenvorschlüssel. Freedom borrowed could the cache memory be organized in words with triples from word address and page pre Wortchiffrat. In dem Fall eines Daten-Caches mit unverschlüsselten Daten wäre dieser in der Klartext-Domäne zwischen CPU und Vorrichtung 14 angeordnet (Fig. 1) und eine Kombination des Daten-Caches mit der Speicher 38 wäre unnötig. In the case of a data cache with unencrypted data that would be located in the plain text domain between CPU and device 14 (FIG. 1) and a combination of the data cache to the memory 38 would be unnecessary. Ferner könnte aber anstelle des Cache-Speichers 38 auch ein einfacher Speicher für die Speicherung nur des zuletzt berechneten Seitenvorschlüssels verwendet werden, dessen Inhalt bei einem nachfolgenden Zugriffsvorgang ausgelesen und unter Umgehung der Einrichtung 34 verwendet wird, wenn die nächste Seitenadresse, auf den sich dieser Zugriffsvorgang bezieht, die selbe wie die ist, auf den sich der vorhergehende Speichervorgang bezog, bei dem der zuletzt berechnete Speichervorschlüssel berechnet und gespeichert wurde. Further, also a simple memory for storing only the last calculated Seitenvorschlüssels could be used instead of the cache memory 38, the content is read out during a subsequent access operation and used, bypassing the device 34, if the next page address to which this access operation refers, the same as that to which the previous memory operation was, in which the last calculated Speichervorschlüssel was calculated and stored.

Bezugnehmend auf Fig. 3 wird nun im Folgenden ein Ausfüh- rungsbeispiel für die Vorschlüsselberechnungseinrichtung 34 beschrieben. Referring to FIG. 3, an embodiment will now be approximately example of the Vorschlüsselberechnungseinrichtung 34 described below. Die Vorschlüsselberechnungseinrichtung 34 von Fig. 3 umfasst einen Seitenadresseingang 50 und einen Vorschlüsselausgang 52, sowie eine Expansionseinrichtung 54 und ein Blockchiffremodul 56. Ein Dateneingang der Expansionsein- richtung 54 ist mit dem Seitenadresseingang 50 verbunden, um die 16-Bit-Seitenadresse zu erhalten. The Vorschlüsselberechnungseinrichtung 34 of FIG. 3 comprises a page address input 50 and a Vorschlüsselausgang 52, and an expansion device 54, and a block cipher module 56. A data input of the Expansionsein- device 54 is connected to the page address input 50 to obtain the 16-bit page address. Die Expansionseinrichtung 54 erzeugt auf Basis der 16-Bit-Seitenadresse einen 64- Bit-Datenblock 58, indem er jedes Bit der Seitenadresse auf vier Bitpositionen des 64-Bit-Datenblocks 58 verteilt. The expansion device 54 generates on the basis of 16-bit page address a 64-bit data block 58, by spreading each bit of the page address on four bit positions of the 64-bit data block 58th Genau- er ausgedrückt, schreibt die Expansionseinrichtung 54 die he accu- words, 54 writes the expansion means the

Seitenadresse in die Bits 0 - 15, 16 - 31, 32 - 47 und 48 - 63 des 64-Bit-Datenblocks 58, wie es auch in Fig. 3 angedeutet ist. Page address in the bits 0-15, 16-31, 32-47 and 48-63 of the 64-bit data block 58 as is also indicated in Fig. 3. Den so gebildeten 64-Bit-Datenblock 58 gibt die Expansionseinrichtung 54 an einen Dateneingang des Block- chiffremoduls 56 aus. The thus formed 64-bit data block 58 outputs the expansion device 54 to a data input of the block cipher module 56 of. Das Blockchiffremodul 56 umfasst neben dem Dateneingang ferner einen Schlüsseleingang, an dem dieselbe einen 64-Bit-Generalschlüssel erhält. The block cipher module 56 further includes, in addition to the data input a key input to which the same is given a 64-bit master key. Der 64-Bit- Generalschlüssel ist fest und muss vor einem unautorisierten Zugriff durch Dritte durch geeignete Maßnahmen geschützt werden. The 64-bit master key is fixed and must be protected by appropriate measures by third parties from unauthorized access. Das Blockchiffremodul 56 bewirkt eine nichtlineare Abbildung, die von dem Generalschlüssel abhängt, und ist beispielsweise ein DES-Modul oder ein AES-Modul. The block cipher module 56 causes a non-linear mapping, which depends on the master key, and is for example a DES module or an AES module. Basierend auf dem Generalschlüssel chiffriert bzw. verschlüsselt das Blockchiffremodul 56 den 64-Bit-Datenblock 58, um einen verschlüsselten 64-Bit-Datenblock zu erhalten und diesen an den Datenausgang 52 auszugeben. Based on the encrypted master key or encrypts the block cipher module 56 to 64-bit data block 58 to obtain an encrypted 64-bit data block and this output to the data output 52nd Dieser verschlüsselte 64-Bit- Datenblock stellt gemäß diesem Ausführungsbeispiel den Sei- tenvorschlüssel dar, basierend auf welchem, wie in Fig. 2a beschrieben, die wortindividuellen Schlüssel der Wörter der zugehörigen Seite berechnet werden, auf die die Seitenadresse am Eingang 50 zeigt. This encrypted 64-bit data block is in accordance with this embodiment, the side tenvorschlüssel represents, based on which, as described in Fig. 2a, the word individual key words of the associated side are calculated on which the page address showing the input 50.

Bezugnehmend auf die folgenden Fig. 4 - 7 werden nun Ausführungsbeispiele für die Einrichtung 36 zur Ermittlung des individuellen Schlüssels aus dem Seitenvorschlüssel und der Wortadresse von Fig. 2a beschrieben. Referring to the following FIG. 4 -. 7 embodiments for the device 36 for determining the individual key from the page pre and the word address of Figure 2a will now be described.

Gemäß dem Ausführungsbeispiel von Fig. 4 wird die 4-Bit- Wortadresse durch XOR-Operationen mehrmals auf den Seitenschlüssel aufaddiert. According to the embodiment of Fig. 4, the 4-bit word address is added by XOR operations several times on the page key. Hierzu umfasst die Einrichtung 36 16 4- Bit-XOR-Verknüpfungseinrichtungen 60a, 60b, 60c, 60d und 60e. For this purpose, the device 36 includes 16 4-bit XOR devices 60a, 60b, 60c, 60d and 60e. Jede XOR-Verknüpfungseinrichtung umfasst zwei 4-Bit- Each XOR device comprises two 4-bit

Dateneingänge und einen 4-Bit-Datenausgang. Data inputs and one 4-bit data output. An dem ersten der beiden 4-Bit-Dateneingänge empfangen die XOR- At the first of the two 4-bit data inputs received the XOR

Verknüpfungseinrichtungen 60a - 60e die 4-Bit-Wortadresse . Linking devices 60a - 60e, the 4-bit word address. An den zweiten Dateneingängen empfangen die XOR- Verknüpfungseinrichtungen 60a - 60e unterschiedliche vier On the second data inputs received the XOR operation means 60a - 60e different four

Bits des 64-Bit-Vorschlüssels, der beispielsweise auf die in Fig. 3 gezeigte Weise erzeugt worden ist. Bits of the 64-bit prekey, which has been generated, for example in the manner shown in Fig. 3. Genauer ausgedrückt, empfängt jede XOR-Verknüpfungseinrichtung 60a - 60e unterschiedliche vier aufeinanderfolgende Bits des Seiten- vorschlüssels, nämlich die XOR-Verknüpfungseinrichtung 60a die Bits der Bitpositionen 63 - 60, die XOR- Verknüpfungseinrichtung 60b die Bits der Bitpositionen 59 - 56, die XOR-Verknüpfungseinrichtung 60c die Bits der Bitpositionen 55 ... 52 usw. des Vorschlüssels, wie es in Fig. 4 angezeigt ist. namely the XOR operation means 60a 60e different four consecutive bits of the side prekeystream, the bits of the bit positions 63 - - More specifically, receives each XOR operation means 60a 60, the XOR operation means 60b, bits of bit positions 59-56, the XOR combining means 60c, the bits of the bit positions 55 ... 52, etc. of the prekeystream, as indicated in Fig. 4. Die XOR-Verknüpfungseinrichtungen 60a - 60e verknüpfen bitweise die 4-Bit-Wortadresse mit den jeweiligen vier Bits aus dem 64-Bit-Vorschlüssel . The XOR devices 60a - 60e bitwise link the 4-bit word address with the respective four bits from the 64-bit prekey.

Gegeben sei beispielsweise der Seitenschlüssel als der Vektor Kseite = (k 0 k x k 2 ... k 62 k 63 j, wobei k ir für i = 0 ... 63, der For example, given the side key as the vector Kseite = (k 0 k x k 2 ... k 62 k 63 j, k ir for i = 0 ... 63

Bitwert des Seitenvorschlüssels an der Bitposition i sei, und die Wortadresse durch den Vektor (w 0 w x w 2 w 3 ) , wobei W j mit j = 0 ... 3 das Bit der Wortadresse an der Bitposition j sei. Bit value of the Seitenvorschlüssels is at bit position i, and the word address by the vector (w 0 w x w 2 w 3), wherein W j with j = 0 ... 3, the bits of the word address is j at the bit position. Die bitweisen XOR-Verknüpfungsergebnisse der XOR-Gatter 60a - 60i werden dann derart zu einem wortindividuellen Schlüssel mit 64 Bit zusammengefasst, dass sich der wortindividuelle Schlüssel zu einem Vektor Kort ergibt, mit Kwort = (K 0 θw 0 , k x θ wi, k 2 θ w 2 , k 3 θ w 3 , k 4 ® w 0 , sθ wi, k 6 ® w 2 , k 7 θ w 3 , ... , keo© w 0 kßi® w x , kβ 2 ® w 2 , δ 3 θ w 3 ) , wobei θ eine XOR- Verknüpfung anzeige. The bitwise XOR results of the XOR gates 60a - 60i are then combined in such a word-individual key with 64 bits, that the word custom key gives a vector Kort, with Kwort = (K 0 θw 0, k x θ wi, k 2 θ w 2, k 3 θ w 3, k 4 ® w 0, sθ wi, k 6 ® w 2, k 7 θ w 3, ..., keo © w 0 kßi® w x, w 22 ® , δ 3 θ w 3), where θ indicating an XOR operation.

Gemäß dem Ausführungsbeispiel von Fig. 5 umfasst die Einrichtung 36 zur Ermittlung des individuellen Schlüssels eine Nachschlagtabelle 70, die für jede mögliche 4-Bit-Wortadresse einen unterschiedlichen 64-Bit-Maskierungsvektor bereitstellt, sowie eine 64-Bit-XOR-Verknüpfungseinrichtung 72. Gemäß diesem Ausführungsbeispiel wird mit der Wortadresse als Index durch eine mit 74 veranschaulichte Nachschlageinrichtung beispielsweise auf die Nachschlagtabelle 70 zugegriffen, um auf den Maskierungsvektor zuzugreifen, der der Wortadresse zugeordnet ist, die der Einrichtung 36 von dem Wortadressteil der aktuell auf dem Adressbus vorliegenden eindeutigen Adresse zugeführt wird. According to the embodiment of FIG. 5, the device 36 for determining the individual key comprises a look-up table 70 that provides a different 64-bit mask vector for any 4-bit word address and a 64-bit XOR operation device 72. According this embodiment is accessed with the word address as an index by an illustrated with 74 lookup means, for example, the lookup table 70 to access the masking vector associated with the word address, which is the device 36 supplied from the word address of the currently present on the address unique address , Die Nachschlagtabelle 70 gibt den inde- xierten Maskierungsvektor an einen ersten Dateneingang der XOR-Verknüpfungseinrichtung 72 aus. The lookup table 70 gives the indexed masking vector from a first data input of the XOR operation means 72nd Ein zweiter 64-Bit- Dateneingang der XOR-Verknüpfungseinrichtung 72 erhält den 64-Bit-Seitenvorschlüssel . A second 64-bit data input of the XOR operation device 72 receives the 64-bit page pre. Ein 64-Bit-Datenausgang der XOR- Verknüpfungseinrichtung 72 stellt gleichzeitig den Ausgang der Einrichtung 36 von Fig. 5 dar. An diesem wird der wortindividuelle 64-Bit-Schlüssel ausgegeben. A 64-bit data output of the XOR operation means 72 simultaneously represents the output of the device 36 of FIG. 5 is. That the word custom 64-bit key is issued.

Sei der Seitenvorschlüssel beispielsweise durch den bezugnehmend auf Fig. 4 definierten Vektor Kseite gegeben, so gibt die XOR-Verknüpfungseinrichtung 72 an ihren Datenausgang (knθmo, k x θ im, ..., k 63 ®m 63 ) als wortindividuellen Schlüssel Kor aus, wenn der indexierte Maskierungsvektor (m 0 , mi, ... , rri 63 ) ist. Be the page pre given for example by the vector reference defined in Fig. 4 Kseite, so are the XOR operation means from 72 at its data output (knθmo, k x θ in, ..., k 63 ®m 63) as word-individual key Kor, if the indexed masking vector (m 0, mi, ..., rri 63). Anders ausgedrückt, wird gemäß dem Ausführungsbeispiel von Fig. 5 für jede Wortadresse ein Maskierungsvektor bereitgestellt, der die selbe Bitlänge wie der Seiten- orschlüssel aufweist, wobei über eine Nachschlagtabelle für die interessierende Wortadresse der ihr zugeordnete Maskierungsvektor angesteuert und dieser Maskierungsvektor dann auf den Seitenvorschlüssel durch bzw. per XOR-Verknüpfung aufad- diert wird, wobei das Ergebnis der wortindividuelle 64-Bit- Schlüssel ist. In other words, 5 a masking vector is according to the embodiment of Fig. For each word address is provided, having the same bit length as the side orschlüssel, said controlled via a look-up table for the interest word address of its associated masking vector and this masking vector then on the page pre or by XORing aufad- is diert, the result of the word custom 64-bit is key.

Gemäß dem Ausführungsbeispiel von Fig. 6 umfasst die Einrichtung 36 zur Ermittlung des wortindividuellen Schlüssels eine Nachschlagtabelle 80, in der vordefinierte unterschiedliche Permutationsvorschriften, nämlich eine unterschiedliche Permutationsvorschrift für jeden möglichen Wert, den die Wortadresse annehmen kann, und eine steuerbare Permutationseinrichtung 82. Mit dem der Einrichtung 36 zugeführten Wort- adresse von dem Wortadressteil der aktuell auf dem Adressbus vorliegenden eindeutigen Adresse als Index greift ein mit 84 versinnbildlichte Nachschlageinrichtung auf die Nachschlagtabelle 80 zu, die daraufhin die dieser Wortadresse zugeordnete Permutationsvorschrift an die steuerbare Permutationseinrich- tung 32 weiterleitet. According to the embodiment of FIG. 6, the device 36 for determining the word individual key comprises a look-up table 80 in the predefined different Permutationsvorschriften, namely, a different permutation for each possible value that the word address may take, and a controllable permutation means 82. By the means 36 supplied word address of the word address of the currently present on the address unique address as an index accesses a symbolized with 84 lookup facility on the look-up table 80, which thereupon the this word address associated permutation device 32 forwards them to the controllable Permutationseinrich-. Die Permutationsvorschriften, die in der Nachschlagtabelle 80 für jeden möglichen Wert der Wortadressen gespeichert sind, sind beispielsweise 64-Bit-Vektoren mit 6-Bit-Koeffizienten, wobei der erste Koeffizient angibt, an welcher Stelle gemäß der Permutationsvorschrift das niedrigstwertige Bit an dem 64-Bit-Dateneingang der steuerbaren Permutationseinrichtung 82 verschoben wird, der zweite Koeffizient angibt, wohin das nächste höherwertige Bit am 64- Bit-Dateneingang der steuerbaren Permutationseinrichtung 82 verschoben werden soll, usw. Der Dateneingang der steuerbaren Permutationseinrichtung 82 empfängt den Seitenvorschlüssel. The Permutationsvorschriften stored in the lookup table 80 for each possible value of the word addresses, for example, are 64-bit vectors with 6-bit coefficients, the first coefficient indicates at what point of the permutation is the least significant bit of the 64- bit data input of the controllable permutation means is moved 82, the second coefficient indicates where the next most significant bit is to be shifted on the 64-bit data input of the controllable permutation means 82, etc. the data input of the controllable permutation means 82 receives the page pre. Am 64-Bit-Datenausgang der steuerbaren Permutationseinrichtung 82 wird der wortindividuelle 64-Bit-Schlüssel ausgegeben, der sich gemäß der indexierten Permutationsvorschrift lediglich dadurch von dem Seitenvorschlüssel unterscheidet, dass die einzelnen Bits innerhalb der 64 Bitpositionen verschoben bzw. untereinander vertauscht sind. On 64-bit data output of the controllable permutation 82 of the word custom 64-bit key is issued in accordance with the indexed permutation only differs from the page pre that the individual bits are shifted within the 64 bit positions or interchanged. Sei der Seitenvorschlüssel beispielsweise durch den bezugnehmend auf Fig. 4 definierten Vektor Kseite gegeben, so gibt die Permutationseinrichtung 72 an ihren Datenausgang (kp {0) , P (i), ..., kp (63) ) als wortindividuellen Schlüssel Kwort aus, wenn der ausgewählte Permutationsvektor (P(0),P(1), ... ,P(63) ) ist. Be the page pre given for example by the vector reference defined in Fig. 4 Kseite, so are the permutation means 72 at its data output (kp {0), P (i), ..., kp (63)) as word-individual key Kwort from, if the selected permutation (P (0) P (1), ..., P (63)) is.

Anders ausgedrückt, steht gemäß dem Ausführungsbeispiel von Fig. 6 für jede Wortadresse eine bestimmte Permutation be- reit. In other words, is according to the embodiment of FIG. 6 for each word address a specific permutation described riding. Zur Generierung des wortindividuellen Schlüssels aus dem Seitenvorschlüssel lässt man die der Wortadresse zugeordnete Permutation auf die Bits des Seitenvorschlüssels wirken, wobei das Ergebnis dann der wortindividuelle Schlüssel ist. To generate the word individual key from the page pre letting act the word address associated permutation on the bits of Seitenvorschlüssels, the result then is the word individual keys.

Im Bezug auf die vorhergehenden bezugnehmend auf die Fig. 4 - 6 beschriebenen Ausführungsbeispiele für die Einrichtung 36 zur Ermittlung des wortindividuellen Schlüssels gilt, dass dieselben ohne weiteres mit dem Ausführungsbeispiel von Fig. 3 für die Vorschlüsselberechnungseinrichtung 34 kombinierbar sind, da dieselben als Seitenvorschlüssel einen 64-Bit- With respect to the above with reference to Figs. 4 - 6 described embodiments for the device 36 for determining the word individual key applies that the same are combined for the Vorschlüsselberechnungseinrichtung 34 readily with the embodiment of Figure 3, as the same as the page pre a 64. -Bit-

Seitenvorschlüssel erwarten bzw. verlangen. expect or demand page pre. Wie aber bereits erwähnt, ist es ferner möglich, die Vorschlüsselberechnungs- einrichtung 34 anders auszuführen. However, as already mentioned, it is also possible that Vorschlüsselberechnungs- device 34 execute different. So könnte es möglich sein, dass die Vorschlüsselberechnungseinrichtung 34 einen 79-Bit- Seitenvorschlüssel erzeugt. So it could be possible that the Vorschlüsselberechnungseinrichtung 34 generates a 79-bit page pre. Hiervon geht das Ausführungsbeispiel von Fig. 7 für die Einrichtung zur Ermittlung des individuellen Schlüssels aus. Of these, the embodiment of Fig. 7 goes out of the device for determining the individual key. Gemäß diesem Ausführungsbeispiel besteht die Einrichtung 36 aus einem Multiplexer 90 mit einem 79-Bit-Dateneingang, einem 4-Bit-Steuereingang und einem 64-Bit-Datenausgang, wobei der Multiplexer 90 ausgebildet ist, um abhängig von der 4-Bit-Wortadresse an dem 4-Bit- Steuereingang 64 der 79 Bits des Seitenvorschlüssels an dem Dateneingang als 64-Bit-wortindividueller Schlüssel an den 64-Bit-Datenausgang auszugeben. According to this embodiment, the device 36 from a multiplexer 90 with a 79-bit data input, a 4-bit control input and a 64-bit data output, the multiplexer 90 is configured to depend on the 4-bit word address the 4-bit output control input 64 of the 79 bits of Seitenvorschlüssels at the data input as 64-bit word of individual keys to the 64-bit data output. Anders ausgedrückt, wird nach dem Ausführungsbeispiel von Fig. 7 ein etwas längerer Seitenvorschlüssel generiert als das für die Datenverschlüsselung eigentlich erforderlich ist. In other words, it is according to the embodiment of FIG. 7 is a slightly longer than the page pre generated actually required for the data encryption. In Abhängigkeit von der Wortad- resse wird dann ein bestimmtes Segment aus diesem langen Seitenschlussel ausgewählt und als wortindividueller Schlüssel genutzt. Depending on the word address a particular segment is then selected from this long Seitenschlussel and used as a word individual key.

Der Multiplexer 90 kann beispielsweise derart ausgebildet sein, dass er den Seitenvorschlüssel Kseite = (k 0 , ki, k 2 , ..., k , k 7 g) abhangig von der Wortadresse W auf den wortindividuellen 64-Bit-Schlüssel Kort= (k 0 , k x , .-., k 63 ) abbildet, wenn W=0000 b , auf Kwort = (ki, k 2 , ..., k 64 ) , wenn W=0001 b , auf Kwor = (k 2 , k 3 , ..., k 6 5) wenn W=0010 b ... und auf Kwort = (kis, kι 6 , ... , k 78 ) , wenn W=llll b . The multiplexer 90 may for example be designed such that it the page pre Kseite = (k 0, k i, k 2, ..., k, k 7 g) depending upon the word address W to the word individual 64-bit key Kort = ( k 0, k x, .-., 63 k) depicts when W = 0000 b, on Kwort = (ki, k 2, ..., k 64) when W = 0001 b, on Kwor = (k 2 , k 3, ..., k 6 5) when W = 0010 b ... and on Kwort = (kis, kι 6, ..., k 78) when W = llll b.

Freilich sind auch andere Ausfuhrungsbeispiele als die in Fig. 4 - 7 gezeigten für die Einrichtung 36 zur Ermittlung des wortindividuellen Schlusseis möglich. . Of course, other exemplary embodiments as shown in Fig 4 are - 7 shown for the device 36 to determine the word individual Schlusseis possible. Die Einrichtung 36 konnte beispielsweise auch als eine kryptographische Einwegfunktion implementiert sein. The device 36 could for example be implemented as a cryptographic one-way function. Eine Einwegfunktion ist eine Funktion, bei der es wesentlich aufwendiger ist, die inverse Funktion zu ermitteln, oder bei der es unmöglich ist, diesel- be zu ermitteln. A one-way function is a function in which it is substantially more complex to determine the inverse function, or where it is impossible to determine be diesel. Ein Beispiel für eine Einwegfunktion ist beispielsweise eine modulare Operation, wie zB eine odula- re Exponentation. An example of a one-way function, for example, a modular operation, such as a re odula- exponentiation. Diese Einwegfunktion lasst man dann auf die jeweilige Wortadresse wirken. This one-way function to let then act on the respective word address. Der so entstehende Funktionswert mit dem Seitenvorschlüssel verknüpft ergibt den wortin- dividuellen Schlüssel. The resulting function value to the page pre yields linked to wortin- vidual keys.

Nachdem sich die vorhergehenden Ausfuhrungsbeispiele von Fig. 3 - 7 vornehmlich mit Ausfuhrungsbeispielen für die Vor- schlusselberechnungseinrichtung 34 und die Ermittlungsein- richtung 36 beschäftigten, wird bezugnehmend auf Fig. 8 ein Ausfuhrungsbeispiel für denjenigen Teil der Ver- /Entschlusselungseinrichtung 16 beschrieben, der für die Entschlüsselung der von dem Speicher 12 (oder von einem Cache in dem Fall eines Treffers) zu der CPU 10 gesandten ver- schlüsselten Worter auf der Basis des wortindividuellen After the preceding exemplary embodiments of FIG. 3 - 7 circuit same bill device primarily with exemplary embodiments of the previous 34 and Ermittlungsein- busy direction 36, is an exemplary embodiment of that part of the supply described with reference to Figure 8 / Entschlusselungseinrichtung 16 which for. the decryption of the memory 12 (or from a cache in the case of a hit) to the CPU 10 sent encrypted common based on the individual word

Schlüssels, wie er von der Schlusselerzeugungseinrichtung 18 zugesendet wird, zustandig ist. Key as it is sent from the Schlusselerzeugungseinrichtung 18, be competent. Der Entschlüsselungsteil von Fig. 8 ist allgemein mit 16a gezeigt. The decoding part of FIG. 8 is generally shown at 16a. Er umfasst einen Dateneingang 100 zum Empfang des verschlüsselten, zu entschlüsselnden Wortes von dem Speicher 12 sowie einen Datenausgang 102 zur Ausgabe des entschlüsselten Wortes zur Weiterleitung an die CPU 10. Ferner umfasst der Entschlüsselungsteil 16a einen Schlüsseleingang 104 zum Empfang des wortindividuellen Schlüssels von der Schlüsselerzeugungseinrichtung 18 (Fig. 1). It includes a data input 100 for receiving the encrypted to be decrypted word from the memory 12 and a data output 102 to output the decrypted word for forwarding to the CPU 10. Further, the decryption part 16a a key input 104 includes the reception of the word individual key of the key generation device 18 (Fig. 1). Als interne Komponenten umfasst der Empfangsteil 16a eine Permutationseinrichtung 106 zur Ausführung einer inversen Permutation, acht parallel geschaltete 4x4-S-Boxen S^ 1 - S g 1 , die parallel geschaltet sind und jeweils unterschiedliche vier Bits eines 64-Bit-Wertes gemäß einer nichtlinearen Abbildung auf vier unterschiedliche Bits eines Ausgangswertes abbilden, 108, eine 32-Bit-XOR- Verknüpfungseinrichtung 110, eine Rundenschlüsselgenerie- rungseinrichtung 112 und einen Schalter 114. Ein 32-Bit- Dateneingang der Permutationseinrichtung 106 ist mit dem Dateneingang 100 verbunden, um das verschlüsselte 32-Bit-Wort zu erhalten. As an internal component comprises the receiving part 16a is a permutation means 106 for performing an inverse permutation, eight parallel-connected 4x4 S-boxes S ^ 1 - S G 1, which are connected in parallel and each have different four bits of a 64-bit value in accordance with a non-linear Figure mapped to four different bits of an output value, 108, a 32-bit XOR logic device 110, a Rundenschlüsselgenerie- guiding device 112 and a switch 114. a 32-bit data input of the permutation means 106 is connected to the data input 100 to the encrypted to obtain 32-bit word. Die Permutationseinrichtung 106 permutiert die Bits des 32-Bit-Wortes am Permutationseingang und gibt das permutierte 32-Bit-Wort an seinem Permutationsausgang aus, wobei die Permutation zu einer vorbestimmten Permutation P invers ist, was mit P "1 angezeigt wird. Das Ergebnis der Permutation gibt dieselbe als 32-Bit-Wert an die parallel geschalteten S-Boxen 108 aus. Jede S-Box S "1 - S "1 umfasst einen 4-Bit-Dateneingang und einen 4-Bit-Datenausgang. An jedem 4-Bit-Dateneingang der S-Boxen 108 liegen unterschiedliche vier Bits des 32-Bit-Wertes an, die von der Permutati- onseinrichtung 106 ausgegeben worden sind. Die S-Boxen 108 bilden, wie bereits erwähnt, durch eine nichtlineare Abbildung, die für jede der S-Boxen unterschiedlich sein kann und vorzugsweise auch ist, die vier Bitwerte an den Dateneingängen auf vier Bitwerte an den Datenausgängen ab. Die vier Bitwerte an den Datenausgängen werden wieder zu einem 32-Bit- Wort zusammengefasst und einem Dateneingang der XOR- Verknüpfungseinrichtung 110 zugeführt. The permutation 106 permutes the bits of the 32-bit word at the permutation, and outputs the permuted 32 bit word at its permutation, wherein the permutation is a predetermined permutation P inverse, which is indicated by P '1. The result of the permutation is the same as a 32-bit value to the parallel S-boxes 108. each S-box S '1 - S ". 1 includes a 4-bit data input and a 4-bit data output on each 4-bit. -Dateneingang the S-boxes 108 are located at different four bits of the 32-bit value, the onseinrichtung of the permutation 106 have been outputted. form the S-boxes 108, as already mentioned, by a non-linear mapping, for each of the S-boxes can be different and preferably is also the four bit values at the data inputs of four bit values at the data outputs from. the four bit values at the data outputs are combined again to a 32-bit word and fed to a data input of the XOR operation means 110 , Die XOR- Verknüpfungseinrichtung 110 umfasst einen weiteren Dateneingang. The XOR operation means 110 comprises a further data input. Dieser ist mit einem Ausgang der Rundenschlüsselgene- rierungseinrichtung 112 verbunden, deren Eingang wiederum mit dem Schlüsseleingang 104 verbunden ist. This is an output of the Rundenschlüsselgene- rierungseinrichtung 112, whose input is in turn connected to the key input 104th Am Schlüsseleingang 104 liegt der wortindividuelle 64-Bit-Schlüssel an, wie er beispielsweise durch eine der Vorrichtungen von Fig. 4 - 7 erhalten worden ist oder durch eine andere mögliche Ausgestaltung der Schlüsselerzeugungseinrichtung 18. Die Runden- schlüsselgenerierungseinrichtung 112 erzeugt basierend auf dem wortindividuellen Schlüssel einen 32-Bit-Rundenschlüssel und gibt denselben an den zweiten Dateneingang der XOR- Verknüpfungseinrichtung 110 aus. On key input 104 of the word custom 64-bit key is how he for example, by one of the devices of Fig. 4 - obtained 7 or key generation device with another possible configuration of the key generation device 18. The lap 112 generated based on the word-individual key a 32-bit round key and outputs the same to the second data input of the XOR operation means 110th Die XOR- Verknüpfungseinrichtung 110 verknüpft bitweise den 32-Bit- Rundenschlüssel und den 32-Bit-Ausgangswert von den S-Boxen 108, um an einem Datenausgang derselben ein 32-bit- linked The XOR operation means 110 bit to 32-bit round keys and the 32-bit output value of the S-boxes 108 at a data output thereof 32-

Rundenzwischenergebnis zu erhalten. to get round intermediate result. Ein Schaltereingang des Schalters 114 ist mit dem Datenausgang der XOR- Verknüpfungseinrichtung 110 verbunden. A switch input of the switch 114 is connected to the data output of the XOR operation means 110th Der Schalter 114 umfasst zwei Schalterausgänge, nämlich einen 32-Bit- Rundenfortführungsschalterausgang und einen 32-Bit- The switch 114 includes two switch outputs, namely a 32- round continuation switch output and a 32-

Rundenbeendigungsschalterausgang. Round termination switch output. Der Schalter 114 verbindet den Dateneingang mit dem Rundenfortführungsschalterausgang, so dass das verschlüsselte Wort im Dateneingang 100 ein vorbestimmte Anzahl an Malen die Einrichtungen 106 - 110 durchlaufen hat. The switch 114 connects the data input to the round continuation switch output so that the encrypted word a predetermined number of times, the devices 106 in the data input 100 - has undergone 110th Anzahl ist hoch genug, um eine ausreichende Sicherheit der Verschlüsselung sicherzustellen. Number is high enough to ensure adequate security of encryption. Der Runden- fortführungsschalterausgang ist mit dem Permutationseingang der Permutationseinrichtung 106 verbunden, während der Run- denbeendigungsschalterausgang mit dem Datenausgang 102 ver- bunden ist, um nach der vorbestimmten Anzahl von Runden, die das verschlüsselte Wort am Dateneingang 100 durchlaufen hat, das entschlüsselte 32-Bit-Wort am Datenausgang 102 auszugeben, der über den Datenbus 22 (Fig. 1) mit der CPU 10 verbunden ist. The lap going concern switch output connected to the permutation of the permutation 106, during Run- denbeendigungsschalterausgang to the data output 102 is con- nected to, the decrypted by the predetermined number of rounds, which has passed through the encrypted word at the data input 100 32-bit -word at the data output 102 output which via the data bus 22 (Fig. 1) is connected to the CPU 10. Die Rundenschlüsselgenerierungseinrichtung 112 ist derart ausgebildet, dass sie für jede Runde, die das verschlüsselte Wort die Einrichtungen 106 - 110 durchläuft, einen unterschiedlichen Rundenschlüssel aus dem wortindividuellen 64-Bit-Schlüssel am Dateneingang 104 erzeugt. The round key generation means 112 is designed such that it for each round, the encrypted word, the devices 106 - generates a different round key from the word individual 64-bit key data on input 104 110 by running.

Nachdem im Vorhergehenden der Aufbau des Entschlüsselungs- teils 16a beschrieben worden ist, wird im Folgenden kurz dessen Funktionsweise beschrieben. After the construction of the decryption portion 16a has been described in the foregoing, will be described in its operation in the following. Das verschlüsselte 32-Bit- Wort, das von dem Speicher 12 ausgelesen worden ist, erreicht über den Dateneingang 100 die Permutationseinrichtung 106. Diese permutiert das verschlüsselte Wort im Hinblick auf die Anordnung bzw. Bitpositionsverteilung seiner Bits gemäß einer Permutationsvorschrift P _1 . The encrypted 32- word that has been read from the memory 12, reached via the data input 100, the permutation means 106. This permutes the encrypted word with respect to the arrangement or Bitpositionsverteilung its bits according to a permutation P _1. Daraufhin sorgen die parallel geschalteten S-Boxen 108 für eine nichtlineare Abbildung des permutierten 32-Bit-Wertes auf einen permutierten, abgebildeten 32-Bit-Wert. Then, the parallel S-boxes 108 provide a non-linear mapping of the permuted 32-bit value to a permuted, mapped 32-bit value. Dieser wird mit einem ersten Rundenschlüs- sei, den die Rundenschlüsselgenerierungseinrichtung 112 für die erste Runde aus dem wortindividuellen Schlüssel erzeugt hat, in der XOR-Verknüpfungseinrichtung 110 bitweise XOR- verknüpft, wodurch das Rundenzwischenergebnis mit 32 Bits erhalten wird. This will be a first Rundenschlüs- which the round key generation means 112 has generated for the first round of the word-individual key, linked in the XOR operation means 110 bit-XOR, whereby the round intermediate result is obtained with 32 bits. Dieses 32-Bit-Wort leitet der Schalter 114, falls mehr als eine Runde durchgeführt werden soll, wieder an den Eingang der Permutationseinrichtung 106 weiter, wodurch die Permutation, die nichtlineare Abbildung sowie die XOR- Verknüpfung wiederholt werden, letztere jedoch mit einem neu ermittelten Rundenschlüssel. This 32-bit word is derived the switch 114, if more than one round to be conducted back to the input of the permutation means 106 further so that the permutation, the nonlinear mapping and the XOR operation are repeated, the latter, however, new with a determined round key. Nach der letzten Runde schaltet der Schalter 114 auf den Rundenbeendigungsschalterausgang und gibt das Rundenzwischenergebnis als entschlüsseltes 32-Bit- Wort aus . After the last round, the switch 114 to the round termination switch output and outputs the round intermediate result as decrypted 32-bit word.

Der bezugnehmend auf Fig. 8 beschriebene Entschlüsselungsteil der Ver-/Entschlüsselungseinrichtung 16 wird immer dann aktiv, wenn die CPU verschlüsselte Speicherinhalte vom Speicher 12 lädt. The decryption of the encryption / decryption means 16 described with reference to FIG. 8 is always active when the CPU loads encrypted memory contents from memory 12. Fig. 9 zeigt ein Ausführungsbeispiel für einen Verschlüsselungsteil 16b der Ver-/Entschlüsselungseinrichtung 16, der in der Lage ist, unverschlüsselte Wörter von der CPU 10 an den Speicher 12 bei einem Speichervorgang derart in verschlüsselte Wörter zu verschlüsseln, dass sie, wenn sie bei einem Ladevorgang wieder von der Ver-/Entschlüsselungs- einrichtung 16 mittels des Entschlüsselungsteils 16a von Fig. 8 entschlüsselt werden, in ihrem ursprünglichen Zustand über den Datenbus 22 zur CPU 10 gelangen. Fig. 9 shows an embodiment of an encryption part 16b of the encryption / decryption means 16 which is capable of unencrypted words from the CPU 10 to the memory 12 to encrypt in a storage process so in encrypted words that, if it involves loading device again by the encryption / decryption means 16 of the decryption part 16a of FIG. 8 are decrypted arrive in their original state via the data bus 22 to the CPU 10.

Der Verschlüsselungsteil 16b umfasst einen Dateneingang 120 zum Empfang eines unverschlüsselten, zu verschlüsselnden Wortes von der CPU 10 sowie einen Datenausgang 122 zur Ausgabe eines verschlüsselten Wortes zur Weiterleitung an den Speicher 12. Ferner umfasst der Verschlüsselungsteil 16b einen Schlüsseleingang 124 zum Empfang des wortindividuellen Schlüssels. The encryption part 16b includes a data input 120 for receiving an unencrypted to encrypted word from the CPU 10 and a data output 122 for outputting an encrypted word for forwarding to the memory 12. Further, the encryption part 16b includes a key input 124 for receiving the word individual key. Darüber hinaus umfasst der Verschlüsselungsteil 16b eine Permutationseinrichtung 126 zur Permutierung eines 32-Bit-Wertes an einem Permutationseingang gemäß einer Permutation P, die zu der Permutation invers ist, die durch die Permutationseinrichtung 106 durchgeführt wird, zu einem Permutationsergebnis an einem Permutationsausgang, acht parallel geschaltete 4x4-S-Boxen Si - S 8 , 128, eine XOR- Verknüpfungseinrichtung 130, eine Rundengenerierungseinrich- tung 132 und einen Schalter 134. In addition, the encryption part 16b comprises a permutation means 126 to the permutation of a 32-bit value to a permutation in accordance with a permutation P, which is the inverse of the permutation performed by the permutation means 106, to a Permutationsergebnis to a permutation, eight parallel-connected 4x4 S-boxes Si - S 8, 128, an XOR operation means 130, a Rundengenerierungseinrich- device 132 and a switch 134th

Die XOR-Verknüpfungseinrichtung 130 umfasst zwei 32-Bit- Dateneingänge, von denen der eine mit dem Dateneingang 120 der andere mit einem Datenausgang der Rundenschlüsselgenerie- rungseinrichtung 132 verbunden ist. The XOR device 130 includes two 32-bit data inputs, one of which is connected to a to the data input 120 of the other guiding device to a data output of Rundenschlüsselgenerie- 132nd Ein 32-Bit-Datenausgang der XOR-Verknüpfungseinrichtung 130 ist so mit den S-Boxen Si A 32-bit data output of XOR 130 is the S-boxes Si

- S 8 verbunden, dass an den 4-Bit-Dateneingängen derselben jeweils vier unterschiedliche Bits des 32-Bit-Datenausgangs der XOR-Verknüpfungseinrichtung 130 anliegen. - S 8 is connected, that abut on the 4-bit data inputs of the same four different bits of the 32-bit data output of the XOR operation means 130th Die S-Boxen Si The S-boxes Si

- S 8 bilden 4-Bit-Werte an ihren Dateneingängen gemäß nicht- linearen Abbildungen auf 4-Bit-Werte an ihren Datenausgängen ab, wobei die linearen Abbildungen zu denjenigen invers sind, die den S-Boxen von Fig. 8 bei 108 zugeordnet sind, dh Sχ(s x ( ))= s 1 ( S (x))=x für alle i = 1 ... 8 und für alle 4- - S 8 form 4-bit values from at their data inputs in accordance with non-linear transformations to the 4-bit values at their data outputs, wherein said linear images to those are inversely associated with the S-boxes of Figure 8 at the 108th , ie Sχ (s x ()) = s 1 (S (x)) = x for all i = 1 ... 8 and for 4-

Bit-Werte x. Bit values x.

Die 4-Bit-Werte an den Datenausgängen der S-Boxen 128 werden als 32-Bit-Wert an den Permutationseingang der Permutations- einrichtung 126 weitergeleitet. The 4-bit values at the data outputs of the S-boxes are used as 32-bit value to the permutation of the permutation 128 126 forwarded. Der Permutationsausgang der Permutationseinrichtung 126 ist mit einem Schaltereingang des Schalters 134 verbunden. The permutation of the permutation means 126 is connected to a switch input of the switch 134th Ein Rundenfortführungsschalterausgang des Schalters 134 ist mit dem ersten Dateneingang der XOR-Verknüpfungseinrichtung 130 verbunden, während ein Run- denbeendigungsschalterausgang des Schalters 134 mit dem Datenausgang 122 verbunden ist. A round continuation switch output of the switch 134 is connected to the first data input of the XOR operation means 130, while a Run denbeendigungsschalterausgang the switch 134 is connected to the data output 122nd Ein Eingang der Rundenschlüs- selgenerierungseinrichtung 132 ist mit dem Schlüsseleingang 124 verbunden. An input of the Rundenschlüs- selgenerierungseinrichtung 132 is connected with the key input 124th

Nachdem im Vorhergehenden der Aufbau des Verschlüsselungsteils 16b beschrieben worden ist, wird im Folgenden dessen Funktionsweise beschrieben. Having described the structure of the encryption portion 16b has been described in the foregoing, in the following the operation will be described. Der Verschlüsselungsteil 16b ist im wesentlichen invers zu dem Entschlüsselungsteil 16a aufge- baut. The encryption part 16b is built up substantially inverse to the decryption part 16a. Wenn ein unverschlüsseltes Wort am Dateneingang 120 zu der XOR-Verknüpfungseinrichtung 130 gelangt, verknüpft die XOR-Verknüpfungseinrichtung 130 dieses unverschlüsselte Wort mit einem Rundenschlüssel, den die Rundenschlüsselgenerie- rungseinrichtung 132 aus dem wortindividuellen Schlüssel erzeugt. If an unencrypted word arrives at the data input 120 to the XOR operation means 130 links the XOR operation means 130 of this unencrypted word with a round key, the guiding device the Rundenschlüsselgenerie- 132 generated from the word-individual key. Dieser Rundenschlüssel ist derjenige Rundenschlüssel, den der Entschlüsselungsteil 16a bei seiner letzten Runde verwenden wird, um das verschlüsselte Wort wieder zu entschlüsseln. This round key is the one round key, the decryption part 16a use in his final lap to decrypt the encrypted word again. Der sichergehende XOR-verknüpfte 32-Bit-Wert wird durch die S-Boxen 128 abgebildet auf einen abgebildeten 32-Bit-Wert. The secure continuous XOR-linked 32-bit value is represented by the S-boxes 128 on a mapped 32-bit value. Diese Operation wird genau durch die S-Box- This operation is exactly by the S-box

Abbildung der letzten Runde bei der Entschlüsselung in dem Entschlüsselungsteil 16a rückgängig gemacht werden. Figure the last round in the decryption in the decryption part 16a be undone. Der abgebildete 32-Bit-Wert wird von der Permutationseinrichtung 126 gemäß der Permutationsvorschrift P permutiert, um den permutierten 32-Bit-Wert zu erhalten, der das Rundenzwischenergebnis darstellt. The illustrated 32-bit value is permuted by the permutation means 126 according to the permutation P, to obtain the permuted 32 bit value representing the round intermediate result. Diese Permutation der ersten Runde bei der Verschlüsselung wird bei der Entschlüsselung in der letzten Runde durch die Permutation P _1 in dem Entschlüsselungsteil 16a rückgängig gemacht werden. This permutation of the first round in the encryption will be reversed in the decryption in the last round by the permutation P _1 in the decryption part 16a. Solange weitere Runden erwünscht sind, verbindet der Schalter 134 den Schaltereingang mit dem Rundenfortführungsschalterausgang, ansonsten mit dem Rundenbeendigungsschalterausgang, um das 32-Bit- Rundenzwischenergebnis als das verschlüsselte Wort über den Datenausgang 122 an den Speicher 12 auszugeben. As long as more rounds are desired, connects the switch 134 to switch the input to the round continuation switch output, otherwise the round termination switch output to output the 32-bit round intermediate result as the encrypted word via the data output 122 to memory 12th Die Rundenschlüssel, die die Rundenschlüsselgenerierungseinrichtung 132 aus dem wortindividuellen Schlüssel erzeugt, sind für die jeweiligen Runden unterschiedlich und sind den Runden genau umgekehrt zugeordnet verglichen zu den Rundenschlüsseln, die die Rundenschlüsselgenerierungseinrichtung 112 für die Entschlüsselungsrunden erzeugt. The round key, which produces the round key generation means 132 of the word individual keys are different for the respective rounds and rounds reversed allocated compared to the round keys, which produces the round key generation means 112 for decryption rounds. Auf diese Weise ist sichergestellt, dass ein verschlüsseltes Wort, wie es durch den Verschlüsselungsteil 16b erzeugt wird, durch den Entschlüsselungsteil 16a wieder zu einem entschlüsselten Wort mit dem ursprünglichen Wert entschlüsselt wird. In this way it is ensured that an encrypted word, as it is generated by the encryption part 16b, is decrypted by the decryption part 16a back to a decoded word with the original value. Der wortindividuelle Schlüssel, der an den Schlüsseleingängen 104 bzw. 124 anliegt, ist bei Entschlüsselung und Verschlüsselung derselbe, da ja sowohl beim Lade- als auch Speicherzugriff dieselbe eindeutige Adresse für das jeweilige Wort auf dem Adressbus 20 (Fig. 1) ausgegeben wird, so dass die Schlüsselerzeugungseinrichtung 18 sowohl beim Laden als auch beim Speichern denselben wortindividuellen Schlüssel erzeugt. The word individual keys, which abuts the key inputs 104 and 124 is the same for decryption and encryption, since output in both the charging and storage access the same unique address for each word on the address 20 (FIG. 1), so that the key generation device 18 generates both loading and when saving the same word-individual key.

Im Hinblick auf die Fig. 8 und 9 wird noch darauf hingewiesen, dass es freilich auch viele andere Möglichkeiten der Realisierung der Ver-/Entschlüsselung in der Ver-/Entschlüs- selungseinrichtung 16 gibt. In view of the Fig. 8 and 9 is also pointed out that it certainly selungseinrichtung also many other ways of implementing the encryption / decryption in the encryption / decryption 16 are. Unter anderem könnten Teile der Komponenten in der Entschlüsselungseinheit 16a auch in der Verschlüsselungseinheit 16b verwendet werden, wenn entsprechende Schalter je nach Ver- oder Entschlüsselung für eine geeignete Verschaltung dieser Komponenten sorgen. Among other things, parts of the components could be used in the deciphering unit 16a in the encryption unit 16b when corresponding switch ensure depending on encryption or decryption of a suitable interconnection of these components. Ferner könnte Verschlüsselung und Entschlüsselung auch aus Doppel- runden bestehen, die eine Teilrunde mit einer S-Box-Abbildung und eine Teilrunde mit einer inversen S _1 -Box-Abbildung aufweisen, so dass alle Komponenten der Ver-/Entschlüsse- lungsvorrichtung sowohl beim Entschlüsseln als auch beim Verschlüsseln verwendet werden könnten. Furthermore, encryption and decryption could also consist of a double round, having a partial round with an S-box mapping and a partial round with an inverse S _1 box illustration, so that all components of the encryption / decryption device both in decrypting could also be used as in scrambling.

Die vorhergehenden Ausführungsbeispiele gingen davon aus, dass als wortindividueller Schlüssel ein 64-BitSchlüssel der Ver-/Entschlüsselungsvorrichtung zugeführt wird, die dann hierauf gemäß der Ausführungsbeispiele von Fig. 8 und 9 Rundenschlüssel erzeugt, die für die einzelnen Verschlüsse- lungs- bzw. Entschlüsselungsrunden verwendet werden. The foregoing embodiments have assumed that the word individual key a 64-bit key of the encryption / decryption device is supplied, which then generates thereto in accordance with the embodiments of Figs. 8 and 9 round keys that ment for each encryption or used decryption rounds will. Das nachfolgend bezugnehmend auf Fig. 10 beschriebene Ausführungsbeispiel unterscheidet sich von diesen Ausführungsbeispielen dadurch, dass als wortindividueller Schlüssel eine Rundenschlüsselfolge der Ver-/Entschlüsselungseinrichtung zugeführt wird, die aus Rundenschlüsseln besteht, die für die Wörter einer Seite zwar gleich sind aber in unterschiedlicher Reihenfolge angeordnet sind. The embodiment below with reference described in Fig. 10 differs from these embodiments in that the word individual key a round key result of the encryption / decryption means is supplied, consisting of round keys, although they are the same for the words of a page but are arranged in a different order ,

Fig. 10 zeigt ein Ausführungsbeispiel für eine einen derartigen wortindividuellen Schlüssel erzeugende Einrichtung 36' ' . FIG. 10 illustrates an embodiment for such a word-individual key generating device 36 ''. Die Einrichtung 36' ' umfasst eine Rundenschlüsselberechnungs- einrichtung 140, eine Nachschlagtabelle 142, eine Ausleseeinrichtung 144 und eine Auswahlreihenfolgebestimmungseinrich- tung 146. Die Rundenschlüsselberechnungseinrichtung 140 umfasst einen Dateneingang und einen Datenausgang, wobei am Dateneingang der 64-Bit-Seitenvorschlüssel vorliegt, wie er entweder von der Vorschlüsselberechnungseinrichtung 34 oder dem Zwischenspeicher 38 zugeführt wird (siehe Fig. 2a) . The device 36 '' includes a Rundenschlüsselberechnungs- device 140, a lookup table 142, a readout device 144 and a Auswahlreihenfolgebestimmungseinrich- device 146. The round key calculation means 140 includes a data input and a data output, which is present at the data input of the 64-page pre as either is supplied from the Vorschlüsselberechnungseinrichtung 34 or the buffer memory 38 (see Fig. 2a). Die Rundenschlüsselberechnungseinrichtung 140 berechnet auf der Basis des Seitenvorschlüssels mehrere unterschiedliche Run- denschlüssel . The round key calculation means 140 calculates on the basis of Seitenvorschlüssels denschlüssel several different rounding. Die Anzahl der Rundenschlüssel richtet sich nach der Anzahl der Runden der iterativen Blockchiffre, die durch die Ver-/Entschlüsselungseinrichtung 16 implementiert wird, wie zB durch den Entschlüsselungs- und Verschlüsselungsteil der Fig. 8 und 9. Für jede Runde trägt also die Rundenschlüsselberechnungseinrichtung 140 einen unterschiedlichen Rundenschlüssel in die Nachschlagtabelle 142 ein. The number of round keys depends on the number of rounds of iterative block cipher, which is implemented by the encryption / decryption means 16, such as so carries through the decryption and encryption part of FIG. 8 and 9. For each round, the round key calculation means 140 a different round keys in the lookup table 142nd Die Auswahlreihenfolgebestimmungseinrichtung 146 empfängt an einem Dateneingang die 4-Bit-Wortadresse der gerade auf dem Adressbus 20 befindlichen eindeutigen Adresse 30. Je nach Wortadresse wählt die Auswahlreihenfolgebestimmungseinrichtung 146 eine vorbestimmte unterschiedliche Reihenfolge bezüglich der Rundenschlüssel aus, mit der dieselben ausgele- sen werden sollen. The selection order determination means 146 receives at a data input, the 4-bit word address located just on the address 20 unique address 30. Depending on word address selects the selection order determination means 146 a predetermined different order with respect to the round keys from, to be with the same read out. Diese Reihenfolge zeigt dieselbe der Ausleseeinrichtung 144 an, die darauf hin gemäß der angezeigten Reihenfolge die 32-Bit-Langen-Rundenschlüssel ausliest, um dieselben in der angezeigten Reihenfolge als Rundenschlüs- seifolge von 32-Bit-Rundenschlüsseln an die Ver-/Entschlüsse- lungseinrichtung 16 auszugeben. This sequence shows the same of the reading device 144 that reads the 32-bit Langen round key out according to the order shown to them in the order shown as Rundenschlüs- seifolge of 32-bit round keys in the encryption / decryption device 16 issue. Unterschiedliche Wörter mit unterschiedlichen Wortadressen in der selben Seite führen folglich auch bei selbem Wortinhalt zu einem unterschiedlichen Chiffrat, da bei der iterativen Blockchiffre in der Ver- /Entschlüsselungseinrichtung 16 die Rundenschlüsselfolge bei den einzelnen Runden nicht dieselbe ist. Different words having different word addresses in the same side consequently also lead in the very same word content to a different cipher, as in the iterative block cipher in the encryption / decryption means 16, the round key sequence is not the same in the individual rounds.

Anders ausgedrückt, wird gemäß dem Ausführungsbeispiel von Fig. 10 von einer iterativen Blockchiffre bei der Ver- /Entschlüsselungseinrichtung 16 ausgegangen, bei welcher in jeder Runde ein eigener Rundenschlüssel angewandt wird. In other words, it is assumed in the embodiment of FIG. 10 of an iterative block cipher in the encryption / decryption means 16, wherein in each round, a separate round key is applied. Diese Rundenschlüssel stehen in Registern der Nachschlagtabelle 142 bereit, nachdem sie vorab aus dem Seitenvorschlüssel berechnet worden sind. These round keys are available in registers of the lookup table 142, after they have been calculated in advance from the page pre. Die 4-Bit-Wortadresse bestimmt nun die Reihenfolge, in welcher die Rundenschlüssel bei der iterativen Blockchiffre angewendet werden. The 4-bit word address now determines the order in which the round keys are applied in the iterative block cipher.

Die im Vorhergehenden beschriebenen Ausführungsbeispiele zur Generierung von Schlüsseln für die Verschlüsselung zu spei- chernder Daten und/oder Entschlüsselung von gespeicherter, gelesener Daten beim Zugriff auf einen Speicher liefern folglich eine adressabhängige Bereichsschlüsselgenerierung . The embodiments for the generation of keys used for encryption to storage chernder data and / or decryption of stored, read data when accessing a memory described above thus provide an address-dependent area key generation. Anstatt jedoch die Bereichsschlüsselgenerierung für jedes Wort gleichermaßen kompliziert durchzuführen, wird der Pro- zess der Bereichsschlüsselgenerierung in zwei Teilprozesse aufgespalten, nämlich einen relativ aufwendigen und langsamen Schritt und einen einfachen und schnellen Schritt, der praktisch gratis ist. However, instead of equally complicated to carry out the area key generation for each word, the pro- cess of area key generation in two subprocesses split, namely a relatively expensive and slow step and a quick and easy step that is virtually free. Nur der einfache Schritt muss für jedes einzelne Wort ausgeführt werden, der aufwendige Schritt dagegen nur einmal für mehrere Worte gleichzeitig. Only the simple step must be performed for every single word of consuming step contrast simultaneously only once for multiple words. Dabei ist das Festhalten an der adressabhängigen Bereichsschlüsselgenerierung mehr als nur sinnvoll: In einem Mikroprozessor beträgt die Wortgröße heutzutage einige wenige Byte. Here, the adherence to the address-dependent area key generation is more than just useful: In a microprocessor the word size is nowadays a few bytes. Zum Beispiel 4 Byte bzw. 32 Bit. For example, 4 bytes or 32 bits. Eine kryptographische 32-Bit-Blockchiffre macht aber keinen Sinn. However, a cryptographic 32-bit block cipher does not make sense. Die Zahl 32 ist klein genug, so dass ein Unbefugter für alle möglichen 2 32 « 4,3 Milliarden Klartexte die zugehörigen Chiffretexte sammeln und in einer Art Codier-Lexikon auflisten könnte. The number 32 is small enough so that an unauthorized person could collect the associated ciphertext for all possible 2 32 "4.3 billion full text and list them in a kind of coding lexicon. Kryptographische Blockchiffre machen erst für Blockbreiten von 64 Bit, besser für 128 Bit, Sinn. Cryptographic block cipher make only for block widths of 64 bits, 128 bits for better, meaning. Dieses Problem kann auch nicht durch Anwendung eines CBC-Modus, wie er in der Beschreibungseinleitung beschrieben worden ist, auf eine „32-Bit- Blockchiffre" gelöst werden. Die adressabhängige Bereichsschlüsselgenerierung löst dieses Problem dagegen befriedi- gend. Nun kann kein Codier-Lexikon obiger Art mehr erstellt werden. Denn das selbe 32-Bit-Klartext-Wort, das an zwei unterschiedlichen Speicheradressen vorkommt, wird mit verschiedenen Bereichsschlüsseln verschlüsselt. Damit werden die zugehörigen Chiffretexte ebenfalls verschieden sein, auch wenn der zugrundeliegende Klartext derselbe ist. This problem can not be solved by using a CBC mode, as it has been described in the introduction, a "32-bit block cipher." The address-dependent area key generation solves this problem contrast satis- factory. Now, no coding lexicon above type be created. For the same 32-bit plaintext word which appears on two different memory addresses, is encrypted with different range keys. Thus the corresponding ciphertext will also be different, even if the underlying plaintext is the same.

Die Bereichsschlüsselgenerierung zum Zugriff auf einen Speicher mit verschlüsseltem Inhalt gemäß obiger Ausführungsbeispiele bestand darin, aus dem geheimen Generalschlüssel und der Seitenadresse bzw. Pageadresse einen pageweit bzw. seitenweit gültigen Vorschlüssel zu generieren. The area key generation for accessing a store with encrypted content according to the above embodiments has been to generate a page wide or page-wide prekeys from the secret master key and the page address or Page Address. Das ist der aufwendige Schritt, der nur einmal pro Page bzw. Seite durchgeführt werden muss. This is the consuming step that needs to be done only once per page or page. Dann wird aus dem Vorschlüssel und der Wortadresse auf einfache Weise ein wortindividueller Schlüs- sei hergeleitet. Then, from the prekeys and the word address in a simple manner a word individual key is derived. Die Verschlüsselung des Wortes erfolgt nun mit dem wortindividuellen Schlüssel. The encryption of the word is now with the word-individual key.

Die sich ergebenden Vorteile sind die Folgenden: Die Berechnung des Pageschlüssels muss bestimmte kryptographische Kriterien erfüllen und ist entsprechend aufwendig. The resulting benefits are as follows: The calculation of the Page key must meet certain cryptographic criteria and is correspondingly expensive. Der Pageschlüssel wird entweder in einer eigenen Hardwareeinheit berechnet oder es wird die Verschlüsselungseinheit 16 auch zur Berechnung des Pageschlüssels genutzt. The Page key is calculated either in a separate hardware unit or it is the encryption unit 16 also used to calculate the Page key. Da nun die Berechnung des Pageschlüssels seltener erforderlich ist (nur einmal pro Page) kann aus diesem Grund die Hardwareeinheit für die Pageschlüsselgenerierung kleiner gestaltet werden. Since the calculation of the Page key is rarely required (only one per page) can be made smaller because of this, the hardware unit for the Page key generation. Im anderen Fall, bei dem die Verschlüsselungshardware zur Pageschlüsselgenerierung mitbenutzt wird, steigt in Folge der seltener gewordenen Beanspruchung der Verschlüsselungshardware die Verschlüsselungsrate . In the other case, in which the cryptographic hardware is shared to the Page key generation, increases in consequence of the rarer become stress of the cryptographic hardware encryption rate.

Bezugnehmend auf obige Ausführungsbeispiele wird noch darauf hingewiesen, dass beispielsweise ohne weiteres die XOR-Gatter durch NXOR-Gatter ersetzt werden könnten. Referring to the above embodiments will be noted that the XOR gates could be replaced by exclusive NOT OR circuit, for example, readily. Die im vorhergehenden beschriebene vorübergehende Speicherung der Seitenvorschlüssel mit Verdrängungsstrategie kann auch durch eine Speicherung in einem ausreichend großen flüchtigen Speicher ohne Verdrängungsstrategie ersetzt werden, so dass die Seitenvorschlüssel bei fehlender Energiezufuhr automatisch gelöscht würden. The invention described in the preceding temporary storage of the page pre with predation can also be replaced by a storage at a sufficiently large volatile memory without displacement strategy, so that the page pre would be deleted automatically when there is no power supply. Ferner könnte vor der Generierung des Seitenvorschlüssels die Seitenadresse auch anderen Operationen unterzogen werden als die Expansion von Fig. 3. Ferner muss die vorliegende Erfindung nicht basierend auf den kleinsten adressierbaren Einheiten des direkt adressierbaren Speichers arbeiten, sondern es können auch größere adressierbare Einheiten gewählt werden. Further, the page address could also be subjected to operations other than the expansion of Fig before generating the Seitenvorschlüssels. 3. Further, the present invention does not operate based on the smallest addressable units of directly addressable memory, but it can also larger addressable units are selected. Ferner könnte die Abbildung der Sei- tenadressen auf die Seitenvorschlüssel jegliche Abbildung sein, vorzugsweise natürlich eine nichtlineare Abbildung. Furthermore, the mapping of the sides could tenadressen be any image on the page pre, preferably of course, a non-linear mapping.

Insbesondere wird darauf hingewiesen, dass abhängig von den Gegebenheiten das erfindungsgemäße Schema auch in Software implementiert sein kann. In particular, it is pointed out that can be implemented depending on the circumstances, the inventive scheme in software. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder einer CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. The implementation may be on a digital storage medium, particularly a floppy disk or a CD having electronically readable control signals, which can cooperate with a programmable computer system such that the respective method is performed. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfin- dungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. Generally, the invention thus also in a computer program product stored on a machine readable carrier, the program code for performing the inventive method when the computer program product runs on a computer. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft. In other words, can be implemented as a computer program with a program code for performing the method, the invention thus, when the computer program runs on a computer.

Bezugszeichenliste LIST OF REFERENCE NUMBERS

10 CPU 10 CPU

12 Speicher 12a Seite 12 memory 12a side

12b Wort 12b word

14 Zugriffssystem 14 access system

16 Ver-/Entschlüsselungseinrichtung 16 encryption / decryption means

16a Entschlüsselungsteil 16b Verschlüsselungsteil 16a decryption part 16b encryption part

18 Schlüsselerzeugungseinrichtung 18 key generating means

20 Adressbus 20 address bus

22 Datenbus 22 bus

30 eindeutige Adresse 30a Seitenadressteil 30 unique address 30a page address part

30b Wortadressteil 30b word address part

32 Seitenwechselfeststellungseinrichtung 32 page change detection means

34 VorSchlüsselberechnungseinrichtung 34 VorSchlüsselberechnungseinrichtung

36 Einrichtung zur Ermittlung des individuellen Schlüssels 36 means for determining the individual key

38 Zwischenspeicher 38 latches

40 Verweis 40 reference

50 Dateneingang 50 data input

52 Datenausgang 54 Expansionseinrichtung 52 Data output expander 54

56 Blockchiffremodul 56 block cipher module

58 expandierter Datenblock 58 expanded data block

60a-60e XOR-Verknüpfungseinrichtungen 60a-60e XOR Facilities

70 Nachschlagtabelle 72 XOR-Verknüpfungseinrichtung 70 lookup table 72 XOR device

74 Index 74 Index

80 Nachschlagtabelle 80 look-up table

82 steuerbare Permutationseinrichtung 82 controllable permutation

84 Index 90 Multiplexer 84 Index 90 Multiplexer

100 Dateneingang 100 data input

102 Datenausgang 104 Schlusseleingang 102 Data output 104 Schlusseleingang

106 Permutationseinrichtung 106 permutation

108 S-Boxen 108 S-boxes

110 XOR-Verknupfungseinrichtung 112 Rundenschlusselgenerierungseinrichtung 110 XOR 112 Verknupfungseinrichtung Rundenschlusselgenerierungseinrichtung

114 Schalter 114 switch

120 Dateneingang 120 data input

122 Datenausgang 122 data output

124 Schlusseleingang 126 Permutationseinrichtung 124 126 Schlusseleingang permutation

128 S-Boxen 128 S-boxes

130 XOR-Verknupfungseinrichtung 130 XOR Verknupfungseinrichtung

132 Rundenschlusselgenerierungseinrichtung 132 Rundenschlusselgenerierungseinrichtung

134 Schalter 140 Rundenschlusselberechnungseinrichtung 134 switch 140 round final reckoning means

142 Nachschlagtabelle 142 lookup table

144 Ausleseeinrichtung 144 readout device

146 Auswahlreihenfolgebestimmungseinrichtung 146 selection order determination means

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
WO2000055736A1 *Mar 14, 2000Sep 21, 2000Koninklijke Philips Electronics N.V.Copy-protection on a storage medium by randomizing locations and keys upon write access
GB2264373A * Title not available
US4319079 *Jan 17, 1980Mar 9, 1982Best Robert MCrypto microprocessor using block cipher
US5915025 *Jan 15, 1997Jun 22, 1999Fuji Xerox Co., Ltd.Data processing apparatus with software protecting functions
US6345359 *Nov 14, 1997Feb 5, 2002Raytheon CompanyIn-line decryption for protecting embedded software
US20030105967 *Nov 7, 2002Jun 5, 2003Nam Sang JoonApparatus for encrypting data and method thereof
Non-Patent Citations
Reference
1 *ITOH K ET AL: "DPA countermeasure based on the "masking method"" INFORMATION SECURITY AND CRYPTOLOGY - ICISC 2001. 4TH INTERNATIONAL CONFERENCE. PROCEEDINGS (LECTURE NOTES IN COMPUTER SCIENCE VOL.2288) SPRINGER-VERLAG BERLIN, GERMANY, Dezember 2001 (2001-12), Seiten 440-456, XP002322028 ISBN: 3-540-43319-8
2 *LABBE A ET AL: "DES-SRAM IP-core: a SRAM embedding DES feature" SOC CONFERENCE, 2003. PROCEEDINGS. IEEE INTERNATIONAL [SYSTEMS-ON-CHIP] 17-20 SEPT. 2003, PISCATAWAY, NJ, USA,IEEE, 17. September 2003 (2003-09-17), Seiten 11-14, XP010665813 ISBN: 0-7803-8182-3
3 *PANATO A ET AL: "A low device occupation IP to implement Rijndael algorithm" DESIGN, AUTOMATION AND TEST IN EUROPE CONFERENCE AND EXHIBITION, 2003 MUNICH, GERMANY 3-7 MARCH 2003, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 3. März 2003 (2003-03-03), Seiten 20-25, XP010674193 ISBN: 0-7695-1870-2
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
CN101086769BJun 7, 2007May 9, 2012三星电子株式会社Encrypting system for encrypting input data and operation method
Classifications
International ClassificationG06F12/14, H04L9/28
Cooperative ClassificationG06F12/1408
European ClassificationG06F12/14B
Legal Events
DateCodeEventDescription
May 12, 2005ALDesignated countries for regional patents
Kind code of ref document: A2
Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG
May 12, 2005AKDesignated states
Kind code of ref document: A2
Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW
Jul 6, 2005121Ep: the epo has been informed by wipo that ep was designated in this application
Mar 23, 2006WWEWipo information: entry into national phase
Ref document number: 2004741411
Country of ref document: EP
Mar 30, 2006WWEWipo information: entry into national phase
Ref document number: 11396211
Country of ref document: US
Jun 14, 2006WWPWipo information: published in national office
Ref document number: 2004741411
Country of ref document: EP
Nov 23, 2006WWPWipo information: published in national office
Ref document number: 11396211
Country of ref document: US