DE102013100572B4 - BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS - Google Patents
BUS ARRANGEMENT AND METHOD OF SENDING DATA OVER A BUS Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details 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:
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.
-
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.
Der Chip
Der Chip kann weitere Komponenten aufweisen, die mit der CPU
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
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
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
Der Bus
Am Ende des Busses (auf der Seite der empfangenen Komponente, z.B. der CPU
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
Gemäß einem Ausführungsbeispiel wird eine Busanordnung bereitgestellt, wie sie in
Die Busanordnung
Die Busanordnung
Der Kodierer
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
Das Flussdiagram
In
In
In
Ausführungsbeispiele, die im Zusammenhang mit der Busanordnung
Im Folgenden werden Ausführungsbeispiele genauer erläutert.Exemplary embodiments are explained in more detail below.
Die Busanordnung weist einen Bus
Entsprechend weist der Bus
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
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
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
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
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
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).
- (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: The following f-matrix is obtained:
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
Diese Funktion f repräsentiert den bestmöglichen Fall für einen Busumwandler für n=4. Diese Funktion hat die folgende f-Matrix: This function f represents the best possible case for a bus converter for n = 4. This function has the following f-matrix:
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
Die in Beispiel 2 betrachtete Funktion f kann auch - unter Verwendung der Matrixdarstellung - so beschrieben werden:
Man überprüft leicht, dass die angegebene Matrix
Daraus folgt, dass die Umkehrfunktion von f identisch ist mit f. Das heißt es gilt
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
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
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
Die zugehörige f-Matrix hat
In verkürzter Form lautet die f-Matrix wie folgt:
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
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
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
Zur Veranschaulichung (für n=4) und mit c = (1,1,1,1):
Dann ist y = f(x) = xB + c die Funktion
mit
With
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
ist. Das heißt
is. This means
Definiert man M = x1 + x2 + x3 + x4, dann gilt
- (i) Zuerst wird aus den Datenbits x1, x2, x3, x4 eine datenabhängige Maske M berechnet.
- (ii) Dann wird jede Busleitung mit M maskiert.
- (i) First, a data-dependent mask M is calculated from the data bits x 1 , x 2 , x 3 , x 4 .
- (ii) Then each bus line is masked with M.
Analog zu der Busanordnung
Im Kodierer
Da die betrachtete optimale Funktion f identisch mit ihrer Umkehrabbildung f-1 ist, kann dieselbe Implementierung im Dekodierer
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
Analog zu der Busanordnung
Es wird eine beliebige einzelne Eingangsvariable und der entsprechende Eingang des Kodierers
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
Analog zu der Busanordnung
Der Kodierer
Konkret werden analog zu
Analog werden, wenn ein dritter Schalter
Wenn der erste Schalter
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
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
Beim Probingschutz durch Maskieren, wie mit Bezug auf
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)
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)
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 |
-
2013
- 2013-01-21 DE DE102013100572.1A patent/DE102013100572B4/en active Active
Patent Citations (1)
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)
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 |