DE60302512T2 - Feistel-Verschlüsselungsverfahren und -vorrichtung mit Schutz gegen DPA-Angriffe - Google Patents

Feistel-Verschlüsselungsverfahren und -vorrichtung mit Schutz gegen DPA-Angriffe Download PDF

Info

Publication number
DE60302512T2
DE60302512T2 DE60302512T DE60302512T DE60302512T2 DE 60302512 T2 DE60302512 T2 DE 60302512T2 DE 60302512 T DE60302512 T DE 60302512T DE 60302512 T DE60302512 T DE 60302512T DE 60302512 T2 DE60302512 T2 DE 60302512T2
Authority
DE
Germany
Prior art keywords
data
encryption
fin
circuit
key information
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.)
Expired - Lifetime
Application number
DE60302512T
Other languages
English (en)
Other versions
DE60302512D1 (de
Inventor
Koichi Fujisaki
Masahiko Minato-ku Motoyama
Yuuki Tomoeda
Atsushi Shimbo
Hanae Ikeda
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of DE60302512D1 publication Critical patent/DE60302512D1/de
Publication of DE60302512T2 publication Critical patent/DE60302512T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]

Landscapes

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

Description

  • Diese Anwendung basiert auf und beansprucht die Vorteile aus der Priorität von der früheren japanischen Patentanmeldung mit der Nr. 2002-264977, eingereicht am 11. September, 2002, deren gesamter Inhalt hierin durch Verweis enthalten ist.
  • Die vorliegende Erfindung betrifft eine Verschlüsselungsvorrichtung und ein Verfahren, die mit einem Algorithmus vom Feistel-Typ bereitgestellt sind, und im Besonderen ein(e) gegen einen Angriff einer differentiellen Leistungsanalyse widerstandsfähige(s) Verschlüsselungsvorrichtung und -verfahren.
  • Bei einem Angriff einer konventionellen differentiellen Leistungsanalyse (differential power analysis, DPA) produziert ein Angreifer einen auf einen Leistungsverbrauch während eines Verschlüsselungsbetriebs eines Verschlüsselungsbetriebsschaltkreises bezogenen Graphen. Mit Verwenden des Leistungsverbrauchsgraphen kann der Angreifer in dem Verschlüsselungsbetriebsschaltkreis gespeicherte Schlüsselinformation stehlen.
  • Bei einem DPA-Angriff gibt ein Angreifer eine Vielzahl von Datenstücken in einen Verschlüsselungsbetriebsschaltkreis ein und erhält Messungen des entsprechenden Leistungsverbrauchs des Verschlüsselungsbetriebsschaltkreises. Als nächstes schätzt der Angreifer die in dem Verschlüsselungsbetriebsschaltkreis gespeicherte Schlüsselinformation. Wenn zu dieser Zeit ein Korrelationswert zwischen der geschätzten Schlüsselinformation und dem Leistungsverbrauch groß ist, ist die geschätzte Schlüsselinformation dann korrekt, andernfalls ist die geschätzte Schlüsselinformation inkorrekt. Der DPA-Angriff verwendet, mit anderen Worten, ein Prinzip einer Korrelation zwischen der geschätzten Schlüsselinformation und dem Leistungsverbrauch des Verschlüsselungsbetriebsschaltkreises.
  • Beim Ereignis eines DPA-Angriffes können Benutzer des Verschlüsselungsbetriebsschaltkreises nicht bestimmen, durch Untersuchen des physischen Erscheinens des Schaltkreises, ob die Schlüsselinformation durch den DPA-Angriff gestohlen worden ist oder nicht, weil der DPA-Angriff den Verschlüsselungsbetriebsschaltkreis nicht beschädigt oder zerstört. Deshalb ist ein möglicher Schaden aus einem DPA-Angriff größer als aus anderen Angriffstypen, weil der Angriff schwieriger zu detektieren ist. Deshalb ist eine Gegenmaßnahme gegen den DPA-Angriff wichtig beim Schützen eines Verschlüsselungsbetriebsschaltkreises.
  • Die häufigsten Schlüsselblockkryptosysteme, z.B. Smartcards und sichere Token, setzen einen Verschlüsselungsalgorithmus vom Feistel-Typ ein, der von Horst Feistel entwickelt wurde. Die offengelegte japanische Patentschrift 2000-66585 offenbart eine Gegenmaßnahme gegen den DPA-Angriff für einen Verschlüsselungsbetriebsschaltkreis, die den Verschlüsselungsalgorithmus vom Feistel-Typ nutzt. Im Besonderen offenbart die offengelegte japanische Patentschrift 2000-66585, dass die Schlüsselinformation während eines die Schlüsselinformation verwendenden Betriebs maskiert wird, so dass keine Korrelation zwischen dem Leistungsverbrauch während des die Schlüsselinformation verwendenden Betriebs und der Schlüsselinformation vorliegt. Diese in der offengelegten japanischen Patentschrift 2000-66585 offenbarte Technik ist eine wirkungsvolle Gegenmaßnahme gegen einen DPA-Angriff, der bei dem Ende einer Operation bzw. eines Betriebs auftritt, aber ist keine wirkungsvolle Gegenmaßnahme gegen einen DPA-Angriff, der nach dem Ende der Operation bzw. des Betriebs auftritt.
  • DE-A-19936918 offenbart eine Verschlüsselungsvorrichtung mit einer Inverter-Einheit zum Ändern von verschlüsselten Daten in veränderte Daten nach einem Ausgeben der verschlüsselten Daten.
  • Die vorliegende Erfindung stellt eine Verschlüsselungsvorrichtung und ein verwandtes Verfahren und ein Trägermedium bereit, wie in Ansprüchen 1, 9 und 10 definiert.
  • Eine die Erfindung verkörpernde Verschlüsselungsvorrichtung enthält eine Verschlüsselungsverarbeitungseinheit, die konfiguriert ist zum Iterieren einer spezifizierten Operation, um Daten zu verschlüsseln und um die verschlüsselten Daten extern auszugeben, wobei die Verschlüsselungsverarbeitungseinheit enthält: einen nicht-linearen Transformationsschaltkreis, der konfiguriert ist zum nicht-linearen Transformieren eines angegebenen ersten Datenblocks basierend auf eingegebener Schlüsselinformation und der konfiguriert ist zum Ausgeben des nicht-linear transformierten Ergebniswertes, einen Logikbearbeitungsschaltkreis, der konfiguriert ist zum logischen Bearbeiten des nicht-linear transformierten Ergebniswertes und eines eingegebenen zweiten Datenblocks, und der konfiguriert ist zum Ausgeben des logischen bearbeiteten Ergebniswertes, und ein Ersetzungsmodul, das konfiguriert ist zum Ersetzen des zweiten Datenblocks mit dem ersten Datenblock und des ersten Datenblocks mit dem logischen bearbeiteten Ergebniswert; und ein Änderungsmodul, das konfiguriert ist zum Ändern der in den nicht-linearen Transformationsschaltkreis eingegebenen Schlüsselinformation in einen Wert ohne Beziehung zu der Schlüsselinformation, wobei das Änderungsmodul eine Ausführung beginnt, nachdem die verschlüsselten Daten von der Verschlüsselungsverarbeitungseinheit ausgegeben sind.
  • Eine andere die Erfindung verkörpernde Verschlüsselungsvorrichtung enthält eine Verschlüsselungsverarbeitungsvorrichtung, die konfiguriert ist zum Iterieren bzw. wiederholen einer spezifizierten Operation, um Daten zu verschlüsseln und um die verschlüsselten Daten extern auszugeben, wobei die Verschlüsselungsverarbeitungseinheit enthält: einen nicht-linearen Transformationsschaltkreis, der konfiguriert ist zum nicht-linearen Transformieren eines eingegebenen ersten Datenblocks basierend auf eingegebener Schlüsselinformation und der konfiguriert ist zum Ausgeben des nicht-linear transformierten Ergebniswertes, einen Logikbearbeitungsschaltkreis, der konfiguriert ist zum logischen Bearbeiten des nicht-linear transformierten Ergebniswertes und eines eingegebenen zweiten Datenblocks und der konfiguriert ist zum Ausgeben des logischen bearbeiteten Ergebniswertes, und ein Ersetzungsmodul, das konfiguriert ist zum Ersetzen des zweiten Datenblocks mit dem ersten Datenblock und des ersten Datenblocks mit dem logischen bearbeiteten Ergebniswertes; und eine erste Änderungseinheit, die konfiguriert ist zum Ändern des in den nicht-linearen Transformationsschaltkreis eingegebenen ersten Datenblocks in einen Wert ohne Beziehung zu dem ersten Datenblock, wobei die erste Änderungseinheit eine Ausführung beginnt, nachdem die verschlüsselten Daten von der Verschlüsselungsverarbeitungseinheit ausgegeben sind.
  • Eine weitere die Erfindung verkörpernde Verschlüsselungsvorrichtung ist mit einem Verschlüsselungsalgorithmus vom Feistel-Typ bereitgestellt, eine nicht-lineare Transformation enthaltend, und enthält ein zum Speichern von Daten in der Verschlüsselungsvorrichtung konfiguriertes Register; und eine Änderungseinheit, die konfiguriert ist zum Ändern eines Datenblocks, auf den die nicht-lineare Transformation angewendet werden soll, in einen Wert ohne Beziehung zu diesem Datenblock, um das Register mit Information ohne Beziehung zu einem Verschlüsselungsprozess zu versorgen, wobei die Änderungseinheit eine Ausführung beginnt, nachdem die verschlüsselten Daten ausgegeben sind.
  • Eine weitere die Erfindung verkörpernde Verschlüsselungsvorrichtung ist mit einem Verschlüsselungsalgorithmus vom Feistel-Typ bereitgestellt, eine nicht-lineare Transformation enthaltend, und enthält ein Daten in der Verschlüsselungsvorrichtung speicherndes Register; und eine Änderungseinheit, die konfiguriert ist zum Ändern der Schlüsselinformation, auf die die nicht-lineare Transformation angewendet werden soll, in einen Wert ohne Beziehung zu der Schlüsselinformation, um das Register mit Information ohne Beziehung zu einem Verschlüsselungsverarbeiten zu versorgen, wobei die Änderungseinheit eine Ausführung beginnt, nachdem die verschlüsselten Daten ausgegeben sind.
  • Zusätzliche Vorteile der Erfindung werden zum Teil in der folgenden Beschreibung bekannt gemacht und sind zum Teil aus der Beschreibung offensichtlich, oder können durch Ausübung der Erfindung erlernt werden. Die Vorteile der Erfindung werden mittels der Elemente und Kombinationen realisiert und erzielt, auf die in den beigefügten Ansprüchen besonders hingewiesen wird.
  • Die vorliegende Erfindung kann entweder in Hardware oder in Software auf einem Mehrzweck-Computer implementiert sein. Ferner kann die vorliegende Erfindung in einer Kombination von Hardware und Software implementiert sein. Die vorliegende Erfindung kann auch durch eine einzelne Verarbeitungsvorrichtungen implementiert sein.
  • Da die vorliegende Erfindung durch Software implementiert sein kann, umfasst die vorliegende Erfindung für einen Mehrzweck-Computer auf irgendeinem geeigneten Trägermedium bereitgestellten Computer-Code. Das Trägermedium kann irgendein Speichermedium umfassen, so wie eine Diskette, eine CD-ROM, ein Magnetgerät oder ein flüchtiges Medium, so wie irgendein Signal, z.B. ein elektrisches, optisches oder ein Mikrowellensignal.
  • Es sollte verstanden werden, dass sowohl die vorhergehende allgemeine Beschreibung als auch die folgende detaillierte Beschreibung nur beispielhaft und erklärend sind, und nicht einschränkend für die Erfindung sind, wie beansprucht.
  • Die begleitenden Zeichnungen, die hierin enthalten sind und die einen Teil dieser Beschreibung ausmachen, veranschaulichen einige auf die Erfindung bezogene Aspekte und dienen zusammen mit der Beschreibung zum Erklären der Prinzipien der Erfindung.
  • 1 ist ein Flussdiagramm, das ein Verarbeiten durch einen Verschlüsselungsalgorithmus vom Feistel-Typ in einem Verschlüsselungsbetriebsschalkreis veranschaulicht;
  • 2 ist ein Diagramm einer Schaltkreiskonfiguration für einen Datenpfadteil in einem mit einem Algorithmus vom Feistel-Typ bereitgestellten Verschlüsselungsbetriebsschaltkreis;
  • 3 ist ein Diagramm eines Datenpfadteils in einer Kreuztyp-Schaltkreiskonfiguration für den in 2 gezeigten Verschlüsselungsbetriebsschaltkreis;
  • 4 ist ein Diagramm, das einen Datenpfad in einer Direkttyp-Schaltkreiskonfiguration für den in 2 gezeigten Verschlüsselungsbetriebsschaltkreis zeigt; und
  • 5 bis 12 sind Diagramme von beispielhaften Konfigurationen eines Verschlüsselungsbetriebsschaltkreises, eine Gegenmaßnahme gegen einen DPA-Angriff enthaltend, der konsistent mit zu der vorliegenden Erfindung bezogenen Aspekten ist.
  • Nun wird im Detail auf die Erfindung bezogene Aspekte verwiesen werden, wobei Beispiele davon in den begleitenden Zeichnungen veranschaulicht sind. Wo immer möglich werden dieselben Bezugszeichen in den Zeichnungen verwendet, um auf selbe oder ähnliche Teile zu verweisen.
  • 1 ist ein Flussdiagramm, das den Verarbeitungsfluss eines Verschlüsselungsalgorithmus vom Feistel-Typ in einem Verschlüsselungsbetriebsschaltkreis veranschaulicht. Zuerst unterwirft der Verschlüsselungsbetriebsschaltkreis zu verschlüsselnde eingegebene Blockdaten einer Anfangspermutation (Initial Permutation, IP). Die IP ordnet Daten unter eingegebenen Blockdatenbits um (Stufe 100). Dann teilt der Verschlüsselungsbetriebsschaltkreis die Blockdaten nach der Anfangspermutation in zwei Blöcke auf, die jede n/2 Bits haben (Stufe 102). Mit Verwenden dieser zwei Blöcke als Anfangswerte wiederholt der Verschlüsselungsbetriebsschaltkreis als nächstes die folgende Operation (Stufe 104). Li = Ri-1 Ri = Li-1⊗F (Schlüsseli, Ri-1)wobei i die Anzahl von Operationen (1 ≤ i ≤ k) ist, Ri die rechten Blockdaten in der i-ten Operation sind, Li die linken Blockdaten in der i-ten Operation sind, Schlüsseli die i-te Schlüsselinformation ist, F eine Funktion zum Ausführen einer nicht-linearen Operation ist, und ⊗ ein exklusives ODER (XOR) ist.
  • Nachdem die Wiederholungsoperation (Stufe 106) k Male wiederholt ist, kombiniert der Verschlüsselungsbetriebsschaltkreis die Ergebnisse der Operationen Rk und Lk bzw. fasst diese zusammen (Stufe 108). Im Speziellen fasst der Verschlüsselungsbetriebsschaltkreis Lk als den Block der n/2 Bits der höheren Ordnung und Rk als den Block der n/2 Bits der niedrigeren Ordnung zu n-Bits Blockdaten zusammen.
  • Schließlich unterwirft der Verschlüsselungsbetriebsschaltkreis die zusammengefassten bzw. kombinierten Blockdaten einer inversen Anfangspermutation ("IP–1"), und das Ergebnis wird erhalten und die Operation endet (Stufe 110).
  • 2 ist ein Blockdiagramm der Konfiguration eines Datenpfadteils in einem Verschlüsselungsbetriebsschaltkreis 200, der mit einem Verschlüsselungsalgorithmus vom Feistel-Typ bereitgestellt ist. Verschlüsselungsbetriebsschaltkreis 200 enthält eine IP-Einheit 204, ein R-Register 206, ein L-Register 208, eine Funktionsoperationseinheit 210, eine IP–1-Einheit 212, 3-Eingang-1-Ausgang-Selektoren 214 und 216 und Datenpfade 236 und 238.
  • IP-Einheit 204 ist ein Schaltkreismodul, das eine Anfangspermutationsoperation auf einer Eingabe 202 ausführt basierend auf vorbestimmten Regeln. Funktionsoperationseinheit 210 ist ein Schaltkreismodul, das die Operation einer vorgeschriebenen nicht-linearen Funktion F ausführt. IP–1- Einheit 212 ist ein Schaltkreismodul, das eine inverse Anfangspermutationsoperation basierend auf Regeln reziprok zu den vorbestimmten Regeln, die durch IP-Einheit 204 verwendet sind, ausführt. L-Register 208 und R-Register 206 haben jeweils eine N/2-Bitbreite. 3-Eingang-1-Ausgang-Selektoren 214 und 216 antworten auf ein Signal von einer Steuerschaltkreiseinheit (nicht gezeigt) und wählen Daten aus, die in L-Register 208 und R-Register 206 eingegeben werden sollen. Die drei Eingänge bzw. Eingaben (222, 224 und 226) an Selektor 214 sind der Wert der n/2 Bits der höheren Ordnung von der IP-Einheit 204, der Ausgabewert vom R-Register 206, und ein Wert, der durch das exklusive ODER-Verknüpfen des Ausgabewertes des L-Registers 208 und des Ausgabewertes der Funktionsoperationseinheit 210 produziert ist. Die drei Eingänge bzw. Eingaben (228, 230 und 232) an Selektor 216 sind der Wert der n/2 Bits der niedrigeren Ordnung von IP-Einheit 204, der Ausgabewert vom R-Register 206, und ein Wert, der durch exklusives ODER-Verknüpfen des Ausgabewertes vom L-Register 208 und des Ausgabewertes von Funktionsoperationseinheit 210 produziert ist. Nachdem alle Iterationen beendet sind, produziert Verschlüsselungsbetriebsschaltkreis 200 eine Ausgabe 220.
  • Das Ergebnis der in der oben beschriebenen Konfiguration verarbeiteten Verschlüsselungsoperation ist C = (C1, Cr) und kann wie folgt ausgedrückt werden: C = IP–1{(Lk⊗F(Schlüsselk,Rk)),Rk}.
  • Im Verschlüsselungsbetriebsschaltkreis 200 verändert IP–1-Einheit 212 nur die Anordnung von Bits, und deshalb kann der Wert von Rk ohne weiteres aus dem Operationsergebnis C spezifiziert werden. Sobald der Wert Rk spezifiziert ist, wird der Ausgabewert von Funktionsoperationseinheit 210 nach der Operation nur durch den Wert einer Variable in der Schlüsselinformation, Schlüsselk, bestimmt. Folglich kann mit Verwenden des Ausgabeergebnisses von Funktionsoperationseinheit 210 als ein Angriffspunkt die Schlüsselinformation Schlüsselk geschätzt werden, und ein DPA-Angriff kann durchgeführt werden.
  • Wenn eine Korrelation zwischen Schwankungen in dem Leistungsverbrauch und der Operation bzw. dem Betrieb der Schlüsselinformation durch Funktionsoperationseinheit 210 vorliegt, kann der Angreifer die Schlüsselinformation bestimmen. Im Besonderen führt der Angreifer einen DPA-Angriff in dem Moment aus, wenn eine Verschlüsselungsoperation endet, und stiehlt die Schlüsselinformation in dem Verschlüsselungsbetriebsschaltkreis. Diese Art von DPA-Angriffen kann verhindert werden, z.B. durch die in der offengelegten japanischen Patentschrift 2000-66585 beschriebene Technik.
  • Ein mit einem Verschlüsselungsalgorithmus vom Feistel-Typ bereitgestellter Verschlüsselungsbetriebsschaltkreis kann einem Angriff zu irgendeinem Punkt nach dem Ende einer Verschlüsselungsoperation unterworfen werden (die Zeit nach dem Ende der Operation und fortschreitend) zusätzlich zu dem Moment, wenn die Verschlüsselungsoperation endet, und die Schlüsselinformation in dem Verschlüsselungsbetriebsschaltkreis kann durch den DPA-Angriff gestohlen werden. Daten können in dem Datenpfadteil zur Zeit eines Ausgebens eines Operationsergebnisses von dem Verschlüsselungsbetriebsschaltkreis durch zwei unterschiedliche Verfahren gesteuert bzw. kontrolliert werden. Die DPA-Angriffspunkte nach der Verschlüsselungsoperation unterscheiden sich abhängig von dem Verfahren, durch welches die Daten gesteuert bzw. kontrolliert werden.
  • 3 ist ein Diagramm eines Datenpfadteils in einer Kreuztyp-Schaltkreiskonfiguration für den in 2 gezeigten Verschlüsselungsbetriebsschaltkreis. Gemäß dieser Konfiguration wählt Selektor 216 einen Datenpfad 302 aus, und Selektor 214 wählt einen Datenpfad 304 aus zu der Zeit eines Ausgebens eines Operationsergebnisses. In dieser Konfiguration werden die Daten vom L-Register 208 und R-Register 206 ausgetauscht und die Operation endet. Verschlüsselungsbetriebsschaltkreis 200 setzt mit anderen Worten eine Kreuztyp-Schaltkreiskonfiguration ein.
  • 4 ist ein Diagramm, das einen Datenpfad in einer Direkttyp-Schaltkreiskonfiguration für den in 2 gezeigten Verschlüsselungsbetriebsschaltkreis zeigt. Gemäß dieser Konfiguration wählt Selektor 216 Datenpfad 404 aus, und Selektor 214 wählt Datenpfad 402 aus zur Zeit eines Ausgebens eines Operationsergebnisses. In dieser Konfiguration werden die Daten vom L-Register 208 und R-Register 206 nicht ausgetauscht und die Operation endet. Verschlüsselungsbetriebsschaltkreis 200 setzt mit anderen Worten eine Direkttyp-Schaltkreiskonfiguration ein.
  • In einem Verschlüsselungsbetriebsschaltkreis 200, der mit einem Verschlüsselungsalgorithmus vom Feistel-Typ bereitgestellt ist, um die durch den Algorithmus bestimmte Wiederholungsoperation auszuführen, steuert ein Steuerschaltkreis (nicht gezeigt) Selektoren 214 und 216, so dass die linken und rechten Daten ausgetauscht werden. Wenn ein Operationsergebnis ausgegeben wird, wird die Operation im Verschlüsselungsbetriebsschaltkreis 200 gesteuert, in der Kreuztyp-Schaltkreiskonfiguration zu enden, wobei die linken und rechten Daten ausgetauscht sind, sofern es nicht besonders erforderlich ist, Anderes zu tun. Die Kreuztyp-Schaltkreiskonfiguration wird eingesetzt, weil die Steuerung eines Austauschens der linken und rechten Daten ähnlich der Wiederholungsoperation einfach ausgeführt wird, und das Ausmaß des Schaltkreises klein sein kann, eher als die Steuerung eines Änderns des Datenflusses zur Zeit eines Ausgebens des Operationsergebnisses, selbst wenn das Operationsergebnis ausgegeben ist.
  • In einem mit einem Dreifach-Datenverschlüsselungs-Standard (Triple Data Encryption Standard, Triple DES, 3DES) bereitgestellten Schaltkreis, der DES dreimal ausführt, muss ein Steuerschaltkreis verhindern, dass linke und rechte Daten zwischen dem Ende der ersten DES-Operation und dem Start der zweiten DES-Operation und zwischen dem Ende der zweiten DES-Operation und dem Start der dritten DES-Operation ausgetauscht werden. Deshalb wird, nach der dritten DES-Operation, häufig die Direkttyp-Schaltkreiskonfiguration eingesetzt, so dass die linken und rechten Daten nicht ausgetauscht werden vor einer Ausgabe. Der Steuerschaltkreis vermeidet ein Schalten zwischen diesen Fällen während einer Operation soweit wie möglich, um das Schaltkreisausmaß zu reduzieren. Selektoren 214 und 216 werden gesteuert, die Direkttyp-Schaltkreiskonfiguration bei dem Ende der dritten Operation als auch bei dem Ende der ersten und zweiten Operationen zu haben, so dass die Anzahl von Umschaltungen zwischen einer Operation reduziert werden kann und das Ausmaß des Steuerschaltkreises reduziert werden kann.
  • Wie oben beschrieben, setzt ein Verschlüsselungsbetriebsschaltkreis die Kreuz- oder Direktschaltkreiskonfiguration ein, wenn ein Verschlüsselungsalgorithmus vom Feistel-Typ bereitgestellt ist.
  • Nun wird der Unterschied zwischen den Angriffspunkten durch einen DPA-Angriff nach dem Ende einer Operation abhängig von dem Unterschied zwischen diesen Schaltkreiskonfigurationen beschrieben. Zuerst wird das Zeitverhalten bzw. Timing von Angriffspunkten durch einen DPA-Angriff und der Grund für die Kreuztyp-Schaltkreiskonfiguration mit Verweis auf 3 beschrieben.
  • Zur Zeit eines Taktsignals Taktfin zum Ausgeben eines Operationsergebnisses ist der Wert vom L-Register 208 Lfin und der Wert vom R-Register 206 ist Rfin. Wenn das Ergebnis einer Operation durch den Verschlüsselungsbetriebsschaltkreis C ist, kann zu dieser Zeit C ausgedrückt werden mit Verwenden des Ergebnisses der Verschlüsselungsoperation vom L-Register 208, Cl, und des Ergebnisses der Verschlüsselungsoperation vom R-Register 206, Cr, wie folgt: C = IP–1(Cl, Cr) = IP–1(Lfin⊗F(Schlüsselfin, Rfin)wobei IP–1 ein Verarbeiten ist zum Ändern der Anordnung von Bits in der inversen Anfangspermutation. Deshalb sind die Werte von Rfin und Lfin⊗F (Schlüsselfin, Rfin) ohne weiteres verfügbar aus dem Operationsergebnis C.
  • Nun, wenn das Taktsignal Taktfin+1 ist, falls R-Register 206 mit einem Wert beschrieben werden kann, ist der Wert vom R-Register 206 Lfin⊗F (Schlüsselfin, Rfin) = Rfin+1. Zu dieser Zeit ist die Schlüsselinformation dieselbe wie Schlüsselfin zu Taktfin. Deshalb ist die Ausgabe von Funktionsoperationseinheit 210 F (Schlüsselfin, Rfin+1). Der Wert Rfin+1 ist ohne weiteres bestimmbar aus dem Ausgabeergebnis des Verschlüsselungsbetriebsschaltkreises, und deshalb kann die Funktion F durch die Funktionsoperationseinheit 210 als eine Funktion mit Schlüsselfin als einzige Variable betrachtet werden.
  • Unter Verwenden des Übergangs in der Ausgabe von Funktionsoperationseinheit 210 als ein Angriffspunkt schätzt auf diese Weise ein Angreifer die Ausgabe von Funktionsoperationseinheit 210. Aus diesem wird die Schlüsselinformation bestimmt.
  • Alternativ kann der Übergang in dem Wert vom L-Register 208 auch als Angriffspunkt verwendet werden. Die Werte vom L-Register 208 zu Zeiten von Taktfin und Taktfin+1 sind Lfin bzw. Lfin+1. Der Übergang in dem Wert des L-Registers 208 kann wie folgt ausgedrückt werden: Lfin⊗Lfin+1 = Rfin-1⊗Rfin
  • Die rechte Seite des obigen Ausdrucks wird basierend auf dem Wert von L-Register 208 in der Kreuztyp-Schaltkreiskonfiguration umgeschrieben, welche die Beziehung Li = Ri-1 (1 ≤ i ≤ k) erfüllt. Hierbei ist Rfin ein Wert, der extern gemessen werden kann. Deshalb kann Rfin-1 geschätzt werden. Der Übergang im L-Register 208 hat einen Bezug zu den Schwankungen im Leistungsverbrauch vom Verschlüsselungsbetriebsschaltkreis 200, und deshalb kann der Wert von Rfin-1 durch einen DPA-Angriff spezifiziert werden. Im Speziellen, wie oben beschrieben, können die Werte von Lfin⊗F (Schlüsselfin, Rfin = Rfin+1 und Rfin gemessen werden, basierend auf dem Operationsergebnis C. Hierbei, da Lfin = Rfin-1 sind Rfin+1, Lfin und Rfin verfügbar, sobald Rfin-1 spezifiziert ist, so dass Schlüsselfin bestimmt werden kann.
  • Wie oben beschrieben, kann ein Angreifer einen DPA-Angriff mit Erfolg ausführen, während des Übergangs in dem Ausgabewert von Funktionsoperationseinheit 210 oder dem Übergang in dem Wert vom L-Register 208.
  • Bei der Kreuztyp-Schaltkreiskonfiguration können verschiedene Gegenmaßnahmen unternommen werden, um solche DPA-Angriffe zu verhindern, wie mit Verweis auf 5-10 beschrieben werden wird.
  • Als eine Gegenmaßnahme gegen einen DPA-Angriff, der auf den Ausgabewert von Funktionsoperationseinheit 210 zur Zeit von Taktfin+1 in der Kreuztyp-Schaltkreiskonfiguration bezogen ist, ist die Konfiguration von Verschlüsselungsoperationsschaltkreis 200 angepasst, so dass ein zur Funktionsoperationseinheit zur Zeit von Taktfin+1 eingegebener Wert ein Wert ohne Beziehung zu der Schlüsselinformation ist. 5 ist ein Blockdiagramm, das ein Beispiel dieser Anpassung von Verschlüsselungsbetriebsschaltkreis 200 veranschaulicht. Wie in 5 gezeigt, ist ein zusätzlicher Selektor 502 bereitgestellt an einer Stelle zum Eingeben von Schlüsselinformation zur Funktionsoperationseinheit 210. Die Schlüsselinformation, Schlüssel, wird eingegeben bis zur Zeit von Taktfin, und dann, zur Zeit von und nach Taktfin+1, kann eine Zufallszahl, RN, eingegeben werden.
  • Alternativ zeigt 6 ein Blockdiagramm, das ein Beispiel einer Anpassung von Verschlüsselungsbetriebsschaltkreis 200 einschließlich eines Logikbearbeitungsschaltkreises 602 veranschaulicht. Wie in 6 gezeigt, kann ein Wert in die Funktionsoperationseinheit 210 eingegeben werden, der durch eine exklusive ODER-("XOR")-Operation, eine logische Multiplikations-("AND")-Operation, oder eine logische Additions-("OR")-Operation zwischen der Schlüsselinformation, Schlüssel, und einer Zufallszahl, RN, produziert wird. Zur Zeit von und nach Taktfin+1 wird ein Operationsergebnis zu jedem Taktzyklus eingegeben, das durch Anwenden einer unterschiedlichen Zufallszahl, RN, produziert wird. Auf diese Weise werden die obigen Probleme gelöst.
  • Eine andere Konfiguration eines Verschlüsselungsbetriebsschaltkreises, die verhindert, dass ein extern messbarer Wert in Funktionsoperationseinheit 210 eingegeben wird, kann ebenso eine wirksame Gegenmaßnahme sein. 7 ist ein Blockdiagramm, das ein Beispiel dieser Konfiguration von Verschlüsselungsbetriebsschaltkreis 200 zeigt. Wie in 7 gezeigt, ist ein Selektor 702 bereitgestellt, der dem Eingang bzw. der Eingabe von Funktionsoperationseinheit 210 vorausgeht, und Zufallszahlen, RN, können anstelle des Inhalts von R-Register 206 zur Zeit von und nach Taktfin+1 eingegeben werden.
  • 8 ist ein Blockdiagramm, das ein Beispiel einer anderen Konfiguration vom Verschlüsselungsbetriebsschaltkreis 200 zeigt. Wie in 8 gezeigt kann anstelle von Selektor 702 Verschlüsselungsbetriebsschaltkreis 200 einen zusätzlichen Operationsschaltkreis 802 enthalten. Das Ergebnis einer Operation zwischen dem Wert vom R-Register 206 und einer Zufallszahl, RN, kann in Funktionsoperationseinheit 210 eingegeben werden. Diese Konfigurationen des Verschlüsselungsbetriebsschaltkreises verhindern, dass die in dem Verschlüsselungsbetriebsschaltkreis verwendete Schlüsselinformation oder ein Operationsergebnis direkt an Funktionsoperationseinheit 210 zur Zeit von oder nach Taktfin+1 eingegeben werden. Dies kann DPA-Angriffe in Bezug auf die Ausgabe von Funktionsoperationseinheit 210 vereiteln.
  • Zusätzlich kann ein Setzen des Wertes von R-Register 206 als ein Wert ohne Beziehung für das Ergebnis einer Operation in und nach Taktfin als eine Gegenmaßnahme gegen DPA-Angriffe gelingen. Der Grund für ein Verwenden von Taktfin und nicht Taktfin+1 hängt von dem Layout der Schaltkreise ab. 9 ist ein Blockdiagramm, das ein Beispiel dieser Konfiguration von Verschlüsselungsbetriebsschaltkreis 200 veranschaulicht. Wie in 9 gezeigt, kann ein Verschlüsselungsbetriebsschaltkreis 200 einen Selektor 902 enthalten, der der Eingabe bzw, dem Eingang vom R-Register 206 vorangeht, so dass eine Zufallszahl, RN, in R-Register 206 vom Selektor 902 zur Zeit von und nach Taktfin+1 geschrieben wird.
  • 10 zeigt ein Blockdiagramm, das ein anderes Beispiel dieser Konfiguration vom Verschlüsselungsbetriebsschaltkreis 200 veranschaulicht. Wie in 10 gezeigt können das Ergebnis von Datenpfad 236 und eine Zufallszahl, RN, einer logischen Operation unterworfen werden, die durch Logikbearbeitungsschaltkreis 1002 durchgeführt wird. Der mit der oben beschriebenen Gegenmaßnahme bereitgestellte Verschlüsselungsbetriebsschaltkreis hält einen Angreifer davon ab, mit Verwenden des Übergangs in der Ausgabe von Funktionsoperationseinheit 210 als ein Angriffspunkt in einem DPA-Angriff anzugreifen.
  • Wenn der Übergang in dem Wert vom L-Register 208 als ein Angriffspunkt vermutet wird, sollte Rfin nicht in L-Register 208 zur Zeit von und nach Taktfin geschrieben werden. 11 ist ein Blockdiagramm, das ein Beispiel einer Konfiguration von Verschlüsselungsbetriebsschaltkreis 200 zum Erreichen dieses Ergebnisses veranschaulicht. Wie in 11 gezeigt, enthält Verschlüsselungsbetriebsschaltkreis 200 zum Beispiel einen Operationsschaltkreis 1102 zum Durchführen von AND/OR/XOR-Operationen, auf einem Datenpfad 238 zum L-Register 208. Das Ergebnis einer Operation zwischen dem Wert auf Datenpfad 238 und einer Zufallszahl kann in L-Register 208 zur Zeit von und nach Taktfin+1 geschrieben werden.
  • 12 ist ein Blockdiagramm, das ein anderes Beispiel einer Konfiguration eines Verschlüsselungsbetriebsschaltkreises 200 zum Erreichen dieses Ergebnisses veranschaulicht. Wie in 12 gezeigt, kann ein Selektor 1202 im Datenpfad 238 bereitgestellt sein, so dass eine Zufallszahl, RN, in L-Register 208 zur Zeit von und nach Taktfin+1 geschrieben werden kann. Der mit diesen oben beschriebenen Gegenmaßnahmen bereitgestellte Verschlüsselungsbetriebsschaltkreis kann den Angreifer davon abhalten, den Übergang in dem Wert vom L-Register 208 als ein Angriffspunkt zu verwenden.
  • Nun werden der Zeitpunkt und die Operation eines DPA-Angriffs in der Direkttyp-Schaltkreiskonfiguration beschrieben werden, wie in 4 veranschaulicht.
  • Ähnlich der Kreuztyp-Schaltkreiskonfiguration ist in der Direkttyp-Schaltkreiskonfiguration der Wert von L-Register 208 Lfin, und der Wert von R-Register 206 ist Rfin zur Zeit vom Taktsignal Taktfin zum Ausgeben eines Operationsergebnisses. Zur Zeit des Takfin folgenden nächsten Taktsignals Taktfin+1 können die Werte von L-Register 208 und R-Register 206, Lfin+1 bzw. Rfin+1 durch die folgenden Ausdrücke dargestellt werden: Lfin+1 = Lfin⊗F(Schlüsselfin, Rfin) Rfin+1 = Rfin
  • Zur Zeit von Taktfin+1, mit Bezug auf den Übergang in dem Wert vom L-Register 208, kann der Übergang als Lfin⊗Lfin+1 = F (Schlüsselfin, Rfin) geschrieben werden. Der Übergang F in dem Wert von dem L-Register 208F (Schlüsselfin, Rfin) enthält Information in Beziehung zu der Schlüsselinformation und Rfin kann extern gemessen werden. Wenn ein DPA-Angriff in Bezug auf den Übergang in dem Wert vom L-Register 208 durchgeführt wird, kann deshalb die Schlüsselinformation, Schlüsselfin, in dem Verschlüsselungsbetriebsschaltkreis bestimmt werden.
  • Deshalb ist die Schaltkreiskonfiguration so angepasst, dass der Wert vom L-Register 208 keine Korrelation mit der Schlüsselinformation des Verschlüsselungsbetriebsschaltkreises zur Zeit von Taktfin+1 hat. Solch eine Schaltkreisinformation kann z.B. implementiert sein durch Bereitstellen eines Logik-Operator-Schaltkreises 1202, so wie einem AND-, OR-, und XOR-Schaltkreis, auf Datenpfad 238 zum L-Register 208, wie in 11 gezeigt. Der Verschlüsselungsbetriebsschaltkreis 200 funktioniert ähnlich der Kreuztyp-Schaltkreiskonfiguration. Alternativ kann ein Schreiben des Ergebnisses einer Operation zwischen dem Wert vom Datenpfad 238 und einer Zufallszahl, RN, in L-Register 208, oder durch Umschalten zwischen dem Wert vom Datenpfad 238 und einer Zufallszahl RN, mit Verwenden eines Selektors 1102 zur Zeit von Taktfin wie in 12 getätigt werden.
  • Wenn die Schaltkreiskonfiguration angepasst ist, so dass Schlüsselfin und Rfin immer in Funktionsoperationseinheit 210 eingegeben werden zur Zeit von und nach Taktfin, könnte die Schlüsselinformation basierend auf dem Übergang in dem Ausgabewert von Funktionsoperationseinheit 210 ähnlich der oben beschriebenen Kreuztyp-Schaltkreiskonfiguration spezifiziert werden. Deshalb, ähnlich der DPA-Gegenmaßnahme in Funktionsoperationseinheit 210 für die in 5-10 gezeigte Kreuztyp-Schaltkreiskonfiguration, kann diese verwendet werden, um die Gegenmaßnahme in der Direkttyp-Schaltkreiskonfiguration zu implementieren.
  • Wenn keine Daten in das R-Register 206 und das L-Register 208 zur Zeit von Taktfin+1 oder Taktfin geschrieben werden, egal ob der Schaltkreis die Kreuztyp-Schaltkreiskonfiguration oder die Direkttyp-Schaltkreiskonfiguration hat, und Schlüsselinformation Schlüsselfin immer in Funktionsoperationseinheit 210 zur Zeit von und nach Taktfin+1 oder Taktfin eingegeben wird, ergibt sich der Ausgabewert F (Schlüsselfin, Rfin von Funktionsoperationseinheit 210. Deshalb, ähnlich der oben beschriebenen Kreuztyp-Schaltkreiskonfiguration, könnte der Übergang in dem Ausgabewert von Funktionsoperationseinheit 210 für einen DPA-Angriff verwundbar sein. Deshalb können die DPA-Gegenmaßnahmen in Funktionsoperationseinheit 210 für die in 5-10 gezeigte Kreuztyp-Schaltkreiskonfiguration verwendet werden zum Implementieren der Gegenmaßnahme in der Direkttyp-Schaltkreiskonfiguration.
  • Zusätzliche Vorteile und Modifizierungen werden ohne weiteres dem Fachmann ersichtlich werden. Deshalb ist die Erfindung in ihren breiteren Aspekten nicht auf spezifische Details und hier gezeigte und beschriebene darstellende Ausführungsformen beschränkt. Dementsprechend können verschiedene Modifizierungen getätigt werden, ohne den Bereich des allgemeinen erfinderischen Konzeptes zu verlassen, wie durch die angehängten Ansprüche und deren Äquivalente definiert.

Claims (10)

  1. Verschlüsselungsvorrichtung mit: einer Verschlüsselungsbetriebseinheit (200), die konfiguriert ist, mit einem Verschlüsselungsalgorithmus vom Feistel-Typ bereitgestellt zu sein, die zum Verschlüsseln von Daten konfiguriert ist, und die zum Ausgeben von verschlüsselten Daten konfiguriert ist; und einer Änderungseinheit (502, 602, 702, 802, 902, 1002, 1102, 1202), die zum Ändern der verschlüsselten Daten konfiguriert ist, wobei die Änderungseinheit mit dem Ändern der verschlüsselten Daten nach dem Ausgeben der verschlüsselten Daten beginnt; dadurch gekennzeichnet, dass die Änderungseinheit zum Ändern der verschlüsselten Daten in Daten ohne Beziehung konfiguriert ist, und dass die Verschlüsselungsbetriebseinheit mit einer nicht-linearen Transformierungsfunktion konfiguriert ist, die eingerichtet ist zum Empfangen einer Zufallszahl, einer geänderten Schlüsselinformation oder eines geänderten ersten Datenblocks, um Daten ohne Beziehung zu erzeugen.
  2. Verschlüsselungsvorrichtung gemäß Anspruch 1, die konfiguriert ist zum Erzeugen der Daten ohne Beziehung durch Ändern einer Schlüsselinformation, die der nicht-linearen Transformierungsfunktion in der Verschlüsselungsbetriebseinheit bereitgestellt ist.
  3. Verschlüsselungsvorrichtung gemäß Anspruch 1, die konfiguriert ist zum Erzeugen der Daten ohne Beziehung durch Ändern eines ersten Datenblocks, der auf die nicht-lineare Transformierungsfunktion in der Verschlüsselungsbetriebseinheit angewendet werden soll.
  4. Verschlüsselungsvorrichtung gemäß einem der Ansprüche 1 bis 3, wobei die Verschlüsselungsbetriebseinheit ferner umfasst: einen Schaltkreis einer nicht-linearen Transformation (210), der konfiguriert ist zum nicht-linearen Transformieren eines eingegebenen ersten Datenblocks basierend auf Eingabeschlüsselinformation, und der konfiguriert ist zum Ausgeben des nicht-linear transformierten Ergebniswertes, einen Logikbetriebsschaltkreis, der konfiguriert ist zum logischen Wirken auf den nicht-linear transformierten Ergebniswert und einen eingegebenen zweiten Datenblock, und der konfiguriert ist zum Ausgeben des logisch beeinflussten Ergebniswertes, und ein Ersetzungsmodul, das konfiguriert ist zum Ersetzen des zweiten Datenblockes mit dem ersten Datenblock und des ersten Datenblocks mit dem logisch beeinflussten Ergebniswert.
  5. Verschlüsselungsvorrichtung gemäß Anspruch 4, in welcher die Änderungseinheit ferner ein Änderungsmodul umfasst, das konfiguriert ist zum Ändern der ersten Datenblockeingabe in den Schaltkreis einer nicht-linearen Transformation in einen Wert ohne Beziehung zu dem ersten Datenblock.
  6. Verschlüsselungsvorrichtung gemäß Anspruch 4, in welcher die Änderungseinheit ferner ein Änderungsmodul umfasst, das konfiguriert ist zum Ändern der Schlüsselinformationseingabe in den Schaltkreis einer nicht-linearen Transformation in einen Wert ohne Beziehung zu der Schlüsselinformation.
  7. Verschlüsselungsvorrichtung gemäß einem der Ansprüche 1 bis 3, in welcher die Verschlüsselungsbetriebseinheit ferner ein Register (206, 208) zum Speichern eines Datenblockes und einer nicht-linearen Transformierungsfunktion umfasst, und die Änderungseinheit konfiguriert ist zum Ändern des Datenblockes, der auf die nicht-lineare Transformierungsfunktion angewendet werden soll, in einen Wert ohne Beziehung zu dem Datenblock, um das Register mit Information ohne Beziehung zu einem Verschlüsselungsprozess zu beliefern.
  8. Verschlüsselungsvorrichtung gemäß einem der Ansprüche 1 bis 3, in welcher die Verschlüsselungsbetriebseinheit ferner ein Register (206, 208) zum Speichern eines Datenblockes und einer nicht-linearen Transformierungsfunktion enthält, und die Änderungseinheit konfiguriert ist zum Ändern einer Schlüsselinformation, die auf die nicht-lineare Transformierungsfunktion angewendet werden soll, in einen Wert ohne Beziehung zu der Schlüsselinformation, um das Register mit Information ohne Beziehung zu einem Verschlüsselungsprozess zu beliefern.
  9. Verschlüsselungsverfahren zum Verschlüsseln von Daten in einer einen Verschlüsselungsalgorithmus vom Feistel-Typ nutzenden Verschlüsselungsvorrichtung, mit: Empfangen (202) von zu verschlüsselnden Daten; Durchführen (200) eines Verschlüsselungsbetriebes bzw. einer Verschlüsselungsoperation auf den empfangenen Daten, um verschlüsselte Daten zu produzieren; Ausgeben (220) der verschlüsselten Daten; und Ändern (502, 602, 702, 802, 902, 1002, 1102, 1202) der verschlüsselten Daten nach Ausgeben der verschlüsselten Daten; dadurch gekennzeichnet, dass die verschlüsselten Daten in Daten ohne Beziehung geändert werden; und durch Durchführen (210) einer nicht-linearen Transformierungsoperation auf den verschlüsselten Daten; wobei die Daten ohne Beziehung durch Anwenden einer Zufallszahl, einer geänderten Schlüsselinformation oder eines geänderten ersten Datenblocks auf die nicht-lineare Transformierungsoperation erzeugt werden.
  10. Trägermedium, das Computer-lesbare Instruktionen trägt zum Steuern eines Computers, das Verfahren von Anspruch 9 auszuführen.
DE60302512T 2002-09-11 2003-09-09 Feistel-Verschlüsselungsverfahren und -vorrichtung mit Schutz gegen DPA-Angriffe Expired - Lifetime DE60302512T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002264977 2002-09-11
JP2002264977A JP4357815B2 (ja) 2002-09-11 2002-09-11 暗号演算回路

Publications (2)

Publication Number Publication Date
DE60302512D1 DE60302512D1 (de) 2006-01-05
DE60302512T2 true DE60302512T2 (de) 2006-06-22

Family

ID=31884765

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60302512T Expired - Lifetime DE60302512T2 (de) 2002-09-11 2003-09-09 Feistel-Verschlüsselungsverfahren und -vorrichtung mit Schutz gegen DPA-Angriffe

Country Status (4)

Country Link
US (1) US7159115B2 (de)
EP (1) EP1398901B1 (de)
JP (1) JP4357815B2 (de)
DE (1) DE60302512T2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI112903B (fi) * 2000-12-05 2004-01-30 Nokia Corp Menetelmä, järjestelmä ja jakosolmu sanomien jakamiseksi
JP3927151B2 (ja) * 2003-05-30 2007-06-06 株式会社東芝 記憶装置
JP3940714B2 (ja) * 2003-09-25 2007-07-04 株式会社東芝 演算装置、および、暗号・復号演算装置
JP4634788B2 (ja) * 2004-12-17 2011-02-16 株式会社東芝 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード
JP4823904B2 (ja) * 2005-03-31 2011-11-24 パナソニック株式会社 データ暗号化装置及びデータ暗号化方法
JP4783104B2 (ja) * 2005-09-29 2011-09-28 株式会社東芝 暗号化/復号装置
EP1798888B1 (de) * 2005-12-19 2011-02-09 St Microelectronics S.A. Schutz der Ausführung eines DES-Algorithmus
DE102006011223A1 (de) * 2006-03-10 2007-09-13 Micronas Gmbh Datenverarbeitungsverfahren mit einem Verschlüsselungsalgorithmus
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
US8068823B2 (en) * 2006-12-13 2011-11-29 Qualcomm Incorporated Optimizing call setup latency for geographically dense groups
DE102007012726A1 (de) 2007-03-16 2008-09-18 Micronas Gmbh Verschlüsselungsvorrichtung mit einem mehrstufigen Verschlüsselungsblock
JP2009027472A (ja) * 2007-07-19 2009-02-05 Toshiba Corp 暗号演算装置
KR100859162B1 (ko) * 2007-10-16 2008-09-19 펜타시큐리티시스템 주식회사 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법
FR2941342B1 (fr) * 2009-01-20 2011-05-20 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
JP2010288233A (ja) * 2009-06-15 2010-12-24 Toshiba Corp 暗号処理装置
WO2011036745A1 (ja) * 2009-09-24 2011-03-31 株式会社東芝 鍵スケジュール装置および方法
WO2011101994A1 (ja) 2010-02-22 2011-08-25 株式会社東芝 暗号化装置
US8948376B2 (en) * 2010-05-11 2015-02-03 Ca, Inc. Format-preserving encryption via rotating block encryption
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
MY178555A (en) * 2011-08-19 2020-10-16 Mimos Berhad Method and system for providing a secured internet protocol based communication
JP5926655B2 (ja) * 2012-08-30 2016-05-25 ルネサスエレクトロニクス株式会社 中央処理装置および演算装置
US9946662B2 (en) * 2014-08-29 2018-04-17 The Boeing Company Double-mix Feistel network for key generation or encryption
US10530566B2 (en) * 2015-04-23 2020-01-07 Cryptography Research, Inc. Configuring a device based on a DPA countermeasure
FR3040513B1 (fr) * 2015-09-02 2018-11-16 Stmicroelectronics (Rousset) Sas Protection d'un algorithme de rijndael
FR3040514B1 (fr) 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
FR3040515B1 (fr) 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
US10200192B2 (en) * 2017-04-19 2019-02-05 Seagate Technology Llc Secure execution environment clock frequency hopping

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2173688C (en) * 1996-04-09 2000-01-18 Hideo Shimizu Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
JPH11109856A (ja) * 1997-09-30 1999-04-23 Matsushita Electric Ind Co Ltd 復号装置
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
DE19936918A1 (de) * 1998-09-30 2000-04-06 Philips Corp Intellectual Pty Verschlüsselungsverfahren zum Ausführen von kryptographischen Operationen
JP3827050B2 (ja) * 1999-03-09 2006-09-27 株式会社ルネサステクノロジ Icカードと半導体集積回路装置
JP3844116B2 (ja) 2001-04-16 2006-11-08 株式会社ルネサステクノロジ 暗号化・復号化装置とicカード
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化

Also Published As

Publication number Publication date
US7159115B2 (en) 2007-01-02
DE60302512D1 (de) 2006-01-05
JP4357815B2 (ja) 2009-11-04
US20040091107A1 (en) 2004-05-13
EP1398901B1 (de) 2005-11-30
JP2004101981A (ja) 2004-04-02
EP1398901A1 (de) 2004-03-17

Similar Documents

Publication Publication Date Title
DE60302512T2 (de) Feistel-Verschlüsselungsverfahren und -vorrichtung mit Schutz gegen DPA-Angriffe
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
DE102009024179B4 (de) Schaltung mit einer Mehrzahl von Funktionsweisen
DE102015110431A1 (de) Kryptografischer Prozessor, Verfahren zum Implementieren eines kryptografischen Prozessors und Schlüsselgenerierungsschaltung
EP0981115B1 (de) Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger
DE602004003226T2 (de) Tabellenmaskierung zur Beständigkeit gegen Angriffe durch Analyse der Leistungsaufnahme.
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE112009000152B4 (de) Verfahren zur Datenübertragung über einen Datenkanal mit einem Elliptische-Kurven-Kryptographieverfahren und Vorrichtung hierfür
DE102004042826A1 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE102006013975B4 (de) Kryptographievorrichtung und -verfahren mit Skalarmultiplikation
EP1272984B1 (de) Tragbarer datenträger mit schutz vor seitenkanalattacken
WO2004032411A1 (de) Geschützte kryptographische berechnung
DE102018116572A1 (de) Schutz gegen seitenkanalangriffe
EP1324188A2 (de) Verfahren zum Multiplizieren zweier Faktoren aus dem Galois-Feld sowie Multiplizierer zum Durchführen des Verfahrens
DE102005057104A1 (de) Smartcard und Steuerverfahren hierfür
DE102021101697B3 (de) Datenverarbeitungsvorrichtung und verfahren zum verarbeiten geheimer daten
DE10224742B4 (de) Datenverarbeitungsschaltung und Verfahren zum Übertragen von Daten
EP1080400B1 (de) Verfahren und vorrichtung zum verarbeiten von daten
WO2014063875A1 (de) Vorrichtung und verfahren zur ausführung eines kryptographischen verfahrens
DE102015209120A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
EP1446711B1 (de) Schiebevorrichtung und verfahren zum verschieben
DE102020102796A1 (de) Datenverarbeitungsvorrichtung und verfahren zum verarbeiten von geheimen daten
DE102023106166B3 (de) Sicherheits-controller und verfahren zur durchführung einer auswahlfunktion
DE10201443B4 (de) Carry-Save-Multiplizierer für verschlüsselte Daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition