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 1–5 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]