DE102008026697A1 - Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals - Google Patents

Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals Download PDF

Info

Publication number
DE102008026697A1
DE102008026697A1 DE200810026697 DE102008026697A DE102008026697A1 DE 102008026697 A1 DE102008026697 A1 DE 102008026697A1 DE 200810026697 DE200810026697 DE 200810026697 DE 102008026697 A DE102008026697 A DE 102008026697A DE 102008026697 A1 DE102008026697 A1 DE 102008026697A1
Authority
DE
Germany
Prior art keywords
bus
data
encryption
processor
peripheral interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE200810026697
Other languages
German (de)
Inventor
Rainer Dr. Göttfert
Berndt Dr. Gammel
Gerd Dirscherl
Marco Scheibe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE200810026697 priority Critical patent/DE102008026697A1/en
Publication of DE102008026697A1 publication Critical patent/DE102008026697A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

The device (100) has a processor (101), a peripheral interface (102) and a bus (103) coupled with the processor and the peripheral interface. A bus encoding mechanism (104) is coupled with the bus between the processor and the peripheral interface. The processor outputs digital signals on the bus. The bus encoding mechanism selectively encodes the digital signals output by the processor depending on an encoding signal (105) e.g. start signal and stop signal, assigned to the digital signals. The peripheral interface outputs the selectively encoded signals. The bus is an advanced microcontroller bus architecture (AMBA) bus, an advanced high-performance bus (AHB), an advanced extensible interface (AXI) bus or an advanced peripheral bus (APB). Independent claims are also included for the following: (1) a method for encoding data (2) a computer program comprising a set of instructions for performing a method for encoding data.

Description

Hintergrund der ErfindungBackground of the invention

Ausführungsbeispiele gemäß der Erfindung beziehen sich auf die Kommunikation zwischen einem sicheren Prozessor und einem externen unsicheren Speicher. Ein sicherer Prozessor stellt für die Abarbeitung eines Programms eine sichere Umgebung zur Verfügung, die die Vertraulichkeit der Daten sowie die Integrität der Daten gewährleistet. Benötigt der sichere Prozessor, beispielsweise zum Lesen und Schreiben von Daten, Zugriff auf einen externen Speicher, so kann die Sicherheit auf der Schnittstelle zwischen dem sicheren Prozessor und dem externen Speicher nicht gewährleistet sein. Anwendungsbeispiele einer solchen Kommunikation sind ein Server, der in einer sicheren Umgebung läuft, und auf einen externen unsicheren Massenspeicher zugreifen soll oder sichere Chipkarten, die um einen externen Speicher erweitert werden sollen, beispielsweise HCSIM Karten (HCSIM = high capacity subscriber identification module, Identifikationskarten mit hoher Speicherkapazität). Um eine Vertraulichkeit und Integrität der Daten sicherzustellen, ist es wünschenswert, die sichere Umgebung des sicheren Prozessors auf den externen unsicheren Speicher zu erweitern.embodiments according to the invention relate to the communication between a secure processor and an external insecure Storage. A secure processor provides for processing of a program that provides a secure environment the confidentiality of the data as well as the integrity of the Data guaranteed. Does the secure processor require for example, for reading and writing data, accessing one external memory, so security can be on the interface between the secure processor and the external memory are not guaranteed be. Application examples of such a communication are a server that running in a secure environment, and on an external one unsafe mass storage or secure smart cards, which should be extended by an external memory, for example HCSIM cards (HCSIM = high capacity subscriber identification module, Identification cards with high storage capacity). Around to ensure confidentiality and integrity of the data it is desirable to have the secure environment of safe Processor to expand the external non-volatile memory.

Zusammenfassung der ErfindungSummary of the invention

Einige Ausführungsbeispiele gemäß der Erfindung schaffen eine Vorrichtung zum Verschlüsseln von auf einen Bus ausgegebenen Daten. Die Vorrichtung umfasst einen Prozessor, eine Peripherieschnittstelle, einen Bus, der mit dem Prozessor und der Peripherieschnittstelle gekoppelt ist, und eine Busverschlüsselungseinrichtung, die zwischen dem Prozessor und der Peripherieschnittstelle mit dem Bus gekoppelt ist. Der Prozessor ist ausgelegt, um digitale Signale auf den Bus auszugeben. Die Busverschlüsselungseinrichtung ist ausgelegt, um die von dem Prozessor auf den Bus ausgegebenen digitalen Signale abhängig von einem den Signalen zugeordneten Verschlüsselungssignal selektiv zu verschlüsseln. Die Peripherieschnittstelle ist ausgelegt, um die selektiv verschlüsselten Signale nach extern auszugeben.Some Embodiments according to the invention create a device for encrypting one Bus output data. The device comprises a processor, a peripheral interface, a bus connected to the processor and the peripheral interface is coupled, and a bus encryption device, between the processor and the peripheral interface with the Bus is coupled. The processor is designed to receive digital signals to spend on the bus. The bus encryption device is designed to be the digital output from the processor to the bus Signals dependent on an encryption signal associated with the signals to selectively encrypt. The peripheral interface is designed to handle the selectively encrypted signals to be issued externally.

Kurzbeschreibung der FigurenBrief description of the figures

Ausführungsbeispiele gemäß der Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Figuren näher erläutert.embodiments according to the invention, reference will be made below explained in more detail in the accompanying figures.

Es zeigen:It demonstrate:

1 ein Blockschaltbild einer Vorrichtung zum Verschlüsseln von auf einen Bus ausgegebenen Daten gemäß einem Ausführungsbeispiel der Erfindung; 1 a block diagram of an apparatus for encrypting data outputted on a bus according to an embodiment of the invention;

2 ein Blockschaltbild einer Vorrichtung zum Verschlüsseln von auf einen Bus ausgegebenen Daten gemäß einem weiteren Ausführungsbeispiel der Erfindung; 2 a block diagram of an apparatus for encrypting data outputted on a bus according to another embodiment of the invention;

3 ein Blockschaltbild einer Vorrichtung zum Verschlüsseln von auf einen Bus ausgegebenen Daten gemäß einem weiteren Ausführungsbeispiel der Erfindung; 3 a block diagram of an apparatus for encrypting data outputted on a bus according to another embodiment of the invention;

4 ein Blockschaltbild einer Vorrichtung zum Verschlüsseln von auf einen Bus ausgegebenen Daten gemäß einem weiteren Ausführungsbeispiel der Erfindung; 4 a block diagram of an apparatus for encrypting data outputted on a bus according to another embodiment of the invention;

5 ein Blockschaltbild einer gesicherten Kommunikation zwischen einer Vorrichtung und einer anderen Vorrichtung über eine externe Datenverbindung gemäß einem Ausführungsbeispiel der Erfindung; 5 a block diagram of a secure communication between a device and another device via an external data connection according to an embodiment of the invention;

6 ein Blockschaltbild einer Chipkarte in einem Mobiltelefon gemäß einem Ausführungsbeispiel der Erfindung; 6 a block diagram of a smart card in a mobile phone according to an embodiment of the invention;

7 ein Flussdiagramm eines Verfahrens zum Verschlüsseln von auf einen Bus ausgegebenen Daten, gemäß einem Ausführungsbeispiel der Erfindung; 7 a flowchart of a method for encrypting data output on a bus, according to an embodiment of the invention;

7a eine Befehlssequenz eines Verfahrens zum Verschlüsseln und Entschlüsseln von auf einen Bus ausgegebenen Daten gemäß einem Ausführungsbeispiel der Erfindung; und 7a an instruction sequence of a method for encrypting and decrypting data output on a bus according to an embodiment of the invention; and

7b eine Befehlssequenz eines Verfahrens zum Verschlüsseln und Entschlüsseln von auf einen Bus ausgegebenen Daten gemäß einem weiteren Ausführungsbeispiel der Erfindung. 7b a command sequence of a method for encrypting and decrypting data outputted on a bus according to another embodiment of the invention.

Detaillierte Beschreibung der ErfindungDetailed description the invention

Im nachfolgenden werden nun Bezug nehmend auf die beiliegenden 1 bis 7b Ausführungsbeispiele einer Vorrichtung sowie eines Verfahrens zum Verschlüsseln von auf einen Bus ausgegebenen Daten detailliert dargelegt.In the following, reference will now be made to the attached 1 to 7b Embodiments of an apparatus and a method for encrypting data outputted on a bus are set forth in detail.

Bezüglich der nachfolgenden Beschreibung der Ausführungsbeispiele gemäß der Erfindung sollte beachtet werden, dass in den Figuren und in der Beschreibung für funktional identische bzw. gleichwirkende oder äquivalente Elemente zur Vereinfachung die gleichen Bezugszeichen verwendet werden.In terms of the following description of the embodiments According to the invention, it should be noted that in the figures and in the description for functionally identical or equivalent or equivalent elements for the sake of simplicity the same reference numerals are used.

Bezug nehmend auf 1 umfasst bei einem Ausführungsbeispiel der Erfindung eine Vorrichtung 100 zum Verschlüsseln von auf einen Bus ausgegebenen Daten einen Prozessor 101, eine Peripherieschnittstelle 102, einen Bus 103, der mit dem Prozessor 101 und der Peripherieschnittstelle 102 gekoppelt ist, und eine Busverschlüsselungseinrichtung 104. Der Prozessor 101 ist ausgelegt, um Daten in Form von digitalen Signalen auf den Bus 103 auszugeben. Die Busverschlüsselungseinrichtung 104 ist zwischen dem Prozessor 101 und der Peripherieschnittstelle 102 mit dem Bus 103 gekoppelt und ausgelegt, um die von dem Prozessor 101 auf den Bus 103 ausgegebenen Daten in Form von digitalen Signalen abhängig von einem den digitalen Signalen zugeordneten Verschlüsselungssignal 105 selektiv zu verschlüsseln. Die Peripherieschnittstelle 102 ist ausgelegt, um die selektiv verschlüsselten Signale nach extern auszugeben.Referring to 1 In one embodiment of the invention, a device comprises 100 for encrypting data output on a bus, a processor 101 , a peripheral interface 102 , a bus 103 who with the processor 101 and the peripheral interface 102 coupled, and a bus encryption device 104 , The processor 101 is designed to transfer data in the form of digital signals to the bus 103 issue. The bus encryption device 104 is between the processor 101 and the peripheral interface 102 by bus 103 coupled and designed to by the processor 101 on the bus 103 output data in the form of digital signals dependent on an encryption signal associated with the digital signals 105 to selectively encrypt. The peripheral interface 102 is designed to externally output the selectively encrypted signals.

Beispielsweise kann der Prozessor 101 die digitalen Signale unverschlüsselt auf den Bus 103 ausgeben, da die von dem Prozessor 101 auf den Bus 103 ausgegebenen digitalen Signale von der Busverschlüsselungseinrichtung 104 verschlüsselt werden. Der Prozessor 101 braucht somit keine komplexen Verschlüsselungsverfahren aufweisen, um zu sendende oder empfangene digitale Signale zu verschlüsseln bzw. zu entschlüsseln. Der Prozessor 101 kann einfacher ausgeführt sein, weniger Chipfläche benötigen oder sich vermehrt mit der Datenverarbeitung beschäftigen, für die er ausgelegt ist. Die Busverschlüsselungseinrichtung 104 kann beispielsweise ein Modul sein, das einen herkömmlichen Verschlüsselungsalgorithmus verwendet, um die von dem Prozessor 101 auf den Bus 103 ausgegebenen digitalen Signale zu verschlüsseln.For example, the processor 101 the digital signals unencrypted on the bus 103 spend because of the processor 101 on the bus 103 output digital signals from the bus encryption device 104 be encrypted. The processor 101 Thus, it does not need to have any complex encryption methods to encrypt or decrypt digital signals to be transmitted or received. The processor 101 may be simpler, require less chip area, or be more concerned with the computing for which it is designed. The bus encryption device 104 For example, a module that uses a conventional encryption algorithm may be that of the processor 101 on the bus 103 encrypted digital signals.

Während Blockverschlüsselungsverfahren mehrere Bits eines Datenwortes mit Verschlüsselungsdaten 203 verschlüsseln und damit einhergehend zusätzliche Verzögerungszeiten generieren, arbeiten Ausführungsbeispiele der Erfindung nach einem Stromverschlüsselungsverfahren („stream cipher”), wobei diese jeweils ein Bit der Verschlüsselungsdaten 203 mit einem Bit der zu verschlüsselnden digitalen Signale kombinieren und so nur eine minimale zusätzliche Verzögerung generieren, die notwendig ist, um ein Bit der Verschlüsselungsdaten 203 mit einem Bit der digitalen Signale zu kombinieren. Sie arbeiten damit quasi latenzzeitfrei bzw. „on-the-fly” (fliegend, d. h. ohne einen Prozess zu unterbrechen). Damit kann der Prozessor 101 praktisch ohne zusätzliche Latenzzeit auf ein Datenwort eines externen Speichers zugreifen.During block encryption methods, multiple bits of a data word with encryption data 203 Encrypting and thus generating additional delay times, embodiments of the invention operate according to a stream encryption method ("stream cipher"), wherein these each one bit of the encryption data 203 combine with a bit of the digital signals to be encrypted, thus generating only a minimum additional delay necessary to obtain one bit of the encryption data 203 to combine with a bit of digital signals. You work with it almost without latency or "on-the-fly" (ie without interrupting a process). This allows the processor 101 access an external memory data word with virtually no additional latency.

Die Peripherieschnittstelle 102 ist ausgelegt, um die selektiv verschlüsselten Signale, die einem internen Busprotokoll entsprechen, beispielsweise einem AMBA-, AHB-, AXI- oder APB-Busprotokoll, in ein externes Busprotokoll umzusetzen, beispielsweise in ein SPI-, NAND- oder USB-Busprotokoll oder in ein Protokoll, das einem ISO 7816 Standard entspricht oder auch in ein TCP/IP Datenprotokoll. Damit kann die Busverschlüsselungseinrichtung 104 unabhängig von dem externen Busprotokoll betrieben werden.The peripheral interface 102 is configured to convert the selectively encrypted signals corresponding to an internal bus protocol, such as an AMBA, AHB, AXI or APB bus protocol, into an external bus protocol, such as an SPI, NAND or USB bus protocol or a protocol that one ISO 7816 Standard or in a TCP / IP data protocol. Thus, the bus encryption device 104 be operated independently of the external bus protocol.

Ein Verschlüsseln oder Nichtverschlüsseln der von dem Prozessor 101 auf den Bus 103 ausgegebenen digitalen Signale kann über ein Verschlüsselungssignal 105 angesteuert werden, wobei das Verschlüsselungssignal 105 den Signalen zugeordnet ist. Der Prozessor 101 ist ausgelegt, um das Verschlüsselungssignal 105 der Busverschlüsselungseinrichtung 104 bereitzustellen. Das Verschlüsselungssignal 105 kann beispielsweise von dem Prozessor 101 zusammen mit den digitalen Signalen auf den Bus 103 ausgegeben werden. Die Busverschlüsselungseinrichtung 104 ist ausgebildet, um die von dem Prozessor 101 auf den Bus 103 ausgegebenen Signale zu empfangen, so dass das Verschlüsselungssignal 105 von der Busverschlüsselungseinrichtung 104 über den Bus 103 eingelesen werden kann. Das Verschlüsselungssignal 105 kann ein Startsignal, das eine Verschlüsselung durch die Busverschlüsselungseinrichtung 104 aktiviert, und ein Stoppsignal, das eine Verschlüsselung durch die Busverschlüsselungseinrichtung 104 deaktiviert, aufweisen.Encrypting or not encrypting the processor 101 on the bus 103 output digital signals can be via an encryption signal 105 be controlled, the encryption signal 105 associated with the signals. The processor 101 is designed to receive the encryption signal 105 the bus encryption device 104 provide. The encryption signal 105 for example, from the processor 101 along with the digital signals on the bus 103 be issued. The bus encryption device 104 is designed to be that of the processor 101 on the bus 103 received signals, so that the encryption signal 105 from the bus cipher 104 over the bus 103 can be read. The encryption signal 105 may be a start signal that is encrypted by the bus encryption device 104 activated, and a stop signal, which is encrypted by the bus encryption device 104 disabled.

Alternativ kann das Verschlüsselungssignal 105 ein Startsignal aufweisen, das bei einem aktiven Signalpegel, bzw. bei einer Aktivität des Startsignals, eine Verschlüsselung durch die Busverschlüsselungseinrichtung 104 aktiviert, und das bei einem inaktiven Signalpegel, bzw. bei einer Inaktivität des Startsignals, eine Verschlüsselung durch die Busverschlüsselungseinrichtung 104 deaktiviert. In diesem Fall entspricht die Funktionsweise eines aktiven Startsignals der Funktionsweise des oben angeführten (reinen) Startsignals und die Funktionsweise eines inaktiven Startsignals der Funktionsweise des oben angeführten (reinen) Stoppsignals. In den folgenden Abschnitten ist bei Verwendung des Ausdrucks „Startsignal” auch die Alternative „aktives Startsignal” und bei Verwendung des Ausdrucks „Stoppsignal” auch die Alternative „inaktives Startsignal” zu verstehen.Alternatively, the encryption signal 105 a start signal, that at an active signal level, or at an activity of the start signal, an encryption by the bus encryption device 104 activated, and that at an inactive signal level, or in the inactivity of the start signal, an encryption by the bus encryption device 104 disabled. In this case, the operation of an active start signal corresponds to the operation of the above (pure) start signal and the operation of an inactive start signal to the operation of the above (pure) stop signal. In the following sections, when using the phrase "start signal", the alternative "active start signal" and when using the term "stop signal" also means the alternative "inactive start signal".

Die Busverschlüsselungseinrichtung 104 ist ausgelegt, um bei einem aktiven Verschlüsselungssignal 105, bzw. einem Startsignal, die von dem Prozessor 101 auf den Bus 103 ausgegebenen digitalen Signale zu verschlüsseln, und um bei einem inaktiven Verschlüsselungssignal 105, bzw. einem Stoppsignal, die von dem Prozessor 101 auf den Bus 103 ausgegebenen digitalen Signale nicht zu verschlüsseln. Beispielsweise kann der Prozessor 101 ein aktives Verschlüsselungssignal 105, bzw. ein Startsignal, gefolgt von einem Datenblock aus Datenworten auf den Bus 103 ausgeben, um die Busverschlüsselungseinrichtung 104 anzuweisen, den Datenblock zu verschlüsseln. Daran anschließend oder vorausgehend kann der Prozessor 101 beispielsweise ein inaktives Verschlüsselungssignal 105, bzw. ein Stoppsignal, auf den Bus 103 ausgeben gefolgt von einem nicht zu verschlüsselnden Steuer- oder Adresssignal, um die Busverschlüsselungseinrichtung 104 anzuweisen, die folgenden Steuersignale oder Adresssignale nicht zu verschlüsseln. Der Prozessor 101 kann somit die einem Datenblock zugehörigen digitalen Signale verschlüsselt versenden und die dem Datenblock zugeordneten Steuersignale und Adressdaten unverschlüsselt versenden. Beispielsweise können die Steuersignale Schreib- und Lesebefehle und zugeordnete Speicheradressen umfassen.The bus encryption device 104 is designed to be active with an encryption signal 105 , or a start signal supplied by the processor 101 on the bus 103 encrypted digital signals, and at an inactive encryption signal 105 , or a stop signal generated by the processor 101 on the bus 103 not encrypted digital signals. For example, the processor 101 an active encryption signal 105 , or a start signal, followed by a data block of data words on the bus 103 output to the bus encryption device 104 to instruct to encrypt the data block. Then or in advance, the processor 101 for example, an inactive one encryption signal 105 , or a stop signal, on the bus 103 output followed by a control or address signal not to be encrypted to the bus cipher 104 to instruct not to encrypt the following control signals or address signals. The processor 101 Thus, the data block associated with a digital signals encrypted send and send the data block associated control signals and address data unencrypted. For example, the control signals may include write and read commands and associated memory addresses.

Das Verschlüsselungssignal 105 kann aber auch der Busverschlüsselungseinrichtung 104 unabhängig von dem Prozessor 101 zugeführt werden. Beispielsweise wäre es möglich, dass Daten, die von dem Prozessor 101 auf den Bus 103 ausgegeben werden, stets das gleiche Format aufweisen, z. B. eine erste Anzahl von nicht zu verschlüsselnden Steuersignalen gefolgt von einer zweiten Anzahl von zu verschlüsselnden Nutzdaten. In diesem Fall könnte die Busverschlüsselungseinrichtung 104 stets die erste Anzahl von auf den Bus 103 ausgegebenen Daten nicht verschlüsseln und die sich daran anschließende zweite Anzahl von auf den Bus 103 ausgegebenen Daten verschlüsseln. Auch wäre es denkbar, dass die Busverschlüsselungseinrichtung 104 permanent die Daten verschlüsselt, für diesen Fall wäre das Verschlüsselungssignal 105 stets aktiv, bzw. das Startsignal würde einmalig gesendet.The encryption signal 105 but also the bus encryption device 104 regardless of the processor 101 be supplied. For example, it would be possible to get data from the processor 101 on the bus 103 always have the same format, z. B. a first number of unencrypted control signals followed by a second number of user data to be encrypted. In this case, the bus encryption device could 104 always the first number of on the bus 103 Do not encrypt output data and then add the second number to the bus 103 Encrypt output data. It would also be conceivable that the bus encryption device 104 permanently encrypted the data, in this case would be the encryption signal 105 always active, or the start signal would be sent once.

2 zeigt ein Blockschaltbild einer Vorrichtung 100 zum Verschlüsseln von auf einen Bus ausgegebenen Daten, gemäß einem weiteren Ausführungsbeispiel der Erfindung. Die Vorrichtung 100 umfasst die gleichen Komponenten wie die Vorrichtung 100 gemäß dem Ausführungsbeispiel der 1. Das heißt, einen Prozessor 101, eine Peripherieschnittstelle 102, einen Bus 103 sowie eine Busverschlüsselungseinrichtung 104. Der Prozessor 101 ist ausgelegt, um digitale Signale auf den Bus 103 auszugeben. Der Bus 103 umfasst in diesem Ausführungsbeispiel einen Datenbus 103a sowie eine oder eine Mehrzahl von Statusleitungen 103b. Die Statusleitungen 103b können beispielsweise einen Status der Peripherieschnittstelle 102 oder der Busverschlüsselungseinrichtung 104 dem Prozessor 101 melden und werden im Folgenden nicht weiter beschrieben. Eine Verschlüsselung von auf den Bus 103 ausgegebenen Daten erfolgt über den Datenbus 103a, so dass im Folgenden der Bus 103 mit dem Datenbus 103a gleichgesetzt wird. Die Peripherieschnittstelle 102 ist ausgelegt, um eine Anpassung des auf dem Bus 103 implementierten Datenprotokolls an ein auf dem externen Bus 206 implementiertes Datenprotokoll vorzunehmen. Der externe Bus 206 koppelt die Peripherieschnittstelle 102 mit einem externen Speicher 207. Der Bus 103 koppelt den Prozessor 101 mit der Peripherieschnittstelle 102. Die Busverschlüsselungseinrichtung 104 ist ausgelegt, um die von dem Prozessor 101 auf den Bus 103 ausgegebenen digitalen Signale abhängig von einem den digitalen Signalen zugeordneten Verschlüsselungssignal 105 selektiv zu ver schlüsseln. Die Busverschlüsselungseinrichtung 104 weist ein Busverschlüsselungsmodul (BEM) 201 und eine Kombinationsschaltung 202 auf. Die Kombinationsschaltung 202 ist ausgelegt, um die von dem Prozessor 101 auf den Bus 103 ausgegebenen digitalen Signale mit von dem Busverschlüsselungsmodul 201 erzeugten Verschlüsselungsdaten 203 zu kombinieren. In diesem Ausführungsbeispiel weist die Kombinationsschaltung 202 eine Exklusiv-ODER-Verknüpfung auf, d. h. von dem Prozessor 101 ausgegebene digitale Signale werden mit von dem Busverschlüsselungsmodul 201 ausgegebenen Verschlüsselungsdaten 203 mittels einer logischen Exklusiv-ODER Operation bitweise verknüpft. Das Busverschlüsselungsmodul 201 kann beispielsweise einen Pseudozufallszahlengenerator aufweisen, der ausgelegt ist, um unter Verwendung von zumindest entweder einem Schlüssel 205 oder einem Initialisierungswert 204 die Verschlüsselungsdaten 203 zu erzeugen. 2 shows a block diagram of a device 100 for encrypting data output on a bus, according to another embodiment of the invention. The device 100 includes the same components as the device 100 according to the embodiment of the 1 , That is, a processor 101 , a peripheral interface 102 , a bus 103 and a bus encryption device 104 , The processor 101 is designed to send digital signals to the bus 103 issue. The bus 103 includes in this embodiment a data bus 103a and one or a plurality of status lines 103b , The status lines 103b may, for example, have a status of the peripheral interface 102 or the bus encryption device 104 the processor 101 and will not be described further below. An encryption of on the bus 103 output data via the data bus 103a so that below the bus 103 with the data bus 103a is equated. The peripheral interface 102 is designed to be an adaptation of the on the bus 103 implemented data protocol to a on the external bus 206 implement implemented data protocol. The external bus 206 couples the peripheral interface 102 with an external memory 207 , The bus 103 couples the processor 101 with the peripheral interface 102 , The bus encryption device 104 is designed to be that of the processor 101 on the bus 103 output digital signals in response to an encryption signal associated with the digital signals 105 selectively encrypted. The bus encryption device 104 has a bus encryption module (BEM) 201 and a combination circuit 202 on. The combination circuit 202 is designed to be that of the processor 101 on the bus 103 output digital signals from the bus encryption module 201 generated encryption data 203 to combine. In this embodiment, the combination circuit 202 an exclusive OR, ie from the processor 101 output digital signals are provided by the bus encryption module 201 issued encryption data 203 linked bitwise by means of a logical exclusive-OR operation. The bus encryption module 201 For example, it may include a pseudo-random number generator configured to use at least one of a key 205 or an initialization value 204 the encryption data 203 to create.

Der Pseudozufallszahlengenerator stellt eine Stromchiffre dar, d. h. er generiert eine Folge von statistisch „unauffälligen” Zufallszahlen, deren Anfangszustand selbst bei Kenntnis von längeren Abschnitten von Zufallszahlen nur schwer zu entschlüsseln ist. Der Anfangszustand der Stromchiffre kann aus einem Schlüssel 205 und einem Initialisierungswert 204 erzeugt werden. Der Schlüssel 205 und der Initialisierungswert 204 können beispielsweise fest in der Busverschlüsselungseinrichtung 104 vorliegen, sie können aber auch durch den Prozessor 101 über den Bus 103 zum Busverschlüsselungsmodul 201 übertragen werden. Der Schlüssel 205, auch als geheimer Schlüssel bezeichnet, ist ein Langzeitschlüssel, der der Busverschlüsselungseinrichtung 104 zur Verschlüsselung längerer Abschnitte von digitalen Signalen zugeführt wird, und unter normalen Zuständen, d. h. keiner Kompromittierung des Schlüssels 205, nicht verändert wird. Der Initialisierungswert 204 entspricht dagegen einem Kurzzeitschlüssel, d. h. einem Schlüssel, der abhängig von den auszugebenden digitalen Signalen geändert wird. Beispielsweise kann der Initialisierungswert 204 einem ersten Datenwort zugeordnet sein, so dass das erste Datenwort unter Verwendung des Initialisierungswertes verschlüsselt wird. Ein zweiter Initialisierungswert kann einem zweiten Datenwort zugeordnet sein, so dass das zweite Datenwort unter Verwendung des zweiten Initialisierungswertes verschlüsselt wird. Die Zuordnung eines Initialisierungswertes 204 zu einem Datenwort kann beispielsweise anhand der (logischen oder physikalischen) Adresse des Datenwortes ausgeführt werden. Basierend auf dem Schlüssel 205 und dem Initialisierungswert 204 kann der Anfangszustand des Stromchiffres erzeugt werden, den der Pseudozufallszahlengenerator verwenden kann, um die Verschlüsselungsdaten 203 zu erzeugen. Wird für jedes Datenwort ein neuer Initialisierungswert 204 verwendet, so erzeugt der Pseudozufallszahlengenerator für jedes Datenwort einen neuen Anfangszustand, um die Verschlüsselungsdaten 203 zu erzeugen. Bei hinreichend kurzen Datenwortlängen ist es schwer möglich, aus den Verschlüsselungsdaten 203 oder den verschlüsselten digitalen Signalen eine Regelmäßigkeit bzw. Periodizität zu erkennen, um daraus auf den Anfangszustand des Pseudozufallszahlengenerators zu schließen. Während der Schlüssel 205 geheim bleiben sollte, kann der Initialisierungswert 204 öffentlich sein. Beispielsweise kann der Initialisierungswert 204 zusammen mit den unter Verwendung des Initialisierungswertes 204 zu verschlüsselnden digitalen Signalen von dem Prozessor 101 auf den Bus 103 ausgegeben werden, wo die Busverschlüsselungseinrichtung 104 den Initialisierungswert 204 einlesen kann.The pseudo-random number generator represents a stream cipher, ie it generates a sequence of statistically "inconspicuous" random numbers whose initial state is difficult to decrypt even with knowledge of longer sections of random numbers. The initial state of the stream cipher can be a key 205 and an initialization value 204 be generated. The key 205 and the initialization value 204 For example, they can be fixed in the bus encryption device 104 but they can also be through the processor 101 over the bus 103 to the bus encryption module 201 be transmitted. The key 205 , also referred to as a secret key, is a long-term key, that of the bus encryption device 104 for encoding longer portions of digital signals, and under normal conditions, ie no compromise of the key 205 , is not changed. The initialization value 204 on the other hand corresponds to a short-term key, ie a key which is changed depending on the digital signals to be output. For example, the initialization value 204 be associated with a first data word, so that the first data word is encrypted using the initialization value. A second initialization value may be associated with a second data word such that the second dataword is encrypted using the second initialization value. The assignment of an initialization value 204 to a data word can be performed, for example, based on the (logical or physical) address of the data word. Based on the key 205 and the initialization value 204 the initial state of the stream cipher can be generated, which is the Pseudo-random number generator can use the encryption data 203 to create. Will be a new initialization value for each data word 204 used, the pseudo-random number generator for each data word generates a new initial state to the encryption data 203 to create. With sufficiently short data word lengths, it is difficult to get out of the encryption data 203 or the encrypted digital signals to detect a regularity or periodicity, to conclude from the initial state of the pseudo-random number generator. While the key 205 should remain secret, the initialization value 204 be public. For example, the initialization value 204 along with the ones using the initialization value 204 to be encrypted digital signals from the processor 101 on the bus 103 where the bus encryption device 104 the initialization value 204 can read.

Die Kombinationsschaltung 202 ist in diesem Ausführungsbeispiel als eine Exklusiv-ODER-Operation ausgeführt. Erzeugt der Pseudozufallszahlengenerator beispielsweise Verschlüsselungsdaten 203 in Form eines binären additiven synchronen Stromchiffres, so sind die Funktionen für die Entschlüsselung und die Verschlüsselung identisch.The combination circuit 202 is executed in this embodiment as an exclusive-OR operation. For example, the pseudorandom number generator generates encryption data 203 in the form of a binary additive synchronous stream cipher, the decryption and encryption functions are identical.

Die Peripherieschnittstelle 102 ist ferner ausgelegt, um selektiv verschlüsselte Signale von extern zu empfangen und auf den Bus 103 auszugeben. In diesem Ausführungsbeispiel ist die Peripherieschnittstelle 102 unter Verwendung eines externen Busses 206 mit einem externen Speicher 207 gekoppelt, und ist ausgelegt, um die selektiv verschlüsselten Signale von dem Prozessor 101 zu dem externen Speicher 207 auszugeben, und um selektiv verschlüsselte Signale von dem externen Speicher 207 zu empfangen und auf den Bus 103 auszugeben.The peripheral interface 102 is further adapted to receive selectively encrypted signals from the outside and onto the bus 103 issue. In this embodiment, the peripheral interface is 102 using an external bus 206 with an external memory 207 coupled, and is adapted to the selectively encrypted signals from the processor 101 to the external memory 207 and selectively encrypted signals from the external memory 207 to receive and get on the bus 103 issue.

Die Busverschlüsselungseinrichtung 104 ist ausgelegt, um zu sendende digitale Signale, d. h. von dem Prozessor 101 auf den Bus 103 ausgegebene digitale Signale, selektiv zu verschlüsseln, und um von der Peripherieschnittstelle 102 empfangene selektiv verschlüsselte Signale abhängig von dem zugeordneten Verschlüsselungssignal 105 selektiv zu entschlüsseln. Die Busverschlüsselungseinrichtung 104 ist ausgelegt, um empfangene Daten abhängig von dem Verschlüsselungssignal 105 zu entschlüsseln. Bei einem aktiven Verschlüsselungssignal 105 bzw. einem Startsignal werden die selektiv verschlüsselten Signale entschlüsselt, während bei einem inaktiven Verschlüsselungssignal 105 bzw. einem Stoppsignal die selektiv verschlüsselten Signale nicht entschlüsselt werden.The bus encryption device 104 is designed to transmit digital signals, ie from the processor 101 on the bus 103 output digital signals, selectively encrypted, and from the peripheral interface 102 received selectively encrypted signals depending on the associated encryption signal 105 to decrypt selectively. The bus encryption device 104 is designed to receive received data depending on the encryption signal 105 to decode. For an active encryption signal 105 or a start signal, the selectively encrypted signals are decrypted while an inactive encryption signal 105 or a stop signal, the selectively encrypted signals are not decrypted.

Die Busverschlüsselungseinrichtung 104 ist ferner ausgebildet, um den selektiv verschlüsselten Signalen Verschlüsselungsdaten 203 zuzuordnen. Die Peripherieschnittstelle 102 ist ausgelegt, um die selektiv verschlüsselten Signale in einen externen Speicher 207 zu schreiben und von dem Speicher 207 zu empfangen. Die Busverschlüsselungseinrichtung 104 ist ausgelegt, um die empfangenen selektiv verschlüsselten Signale unter Verwendung der zugeordneten Verschlüsselungsdaten 203 zu entschlüsseln.The bus encryption device 104 is further adapted to encode the selectively encrypted signals 203 assigned. The peripheral interface 102 is designed to store the selectively encrypted signals in an external memory 207 to write and from the memory 207 to recieve. The bus encryption device 104 is adapted to receive the received selectively encrypted signals using the associated encryption data 203 to decode.

Mittels der als Exklusiv-ODER-Verknüpfung realisierten Kombinationsschaltung 202 kann in diesem Ausführungsbeispiel eine Verschlüsselung der digitalen Signale einer Entschlüsselung der selektiv verschlüsselten Signale entsprechen. Das heißt, bei Kenntnis des den selektiv verschlüsselten Signalen zugeordneten Initialisierungswertes 204 kann das Busverschlüsse lungsmodul 201 Entschlüsselungsdaten erzeugen, die den Verschlüsselungsdaten 203 entsprechen, mit denen die digitalen Signale verschlüsselt wurden.By means of the combination circuit realized as an exclusive-OR operation 202 In this embodiment, an encryption of the digital signals may correspond to a decryption of the selectively encrypted signals. That is, knowing the initialization value associated with the selectively encrypted signals 204 can the bus locking module 201 Generate decryption data that matches the encryption data 203 correspond with which the digital signals were encrypted.

Eine Datenübertragung von dem Prozessor 101 zu dem externen Speicher 207 kann beispielsweise in der Weise ausgeführt sein, dass der Prozessor 101 einen Schreibbefehl, eine Schreibadresse und einen der Schreibadresse zugeordneten Datenblock auf den Bus 103 ausgibt, wobei der Prozessor 101 zuvor ein Verschlüsselungssignal 105 aktiviert, d. h. ein Startsignal bereitstellt, um der Busverschlüsselungseinrichtung 104 zu signalisieren, den der Schreibadresse zugeordneten Datenblock selektiv zu verschlüsseln. Die Busverschlüsselungseinrichtung 104 ist ausgelegt, um bei einem aktiven Verschlüsselungssignal 105, d. h. bei Bereitstellung des Startsignals, den von dem Prozessor 101 auf den Bus 103 ausgegebenen Datenblock zu verschlüsseln, und bei einem inaktiven Verschlüsselungssignal 105, d. h. bei Bereitstellung des Stoppsignals, den Datenblock nicht zu verschlüsseln. Die Peripherieschnittstelle 102 ist ausgelegt, um die selektiv verschlüsselten Signale, d. h. den, abhängig von dem Verschlüsselungssignal 105, verschlüsselten oder unverschlüsselten Datenblock nach extern, d. h. zum externen Speicher 207 auszugeben.A data transfer from the processor 101 to the external memory 207 For example, it may be implemented in such a way that the processor 101 a write command, a write address, and a data block associated with the write address on the bus 103 outputs, with the processor 101 previously an encryption signal 105 activated, ie provides a start signal to the bus encryption device 104 signal to selectively encrypt the data block associated with the write address. The bus encryption device 104 is designed to be active with an encryption signal 105 That is, upon provision of the start signal, that of the processor 101 on the bus 103 encrypted data block and an inactive encryption signal 105 ie, when providing the stop signal, not encrypt the data block. The peripheral interface 102 is designed to the selectively encrypted signals, that is, depending on the encryption signal 105 , encrypted or unencrypted data block to external, ie to the external memory 207 issue.

Ein Lesen von Daten, d. h. eine Übertragung von Daten von dem externen Speicher 207 zu dem Prozessor 101, kann dadurch erfolgen, dass der Prozessor 101 einen Lesebefehl und eine Leseadresse auf den Bus 103 ausgibt, sowie ein Verschlüsselungssignal 105 aktiviert, d. h. ein Startsignal bereitstellt. Die Peripherieschnittstelle 102 kann den der Leseadresse zugeordneten selektiv verschlüsselten Datenblock empfangen und auf den Bus 103 ausgeben. Die Busverschlüsselungseinrichtung 104 kann bei einem aktiven Verschlüsselungssignal 105, d. h. bei Bereitstellung des Startsignals durch den Prozessor 101, den von der Peripherieschnittstelle 102 auf den Bus 103 ausgegebenen selektiv verschlüsselten Datenblock entschlüs seln, so dass der Prozessor 101 den entschlüsselten Datenblock empfangen kann. Beispielsweise kann der Initialisierungswert 204, mit dem der Pseudozufallszahlengenerator Verschlüsselungsdaten 203 bzw. Entschlüsselungsdaten erzeugt, auf der von dem Prozessor 101 bereitgestellten Schreibadresse oder Leseadresse basieren, so dass die Busverschlüsselungseinrichtung 104 unter Verwendung des betreffenden Initialisierungswertes 204 und des Schlüssels 205 den der Schreibadresse oder der Leseadresse zugeordneten Datenblock verschlüsseln oder entschlüsseln kann. Beispielsweise kann die Busverschlüsselungseinrichtung 104 anhand eines von dem Prozessor 101 bereitgestellten Schreibbefehls oder Lesebefehls erkennen, ob ein Datenblock zu verschlüsseln oder ein selektiv verschlüsselter Datenblock zu entschlüsseln ist. Schreibadresse, Leseadresse, Schreibbefehl und Lesebefehl können beispielsweise zusammen mit dem Datenblock auf den Bus 103 ausgegeben werden, wobei die Busverschlüsselungseinrichtung 104 eine selektive Verschlüsselung bzw. Entschlüsselung der digitalen Signale, d. h. Schreibbefehl, Schreibadresse und zu verschlüsselnder Datenblock, bzw. der selektiv verschlüsselten Signale, d. h. Lesebefehl, Leseadresse und selektiv verschlüsselter Datenblock ausführt.A reading of data, ie a transfer of data from the external memory 207 to the processor 101 , can be done by the processor 101 a read command and a read address on the bus 103 and an encryption signal 105 activated, that provides a start signal. The peripheral interface 102 may receive the selectively encrypted data block associated with the read address and onto the bus 103 output. The bus encryption device 104 can with an active encryption signal 105 ie when the processor provides the start signal 101 from the peripheral interface 102 on the bus 103 issued selectively encrypted Decrypt data block so that the processor 101 can receive the decrypted data block. For example, the initialization value 204 with which the pseudo-random number generator encryption data 203 or decryption data generated by the processor 101 provided write address or read address, so that the bus encryption device 104 using the appropriate initialization value 204 and the key 205 can encrypt or decrypt the data block associated with the write address or the read address. For example, the bus encryption device 104 based on one of the processor 101 provided write command or read command, whether to encrypt a data block or to decrypt a selectively encrypted data block. Write address, read address, write command and read command, for example, together with the data block on the bus 103 output, the bus encryption device 104 a selective encryption or decryption of the digital signals, ie write command, write address and encrypted data block, or the selectively encrypted signals, ie read command, read address and selectively encrypted data block executes.

3 zeigt ein Blockschaltbild einer Vorrichtung 100 zum Verschlüsseln von auf einen Bus ausgegebenen Daten gemäß einem weiteren Ausführungsbeispiel der Erfindung. Entsprechend dem Ausführungsbeispiel der 2 umfasst die Vorrichtung 100 bei diesem Ausführungsbeispiel einen Prozessor 101, eine Peripherieschnittstelle 102 und eine Busverschlüsselungseinrichtung 104. Die Peripherieschnittstelle 102 ist über einen externen Bus 206 mit einem externen Speicher 207 gekoppelt. Während bei dem Ausführungsbeispiel gemäß der 2 die Busverschlüsselungseinrichtung 104 ein Busverschlüsselungsmodul 201 und eine Kombinationsschaltung 202, die als eine Exklusiv-ODER-Verknüpfung ausgeführt sein kann, aufweist, ist bei dem Ausführungsbeispiel gemäß der 3 die innere Struktur der Busverschlüsselungseinrichtung 104 nicht explizit dargestellt. Die Busverschlüsselungseinrichtung 104 kann ein Busverschlüsselungsmodul 201 mit einem Pseudozufallszahlengenerator umfassen, um Verschlüsselungsdaten 203 zu erzeugen, und um diese unter Verwendung einer Kombinationsschaltung 202 mit den von dem Prozessor 101 auf den Bus 103 ausgegebenen digitalen Signalen zu kombinieren. Die Kombinationsschaltung 202 kann neben einer Exklusiv-ODER-Verknüpfung auch eine andere Art der Verknüpfung aufweisen, beispielsweise eine Multiplikations- oder eine Modulationsschaltung. Zusätzlich zu den Verschlüsselungsdaten 203 gemäß dem Ausführungsbeispiel der 2 kann die Busverschlüsselungseinrichtung 104 einen Authentifizierungscode entsprechend einem Nachrichtenauthentifizierungscode (MAC = message authentication code) erzeugen. 3 shows a block diagram of a device 100 for encrypting data outputted on a bus according to a further embodiment of the invention. According to the embodiment of the 2 includes the device 100 in this embodiment, a processor 101 , a peripheral interface 102 and a bus encryption device 104 , The peripheral interface 102 is via an external bus 206 with an external memory 207 coupled. While in the embodiment according to the 2 the bus encryption device 104 a bus encryption module 201 and a combination circuit 202 , which may be implemented as an exclusive-OR operation, is in the embodiment according to the 3 the internal structure of the bus encryption device 104 not explicitly shown. The bus encryption device 104 can be a bus encryption module 201 with a pseudorandom number generator to encrypt data 203 and to generate them using a combination circuit 202 with those of the processor 101 on the bus 103 to combine output digital signals. The combination circuit 202 In addition to an exclusive-OR operation, it can also have another type of connection, for example a multiplication circuit or a modulation circuit. In addition to the encryption data 203 according to the embodiment of the 2 can the bus encryption device 104 generate an authentication code according to a message authentication code (MAC).

Ein Authentifizierungscode bzw. ein MAC ist ein Code, der unter Verwendung der einzelnen Elemente eines Datenblocks berechnet wird, um zu überprüfen, ob der Datenblock korrekt übertragen wurde bzw. ob an dem Datenblock keine Manipulationen vorgenommen wurden. Mittels des Authentifizierungscodes kann die Vertraulichkeit und die Integrität festgestellt werden. Alternativ zu einer Authentifizierungscode (MAC)-Berechnung kann auch eine kryptographische Hashsumme über die Daten berechnet werden. Die Hashsumme kann beispielsweise auf dem Prozessor 101 gespeichert werden, z. B. zusammen mit einer Nonce, d. h. einem Zähler, einem Zeitstempel, einer Zufallszahl etc., um so genannte „Replay-Attacken” bzw. Wiederholungsattacken abzuwehren. Um den lesenden und schreibenden Zugriff bzw. die Prüfung und Berechnung der MAC bzw. der Hashsumme wesentlich zu beschleunigen, können die Daten in kleine Blöcke partitioniert und jeweils MAC bzw. Hashwerte über Datenblock, Adresse des Datenblocks und eine Nonce berechnet werden. Die Berechnung der Hashsummen bzw. der MACs und der Nonces kann beispielsweise in Baumstrukturen organisiert werden, um den Aufwand beim Aktualisieren der MACs, Hashwerte bzw. Nonces zu minimieren, sowie um die Menge der zu speichernden Daten zu reduzieren. Die zur Berechnung der MACs, Hashwerte bzw. Nonces erforderlichen Tabellen können beispielsweise auf der Busverschlüsselungseinrichtung 104 abgelegt werden, um den Prozessor 101 nicht zu belasten. Alternativ können inkrementelle MACs über hierarchisch organisierte Strukturen berechnet werden, um den Speicheraufwand noch einmal weiter zu reduzieren.An authentication code or a MAC is a code which is calculated using the individual elements of a data block to check whether the data block was transmitted correctly or whether no manipulations were made on the data block. By means of the authentication code the confidentiality and the integrity can be determined. As an alternative to an authentication code (MAC) calculation, a cryptographic hash sum can also be calculated via the data. The hash sum, for example, on the processor 101 be stored, for. B. together with a nonce, ie a counter, a timestamp, a random number, etc., to ward off so-called "replay attacks" or repetitive attacks. In order to considerably speed up the reading and writing access or the checking and calculation of the MAC or the hash sum, the data can be partitioned into small blocks and MAC or hash values can be calculated in each case via data block, address of the data block and a nonce. The calculation of the hash sums or the MACs and the nonces can be organized, for example, in tree structures in order to minimize the effort when updating the MACs, hashes or nonces, and to reduce the amount of data to be stored. The tables required for calculating the MACs, hash values or nonces can be used, for example, on the bus encryption device 104 be dropped to the processor 101 not to burden. Alternatively, incremental MACs can be calculated using hierarchically organized structures to further reduce memory overhead.

Der Bus 103 gemäß dem Ausführungsbeispiel umfasst neben den Statistikleitungen 103b, die zur Information des Prozessors 101 bezüglich Status der Busverschlüsselungseinrichtung 104 sowie der Peripherieschnittstelle 102 dienen, einen Datenbus 103a, 103c, der sich in einen Prozessordatenbus 103a und einen Peripheriedatenbus 103c aufteilen lässt. Der Prozessordatenbus 103a ist mit dem Prozessor 101 und der Busverschlüsselungseinrichtung 104 gekoppelt. Der Peripheriedatenbus 103c ist mit der Busverschlüsselungseinrichtung 104 und der Peripherieschnittstelle 102 gekoppelt. Alternativ oder zusätzlich kann die Busverschlüsselungseinrichtung 104 selektiv verschlüsselte Signale, die einen Authentifizierungscode bzw. MAC 302 aufweisen, auf den Peripheriedatenbus 103c ausgeben. Somit ist eine Verschlüsselung von Daten durch den Prozessor 101 nicht notwendigerweise erforderlich. Eine Verschlüsselung kann durch die Busverschlüsselungseinrichtung 104 vorgenommen werden, so dass der Prozessor 101 von der Aufgabe der Verschlüsselung inklusive Speicherung der dazu erforderlichen Tabellen entlastet wird.The bus 103 according to the embodiment comprises in addition to the statistics lines 103b for the information of the processor 101 regarding the status of the bus encryption device 104 and the peripheral interface 102 serve a data bus 103a . 103c that turns into a processor data bus 103a and a peripheral data bus 103c divide up. The processor data bus 103a is with the processor 101 and the bus encryption device 104 coupled. The peripheral data bus 103c is with the bus encryption device 104 and the peripheral interface 102 coupled. Alternatively or additionally, the bus encryption device 104 selectively encrypted signals containing an authentication code or MAC 302 have on the peripheral data bus 103c output. Thus, encryption of data by the processor 101 not necessarily required. Encryption can be done by the bus cipher 104 be made so that the processor 101 from the task of encryption including storage of the necessary Tables is relieved.

Die Busverschlüsselungseinrichtung 104 kann einen Pseudozufallszahlengenerator 201 aufweisen, der gemäß dem Ausführungsbeispiel der 2 eine Verschlüsselung der digitalen Signale unter Verwendung des Schlüssels 205 und eines den digitalen Signalen zugewiesenen Initialisierungswertes 204 abhängig von einem Verschlüsselungssignal 105 vornimmt. Zusätzlich zur Verschlüsselung ist die Busverschlüsselungseinrichtung 104 ausgelegt, um in Abhängigkeit von einem Authentifizierungssignal 301 einen Authentifizierungscode (MAC) zu berechnen. Der Authentifizierungscode kann bei spielsweise an die selektiv verschlüsselten Signale angehängt oder innerhalb der selektiv verschlüsselten Signale eingefügt werden. Beispielsweise kann die Verschlüsselungseinrichtung 104 bei einem aktivem Verschlüsselungssignal 105, d. h., einem Startsignal, für von dem Prozessor 101 auf den Bus 103 ausgegebene digitale Signale einen Authentifizierungscode über die einzelnen Signalwerte der digitalen Signale bilden, z. B. durch Akkumulation einzelner den Signalwerten zugeordneter MAC-Summenwerte, um eine fortlaufende MAC-Summe zu bilden. die mit jedem Signalwert eines digitalen Signals aktualisiert wird, und mit dem letzten Signalwert des jeweiligen digitalen Signals gespeichert wird. Beispielsweise kann ein digitales Signal einem Datenwort oder einem Datenblock entsprechen, die einzelnen Signalwerte können einzelne Datenbits repräsentieren. Der berechnete Authentifizierungscode (MAC) kann beispielsweise zusammen mit dem ihm zugeordneten digitalen Signal über den Peripheriebus 103c und über den externen Bus 206 zum externen Speicher 207 übertragen werden, wo beispielsweise für jedes digitale Signal ein zugehöriger Authentifizierungscode (MAC) gespeichert wird. Alternativ wäre es möglich, den berechneten Authentifizierungscode (MAC) zusammen mit einem Identifizierer in der Busverschlüsselungseinrichtung 104 zu speichern. Ein Identifizierer kann beispielsweise eine logische Adresse oder eine physikalische Adresse eines digitalen Signals sein.The bus encryption device 104 can be a pseudo-random number generator 201 have, according to the embodiment of the 2 an encryption of the digital signals using the key 205 and an initialization value assigned to the digital signals 204 depending on an encryption signal 105 performs. In addition to the encryption is the bus encryption facility 104 designed to function in response to an authentication signal 301 to calculate an authentication code (MAC). The authentication code may, for example, be appended to the selectively encrypted signals or inserted within the selectively encrypted signals. For example, the encryption device 104 with an active encryption signal 105 , ie, a start signal, for from the processor 101 on the bus 103 output digital signals form an authentication code on the individual signal values of the digital signals, z. By accumulating individual MAC values associated with the signal values to form a continuous MAC sum. which is updated with each signal value of a digital signal and stored with the last signal value of the respective digital signal. For example, a digital signal may correspond to a data word or a data block, the individual signal values may represent individual data bits. The calculated authentication code (MAC) can, for example, together with its associated digital signal via the peripheral bus 103c and over the external bus 206 to the external memory 207 where, for example, an associated authentication code (MAC) is stored for each digital signal. Alternatively, it would be possible to include the calculated authentication code (MAC) together with an identifier in the bus cipher 104 save. An identifier may be, for example, a logical address or a physical address of a digital signal.

In Empfangsrichtung prüft die Busverschlüsselungseinrichtung 104, ob ein einem selektiv verschlüsselten Signal zugeordneter Authentifizierungscode (MAC) mit dem berechneten Authentifizierungscode (MAC) des entsprechenden digitalen Signals übereinstimmt. Beim Lesen aus dem externen Speicher 207 kann zusätzlich zu einem selektiv verschlüsselten Signal auch der zugehörige Authentifizierungscode (MAC) übertragen werden, so dass die Busverschlüsselungseinrichtung 104 aus dem selektiv verschlüsselten Signal einen Authentifizierungscode (MAC) berechnen kann, und diesen mit dem empfangenen Authentifizierungscode (MAC) vergleichen kann. Bei einer Abweichung zwi schen empfangenem Authentifizierungscode (MAC) und berechnetem Authentifizierungscode (MAC) kann die Busverschlüsselungseinrichtung 104 einen Fehler signalisieren, beispielsweise über die Datenleitung 103a dem Prozessor 101 mitteilen.The bus encryption device checks in the receive direction 104 whether an authentication code (MAC) associated with a selectively encrypted signal matches the calculated authentication code (MAC) of the corresponding digital signal. When reading from the external memory 207 In addition to a selectively encrypted signal, the associated authentication code (MAC) can also be transmitted, so that the bus encryption device 104 from the selectively encrypted signal can calculate an authentication code (MAC), and this can compare with the received authentication code (MAC). In the event of a deviation between the received authentication code (MAC) and the calculated authentication code (MAC), the bus encryption device 104 signal an error, for example via the data line 103a the processor 101 report.

Bei einer Speicherung der einzelnen Authentifizierungscodes (MAC) in der Busverschlüsselungseinrichtung 104 kann die Busverschlüsselungseinrichtung 104 für ein empfangenes selektiv verschlüsseltes Signal eine Zuordnung des Identifizierers, d. h. physikalischer oder logischer Adresse, zu dem gespeicherten Authentifizierungscode (MAC) ausführen, um die in der Busverschlüsselungseinrichtung 104 gespeicherte MAC mit einer über den empfangenen Datenblock berechneten MAC zu vergleichen, um bei Nichtübereinstimmung die Abweichung dem Prozessor 101 zu signalisieren. Während einer Bestimmung des MAC beispielsweise an das Verschlüsselungssignal 105 gekoppelt sein kann, d. h. bei Aktivieren der Verschlüsselung wird auch ein MAC berechnet, kann die Speicherung des MAC in der Busverschlüsselungseinrichtung 104 bzw. Übertragung des MAC über den Peripheriebus 103c abhängig von einem aktiven Authentifizierungssignal 301 sein. Auch die Überprüfung des berechneten MAC mit dem empfangenen bzw. gespeicherten MAC kann abhängig von dem Authentifizierungssignal 301 ausgeführt werden. Ein Anhängen des MAC, beispielsweise ans Ende des selektiv verschlüsselten Signals, kann der Prozessor 101 beispielsweise der Busverschlüsselungseinrichtung 104 über das Authentifizierungssignal 301 signalisieren. Beispielsweise kann der Prozessor 101 das Authentifizierungssignal 301 auf den Bus 103 ausgeben, um eine Authentifizierung der Busverschlüsselungseinrichtung 104 und der Peripherieschnittstelle 102 zu signalisieren.When storing the individual authentication codes (MAC) in the bus encryption device 104 can the bus encryption device 104 for a selectively encrypted signal received, assigning the identifier, ie physical or logical address, to the stored authentication code (MAC) to those in the bus cipher 104 stored MAC with a calculated over the received data block MAC to match the deviation to the processor in case of mismatch 101 to signal. During a determination of the MAC, for example, to the encryption signal 105 can be coupled, ie when activating the encryption, a MAC is also calculated, the storage of the MAC in the bus encryption device 104 or transmission of the MAC via the peripheral bus 103c depending on an active authentication signal 301 be. The checking of the calculated MAC with the received or stored MAC can also depend on the authentication signal 301 be executed. An attachment of the MAC, for example at the end of the selectively encrypted signal, the processor 101 for example, the bus encryption device 104 via the authentication signal 301 signal. For example, the processor 101 the authentication signal 301 on the bus 103 to provide authentication of the bus cipher 104 and the peripheral interface 102 to signal.

Im Falle des Lesens aus dem externen Speicher 207 aktiviert ein aktives Authentifizierungssignal 301 die Überprüfung des MAC in der Busverschlüsselungseinrichtung 104 sowie gegebenenfalls eine Signalisierung an den Prozessor 101 bei einem MAC-Fehler. Der Prozessor 101 kann für die Steuerung des Authentifizierungssignals 301 verantwortlich sein. Alternativ kann das Authentifizierungssignal 301 auch beispielsweise von einem weiteren Prozessor zu der Busverschlüsselungseinrichtung 104 übertragen werden.In case of reading from the external memory 207 activates an active authentication signal 301 checking the MAC in the bus cipher 104 and possibly signaling to the processor 101 with a MAC error. The processor 101 can for the control of the authentication signal 301 to be responsible. Alternatively, the authentication signal 301 also, for example, from another processor to the bus encryption device 104 be transmitted.

Der externe Speicher 207 kann beispielsweise ein NAND-Flash, ein NOR-Flash oder ein SPI-Flash sein. Alternativ kann statt des externen Speichers 207 über den externen Bus 206 auch eine weitere Peripherieschnittstelle angebunden werden, beispielsweise eine weitere Peripherieschnittstelle 102 einer weiteren Vorrichtung 100. Der externe Bus 206 kann beispielsweise ein NAND-Bus sein, der nach einem NAND-Busprotokoll Daten austauscht. Der externe Bus 206 kann auch ein NOR-Bus sein, der nach einem NOR-Busprotokoll Daten austauscht oder ein SPI-Bus, der nach einem SPI-Busprotokoll Daten austauscht. Auch kann der externe Bus 206 ausgelegt sein, um Daten gemäß einem USB-Busprotokoll, einem TCP/IP-Datenprotokoll oder einem ISO 7816 Schnittstellenprotokoll zu übertragen. Der Bus 103 kann ausgeführt sein, um Daten beispielsweise nach einem AMBA-Protokoll, einem AHB-, AXI- oder APB-Protokoll auszutauschen. Die Peripherieschnittstelle 102 ist ausgelegt, um eine Konvertierung von dem Busprotokoll des externen Busses 206 in das Busprotokoll des Busses 103 vornehmen. Beispielsweise kann der Bus 103 ein NAND-Bus, NOR-Bus, APB-Bus, AMBA-Bus, AHB-Bus oder ein AXI-Bus sein. Eine Ausführung des Busses 103 als APB-Bus (AMBA periphery bus) wird in dem folgenden Ausführungsbeispiel der 4 aufgezeigt.The external memory 207 may be, for example, a NAND flash, a NOR flash or an SPI flash. Alternatively, instead of the external memory 207 over the external bus 206 Another peripheral interface can be connected, for example, a further peripheral interface 102 another device 100 , The external bus 206 For example, it may be a NAND bus that exchanges data according to a NAND bus protocol. The external bus 206 may also be a NOR bus that exchanges data according to a NOR bus protocol or an SPI bus that exchanges data according to an SPI bus protocol. Also, the external bus can 206 be designed to receive data according to a USB bus protocol, a TCP / IP data protocol or a ISO 7816 Transfer interface protocol. The bus 103 may be configured to exchange data for example according to an AMBA protocol, an AHB, AXI or APB protocol. The peripheral interface 102 is designed to be a conversion from the bus protocol of the external bus 206 in the bus protocol of the bus 103 make. For example, the bus 103 a NAND bus, NOR bus, APB bus, AMBA bus, AHB bus or AXI bus. An execution of the bus 103 As APB bus (AMBA periphery bus) is in the following embodiment of the 4 demonstrated.

4 zeigt ein Blockschaltbild einer Vorrichtung 100 zum Verschlüsseln von auf einen Bus ausgegebenen Daten, gemäß einem weiteren Ausführungsbeispiel der Erfindung. Die Vorrichtung 100 umfasst einen Prozessor 101, eine Peripherieschnittstelle 102, einen Bus 103 und eine Busverschlüsselungseinrichtung 104. Die Funktionsweise des Prozessors 101, des Busses 103 und der Busverschlüsselungseinrichtung 104 entsprechen dem Ausführungsbeispiel gemäß 2. Der Bus 103 ist in diesem Ausführungsbeispiel als ein APB-Bus gemäß dem Industriestandard AMBA Periphery Bus = AMBA-Peripheriebus ausgeführt. Der externe Bus 206 ist in diesem Ausführungsbeispiel als ein SPI-Bus (SPI = Serielle Protokoll Schnittstelle) ausgeführt, gemäß dem Industriestandard Bus Interface SPI. Beispielsweise kann über den SPI-Bus 206 ein externes Flash angeschlossen werden. Die Busverschlüsselungseinrichtung 104 kann beispielsweise auf Sicherheitskontrollern genutzt werden, auf denen Peripheriebausteine über den Industriestandardbus APB angeschlossen werden. Die Peripherieschnittstelle 102 ist ausgelegt, um das Protokoll des Busses 103 (APB) in das Protokoll des externen Busses 206 (SPI) zu konvertieren. Die Peripherieschnittstelle 102 umfasst dazu einen „SPI-Master” Funktionsblock 402 und einen „APB-Slave” Funktionsblock 401. Eine Steuerung der Peripherieschnittstelle 102 kann beispielsweise über den Prozessor 101 erfolgen, der die beiden Steuersignale „FIFO DATA” 403 und „CMD” 404 an den „SPI-Master” Funktionsblock 402 sendet, um über den SPI-Funktionsblock 402 den APB-Funktionsblock 401 anzusteuern. Der APB-Bus 103 kann mehrere Busmaster unterstützen, so dass beispielsweise mehrere Peripherieschnittstellen 102 an den Bus 103 angeschlossen sein können. 4 shows a block diagram of a device 100 for encrypting data output on a bus, according to another embodiment of the invention. The device 100 includes a processor 101 , a peripheral interface 102 , a bus 103 and a bus encryption device 104 , The operation of the processor 101 , the bus 103 and the bus encryption device 104 correspond to the embodiment according to 2 , The bus 103 In this embodiment, it is implemented as an industry standard AMBA peripheral bus APB bus = AMBA peripheral bus. The external bus 206 is implemented in this embodiment as an SPI bus (SPI = serial protocol interface), according to the industry standard bus interface SPI. For example, over the SPI bus 206 an external flash can be connected. The bus encryption device 104 For example, it can be used on security controllers where peripheral devices are connected via the industry standard APB bus. The peripheral interface 102 is designed to the protocol of the bus 103 (APB) in the protocol of the external bus 206 (SPI) to convert. The peripheral interface 102 includes a "SPI-Master" function block 402 and an "APB slave" function block 401 , A control of the peripheral interface 102 for example, via the processor 101 the two control signals "FIFO DATA" 403 and "CMD" 404 to the "SPI-Master" function block 402 sends to the SPI function block 402 the APB function block 401 head for. The APB bus 103 can support multiple bus masters, so for example, multiple peripheral interfaces 102 to the bus 103 can be connected.

Beispielsweise besteht eine Transaktion auf dem AHB-Bus 103 aus einer Adressphase und einer anschließenden Datenphase, wobei eine Übertragung der Adresse in der Adressphase unverschlüsselt erfolgt und eine Übertragung der Daten in der anschließenden Datenphase verschlüsselt oder unverschlüsselt erfolgen kann. Neben der Möglichkeit des Anschlusses mehrerer Peripherieschnittstellen 102 kann die Busverschlüsselungseinrichtung 104 auch ausgeführt sein, um bestimmte Leitungen des Datenbusses 103a zu selektieren, um diese zu verschlüsseln, beispielsweise kann ein Teil der Leitungen des Datenbusses 103a mit einem ersten Schlüssel 205 und/oder einem ersten Initialisierungswert 204 verschlüsselt werden, ein zweiter Teil der Leitungen des Datenbusses 103a kann mit einem zweiten Schlüssel 205 und/oder einem zweiten Initialisierungswert 204 verschlüsselt werden, ein dritter Teil des Datenbusses 103a kann beispielsweise unverschlüsselt übertragen werden. Auch können sich mehrere Busverschlüsselungseinrichtungen 104 die Leitungen des Datenbusses 103a teilen. Weiterhin ist es möglich, mit einer Busverschlüsselungseinrichtung 104 Daten von mehreren Prozessoren 101 zu verschlüsseln. Die Kombinationsschaltung 202 kann individuell von Leitung zu Leitung des Datenbusses 103 unterschiedlich ausgelegt sein.For example, there is a transaction on the AHB bus 103 from an address phase and a subsequent data phase, wherein a transmission of the address in the address phase is unencrypted and a transmission of the data in the subsequent data phase can be encrypted or unencrypted. In addition to the possibility of connecting several peripheral interfaces 102 can the bus encryption device 104 also be executed to certain lines of the data bus 103a For example, to select a part of the lines of the data bus 103a with a first key 205 and / or a first initialization value 204 be encrypted, a second part of the lines of the data bus 103a can with a second key 205 and / or a second initialization value 204 be encrypted, a third part of the data bus 103a can be transmitted, for example, unencrypted. Also, there can be multiple bus encryption facilities 104 the lines of the data bus 103a share. Furthermore, it is possible with a bus encryption device 104 Data from multiple processors 101 to encrypt. The combination circuit 202 can be individually from line to line of the data bus 103 be designed differently.

Das Busverschlüsselungsmodul 201 kann ausgelegt sein, um Verschlüsselungsdaten 203 zu erzeugen unter Verwendung eines Stromchiffres. Ein Pseudozufallszahlengenerator kann beispielsweise einen additiven binären synchronen Stromchiffre erzeugen, der im Gegensatz zu Blockchiffren keine Latenzen aufweist. Eine Stromchiffrierung kann bezogen auf den Leistungsverbrauch und die Chipfläche als effizienter angesehen werden als eine Blockchiffrierung, welche einen höheren Leistungsverbrauch und eine größere Chipfläche aufweist. Ein Beispiel eines solchen symmetrischen Stromchiffres ist der Achterbahn-128/80-Chiffre, der als sicher angesehen werden kann für Rahmenlängen bis zu 244.The bus encryption module 201 can be designed to encrypt data 203 using a stream cipher. For example, a pseudorandom number generator may generate an additive binary synchronous stream cipher which, unlike block ciphers, has no latencies. A stream cipher can be considered more efficient in terms of power consumption and chip area than a block cipher which has higher power consumption and chip area. An example of such a symmetric stream cipher is the roller coaster 128/80 cipher, which can be considered safe for frame lengths up to 2 44 .

5 zeigt ein Blockschaltbild einer gesicherten Kommunikation zwischen einer Vorrichtung und einer anderen Vorrichtung über eine externe Datenverbindung gemäß einem Ausführungsbeispiel der Erfindung. Eine Vorrichtung 500, beispielsweise eine Chipkarte, umfasst eine Busverschlüsselungseinrichtung 104 und eine Peripherieschnittstelle 102. Eine andere Vorrichtung 501 umfasst eine Busverschlüsselungseinrichtung 104 und eine Peripherieschnittstelle 102. Die Peripherieschnittstellen 102 beider Vorrichtungen 500, 501 können über einen externen Bus 206, beispielsweise einen SPI-Bus, Daten übertragen. Wenn beide Peripherieschnittstellen 102 das in diesem Ausführungsbeispiel gezeigte Busformat SPI (serielles Peripherieinterface) unterstützen, ist es möglich, dass zwei Vorrichtungen Daten verschlüsselt übertragen. 5 shows a block diagram of a secure communication between a device and another device via an external data connection according to an embodiment of the invention. A device 500 , For example, a smart card, includes a bus encryption device 104 and a peripheral interface 102 , Another device 501 includes a bus encryption device 104 and a peripheral interface 102 , The peripheral interfaces 102 both devices 500 . 501 can via an external bus 206 For example, an SPI bus, data transfer. If both peripheral interfaces 102 support the SPI (Serial Peripheral Interface) bus format shown in this embodiment, it is possible for two devices to transmit data in encrypted form.

Die Prozessoren bzw. Steuerungen beider Vorrichtungen, die in dem Ausführungsbeispiel nicht explizit aufgezeichnet sind, brauchen die zu übertragenden Daten nicht notwendigerweise zu verschlüsseln. Eine Verschlüsselung kann unter Verwendung der Busverschlüsselungseinrichtungen 104 auf beiden Vorrichtungen 500, 501 erfolgen.The processors or controllers of both devices, which are not explicitly recorded in the exemplary embodiment, do not necessarily need to encrypt the data to be transmitted clauses. Encryption can be done using the bus encryption facilities 104 on both devices 500 . 501 respectively.

Das Ausführungsbeispiel gemäß 5 verdeutlicht, dass eine Busverschlüsselungseinrichtung 104 auf verschiedenen Vorrichtungen 500, 501, beispielsweise Chipkarten, Peripherie- oder Steuermodulen, eingesetzt werden kann, und nicht nur auf die Kommunikation eines Prozessors mit einem externen Speicher begrenzt ist. Auch kann eine Verbindung zwischen der Vorrichtung 500 und der anderen Vorrichtung 501 über ein gesamtes Netzwerk erfolgen und ist nicht auf einen direkten externen Bus 206 zwischen den beiden Vorrichtungen 500, 501 beschränkt. Mittels der Busverschlüsselungseinrichtungen 104 haben zwei Vorrichtungen 500, 501 die Möglichkeit, einen geheimen (verschlüsselten) Kanal aufzusetzen, um eine Sicherheitszone aufzubauen, die beide Vorrichtungen 500, 501 inklusive externem Bus 206 umfasst.The embodiment according to 5 illustrates that a bus encryption device 104 on different devices 500 . 501 For example, chip cards, peripheral or control modules can be used, and not limited only to the communication of a processor with an external memory. Also, a connection between the device 500 and the other device 501 over an entire network and is not on a direct external bus 206 between the two devices 500 . 501 limited. By means of the bus encryption facilities 104 have two devices 500 . 501 the ability to set up a secret (encrypted) channel to build a security zone, both devices 500 . 501 including external bus 206 includes.

Eine Vorrichtung 500 kann ein Chipgehäuse aufweisen, das ausgelegt ist, um den Prozessor 101, die Peripherieschnittstelle 102, den Bus 103 und die Busverschlüsselungseinrichtung 104 aufzunehmen. Alternativ können die vier Komponenten auch durch ein Gehäuse aufgenommen werden. Das heißt die Vorrichtung 500 kann sowohl in einem einzigen Chip integriert sein als sich auch in einer Multichipumgebung befinden, wobei Prozessor 101, Peripherieschnittstelle 102, Busverschlüsselungseinrichtung 104 auf verschiedenen Chips realisiert sein können, gekoppelt unter Verwendung des Busses 103.A device 500 may include a chip package configured to the processor 101 , the peripheral interface 102 , the bus 103 and the bus encryption device 104 take. Alternatively, the four components can also be accommodated by a housing. That is the device 500 can be both integrated into a single chip as well as being in a multichip environment, with processor 101 , Peripheral interface 102 , Bus encryption device 104 can be implemented on different chips, coupled using the bus 103 ,

6 zeigt ein Blockschaltbild einer Chipkarte in einem Mobiltelefon gemäß einem Ausführungsbeispiel der Erfindung. Die Chipkarte 600 umfasst einen Prozessor 101, eine Peripherieschnittstelle 102, einen ersten Bus 103, der mit dem Prozessor 101 und der Peripherieschnittstelle 102 gekoppelt ist, ein Speichermodul (SPI Flash) 207, einen zweiten Bus 206, der mit der Peripherieschnittstelle 102 und dem Speichermodul 207 gekoppelt ist, und eine Busverschlüsselungseinrichtung (BEM) 104, die zwischen dem Prozessor 101 und der Peripherieschnittstelle 102 mit dem ersten Bus 103 gekoppelt ist, und ausgelegt ist, um Daten auf dem ersten Bus 103 selektiv zu verschlüsseln oder zu entschlüsseln. Der Prozessor 101, die Busverschlüsselungseinrichtung 104, die Peripherieschnittstelle 102 und der erste Bus 103 sind entsprechend dem Ausführungsbeispiel gemäß den vorgenannten 15 ausgeführt. Der Bus 103 gemäß den vorgenannten Ausführungsbeispielen entspricht in diesem Ausführungsbeispiel dem ersten Bus 103, der den Prozessor 101 mit der Peripherieschnittstelle 102 koppelt, während der zweite Bus 206 die Peripherieschnittstelle 102 mit dem Speichermodul 207 koppelt. In diesem Ausführungsbeispiel ist der zweite Bus 206 als ein SPI-Bus ausgeführt. Das Speichermodul 207 ist als ein SPI-Flashbaustein ausgeführt. Die Peripherieschnittstelle 102, die das SPI-Busprotokoll unterstützt, weist eine Taktleitung „C”, eine Auswahlleitung „S#”, eine serielle Datensendeleitung „D” und eine serielle Datenempfangsleitung „Q” auf. Der Prozessor 101, die Peripherieschnittstelle 102, die Busverschlüsselungseinrichtung 104 und der erste Bus 103 können in einem ersten Chipgehäuse 601 untergebracht sein. Das Speichermodul 207 kann in einem zweiten Chipgehäuse 602 untergebracht sein. Erstes Chipgehäuse 601 und zweites Chipgehäuse 602 können auf einer Leiterplatine 607 angebracht sein, wobei das erste Chipgehäuse 601 mit dem zweiten Chipgehäuse 602 über den zweiten Bus 206 gekoppelt ist. Die Leiterplatine 607 kann beispielsweise auf einer SIM-Karte angebracht sein, so dass die gesamte Chipkarte 600 beispielsweise in einem Mobiltelefon 603 installiert werden kann. 6 shows a block diagram of a smart card in a mobile phone according to an embodiment of the invention. The chip card 600 includes a processor 101 , a peripheral interface 102 , a first bus 103 that with the processor 101 and the peripheral interface 102 coupled, a memory module (SPI Flash) 207 , a second bus 206 that with the peripheral interface 102 and the memory module 207 coupled, and a bus encryption device (BEM) 104 that between the processor 101 and the peripheral interface 102 with the first bus 103 is coupled, and is designed to receive data on the first bus 103 selectively encrypt or decrypt. The processor 101 , the bus encryption device 104 , the peripheral interface 102 and the first bus 103 are according to the embodiment of the aforementioned 1 - 5 executed. The bus 103 According to the aforementioned embodiments corresponds to the first bus in this embodiment 103 who is the processor 101 with the peripheral interface 102 coupled while the second bus 206 the peripheral interface 102 with the memory module 207 coupled. In this embodiment, the second bus is 206 as an SPI bus. The memory module 207 is executed as an SPI flash device. The peripheral interface 102 , which supports the SPI bus protocol, has a clock line "C", a select line "S #", a serial data transmit line "D" and a serial data receive line "Q". The processor 101 , the peripheral interface 102 , the bus encryption device 104 and the first bus 103 can in a first chip housing 601 be housed. The memory module 207 can in a second chip housing 602 be housed. First chip housing 601 and second chip housing 602 can on a printed circuit board 607 be attached, wherein the first chip housing 601 with the second chip housing 602 over the second bus 206 is coupled. The printed circuit board 607 For example, it may be mounted on a SIM card so that the entire smart card 600 for example in a mobile phone 603 can be installed.

In diesem Ausführungsbeispiel weist die Chipkarte 600 eine zweite Peripherieschnittstelle 608 auf, die über den ersten Bus 103 mit dem Prozessor 101 gekoppelt ist. Die zweite Peripherieschnittstelle 608 ist ausgelegt, um Daten von dem Prozessor 101 auf einen dritten Bus 606 auszugeben, bzw. um Daten von dem dritten Bus 606 zu empfangen und auf den ersten Bus 103 auszugeben. Die zweite Peripherieschnittstelle 608 kann ferner eine Anpassung der Daten auf dem ersten Bus 103 an das Datenformat des dritten Busses 606 vornehmen bzw. eine Anpassung der Daten auf dem dritten Bus 606 an das Format der Daten auf dem ersten Bus 103. Die Busverschlüsselungseinrichtung 104 ist ausgebildet, um die auf den dritten Bus 606 auszugebenden Daten abhängig von einem weiteren Verschlüsselungssignal selektiv zu verschlüsseln und um die von dem dritten Bus 606 zu empfangenen Daten abhängig von dem weiteren Verschlüsselungssignal selektiv zu entschlüsseln.In this embodiment, the smart card 600 a second peripheral interface 608 on that over the first bus 103 with the processor 101 is coupled. The second peripheral interface 608 is designed to receive data from the processor 101 on a third bus 606 or data from the third bus 606 to receive and on the first bus 103 issue. The second peripheral interface 608 Further, an adaptation of the data on the first bus 103 to the data format of the third bus 606 make or an adjustment of the data on the third bus 606 to the format of the data on the first bus 103 , The bus encryption device 104 is trained to be on the third bus 606 The data to be output is to be selectively encrypted depending on another encryption signal and that of the third bus 606 to selectively decrypt data received depending on the further encryption signal.

Die Ver- und Entschlüsselung der Daten, die über die zweite Peripherieschnittstelle 608 zu übertragen sind, kann unabhängig sein von der Ver- und Entschlüsselung der Daten, die über die Peripherieschnittstelle 102 zu übertragen sind. Das Verschlüsselungssignal 105 und das weitere Verschlüsselungssignal können unterschiedliche Signale sein, es ist jedoch auch möglich, dass Verschlüsselungssignal 105 und weiteres Verschlüsselungssignal das gleiche Signal sind. Die zweite Peripherieschnittstelle 608 ist ausgelegt, um die auf den dritten Bus 606 auszugebenden Daten auf den dritten Bus 606 auszugeben und um die von dem dritten Bus 606 zu empfangenen Daten auf den ersten Bus 103 auszugeben. Der dritte Bus 606 kann beispielsweise ein USB-Bus oder ein ISO 7816-Bus sein. Mittels des dritten Busses 606 wird in diesem Ausführungsbeispiel die Chipkarte 600 an einen Mikrokontroller 604 gekoppelt, der die Steuerung für ein zelluläres Modem umfasst. Neben der Steuerung für das zelluläre Modem befindet sich auf dem Mobiltelefon 603 ferner ein Mikroprozessor 605, der die Anwendungssoftware umfasst. Der Mikrokontroller 604 für das zelluläre Modem kann beispielsweise für seine Ablaufsteuerung personenspezifische Daten benötigen, die auf der Chipkarte 600 gespeichert sind.The encryption and decryption of the data via the second peripheral interface 608 can be independent of the encryption and decryption of the data via the peripheral interface 102 to be transferred. The encryption signal 105 and the further encryption signal may be different signals, but it is also possible that encryption signal 105 and another encryption signal are the same signal. The second peripheral interface 608 is designed to be on the third bus 606 data to be output on the third bus 606 and that of the third bus 606 data received on the first bus 103 issue. The third bus 606 For example, a USB bus or a ISO 7816 bus be. By means of the third bus 606 In this embodiment, the smart card 600 to a microcontroller 604 coupled, the control for a cellular Mo includes. In addition to the control for the cellular modem is located on the mobile phone 603 also a microprocessor 605 that includes the application software. The microcontroller 604 for the cellular modem may need, for example, for its flow control person-specific data on the smart card 600 are stored.

Mittels der Busverschlüsselungseinrichtung 104 ist es möglich, neben dem zweiten Bus 206, der den Zugriff des Prozessors 101 auf den SPI-Flashbaustein 207 ermöglicht, auch den dritten Bus 606, der die Kommunikation zwischen der Chipkarte 600 und dem Mikrokontroller 604 ermöglicht, in die Sicherheitszone mit einzubeziehen. Damit wird zum einen eine Kommunikation von Chip zu Chip, d. h. von dem Prozessor 101, der sich in dem ersten Chipgehäuse 601 befindet, zu dem SPI-Flashbaustein 207, der sich in dem zweiten Chipgehäuse 602 befindet, unter Einhaltung der Datensicherheit und Datenintegrität ermöglicht. Zum anderen wird eine sichere Kommunikation unter Einhaltung der Datenintegrität auch ermöglicht über einen dritten Bus 606, der beispielsweise zwei Chips miteinander verbindet, die sich auf unterschiedlichen Leiterplatinen befinden. Der Mikrokontroller 604 umfasst hierbei ebenfalls eine Busverschlüsselungseinrichtung 104, um die über den dritten Bus 606 empfangenen bzw. gesendeten Daten zu entschlüsseln bzw. zu verschlüsseln, und eine zweite Peripherieschnittstelle 608. Die zweite Peripherieschnittstelle 608 weist in diesem Ausführungsbeispiel zwei Datenleitungen „D+” und „D–” auf, um Daten zu senden und zu empfangen. Sie weist weiterhin eine Taktleitung „clk”, eine Rücksetzleitung „rst”, eine positive Versorgungsspannungsleitung „vdd”, eine Bezugspotentialleitung „gnd”, eine erste Steuerleitung „rfu” und eine zweite Steuerleitung „io” auf. Bis auf die erste Steuerleitung „rfu” sind alle Leitungen auf den dritten Bus 606 heraus geführt, um die Kopplung des dritten Busses 606 an den Mikrokontroller 604 für das zelluläre Modem zu bewirken.By means of the bus encryption device 104 it is possible next to the second bus 206 that access the processor 101 on the SPI flash device 207 also allows the third bus 606 that the communication between the smart card 600 and the microcontroller 604 allows to include in the security zone. Thus, on the one hand a communication from chip to chip, ie from the processor 101 that is in the first chip housing 601 located to the SPI flash device 207 that is in the second chip housing 602 is located, allowing for data security and data integrity. On the other hand, secure communication while maintaining data integrity is also possible via a third bus 606 For example, it connects two chips that are on different printed circuit boards. The microcontroller 604 here also includes a bus encryption device 104 to the over the third bus 606 decrypt or encrypt data received or sent, and a second peripheral interface 608 , The second peripheral interface 608 In this embodiment, has two data lines "D +" and "D-" to send and receive data. It also has a clock line "clk", a reset line "rst", a positive supply voltage line "vdd", a reference potential line "gnd", a first control line "rfu" and a second control line "io". Except for the first control line "rfu" all lines are on the third bus 606 led out to the coupling of the third bus 606 to the microcontroller 604 to effect for the cellular modem.

Die Chipkarte 600 kann beispielsweise als eine HCSIM-Karte ausgeführt sein, sie kann auch als einfache SIM-Karte ausgeführt sein. Die Chipkarte 600 kann beispielsweise ein Sicherheitsdongle sein, beispielsweise als USB-Stick ausgeführt. Die Chipkarte 600 kann Teil eines Ausweises sein, um sensible Daten zu speichern, beispielsweise ein Teil einer Kreditkarte, eines Personalausweises, einer Gesundheitskarte, eines Firmenausweises, einer Geldkarte oder eines Zugangsberechti gungsausweises. Mit der Chipkarte 600 kann eine transparente SPI-Flashverschlüsselung gewährleistet werden. Die Speicherverschlüsselung ist sehr sicher und benötigt zur Implementierung nur eine kleine zusätzliche Chipfläche bedingt durch die Busverschlüsselungseinrichtung 104. Die Busverschlüsselungseinrichtung 104 kann beispielsweise integriert werden, um mit anderen (zukünftigen) externen Busperipheriegeräten, beispielsweise des APB-Standards, zusammenzuarbeiten. Die Verschlüsselung kann ohne eine zusätzliche Interaktion des Nutzers erfolgen. Die Busverschlüsselungseinrichtung 104 ist portierbar, sie kann auf verschiedenen (APB-)Peripheriegeräten eingesetzt werden und spart eine zeitaufwändige Verschlüsselung von Daten auf dem externen Flashbaustein, wie z. B. mittels DES-(data encryption standard bzw. Datenverschlüsselungsstandard-) oder AES-(advanced encryption standard bzw. fortgeschrittener Verschlüsselungsstandard-)Verfahren.The chip card 600 For example, it may be implemented as an HCSIM card, it may also be implemented as a simple SIM card. The chip card 600 may for example be a security dongle, for example, designed as a USB stick. The chip card 600 may be part of an ID card to store sensitive data, such as part of a credit card, ID card, health card, company ID card, debit card, or passport. With the chip card 600 Transparent SPI Flash encryption can be guaranteed. The memory encryption is very secure and requires only a small additional chip area for implementation due to the bus cipher 104 , The bus encryption device 104 For example, it can be integrated to work with other (future) external bus peripherals, such as the APB standard. The encryption can be done without any additional interaction of the user. The bus encryption device 104 It is portable, it can be used on various (APB) peripherals and saves time-consuming encryption of data on the external flash device, such. By means of DES (Data Encryption Standard) or AES (Advanced Encryption Standard) methods.

7 zeigt ein Flussdiagramm eines Verfahrens 704 zum Verschlüsseln von auf einen Bus ausgegebenen Daten, wobei der Bus einen Prozessor mit einer Peripherieschnittstelle koppelt, gemäß einem Ausführungsbeispiel der Erfindung. Das Verfahren 704 weist die drei Schritte 704a, 704b und 704c auf: „Ausgeben von digitalen Signalen auf den Bus” 704a; „Selektives Verschlüsseln der auf den Bus ausgegebenen digitalen Signale abhängig von einem den digitalen Signalen zugeordneten Verschlüsselungssignal” 704b; und „Ausgabe der selektiv verschlüsselten digitalen Signale nach extern” 704c. 7 shows a flowchart of a method 704 for encrypting data outputted on a bus, the bus coupling a processor to a peripheral interface according to an embodiment of the invention. The procedure 704 points the three steps 704a . 704b and 704c on: "Outputting digital signals to the bus" 704a ; "Selective Encryption of the Digital Signals Output on the Bus Dependent on an Encryption Signal Associated with the Digital Signals" 704b ; and "Output of selectively encrypted digital signals to external" 704c ,

7a zeigt eine Befehlssequenz eines Verfahrens zum Verschlüsseln und Entschlüsseln von auf einen Bus ausgegebenen Daten, gemäß einem Ausführungsbeispiel der Erfindung. Im oberen Teil der 7a ist ein Ausführungsbeispiel des von dem Prozessor 101 zu übertragenden Datenstroms 750 bzw. von dem Prozessor 101 zu empfangenen Datenstroms 760 aufgezeigt. Der zu übertragende Datenstrom 750 weist ein Kommandofeld 751 „CMD”, ein Adressfeld 752 „ADR” und ein Datenblockfeld 753 „DATA” auf. Der zu empfangene Datenstrom 760 weist ebenfalls ein Kommandofeld 754 „CMD”, ein Adressfeld 755 „ADR” und ein Datenblockfeld 756 „DATA” auf. Dabei sind in diesem Ausführungsbeispiel nur die Datenblöcke 753, 756 zu verschlüsseln, nicht jedoch die Kommandoblöcke 751, 754 und die Adressblöcke 752, 755. 7a shows a command sequence of a method for encrypting and decrypting data outputted on a bus according to an embodiment of the invention. In the upper part of the 7a is an embodiment of the processor 101 to be transmitted data stream 750 or from the processor 101 to received data stream 760 demonstrated. The data stream to be transmitted 750 has a command field 751 "CMD", an address field 752 "ADR" and a data block field 753 "DATA" on. The data stream to be received 760 also has a command box 754 "CMD", an address field 755 "ADR" and a data block field 756 "DATA" on. In this case, in this embodiment, only the data blocks 753 . 756 to encrypt, but not the command blocks 751 . 754 and the address blocks 752 . 755 ,

Ein Verfahren 700 zum Verschlüsseln von auf einen Bus ausgegebenen Daten weist folgende Schritte auf. In einem ersten Schritt 710 wird ein Schlüssel 205 „K” bereitgestellt. In einem zweiten Schritt 711 wird ein Initialisierungswert „IV” 204 in Abhängigkeit von einer logischen Adressen „LA” bereitgestellt. In einem dritten Schritt 712 wird ein Steuerbefehl 751 „CMD” auf den Bus 103 ausgegeben. In einem vierten Schritt 713 wird eine physikalische Adresse „PA”, die zuvor der logischen Adresse „LA” zugeordnet wurde, auf den Bus 103 ausgegeben. In einem fünften Schritt 714 wird die Busverschlüsselung aktiviert, um unter Verwendung des Schlüssels 205 und des Initialisierungswertes 204 auf den Bus 103 ausgegebene Daten zu verschlüsseln. In einem sechsten Schritt 715 wird ein Datenblock 753, der eine Mehrzahl von Datenworten D[1], D[2], ..., D[n] umfasst, auf den Bus 103 ausgegeben. In einem siebten Schritt 716 wird die Busverschlüsselung deaktiviert. Dadurch, dass die Busverschlüsselung erst vor Ausgabe des Datenblocks 753 aktiviert wird, mittels des Kommandos im fünften Schritt 714 und nach Ausgabe des Datenblocks 753 mittels des Kommandos im siebten Schritt 716 wieder deaktiviert wird, bewirkt das Verfahren 700, dass nur der Datenblock 753 verschlüsselt wird, nicht jedoch der Kommandoblock 751 und der Adressblock 752.A procedure 700 The following steps are used to encrypt data output on a bus. In a first step 710 becomes a key 205 Provided "K". In a second step 711 is an initialization value "IV" 204 provided as a function of a logical address "LA". In a third step 712 becomes a control command 751 "CMD" on the bus 103 output. In a fourth step 713 For example, a physical address "PA" previously assigned to the logical address "LA" is put onto the bus 103 output. In a fifth step 714 Bus Encryption is enabled to use the key 205 and the initialization value 204 on the bus 103 encrypted data. In a sixth step 715 becomes a data block 753 , of the a plurality of data words D [1], D [2], ..., D [n] on the bus 103 output. In a seventh step 716 the bus encryption is deactivated. As a result, the bus encryption only before the output of the data block 753 is activated by means of the command in the fifth step 714 and after outputting the data block 753 by means of the command in the seventh step 716 is deactivated again, the procedure causes 700 that only the data block 753 is encrypted, but not the command block 751 and the address block 752 ,

Der Schlüssel 205 „K” kann ein geheimer Schlüssel sein, der beispielsweise nur ein einziges Mal gesetzt werden braucht, beispielsweise beim Start der Vorrichtung 100. Der erste Schritt 710 des Verfahrens 700 braucht somit nicht für jeden Datenblock 753 ausgeführt zu werden, es reicht aus, diesen ersten Schritt 710 nur ein einziges Mal beim Start der Vor richtung 100 auszuführen. Dagegen kann das Setzen des Initialisierungswertes 204 in dem zweiten Schritt 711 für jeden Datenblock 753 separat ausgeführt werden, so dass jeder Datenblock 753 mit einem unterschiedlichen Anfangszustand des Pseudozufallszahlengenerators 201 verschlüsselt werden kann. Eine unerwünschte Kompromittierung eines Datenblockes 753 führt nicht automatisch zu einer Kompromittierung eines weiteren Datenblockes, da ein unerwünschtes Entschlüsseln eines Datenblockes keine Auswirkungen auf den nächsten Datenblock hat.The key 205 "K" may be a secret key that needs to be set only once, for example, when starting the device 100 , The first step 710 of the procedure 700 thus does not need for each data block 753 To be carried out, it is sufficient, this first step 710 only once at the start of the device 100 perform. On the other hand, setting the initialization value 204 in the second step 711 for each data block 753 run separately so that each data block 753 with a different initial state of the pseudo-random number generator 201 can be encrypted. An unwanted compromise of a data block 753 does not automatically compromise another block of data because unwanted decryption of one block of data will not affect the next block of data.

Ein Verfahren 701 zum Entschlüsseln von auf einem Bus empfangenen Daten weist die folgenden Schritte auf. In einem ersten Schritt 720 wird ein Schlüssel 205 „K” bereitgestellt. In einem zweiten Schritt 721 wird ein Initialisierungswert „IV” 204 in Abhängigkeit von einer logischen Adresse „LA” bereitgestellt. In einem dritten Schritt 722 wird ein Steuerbefehl 754 „CMD” von dem Bus 103 empfangen. In einem vierten Schritt 723 wird eine physikalische Adresse „PA” von dem Bus 103 empfangen, die einer logischen Adresse „LA” zugeordnet werden kann. Über die logische Adresse bzw. die physikalische Adresse kann ein Datenblock 756 identifiziert werden. In einem fünften Schritt 724 wird eine Busentschlüsselung aktiviert, um die von dem Bus 103 empfangenen Daten unter Verwendung des Schlüssels 205 und des Initialisierungswertes 204 zu entschlüsseln, wobei der Initialisierungswert 204 dem Datenblock 756 zugeordnet ist, beispielsweise zugeordnet über die logische Adresse oder die physikalische Adresse. In einem sechsten Schritt 725 wird ein Datenblock 756 empfangen, der eine Mehrzahl von Datenworten D[1], D[2], ..., D[n] umfasst. Dem Datenblock 756 ist eine logische Adresse „LA” bzw. eine physikalische Adresse „PA” zugeordnet. In einem siebten Schritt 726 wird die Busentschlüsselung deaktiviert. Mit dem Verfahren 701 zum Entschlüsseln von auf einem Bus empfangenen Daten ist gewährleistet, dass nur der empfangene Datenblock 756 entschlüsselt wird, nicht jedoch der Kommandoblock 754 bzw. der Adressblock 755.A procedure 701 To decrypt data received on a bus has the following steps. In a first step 720 becomes a key 205 Provided "K". In a second step 721 is an initialization value "IV" 204 provided as a function of a logical address "LA". In a third step 722 becomes a control command 754 "CMD" from the bus 103 receive. In a fourth step 723 becomes a physical address "PA" from the bus 103 received, which can be assigned to a logical address "LA". About the logical address or the physical address, a data block 756 be identified. In a fifth step 724 A bus decryption is activated to the one from the bus 103 received data using the key 205 and the initialization value 204 to decrypt, with the initialization value 204 the data block 756 is assigned, for example, assigned via the logical address or the physical address. In a sixth step 725 becomes a data block 756 received comprising a plurality of data words D [1], D [2], ..., D [n]. The data block 756 is assigned a logical address "LA" or a physical address "PA". In a seventh step 726 the bus decryption is deactivated. With the procedure 701 To decrypt data received on a bus ensures that only the received data block 756 is decrypted, but not the command block 754 or the address block 755 ,

7b zeigt eine Befehlssequenz eines Verfahrens zum Verschlüsseln und Entschlüsseln von auf einen Bus ausgegebenen Daten gemäß einem weiteren Ausführungsbeispiel der Erfindung. Im Unterschied zu dem Verfahren 700 gemäß dem Ausführungsbeispiel der 7a ist das Verfahren 702 zum Verschlüsseln von auf einem Bus empfangenen Daten bzw. das Verfahren 703 zum Entschlüsseln von auf einem Bus empfangenen Daten um eine Verarbeitung eines Datenblockauthentifizierungscodes (MAC) 757, 758 erweitert. Der Datenblockauthentifizierungscode 757 kann beispielsweise in dem zu übertragenden Datenstrom 750 am Ende des Datenblocks 753 unverschlüsselt übertragen werden. Auch ist es denkbar, dass der MAC-Block 757 an einer anderen Stelle innerhalb des zu übertragenden Datenstroms 750 angebracht ist. 7b shows a command sequence of a method for encrypting and decrypting data outputted on a bus according to another embodiment of the invention. Unlike the procedure 700 according to the embodiment of the 7a is the procedure 702 for encrypting data received on a bus or the method 703 for decrypting data received on a bus by processing a data block authentication code (MAC) 757 . 758 extended. The data block authentication code 757 can, for example, in the data stream to be transmitted 750 at the end of the data block 753 be transmitted unencrypted. Also, it is conceivable that the MAC block 757 at another location within the data stream to be transmitted 750 is appropriate.

Das Verfahren 702 zum Verschlüsseln von auf einem Bus empfangenen Daten umfasst einen ersten Schritt 710, einen zweiten Schritt 711, einen dritten Schritt 712, einen vierten Schritt 713 und einen fünften Schritt 714 gemäß dem Ausführungsbeispiel der 7a. Nach dem fünften Schritt 714 ist ein zusätzlicher Schritt 730 eingefügt, um einen Datenblockauthentifizierungscode 757 für den auszugebenden Datenblock 753 zu bestimmen. Es folgen der sechste Schritt 715 und der siebte Schritt 716 gemäß dem Ausführungsbeispiel der 7a. In einem zusätzlichen Schritt 731 wird der bestimmte Datenblockauthentifizierungscode 757 angrenzend an den Datenblock 753 auf den Bus 103 ausgegeben. Es ist anzumerken, dass die unterschiedlichen Schritte nicht strikt aufeinander folgend ausgeführt sein müssen, es ist auch möglich, die Reihenfolge der Schritte zu vertauschen.The procedure 702 for encrypting data received on a bus includes a first step 710 , a second step 711 , a third step 712 , a fourth step 713 and a fifth step 714 according to the embodiment of the 7a , After the fifth step 714 is an extra step 730 inserted to a data block authentication code 757 for the data block to be output 753 to determine. This is followed by the sixth step 715 and the seventh step 716 according to the embodiment of the 7a , In an additional step 731 becomes the particular data block authentication code 757 adjacent to the data block 753 on the bus 103 output. It should be noted that the different steps need not be strictly consecutive, it is also possible to reverse the order of the steps.

Das Verfahren 703 zum Entschlüsseln von auf einem Bus empfangenen Daten umfasst den ersten Schritt 720, den zweiten Schritt 721, den dritten Schritt 723, den vierten Schritt 723 und den fünften Schritt 725 gemäß dem Ausführungsbeispiel der 7a. In einem zusätzlichen Schritt 740 wird ein Datenblo ckauthentifizierungscode 758 für den empfangenen Datenblock 756 bestimmt. Es folgen der sechste Schritt 725 und der siebte Schritt 726 gemäß dem Ausführungsbeispiel der 7a. In einem zusätzlichen Schritt 741 wird ein dem empfangenen Datenblock 756 zugeordneter Datenblockauthentifizierungscode 758 von dem Bus 103 empfangen und in einem weiteren zusätzlichen Schritt 742 wird der in dem Schritt 740 bestimmte Datenblockauthentifizierungscode 758 mit dem in dem Schritt 741 empfangenen Datenblockauthentifizierungscode 758 verglichen und bei Nichtübereinstimmung ein Fehler signalisiert, beispielsweise über die Datenleitungen 103a oder die Statusleitungen 103b des Busses 103 an den Prozessor 101. Die Reihenfolge der Schritte gemäß dem Verfahren 703 ist auch vertauschbar, auch können mehrere Schritte zu einem einzigen Schritt zusammengelegt werden bzw. ein Schritt in mehrere Einzelschritte aufgeteilt werden.The procedure 703 for decrypting data received on a bus includes the first step 720 , the second step 721 , the third step 723 , the fourth step 723 and the fifth step 725 according to the embodiment of the 7a , In an additional step 740 becomes a data block authentication code 758 for the received data block 756 certainly. This is followed by the sixth step 725 and the seventh step 726 according to the embodiment of the 7a , In an additional step 741 becomes a received data block 756 associated data block authentication code 758 from the bus 103 received and in another additional step 742 will be the one in the step 740 certain data block authentication code 758 with that in the step 741 received data block authentication code 758 compared and signaled a mismatch an error, for example via the data lines 103a or the status lines 103b of the bus 103 to the processor 101 , The order of the steps according to the method 703 is also interchangeable, even several steps can be combined into a single step or a step be divided into several steps.

Mit der Befehlssequenz bzw. dem Verfahren 703 kann der Prozessor 101 die Peripherieschnittstelle 102 und die Busverschlüsselungseinrichtung 104 ansteuern. Beispielsweise ist eine Ansteuerung der Peripherieschnittstelle 102 mittels des dritten Schrittes 722, des vierten Schrittes 723, des sechsten Schrittes 725 und des zusätzlichen Schrittes 741 möglich. Eine Ansteuerung der Busverschlüsselungseinrichtung 104 kann mittels des ersten Schrittes 720, des zweiten Schrittes 721, des fünften Schrittes 724, des zusätzlichen Schrittes 740, des siebten Schrittes 726 und des weiteren zusätzlichen Schritts 742 bewirkt werden.With the command sequence or procedure 703 can the processor 101 the peripheral interface 102 and the bus encryption device 104 drive. For example, a control of the peripheral interface 102 by means of the third step 722 , the fourth step 723 , the sixth step 725 and the additional step 741 possible. A control of the bus encryption device 104 can by means of the first step 720 , the second step 721 , the fifth step 724 , the additional step 740 , the seventh step 726 and the additional step 742 be effected.

Die Befehlssequenz kann beispielsweise so ausgeführt sein, dass in einem ersten Abschnitt die Einrichtung, die mit dem Steuerbefehl angesprochen werden soll, angegeben ist, beispielsweise „BEM” für die Busverschlüsselungseinrichtung 104 und „SPI” für die Peripherieschnittstelle 102. In einem zweiten Abschnitt der Befehlssequenz kann der individuelle Befehl angegeben werden gefolgt von einem hinter dem Befehl in Klammern aufgeführten Parameter, der beispielsweise einen Befehl, eine Adresse oder ein Datenwort angibt. Der erste Abschnitt des Befehls kann ausgeführt sein, um verschiedene Busprotokolle anzuzeigen, beispielsweise mittels eines „SPI”, das serielle Protokollinterface, oder mittels eines „APB”, das AMBA-Peripherieinterface.For example, the command sequence may be implemented such that in a first section the device to be addressed by the control command is indicated, for example "BEM" for the bus encryption device 104 and "SPI" for the peripheral interface 102 , In a second section of the command sequence, the individual command may be indicated followed by a parenthetical parameter after the command indicating, for example, a command, an address or a data word. The first portion of the instruction may be executed to display various bus protocols, for example by means of an "SPI", the serial protocol interface, or by means of an "APB", the AMBA peripheral interface.

Abhängig von den Gegebenheiten können die erfindungsgemäßen Verfahren 700, 701, 702, 703, 704 in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. 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.Depending on the circumstances, the inventive method 700 . 701 . 702 . 703 . 704 be implemented in hardware or in software. The implementation may be on a digital storage medium, in particular a floppy disk or CD with electronically readable control signals, which may interact with a programmable computer system such that the corresponding method is executed. In general, the invention thus also consists in a computer program product with program code stored on a machine-readable carrier for carrying out the method according to the invention when the computer program product runs on a computer. In other words, the invention can thus be realized as a computer program with a program code for carrying out the method when the computer program runs on a computer.

Einige Ausführungsbeispiele der Erfindung schaffen eine transparente Verschlüsselung von externen Speichern bzw. Flash-Bausteinen. Ausführungsbeispiele der Erfindung schaffen einen sicheren Prozessor, der für die Abarbeitung eines Programms eine sichere Umgebung zur Verfügung stellt, die die Vertraulichkeit der Daten sowie die Integrität der Daten gewährleistet. Mit Ausführungsbeispielen der Erfindung kann die Sicherheitsdomäne (secure domain) eines Sicherheitsprozessors auf einen externen unsicheren Speicher erweitert werden. Ausführungsbeispiele der Erfindung können eingesetzt werden, wenn ein Server in einer sicheren Umgebung läuft und auf einem externen unsicheren Massenspeicher Daten speichern soll, deren Vertraulichkeit und Integrität sichergestellt werden sollen, beispielsweise ein NAS (network attached storage bzw. netzwerkunterstützter Speicher). Ausführungsbei spiele der Erfindung schaffen sichere Chipkarten, die um einen externen Speicher erweitert werden können, beispielsweise so genannte High Capacity SIM-Karten, HCSIM.Some Embodiments of the invention provide a transparent Encryption of external memories or flash devices. Embodiments of the invention provide a secure processor, a safe environment for the execution of a program provides the confidentiality of the data as well as the integrity of the data. With embodiments of the invention, the security domain (secure domain) of a security processor to an external insecure Memory to be expanded. Embodiments of the invention can be used when a server is in a secure Environment is running and on an external insecure mass storage Store data, their confidentiality and integrity should be ensured, for example, a NAS (network attached storage or network-supported storage). Ausführungsbei games of Invention create secure smart cards that have an external memory can be extended, for example, so-called high Capacity SIM cards, HCSIM.

Weitere Ausführungsbeispiele der Erfindung können eine klassische Chipkarte aufweisen, die einen Sicherheitskontroller (security controller) enthält, der beispielsweise neben einer CPU, Kommunikationsperipherieschnittstellen, RAM, ROM auch nichtflüchtigen Speicher (NVM) auf einem einzigen Chip enthält. Dieser Sicherheitskontroller ist typischerweise mit speziellen Maßnahmen gegen physikalische Angriffe, Seitenkanalangriffe und Protokollangriffe gegen Manipulation und Ausspähen gesichert, stellt also für die darauf ausgeführten Programme eine Secure Domain bzw. eine Sicherheitsdomäne zur Verfügung. Der Sicherheitskontroller kann beispielsweise um einen externen großen Speicher erweitert werden, z. B. einen Flashbaustein, der über eine Busverschlüsselungseinrichtung die Vertraulichkeit und Integrität der extern gespeicherten Daten zu jedem Zeitpunkt sicherstellt.Further Embodiments of the invention may be a classic chip card, which has a security controller (security controller), for example, next to a CPU, communication peripheral interfaces, RAM, ROM too nonvolatile memory (NVM) on a single chip. This safety controller is typically with special measures against physical attacks, side channel attacks and protocol attacks against Secured manipulation and spying, so for the programs running on it have a secure domain resp. a security domain available. The security controller can for example be extended by an external large memory be, for. B. a flash module, via a bus encryption device the confidentiality and integrity of the externally stored Ensures data at all times.

Ein Ausführungsbeispiel der Erfindung ist in 6 gezeigt, bei der ein Flashbaustein über ein SPI-Interface an einen Sicherheitskontroller angeschlossen ist. Der HCSIM-Baustein kommuniziert im Ausführungsbeispiel z. B. über eine ISO 7816 konforme Schnittstelle oder eine USB-Schnittstelle, z. B. ein Interchip USB, mit einem Terminal in einem Mobiltelefon. Weitere Ausführungsbeispiele gemäß der Erfindung sind z. B. Sicherheitsdongles, die z. B. auf einem USB-Stick beruhen. Bei diesen kann ein Sicherheitskontroller, welcher Interfaces für USB und zu einem Flashbaustein enthält, eingesetzt werden.An embodiment of the invention is in 6 in which a flash module is connected to a safety controller via an SPI interface. The HCSIM module communicates in the embodiment z. B. over a ISO 7816 compliant interface or a USB interface, eg. B. an Interchip USB, with a terminal in a mobile phone. Further embodiments according to the invention are z. B. security donggles, the z. B. based on a USB stick. In these, a security controller, which contains interfaces for USB and a flash module, can be used.

Ausführungsbeispiele gemäß der Erfindung weisen eine Busverchlüsselungseinrichtung auf, welche die verschiedensten Verschlüsselungsverfahren realisieren kann. Beispielsweise die Berechnung einer kryptographischen Hashsumme über die Daten, die auf dem externen unsicheren Speicher gespeichert werden. Die Hashsumme kann auf der Busverschlüsselungseinrichtung gespeichert werden zusammen mit einer Nonce, beispielsweise einem Zähler, Zeitstempel, Zufallszahl etc., um so genannte Replay-Attacken (Wiederholungsattacken) abzuwehren. Um den lesenden und schreibenden Zugriff bzw. die Prüfung und Berechnung der Hashsumme wesentlich zu beschleunigen, können die Daten in kleine Blöcke partitioniert und jeweils Hashwerte über Datenblock, Adresse des Datenblocks und eine Nonce berechnet werden. Dazu können beispielsweise Tabellen von Hashwerten, Nonces und Blockadressen auf der Busverschlüsselungseinrichtung gespeichert werden. Die Berechnung der Hashsummen und Nonces kann geschickt in Baumstrukturen organisiert werden, um den Aufwand beim Aktualisieren von Hashwerten und Nonces zu minimieren, sowie um die Menge der Daten, die auf der Busverschlüsselungseinrichtung gespeichert werden, zu reduzieren.Embodiments according to the invention have a bus encryption device which can realize a wide variety of encryption methods. For example, the calculation of a cryptographic hash sum over the data stored on the external non-secure memory. The hash sum may be stored on the bus cipher together with a nonce, such as a counter, timestamp, random number, etc., to ward off so-called replay attacks (repetitive attacks). To significantly accelerate the read and write access and / or the calculation of the hash sum, the data can be partitioned into small blocks and hash values calculated via data block, address of the data block and a nonce. For this purpose, for example, tables of hash values, nonces and block addresses can be stored on the bus encryption device. The calculation of hash sums and nonces can be cleverly organized into tree structures to minimize the overhead of updating hashes and nonces, as well as to reduce the amount of data stored on the bus cipher.

Alternativ können bei Ausführungsbeispielen gemäß der Erfindung MACs (message authentication codes, Nachrichtenauthentifizierungscodes) alternativ oder zusätzlich zu den Hashsummen verwendet werden. Zum Beispiel kann ein MAC von Datenblock, Adresse, Nonce für jeden extern gespeicherten Datenblock berechnet werden und in Tabellen auf der Busverschlüsselungseinrichtung abgelegt werden. Alternativ können inkrementelle MACs über hierarchisch organisierte Strukturen berechnet werden, um den Speicheraufwand auf der Busverschlüsselungseinrichtung stark zu reduzieren. Ausführungsbeispiele gemäß der Erfindung schaffen eine Authentifizierung mittels MAC-Berechnung und eine Sicherung der Vertraulichkeit durch eine zusätzliche Verschlüsselung der extern gespeicherten Daten durch die Busverschlüsselungseinrichtung. Die kryptographischen Berechnungen, d. h. MAC- bzw. Hashwert sowie das Aktualisieren hierarchischer Strukturen können effizient auf der Busverschlüsselungseinrichtung ausgeführt werden, so dass bei Ausführungsbeispielen gemäß der Erfindung beim Lesen bzw. Schreiben der Daten und der damit verbundenen Prüfung bzw. Neuberechnung der MACs oder Hashwerte die üblicherweise große Latenzzeit aufgrund der sukzessiven und parallelen Berechnung in der Busverschlüsselungseinrichtung aufgehoben werden kann. Zum Schreiben bzw. Lesen der Daten ist bei Ausführungsbeispielen gemäß der Erfindung keine zusätzliche Latenzzeit erforderlich.alternative can in embodiments according to the Invention MACs (Message Authentication Codes) alternatively or in addition to the hash sums. For example, a MAC of data block, address, nonce for each externally stored data block are calculated and in tables be stored on the bus encryption device. alternative can incremental MACs via hierarchically organized Structures are calculated to the memory overhead on the bus encryption device to reduce greatly. Embodiments according to the Invention provide authentication by means of MAC calculation and a secrecy of confidentiality by an additional Encryption of the externally stored data by the bus encryption device. The cryptographic calculations, d. H. MAC or hash value as well Updating hierarchical structures can be efficient executed on the bus encryption device be so that in embodiments according to the Invention when reading or writing the data and the associated Checking or recalculating the MACs or hash values that are common high latency due to the successive and parallel Calculation in the bus encryption device canceled can be. For writing or reading the data is in embodiments no additional latency according to the invention required.

Um Vertraulichkeit zu gewährleisten, können die Daten zusätzlich zur MAC-Berechnung verschlüsselt werden, beispielsweise mit Hilfe eines Blockchiffre wie AES oder DES. In einigen Ausführungsbeispielen gemäß der Erfindung kann die Busverschlüsselungseinrichtung das AES oder das DES Blockcodierungsverfahren ausführen. Im Folgenden wird die Verschlüsselungsfunktion mit Ek(di) bezeichnet, wobei K den Schlüssel bezeichnet und di den Datenblock mit Index i bezeichnet. Bei den Ausführungsbeispielen, bei denen die Busverschlüsselungseinrichtung eine Blockverschlüsselung aufweist, addiert sich zur Zugriffszeit noch eine zusätzliche Latenz aufgrund der Zeit zur Bestimmung der Busverschlüsselung. Eine parallele Ausführung von Blockverschlüsselung und beispielsweise MAC-Berechnung MACK1(di)||EK2(di) ist aus kryptographischen Gesichtspunkten nicht erwünscht, da Angriffe auf dieses Verfahren bekannt sind. Der Operator „||” symbolisiert hier die Verkettung der Ergebnisse. Sicherer sind die Strategien „MAC-dann-Verschlüsseln” EK2(di||MACK1(di)) oder „Verschlüsseln-dann-MAC” EK2(di)||MACK1(EK2(di)). Da die parallele Ausführung von Busverschlüsselung und MAC-Berechnung unsicher ist, nutzen die Ausführungsbeispiele gemäß der Erfindung, deren Busverschlüsselungseinrichtung mittels Blockverschlüsselung arbeitet, die beiden Strategien „MAC-dann-Verschlüsseln” oder „Verschlüsseln-dann-MAC”. Diese beiden Verfahren erfordern jedoch die sequentielle Abarbeitung und haben damit eine signifikante Zugriffslatenzzeit zur Folge.To ensure confidentiality, the data can be encrypted in addition to the MAC calculation, for example using a block cipher such as AES or DES. In some embodiments according to the invention, the bus cipher may execute the AES or the DES block coding method. In the following, the encryption function is denoted by E k (d i ), where K denotes the key and d i denotes the data block with index i. In the embodiments in which the bus encryption device has a block encryption, an additional latency is added to the access time due to the time for determining the bus encryption. A parallel execution of block encryption and, for example, MAC computation MAC K1 (d i ) || E K2 (d i ) is undesirable for cryptographic reasons since attacks on this method are known. The operator "||" symbolizes the concatenation of the results. The strategies "MAC-then-encrypt" E K2 (d i || MAC K1 (d i )) or "Encrypt-then-MAC" E K2 (d i ) || MAC K1 (E K2 (d i ) are more secure. ). Since the parallel execution of bus encryption and MAC computation is uncertain, the embodiments according to the invention, whose bus encryption device operates by means of block encryption, use the two strategies "MAC-then-encrypt" or "encrypt-then-MAC". However, these two methods require sequential processing and thus result in significant access latency.

Bevorzugte Ausführungsbeispiele gemäß der Erfindung nutzen deshalb anstatt einer Blockverschlüsselung eine Stromverschlüsselung. Ein Stromchiffre (stream cipher) ist ein Pseudozufallszahlengenerator, der eine Folge generiert, die nicht nur statistisch „unauffällig” ist, sondern darüber hinaus auch schwer zu „knacken” ist. Das heißt, es ist nicht oder nur schwer möglich, aus selbst längeren Stücken der Pseudozufallsfolge den Anfangszustand bzw. das Seed zu berechnen. Das Seed entspricht dem Anfangszustand des Stream Ciphers. Dieser Anfangszustand des Stream Ciphers kann aus einem geheimen Schlüssel K und einem öffentlichen Initialisierungswert IV erzeugt werden. Die von einem Stream Cipher erzeugte Folge von Bits kann als Keystream si bzw. Verschlüsselungsdaten 203 bezeichnet werden. Zur Verschlüsselung einer Nachricht m wird der Keystream si mit der Bitsequenz mi, i = 0, 1, ... der Nachricht m = (mi) kombiniert, um die verschlüsselte Nachricht zu erhalten: ci = g(si, mi). Bei einem binären additiven synchronen Stream Cipher entspricht die Funktion g(.) der Exklusiv-ODER-Operation, d. h. ci = si ⊕ mi. In diesem Fall sind die Funktionen für die Entschlüsselung und Verschlüsselung identisch. Bevorzugte Ausführungsbeispiele gemäß der Erfindung weisen einen Pseudozufallszahlengenerator auf, der einen Stream Cipher bzw. einen Stromchiffre generiert, und schaffen somit eine Datenverschlüsselung ohne zusätzliche Latenzzeit.Preferred embodiments according to the invention therefore use stream encryption instead of block encryption. A stream cipher is a pseudo-random number generator that generates a sequence that is not only statistically "unobtrusive," but also difficult to "crack." This means that it is not possible or difficult to calculate the initial state or the seed from even longer pieces of the pseudorandom sequence. The seed corresponds to the initial state of the stream cipher. This initial state of the stream cipher can be generated from a secret key K and a public initialization value IV. The sequence of bits generated by a stream cipher can be described as keystream s i or encryption data 203 be designated. To encrypt a message m, the keystream s i is combined with the bit sequence m i , i = 0, 1,... Of the message m = (m i ) to obtain the encrypted message: c i = g (s i , i ). For a binary additive synchronous stream Cipher, the function g (.) Corresponds to the exclusive-OR operation, ie c i = s i ⊕ m i . In this case, the decryption and encryption functions are identical. Preferred embodiments according to the invention comprise a pseudo-random number generator which generates a stream cipher and thus provides data encryption without additional latency.

Bei Ausführungsbeispielen gemäß der Erfindung ist der externe Speicher über einen externen Bus mittels eines Interfaceperipheriebausteins an den Sicherheitsprozessor angeschlossen, welcher das Speichermodul über das jeweilige spezifische Busprotokoll, beispielsweise NAND, SPI oder auch TCP/IP, wenn es sich um ein NAS handelt, ansteuert. Der Interfaceperipheriebaustein ist seinerseits über einen Systembus an den eigentlichen Prozessorkern angebunden, z. B. über den verbreiteten AMBA-Bus, über AHB, AXI, APB oder andere Busse.In embodiments according to the invention, the external memory is connected via an external bus by means of an interface peripheral module to the security processor which drives the memory module via the respective specific bus protocol, for example NAND, SPI or also TCP / IP, if it is a NAS. The Interfaceperipheriebaustein is in turn connected via a system bus to the actual processor core, z. Via the popular AMBA bus, AHB, AXI, APB or other buses.

Eine Busverschlüsselungseinrichtung bzw. ein universelles Busverschlüsselungsmodul (bus encryption module, BEM), das an den Bus zwischen Prozessorkern und Interfaceperipheriebaustein angeschlossen wird, kann über Kommandos gesteuert selektiv Datenblöcke auf diesem Bussegment verschlüsseln und entschlüsseln. Zur Verschlüsselung kann ein Stream Cipher verwendet werden. Dieser hat die Eigenschaft, dass keine Latenzzeit bei der Verschlüsselung entsteht, da der Keystream bzw. die Verschlüsselungsdaten 203 unabhängig vom Datenstrom bereitgestellt wird, also eine „on-the-fly encryption” durchgeführt wird. Mit diesem Mechanismus können alle Maßnahmen zur Sicherung der Integrität um den Schutz der Vertraulichkeit erweitert werden ohne zusätzliche Einbußen bei der Leistungsfähigkeit.A bus encryption device or a bus encryption module (BEM), which is connected to the bus between the processor core and the interface peripheral block, can selectively control and decrypt data blocks on this bus segment by means of commands. For encryption, a stream cipher can be used. This has the property that there is no latency in the encryption, since the keystream or the encryption data 203 is provided independently of the data stream, so an "on-the-fly encryption" is performed. With this mechanism, all measures to ensure integrity can be extended to the protection of confidentiality without additional loss of performance.

In einem weiteren Ausführungsbeispiel gemäß der Erfindung kann die Busverschlüsselungseinrichtung 104 um die Funktionalität der MAC-Berechnung erweitert werden, um alle MAC-basierten Integritätssicherungsverfahren zu beschleunigen. Stream Cipher Module können oft einfach um einen Mechanismus zur Berechnung eines MAC erweitert werden, welcher synchron zur Erzeugung des Keystreams bzw. der Verschlüsselungsdaten 203 arbeitet. Am Ende der Verschlüsselung des Blocks steht dann ein MAC zur Verfügung, der an den verschlüsselten Datenstrom angehängt werden kann. In 3 ist aufgezeigt, wie die um eine MAC erweiterte Busverschlüsselungseinrichtung 104 (BEM) angeschlossen werden kann. Wenn die Verschlüsselung aktiviert ist, d. h. das Verschlüsselungssignal 105 ist aktiv, wird einerseits die über den Systembus zum Interfaceperipheriebaustein transferierte Bitfolge verschlüsselt, zum anderen zugleich eine MAC akkumuliert, beispielsweise nach dem Verfahren „Verschlüsseln-dann-MAC” über den verschlüsselten Bitstrom. Soll der MAC am Ende angehängt werden, wird der Busverschlüsselungseinrichtung 104 über das Authentifizierungssignal 301 signalisiert, dass es den MAC ausgeben, d. h. zur Peripherieschnittstelle 102 transferieren, kann. Im Falle des Lesens aus dem externen Speicher wird die Überprüfung des MAC aktiviert (unter Verwendung des Verschlüsselungssignals 105). Ein MAC-Fehler wird gegebenenfalls dem Prozessor 101 signalisiert. Das Authentifizierungssignal 301 kann auch zwei Signalanteile aufweisen. Ein erster Signalanteil „BEM.append” signalisiert der Busverschlüsselungseinrichtung 104 dabei, den MAC auszugeben, während ein zweiter Signalanteil „BEM.check” der Busverschlüsselungseinrichtung 104 signalisiert, die Überprüfung des MAC durchzuführen.In a further embodiment according to the invention, the bus encryption device 104 to extend the functionality of the MAC calculation to accelerate all MAC-based integrity assurance procedures. Stream cipher modules can often be easily extended with a mechanism to compute a MAC that synchronizes with the generation of the keystream or encryption data 203 is working. At the end of the block's encryption, a MAC is then available which can be appended to the encrypted data stream. In 3 is shown as the MAC extended bus encryption device 104 (BEM) can be connected. If encryption is enabled, ie the encryption signal 105 is active, on the one hand the encrypted over the system bus to the interface peripheral block bit sequence is encrypted, on the other hand at the same time a MAC accumulates, for example by the method "Encrypt-then-MAC" on the encrypted bit stream. If the MAC is to be appended at the end, the bus encryption device becomes 104 via the authentication signal 301 signals that it outputs the MAC, ie the peripheral interface 102 can transfer. In the case of reading from the external memory, the verification of the MAC is activated (using the encryption signal 105 ). If necessary, a MAC error will be sent to the processor 101 signaled. The authentication signal 301 can also have two signal components. A first signal component "BEM.append" signals the bus encryption device 104 while outputting the MAC, while a second signal portion "BEM.check" of the bus encryption device 104 signals to perform the verification of the MAC.

Weitere Ausführungsbeispiele gemäß der Erfindung schaffen ein universelles Busverschlüsselungsmodul unter Verwendung der Busverschlüsselungseinrichtung 104 (BEM). Dieses kann beispielsweise auf Sicherheitskontrollern genutzt werden, auf denen Peripheriegeräte über den Industriestandardbus APB (AMBA periphery bus) angeschlossen werden. In 4 ist ein Ausführungsbeispiel dargestellt, gemäß dem ein externes Flash mit der Industriestandardbusschnittstelle SPI angeschlossen wird.Further embodiments according to the invention provide a universal bus encryption module using the bus cipher 104 (BEM). This can be used, for example, on security controllers on which peripheral devices are connected via the industry standard bus APB (AMBA periphery bus). In 4 an embodiment is shown according to which an external flash is connected to the industry standard bus interface SPI.

Ausführungsbeispiele für die Kommandofolge für das Schreiben in das externe SPI Flash mit „on-the-fly” Verschlüsselung sind gemäß den Ausführungsbeispielen nach 7a/b beschrieben. Die Kommandos für ein SPI Flash sind in den 7a/b im oberen Teil abgebildet und haben die aufgezeigte Struktur. Es ist anzumerken, dass nur die mit Punkten gekennzeichneten Datenblöcke verschlüsselt werden. Die Softwarekommandofolge hat die in den 7a/b angegebene Struktur, wobei 7a im linken Teil das Schreiben eines Datenblocks D[1:n] der Länge von n Worten an die logische Adresse LA eines SPI-Flashbausteins darstellt (die physikalische Adresse entspricht PA). Der globale Schlüssel zur Flashverschlüsselung entspricht K.Embodiments of the command sequence for writing to the external SPI Flash with "on-the-fly" encryption are according to the embodiments according to 7a / b described. The commands for a SPI Flash are in the 7a / b in the upper part and have the structure shown. It should be noted that only the data blocks marked with dots are encrypted. The software command sequence has the in the 7a / b specified structure, where 7a in the left-hand part, the writing of a data block D [1: n] of the length of n words to the logical address LA of an SPI flash module (the physical address corresponds to PA). The global key to flash encryption is K.

Ausführungsbeispiele gemäß der Erfindung können auf Sicherheitskontrollern eingesetzt werden, beispielsweise in High Capacity SIM-Karten.embodiments according to the invention may be on security controllers be used, for example in high-capacity SIM cards.

Einige Ausführungsbeispiele gemäß der Erfindung verschlüsseln bzw. entschlüsseln 32 Bit an Daten innerhalb jedes vierten Prozessorzyklus. Diese können beispielsweise ein Achterbahn-80- bzw. A-80-Verfahren mit einer achtfachen parallelen Implementierung ausführen, wobei acht Bit pro Zyklus prozes siert werden können, beispielsweise bei einer Größe von 5,4 kGE an Chipfläche für den A-80 Stream Cipher und einer Größe von 1 kGE an Chipfläche für das APB-Businterface und die zugehörige Steuerung. In Summe ergibt sich eine Chipfläche von 6,4 kGE, entsprechenden einer absoluten Größe von etwa 0,06 mm2.Some embodiments according to the invention encrypt / decrypt 32 bits of data within each fourth processor cycle. These may, for example, execute a coaster 80 or A-80 process with an eightfold parallel implementation, where eight bits per cycle may be processed, for example at a size of 5.4 kGE of chip area for the A-80 stream cipher and 1 kGE of chip area for the APB bus interface and associated controller. The total result is a chip area of 6.4 kGE, corresponding to an absolute size of about 0.06 mm 2 .

Das SPI-Modul braucht in einigen Ausführungsbeispielen gemäß der Erfindung nicht modifiziert zu werden. Die Busverschlüsselungseinrichtung kann beispielsweise integriert werden, um zusammen mit anderen APB-Busperipherieschnittstellen zu kooperieren. Ausführungsbeispiele gemäß der Erfindung schaffen eine Option, um einen geheimen (verschlüsselten) Kanal zwischen der Vorrichtung und einem anderen Peripheriegerät oder Kontroller aufzusetzen. Ausführungsbeispiele der Erfindung schaffen eine hoch sichere Speicherverschlüsselung, die nur eine sehr kleine zusätzliche Speicherfläche benötigt. Ein symmetrischer Cipher bzw. Chiffre mit einer Schlüssellänge von 80 Bit wird bei einigen Ausführungsbeispielen gemäß der Erfindung als ausreichend betrachtet, wenn der sichere Prozessor beispielsweise nur durch eine 64 Bit Speicherverschlüsselung geschützt ist. Eine additive binäre synchrone Stromchiffre benötigt keine Latenzzeiten wie sie für Blockchiffre typisch sind. Bezüglich Leistungsverbrauch und Chipgröße ist ein Stromchiffre bei Ausführungsbeispielen gemäß der Erfindung wesentlich effizienter als ein Blockchiffre. Ausführungsbeispiele gemäß der Erfindung, die ein Achterbahn-80-Verschlüsselungsverfahren aufweisen, können als sicher angesehen werden für Datenrahmenlängen bis zu 244.The SPI module need not be modified in some embodiments according to the invention. For example, the bus cipher may be integrated to co-operate with other APB bus peripheral interfaces. Embodiments of the invention provide an option to set up a secret (encrypted) channel between the device and another peripheral device or controller. Embodiments of the invention provide highly secure memory encryption that requires only a very small additional memory area. A symmetric cipher with a key length of 80 bits is considered to be sufficient in some embodiments according to the invention For example, if the secure processor is only protected by 64-bit memory encryption. An additive binary synchronous stream cipher does not require latencies typical of block ciphers. In terms of power consumption and chip size, a stream cipher in embodiments according to the invention is much more efficient than a block cipher. Embodiments according to the invention which include a roller coaster 80 encryption method may be considered secure for data frame lengths up to 2 44 .

Ausführungsbeispiele gemäß der Erfindung können zur transparenten Datensicherung für externe Speicher eingesetzt werden, die eine starke 80 Bit Verschlüsselung einsetzen. Hierbei ist fast keine Interaktion mit dem Nutzer notwendig. Ausführungsbeispiele gemäß der Erfindung benötigen keine zeitaufwändige Verschlüsselung, beispielsweise zur Anwendung von drei Schlüssel T-DES oder SW-AES Verschlüsselungsverfahren, um Daten auf dem externen Flash zu verschlüsseln. Die Busverschlüsselungseinrichtung 104 in Ausführungsbeispielen gemäß der Erfindung ist portierbar und kann wieder verwendet werden, beispielsweise auf jedem Kontroller mit APB-Schnittstellen. Ausführungsbeispiele gemäß der Erfindung schaffen eine Option, um einen geheimen (verschlüsselten) Kanal aufzusetzen zwischen der erfindungsgemäßen Vorrichtung und einem anderen Peripheriegerät oder Kontroller und schaffen damit sichere Elemente.Embodiments according to the invention can be used for transparent data backup for external storage using strong 80-bit encryption. Here, almost no interaction with the user is necessary. Embodiments according to the invention do not require time-consuming encryption, for example for using three keys T-DES or SW-AES encryption methods to encrypt data on the external flash. The bus encryption device 104 in embodiments according to the invention is portable and can be reused, for example on any controller with APB interfaces. Embodiments according to the invention provide an option to set up a secret (encrypted) channel between the device according to the invention and another peripheral device or controller, thus creating secure elements.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list The documents listed by the applicant have been automated generated and is solely for better information recorded by the reader. The list is not part of the German Patent or utility model application. The DPMA takes over no liability for any errors or omissions.

Zitierte Nicht-PatentliteraturCited non-patent literature

  • - ISO 7816 [0019] - ISO 7816 [0019]
  • - ISO 7816 [0040] - ISO 7816 [0040]
  • - ISO 7816-Bus [0050] - ISO 7816 bus [0050]
  • - ISO 7816 [0066] - ISO 7816 [0066]

Claims (26)

Vorrichtung (100) zum Verschlüsseln von auf einen Bus ausgegebenen Daten, mit folgenden Merkmalen: einem Prozessor (101); einer Peripherieschnittstelle (102); einem Bus (103), der mit dem Prozessor (101) und der Peripherieschnittstelle (102) gekoppelt ist; und einer Busverschlüsselungsvorrichtung (104), die zwischen dem Prozessor (101) und der Peripherieschnittstelle (102) mit dem Bus (103) gekoppelt ist, wobei der Prozessor (101) ausgelegt ist, um digitale Signale auf den Bus (103) auszugeben; wobei die Busverschlüsselungseinrichtung (104) ausgelegt ist, um die von dem Prozessor (101) auf den Bus (103) ausgegebenen digitalen Signale abhängig von einem den Signalen zugeordneten Verschlüsselungssignal (105) selektiv zu verschlüsseln; wobei die Peripherieschnittstelle (102) ausgelegt ist, um die selektiv verschlüsselten Signale nach extern auszugeben.Contraption ( 100 ) for encrypting data output on a bus, comprising: a processor ( 101 ); a peripheral interface ( 102 ); a bus ( 103 ) connected to the processor ( 101 ) and the peripheral interface ( 102 ) is coupled; and a bus encryption device ( 104 ) between the processor ( 101 ) and the peripheral interface ( 102 ) by bus ( 103 ), wherein the processor ( 101 ) is designed to send digital signals to the bus ( 103 ) issue; wherein the bus encryption device ( 104 ) is adapted to that of the processor ( 101 ) on the bus ( 103 ) output digital signals depending on a signal associated with the signals encryption signal ( 105 ) to selectively encrypt; the peripheral interface ( 102 ) is designed to externally output the selectively encrypted signals. Vorrichtung (100) gemäß Anspruch 1, bei der der Prozessor (101) ausgelegt ist, um das Verschlüsselungssignal (105) der Busverschlüsselungseinrichtung (104) bereitzustellen.Contraption ( 100 ) according to claim 1, wherein the processor ( 101 ) is designed to receive the encryption signal ( 105 ) the bus encryption device ( 104 ). Vorrichtung (100) gemäß Anspruch 1 oder Anspruch 2, bei der das Verschlüsselungssignal (105) ein Startsignal, das eine Verschlüsselung durch die Busverschlüsselungseinrichtung (104) aktiviert, und ein Stoppsignal, das eine Verschlüsse lung durch die Busverschlüsselungseinrichtung (104) deaktiviert, aufweist.Contraption ( 100 ) according to claim 1 or claim 2, wherein the encryption signal ( 105 ) a start signal that is encrypted by the bus encryption device ( 104 ), and a stop signal indicative of closure by the bus cipher (FIG. 104 ) disabled. Vorrichtung (100) gemäß Anspruch 1 oder Anspruch 2, bei der das Verschlüsselungssignal (105) ein Startsignal, das eine Verschlüsselung durch die Busverschlüsselungseinrichtung (104) aktiviert, und bei Inaktivität dieses Signals eine Verschlüsselung durch die Busverschlüsselungseinrichtung (104) deaktiviert, aufweist.Contraption ( 100 ) according to claim 1 or claim 2, wherein the encryption signal ( 105 ) a start signal that is encrypted by the bus encryption device ( 104 ) and, in the event of inactivity of this signal, encryption by the bus encryption device ( 104 ) disabled. Vorrichtung (100) gemäß Anspruch 3, bei der die auf den Bus (103) ausgegebenen Signale Datensignale und Steuersignale aufweisen, wobei der Prozessor (101) ausgelegt ist, um vor einem Datensignal ein Startsignal zu der Busverschlüsselungseinrichtung (104) auszugeben und vor einem Steuersignal ein Stoppsignal zu der Busverschlüsselungseinrichtung (104) auszugeben.Contraption ( 100 ) according to claim 3, wherein the on the bus ( 103 ) have data signals and control signals, wherein the processor ( 101 ) is adapted to provide, in front of a data signal, a start signal to the bus encryption device ( 104 ) and before a control signal, a stop signal to the bus encryption device ( 104 ). Vorrichtung (100) gemäß Anspruch 5, bei der die Steuersignale Schreib- und Lesebefehle und zugeordnete Speicheradressen umfassen.Contraption ( 100 ) according to claim 5, wherein the control signals comprise write and read commands and associated memory addresses. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 6, bei der die Busverschlüsselungseinrichtung (104) ausgelegt ist, um Verschlüsselungsdaten (203) unabhängig von den zu verschlüsselnden digitalen Signalen zu erzeugen und um jeweils ein Bit der Verschlüsselungsdaten (203) mit einem Bit der zu verschlüsselnden digitalen Signale zu kombinieren und das Ergebnis der Kombination auf den Bus (103) auszugeben.Contraption ( 100 ) according to one of claims 1 to 6, in which the bus encryption device ( 104 ) is designed to encrypt data ( 203 ) independently of the digital signals to be encrypted, and in each case one bit of the encryption data ( 203 ) to combine with a bit of the digital signals to be encrypted and the result of the combination on the bus ( 103 ). Vorrichtung (100) gemäß Anspruch 6, bei der die Busverschlüsselungseinrichtung (104) einen Pseudozufallzahlengenerator aufweist, der ausgelegt ist, um unter Verwendung von zumindest entweder einem Initialisierungswert (204) und einem Schlüssel (205) die Verschlüsselungsdaten (203) zu erzeugen.Contraption ( 100 ) according to claim 6, wherein the bus encryption device ( 104 ) has a pseudo-random number generator configured to use at least one of an initialization value ( 204 ) and a key ( 205 ) the encryption data ( 203 ) to create. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 8, bei der die Busverschlüsselungseinrichtung (104) ausgelegt ist, um über den selektiv verschlüsselten Signalen einen Authentifizierungscode (302) zu erzeugen und an die selektiv verschlüsselten Signale anzuhängen.Contraption ( 100 ) according to one of claims 1 to 8, in which the bus encryption device ( 104 ) is designed to provide an authentication code (selectively) over the selectively encrypted signals ( 302 ) and to attach to the selectively encrypted signals. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 9, bei der die selektiv verschlüsselten Signale einem internen Busprotokoll entsprechen und bei der die Peripherieschnittstelle (102) ausgelegt ist, um die selektiv verschlüsselten Signale in ein externes Busprotokoll umzusetzen.Contraption ( 100 ) according to one of claims 1 to 9, in which the selectively encrypted signals correspond to an internal bus protocol and in which the peripheral interface ( 102 ) is adapted to convert the selectively encrypted signals into an external bus protocol. Vorrichtung (100) gemäß einem der vorhergehenden Ansprüche, wobei die Peripherieschnittstelle (102) zur Kommunikation mit einem Flashspeicherbaustein, einem NAND-Flash, einem NOR-Flash, einem SPI-Flash oder einer weiteren Peripherieschnittstelle (102) konfiguriert ist.Contraption ( 100 ) according to one of the preceding claims, wherein the peripheral interface ( 102 ) for communication with a flash memory device, a NAND flash, a NOR flash, an SPI flash or another peripheral interface ( 102 ) is configured. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 11, bei der die Peripherieschnittstelle (102) ausgelegt ist, um selektiv verschlüsselte Signale von extern zu empfangen und auf den Bus (103) auszugeben, wobei die Busverschlüsselungseinrichtung (104) ausgelegt ist, um die selektiv verschlüsselten Signale abhängig von dem zugeordneten Verschlüsselungssignal (105) selektiv zu entschlüsseln, und wobei der Prozessor (101) ausgelegt ist, um die entschlüsselten Signale von dem Bus (103) zu empfangen.Contraption ( 100 ) according to one of claims 1 to 11, in which the peripheral interface ( 102 ) is adapted to receive selectively encrypted signals from external and to the bus ( 103 ), the bus encryption device ( 104 ) is adapted to the selectively encrypted signals depending on the associated encryption signal ( 105 ) to selectively decrypt, and wherein the processor ( 101 ) is adapted to receive the decrypted signals from the bus ( 103 ) to recieve. Vorrichtung (100) gemäß Anspruch 12, bei der die Busverschlüsselungseinrichtung (104) ausgelegt ist, um den selektiv verschlüsselten Signalen Verschlüsselungsdaten (203) zuzuordnen, bei der die Peripherieschnittstelle (102) ausgelegt ist, um die selektiv verschlüsselten Signale in einen externen Speicher (207) zu schreiben und von dem Speicher (207) zu empfangen, und wobei die Busverschlüsselungseinrichtung (104) ausgelegt ist, um die empfangenen selektiv verschlüsselten Signale unter Verwendung der zugeordneten Verschlüsselungsdaten (203) zu entschlüsseln.Contraption ( 100 ) according to claim 12, wherein the bus encryption device ( 104 ) is adapted to encode the selectively encrypted signals ( 203 ), in which the peripheral interface ( 102 ) is designed to transfer the selectively encrypted signals to an external memory ( 207 ) and from the memory ( 207 ), and wherein the bus encryption device ( 104 ) is adapted to the received selectively encrypted signals using the associated encryption data ( 203 ) to decode. Vorrichtung (100) gemäß Anspruch 12 oder Anspruch 13, bei der die empfangenen selektiv verschlüsselten Signale einen Authentifizierungscode (302) aufweisen und die Busverschlüsselungseinrichtung (104) ausgelegt ist, um eine Authentifizierungscodeüberprüfung bezüglich des Authentifizierungscodes (302) durchzuführen.Contraption ( 100 ) according to claim 12 or claim 13, wherein the received selectively encrypted signals comprise an authentication code ( 302 ) and the bus encryption device ( 104 ) is designed to perform an authentication code check on the authentication code ( 302 ). Vorrichtung (100) gemäß einem der vorhergehenden Ansprüche, wobei die Vorrichtung (100) in einen Chip integriert ist und die Peripherieschnittstelle (102) externe Anschlüsse des Chips liefert.Contraption ( 100 ) according to one of the preceding claims, wherein the device ( 100 ) is integrated into a chip and the peripheral interface ( 102 ) provides external connections of the chip. Vorrichtung (100) gemäß einem der vorhergehenden Ansprüche, bei der der Bus (103) ein AMBA-Bus, ein AHB-Bus, ein AXI-Bus oder ein APB-Bus ist; wobei die Peripherieschnittstelle (102) ausgelegt ist, um die selektiv verschlüsselten Signale basierend auf einem SPI, NAND oder USB-Busprotokoll oder basierend auf einem ISO 7816 Schnittstellenprotokoll oder basierend auf einem TCP/IP Datenprotokoll nach extern auszugeben.Contraption ( 100 ) according to one of the preceding claims, in which the bus ( 103 ) is an AMBA bus, an AHB bus, an AXI bus or an APB bus; the peripheral interface ( 102 ) is adapted to externally output the selectively encrypted signals based on an SPI, NAND or USB bus protocol or based on an ISO 7816 interface protocol or based on a TCP / IP data protocol. Vorrichtung (100), mit folgenden Merkmalen: einer Ausgabeeinrichtung zum Ausgeben von digitalen Signalen auf einen Bus (103); einer Verschlüsselungseinrichtung zum selektiven Verschlüsseln der auf den Bus (103) ausgegebenen digitalen Signale abhängig von einem den digitalen Signalen zugeordneten Verschlüsselungssignal (105); und einer zweiten Ausgabeeinrichtung zum Ausgeben der selektiv verschlüsselten digitalen Signale nach extern.Contraption ( 100 ), comprising: output means for outputting digital signals to a bus ( 103 ); an encryption device for selectively encrypting the data on the bus ( 103 ) output digital signals depending on an encryption signal associated with the digital signals ( 105 ); and second output means for externally outputting the selectively encrypted digital signals. Chipkarte (600) mit folgenden Merkmalen: einem Prozessor (101); einer Peripherieschnittstelle (102); einem ersten Bus (103), der mit dem Prozessor (101) und der Peripherieschnittstelle (102) gekoppelt ist; einem Speichermodul 207, das ausgelegt ist, um Daten zu speichern; einem zweiten Bus (206), der mit der Peripherieschnittstelle (102) und dem Speichermodul (207) gekoppelt ist; und einer Busverschlüsselungseinrichtung (104), die zwischen dem Prozessor (101) und der Peripherieschnittstelle (102) mit dem ersten Bus (103) gekoppelt ist und ausgelegt ist, um Daten auf dem ersten Bus (103) selektiv zu verschlüsseln oder zu entschlüsseln, wobei der Prozessor (101) ausgelegt ist, um in das Speichermodul (207) zu schreibende Daten (753) auf den ersten Bus (103) auszugeben, und ausgelegt ist, um von dem Speichermodul (207) zu lesende Daten (756) von dem ersten Bus (103) zu empfangen; wobei die Busverschlüsselungseinrichtung (104) ausgelegt ist, um die in das Speichermodul (207) zu schreibenden Daten abhängig von einem Verschlüsselungssignal (105) selektiv zu verschlüsseln, und ausgelegt ist, um die von dem Speichermodul (207) zu lesenden Daten abhängig von dem Verschlüsselungssignal (105) selektiv zu entschlüsseln; wobei die Peripherieschnittstelle (102) ausgelegt ist, um die in das Speichermodul (207) zu schreibenden Daten (253) auf den zweiten Bus (206) auszugeben, und ausgelegt ist, um die von dem Speichermodul (207) zu lesenden Daten (756) auf den ersten Bus (103) auszugeben.Chipcard ( 600 ) having the following features: a processor ( 101 ); a peripheral interface ( 102 ); a first bus ( 103 ) connected to the processor ( 101 ) and the peripheral interface ( 102 ) is coupled; a memory module 207 which is designed to store data; a second bus ( 206 ) connected to the peripheral interface ( 102 ) and the memory module ( 207 ) is coupled; and a bus encryption device ( 104 ) between the processor ( 101 ) and the peripheral interface ( 102 ) with the first bus ( 103 ) and is adapted to receive data on the first bus ( 103 ) to selectively encrypt or decrypt, the processor ( 101 ) is designed to be in the memory module ( 207 ) data to be written ( 753 ) on the first bus ( 103 ) and is adapted to be read by the memory module ( 207 ) data to be read ( 756 ) from the first bus ( 103 ) to recieve; wherein the bus encryption device ( 104 ) is designed to be in the memory module ( 207 ) data to be written depends on an encryption signal ( 105 ) is selectively encrypted, and is adapted to the memory module ( 207 ) data to be read depending on the encryption signal ( 105 ) to decode selectively; the peripheral interface ( 102 ) is designed to be in the memory module ( 207 ) data to be written ( 253 ) on the second bus ( 206 ), and is designed to receive information from the memory module ( 207 ) data to be read ( 756 ) on the first bus ( 103 ). Chipkarte (600) gemäß Anspruch 18, wobei die Chipkarte (600) ferner eine zweite Peripherieschnittstelle (608) aufweist, die ausgelegt ist, um Daten auf einen dritten Bus (606) auszugeben, und von dem dritten Bus (606) zu empfangen; wobei der erste Bus (103) ferner mit der zweiten Peripherieschnittstelle (608) gekoppelt ist; wobei der Prozessor (101) ausgelegt ist, um die auf den dritten Bus (606) auszugebenden Daten auf den ersten Bus (103) auszugeben, und ausgelegt ist, um die von dem dritten Bus (606) zu empfangenden Daten von dem ersten Bus (103) zu empfangen; wobei die Busverschlüsselungseinrichtung (104) ausgelegt ist, um die auf den dritten Bus (606) auszugebenden Daten abhängig von einem weiteren Verschlüsselungssignal (105) selektiv zu verschlüsseln, und ausgelegt ist, um die von dem dritten Bus (606) zu empfangenden Daten abhängig von dem weiteren Verschlüsselungssignal (105) selektiv zu entschlüsseln; wobei die zweite Peripherieschnittstelle (608) ausgelegt ist, um die auf den dritten Bus (606) auszugebenden Daten auf den dritten Bus (606) auszugeben, und ausgelegt ist, um die von dem dritten Bus (606) zu empfangenden Daten auf den ersten Bus (103) auszugeben.Chipcard ( 600 ) according to claim 18, wherein the chip card ( 600 ) a second peripheral interface ( 608 ), which is designed to transfer data to a third bus ( 606 ) and from the third bus ( 606 ) to recieve; where the first bus ( 103 ) with the second peripheral interface ( 608 ) is coupled; the processor ( 101 ) is placed on the third bus ( 606 ) data to be output on the first bus ( 103 ) and is designed to be the same as that of the third bus ( 606 ) to receive data from the first bus ( 103 ) to recieve; wherein the bus encryption device ( 104 ) is placed on the third bus ( 606 ) data to be output depending on a further encryption signal ( 105 ) is selectively encrypted, and is designed to be adapted to that of the third bus ( 606 ) to receive data depending on the further encryption signal ( 105 ) to decode selectively; the second peripheral interface ( 608 ) is placed on the third bus ( 606 ) data to be output to the third bus ( 606 ) and is designed to be the same as that of the third bus ( 606 ) to be received on the first bus ( 103 ). Chipkarte (600) gemäß Anspruch 18 oder 19, wobei die Chipkarte folgende Merkmale aufweist: ein erstes Chipgehäuse (601), das ausgelegt ist, um den Prozessor (101), die Peripherieschnittstelle (102), die Busverschlüsselungseinrichtung (104) und den ersten Bus (103) aufzunehmen; ein zweites Chipgehäuse (602), das ausgelegt ist, um das Speichermodul (207) aufzunehmen; eine Leiterplatine (607), die ausgelegt ist, um das erste Chipgehäuse (601), das zweite Chipgehäuse (602) und den zweiten Bus (206) aufzunehmen.Chipcard ( 600 ) according to claim 18 or 19, wherein the chip card has the following features: a first chip housing ( 601 ), which is designed to handle the processor ( 101 ), the peripheral interface ( 102 ), the bus encryption device ( 104 ) and the first bus ( 103 ); a second chip housing ( 602 ), which is designed to store the memory module ( 207 ); a printed circuit board ( 607 ), which is designed to be the first chip housing ( 601 ), the second chip housing ( 602 ) and the second bus ( 206 ). Verfahren zum Verschlüsseln von auf einen Bus ausgegebenen Daten, der einen Prozessor mit einer Peripherieschnittstelle koppelt, mit folgenden Schritten: Ausgeben von digitalen Signalen auf den Bus; selektives Verschlüsseln der auf den Bus ausgegebenen digitalen Signalen abhängig von einem den digitalen Signalen zugeordneten Verschlüsselungssignal; und Ausgabe der selektiv verschlüsselten digitalen Signale nach extern.Method for encrypting on a bus output data representing a processor with a peripheral interface coupled, with the following steps: Output of digital signals on the bus; selective encryption of the Bus output digital signals depending on one the encryption signal associated with the digital signals; and Issue of selectively encrypted digital Signals to external. Verfahren (700) gemäß Anspruch 21, wobei der erste Schritt folgende Schritte aufweist: Bereitstellen eines Schlüssels (710); Bereitstellen eines Initialisierungswertes in Abhängigkeit von einer logischen Adresse (711); Ausgeben eines nicht zu verschlüsselnden Steuerbefehls (751) auf den Bus (712); Zuordnen einer physikalischen Adresse (752) zu der logischen Adresse und Ausgeben der nicht zu verschlüsselnden physikalischen Adresse (752) auf den Bus (713); Aktivieren einer Busverschlüsselung zum selektiven Verschlüsseln der auf den Bus ausgegebenen Daten unter Verwendung des Schlüssels und des Initialisierungswertes (714); Zusammenfassen einer Mehrzahl von Datenworten zu einem Datenblock (753), Zuordnen der logischen Adresse zu dem Datenblock (753) und Ausgeben des zu verschlüsselnden Datenblocks (753) auf den Bus (715); und Deaktivieren der Busverschlüsselung (716).Procedure ( 700 ) according to claim 21, wherein the first step comprises the steps of: providing a key ( 710 ); Provide an initialization value depending on a logical address ( 711 ); Outputting a control command that is not to be encrypted ( 751 ) on the bus ( 712 ); Assign a physical address ( 752 ) to the logical address and output the non-encrypted physical address ( 752 ) on the bus ( 713 ); Enabling bus encryption to selectively encrypt the data output to the bus using the key and the initialization value ( 714 ); Combining a plurality of data words into a data block ( 753 ), Assigning the logical address to the data block ( 753 ) and outputting the data block to be encrypted ( 753 ) on the bus ( 715 ); and disabling bus encryption ( 716 ). Verfahren (702) gemäß Anspruch 22, wobei das Verfahren (702) folgende zusätzliche Schritte aufweist: Bestimmen eines Authentifizierungscodes (757) für den ausgegebenen Datenblock (730); und Ausgeben des Authentifizierungscodes (757) angrenzend an den Datenblock (153) auf den Bus (731).Procedure ( 702 ) according to claim 22, wherein the method ( 702 ) comprises the following additional steps: determining an authentication code ( 757 ) for the output data block ( 730 ); and issuing the authentication code ( 757 ) adjacent to the data block ( 153 ) on the bus ( 731 ). Verfahren (701) zum Entschlüsseln von auf einem Bus empfangenen Daten (760), mit folgenden Schritten: Bereitstellen eines Schlüssels (720); Bereitstellen eines Initialisierungswertes in Abhängigkeit von einer logischen Adresse (721); Empfangen eines Steuerbefehls (754) von dem Bus (722); Empfangen eines physikalischen Adresse (755) von dem Bus und Zuordnen der physikalischen Adresse (755) zu der logischen Adresse (723); Aktivieren einer Busentschlüsselung zum Entschlüsseln der von dem Bus empfangenen Daten unter Verwendung des Schlüssels und des Initialisierungswertes (724); Empfangen eines Datenblocks (756) von dem Bus, wobei der Datenblock (756) eine Mehrzahl von Datenworten umfasst, wobei dem Datenblock (756) eine logische Adresse zugeordnet ist (725); und Deaktivieren der Busentschlüsselung (726).Procedure ( 701 ) for decrypting data received on a bus ( 760 ), with the following steps: Providing a key ( 720 ); Provide an initialization value depending on a logical address ( 721 ); Receiving a control command ( 754 ) from the bus ( 722 ); Receive a physical address ( 755 ) from the bus and assigning the physical address ( 755 ) to the logical address ( 723 ); Activating a bus decryption to decrypt the data received from the bus using the key and the initialization value ( 724 ); Receiving a data block ( 756 ) from the bus, the data block ( 756 ) comprises a plurality of data words, the data block ( 756 ) is assigned a logical address ( 725 ); and disabling bus decryption ( 726 ). Verfahren (703) gemäß Anspruch 24, wobei das Verfahren (703) folgende zusätzliche Schritte aufweist: Bestimmen eines Authentifizierungscodes (758) für den empfangenen Datenblock (740); und Empfangen eines dem empfangenen Datenblocks (756) zugeordneten Authentifizierungscodes (758) von dem Bus (741); und Vergleichen des bestimmten Authentifizierungscodes mit dem empfangenen Authentifizierungscode (758) und Signalisieren einer Nichtübereinstimmung (742).Procedure ( 703 ) according to claim 24, wherein the method ( 703 ) comprises the following additional steps: determining an authentication code ( 758 ) for the received data block ( 740 ); and receiving a received data block ( 756 ) associated authentication codes ( 758 ) from the bus ( 741 ); and comparing the particular authentication code with the received authentication code ( 758 ) and signaling a mismatch ( 742 ). Computerprogramm mit einem Programmcode zum Ausführen der Verfahren gemäß einem der Ansprüche 21 bis 25, wenn das Computerprogramm auf einem Rechner läuft.Computer program with a program code for execution the method according to one of the claims 21 to 25, when the computer program is running on a computer.
DE200810026697 2008-06-04 2008-06-04 Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals Ceased DE102008026697A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200810026697 DE102008026697A1 (en) 2008-06-04 2008-06-04 Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200810026697 DE102008026697A1 (en) 2008-06-04 2008-06-04 Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals

Publications (1)

Publication Number Publication Date
DE102008026697A1 true DE102008026697A1 (en) 2009-12-10

Family

ID=41268706

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810026697 Ceased DE102008026697A1 (en) 2008-06-04 2008-06-04 Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals

Country Status (1)

Country Link
DE (1) DE102008026697A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012004780A1 (en) 2012-03-02 2013-09-05 Fachhochschule Schmalkalden Method for protecting data confidentiality in memory e.g. static RAM for processor of computer system, involves encrypting data written in memory using selected address-dependent random number
US10079685B2 (en) 2015-06-22 2018-09-18 Volkswagen Ag Method for manipulation protection of a bus system between at least two system components
EP3729717A4 (en) * 2017-12-19 2021-01-20 Alibaba Group Holding Limited Advanced peripheral bus based serial peripheral interface communication device
CN116662233A (en) * 2023-05-24 2023-08-29 珠海妙存科技有限公司 Write transmission method and device of AHB interface equipment, electronic equipment and readable storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1457859A2 (en) * 2003-03-14 2004-09-15 Broadcom Corporation Data encryption/decryption device
DE10345385A1 (en) * 2003-09-30 2005-06-02 Infineon Technologies Ag Decryption or encryption when writing to a memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1457859A2 (en) * 2003-03-14 2004-09-15 Broadcom Corporation Data encryption/decryption device
DE10345385A1 (en) * 2003-09-30 2005-06-02 Infineon Technologies Ag Decryption or encryption when writing to a memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO 7816-Bus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012004780A1 (en) 2012-03-02 2013-09-05 Fachhochschule Schmalkalden Method for protecting data confidentiality in memory e.g. static RAM for processor of computer system, involves encrypting data written in memory using selected address-dependent random number
US10079685B2 (en) 2015-06-22 2018-09-18 Volkswagen Ag Method for manipulation protection of a bus system between at least two system components
EP3729717A4 (en) * 2017-12-19 2021-01-20 Alibaba Group Holding Limited Advanced peripheral bus based serial peripheral interface communication device
CN116662233A (en) * 2023-05-24 2023-08-29 珠海妙存科技有限公司 Write transmission method and device of AHB interface equipment, electronic equipment and readable storage medium
CN116662233B (en) * 2023-05-24 2024-02-23 珠海妙存科技有限公司 Write transmission method and device of AHB interface equipment, electronic equipment and readable storage medium

Similar Documents

Publication Publication Date Title
DE102012209249B4 (en) Security device and host device for exchanging scrambled encryption data
EP2899714B1 (en) Secure provision of a key
EP1668516B1 (en) Decrypting and encrypting during write accesses to a memory
DE112005003513B4 (en) Security chip
DE102009041176B9 (en) A compiler system and method for compiling a source code into an encrypted machine language code
DE112010005842T5 (en) Scrambling an address and encrypting write data to store a memory device
DE10254396A1 (en) Device and method for encrypting data
DE112009004491T5 (en) System and method for securely storing data in an electronic device
EP2930610A2 (en) Random number generator and method for generating random numbers
DE102010054614A1 (en) Intrusion into a secured computing environment using multiple authenticated code modules
EP1496420B1 (en) Security data processing unit and method therefor
DE112017007643T5 (en) Bitstream key authentication of reconfigurable devices
DE102009007345A1 (en) Safety device for protecting data stored in external memory e.g. multi media card, has controller to prevent coded memory access over interface or prevents output of data over other interface based on data received over former interface
DE102018125786A1 (en) Encrypted system memory management
DE102008026697A1 (en) Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals
EP3552344B1 (en) Bidirectionally linked blockchain structure
DE3321910A1 (en) DEVICE AND METHOD FOR PROTECTING SOFTWARE
DE602004001732T2 (en) Data encryption in an electronic device with multiple symmetric processors
WO2016165930A1 (en) Device and method for generating a key in a programmable hardware module
DE102019110440A1 (en) Replay protection for storage based on key refresh
DE102010009458A1 (en) Hardware Setup
DE112020005474T5 (en) ONE-TIME USE PASSWORD GENERATION
DE102013101709A1 (en) Circuit arrangement, method of forming a circuit arrangement, and method of checking integrity
DE112010005847T5 (en) Modifying a length of an element to form an encryption key
DE102010045580A1 (en) Circuit arrangement for use in microprocessor for e.g. smart card, has identification circuit producing key for encrypting data value to be written or decrypting data value to be read, where key depends on arrangement inherent properties

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection