[go: up one dir, main page]

DE102013100572B4 - BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS - Google Patents

BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS Download PDF

Info

Publication number
DE102013100572B4
DE102013100572B4 DE102013100572.1A DE102013100572A DE102013100572B4 DE 102013100572 B4 DE102013100572 B4 DE 102013100572B4 DE 102013100572 A DE102013100572 A DE 102013100572A DE 102013100572 B4 DE102013100572 B4 DE 102013100572B4
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.)
Active
Application number
DE102013100572.1A
Other languages
German (de)
Other versions
DE102013100572A1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

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 undwobei der Kodierer eingerichtet ist, die Ausgangsbits über die Ausgänge an die Busleitungen auszugeben.A bus arrangement comprising: a bus with a plurality of bus lines; an encoder with 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, which is coupled to the bus line; the encoder being set up to generate an output bit for each output from the input bits in accordance with a bijective mapping of input bits to output bits, the encoder being configured to generate at least one of the output bits by combining at least two of the input bits, and the encoder being configured to generate the output bits via the outputs output to the bus lines.

Description

Technisches GebietTechnical area

Ausführungsbeispiele betreffen allgemein Busanordnungen und Verfahren zum Senden von Daten über einen Bus.Embodiments generally relate to bus arrangements and methods for sending 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. Folgende zwei Dokumente werden hiermit kurz gewürdigt: WOHL, P. [et al]: „Automated Design and Insertion of Optimal One-Hot Bus Encoders“, VLSI Test Symposium, 2007. 25th IEEE, D01: 10.1109/VTS.2007.18, Publication Year: 2007, Page(s): 409 - 415 , und US 2007 / 0 180 541 A1 .On chips, such as those arranged on chip cards, among other things, trustworthy data, such as cryptographic keys for secure communication, are communicated via buses. It is desirable to avoid that attackers can gain information about trustworthy data by eavesdropping on a bus. The following two documents are hereby briefly acknowledged: WOHL, P. [et al]: "Automated Design and Insertion of Optimal One-Hot Bus Encoders", VLSI Test Symposium, 2007. 25th IEEE, D01: 10.1109 / VTS.2007.18, Publication Year: 2007, Page (s): 409-415 , and US 2007/0 180 541 A1 .

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 with a plurality of bus lines and an encoder with 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, which is coupled to the bus line. The encoder is designed to generate an output bit for each output from the input bits in accordance with a bijective mapping of input bits to output bits, the encoder being designed 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 on the bus lines.

Gemäß einer weiteren Ausführungsform wird ein Verfahren zum Senden von Daten über einen Bus gemäß der oben beschriebenen Busanordnung bereitgestellt.According to a further embodiment, a method for sending data via a bus according to the bus arrangement described above is provided.

FigurenlisteFigure list

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.

  • 1 zeigt einen Chip.
  • 2 zeigt einen Bus.
  • 3 zeigt eine Busanordnung gemäß einer Ausführungsform.
  • 4 zeigt ein Flussdiagramm gemäß einer Ausführungsform.
  • 5 zeigt eine Busanordnung gemäß einem Ausführungsbeispiel.
  • 6 zeigt eine Busanordnung gemäß einer Ausführungsform.
  • 7 zeigt eine Busanordnung gemäß einer Ausführungsform.
  • 8 zeigt eine Busanordnung gemäß einer Ausführungsform.
The figures do not reflect the actual proportions but are intended to illustrate the principles of the various exemplary embodiments. Various exemplary embodiments are described below with reference to the following figures.
  • 1 shows a chip.
  • 2 shows a bus.
  • 3 shows a bus arrangement according to an embodiment.
  • 4th Figure 3 shows a flow diagram according to an embodiment.
  • 5 shows a bus arrangement according to an embodiment.
  • 6 shows a bus arrangement according to an embodiment.
  • 7th shows a bus arrangement according to an embodiment.
  • 8th shows a bus arrangement according to an embodiment.

Beschreibungdescription

Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden 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 exemplary embodiments. These exemplary embodiments are described in such detail that the person skilled in the art can carry out the invention. Other embodiments are also possible and the embodiments can be changed structurally, logically and electrically without departing from the subject matter of the invention. The various exemplary embodiments are not necessarily mutually exclusive, but rather various embodiments can be combined with one another, so that new embodiments arise.

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 these the CPU 101 over the bus 103 provides. The CPU 101 uses these random numbers, for example, to generate cryptographic keys for a cryptographic process (e.g. an encryption process or a signing process).

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 that are compatible 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 received from the CPU 101 to the component 102 (or in the opposite direction) can be trustworthy (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 attempt to run one or more lines of the bus 103 to "rehearse", ie to listen, ie to tap the bit sequence that runs over the respective bus line. To do this, the attacker must contact the bus line (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 very demanding from a technical point of view. For example, a focused ion beam containing platinum gas is first used to establish a contact point on the wire to be tapped. 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.Tapping multiple bus lines at the same time is much more difficult. The bus lines typically run at different depths. In order to tap a deep line, lines lying above must first be moved out of the way, i.e. the attacker has to route these lines differently so that space is created to get to the lower lying line.

Entsprechend kann man davon ausgehen, dass es einem Angreifer gelingt, einige Busleitungen zu proben, jedoch nicht alle.Accordingly, one can assume that an attacker will succeed in trying 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 16 or 32 bus lines, for example. Other widths, for example 8 bit or 64 bit, can also be used. The following is generally referred to as an n-bit wide bus 103 assumed, 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 tapping of data that is transmitted over a bus, can be achieved, for example, by bus encryption or masking. This is discussed 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 200 n 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 xi, 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 to the bus, for example 103 and serves for the parallel transmission of n bits x 1 , ..., x n (in this example n = 4), for example from the component 102 to the CPU 101 , in 2 left to right. The bus points accordingly 200 n bus lines 201 on. At the beginning of the bus (on the side of the sending component) is for each bus line 201 a first adder 202 provided that the data bit x i , which is transmitted via the bus line 201 is transmitted, encrypted or masked with an independent bit m i (the key bit or masking bit). Via 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, i.e. 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 receiving component, e.g. 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 that was used at the beginning of the bus for the encryption. The same key bits m 1 ,..., M n must therefore be present at the beginning and end of the bus at all times. The key bits m i are, for example, continuously generated anew, for example with a pseudo-random number generator. For example, there are (small) synchronously running pseudo-random number generators at the start and end of the bus, 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 that an attacker can achieve by probing bus lines is reduced or even completely prevented, with masking of the bus data, as with reference to 2 explained, waived. Therefore, in particular, there is no need to implement identical pseudo-random number generators at the start and end of the bus, which generate the masking 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 assigns 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 further comprises an encoder 303 with an entrance 304 for each bus line 302 the plurality 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 an output bit from the input bits according to a bijective mapping of input bits to output bits, the encoder 303 is configured 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 to spend.

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 they are transmitted by means of a bus, the combining being reversible, i. E. the input bits are mapped bijectively onto the output bits. In other words, data to be transmitted are first converted (specifically mapped bijectively onto other data) before they are transmitted. At the end of the bus, the original data can be restored using an appropriate 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.Partial probing protection can be achieved by (pure) data conversion at the beginning and end of a bus. Therefore, by implementing a bijective function at both ends of a bus, a certain degree of security against probing attacks on the bus can be achieved. This is much cheaper to implement (in terms of lower hardware costs) than 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 mapped to the by means of a bijective function (or mapping) f: (x 1 ,..., X n ) → (y 1 ,..., Y n ) recognized as optimal based on certain proven properties Output bits mapped. The function f is thus used as a bus converter for an n-bit bus. This provides partial protection against trial 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 can be a linear, an affine or a 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.e. every Boolean function, using 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).In contrast to masking, in which input bits are combined with mask bits, the encoder combines at least two of the input bits to generate at least one output bit. The data conversion carried out by the encoder can also be viewed as masking with a mask that the encoder generates from the data itself (i.e. 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 smart 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 designed to generate each of the output bits by combining (e.g. adding, i.e. XORing, or also multiplying, i.e. ANDing, or a combination thereof) of 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 subsequent (binary) addition of a (binary) vector. The vector can also be the zero vector, so that the mapping only corresponds to the multiplication by a matrix and is linear.

Die Matrix ist beispielsweise invertierbar (so dass die Abbildung bijektiv und invertierbar ist).The matrix can be inverted, for example (so that the mapping is bijective and invertible).

Beispielsweise ist die Dimension der Matrix n x 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 x 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 row except for one row. For example, a row can 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 has a first component and a second component which are coupled by means of the bus, the first component being configured to provide the coder with the input bits, and the input bits being bits to be sent to the second component by means of 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, a data stream is fed to the encoder via each input, for example so that an input bit vector consisting of the input bits for each bus line is fed within a certain period (for example per clock cycle of a bus clock). Each input bit vector is mapped onto an output bit vector, sent via the bus and converted back into the input bit vector by an encoder at the end of the bus, for example.

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 bit streams are fed 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 has, for example, a component that is set up to generate a cryptographic key, to feed the cryptographic key as a data stream to the at least one bus line of the plurality of bus lines and to feed 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 has a pseudo-random number generator which is set up to generate the random bit stream.

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

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.According to one embodiment, the bus arrangement has a decoder which is set up to receive the output bits via 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 set up to determine the output bits from the input bits in accordance with the inverse mapping of the mapping.

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 (e.g. encoders, decoders, pseudo-random number generator, etc.) are implemented, for example, by one or more switching circuits. In one embodiment, a “circuit” is to be understood as any entity that implements logic and that can be hardware, software, firmware, or a 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 (e.g. a CISC (Complex Instruction Set Computer) processor or a RISC (Reduced Instruction Set Computer) processor). A "circuit" can also be understood to mean a processor that executes software, e.g. any type of computer program, such as a computer program in programming code for a virtual machine, such as a Java computer program. In one embodiment, a “circuit” can be understood to mean any type of implementation of the functions described below.

Die Busanordnung führt beispielsweise ein Verfahren aus, wie es in 4 dargestellt ist.The bus arrangement carries out, for example, a method as shown in FIG 4th is shown.

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

Das Flussdiagram 400 stellt ein Verfahren zum Senden von Daten über einen Bus dar.The flow diagram 400 represents a method for sending 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 an output bit is generated for each bus line from the input bits in accordance with a bijective mapping of input bits to output bits, at least one of the output bits being 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 in connection with the bus arrangement 300 apply mutatis mutandis to the in 4th illustrated procedures and vice versa.

Im Folgenden werden Ausführungsbeispiele genauer erläutert.Exemplary embodiments are explained in more detail below.

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 comprises a bus 501 on, for example the bus 103 corresponds, and for the parallel transmission of n bits x 1 , ..., x n (in this example n = 4), for example from the component 102 to the CPU 101 , in 2 serves from left to right.

Entsprechend weist der Bus 501 n 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.The bus points accordingly 501 n bus lines 502 on. An encoder (or converter) 503 is provided at the beginning of the bus (on the side of the transmitting component). At the end of the bus (on the side of the receiving component, e.g. the CPU 102 ) a decoder (or reverse converter) 504 is provided.

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 bus, the function f has exactly n input variables x 1 , x 2 , ..., x n and n binary output variables y 1 , y 2 , ..., y n . The function f converts 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 runs through all 2 n possible n-tuples (x 1 , x 2 , ..., x n ), then all 2 n possible binary n-tuples appear 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 f-1 bezeichnet. Die Umkehrfunktion wird durch den Rückumwandler 504 am Bus-Ende implementiert.A bijective function is reversible. The inverse function of f is denoted by f -1 . The inverse function is done by the back converter 504 implemented at the end of the bus.

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. 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. 5 represents this concept for a 4-bit wide bus. Assume that it is to be used via the bus 501 the vector (or the word) x = (x 1 , x 2 , x 3 , x 4 ) are sent. 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 means y = f (x). About the bus 501 the vector (or the word) y = (y 1 , y 2 , y 3 , y 4 ) is then transferred instead of x.

Am Bus-Ende wird aus dem übertragenen Wort y mithilfe der implementierten Umkehrfunktion f-1 das ursprüngliche Wort x wiedergewonnen.At the end of the bus, the original word x is recovered 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 vector, 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 this number. The scenario described 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 end of the bus, y is converted 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 transfer of y instead of x represents a certain protection against probing if the bijective function f is chosen well (in the sense explained below). That means an attacker, one or some (but not all) bus lines 502 can rehearse (ie listen to) and thereby obtain corresponding information about the transmitted word y, has thereby generally obtained less information about the word x. This is explained in more detail below.

Bestimmung der optimalen Busumwandler-FunktionDetermination 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 as 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-valued if it has the value 0 or the value 1 can assume, but no other value. A binary-valued random variable X is called symmetric if it has the value 0 with the probability ½ and it takes the value 1 also assumes 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 called statistically independent if the following applies: 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 expressed 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 I ( X ; Y ) = y Y x X p ( x , y ) log ( p ( x , y ) p ( x ) p ( y ) ) .

Figure DE102013100572B4_0001
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 into mathematics by Claude Shannon in 1948 as a central term in the mathematical discipline "information theory" that he founded. Accordingly, the term “information shared by two random vectors” is known. The common information I (X, Y) is given by, for example I. ( X ; Y ) = y Y x X p ( x , y ) log ( p ( x , y ) p ( x ) p ( y ) ) .
Figure DE102013100572B4_0001

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.It is sufficient here to state that the common information I (X, Y) of two random vectors X and Y is always a nonnegative number, which can also be zero. If I (X, Y) = 0, then no information about X can be derived from knowing Y. For example, assume that X and Y are random vectors of length 10 are. Assuming that I (X, Y) = 1. Then this means that one bit of information about the vector X can be gained from knowing Y. If I (X, Y) = 5, then five bits of information about X could be obtained 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) x (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 from x 1 , ..., x n , and for each random vector Y formed from y 1 , ..., y n , the common information I (X, Y) can be calculated. The calculated (2 n -1) x (2 n -1) common information I (X, Y) form a (2 n -1) × (2 n -1) matrix, which is referred to below as an f matrix .

Beispiel 1 (schlechtestmöglicher Fall für n=4):Example 1 (worst possible 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 map. This function f represents the case that no bus converter is used.

Man erhält die folgende f-Matrix:

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

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 known as the K value of f. In this case, K (f) = 256.

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

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

Figure DE102013100572B4_0003
y 2 = x 1      + x 3 + x 4 ,
Figure DE102013100572B4_0004
y 3 = x 1 + x 2       +x 4,
Figure DE102013100572B4_0005
y 4 = x 1 + x 2 + x 3 .
Figure DE102013100572B4_0006
Let 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 4th ,
Figure DE102013100572B4_0003
y 2 = x 1 + x 3 + x 4th ,
Figure DE102013100572B4_0004
y 3 = x 1 + x 2 + x 4,
Figure DE102013100572B4_0005
y 4th = x 1 + x 2 + x 3 .
Figure DE102013100572B4_0006

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 DE102013100572B4_0007
This function f represents the best possible case for a bus converter for n = 4. This function has the following f-matrix:
Figure DE102013100572B4_0007

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 function f under consideration 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 ranges from 154 to 256. Functions with the smallest possible K value, i.e. 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 trial attacks.

Die in Beispiel 2 betrachtete Funktion f kann auch - unter Verwendung der Matrixdarstellung - so beschrieben werden: f: ( x 1 , x 2 , x 3 , x 4 ) > ( y 1 , y 2 , y 3 , y 4 )

Figure DE102013100572B4_0008
mit ( y 1 , y 2 , y 3 , y 4 ) = ( x 1 , x 2 , x 3 , x 4 ) ( 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 ) .
Figure DE102013100572B4_0009
The function f considered in example 2 can also be described as follows - using the matrix representation: f: ( x 1 , x 2 , x 3 , x 4th ) - > ( y 1 , y 2 , y 3 , y 4th )
Figure DE102013100572B4_0008
With ( y 1 , y 2 , y 3 , y 4th ) = ( x 1 , x 2 , x 3 , x 4th ) ( 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 ) .
Figure DE102013100572B4_0009

Man überprüft leicht, dass die angegebene Matrix A= ( 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 )

Figure DE102013100572B4_0010
selbstinvers ist: Die Matrix A multipliziert mit sich selbst (binär gerechnet) ergibt die Einheitsmatrix I= ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 )
Figure DE102013100572B4_0011
It is easy to check that the given matrix A = ( 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 )
Figure DE102013100572B4_0010
self-inverse is: The matrix A multiplied by itself (calculated in binary form) results in the identity matrix I = ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 )
Figure DE102013100572B4_0011

Daraus folgt, dass die Umkehrfunktion von f identisch ist mit f. Das heißt es gilt f = f 1 .

Figure DE102013100572B4_0012
It follows that the inverse function of f is identical to f. That means it applies f = f - 1 .
Figure DE102013100572B4_0012

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 beginning of the bus and at the end of the bus.

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

Figure DE102013100572B4_0013
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 through f (x) = xA with x = (x 1 , x 2 , x 3 , x 4 ) and A = ( 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 )
Figure DE102013100572B4_0013
The described function f is optimal (has the minimum K value). Further matrices B can be generated by rearranging the rows of matrix A. These matrices B define further optimal functions f by f (x) = xB. A total of 4! = 24 optimal functions can be 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= ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 )  

Figure DE102013100572B4_0014
und A= ( 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 )
Figure DE102013100572B4_0015
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 4th , x 5 , x 6 )
Figure DE102013100572B4_0014
and A = ( 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 )
Figure DE102013100572B4_0015

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 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 and output variables of f, respectively. The K value of f is 3474 (and is the smallest 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 = ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 )  

Figure DE102013100572B4_0016
und A= ( 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 )
Figure DE102013100572B4_0017
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 4th , x 5 , x 6 , x 7th , x 8th )
Figure DE102013100572B4_0016
and A = ( 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 )
Figure DE102013100572B4_0017

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 4th 5 6 7th 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 4th 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 4th 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 7th 0 7 1 1 28 2 56 3 70 4 56 5 28 6 8 7th 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 abbreviated form of the f-matrix is as follows: If we look at the entry in the third row and fourth column. There it says 0 35 1 30 2 5 . If X is a fixed random vector of length three. For example, let X = (x 1 , x 2 , x 3 ). And if Y runs through all 70 possible random vectors of length four. That means 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 is all 70 Possibilities for a random vector of 4 variables from {y 1 , y 2 , ..., y 8 }, then I (X, Y) takes the value 0 exactly 35 times. The value 1 is accepted 30 times. The value 2 is accepted 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 ,

Figure DE102013100572B4_0018
wobei x = (x1,x2, ... , xn) und wobei A eine binäre n x 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 ) = xA ,
Figure DE102013100572B4_0018
where x = (x 1 , x 2 , ..., x n ) and where A is a binary nxn matrix that contains all ones with the exception of 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 if the rows of matrix A are arranged in a different order. Let B be such a matrix that emerged from A. Then the function defined by f (x) = xB is also optimal.

Ebenfalls optimal sind alle Funktionen der Form f ( x ) = xB + c ,

Figure DE102013100572B4_0019
wobei c ein konstanter Vektor der Länge n ist. Solche Funktionen werden als affin bezeichnet.All functions of the form are also optimal f ( x ) = xB + c ,
Figure DE102013100572B4_0019
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): Sei B= ( 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 ) .

Figure DE102013100572B4_0020
To illustrate (for n = 4) and with c = (1,1,1,1): Let B = ( 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 ) .
Figure DE102013100572B4_0020

Dann ist y = f(x) = xB + c die Funktion f : x = ( x 1 , x 2 , x 3 , x 4 ) y = ( y 1 , y 2 , y 3 , y 4 )

Figure DE102013100572B4_0021

mit y 1 = x 1 + x 3 + x 4 + 1,
Figure DE102013100572B4_0022
y 2 = x 1 + x 2 + x 4 + 1,
Figure DE102013100572B4_0023
y 3 = x 2 + x 3 + x 4 + 1,
Figure DE102013100572B4_0024
y 4 = x 1 + x 2 + x 3 + 1.
Figure DE102013100572B4_0025
Then y = f (x) = xB + c is the function f: x = ( x 1 , x 2 , x 3 , x 4th ) y = ( y 1 , y 2 , y 3 , y 4th )
Figure DE102013100572B4_0021

With y 1 = x 1 + x 3 + x 4th + 1,
Figure DE102013100572B4_0022
y 2 = x 1 + x 2 + x 4th + 1,
Figure DE102013100572B4_0023
y 3 = x 2 + x 3 + x 4th + 1,
Figure DE102013100572B4_0024
y 4th = x 1 + x 2 + x 3 + 1.
Figure DE102013100572B4_0025

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 described in example 5 in n input variables and output variables are all optimal functions. That means every other function has a larger K-value. The optimal functions are recommended as bus hikers as a countermeasure against trial attacks 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 x 4 Matrix A= ( 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 )

Figure DE102013100572B4_0026

ist. Das heißt y 1 = x 2 + x 3 + x 4 ,
Figure DE102013100572B4_0027
y 2 = x 1        + x 3 + x 4 ,
Figure DE102013100572B4_0028
y 3 = x 1 + x 2       + x 4 ,
Figure DE102013100572B4_0029
y 4 = x 1 + x 2 + x 3 .
Figure DE102013100572B4_0030
The following figure shows a possible implementation of the bijective function f (x) = xA which is optimal for n = 4, where A is the 4 x 4 matrix A = ( 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 )
Figure DE102013100572B4_0026

is. This means y 1 = x 2 + x 3 + x 4th ,
Figure DE102013100572B4_0027
y 2 = x 1 + x 3 + x 4th ,
Figure DE102013100572B4_0028
y 3 = x 1 + x 2 + x 4th ,
Figure DE102013100572B4_0029
y 4th = x 1 + x 2 + x 3 .
Figure DE102013100572B4_0030

Definiert man M = x1 + x2 + x3 + x4, dann gilt y 1 = M + x 1 ,

Figure DE102013100572B4_0031
y 2 = M + x 2 ,
Figure DE102013100572B4_0032
y 3 = M + x 3 ,
Figure DE102013100572B4_0033
y 4 = M + x 4 .
Figure DE102013100572B4_0034
Man kann die Implementierung von f daher folgendermaßen interpretieren:

  1. (i) Zuerst wird aus den Datenbits x1, x2, x3, x4 eine datenabhängige Maske M berechnet.
  2. (ii) Dann wird jede Busleitung mit M maskiert.
Dies ist in 6 dargestellt.If one defines M = x 1 + x 2 + x 3 + x 4 , then the following applies y 1 = M + x 1 ,
Figure DE102013100572B4_0031
y 2 = M + x 2 ,
Figure DE102013100572B4_0032
y 3 = M + x 3 ,
Figure DE102013100572B4_0033
y 4th = M + x 4th .
Figure DE102013100572B4_0034
One can therefore interpret the implementation of f as follows:
  1. (i) First, a data-dependent mask M is calculated from the data bits x 1 , x 2 , x 3 , x 4 .
  2. (ii) Then each bus line is masked with M.
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 assigns 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 added using a second adder 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 in the decoder 604 can be used for reverse conversion at the end of the bus. Specifically, 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 is calculated on the left 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, the same value results 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 extended accordingly 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.The following explains the secure transmission of a cryptographic key via a bus according to one embodiment.

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.In the f-matrices for the optimal functions in example 2 (case n = 4) or in example 4 (case n = 8) the first n lines contain almost all zeros. Two ones appear only under the last n + 1 positions. This is a general property of optimal functions.

Anders ausgedrückt: 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.In other words: Let f: (x 1 , x 2 , ..., x n ) → (y 1 , y 2 , ..., y n ) be an optimal bijective function in 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: Let a bus converter be implemented on an n-bit bus using an optimal function f. Suppose an attacker who carries out a test attack on the bus can test up to n-2 bus lines simultaneously. Then the attacker will still not be able 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 securely transfer data worthy of protection (with regard to a trial attack of the stated strength) via the bus if one proceeds as follows: Assume that a 128-bit long cryptographic key is to be used over the bus arrangement 500 (with n = 32). The key is typically broken down into four 32-bit words and these are sent one after the other over the bus. According to one embodiment, the procedure is instead as shown in FIG 7th is shown.

7 zeigt eine Busanordnung 700. 7th 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 assigns 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, for example, analogous to the bus arrangement 500 designed).

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 keine (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.)Any single input variable and the corresponding input of the encoder will be used 703 selected, for example the input variable x 1 and the corresponding input 704 of the encoder. Then all bits of the key are only available 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 In the end, there is no (XOR) sum of the key bit k and random bits r 2 , r 3 , ..., r 32 for each key bit. The transmission of the key bits k in this way is demonstrably secure as long as the attacker cannot eavesdrop on more than 30 bus lines at the same time. (However, the transmission of the cryptographic key now takes 32 times as long since 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 achieves the following protection against probing: An attacker who can probe up to 30 bus lines at the same time gains zero bit information about every single input value. One bit (designated with k) can thus be transmitted in a demonstrably secure manner (by 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 technically practically impossible at the moment. Therefore, in one embodiment, two optimal 16-bit bus converters can also be implemented in the 32-bit wide bus. The 32-bit wide bus is seen as two parallel 16-bit wide buses. One bit can now be safely transmitted to each of the two 16-bit-wide partial buses, together with 15 random bits each. The probing protection strength is now given for every attack in which up to 14 bus lines can be tested 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 to form an optimal 32-bit bus converter using an additional XOR gate and four switches.

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 assigns the bus arrangement 800 a bus 801 with a plurality of bus lines 802 , 804 (here n = 8) and an encoder 803 on (the bus end is not shown and is, for example, analogous to the bus arrangement 500 designed).

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.Concrete will be analogous to 6 when a first switch 809 in (shown in 8th ) is in the horizontal position and a second switch 810 is open, the input variables for the upper four bus lines 802 by means of a first adder 805 added and the result by means of a second adder 806 to generate 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.Be analog if a third switch 811 (shown in 8th ) is in the 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 a fourth adder 808 to generate 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 (shown in 8th ) are vertical and the outputs of the first adder 805 and the third adder 807 with the inputs of a fifth adder 813 couple all of the input variables using the first adder 805 , the third adder 807 and the fifth adder 813 added and, if also, the second switch 810 and the fourth switch 812 are closed, added to all input variables, so that 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 there is still a protection against probing against up to 6 line taps. And it can now 4th safe bits are transmitted over the bus (together 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 to form larger units, namely two 16-bit bus converters, or one 32-bit bus converter, the probing protection strength of 6 , on 14th , or on 30th Line taps are increased.

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 probing protection by masking, as with reference to 2 explained, the masking bits are typically generated with their own pseudo-random number generators that are 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 passes through the bus is not particularly worth protecting. 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 walk across the bus. At least this increases the hurdle for trial attacks: the tested y i generally reveal 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ührungsform 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.If, however, sensitive information is to be transmitted over the bus - for example 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. With a secure transmission, secure data is always transmitted together with random data. (An optimal bus converter takes on the task of optimally combining the safe data with the random bits in terms of information theory.) The random bits can be generated in a CPU using software, for example. Thus, hardware costs can be saved compared to masking and software can be used for this.

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.Although the invention has been shown and described primarily with reference to particular embodiments, it should be understood by those skilled in the art that numerous changes in design and details can 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, determined by the appended claims, and it is intended that all changes which come within the literal meaning or range of equivalency of the claims be embraced.

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 having: 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 set up to generate an output bit for each output from the input bits in accordance with a bijective mapping of input bits onto output bits, the encoder being set up to generate at least one of the output bits by combining at least two of the input bits and wherein the encoder is set up 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 smart 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.Bus arrangement according to one of the 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 the Claims 1 to 4th , whereby 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.Bus arrangement according to a Claim 5 , where the mapping corresponds to a multiplication of an input bit vector with a matrix and subsequent addition of a vector. Busanordnung gemäß Anspruch 6, wobei die Matrix invertierbar ist.Bus arrangement according to Claim 6 , where the matrix is invertible. Busanordnung gemäß einem der Ansprüche 6 oder 7, wobei die Dimension der Matrix n x n ist und der Vektor ein n-dimensionaler Vektor ist, wobei n die Zahl der Eingangsbits ist.Bus arrangement according to one of the Claims 6 or 7th , where the dimension of the matrix is nxn 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.Bus arrangement according to Claim 8 where the matrix contains n-1 ones in each row. 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.Bus arrangement according to one of the Claims 1 to 9 , having a first component and a second component which are coupled by means of the bus, wherein the first component is set up to provide the coder with the input bits, and wherein the input bits are bits to be transmitted to the second component by means of the bus. 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 the 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.Bus arrangement according to Claim 11 wherein the data stream for at least one bus line of the plurality of bus lines contains 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.Bus arrangement according to Claim 11 , comprising a component which is set up to generate a cryptographic key, to supply the at least one bus line of the plurality of bus lines with a cryptographic key as a data stream 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.Bus arrangement according to Claim 13 , wherein the component has a pseudo-random number generator which is configured to generate the random bit stream. Busanordnung gemäß Anspruch 14, wobei der Zufallsbitstrom mit dem kryptographischen Schlüssel unkorreliert ist.Bus arrangement according to 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.Bus arrangement according to one of the Claims 1 to 15th , further comprising a decoder which is set up 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.Bus arrangement according to Claim 16 , wherein the decoder is arranged to determine the output bits from the input bits according to the inverse mapping of the mapping. 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 line 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 of 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 DE102013100572A1 (en) 2014-07-24
DE102013100572B4 true 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 (1)

* 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] *

Also Published As

Publication number Publication date
DE102013100572A1 (en) 2014-07-24

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
DE69509127T2 (en) METHOD FOR PERFORMING A COMMUNICATION PROTOCOL WITH SECRET KEY BETWEEN TWO PROCESSING DEVICES
DE102019208032A1 (en) METHOD AND SYSTEM FOR FAULT-TOLERANT AND SAFE MULTIPARTY-PARTY CALCULATION WITH SPDZ
DE102005028662B4 (en) Method and device for calculating a polynomial multiplication, in particular for elliptic curve cryptography
CH660822A5 (en) RANDOM PRIME GENERATOR IN A DATA ENCRYPTION SYSTEM WORKING WITH PUBLIC KEY.
DE102013205544A1 (en) Apparatus and method for processing data
DE102017117907A1 (en) Perform a cryptographic operation
DE69932740T2 (en) METHOD AND DEVICE FOR CRYPTOGRAPHIC DATA PROCESSING
DE102014203497A1 (en) Masked nonlinear feedback shift register
DE69735290T2 (en) METHOD OF UNSYMMETRIC CRYPTOGRAPHIC COMMUNICATION AND RELATED ARTICLE
DE102013205542A1 (en) Apparatus and method for processing data
DE102014207296A1 (en) Apparatus and method for processing data
EP1664979B1 (en) Transition between masked representations of a value during cryptographic calculations
DE2217935A1 (en) Arrangement and procedure for correcting double errors
EP1342153B1 (en) Method and device for generating a pseudo random sequence using a discrete logarithm
DE3138698A1 (en) METHOD FOR POTENTIZING LARGE BINARY NUMBERS IN A REMAINING CLASS MODULO N, ESPECIALLY FOR ENCRYPTING AND UNLOCKING DIGITALLY PRESENTED MESSAGES
DE102013219088B4 (en) Circuit arrangement and method for realizing check bit compaction for cross-parity codes
DE102013100572B4 (en) BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS
EP3607446A1 (en) Method for creating and distributing cryptographic keys
DE68927020T2 (en) Coding and decoding method and device
DE68929263T2 (en) BLIND SIGNATURE SYSTEMS WITH A SINGLE TEMPLATE
DE69635100T2 (en) A method of processing a digital signal in such a way that the output can not be derived from the input signal, and using the method of access control and / or digital signature
DE102008046291A1 (en) Efficient storage of cryptographic parameters
DE102022131526A1 (en) PROCESSING CIRCUIT
WO2001013218A1 (en) Method for generating pseudo random numbers and method for electronic signatures

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