DE102013100572A1 - Bus arrangement for use in chip of smart card, has encoder producing output bit by combing two input bits for outputs according to bijective imaging of inputs bits on output bits, and outputting output bits to bus lines via outputs - Google Patents

Bus arrangement for use in chip of smart card, has encoder producing output bit by combing two input bits for outputs according to bijective imaging of inputs bits on output bits, and outputting output bits to bus lines via outputs Download PDF

Info

Publication number
DE102013100572A1
DE102013100572A1 DE201310100572 DE102013100572A DE102013100572A1 DE 102013100572 A1 DE102013100572 A1 DE 102013100572A1 DE 201310100572 DE201310100572 DE 201310100572 DE 102013100572 A DE102013100572 A DE 102013100572A DE 102013100572 A1 DE102013100572 A1 DE 102013100572A1
Authority
DE
Germany
Prior art keywords
bus
bits
output
input
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE201310100572
Other languages
German (de)
Other versions
DE102013100572B4 (en
Inventor
Rainer Göttfert
Berndt Gammel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102013100572.1A priority Critical patent/DE102013100572B4/en
Publication of DE102013100572A1 publication Critical patent/DE102013100572A1/en
Application granted granted Critical
Publication of DE102013100572B4 publication Critical patent/DE102013100572B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

The arrangement has a bus (200) provided with multiple bus lines (201). An encoder has inputs for the bus lines for receiving input bits, and outputs for the bus lines. The encoder produces each of output bits by combing two of the input bits for the outputs according to bijective imaging of the inputs bits on the output bits, preferably bijective imaging of input bit vectors on output bit vectors, where the imaging corresponds to multiplication of the input bit vectors with a matrix and subsequent addition of the vectors. The encoder outputs the output bits to the bus lines via the outputs. An independent claim is also included for a method for sending data via a bus.

Description

Technisches GebietTechnical area

Ausführungsbeispiele betreffen allgemein Busanordnungen und Verfahren zum Senden von Daten über einen Bus.Embodiments relate generally to bus arrangements and methods for transmitting data over a bus.

Hintergrundbackground

Auf Chips, wie sie beispielsweise auf Chipkarten angeordnet sind, werden unter Anderem vertrauenswürdige Daten, wie beispielsweise kryptographische Schlüssel für eine sichere Kommunikation, über Busse kommuniziert. Es ist wünschenswert, zu vermeiden, dass Angreifer durch Abhören eines Busses Informationen über vertrauenswürdige Daten erlangen kann.On chips, such as are arranged on smart cards, inter alia, trusted data, such as cryptographic keys for secure communication, communicates via buses. It is desirable to avoid attackers being able to obtain information about trusted data by listening to a bus.

ZusammenfassungSummary

Gemäß einem Ausführungsbeispiel wird eine Busanordnung bereitgestellt aufweisend einen Bus mit einer Mehrzahl von Busleitungen und einen Kodierer mit einem Eingang für jede Busleitung der Mehrzahl von Busleitungen zum Empfangen eines Eingangsbits und einem Ausgang für jede Busleitung der Mehrzahl von Busleitungen, der mit der Busleitung gekoppelt ist. Der Kodierer ist eingerichtet, für jeden Ausgang aus den Eingangsbits ein Ausgangsbit gemäß einer bijektiven Abbildung von Eingangsbits auf Ausgangsbits zu erzeugen, wobei der Kodierer eingerichtet ist, mindestens eines der Ausgangsbits durch Kombinieren von mindestens zwei der Eingangsbits zu erzeugen. Der Kodierer ist außerdem eingerichtet, die Ausgangsbits über die Ausgänge an die Busleitungen auszugeben.According to one embodiment, a bus arrangement is provided comprising a bus having a plurality of bus lines and an encoder having an input for each bus line of the plurality of bus lines for receiving an input bit and an output for each bus line of the plurality of bus lines coupled to the bus line. The encoder is arranged to generate, for each output from the input bits, an output bit according to a bijective mapping of input bits to output bits, the encoder being arranged to generate at least one of the output bits by combining at least two of the input bits. The encoder is also set up to output the output bits via the outputs to the bus lines.

Gemäß einer weiteren Ausführungsform wird ein Verfahren zum Senden von Daten über einen Bus gemäß der oben beschriebenen Busanordnung bereitgestellt.In accordance with another embodiment, a method of transmitting data over a bus in accordance with the bus arrangement described above is provided.

Kurze Beschreibung der ErfindungBrief description of the invention

Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.The figures do not reflect the actual proportions but are intended to illustrate the principles of the various embodiments. In the following, various embodiments will be described with reference to the following figures.

1 zeigt einen Chip. 1 shows a chip.

2 zeigt einen Bus. 2 shows a bus.

3 zeigt eine Busanordnung gemäß einer Ausführungsform. 3 shows a bus arrangement according to an embodiment.

4 zeigt ein Flussdiagramm gemäß einer Ausführungsform. 4 shows a flowchart according to one embodiment.

5 zeigt eine Busanordnung gemäß einem Ausführungsbeispiel. 5 shows a bus arrangement according to an embodiment.

6 zeigt eine Busanordnung gemäß einer Ausführungsform. 6 shows a bus arrangement according to an embodiment.

7 zeigt eine Busanordnung gemäß einer Ausführungsform. 7 shows a bus arrangement according to an embodiment.

8 zeigt eine Busanordnung gemäß einer Ausführungsform. 8th shows a bus arrangement according to an embodiment.

Beschreibungdescription

Die folgende detaillierte Beschreibung bezieht sich auf die beilegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen.The following detailed description refers to the accompanying figures, which show details and embodiments. These embodiments are described in such detail that those skilled in the art can practice the invention. Other embodiments are also possible and the embodiments may be changed in structural, logical and electrical terms without departing from the subject matter of the invention. The various embodiments are not necessarily mutually exclusive, but various embodiments may be combined to form new embodiments.

1 zeigt einen Chip 100. 1 shows a chip 100 ,

Der Chip 100 weist eine zentrale Recheneinheit (CPU) 101 und eine Komponente 102 auf. Die Komponente 102 ist mit der CPU 101 über einen Bus 103 gekoppelt. Beispielsweise ist die Komponente ein Zufallszahlengenerator, der Zufallszahlen erzeugt, und diese der CPU 101 über den Bus 103 bereitstellt. Die CPU 101 verwendet diese Zufallszahlen beispielsweise, um kryptographische Schlüssel für ein kryptographisches Verfahren (z. B. ein Verschlüsselungsverfahren oder ein Signierverfahren) zu erzeugen.The chip 100 has a central processing unit (CPU) 101 and a component 102 on. The component 102 is with the CPU 101 over a bus 103 coupled. For example, the component is a random number generator that generates random numbers and that of the CPU 101 over the bus 103 provides. The CPU 101 For example, this random number is used to generate cryptographic keys for a cryptographic method (eg, an encryption method or a signing method).

Der Chip kann weitere Komponenten aufweisen, die mit der CPU 101 über den Bus 103 oder einen weiteren Bus gekoppelt sind.The chip may have other components with the CPU 101 over the bus 103 or another bus are coupled.

Der Chip ist beispielsweise ein Chipkartenmodul auf einer Chipkarte und unterstützt beispielsweise die sichere Kommunikation mit Chipkartenlesern.The chip is, for example, a chip card module on a chip card and supports, for example, secure communication with chip card readers.

Daten, die von der CPU 101 an die Komponente 102 (oder auch in umgekehrter Richtung) transferiert werden, können (beispielsweise im Falle einer Zufallszahl für ein kryptographisches Verfahren) vertrauenswürdig (d. h. vertraulich) sein. Während die Daten über den Bus 103 laufen kann ein Angreifer versuchen, eine oder mehrere Leitungen des Busses 103 zu „proben”, d. h. abzuhören, d. h. die Bitfolge, die über die jeweilige Busleitung läuft, abzugreifen. Dazu muss der Angreifer die Busleitung (den Draht) kontaktieren.Data coming from the CPU 101 to the component 102 (or vice versa) may be trusted (ie confidential) (for example, in the case of a random number for a cryptographic method). While the data is on the bus 103 An attacker can try running one or more lines of the bus 103 to "rehearse", ie listen, ie the bit sequence that runs over the respective bus line to tap. To do this, the attacker must contact the bus line (the wire).

Ein solches Kontaktieren einer Busleitung auf einem Mikroprozessor oder Chip ist typischerweise technisch sehr anspruchsvoll. Es wird beispielsweise mit einem fokussierten Ionenstrahl, der Platingas enthält, zunächst eine Kontaktstelle auf den abzugreifenden Draht aufgebaut. Dann wird eine feine Nadel auf diese Kontaktstelle aufgesetzt.Such contacting of a bus line on a microprocessor or chip is typically technically very demanding. For example, with a focused ion beam containing platinum gas, first a contact point is built up on the wire to be picked up. Then a fine needle is placed on this contact point.

Mehrere Busleitungen gleichzeitig abzugreifen ist wesentlich schwieriger. Die Busleitungen verlaufen typischerweise in unterschiedlichen Tiefen. Um eine tiefliegende Leitung abzugreifen, müssen darüber liegende Leitungen zuvor aus den Weg geschafft werden, d. h. der Angreifer muss diese Leitungen anders führen (routen) damit Platz entsteht, um an die tiefer liegende Leitung zu gelangen.Fetching multiple bus lines at the same time is much more difficult. The bus lines typically run at different depths. In order to tap a low-lying line, above-lying lines must be avoided beforehand, i. H. The attacker must route these lines differently so that there is room to get to the lower line.

Entsprechend kann man davon ausgehen, dass es einem Angreifer gelingt, einige Busleitungen zu proben, jedoch nicht alle.Accordingly, it can be assumed that an attacker succeeds in rehearsing some bus lines, but not all.

Der Bus weist beispielsweise 16 oder 32 Busleitungen auf. Auch andere Breiten, z. B. 8 Bit oder 64 Bit können verwendet werden. Im Folgenden wird allgemein von einem n-Bit breiten Bus 103 ausgegangen, wobei n eine beliebige gerade Zahl ist (n = 2, 4, 6, 8, 10, 12, ...).The bus has, for example, 16 or 32 bus lines. Other widths, z. B. 8-bit or 64-bit can be used. The following is generally of an n-bit wide bus 103 where n is any even number (n = 2, 4, 6, 8, 10, 12, ...).

Probingschutz, d. h. Schutz gegen das Abgreifen von Daten, die über einen Bus übertragen werden, kann beispielsweise über eine Busverschlüsselung oder Maskierung erreicht werden. Dies wird im Folgenden mit Bezug auf 2 erläutert.Probing protection, ie protection against the picking up of data transmitted over a bus, can be achieved, for example, via bus encryption or masking. This will be described below with reference to 2 explained.

2 zeigt einen Bus 200. 2 shows a bus 200 ,

Der Bus 200 entspricht beispielsweise dem Bus 103 und dient zum parallelem Übertragen von n Bits x1, ..., xn (in diesem Beispiel n = 4), beispielsweise von der Komponente 102 an die CPU 101, in 2 von links nach rechts. Entsprechend weist der Bus 200n Busleitungen 201 auf. Am Anfang des Busses (auf der Seite der sendenden Komponente) ist für jede Busleitung 201 ein erster Addierer 202 vorgesehen, der das Datenbit xj, das über die Busleitung 201 übertragen wird, verschlüsselt oder maskiert mit einem unabhängigen Bit mi (dem Schlüsselbit oder Maskierungsbit). Über die Busleitung 201 wird dann nicht das Bit xi, sondern die Summe yi = xi + mi übertragen. (Summe bzw. Addition bedeutet hier stets Addition modulo 2 bzw. XOR, das heißt 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 0.)The bus 200 corresponds for example to the bus 103 and serves to transmit n bits x 1 , ..., x n (n = 4 in this example), for example from the component, in parallel 102 to the CPU 101 , in 2 left to right. Accordingly, the bus points 200n bus lines 201 on. At the beginning of the bus (on the side of the transmitting component) is for each bus line 201 a first adder 202 provided, the data bit x j , via the bus line 201 is transmitted, encrypted or masked with an independent bit m i (the key bit or mask bit). Over the bus line 201 Then, not the bit x i but the sum y i = x i + m i is transmitted. (Sum or addition here always means Addition modulo 2 or XOR, ie 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 0.)

Am Ende des Busses (auf der Seite der empfangenen Komponente, z. B. der CPU 101) ist für jede Busleitung 201 ein zweiter Addierer 203 vorgesehen, der das übertragenen Bit entschlüsselt oder demaskiert durch Addition von yi mit demselben Schlüsselbit mi, das am Bus-Anfang für die Verschlüsselung benutzt wurde. Es müssen also zu jedem Zeitpunkt am Bus-Anfang und am Bus-Ende dieselben Schlüsselbits m1, ..., mn vorhanden sein. Die Schlüsselbits mi werden beispielsweise laufend neu erzeugt, zum Beispiel mit einem Pseudozufallszahlengenerator. Beispielsweise sind (kleine) synchron laufende Pseudozufallszahlengeneratoren am Bus-Anfang und am Bus-Ende vorhanden, welche die Maskenbits mi generieren.At the end of the bus (on the side of the received component, eg the CPU 101 ) is for each bus line 201 a second adder 203 provided that decrypts or unmasked the transmitted bit by adding y i with the same key bit m i used for encryption at the bus start. The same key bits m 1 ,..., M n must therefore be present at the bus start and at the bus end at any time. For example, the key bits m i are continually recreated, for example, with a pseudorandom number generator. For example, there are (small) synchronous pseudo-random number generators at the bus start and at the bus end which generate the mask bits m i .

Gemäß einem Ausführungsbeispiel wird der Informationsgewinn, den ein Angreifer durch Proben von Busleitungen erzielen kann, verringert oder sogar ganz verhindert, wobei auf eine Maskierung der Busdaten, wie mit Bezug auf 2 erläutert, verzichtet wird. Daher entfällt insbesondere die Notwendigkeit identische Pseudozufallszahlengeneratoren am Bus-Anfang und Bus-Ende zu implementieren, welche die Maskierungsbits generieren. According to one embodiment, the information gain which an attacker can obtain by samples of bus lines is reduced or even completely prevented, with a view to masking the bus data as described with reference to FIGS 2 explained, is omitted. In particular, there is no need to implement identical pseudo-random number generators at the bus start and bus end which generate the mask bits.

Gemäß einem Ausführungsbeispiel wird eine Busanordnung bereitgestellt, wie sie in 3 dargestellt ist.According to one embodiment, a bus arrangement is provided as shown in FIG 3 is shown.

3 zeigt eine Busanordnung 300 gemäß einer Ausführungsform. 3 shows a bus arrangement 300 according to one embodiment.

Die Busanordnung 300 weist einen Bus 301 mit einer Mehrzahl von Busleitungen 302 auf.The bus arrangement 300 has a bus 301 with a plurality of bus lines 302 on.

Die Busanordnung 300 weist ferner einen Kodierer 303 mit einem Eingang 304 für jede Busleitung 302 der Mehrzahl von Busleitungen 302 zum Empfangen eines Eingangsbits und einem Ausgang 305 für jede Busleitung der Mehrzahl von Busleitungen, der mit der Busleitung gekoppelt ist, auf.The bus arrangement 300 also has an encoder 303 with an entrance 304 for every bus line 302 the majority of bus lines 302 for receiving an input bit and an output 305 for each bus line of the plurality of bus lines coupled to the bus line.

Der Kodierer 303 ist eingerichtet, für jeden Ausgang 305 aus den Eingangsbits ein Ausgangsbit gemäß einer bijektiven Abbildung von Eingangsbits auf Ausgangsbits zu erzeugen, wobei der Kodierer 303 eingerichtet ist, mindestens eines der Ausgangsbits durch Kombinieren von mindestens zwei der Eingangsbits zu erzeugen und wobei der Kodierer 303 eingerichtet ist, die Ausgangsbits über die Ausgänge 305 an die Busleitungen 302 auszugeben.The encoder 303 is set up, for each exit 305 to generate from the input bits an output bit according to a bijective mapping of input bits to output bits, the encoder 303 is arranged to generate at least one of the output bits by combining at least two of the input bits, and wherein the encoder 303 is set up, the output bits via the outputs 305 to the bus lines 302 issue.

In anderen Worten werden gemäß einer Ausführungsform Eingangsbits kombiniert, bevor sie mittels eines Busses übertragen werden, wobei das Kombinieren umkehrbar ist, d. h. die Eingangsbits bijektiv auf die Ausgangsbits abgebildet werden. Anders ausgedrückt werden zu übertragene Daten zunächst umgewandelt (konkret bijektiv auf andere Daten abgebildet) bevor sie übertragen werden. Am Ende des Busses können die ursprünglichen Daten durch einen entsprechenden Dekodierer wieder hergestellt werden.In other words, according to one embodiment, input bits are combined before being transmitted by means of a bus, the combining being reversible, i. H. the input bits are bijectively mapped to the output bits. In other words, data to be transmitted is first converted (specifically bijectively mapped to other data) before being transmitted. At the end of the bus, the original data can be restored by a corresponding decoder.

Durch eine (reine) Datenumwandlung am Anfang und Ende eines Busses lässt sich ein partieller Probingschutz erreichen. Daher kann durch Implementierung einer bijektiven Funktion an beiden Enden eines Busses bereits ein gewisser Grad an Sicherheit gegenüber Probingangriffen auf den Bus erzielt werden. Dies ist wesentlich günstiger zu realisieren (im Sinne geringerer Hardwarekosten) als eine Busmaskierung.By (pure) data conversion at the beginning and end of a bus a partial probing protection can be achieved. Therefore, by implementing a bijective function at both ends of a bus, some degree of security against probing attacks on the bus can already be achieved. This is much cheaper to implement (in terms of lower hardware costs) than a bus masking.

Gemäß einer Ausführungsform werden die Eingangsbits mittels einer – aufgrund bestimmter nachgewiesener Eigenschaften – als optimal erkannten bijektiven Funktion (oder Abbildung) f: (x1, ..., xn) → (y1, ..., yn) auf die Ausgangsbits abgebildet. Die Funktion f wird somit als Busumwandler für einen n Bit breiten Bus verwendet. Dadurch wird ein partieller Schutz gegen Probingangriffe erreicht.According to one embodiment, the input bits are referenced by means of a bijective function (or map) f: (x 1 ,..., X n ) → (y 1 ,..., Y n ) which is recognized as optimal on the basis of certain proven properties Output bits shown. The function f is thus used as a bus converter for an n-bit wide bus. This provides partial protection against probing attacks.

Die Abbildung (oder Funktion), gemäß der die Ausgangsbits aus den Eingangsbits erzeugt werden, kann eine lineare, eine affine oder eine nichtlineare Funktion sein. Es sollte beachtet werden, dass jede Abbildung von Eingangsbits (d. h. binären Eingangsvariablen) auf ein Ausgangsbit (d. h. eine binäre Ausgangsvariable), d. h. jede Boolesche Funktion, mittels der algebraischen (oder disjunktiven) Normalform als Term in den Eingangsvariablen schreiben lässt.The mapping (or function) according to which the output bits are generated from the input bits may be a linear, affine, or non-linear function. It should be noted that any mapping of input bits (i.e., binary input variables) to an output bit (i.e., a binary output variable), i. H. any Boolean function, by means of the algebraic (or disjunctive) normal form, can be written as a term in the input variables.

Im Unterschied zu einer Maskierung, bei der Eingangsbits mit Maskenbits kombiniert werden, kombiniert der Kodierer zur Erzeugung mindestens eines Ausgangsbits mindestens zwei der Eingangsbits. Die vom Kodierer durchgeführte Datenumwandlung kann auch Maskierung angesehen werden mit einer Maske, die der Kodierer aus den Daten selbst generiert (also als eine Daten-abhängige Maske).Unlike a mask in which input bits are combined with mask bits, the encoder combines at least two of the input bits to produce at least one output bit. The data conversion performed by the encoder can also be viewed as masking with a mask that the encoder generates from the data itself (that is, as a data-dependent mask).

Die Busanordnung ist beispielsweise in einem Chip angeordnet ist.The bus arrangement is arranged, for example, in a chip.

Beispielsweise ist die Busanordnung in einem Chip einer Chipkarte angeordnet.For example, the bus arrangement is arranged in a chip of a chip card.

Gemäß einer Ausführungsform ist der Kodierer eingerichtet, jedes der Ausgangsbits durch Kombinieren (z. B. Addieren, d. h. XOR-Verknüpfen, oder auch Multiplizieren, d. h. UND-Verknüpfen, oder eine Kombination davon) von mindestens zwei der Eingangsbits zu erzeugen.According to one embodiment, the encoder is arranged to generate each of the output bits by combining (e.g., adding, i.e., XORing, or else multiplying, i.e., ANDing, or a combination thereof) at least two of the input bits.

Die Abbildung der Eingangsbits auf Ausgangsbits ist beispielsweise eine bijektive Abbildung von (n-Bit) Eingangsbitvektoren auf (n-Bit) Ausgangsbitvektoren.The mapping of the input bits to output bits is, for example, a bijective mapping of (n-bit) input bit vectors to (n-bit) output bit vectors.

Beispielsweise entspricht die Abbildung einer Multiplikation eines Eingangsbitvektors mit einer (binären) Matrix und anschließender (binären) Addition eines (binären) Vektors. Der Vektor kann auch der Nullvektor sein, sodass die Abbildung nur der Multiplikation mit einer Matrix entspricht und linear ist. For example, the mapping corresponds to a multiplication of an input bit vector with a (binary) matrix and then (binary) addition of a (binary) vector. The vector can also be the zero vector, so that the map only corresponds to the multiplication by a matrix and is linear.

Die Matrix ist beispielsweise invertierbar (so dass die Abbildung bijektiv und invertierbar ist).For example, the matrix is invertible (so that the map is bijective and invertible).

Beispielsweise ist die Dimension der Matrix n×n und der Vektor ist ein n-dimensionaler Vektor ist, wobei n die Zahl der Eingangsbits (und auch die Zahl der Ausgangsbits und die Zahl der Busleitungen) ist.For example, the dimension of the matrix is n × n and the vector is an n-dimensional vector, where n is the number of input bits (and also the number of output bits and the number of bus lines).

Die Matrix enthält beispielsweise in jeder Zeile n – 1 Einsen. Die Matrix kann auch in jeder Zeile bis auf eine Zeile n – 1 Einsen enthalten. Eine Zeile kann beispielsweise nur Einsen enthalten.For example, the matrix contains n - 1 ones in each row. The matrix can also contain n - 1 ones in each line except for one line. For example, a line may contain only ones.

Gemäß einer Ausführungsform weist die Busanordnung eine erste Komponente und eine zweite Komponente auf, die mittels des Busses gekoppelt sind, wobei die erste Komponente eingerichtet ist, dem Kodierer die Eingangsbits bereitzustellen, und wobei die Eingangsbits an die zweite Komponente mittels des Busses zu sendende Bits sind.According to one embodiment, the bus arrangement comprises a first component and a second component coupled by means of the bus, wherein the first component is arranged to provide the input bits to the encoder, and wherein the input bits are bits to be transmitted to the second component via the bus ,

Das Eingangsbit für eine Busleitung ist beispielsweise ein Bit eines Datenstroms. Beispielsweise wird dem Kodierer über jeden Eingang ein Datenstrom zugeführt, beispielsweise so dass innerhalb eines bestimmten Zeitraums (beispielsweise pro Taktzyklus eines Bustakts) ein Eingangsbitvektor bestehend aus den Eingangsbits für jede Busleitung zugeführt wird. Jeder Eingangsbitvektor wird auf einen Ausgangsbitvektor abgebildet, über den Bus versendet und beispielsweise von einem Kodierer am Busende in den Eingangsbitvektor zurück umgewandelt.The input bit for a bus line is, for example, a bit of a data stream. For example, the coder is supplied with a data stream via each input, for example, such that within a certain period of time (for example, per clock cycle of a bus clock) an input bit vector consisting of the input bits for each bus line is supplied. Each input bit vector is mapped to an output bit vector, sent over the bus and, for example, converted back to the input bit vector by an encoder at the bus end.

Der Datenstrom für mindestens eine Busleitung der Mehrzahl von Busleitungen enthält beispielsweise einen kryptographischen Schlüssel und der Datenstrom für mindestens eine weitere Busleitung der Mehrzahl von Busleitungen ist beispielsweise ein Zufallsbitstrom. Wie unten erläutert erhöht das die Sicherheit der Übertragung des kryptographischen Schlüssels. Beispielsweise werden allen Busleitungen bis auf eine Busleitung Zufallsbitströme zugeführt.The data stream for at least one bus line of the plurality of bus lines contains, for example, a cryptographic key, and the data stream for at least one further bus line of the plurality of bus lines is, for example, a random bit stream. As explained below, this increases the security of the transmission of the cryptographic key. For example, random bus currents are supplied to all bus lines except for one bus line.

Die Busanordnung weist beispielsweise eine Komponente, die eingerichtet ist, einen kryptographischen Schlüssel zu erzeugen, der mindestens einen Busleitung der Mehrzahl von Busleitungen einen den kryptographischen Schlüssel als Datenstrom zuzuführen und der mindestens einen weitere Busleitung der Mehrzahl von Busleitungen einen Zufallsbitstrom zuzuführen.The bus arrangement comprises, for example, a component which is set up to generate a cryptographic key, to supply the cryptographic key as a data stream to at least one bus line of the plurality of bus lines and to supply a random bit stream to the at least one further bus line of the plurality of bus lines.

Zum Beispiel weist die Komponente einen Pseudozufallszahlengenerator auf, der eingerichtet ist, den Zufallsbitstrom zu erzeugen.For example, the component includes a pseudorandom number generator configured to generate the random bitstream.

Der Zufallsbitstrom ist beispielsweise mit dem kryptographischen Schlüssel unkorreliert.The random bit stream, for example, is uncorrelated with the cryptographic key.

Gemäß einer Ausführungsform weist die Busanordnung einen Dekodierer auf, der eingerichtet ist, die Ausgangsbits über den Bus von dem Kodierer zu empfangen und die Eingangsbits aus den Ausgangsbits zu rekonstruieren.In one embodiment, the bus arrangement includes a decoder configured to receive the output bits over the bus from the encoder and to reconstruct the input bits from the output bits.

Beispielsweise ist der Dekodierer eingerichtet, die Ausgangsbits aus den Eingangsbits gemäß der Umkehrabbildung der Abbildung zu ermitteln.For example, the decoder is arranged to determine the output bits from the input bits according to the inverse mapping of the map.

Die Komponenten der Busanordnung (wie z. B. Kodierer, Dekodierer, Pseudozufallszahlengenerator etc.) werden beispielsweise durch ein oder mehrere Schaltkreise realisiert. In einer Ausführungsform ist ein ”Schaltkreis” als jegliche Einheit zu verstehen, die eine Logik implementiert, und die sowohl Hardware, Software, Firmware oder eine Kombination daraus sein kann. Somit kann ein ”Schaltkreis” in einer Ausführungsform ein hart-verdrahteter Logik-Schaltkreis oder ein programmierbarer Logik-Schaltkreis sein, wie beispielsweise ein programmierbarer Prozessor, z. B. ein Mikroprozessor (z. B. ein CISC(Complex Instruction Set Computer)-Prozessor oder ein RISC(Reduced Instruction Set Computer)-Prozessor). Unter einem ”Schaltkreis” kann auch ein Prozessor zu verstehen sein, der Software ausführt, zu verstehen sein, z. B. jegliche Art von Computer-Programm, etwa ein Computer-Programm in Programmiercode für eine virtuelle Maschine (Virtual Machine), wie z. B. ein Java-Computer-Programm. Unter einem ”Schaltkreis” kann in einer Ausführungsform jegliche Art der Implementierung der im Weiteren beschriebenen Funktionen zu verstehen sein.The components of the bus arrangement (such as encoders, decoders, pseudo-random number generator, etc.) are realized, for example, by one or more circuits. In one embodiment, a "circuit" is to be understood as any entity that implements logic, and may be hardware, software, firmware, or any combination thereof. Thus, in one embodiment, a "circuit" may be a hard-wired logic circuit or a programmable logic circuit, such as a programmable processor, e.g. A microprocessor (eg, a CISC (Complex Instruction Set Computer) processor or a Reduced Instruction Set Computer (RISC) processor). A "circuit" can also be understood to mean a processor that executes software, to understand, for example, For example, any type of computer program, such as a computer program in programming code for a virtual machine, such. For example, a Java computer program. In one embodiment, a "circuit" may be understood as any type of implementation of the functions described below.

Die Busanordnung führt beispielsweise ein Verfahren aus, wie es in 4 dargestellt ist.For example, the bus arrangement executes a method as described in US Pat 4 is shown.

4 zeigt ein Flussdiagramm 400 gemäß einer Ausführungsform. 4 shows a flowchart 400 according to one embodiment.

Das Flussdiagram 400 stellt ein Verfahren zum Senden von Daten über einen Bus dar.The flowchart 400 illustrates a method of transmitting data over a bus.

In 401, wird ein Eingangsbits für jede Busleitung einer Mehrzahl von Busleitungen eines Busses empfangen.In 401 , an input bit is received for each bus line of a plurality of bus lines of a bus.

In 402 wird für jede Busleitung ein Ausgangsbits aus den Eingangsbits gemäß einer bijektiven Abbildung von Eingangsbits auf Ausgangsbits erzeugt, wobei mindestens eines der Ausgangsbits durch Kombinieren von mindestens zwei der Eingangsbits erzeugt wird.In 402 For example, for each bus, an output bit is generated from the input bits according to a bijective mapping of input bits to output bits, wherein at least one of the output bits is generated by combining at least two of the input bits.

In 403 werden die Ausgangsbits an die Busleitungen ausgegeben.In 403 the output bits are output to the bus lines.

Ausführungsbeispiele, die im Zusammenhang mit der Busanordnung 300 beschrieben sind, gelten sinngemäß auch für das in 4 dargestellte Verfahren und umgekehrt.Embodiments relating to the bus arrangement 300 are also analogously for the in 4 illustrated method and vice versa.

Im Folgenden werden Ausführungsbeispiele genauer erläutert.In the following, embodiments will be explained in more detail.

5 zeigt eine Busanordnung 500 gemäß einem Ausführungsbeispiel. 5 shows a bus arrangement 500 according to an embodiment.

Die Busanordnung weist einen Bus 501 auf, der beispielsweise dem Bus 103 entspricht, und zum parallelen Übertragen von n Bits x1, ..., xn (in diesem Beispiel n = 4), beispielsweise von der Komponente 102 an die CPU 101, in 2 von links nach rechts dient.The bus arrangement has a bus 501 on, for example, the bus 103 and for n bits x 1 , ..., x n (in this example n = 4) to be transmitted in parallel, for example, from the component 102 to the CPU 101 , in 2 from left to right.

Entsprechend weist der Bus 501n Busleitungen 502 auf. Am Anfang des Busses (auf der Seite der sendenden Komponente) ist ein Kodierer (oder Umwandler) 503 vorgesehen. Am Ende des Busses (auf der Seite der empfangenen Komponente, z. B. der CPU 102) ist ein Dekodierer (oder Rückumwandler) 504 vorgesehen.Accordingly, the bus points 501 n bus lines 502 on. At the beginning of the bus (on the side of the sending component) is an encoder (or converter) 503 intended. At the end of the bus (on the side of the received component, eg the CPU 102 ) is a decoder (or reverse converter) 504 intended.

Der Kodierer (oder Bus-Umwandler) 503 implementiert eine bijektive mathematische Funktion f. Für einen n Bit breiten Bus hat die Funktion f genau n Eingangsgrößen x1, x2, ..., xn und n binäre Ausgangsgrößen y1, y2, ..., yn. Die Funktion f führt also einen n-Bit-Vektor x = (x1, x2, ..., xn) über in einen n-Bit-Vektor y = (y1, y2, ..., yn). Die Funktion f ist bijektiv. Das bedeutet, dass zwei unterschiedliche Eingangsvektoren x1 und x2 durch f stets in zwei unterschiedliche Ausgangsvektoren y1 und y2 übergeführt werden. Anders ausgedrückt: wenn der Inputvektor x alle 2n möglichen n-Tupel (x1, x2, ..., xn) durchläuft, dann treten unter den zugehörigen Funktionswerten y = f(x) alle 2n möglichen binären n-Tupel y = (y1, y2, ..., yn) auf.The encoder (or bus converter) 503 implements a bijective mathematical function f. For an n-bit wide bus, the function f has exactly n input quantities x 1 , x 2 ,..., X n and n binary output quantities y 1 , y 2 ,..., Y n . The function f thus introduces an n-bit vector x = (x 1 , x 2 ,..., X n ) into an n-bit vector y = (y 1 , y 2 ,..., Y n ). The function f is bijective. This means that two different input vectors x 1 and x 2 are always converted by f into two different output vectors y 1 and y 2 . In other words, if the input vector x passes through every 2 n possible n-tuples (x 1 , x 2 , ..., x n ), then every 2 n possible binary n-tuples occur under the associated function values y = f (x) y = (y 1 , y 2 ,..., y n ).

Eine bijektive Funktion ist umkehrbar. Die Umkehrfunktion von f wird mit f1 bezeichnet. Die Umkehrfunktion wird durch den Rückumwandler 504 am Bus-Ende implementiert.A bijective function is reversible. The inverse of f is called f 1 . The inverse function is through the back converter 504 implemented at the bus end.

5 stellt dieses Konzept für einen 4 Bit breiten Bus dar. Angenommen, es soll über den Bus 501 der Vektor (oder das Wort) x = (x1, x2, x3, x4) geschickt werden. 5 Imagine this concept for a 4-bit wide bus. Let's assume it's over the bus 501 the vector (or word) x = (x 1 , x 2 , x 3 , x 4 ) will be sent.

Dann wird das Wort am Bus-Anfang umgewandelt in ein Wort y = (y1, y2, y3, y4), entsprechend der implementierten Funktion f. Das heißt y = f(x). Über den Bus 501 wird dann anstelle von x der Vektor (oder das Wort) y = (y1, y2, y3, y4) transferiert.Then the word at the beginning of the bus is converted into a word y = (y 1 , y 2 , y 3 , y 4 ) corresponding to the implemented function f. That is, y = f (x). About the bus 501 Then, instead of x, the vector (or word) y = (y 1 , y 2 , y 3 , y 4 ) is transferred.

Am Bus-Ende wird aus dem übertragenen Wort y mithilfe der implementierten Umkehrfunktion f–1 das ursprüngliche Wort x wiedergewonnen.At the bus end, the original word x is retrieved from the transmitted word y using the implemented inverse function f -1 .

Ein 4-Bit-Vekor, oder ein 4-Bit-Wort, kann als eine ganze Zahl zwischen 0 und 15 interpretiert werden. Der 4-Bit-Vektor x = (x1, x2, x3, x4) ist dann die Binärdarstellung dieser Zahl. Das beschriebene Szenario kann daher auch wie folgt beschrieben werden: Anstatt eine Zahl x direkt über den Bus zu schicken, wird sie umgewandelt in eine Zahl y. Die Zahl y wird dann über den Bus geschickt. Am Bus-Ende wird y wieder rückverwandelt in x.A 4-bit word, or a 4-bit word, can be interpreted as an integer between 0 and 15. The 4-bit vector x = (x 1 , x 2 , x 3 , x 4 ) is then the binary representation of that number. The described scenario can therefore also be described as follows: Instead of sending a number x directly over the bus, it is converted into a number y. The number y is then sent over the bus. At the bus end, y is reconverted back to x.

Man kann zeigen, dass die Übertragung von y anstelle von x einen gewissen Probingschutz darstellt, wenn die bijektive Funktion f gut (in dem unten erläuterten Sinn) gewählt ist. Das heißt ein Angreifer, der einen oder einige (aber nicht alle) Busleitungen 502 proben (d. h. abhören) kann und dadurch eine entsprechende Information über das übertragene Wort y gewinnt, hat hierdurch im allgemeinen eine geringere Information über das Wort x gewonnen. Dies wird im Folgenden genauer erläutert.It can be shown that the transmission of y instead of x represents some probing protection when the bijective function f is well chosen (in the sense explained below). That means an attacker who has one or several (but not all) bus lines 502 Samples (ie wiretaps) and thereby obtains a corresponding information about the transmitted word y, this has generally gained less information about the word x. This will be explained in more detail below.

Bestimmung der optimalen Busumwandler-Funktion Determination of the optimal bus converter function

Sei f: (x1, ..., xn) → (y1, ..., yn) eine bijektive Funktion. Für die Analyse von f werden die n Eingangsvariablen x1, x2, ..., xn als n symmetrisch verteilte, statistisch unabhängige, binärwertige Zufallsvariablen betrachtet.Let f: (x 1 , ..., x n ) → (y 1 , ..., y n ) be a bijective function. For the analysis of f, the n input variables x 1 , x 2 , ..., x n are considered to be n symmetrically distributed, statistically independent, binary valued random variables.

Eine Zufallsvariable X heißt binärwertig, wenn sie den Wert 0 oder den Wert 1 annehmen kann, aber keinen anderen Wert. Eine binärwertige Zufallsvariable X heißt symmetrisch, wenn sie den Wert 0 mit der Wahrscheinlichkeit ½ annimmt und sie den Wert 1 ebenfalls mit der Wahrscheinlichkeit ½ annimmt.A random variable X is called binary if it can take the value 0 or the value 1, but no other value. A binary-valued random variable X is called symmetric if it assumes the value 0 with the probability ½ and it also assumes the value 1 with the probability ½.

Zwei binärwertige symmetrisch verteilte Zufallsvariablen X1 und X2 heißen statistisch unabhängig, wenn gilt: Die Wahrscheinlichkeit, dass X1 = a und X2 = b ist, ist gleich der Wahrscheinlichkeit, dass X1 = a ist multipliziert mit der Wahrscheinlichkeit, dass X2 = b ist, d. h. in Formeln ausgedrückt P(X1 = a, X2 = b) = P(X1 = a) P(X2 = b) für beliebige a, b aus {0, 1}.Two binary-valued symmetrically distributed random variables X 1 and X 2 are statistically independent if: The probability that X 1 = a and X 2 = b is equal to the probability that X 1 = a multiplied by the probability that X 2 = b, ie in formulas P (X 1 = a, X 2 = b) = P (X 1 = a) P (X 2 = b) for any a, b from {0, 1}.

Es wird somit angenommen, dass die n Eingangsvariablen x1, ..., xn von f binärwertige, symmetrisch verteilte, statistisch unabhängige Zufallsvariablen sind. Weil die Funktion f bijektiv ist, folgt dann, dass die n Ausgangsvariablen y1, ..., yn ebenfalls binärwertige, symmetrisch verteilte und statistisch unabhängige Zufallsvariablen sind.It is thus assumed that the n input variables x 1 , ..., x n of f are binary-valued, symmetrically distributed, statistically independent random variables. Because the function f is bijective, it follows that the n output variables y 1 , ..., y n are also binary valued, symmetrically distributed, and statistically independent random variables.

Ein Zufallsvektor ist ein Vektor, dessen Koordinaten Zufallsvariablen sind. Z. B. ist X = (X1, X2, X3) ein Zufallsvektor, wenn X1, X2, und X3 Zufallsvariable sind.A random vector is a vector whose coordinates are random variables. For example, X = (X 1 , X 2 , X 3 ) is a random vector if X 1 , X 2 , and X 3 are random variables.

Seien X und Y zwei Zufallsvektoren. Dann ist für sie die gemeinsame Information (engl. mutual information) I(X, Y) definiert. Der Begriff „mutual information” wurde von Claude Shannon im Jahr 1948 in die Mathematik eingeführt als ein zentraler Begriff der von ihm begründeten mathematischen Disziplin „Informationstheorie”. Entsprechend ist der Begriff „gemeinsame Information zweier Zufallsvektoren” bekannt. Die gemeinsame Information I(X, Y) ist beispielsweise gegeben durch

Figure DE102013100572A1_0002
Let X and Y be two random vectors. Then the mutual information I (X, Y) is defined for them. The term "mutual information" was introduced to mathematics by Claude Shannon in 1948 as a central notion of the mathematical discipline "Information Theory" he founded. Accordingly, the term "common information of two random vectors" is known. The common information I (X, Y) is given by, for example
Figure DE102013100572A1_0002

Hier genügt es, festzustellen, dass die gemeinsame Information I(X, Y) zweier Zufallsvektoren X und Y stets eine nichtnegative Zahl ist, die auch Null sein kann. Wenn I(X, Y) = 0, dann kann aus der Kenntnis von Y keine Information über X abgeleitet werden. Wird beispielsweise angenommen, dass X und Y Zufallsvektoren der Länge 10 sind. Angenommen es gilt I(X, Y) = 1. Dann bedeutet das, dass aus der Kenntnis von Y man 1 Bit an Information über den Vektor X gewinnen kann. Wenn I(X, Y) = 5 gilt, könnte man aus Y fünf Bit Information über X gewinnen.Here it suffices to state that the common information I (X, Y) of two random vectors X and Y is always a nonnegative number, which may also be zero. If I (X, Y) = 0, then no information about X can be derived from the knowledge of Y. For example, assume that X and Y are 10-length random vectors. Assuming I (X, Y) = 1 then it means that from the knowledge of Y one can gain 1 bit of information about the vector X. If I (X, Y) = 5, one could obtain five bits of information about X from Y.

Die f-Matrix und der K-Wert von fThe f matrix and the K value of f

Sei f: (x1, ..., xn) → (y1 ..., yn) eine bijektive Funktion. Seien x1, ..., xn binärwertige, symmetrisch verteilte, statistisch unabhängige Zufallsvariablen. Aus den n Zufallsvariablen x1, ..., xn lassen sich 2n – 1 verschiedene Zufallsvektoren bilden: (x1), (x2), ..., (xn), (x1, x2), (x1, x3), ..., (x1, xn), (x2, x3), ..., (xn-1, xn), (x1, x2, x3), .., (x1, x2, ..., xn).Let f: (x 1 , ..., x n ) → (y 1 ..., y n ) be a bijective function. Let x 1 , ..., x n be binary valued, symmetrically distributed, statistically independent random variables. From the n random variables x 1 , ..., x n , 2 n - 1 different random vectors can be formed: (x 1 ), (x 2 ), ..., (x n ), (x 1 , x 2 ), (x 1 , x 3 ), ..., (x 1 , x n ), (x 2 , x 3 ), ..., (x n-1 , x n ), (x 1 , x 2 , x 3 ), .., (x 1 , x 2 , ..., x n ).

Ebenso lassen sich aus den n Zufallsvariablen y1, ..., yn, insgesamt 2n – 1 verschiedene Zufallsvektoren bilden:
(y1), (y2), ..., (y1, y2, ..., yn).
Likewise, from the n random variables y 1 ,..., Y n , a total of 2 n -1 different random vectors can be formed:
(y 1 ), (y 2 ), ..., (y 1 , y 2 , ..., y n ).

Für jeden Zufallsvektor X gebildet aus x1, ..., xn, und für jeden Zufallsvektor Y gebildet aus y1, ..., yn, kann die gemeinsame Information I(X, Y) berechnet werden. Die berechneten (2n – 1) × (2n – 1) gemeinsamen Informationen I(X, Y) bilden eine (2n – 1) × (2n – 1)-Matrix, die im Folgenden als f-Matrix bezeichnet wird.For each random vector X formed of x 1 , ..., x n , and for each random vector Y formed of y 1 , ..., y n , the common information I (X, Y) can be calculated. The computed ( 2n -1) x ( 2n -1) common information I (X, Y) form a ( 2n -1) x ( 2n -1) matrix, hereinafter referred to as f-matrix ,

Beispiel 1 (schlechtestmöglicher Fall für n = 4):Example 1 (Worst Case for n = 4):

Sei f: (x1, x2, x3, x4) → (y1, y2, y3, y4) mit y1 = x1, y2 = x2, y3 = x3, und y4 = x4. Mit anderen Worten, f ist die identische Abbildung. Diese Funktion f repräsentiert den Fall, dass kein Busumwandler eingesetzt wird.Let f: (x 1 , x 2 , x 3 , x 4 ) → (y 1 , y 2 , y 3 , y 4 ) with y 1 = x 1 , y 2 = x 2 , y 3 = x 3 , and y 4 = x 4 . In other words, f is the identical mapping. This function f represents the case where no bus converter is used.

Man erhält die folgende f-Matrix:

Figure DE102013100572A1_0003
The following f-matrix is obtained:
Figure DE102013100572A1_0003

Die Summe aller Matrixeinträge ist 256. Dies wird als der K-Wert von f bezeichnet. In diesem Fall ist somit K(f) = 256.The sum of all matrix entries is 256. This is referred to as the K value of f. In this case, K (f) = 256.

Beispiel 2 (bestmöglicher Fall für n = 4):Example 2 (best case for n = 4):

Sei f: (x1, x2, x3, x4) → (y1, y2, y3, y4) mit
y1 = x2 + x3 + x4,
y2 = x1 + x3 + x4,
y3 = x1 + x2 + x4,
y4 = x1 + x2 + x3.
Be f: (x 1 , x 2 , x 3 , x 4 ) → (y 1 , y 2 , y 3 , y 4 ) With
y 1 = x 2 + x 3 + x 4 ,
y 2 = x 1 + x 3 + x 4 ,
y 3 = x 1 + x 2 + x 4 ,
y 4 = x 1 + x 2 + x 3 .

Diese Funktion f repräsentiert den bestmöglichen Fall für einen Busumwandler für n = 4. Diese Funktion hat die folgende f-Matrix:

Figure DE102013100572A1_0004
This function f represents the best case for a bus converter for n = 4. This function has the following f-matrix:
Figure DE102013100572A1_0004

Die Summe aller Matrixeinträge ist 154. Der K-Wert der betrachteten Funktion f ist somit K(f) = 154.The sum of all matrix entries is 154. The K-value of the considered function f is therefore K (f) = 154.

Es gibt 16! = 20 922 789 888 000 bijektive binäre Funktionen in vier Eingangsvariablen und Ausgangsvariablen. Jede dieser Funktionen hat einen K-Wert, der zwischen 154 und 256 liegt. Funktionen mit dem kleinstmöglichen K-Wert, also mit dem K-Wert = 154, werden im Folgenden als optimal (für n = 4) bezeichnet.There are 16! = 20 922 789 888 000 bijective binary functions in four input variables and output variables. Each of these functions has a K value that is between 154 and 256. Functions with the smallest possible K value, ie with the K value = 154, are referred to below as optimal (for n = 4).

Optimale Funktionen empfehlen sich für den Busumwandler 503. Sie bieten den größtmöglichen Schutz gegen Probingangriffe.Optimal functions are recommended for the bus converter 503 , They offer the greatest possible protection against probing attacks.

Die in Beispiel 2 betrachtete Funktion f kann auch – unter Verwendung der Matrixdarstellung – so beschrieben werden: f: (x1, x2, x3, x4) → (y1, y2, y3, y4) mit

Figure DE102013100572A1_0005
The function f considered in Example 2 can also be described using the matrix representation as follows: f: (x 1 , x 2 , x 3 , x 4 ) → (y 1 , y 2 , y 3 , y 4 ) With
Figure DE102013100572A1_0005

Man überprüft leicht, dass die angegebene Matrix

Figure DE102013100572A1_0006
selbstinvers ist: Die Matrix A multipliziert mit sich selbst (binär gerechnet) ergibt die Einheitsmatrix
Figure DE102013100572A1_0007
One easily checks that the given matrix
Figure DE102013100572A1_0006
itself is inverse: The matrix A multiplied by itself (in binary terms) yields the unit matrix
Figure DE102013100572A1_0007

Daraus folgt, dass die Umkehrfunktion von f identisch ist mit f. Das heißt es gilt f = f1.It follows that the inverse of f is identical to f. This means that f = f 1 .

Das bedeutet, dass dieselbe Funktion am Bus-Anfang und am Bus-Ende implementiert werden kann.This means that the same function can be implemented at the bus start and at the bus end.

Die durch f(x) = xA mit x = (x1, x2, x3, x4) und

Figure DE102013100572A1_0008
beschriebene Funktion f ist optimal (hat den minimalen K-Wert). Durch Umordnung der Zeilen der Matrix A können weitere Matrizen B erzeugt werden. Diese Matrizen B definieren durch f(x) = xB weitere optimale Funktionen f. Insgesamt können auf diese Weise 4! = 24 optimale Funktionen erzeugt werden.The values given by f (x) = xA where x = (x 1 , x 2 , x 3 , x 4 ) and
Figure DE102013100572A1_0008
described function f is optimal (has the minimum K value). By rearranging the rows of the matrix A further matrices B can be generated. These matrices B define further optimal functions f by f (x) = xB. Overall, this way 4! = 24 optimal functions are generated.

Beispiel 3 (Fall n = 6):Example 3 (case n = 6):

Eine optimale bijektive Funktion mit sechs Eingangsvariablen und Ausgangsvariablen ist gegeben durch f(x) = xA, wobei x = (x1, x2, x3, x4, x5, x6) und

Figure DE102013100572A1_0009
An optimal bijective function with six input variables and output variables is given by f (x) = xA, where x = (x 1 , x 2 , x 3 , x 4 , x 5 , x 6 ) and
Figure DE102013100572A1_0009

Die f-Matrix für diese Funktion hat 63 Zeilen und 63 Spalten (da 26 – 1 = 63 ist). Das heißt, die f-Matrix enthält 3969 Einträge für gemeinsame Informationen I(X, Y), wobei X und Y aus den Eingangsvariablen bzw. Ausgangsvariablen von f gebildete Zufallsvektoren sind. Der K-Wert von f beträgt 3474 (und ist kleinstmöglich).The f matrix for this function has 63 rows and 63 columns (since 2 is 6 - 1 = 63). That is, the f matrix contains 3969 entries for common information I (X, Y), where X and Y are random vectors formed from the input variables of f. The K value of f is 3474 (and is as small as possible).

Beispiel 4 (Fall n = 8):Example 4 (case n = 8):

Eine optimale bijektive Funktion mit acht Eingangsvariablen und Ausgangsvariablen ist gegeben durch f(x) = xA, wobei x = (x1, x2, x3, x4, x5, x6, x7, x8) und

Figure DE102013100572A1_0010
An optimal bijective function with eight input variables and output variables is given by f (x) = xA, where x = (x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 ) and
Figure DE102013100572A1_0010

Die zugehörige f-Matrix hat 255 Zeilen und ebenso viele Spalten.The associated f-matrix has 255 rows and as many columns.

In verkürzter Form lautet die f-Matrix wie folgt: 1 2 3 4 5 6 7 8 1 0 0 0 0 0 0 071 1 2 0 0271 05016 055115 036120 013115 18 2 3 0 02513 04011521 03513025 015131210 118210 28 3 4 0 02216 02812424 0171362163 12822434 22236 38 4 5 0 018110 015131210 13523035 24031541 32543 48 5 6 0 013115 136220 255315 35046 4275 58 6 7 071 128 256 370 456 528 68 7 8 18 228 356 470 556 628 78 8 In abbreviated form, the f-matrix is as follows: 1 2 3 4 5 6 7 8th 1 0 0 0 0 0 0 0 7 1 1 2 0 0 27 1 0 50 1 6 0 55 1 15 0 36 1 20 0 13 1 15 1 8 2 3 0 0 25 1 3 0 40 1 15 2 1 0 35 1 30 2 5 0 15 1 31 2 10 1 18 2 10 2 8 3 4 0 0 22 1 6 0 28 1 24 2 4 0 17 1 36 2 16 3 1 28 2 24 3 4 2 22 3 6 3 8 4 5 0 0 18 1 10 0 15 1 31 2 10 1 35 2 30 3 5 2 40 3 15 4 1 3 25 4 3 4 8 5 6 0 0 13 1 15 1 36 2 20 2 55 3 15 3 50 4 6 4 27 5 5 8 6 7 0 7 1 1 28 2 56 3 70 4 56 5 28 6 8 7 8th 1 8 2 28 3 56 4 70 5 56 6 28 7 8 8th

Die Bedeutung dieser verkürzten Form der f-Matrix ist die Folgende: Betrachtet man etwa den Eintrag in der dritten Zeile und vierten Spalte. Dort steht 03513025. Wenn X ein fester Zufallsvektor der Länge drei ist. Zum Beispiel sei X = (x1, x2, x3). Und wenn Y alle 70 möglichen Zufallsvektoren der Länge vier durchläuft. Das heißt Y = (y1, y2, y3, y4), (y1, y2, y3, y5), ..., (y5, y6, y7, y8). Dann ist die gemeinsame Information I(X, Y) entweder 0 oder 1 oder 2. Wenn Y alle 70 Möglichkeiten für einen Zufallsvektor aus 4 Variablen aus {y1, y2, ..., y8} durchläuft, dann nimmt I(X, Y) den Wert 0 genau 35 mal an. Der Wert 1 wird 30 mal angenommen. Der Wert 2 wird fünfmal angenommen.The meaning of this truncated form of the f-matrix is the following: Consider, for example, the entry in the third row and fourth column. There is 0 35 1 30 2 5 . If X is a fixed three-length random vector. For example, let X = (x 1 , x 2 , x 3 ). And when Y goes through all 70 possible random vectors of length four. That is, Y = (y 1 , y 2 , y 3 , y 4 ), (y 1 , y 2 , y 3 , y 5 ), ..., (y 5 , y 6 , y 7 , y 8 ). Then the common information I (X, Y) is either 0 or 1 or 2. If Y goes through all 70 possibilities for a random vector of 4 variables from {y 1 , y 2 , ..., y 8 }, then I ( X, Y) the value 0 exactly 35 times. The value 1 is assumed 30 times. The value 2 is assumed five times.

Beispiel 5 (allgemeiner Fall mit n gerade):Example 5 (general case with n even):

Eine optimale Funktion mit n Eingangsvariablen und Ausgangsvariablen ist gegeben durch f(x) = xA, wobei x = (x1, x2, ..., xn) und wobei A eine binäre n×n-Matrix ist, die lauter Einsen enthält mit Ausnahme der Diagonaleinträge, die alle Null sind.An optimal function with n input variables and output variables is given by f (x) = x A, where x = (x 1 , x 2 , ..., x n ) and where A is a n × n binary matrix containing all ones except the diagonal entries which are all zero.

Weitere optimale Funktionen erhält man, wenn man die Zeilen der Matrix A in eine andere Reihenfolge anordnet. Sei B eine solche aus A hervorgegangene Matrix. Dann ist die durch f(x) = xB definierte Funktion ebenfalls optimal.Further optimal functions are obtained by arranging the rows of matrix A in a different order. Let B be such a matrix resulting from A. Then the function defined by f (x) = xB is also optimal.

Ebenfalls optimal sind alle Funktionen der Form f(x) = xB + c, wobei c ein konstanter Vektor der Länge n ist. Solche Funktionen werden als affin bezeichnet.Also optimal are all functions of the form f (x) = xB + c, where c is a constant vector of length n. Such functions are called affine.

Zur Veranschaulichung (für n = 4) und mit c = (1, 1, 1, 1):

Figure DE102013100572A1_0011
By way of illustration (for n = 4) and with c = (1, 1, 1, 1):
Figure DE102013100572A1_0011

Dann ist y = f(x) = xB + c die Funktion f: x = (x1, x2, x3, x4) → y = (y1, y2, y3, y4) mit
y1 = x1 + x3 + x4 + 1,
y2 = x1 + x2 + x4 + 1,
y3 = x2 + x3 + x4 + 1,
y4 = x1 + x2 + x3+ 1.
Then y = f (x) = xB + c is the function f: x = (x 1 , x 2 , x 3 , x 4 ) → y = (y 1 , y 2 , y 3 , y 4 ) With
y 1 = x 1 + x 3 + x 4 + 1,
y 2 = x 1 + x 2 + x 4 + 1,
y 3 = x 2 + x 3 + x 4 + 1,
y 4 = x 1 + x 2 + x 3 + 1.

Die im Beispiel 5 beschriebenen bijektiven Funktionen in n Eingangsvariablen und Ausgangsvariablen sind alle optimale Funktionen. Das heißt jede andere Funktion hat einen größeren K-Wert. Die optimalen Funktionen empfehlen sich als Bus-Umwander als Gegenmaßnahme gegen Probingangriffe auf den Bus.The bijective functions in n input variables and output variables described in Example 5 are all optimal functions. That is, every other function has a larger K value. The optimal functions are recommended as a bus-Umwander as a countermeasure against Probingangriffe on the bus.

(Datenabhängige Maskierung oder Münchhausen-Maskierung)(Data-dependent masking or Münchhausen masking)

Das folgende Bild stellt eine mögliche Implementierung der für n = 4 optimalen bijektiven Funktion f(x) = xA dar, wobei A die 4×4 Matrix

Figure DE102013100572A1_0012
ist. Das heißt
y1 = x2 + x3 + x4,
y2 = x1 + x3 + x4,
y3 = x1 + x2 + x4,
y4 = x1 + x2 + x3.The following picture represents a possible implementation of the optimal bijective function f (x) = xA for n = 4, where A is the 4 × 4 matrix
Figure DE102013100572A1_0012
is. This means
y 1 = x 2 + x 3 + x 4 ,
y 2 = x 1 + x 3 + x 4 ,
y 3 = x 1 + x 2 + x 4 ,
y 4 = x 1 + x 2 + x 3 .

Definiert man M = x1 + x2 + x3 + x4, dann gilt
y1 = M + x1,
y2 = M + x2,
y3 = M + x3,
y4 = M + x4.
Defining M = x 1 + x 2 + x 3 + x 4 , then
y 1 = M + x 1 ,
y 2 = M + x 2 ,
y 3 = M + x 3 ,
y 4 = M + x 4 .

Man kann die Implementierung von f daher folgendermaßen interpretieren:

  • (i) Zuerst wird aus den Datenbits x1, x2, x3, x4 eine datenabhängige Maske M berechnet.
  • (ii) Dann wird jede Busleitung mit M maskiert.
One can therefore interpret the implementation of f as follows:
  • (i) First, a data-dependent mask M is calculated from the data bits x 1 , x 2 , x 3 , x 4 .
  • (ii) Then each bus line is masked with M.

Dies ist in 6 dargestellt.This is in 6 shown.

6 zeigt eine Busanordnung 600. 6 shows a bus arrangement 600 ,

Analog zu der Busanordnung 500 weist die Busanordnung 600 einen Bus 601 mit einer Mehrzahl von Busleitungen 602, einen am Anfang des Busses 601 einen Kodierer 603 und am Ende des Busses 602 einen Dekodierer 604 auf.Analogous to the bus arrangement 500 indicates the bus arrangement 600 a bus 601 with a plurality of bus lines 602 , one at the beginning of the bus 601 an encoder 603 and at the end of the bus 602 a decoder 604 on.

Im Kodierer 603 summiert ein erster Addierer 605 die Eingangsvariablen x1, x2, x3, x4 zum Erzeugen der Maske M. Die Maske M wird dann mittels zweiter Addierer 606 zu den Eingangsvariablen x1, x2, x3, x4, so dass die Ausgangsvariablen y1, y2, y3, y4 gemäß der obigen Funktion f erzeugt werden.In the encoder 603 a first adder sums 605 the input variables x 1 , x 2 , x 3 , x 4 for generating the mask M. The mask M is then by means of second adders 606 to the input variables x 1 , x 2 , x 3 , x 4 , so that the output variables y 1 , y 2 , y 3 , y 4 are generated according to the above function f.

Da die betrachtete optimale Funktion f identisch mit ihrer Umkehrabbildung f–1 ist, kann dieselbe Implementierung im Dekodierer 604 am Bus-Ende für die Rückumwandlung verwendet werden. Konkret addiert ein dritter Addierer 607 die übertragenen Werte y1, y2, y3, y4 zum Erzeugen der Maske M und vierte Addierer 608 addieren diese zu den übertragenen Werten y1, y2, y3, y4, so dass die Eingangsvariablen x1, x2, x3, x4 rekonstruiert werden. Since the considered optimal function f is identical to its inverse mapping f -1 , the same implementation can be used in the decoder 604 be used at the bus end for the reconversion. Concretely, a third adder adds 607 the transmitted values y 1 , y 2 , y 3 , y 4 for generating the mask M and fourth adders 608 Add these to the transmitted values y 1 , y 2 , y 3 , y 4 so that the input variables x 1 , x 2 , x 3 , x 4 are reconstructed.

Man beachte, dass die Maske M auf der linken Seite durch M = x1 + x2 + x3 + x4 berechnet wird und auf der rechten Seite durch M = y1 + y2 + y3 + y4. Tatsächlich ergibt sich in beiden Fällen derselbe Wert für M.Note that the mask M on the left side is calculated by M = x 1 + x 2 + x 3 + x 4 and on the right by M = y 1 + y 2 + y 3 + y 4 . In fact, in both cases, the same value for M.

Das in diesem Beispiel für n = 4 dargestellte Prinzip lässt sich sinngemäß erweitern für alle geradzahligen n, etwa für n = 8, n = 16, und n = 32 (als typische Busbreiten).The principle shown in this example for n = 4 can be expanded analogously for all even-numbered n, for example for n = 8, n = 16, and n = 32 (as typical bus widths).

Im Folgenden wird die sichere Übertragung eines kryptographischen Schlüssels über einen Bus gemäß einer Ausführungsform erläutert.Hereinafter, the secure transmission of a cryptographic key via a bus according to an embodiment will be explained.

Bei den f-Matrizen für die optimalen Funktionen in Beispiel 2 (Fall n = 4) bzw. in Beispiel 4 (Fall n = 8) enthalten die ersten n Zeilen fast lauter Nullen. Nur unter den letzten n + 1 Positionen treten zwei Einsen auf. Das ist eine allgemeingültige Eigenschaft optimaler Funktionen.For the f-matrices for the optimal functions in Example 2 (case n = 4) and in Example 4 (case n = 8), the first n rows contain almost all zeros. Only in the last n + 1 positions do two ones occur. This is a general property of optimal functions.

Anders ausgedruckt: Sei f: (x1, x2, ...., xn) → (y1, y2, ..., yn) eine optimale bijektive Funktion in n Eingangsvariablen und Ausgangsvariablen. Dann gilt I(xj, Y) = 0 für alle j = 1, 2, ..., n und für alle Zufallsvektoren Y der Länge < n – 1.Differently printed: Let f: (x 1, x 2, ...., x n) → (y 1, y 2, ..., y n) is an optimum bijective function of n input variables and output variables. Then I (x j , Y) = 0 holds for all j = 1, 2, ..., n and for all random vectors Y of length <n-1.

Dies hat die folgende Konsequenz: Ein Busumwandler sei auf einem n Bit breiten Bus durch eine optimale Funktion f implementiert. Angenommen ein Angreifer, der einen Probingangriff auf den Bus durchführt, kann bis zu n – 2 Busleitungen gleichzeitig proben. Dann gelingt es dem Angreifer trotzdem nicht, irgendwelche Information über eine einzelne Inputvariable des Busumwandlers zu erlangen.This has the following consequence: A bus converter is implemented on an n-bit wide bus by an optimal function f. Assuming an attacker making a probing attack on the bus can rehearse up to n - 2 bus lines simultaneously. Nevertheless, the attacker still fails to obtain any information about a single input variable of the bus converter.

Es ist daher möglich, schützenswerte Daten sicher (in Hinblick auf einen Probingangriff der genannten Stärke) über den Bus zu transferieren, wenn man dabei folgendermaßen vorgeht: Angenommen, es soll ein 128 Bit langer kryptographischer Schlüssel über die Busanordnung 500 (mit n = 32) übertragen werden. Typischerweise wird der Schlüssel in vier 32-Bit-Wörter zerlegt und diese nacheinander über den Bus geschickt. Gemäß einer Ausführungsform wird stattdessen vorgegangen, wie es in 7 dargestellt ist.It is therefore possible to safely transfer sensitive data (in view of a probing attack of said strength) over the bus, using the following procedure: Assume that a 128-bit cryptographic key is to be sent over the bus 500 (with n = 32) are transmitted. Typically, the key is split into four 32-bit words and sent one after the other over the bus. According to one embodiment, the procedure is instead as described in 7 is shown.

7 zeigt eine Busanordnung 700. 7 shows a bus arrangement 700 ,

Analog zu der Busanordnung 500 weist die Busanordnung 700 einen Bus 701 mit einer Mehrzahl von Busleitungen 702 (hier n = 32) und einen Kodierer 703 auf (das Bus-Ende ist nicht gezeigt und ist beispielsweise analog zu der Busanordnung 500 ausgestaltet).Analogous to the bus arrangement 500 indicates the bus arrangement 700 a bus 701 with a plurality of bus lines 702 (here n = 32) and an encoder 703 on (the bus end is not shown and is analogous to the bus arrangement, for example 500 configured).

Es wird eine beliebige einzelne Eingangsvariable und der entsprechende Eingang des Kodierers 703 ausgewählt, beispielsweise die Eingangsvariable x1 und der entsprechende Eingang 704 des Kodierers. Dann werden alle Bits des Schlüssels nur über diesen Eingang 704 dem (optimalen) Busumwandler 703 zugeführt. Den restlichen Eingängen des Kodierers 705 werden Zufallsbits zugeführt. Über den Bus 701 läuft dann letztendlich für jedes Schlüsselbit k eine (XOR-)Summe aus dem Schlüsselbit k und Zufallsbits r2, r3, ..., r32. Die Übertragung der Schlüsselbits k auf diese Weise ist beweisbar sicher solange der Angreifer nicht mehr als 30 Busleitungen gleichzeitig abhören kann. (Allerdings dauert die Übertragung des kryptographischen Schlüssels nun 32 mal so lange, da der Schlüssel bitweise übertragen wird.) It will be any single input variable and the corresponding input of the encoder 703 selected, for example, the input variable x 1 and the corresponding input 704 of the encoder. Then all bits of the key will only be through this input 704 the (optimal) bus converter 703 fed. The remaining inputs of the encoder 705 Random bits are supplied. About the bus 701 Finally, for each key bit k, an (XOR) sum of the key bit k and random bits r 2 , r 3 ,..., r 32 is run . The transmission of the key bits k in this way is provably secure as long as the attacker can not listen to more than 30 bus lines simultaneously. (However, the transfer of the cryptographic key now takes 32 times as long as the key is transmitted bit by bit.)

Beim der obigen Ausführungsform wird ein optimaler 32-Bit-Busumwandler in einem 32 Bit breiten Bus verwendet. Dadurch wird die folgende Probingschutzstärke erzielt: Ein Angreifer, der bis zu 30 Busleitungen gleichzeitig proben kann, gewinnt dadurch Null Bit Information über jede einzelnen Inputwert. Es kann also ein Bit (bezeichnet mit k) beweisbar sicher übertragen werden (indem für die anderen 31 Inputbits Zufallsbits verwendet werden.)In the above embodiment, an optimal 32-bit bus converter is used in a 32-bit wide bus. This provides the following probing protection strength: An attacker who can simultaneously rehearse up to 30 bus lines will thereby gain zero bit information about each input value. Thus, one bit (labeled k) can be provably transmitted safely (using random bits for the other 31 input bits).

30 Leitungen zu proben ist technisch zur Zeit praktisch unmöglich. Daher können in einer Ausführungsform in dem 32 Bit breiten Bus auch zwei optimale 16-Bit-Busumwandler implementiert werden. Der 32 Bit breite Bus wird gewissermaßen als zwei parallel laufende 16 Bit breite Busse betrachtet. Nun kann auf jeden der beiden 16 Bit breiten Teilbusse ein Bit sicher übertragen werden, zusammen mit jeweils 15 Zufallsbits. Die Probingschutzstärke ist nun gegeben für jeden Angriff bei dem bis zu 14 Busleitungen gleichzeitig geprobt werden können.To rehearse 30 lines is currently technically impossible. Therefore, in one embodiment, in the 32-bit wide bus, two optimal 16-bit bus converters may also be implemented. The 32-bit wide bus is effectively considered two parallel 16-bit buses running in parallel. Now one bit can be safely transmitted to each of the two 16-bit subbusses, together with 15 random bits each. The Probingschutzstärke is now given for each attack in which up to 14 bus lines can be rehearsed simultaneously.

Ferner lassen sich die beiden optimalen 16-Bit-Busumwandler durch ein zusätzliches XOR-Gatter und vier Schalter zu einen optimalen 32-Bit-Busumwandler zusammenschalten.Furthermore, the two optimal 16-bit bus converters can be interconnected by an additional XOR gate and four switches to an optimal 32-bit bus converter.

Dieses Prinzip ist (zur besseren Übersicht für n = 8) in 8 dargestellt.This principle is (for a better overview for n = 8) in 8th shown.

8 zeigt eine Busanordnung 800. 8th shows a bus arrangement 800 ,

Analog zu der Busanordnung 500 weist die Busanordnung 800 einen Bus 801 mit einer Mehrzahl von Busleitungen 802, 804 (hier n = 8) und einen Kodierer 803 auf (das Bus-Ende ist nicht gezeigt und ist beispielsweise analog zu der Busanordnung 500 ausgestaltet).Analogous to the bus arrangement 500 indicates the bus arrangement 800 a bus 801 with a plurality of bus lines 802 . 804 (here n = 8) and a coder 803 on (the bus end is not shown and is analogous to the bus arrangement, for example 500 configured).

Der Kodierer 803 implementiert zwei (zusammenschaltbare) optimale 4-Bit-Busumwandler.The encoder 803 implements two (interconnectable) optimal 4-bit bus converters.

Konkret werden analog zu 6, wenn ein erster Schalter 809 in (in der Darstellung in 8) waagrechter Stellung ist und ein zweiter Schalter 810 geöffnet ist, die Eingangsvariablen für die oberen vier Busleitungen 802 mittels eines ersten Addierers 805 addiert und das Ergebnis mittels zweiter Addierer 806 zum Erzeugen der Ausgangsvariablen für die oberen vier Busleitungen 802 zu den einzelnen Eingangsvariablen für die oberen vier Busleitungen 802 addiert.Specifically, analogous to 6 if a first switch 809 in (in the illustration in 8th ) is a horizontal position and a second switch 810 is open, the input variables for the top four bus lines 802 by means of a first adder 805 added and the result by means of second adder 806 for generating the output variables for the upper four bus lines 802 to the individual input variables for the upper four bus lines 802 added.

Analog werden, wenn ein dritter Schalter 811 (in der Darstellung in 8) waagrechter Stellung ist und ein vierter Schalter 812 geöffnet ist, die Eingangsvariablen für die unteren vier Busleitungen 804 mittels eines dritten Addierers 807 addiert und das Ergebnis mittels vierter Addierer 808 zum Erzeugen der Ausgangsvariablen für die unteren vier Busleitungen 804 zu den einzelnen Eingangsvariablen für die unteren vier Busleitungen 804 addiert.Become analog, if a third switch 811 (in the illustration in 8th ) is a horizontal position and a fourth switch 812 is open, the input variables for the lower four bus lines 804 by means of a third adder 807 added and the result by means of fourth adder 808 for generating the output variables for the lower four bus lines 804 to the individual input variables for the lower four bus lines 804 added.

Wenn der erste Schalter 809 und der dritte Schalter 811 in (in der Darstellung in 8) senkrechter Stellung sind und die Ausgänge des ersten Addierers 805 und des dritten Addierers 807 mit den Eingängen eines fünften Addierers 813 koppeln, die alle Eingangsvariablen mittels des ersten Addierers 805, des dritten Addierers 807 und des fünften Addierers 813 addiert und, wenn außerdem der zweite Schalter 810 und der vierte Schalter 812 geschlossen sind, zu allen Eingangsvariablen addiert, so dass der Kodierer 803 einen 8-Bit-Busumwandler realisiert.When the first switch 809 and the third switch 811 in (in the illustration in 8th ) vertical position and the outputs of the first adder 805 and the third adder 807 with the inputs of a fifth adder 813 couple all the input variables using the first adder 805 , the third adder 807 and the fifth adder 813 added and, if in addition, the second switch 810 and the fourth switch 812 are closed, added to all the input variables, so the encoder 803 implemented an 8-bit bus converter.

Im Fall des 32 Bit breiten Bus können beispielsweise vier optimale 8-Bit-Busumwandler implementiert werden. Dann ist immerhin noch eine Probingschutzstärke gegenüber bis zu 6 Leitungsabgriffen gegeben. Und es können nun 4 sichere Bits über den Bus übertragen werden (zusammen mit 28 Zufallsbits).For example, in the case of the 32-bit wide bus, four optimal 8-bit bus converters can be implemented. Then at least a Probingschutzstärke against up to 6 cable taps is given. And now 4 safe bits can be transmitted over the bus (along with 28 random bits).

Durch Zusammenschalten der vier 8-Bit-Busumwandler zu größeren Einheiten, nämlich zu zwei 16-Bit-Busumwandlern, oder zu einem 32-Bit-Busumwandler kann die Probingschutzstärke von 6, auf 14, bzw. auf 30 Leitungsabgriffe erhöht werden.By interconnecting the four 8-bit bus converters into larger units, namely two 16-bit bus converters, or a 32-bit bus converter, the probing protection level can be increased from 6, 14, and 30 line taps, respectively.

Beim Probingschutz durch Maskieren, wie mit Bezug auf 2 erläutert, werden die Maskierungsbits typischerweise mit eigenen Pseudozufallszahlengeneratoren erzeugt, die in Hardware implementiert sind.When Probingschutz by masking, as with respect to 2 The masking bits are typically generated with their own pseudo-random number generators implemented in hardware.

Die Verwendung eines Busumwandlers wie oben erläutert erlaubt es, auf eine Hardwareimplementierung von Masken generierenden Pseudozufallszahlengeneratoren zu verzichten. Häufig sind Informationen, die über den Bus laufen, nicht besonders schützenswert. Dann genügt der optimale Busumwandler für sich, der alle Eingangswörter (x1, ..., xn) umwandelt in Ausgansvektoren (y1, ..., yn). Nur letztere laufen über den Bus. Immerhin wird die Hürde für Probingangriffe hierdurch erhöht: die geprobten yi geben im Allgemeinen weniger Information preis über die xi als die xi selbst.The use of a bus converter as explained above makes it possible to dispense with a hardware implementation of mask-generating pseudo-random number generators. Often, information that travels over the bus is not particularly worthy of protection. Then the optimal bus converter is sufficient for itself, which converts all input words (x 1 , ..., x n ) into output vectors (y 1 , ..., y n ). Only the latter run over the bus. After all, the hurdle for probing attacks is thereby increased: the sampled y i generally give less information about the x i than the x i itself.

Wenn aber schützenswerte Informationen über den Bus übertragen werden sollen – etwa ein kryptographischer Schlüssel – dann werden gemäß einer Ausfürungsform nur ein oder einige wenige Buseingänge für die sicheren Bits benutzt und die anderen mit Zufallsbits gefüttert. Bei einer sicheren Übertragung werden also stets sichere Daten zusammen mit Zufallsdaten übertragen. (Ein optimaler Busumwandler übernimmt die Aufgabe, die sicheren Daten mit den Zufallsbits informationstheoretisch optimal zu kombinieren.) Die Zufallsbits können beispielsweise mittels Software in einer CPU erzeugt werden. Somit können gegenüber der Maskierung Hardwarekosten eingespart werden und dafür Software eingesetzt werden.But if sensitive information is to be transmitted over the bus - such as a cryptographic key - then, according to one embodiment, only one or a few bus inputs are used for the secure bits and the others are fed with random bits. Secure transmission thus always transmits secure data together with random data. (An optimal bus converter takes on the task of optimally combining the secure data with the random bits in terms of information theory.) The random bits can be generated, for example, by means of software in a CPU. Thus, compared to the masking hardware costs can be saved and software can be used.

Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.While the invention has been particularly shown and described with reference to particular embodiments, it should be understood by those of ordinary skill in the art that numerous changes in form and detail may be made therein without departing from the spirit and scope of the invention. as defined by the following claims. The scope of the invention is, therefore, to be determined by the appended claims, and it is intended to encompass all changes which come within the meaning or equivalency of the claims.

Claims (18)

Busanordnung aufweisend: einen Bus mit einer Mehrzahl von Busleitungen; einen Kodierer mit einem Eingang für jede Busleitung der Mehrzahl von Busleitungen zum Empfangen eines Eingangsbits und einem Ausgang für jede Busleitung der Mehrzahl von Busleitungen, der mit der Busleitung gekoppelt ist; wobei der Kodierer eingerichtet ist, für jeden Ausgang aus den Eingangsbits ein Ausgangsbit gemäß einer bijektiven Abbildung von Eingangsbits auf Ausgangsbits zu erzeugen, wobei der Kodierer eingerichtet ist, mindestens eines der Ausgangsbits durch Kombinieren von mindestens zwei der Eingangsbits zu erzeugen und wobei der Kodierer eingerichtet ist, die Ausgangsbits über die Ausgänge an die Busleitungen auszugeben.Bus arrangement comprising: a bus having a plurality of bus lines; an encoder having an input for each bus line of the plurality of bus lines for receiving an input bit and an output for each bus line of the plurality of bus lines coupled to the bus line; wherein the encoder is arranged to generate, for each output from the input bits, an output bit according to a bijective mapping of input bits to output bits, wherein the encoder is adapted to generate at least one of the output bits by combining at least two of the input bits and wherein the encoder is arranged to output the output bits via the outputs to the bus lines. Busanordnung gemäß Anspruch 1, wobei die Busanordnung in einem Chip angeordnet ist.Bus arrangement according to claim 1, wherein the bus arrangement is arranged in a chip. Busanordnung gemäß Anspruch 2, wobei die Busanordnung in einem Chip einer Chipkarte angeordnet ist.Bus arrangement according to claim 2, wherein the bus arrangement is arranged in a chip of a chip card. Busanordnung gemäß einem der Ansprüche 1 bis 3, wobei der Kodierer eingerichtet ist, jedes der Ausgangsbits durch Kombinieren von mindestens zwei der Eingangsbits zu erzeugen.A bus device according to any one of claims 1 to 3, wherein the encoder is arranged to generate each of the output bits by combining at least two of the input bits. Busanordnung gemäß einem der Ansprüche 1 bis 4, wobei die Abbildung der Eingangsbits auf Ausgangsbits eine bijektive Abbildung von Eingangsbitvektoren auf Ausgangsbitvektoren ist.Bus arrangement according to one of claims 1 to 4, wherein the mapping of the input bits to output bits is a bijective mapping of input bit vectors to output bit vectors. Busanordnung gemäß einem Anspruch 5, wobei die Abbildung einer Multiplikation eines Eingangsbitvektors mit einer Matrix und anschließender Addition eines Vektors entspricht.A bus arrangement according to claim 5, wherein the mapping corresponds to a multiplication of an input bit vector with a matrix and then adding a vector. Busanordnung gemäß Anspruch 6, wobei die Matrix invertierbar ist.Bus arrangement according to claim 6, wherein the matrix is invertible. Busanordnung gemäß einem der Ansprüche 6 oder 7, wobei die Dimension der Matrix n×n ist und der Vektor ein n-dimensionaler Vektor ist, wobei n die Zahl der Eingangsbits ist.Bus arrangement according to one of claims 6 or 7, wherein the dimension of the matrix is n × n and the vector is an n-dimensional vector, where n is the number of input bits. Busanordnung gemäß Anspruch 8, wobei die Matrix in jeder Zeile n-1 Einsen enthält.A bus arrangement according to claim 8, wherein the matrix in each row contains n-1 ones. Busanordnung gemäß einem der Ansprüche 1 bis 9, aufweisend eine erste Komponente und eine zweite Komponente, die mittels des Busses gekoppelt sind, wobei die erste Komponente eingerichtet ist, dem Kodierer die Eingangsbits bereitzustellen, und wobei die Eingangsbits an die zweite Komponente mittels des Busses zu sendende Bits sind.A bus device according to any one of claims 1 to 9, comprising a first component and a second component coupled by means of the bus, the first component being arranged to provide the input bits to the encoder and the input bits to the second component via the bus are sending bits. Busanordnung gemäß einem der Ansprüche 1 bis 10, wobei das Eingangsbit für eine Busleitung ein Bit eines Datenstroms für die Busleitung ist.Bus arrangement according to one of claims 1 to 10, wherein the input bit for a bus line is a bit of a data stream for the bus line. Busanordnung gemäß Anspruch 11, wobei der Datenstrom für mindestens eine Busleitung der Mehrzahl von Busleitungen einen kryptographischen Schlüssel enthält und wobei der Datenstrom für mindestens eine weitere Busleitung der Mehrzahl von Busleitungen ein Zufallsbitstrom ist.The bus device of claim 11, wherein the data stream for at least one bus line of the plurality of bus lines includes a cryptographic key, and wherein the data stream for at least one further bus line of the plurality of bus lines is a random bit stream. Busanordnung gemäß Anspruch 11, aufweisend eine Komponente, die eingerichtet ist, einen kryptographischen Schlüssel zu erzeugen, der mindestens einen Busleitung der Mehrzahl von Busleitungen einen den kryptographischen Schlüssel als Datenstrom zuzuführen und der mindestens einen weitere Busleitung der Mehrzahl von Busleitungen einen Zufallsbitstrom zuzuführen.The bus device of claim 11, comprising a component configured to generate a cryptographic key, to supply the cryptographic key as a data stream to at least one bus line of the plurality of bus lines, and to supply a random bit stream to the at least one further bus line of the plurality of bus lines. Busanordnung gemäß Anspruch 13, wobei die Komponente einen Pseudozufallszahlengenerator aufweist, der eingerichtet ist, den Zufallsbitstrom zu erzeugen.The bus arrangement of claim 13, wherein the component comprises a pseudorandom number generator configured to generate the random bitstream. Busanordnung gemäß Anspruch 14, wobei der Zufallsbitstrom mit dem kryptographischen Schlüssel unkorreliert ist. The bus device of claim 14, wherein the random bit stream is uncorrelated with the cryptographic key. Busanordnung gemäß einem der Ansprüche 1 bis 15, ferner aufweisend einen Dekodierer, der eingerichtet ist, die Ausgangsbits über den Bus von dem Kodierer zu empfangen und die Eingangsbits aus den Ausgangsbits zu rekonstruieren.A bus device according to any one of claims 1 to 15, further comprising a decoder configured to receive the output bits via the bus from the encoder and to reconstruct the input bits from the output bits. Busanordnung gemäß Anspruch 16, wobei der Dekodierer eingerichtet ist, die Ausgangsbits aus den Eingangsbits gemäß der Umkehrabbildung der Abbildung zu ermitteln.The bus device of claim 16, wherein the decoder is configured to determine the output bits from the input bits according to the inverse mapping of the map. Verfahren zum Senden von Daten über einen Bus aufweisend: Empfangen eines Eingangsbits für jede Busleitung einer Mehrzahl von Busleitungen eines Busses Erzeugen, für jede Busleitung, eines Ausgangsbits aus den Eingangsbits gemäß einer bijektiven Abbildung von Eingangsbits auf Ausgangsbits, wobei mindestens eines der Ausgangsbits durch Kombinieren von mindestens zwei der Eingangsbits erzeugt wird und Ausgeben der Ausgangsbits an die Busleitungen.Method for sending data over a bus comprising: Receiving an input bit for each bus of a plurality of bus lines of a bus Generating, for each bus line, an output bit from the input bits according to a bijective mapping of input bits to output bits, wherein at least one of the output bits is generated by combining at least two of the input bits, and Output the output bits to the bus lines.
DE102013100572.1A 2013-01-21 2013-01-21 BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS Active DE102013100572B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102013100572.1A DE102013100572B4 (en) 2013-01-21 2013-01-21 BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013100572.1A DE102013100572B4 (en) 2013-01-21 2013-01-21 BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS

Publications (2)

Publication Number Publication Date
DE102013100572A1 true DE102013100572A1 (en) 2014-07-24
DE102013100572B4 DE102013100572B4 (en) 2020-10-29

Family

ID=51064313

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013100572.1A Active DE102013100572B4 (en) 2013-01-21 2013-01-21 BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS

Country Status (1)

Country Link
DE (1) DE102013100572B4 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180541A1 (en) * 2004-06-08 2007-08-02 Nikon Corporation Cryptographic architecture with instruction masking and other techniques for thwarting differential power analysis

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180541A1 (en) * 2004-06-08 2007-08-02 Nikon Corporation Cryptographic architecture with instruction masking and other techniques for thwarting differential power analysis

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WOHL, P. [et al.]: Automated Design and Insertion of Optimal One-Hot Bus Encoders, VLSI Test Symposium, 2007. 25th IEEE, DOI: 10.1109/VTS.2007.18, Publication Year: 2007, Page(s): 409 - 415, URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4209946 [abgerufen im Internet am 20.09.2013] *
WOHL, P. [et al.]: Automated Design and Insertion of Optimal One-Hot Bus Encoders, VLSI Test Symposium, 2007. 25th IEEE, DOI: 10.1109/VTS.2007.18, Publication Year: 2007, Page(s): 409 – 415, URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4209946 [abgerufen im Internet am 20.09.2013]

Also Published As

Publication number Publication date
DE102013100572B4 (en) 2020-10-29

Similar Documents

Publication Publication Date Title
DE10201449C1 (en) Arithmetic unit, method for performing an operation with an encrypted operand, carry select adder and cryptography processor
DE69635651T2 (en) Device and method for data conversion
EP3218893B1 (en) Hardened white box implementation
DE102019208032A1 (en) METHOD AND SYSTEM FOR FAULT-TOLERANT AND SAFE MULTIPARTY-PARTY CALCULATION WITH SPDZ
CH693252A5 (en) Method and apparatus zurErzeugung an integer
DE69932740T2 (en) METHOD AND DEVICE FOR CRYPTOGRAPHIC DATA PROCESSING
DE102016120558A1 (en) DATA PROCESSING DEVICE AND METHOD FOR CRYPTOGRAPHIC PROCESSING OF DATA
DE102013213354A1 (en) RANDOM BATTERY GENERATOR WITH GUARANTEED MINIMUM PERIOD
DE102013205544A1 (en) Apparatus and method for processing data
DE102014203497A1 (en) Masked nonlinear feedback shift register
DE102017002153A1 (en) Transition from Boolean masking to arithmetic masking
EP1664979B1 (en) Transition between masked representations of a value during cryptographic calculations
DE102014207296A1 (en) Apparatus and method for processing data
DE3138698A1 (en) METHOD FOR POTENTIZING LARGE BINARY NUMBERS IN A REMAINING CLASS MODULO N, ESPECIALLY FOR ENCRYPTING AND UNLOCKING DIGITALLY PRESENTED MESSAGES
EP1342153B1 (en) Method and device for generating a pseudo random sequence using a discrete logarithm
DE10324422B4 (en) Method and device for mapping an input value to be mapped onto an encrypted mapped output value
DE60022840T2 (en) METHOD FOR SECURING ONE OR MORE ELECTRONIC ASSEMBLIES, ASSISTING A PRIVATE KEY CYPRUS ALGORITHM, AND ELECTRONIC ASSEMBLY
DE102011078643A1 (en) Method for generating a random output bit sequence
AT519476B1 (en) Method for creating and distributing cryptographic keys
DE102011078645A1 (en) Method for safely checking a code
DE102013100572B4 (en) BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS
DE102013219088A1 (en) Circuit arrangement and method for realizing check bit compaction for cross-parity codes
DE60023934T2 (en) METHOD AND DEVICE FOR GENERATING A KEY SEQUENCE
DE102020129058B3 (en) DATA PROCESSING DEVICE AND METHOD FOR CRYPTOGRAPHIC PROCESSING OF DATA
DE102018208851A1 (en) Apparatus and method for converting input bit strings

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative