DE60217260T2 - Datenverarbeitungs- und Verschlüsselungseinheit - Google Patents

Datenverarbeitungs- und Verschlüsselungseinheit Download PDF

Info

Publication number
DE60217260T2
DE60217260T2 DE60217260T DE60217260T DE60217260T2 DE 60217260 T2 DE60217260 T2 DE 60217260T2 DE 60217260 T DE60217260 T DE 60217260T DE 60217260 T DE60217260 T DE 60217260T DE 60217260 T2 DE60217260 T2 DE 60217260T2
Authority
DE
Germany
Prior art keywords
data
key
encrypted
processing unit
encryption
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
DE60217260T
Other languages
English (en)
Other versions
DE60217260D1 (de
Inventor
Hitachi Takashi Chiyoda-ku Watanabe
Hitachi Masahiro Chiyoda-ku Kaminaga
Hitachi Takashi Chiyoda-ku Endo
Hitachi Seiichi Chiyoda-ku Kumano
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of DE60217260D1 publication Critical patent/DE60217260D1/de
Publication of DE60217260T2 publication Critical patent/DE60217260T2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf eine Datenverarbeitungseinheit, insbesondere auf ein Verfahren zum Verschlüsseln und Entschlüsseln von zu verarbeitenden Daten in einer Datenverarbeitungseinheit und noch genauer auf ein Verfahren zum Verschlüsseln und Entschlüsseln von Daten, die in einer Datenverarbeitungseinheit verwendet werden.
  • 2. BESCHREIBUNG DES STANDES DER TECHNIK
  • Die meisten IC-Karten (Karten mit integrierten Schaltungen) und elektrischen Haushalts-Informationsgeräte sind mit Datenverarbeitungseinheiten ausgestattet, die auf einer gemeinsamen Struktur basieren, die in 1 gezeigt ist. Diese Datenverarbeitungseinheiten besitzen nur eine begrenzte Menge an Verarbeitungsleistung und Speicherplatz, wie z. B. eine 8-Bit-Zentraleinheit (CPU) E101, in der Größenordnung von 10 kB an flüchtigem Speicher (RAM E102) und eine gewisse Menge an nicht-flüchtigem Speicher (EEPROM E103 und ROM E104). Netzknotenvorrichtungen und Router, die im Allgemeinen eine kryptographische Verarbeitung verwenden, sie besitzen jedoch eine größere Menge an Verarbeitungsleistung und Speicherplatz, wie z. B. eine 32-Bit-CPU und mehrere hundert Megabytes an flüchtigem Speicher (RAM). Die letzteren besitzen auch weniger Beschränkungen hinsichtlich der Systemgröße und des maximalen Leistungsverbrauchs als die ersteren, die ihre Verarbeitungsfähigkeiten nicht durch Erhöhen der Taktrate des Prozessors oder durch Hinzufügen von externer Hardware erhöhen können.
  • Das Hinzufügen von Computerhardware zu einer Vielfalt von elektrischen Datenverarbeitungsgeräten und -systemen wird vorherrschend, weshalb die Speicherung und Verwendung von verschiedenen Informationen und der Austausch von Daten zwischen Computern häufiger durchgeführt wurden. Es ist daher zunehmend erforderlich, Daten zu verarbeiten, die einen Schutz gegen den Austritt nach außen während Datenaustauschvorgängen von Computer zu Computer erfordern, wie z. B. elektronisches Geld, Rechnungsinformationen und private Informationen. Kryptographische Verfahren sind für die geheime Verarbeitung solcher Informationen unentbehrlich.
  • Typisch für die kryptographischen Systeme, die nun verwendet werden, sind DES (Datenverschlüsselungsstandard) (National Bureau of Standards, Data Encryption Standard, US-Handelsministerium, FIPS pub. 46, Januar 1977) und RSA (nach seinen Erfindern Rivest, Shamir und Adleman benannt) (R. L. Rivest, A. Shamir und L.M. Adleman, A method for obtaining digital signatures and public-key cryptosystems, Communications of the ACM (2) 21 (1978), 120-126). Das erstere ist ein Geheimschlüssel-Kryptosystem und das letztere ist ein Kryptosystem mit öffentlichem Schlüssel. Ein Geheimschlüssel-Kryptosystem verwendet einen gemeinsamen geheimen Schlüssel zur Verschlüsselung und Entschlüsselung und wird auch als Kryptosystem mit gemeinsamem Schlüssel oder als Kryptosystem mit symmetrischem Schlüssel bezeichnet. Andererseits verwendet ein Kryptosystem mit öffentlichem Schlüssel verschiedene Schlüssel zur Verschlüsselung und Entschlüsselung und wird auch als Kryptosystem mit asymmetrischem Schlüssel bezeichnet. Im Allgemeinen beinhaltet der in einem Kryptosystem mit geheimem Schlüssel verwendete Schlüssel die Kombination von Eingangsdaten mit 64 bis 128 Bits mit 64 bis 128 Schlüsselbits durch Ersetzen von Bitbeziehungen und Permutation von Bitpositionen, die derzeit mehrere Male durchgeführt werden.
  • Die einzigen Berechnungen, die in einem Kryptosystem mit geheimem Schlüssel erforderlich sind, sind Bitoperationen und die Bezugnahme auf relativ kleine Tabellen, was es möglich macht, dass sogar eine Datenverarbeitungseinheit mit vergleichsweise mäßigen Fähigkeiten, die Verarbeitung in kurzer Zeit, wie z. B. einigen Millisekunden, vollendet.
  • Die Schlüssel in einem Kryptosystem mit öffentlichem Schlüssel sind durch mathematische Beziehungen eingeschränkt, die zwischen den Verschlüsselungs- und Entschlüsselungsschlüsseln gelten müssen, so dass die in diesen Systemen erzeugten Schlüssel wahrscheinlich lang sind, z. B. 1024 Bits. Außerdem werden umfangreiche numerische Berechnungen durchgeführt, die einige hundert Millisekunden für eine Datenverarbeitungseinheit mit vergleichsweise kleiner Verarbeitungsleistung dauern, selbst wenn ein Coprozessor verwendet wird.
  • Ein Kryptosystem mit geheimem Schlüssel stellt einen Schlüssel bereit, der vom Sender und Empfänger im Voraus gemeinsam genutzt wird, wodurch eine schnellere Verarbeitung ermöglicht wird; ein Kryptosystem mit öffentlichem Schlüssel legt den Verschlüsselungsschlüssel für die Öffentlichkeit für eine Seite zur Verwendung zum Verschlüsseln von Daten offen, während die andere Seite unter Verwendung eines geheimen Entschlüsselungsschlüssels entschlüsselt. Dieses System erzielt eine größere Sicherheit, aber es erfordert mehr Zeit für die Berechnung als ein Kryptosystem mit geheimem Schlüssel. Daher werden Kryptosysteme mit geheimem Schlüssel häufig für die kryptographische Verarbeitung von Daten verwendet, die innerhalb derselben Datenverarbeitungseinheit verwendet werden, während Kryptosysteme mit öffentlichem Schlüssel für die kryptographische Verarbeitung von Daten verwendet werden, die unter verschiedenen Datenverarbeitungseinheiten ausgetauscht werden.
  • Eine Datenverarbeitungseinheit, die geheime Informationen in der nicht flüchtigen Speichervorrichtung speichert, kann ein Kryptosystem mit geheimem Schlüssel verwenden, um die Informationen zu verschlüsseln und die verschlüsselten Informationen zu warten, falls die Speichervorrichtung entnommen und physikalisch analysiert wird, während das System abgeschaltet ist. Die geheimen Informationen können in dieser Weise sicher gehalten werden, indem der Benutzer den kryptographischen Schlüssel in einer verwürfelten Form speichert, die von einem Dritten nicht leicht entwürfelt werden kann. Verfahren unter Verwendung von DES und anderen Kryptosystemen mit geheimem Schlüssel werden auch durch eine offenbarte Software, wie z. B. PGP (Pretty Good Privacy), als kryptographische Algorithmen für Daten, die in externen Speichervorrichtungen gespeichert werden, implementiert.
  • Wegen der Sicherheit ist jedoch nur die Verschlüsselung von Daten, die in externen Speichervorrichtungen gespeichert werden sollen, unangemessen; es ist auch erforderlich, Daten innerhalb der Systemeinheit geheim zu halten, die die Verschlüsselung und Entschlüsselung der Daten durchführt. Die vorliegende Erfindung schafft eine Hardware, die dieses Ziel mit vergleichsweise kleinen Ressourcen erreicht, einschließlich nur ein paar Registern zum Halten von Schlüs seldaten, einer Berechnungsausrüstung und einer Datenverarbeitungseinheit mit vergleichsweise kleiner Verarbeitungsleistung, wobei der kleine Hardwaremaßstab auch eine schnellere Verarbeitung ermöglicht. Eine Datenverarbeitungseinheit gemäß der vorliegenden Erfindung kann eine Verarbeitung durchführen, die gegen Informationsaustritt sicher ist. Die Aufmerksamkeit wurde auf dieses Problem von einem kryptographischen Analyseverfahren gelenkt, das als DPA (Differentielle Leistungsanalyse) bekannt ist (siehe P. Kocher, J. Jaffe und B. Jun, Differential Power Analysis, Advances in Cryptology CYPT'99, Vortragsanmerkung in Computer Science 1666, Springer-Verlag, S. 388-397, 1999), 1998 von P. Kocher präsentiert. Die Offenbarung dieses Verfahrens (siehe auch WO 99/63696) zeigte die Notwendigkeit für den Schutz nicht nur von Daten, die in externen Speichervorrichtungen gespeichert sind, sondern auch von Daten, die in arithmetischen und logischen Einheiten verarbeitet werden. DPA ist ein Analyseverfahren, das beobachtet, wie sich der Stromverbrauch mit den verarbeiteten Daten ändert, um den Zustand eines bestimmten Bits zu bestimmen. Das Wesentliche dieses Analyseverfahrens liegt in der Verwendung der Korrelation zwischen den durch eine Datenverarbeitungseinheit verarbeiteten Daten und dem entsprechenden Stromverbrauch.
  • Der Stromverbrauch einer Datenverarbeitungseinheit ändert sich mit den verarbeiteten Daten. Die zu verarbeitenden Daten sind durch zwei Parameter gekennzeichnet: wobei einer ihre Schreibweise angibt und der andere ihre Stelle angibt, wie z. B. binäre Schreibweise in Computern und die Adresse in einem CPU-Adressraum. Herkömmliche Datenverarbeitungseinheiten präsentieren verarbeitete Daten in einer Kombination von Eingaben und Ausgaben. Aufgrund der Eigenschaften der in integrierten Schaltungen verwendeten CMOS-Chips unterscheidet sich der Stromverbrauch in Abhängigkeit davon, ob eine "1" oder eine "0" verarbeitet wird.
  • Es soll angenommen werden, dass der Stromverbrauch, wenn Daten x, die sich an der Adresse a befinden, verarbeitet werden, in der Form c(x, a) ausgedrückt wird; und die Anzahl von "1"-en von Daten x in binärer Schreibweise, die als Hamming-Gewicht bezeichnet wird, als H(x) ausgedrückt wird. Wenn die Busbreite der Datenverarbeitungseinheit w Bits ist, gilt offensichtlich 0 ≤ H(x) ≤ w. Es ist zu beachten, dass die binäre Schreibweise auch beim Zugreifen auf die Adresse a verwendet wird. Es soll auch angenommen werden, dass der Stromverbrauch bei der Verarbeitung einer "1" d1 ist und der Stromverbrauch bei der Verarbeitung einer "0" d0 ist. Wenn beispielsweise die Breiten des Datenbusses und des Adressenbusses der Datenverarbeitungseinheit 8 Bits sind, dann gilt C(x, a) = (H(x) + H(a))d1 + ((8 – H(x)) + (8 – H(a)))d0 + α + βwobei α der addierte Leistungsverbrauch ist, wenn ein spezieller Teil der Datenverarbeitungseinheit arbeitet und β Rauschen ist, das durch die Messausrüstung verursacht wird.
  • Zuerst müssen α und β, die von den Daten unabhängige Elemente sind, beseitigt werden. Wenn eine Datenverarbeitungseinheit in einem gegebenen Zustand gehalten wird und zwei verschiedene Elemente von Daten x0 und x1 verarbeitet, sind die Werte von α0 und α1 in den folgenden Gleichungen, die den Stromverbrauch bei der Verarbeitung von x0 bzw. x1 angeben, gleich. C(x0, a0) = (H(x0) + H(a0))d1 + ((8 – H(x0)) + (8 – H(a0)))d0 + α0 + β0 und C(x1, a1) = (H(x1) + H(a1))d1 + ((8 – H(x1)) + (8 – H(a1)))d0 + α1 + β1
  • Wenn die Rauschterme β0 und β1 beseitigt werden können, ist es dann möglich, die Daten x0 mit den Daten x1 zu vergleichen, indem c(x0, a0) und c(x1, a1) verglichen werden. Da β eine Rauschgröße ist, ist sein Mittelwert 0. Daher kann β durch Berechnen des Mittelwerts von n Stromverbrauchsmessungen c[0] bis c[n-1], durch Dividieren ihrer Summe durch n, wenn n ausreichend groß ist, beseitigt werden. Wenn β0 und β1 in dieser Weise beseitigt werden, dann gilt c(x0, a0) – c(x1, a1) = ((H(x0) + H(a))(H(x1) + H(a1)))d1 + ((H(x1) + H(a1)) – (H(x0) + h(a0)))d0und wenn die zwei Elemente von Daten an derselben Adresse angeordnet sind, d. h. a0 = a1, dann gilt c(x0, a0) – c(x1, a1) = H(x0) – H(x1))d1 – (H(x0) – H(x1))d0
  • Wenn d = d1 – d0, kann ferner die obige Gleichung auf C(x0, a0) – c(x1, a1) = (H(x0) – H(x1))d reduziert werden.
  • Es ist unpraktisch, zu verfolgen und zu wissen, welcher Teil der Datenverarbeitungseinheit zu einem gewissen Zeitpunkt arbeitet, so dass es schwierig ist, α zu erhalten. Es ist jedoch leichter, die Differenz d anstelle der Absolutwerte von d1 und d0 zu finden, indem Differenzen von Daten genommen werden, wobei α zu einem Versatz wird. Auf der Basis dieser Information ist es folglich möglich, die Hamming-Gewichtsdifferenz zwischen den Daten x0 und x1 aus dem Ausdruck c(x0, a0) – c(x1, a1) zu kennen. Bevor tatsächliche Daten abgeleitet werden, ist es für einen 8-Bit-Bus nützlich, den Leistungsverbrauch von neun Datenelementen mit Hamming-Gewichten von 0 bis 8 im Voraus beispielsweise als Basistest zu prüfen. Als neun Datenelemente soll angenommen werden, dass 0, 1, 3, 7, 15, 31, 63, 127 und 255 verwendet werden, die als b'0, b'1, b'11, b'111, b'1111, b'11111, b'111111, b'1111111 und b'11111111 in Binärschreibweise ausgedrückt werden und Hamming-Gewichte 0, 1, 2, 3, 4, 5, 6, 7 und 8 aufweisen. Wenn die Differenz zwischen den Basistestdaten und den erhaltenen Daten berechnet wird, ist es möglich, Daten mit einer Differenz von 0 im Hamming-Gewicht aus den zu verarbeitenden Daten zu erhalten.
  • Es soll angenommen werden, dass der während einer Berechnung mit den verarbeiteten Daten beobachtete Stromverbrauch Daten 1 entspricht, die aus dem Basistest erhalten werden. Dies bedeutet, dass das Hamming-Gewicht der zu verarbeitenden Daten 1 ist. 8-Bit-Zahlenwerte mit einem Hamming-Gewicht von 1 sind 1, 2, 4, 8, 16, 32, 64 und 128, so dass es möglich ist zu wissen, dass der Wert der verarbeiteten Daten einer dieser Werte ist. In Abhängigkeit von der Architektur der Datenverarbeitungstechnologie gibt es Fälle, in denen sich der Stromverbrauch in Abhängigkeit von den Bitpositionen (0 bis 7) in einem 8-Bit-Bus unterscheiden kann. In diesem Fall ist es möglich, die verarbeiteten Daten eindeutig zu bestimmen, indem alle 28=256 Basistestdatenelemente im Voraus erhalten werden und sie mit den verarbeiteten Daten einzeln verglichen werden. Wenn Daten in dieser Weise im Schlüsseloperationsteil einer kryptographischen Verarbeitungseinheit erhalten werden können, können Schlüssel leicht entschlüsselt werden.
  • Die Beseitigung des Werts des vorstehend beschriebenen Rauschens β wird dann zu einem Problem. Im Allgemeinen wird veranlasst, dass eine Datenverarbeitungseinheit dieselben Daten n mal verarbeitet, wobei n eine angemessen große Zahl ist, so dass die Stromverbrauchsmuster c[0] bis c[n-1] erhalten werden und ihr Mittelwert berechnet werden kann. Der Mittelwert von β ist 0 und folglich kann β beseitigt werden. Es sollte beachtet werden, dass Informationen, die sich gewöhnlich nicht ändern, wie z. B. private Informationen, für einen Austritt anfälliger sind, wenn das Rauschen durch Mitteln von Daten, die mehrere Male gemessen werden, beseitigt wird. Der Wert von n kann nicht leicht definiert werden, da er von der Rauschquelle der Datenverarbeitungseinheit und von der Genauigkeit der Messausrüstung abhängt. Wenn jedoch der tatsächliche Wert von n nicht abgeleitet werden kann, ist es zulässig, einfach weiterhin die Messung zu wiederholen, bis das Rauschen beseitigt ist. Eine mögliche Gegenmaßnahme gegen eine solche Datenanalyse bestünde darin, Operationen, die mehrere Male wiederholt werden, was angemessen ist, um das Rauschen durch Mittelung zu beseitigen, zu sperren.
  • Da Datenverarbeitungseinheiten elektrischen Strom verarbeiten, ist es unpraktisch, die Korrelation zwischen den verarbeiteten Informationen und dem Stromverbrauch zu beseitigen. Daher müssen verarbeitete Daten verschlüsselt werden, um es für die Analysatoren unmöglich zu machen, die Dateninhalte abzuleiten. Das vorstehend beschriebene DES-Kryptosystem und andere derartige kryptographische Algorithmen können verwendet werden, aber sie brauchen zu lang und erfordern zu viele Hardware-Ressourcen wie z. B. Register und flüchtigen Speicherplatz für die Datenverschlüsselung, als dass sie zur Verwendung in Einheiten mit vergleichsweise kleiner Verar beitungsleistung geeignet wären, die Daten bei Bedarf verschlüsseln und entschlüsseln müssen. Verschlüsselungs-/Entschlüsselungseinheiten, die eine kryptographische Verarbeitung mit minimalen Hardware-Ressourcen und minimaler Verarbeitungszeit durchführen können, sind erforderlich.
  • US 4 746 788 offenbart, dass Daten, die für eine IC-Karte eindeutig sind, und verschlüsselte eindeutige Daten, die durch Verschlüsseln der eindeutigen Daten erhalten werden, vorher in der IC-Karte gespeichert werden. Die verschlüsselten eindeutigen Daten werden in einem IC-Karten-Endgerät entschlüsselt, um entschlüsselte Daten zu erhalten, und die entschlüsselten Daten und die in der IC-Karte gespeicherten eindeutigen Daten werden auf der Seite der IC-Karte und auch im IC-Karten-Endgerät verglichen, wodurch die Echtheit beider, der IC-Karte und des IC-Karten-Endgeräts, bestätigt wird.
  • DE 34 18 571 offenbart ein System für die Übertragung von verschlüsselten Daten zwischen einer Sendeeinheit und einer Empfangseinheit. Für die Verschlüsselung werden veränderliche Schlüssel auf der Basis eines geheimen Schlüsselteils und eines zufälligen Schlüsselteils erzeugt. Ein Schlüsselgenerator erzeugt eine Schlüsselimpulsfolge auf der Basis des variablen Schlüssels und eine Mischeinheit verschlüsselt den Klartext auf der Basis der Schlüsselimpulsfolge. Die Ansprüche sind gegen dieses Dokument abgegrenzt.
  • US 6 067 621 offenbart ein Benutzerauthentifizierungssystem zum Authentifizieren eines Benutzers unter Verwendung einer IC-Karte in Verbindung mit einem tragbaren Endgerät, das zum Erzeugen eines einmaligen Passworts verwendet wird.
  • Zusammenfassung der Erfindung
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Datenverarbeitungseinheit und ein Verfahren zum Verschlüsseln/Entschlüsseln von Daten mit verbesserter Sicherheit gegen Schlüsselangriffe zu schaffen.
  • Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst. Die abhängigen Ansprüche beziehen sich auf bevorzugte Ausführungsformen der Erfindung.
  • Eine Datenverarbeitungseinheit verschlüsselt die Inhalte von Daten, die zwischen einer Speichervorrichtung und einer Berechnungsausrüstung ausgetauscht werden, wodurch es möglich gemacht wird, die Korrelation zwischen zu verarbeitenden Daten und dem Stromverbrauch zu durchbrechen. Daher kann ein Analysator, der den Stromverbrauch prüft, wenn Daten verarbeitet werden, die Inhalte der Daten nicht lernen. Außerdem kann die Datenverarbeitungseinheit Daten sowohl automatisch als auch transparent verschlüsseln und entschlüsseln. Daher kann sie Sicherheit gegen Stromverbrauchsanalyse durch einen Dritten schaffen, ohne die Aufmerksamkeit des Benutzers auf die Verschlüsselungs- und Entschlüsselungsprozesse lenken zu müssen.
  • Eine Datenverarbeitungseinheit kann ferner Daten verschlüsseln, die in einer Speichervorrichtung gespeichert werden oder die neu erzeugt werden, und speichert die verschlüsselten Daten in der Speichervorrichtung. Da Daten aus der Berechnungsausrüstung in einer Form ausgegeben werden, die von einem externen Angreifer nicht vorhergesagt werden kann, kann der externe Angreifer keine Analyse unter Verwendung der Daten als Anhaltspunkt durchführen. Insbesondere kann das periodische oder zufällige Ändern der Schlüsseldaten, die zur Verschlüsselung verwendet werden, die Informationen über die Schlüsseldaten, die von einem externen Angreifer gespeichert wurden, nach einem gewissen Zeitpunkt ungültig machen. Wenn der Schlüssel geändert wird, wird eine erneute Verschlüsselung von Daten, die bereits verschlüsselt und gespeichert wurden, durchgeführt. Die erneute Verschlüsselung kann durch Entschlüsseln der verschlüsselten Daten mit dem ursprünglichen Schlüssel und Verschlüsseln der entschlüsselten Daten von neuem mit dem geänderten Schlüssel implementiert werden; diese Möglichkeit ist jedoch von der vorliegenden Erfindung nicht abgedeckt. Alternativ können die ursprünglichen verschlüsselten Daten mit dem geänderten Schlüssel verschlüsselt werden, ohne entschlüsselt zu werden, und ein neuer Schlüssel, der die Entschlüsselung der neu verschlüsselten Daten ermöglicht, kann aus dem ursprünglichen Schlüssel und dem geänderten Schlüssel erzeugt und gespeichert werden. In dieser Weise können die entschlüsselten Daten gegen einen externen Angriff geschützt werden, was zu verbesserter Sicherheit führt.
  • In einigen Fällen kann ein Angreifer bemerken, dass ein Element von Eingangsdaten mehrere Male in der Datenverarbeitungseinheit verarbeitet wird. Wie gerade vorstehend beschrieben, werden die verarbeiteten Daten verschlüsselt und nehmen in jeder Operation verschiedene Formen an. Wenn jedoch dieselben Daten in derselben Reihenfolge verarbeitet werden, kann es Fälle geben, in denen das Rauschen, das während der Stromverbrauchsanalyse beobachtet und gemessen werden kann, beseitigt werden kann. Daten, die sich über mehrere Blöcke erstrecken, werden im Allgemeinen nacheinander vom oberen Block verarbeitet, so dass ein Angreifer eine Datenana lyse unter dieser Annahme versuchen wird. Die vorliegende Erfindung führt die Verarbeitung von Datenblöcken in einer zufälligen Reihenfolge aus, die von Angreifern nicht vorhergesagt werden kann, wodurch die Analyse schwieriger gemacht wird. Wenn die Ausführungsreihenfolge geändert wird, ist es möglich, die Daten in einer vorbestimmten oder zufälligen Reihenfolge zu permutieren und die Verarbeitung nacheinander vom oberen Block durchzuführen, oder es ist möglich, Daten direkt von der Speicherposition zu entnehmen, ohne sie zu permutieren. Die Verschlüsselung von Daten mit deren Permutation kann die Analyse noch schwieriger machen.
  • Das physikalische oder logische Permutieren von Datenspeicherpositionen verhindert einen Informationsaustritt in Abhängigkeit von Adresseninformationen zum Bezeichnen von Datenspeicherpositionen oder physikalischen Eigenschaften der Speicherpositionen, selbst wenn dieselben Daten wiederholt verwendet werden, wodurch eine sicherere Datenverarbeitung ermöglicht wird. Die Datenspeicherpositionen können von den Inhalten von Daten abhängig gemacht werden, können durch die anwendbare Datenspeicherpositions-Steuereinheit bestimmt werden oder können zufällig gemacht werden.
  • Es sollte beachtet werden, dass die vorliegende Erfindung auf Datenverarbeitungseinheiten mit einer externen Schnittstelle wie z. B. einem E/A-Anschluss als Dateneingabeanschluss oder Ausgabeanschluss oder als beides anwendbar ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Damit die vorliegende Erfindung deutlich verstanden und leicht ausgeführt wird, wird die vorliegende Erfindung in Verbindung mit den folgenden Fig. beschrieben, in denen gleiche Bezugszeichen dieselben oder ähnliche Elemente bezeichnen, wobei die Fig. in die Patentbeschreibung integriert sind und einen Teil von dieser bilden, wobei:
  • 1 ein Blockdiagramm ist, das die Basisstruktur einer Datenverarbeitungseinheit zeigt;
  • 2 ein Blockdiagramm ist, das einen Basisoperationsablauf einer Datenverarbeitungseinheit zeigt;
  • 3 ein Blockdiagramm ist, das eine Verschlüsselungs-/Entschlüsselungseinheit für Daten innerhalb einer Speichervorrichtung durch eine Berechnungsausrüstung zeigt;
  • 4 ein Blockdiagramm ist, das eine Verschlüsselungs-/Entschlüsselungseinheit für Daten innerhalb einer Speichervorrichtung durch eine Berechnungsausrüstung mit einem Zufallszahlengenerator zeigt;
  • 5 ein Blockdiagramm ist, das eine Verschlüsselungs-/Entschlüsselungseinheit für Daten mit undefinierter Länge unter Verwendung von mehreren Elementen von Schlüsseldaten zeigt;
  • 6 ein Blockdiagramm ist, das eine Verschlüsselungs-/Entschlüsselungseinheit unter Verwendung eines Elements von Schlüsseldaten zeigt;
  • 7 ein Blockdiagramm ist, das eine Datenverarbeitungseinheit zeigt, die Daten von einer Speichervorrichtung unter Verwendung von Schlüsseldaten verschlüsselt und entschlüsselt und die Daten unter Verwendung von neuen Schlüsseldaten verschlüsselt und entschlüsselt (wenn anfängliche Daten gespeichert werden);
  • 8 ein Blockdiagramm ist, das eine Datenverarbeitungseinheit zeigt, die Daten, die aus einer Speichervorrichtung gelesen werden, unter Verwendung von Schlüsseldaten verschlüsselt und entschlüsselt, dann die Daten verschlüsselt und entschlüsselt und die Daten unter Verwendung von neuen Schlüsseldaten zurückschreibt (wenn die Daten gelesen werden);
  • 9 ein Blockdiagramm ist, das eine Datenverarbeitungseinheit zeigt, die Daten, die von einer Speichervorrichtung gelesen werden, unter Verwendung von Schlüsseldaten verschlüsselt und entschlüsselt, dann die Daten verschlüsselt und entschlüsselt und die Daten unter Verwendung von neuen Schlüsseldaten zurückschreibt (wenn die Daten erneut verschlüsselt werden);
  • 10 ein Blockdiagramm ist, das eine Datenverarbeitungseinheit (während der Verschlüsselung) zeigt;
  • 11 ein Blockdiagramm ist, das eine Datenverarbeitungseinheit zeigt, die die Verarbeitungsreihenfolge von Daten in der Speichervorrichtung unter Verwendung von Daten zum Bestimmen der Ausführungsreihenfolge ändert, eine Verschlüsselung und Entschlüsselung von Daten unter Verwendung von Schlüsseldaten durchführt und die Reihenfolge der verschlüsselten und entschlüsselten Daten auf die Reihenfolge zum Zeitpunkt der Eingabe unter Verwendung der Daten zum Bestimmen der Ausführungsreihenfolge wiederherstellt (während der Entschlüsselung);
  • 12 ein Blockdiagramm ist, das eine Datenverarbeitungseinheit zeigt, die eine Verschlüsselung/Entschlüsselung durch Ändern der Verarbeitungsreihenfolge durchführt;
  • 13 ein Blockdiagramm ist, das eine Datenverarbeitungseinheit zeigt, die Datenspeicherstellen ändert, dann Daten verschlüsselt und entschlüsselt und die Daten speichert;
  • 14 ein Blockdiagramm ist, das eine Datenverarbeitungseinheit zeigt, die Datenspeicherstellen ändert, dann Daten verschlüsselt und entschlüsselt und die Daten speichert; und
  • 15 ein erläuterndes Diagramm ist, das ein Verfahren zum Austauschen von Datenspeicherstellen derart, dass die ausgetauschten Speicherstellen aus den ursprünglichen Speicherstellen nicht abgeschätzt werden können, zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Es soll selbstverständlich sein, dass die Fig. und Beschreibungen der vorliegenden Erfindung vereinfacht wurden, um Elemente, die für ein klares Verständnis der vorliegenden Erfindung relevant sind, darzustellen, während für Klarheitszwecke andere Elemente, die gut bekannt sein können, beseitigt sind. Fachleute werden erkennen, dass andere Elemente erwünscht und/oder erforderlich sind, um die vorliegende Erfindung zu implementieren. Da jedoch solche Elemente auf dem Fachgebiet gut bekannt sind und da sie ein besseres Verständnis der vorliegenden Erfindung nicht erleichtern, wird hierin eine Erörterung solcher Elemente nicht vorgesehen. Die ausführliche Beschreibung wird nachstehend mit Bezug auf die beigefügten Zeichnungen vorgesehen.
  • Ausführungsformen der Erfindung werden nun mit Bezug auf die beigefügten Zeichnungen unter der Annahme, dass die Verschlüsselung und Entschlüsselung unter Verwendung eines Kryptosystems mit geheimem Schlüssel durchgeführt werden, beschrieben.
  • Erste Ausführungsform
  • Diese Ausführungsform betrifft die Verschlüsselung von zu verarbeitenden Daten. Wie in 2 gezeigt, umfasst die Datenverarbeitung durch eine Datenverarbeitungseinheit E201 grundsätzlich: (a) das Lesen von Daten aus einer Speichervorrichtung E202 (Schritt S201); (b) die Berechnung durch eine Berechnungsausrüstung E203 (Schritt S202); und (c) das Schreiben von Daten in die Speichervorrichtung E202 (Schritt S203). Zu diesem Zeitpunkt werden verschiedene Arten von Datenelementen aus der Speichervorrichtung E202 in Abhängigkeit vom Zweck oder Status der Einheit gelesen. In diesem Beispiel wird angenommen, dass die Datenelemente feste Werte besitzen, wie z. B. die ID-Nummer der Datenverarbeitungseinheit, private Informationen des Eigentümers und die Verschlüsselungsschlüssel. Wenn solche festen Werte von einer Datenverarbeitungseinheit ohne die von der vorliegenden Erfindung bereitgestellten Gegenmaßnahmen gelesen werden, kann ein Angreifer die entsprechenden Daten unter Verwendung der vorstehend beschriebenen Verfahren erhalten.
  • Eine Datenverarbeitungseinheit E301 gemäß einem beispielhaften Aspekt, die in 3 und 4 gezeigt ist, die keinen Teil der vorliegenden Erfindung bildet, speichert anfänglich Daten d[0] in einer Spei chervorrichtung E302 durch Verschlüsseln der Daten d[0] mit Schlüsseldaten k[0], die in einer anderen Speichervorrichtung E304 gespeichert sind (Schritt S301), um verschlüsselten Daten d'[0] zu erhalten, die dann in der Speichervorrichtung E302 gespeichert werden (Schritt S302). Im vorstehend beschriebenen Schritt (a) kann nach dem Lesen der Daten d'[0] aus der Speichervorrichtung E302 die Berechnungsausrüstung E303 Daten d[0] durch Entschlüsseln von d'[0] mit den Schlüsseldaten k[0] erhalten (Schritt S304). Als nächstes verschlüsselt die Berechnungsausrüstung E303 die Daten d[0] erneut mit neuen Schlüsseldaten k[1], die in der Speichervorrichtung E304 gespeichert sind, um Daten d''[0] zu erhalten (Schritt S305), und speichert die Daten d''[0] in der Speichervorrichtung E302 (Schritt S306). Daher ändern sich die Daten vorzugsweise jedes Mal, wenn sie ausgelesen werden.
  • Obwohl d[0] mit k[1] in diesem Beispiel erneut verschlüsselt wird, kann d'[0] stattdessen verschlüsselt werden, um d'''[0] zu erhalten. In diesem Fall werden die Daten d'''[0] unter Verwendung von k[1] und k[0] nacheinander erhalten.
  • In einem weiteren Beispiel wird ein neuer Schlüssel k'[0] aus k[1] und k[0] für die direkte Entschlüsselung von d'''[0] und d[0] erzeugt. Insbesondere wenn eine Exklusiv-ODER-Operation als kryptographisches Verarbeitungsverfahren verwendet wird, gilt die folgende Beziehung
    d''[0] = d'[0] Exklusiv-ODER k[1] = (d[0] Exklusiv-ODER k[0]) Exklusiv-ODER k[1] = d[0] Exklusiv-ODER (k[0] Exklusiv-ODER k[1])
  • Daher gilt, wenn k'[0] = k[0] Exklusiv-ODER k[1] verwendet wird, dann
    d''[0] Exklusiv-ODER k'[0] = d[0] Exklusiv-ODER (k[0] Exklusiv-ODER k[1]) Exklusiv-ODER (k[0] Exklusiv-ODER k[1]) = d[0]
  • Folglich kann die Entschlüsselung implementiert werden. Die Additions- oder Multiplikationsoperationen in endlichen Feldern können auch anstelle der Exklusiv-ODER-Operation verwendet werden, um zu bewirken, dass dieselbe Beziehung gilt. Daten, die vom Benutzer vorbereitet werden oder von der Datenverarbeitungseinheit selbst bereitgestellt werden, können in der Speichervorrichtung zur Verwendung als nicht zufällige Schlüsseldaten gespeichert werden oder die Ausgabe aus einem Zufallszahlengenerator E405 kann in der Speichervorrichtung, wie in 4 gezeigt, zur Verwendung als Schlüsseldaten gespeichert werden.
  • In einem beispielhaften Aspekt, der keinen Teil der vorliegenden Erfindung bildet, können mehrere Verschlüsselungsschlüssel entsprechend jeder möglichen Datenlänge vorbereitet werden, wie in 5 gezeigt, oder ein gemeinsamer Schlüssel kann von der ganzen Speichervorrichtung verwendet werden, wie in 6 gezeigt. Die zwei Speichervorrichtungen E501 und E504, die in 5 gezeigt sind, können unabhängige Speichervorrichtungen sein oder sie können zu einer Speichervorrichtung kombiniert werden, aus der Daten gelesen und in die Daten geschrieben werden. Es können mehrere Speichervorrichtungen E502, E505 und E506 zum Speichern von Schlüsseldaten vorhanden sein oder die Speichervorrichtungen E502, E505 und E506 können ein einzelne Speichervorrichtung sein, in der die Schlüsseldaten sequentiell aktualisiert werden.
  • Wenn Schlüsseldaten k[0] auf Schlüsseldaten k[1] aktualisiert werden, werden Daten, die in einem Bereich gespeichert sind, der mit denselben Schlüsseldaten k[0] verschlüsselt ist, erneut mit den Schlüsseldaten k[1] verschlüsselt. Das Verringern der Größe des Bereichs verringert die Menge an erneuter Verschlüsselung, die erforderlich ist, wenn die Schlüsseldaten aktualisiert werden, wodurch die Verarbeitungslast verringert wird, erfordert jedoch das Hinzufügen einer neuen Speichervorrichtung zum Halten von mehreren Schlüsseldatenelementen oder zur Verarbeitung für die Aktualisierung von Schlüsseldaten.
  • Der Benutzer kann die Aktualisierung von Verschlüsselungsschlüsseln manuell lenken und Daten, die in einer Speichervorrichtung gehalten werden erneut verschlüsseln, oder eine Entschlüsselungs/Verschlüsselungseinheit kann die Aktualisierung automatisch durchführen lassen.
  • Es soll angenommen werden, dass DES als Verschlüsselungsalgorithmus verwendet wird. DES verwendet 56-Bit-Schlüsseldaten, eine 64-Bit-Eingabe und eine 64-Bit-Ausgabe. Nun soll angenommen, dass 64-Bit-Daten d'[0], die mit 56-Bit-Schlüsseldaten k[0] verschlüsselt und in der Speichervorrichtung gespeichert wurden, ausgelesen werden. Als nächstes werden neue 56-Bit-Schlüsseldaten k[1] durch den Zufallszahlengenerator erzeugt. Wenn die Anzahl von 64-Bit-Blöcken in dem mit den Schlüsseldaten k[0] verschlüsselten Bereich n ist (wobei n eine natürliche Zahl ist), werden die gespeicherten Daten d[i] (wobei i von 0 bis n variiert) in 64-Bit-Einheiten aus dem oberen Block in der Speichervorrichtung nacheinander oder in zufälliger Reihenfolge gelesen und (kein Teil der vorliegenden Erfin dung) mit Schlüsseldaten k[0] entschlüsselt, was Datenelemente d[0] bis d[n-1] ergibt. Anschließend werden diese Datenelemente mit den Schlüsseldaten k[1] gleichzeitig oder anschließend erneut verschlüsselt und die resultierenden Datenelemente d''[0] ... d''[n-1] werden in der Speichervorrichtung gespeichert. Die Datenelemente d'[0] ... d'[n-1] können auch mit den Schlüsseldaten k[1] erneut verschlüsselt werden, um d'''[0] ... d'''[n-1] zu erhalten. Das Entschlüsselungsverfahren ist wie vorstehend beschrieben.
  • In dieser Ausführungsform werden verschlüsselte Daten nur in den Speichervorrichtungen gespeichert, die in der Datenverarbeitungseinheit vorgesehen sind, und werden nicht nach außen ausgegeben. Ferner werden Datenverarbeitungseinheiten mit hoher Sicherheit mit verfälschungssicheren Vorrichtungen geschaffen, was den Zugriff auf die darin gehaltenen Vorrichtungen schwierig macht, was verhindert, dass intern gehaltene Daten bekannt sind. Daher ist es für einen Analysator schwierig, Eingabe-Ausgabe-Textpaare zu erkennen, die erforderlich sind, um die Verschlüsselungsschlüssel zu analysieren und um Schlüsseldatenelemente zu bestimmen, die in den Vorrichtungen verwendet werden. Folglich ist es möglich, dieselben Schlüsseldaten für einen festen Zeitraum zu verwenden, anstatt die Schlüsseldaten jedes Mal, wenn Daten verarbeitet und ausgelesen werden, zu aktualisieren.
  • Der folgende Absatz betrifft einen beispielhaften Aspekt, der keinen Teil der vorliegenden Erfindung bildet. Es ist offensichtlich, dass andere Kryptosysteme mit geheimem Schlüssel als DES verwendet werden können. Kryptosysteme mit öffentlichem Schlüssel können auch verwendet werden, aber die Verarbeitungsgeschwindigkeiten sinken. Wenn ein Kryptosystem mit öffentlichem Schlüssel verwendet wird, wird ein Paar von Schlüsseln e[0] und d[0] erzeugt, wobei e[0] ein Verschlüsselungsschlüssel ist und d[0] ein Entschlüsselungsschlüssel ist. Daten x, die mit e[0] verschlüsselt werden, werden in einer Speichervorrichtung gespeichert. Die Daten x werden aus der Speichervorrichtung gelesen und mit d[0] entschlüsselt, was die entschlüsselten Daten x' ergibt. Ein neues Paar von Schlüsseln e[1] und d[1] wird erzeugt, wobei e[1] ein Verschlüsselungsschlüssel ist und d[1] ein Entschlüsselungsschlüssel ist. Die entschlüsselten Daten x' werden mit dem Verschlüsselungsschlüssel e[1] erneut verschlüsselt und die erneut verschlüsselten Daten x'' werden in der Speichervorrichtung gespeichert.
  • In einem Kryptosystem mit geheimem Schlüssel muss derselbe Schlüssel mindestens zweimal verwendet werden, einmal für die Verschlüsselung und einmal für die Entschlüsselung, während in einem Kryptosystem mit öffentlichem Schlüssel verschiedene Schlüssel zum Zeitpunkt der Verschlüsselung und Entschlüsselung verwendet werden, so dass es möglich ist, die Anzahl von Verwendungen von jedem Verschlüsselungsschlüssel und Entschlüsselungsschlüssel nur auf eine zu begrenzen. Dies kann es schwierig machen, den Entschlüsselungsschlüssel vorherzusagen, selbst wenn der Verschlüsselungsschlüssel offenbart wird, und umgekehrt. Da die Datenanalyse schwieriger wird, wenn die Anzahl von Möglichkeiten, die Daten zu beobachten, abnimmt, ist es im Allgemeinen bevorzugt, Kryptosysteme mit öffentlichem Schlüssel für sicherheitskritische Anwendungen zu verwenden. Obwohl die kryptographische Verarbeitung unter Verwendung eines Kryptosystems mit geheimem Schlüssel angenommen wird, wenn nicht anderweitig angegeben, ist folglich ein Kryptosystem mit öffentlichem Schlüssel auch anwendbar.
  • Zweite beispielhafte Ausführungsform
  • Diese Ausführungsform betrifft das Zufälligmachen der Ausführungsreihenfolgen und Datenstellen.
  • (2-1) Entschlüsselungsverfahren unter Verwendung von Datenstelleninformationen
  • Im Folgenden wird ein beispielhafter Aspekt, der keinen Teil der vorliegenden Erfindung bildet, beschrieben. Es soll angenommen werden, dass die modulare Potenzierung yx mod N durchgeführt wird. Die modulare Potenzierung ist eine wesentliche Operation im kryptographischen RSA-Algorithmus mit öffentlichem Schlüssel. Bei RSA ist N ein öffentlicher Schlüssel und bekannte Informationen, y sind Eingangsdaten und x ist ein geheimer Exponent. Die modulare Potenzierung muss durchgeführt werden, um den Austritt des geheimen Exponenten zu verhindern.
  • Ein bekanntes Verfahren zum Durchführen von modularen Potenzierungsoperationen mit hoher Geschwindigkeit ist das Additionskettenverfahren. Diese Ausführungsform stellt ein Beispiel unter Verwendung des 2-Bit-Additionskettenverfahrens bereit. Es soll angenommen werden, dass x 2048 Bits lang ist und x[i] den i-ten 2-Bit-Block darstellt. Das heißt 0 ≤ x[i] ≤ 3. Die folgende Operation wird durchgeführt.
  • Figure 00240001
  • Die Operation wird in vier Zweige (b-1) bis (b-4) in Abhängigkeit von dem Wert des geheimen Exponenten unterteilt. Wenn x eine Zufallszahl ist, werden die Operationen (b-1) bis (b-4) 256 mal jeweils im Durchschnitt verarbeitet. Für Operationen (b-1) bis (b-4) müssen, um y0 mod N, y1 mod N, y2 mod N und y3 mod N durch Durchführen von Multiplikation modulo N zu erhalten, Daten, die in der Speichervorrichtung gespeichert sind, ausgelesen werden. Durch Beobachten der Daten, die übertragen und zum Zeitpunkt der Multiplikation modulo N verwendet werden, kann ein Angreifer mitteilen, welche Operation unter den Operationen (b-1) bis (b-4) durchgeführt wird, und folglich das entsprechende x[i] identifizieren. Der geheime Exponent kann in dieser Weise ermittelt werden.
  • Die Datenverarbeitungseinheit gemäß dieser Ausführungsform erzeugt y0 mod N, y1 mod N, y2 mod N und y3 mod N aus der Eingabe y als anfängliche Berechnung, verschlüsselt sie unter Verwendung der Schlüsseldaten k[0] E707, k[1] E7088, k[2] E709 bzw. k[3] E710, speichert sie dann in Form einer Tabelle E703, E704, E705, E706, so dass auf sie später Bezug genommen werden kann (siehe 7). Eine Schleife im Additionskettenprozess unterteilt die Operation in einen der Zweige (b-1) bis (b-4) und die Tabellendaten werden in der in 8 gezeigten Weise ausgelesen (Schritte S801, S802, S803 und S804). Die gelesenen Daten werden mit den entsprechenden Schlüsseldaten (E807, E808, E809 und E810) in einer Verschlüsselungs/Entschlüsselungseinheit E802 entschlüsselt und werden dann zum externen Ausgang E801 der Berechnungsanlage oder zur Speichervorrichtung oder zur Datenverarbeitungseinheit übertragen. Die Daten gemäß den Berechnungen y0 mod N, y1 mod N, y2 mod N und y3 mod N, die in der Speichervorrichtung gespeichert sind, werden alle erneut mit neuen Verschlüsselungsschlüsseln k'[0] E907, k'[1] E908, k'[2] E909 und k'[3] E910, wie in 9 gezeigt, verschlüsselt, dann in der Speichervorrichtung gespeichert (Schritte S901, S902, S903 und S904). Dies verhindert, dass der Analysator weiß, welche der Operationen (b-1) bis (b-4) verwendet wird, da, wenn y0 mod N in einer Schleife verwendet wird und anschließend wieder verwendet wird, die in jedem Fall ausgelesenen Werte unterschiedlich sind.
  • In dieser beispielhaften Beschreibung, die nicht auf die vorliegende Erfindung Bezug nimmt, wird angenommen, dass die Schlüsseldatenelemente von k[0] bis k[3] und von k'[0] bis k'[3] voneinander verschieden sind, aber es möglich ist, die Speichervorrichtung, die zum Speichern von Schlüsseldaten verwendet wird, kompakter zu machen, indem k[0] = k[1] = k[2] = k[3] und k'[0] = k'[1] = k'[2] = k'[3] definiert wird. Außerdem ist es möglich, verschiedene Speichervorrichtungen für k[0] bis k[3] und k'[0] bis k'[3] zu verwenden, und es ist auch möglich, die Speichervorrichtung kompakter zu machen, indem Daten umgeschrieben werden, um die Verwendung derselben Speichervorrichtung zu ermöglichen. Ferner kann die Steigerung der Verarbeitungszeit minimiert werden, wenn nur Daten, die verwendet wurden, mit einem neuen Verschlüsselungsschlüssel erneut verschlüsselt werden. In diesem Fall werden die Verschlüsselungsschlüssel mit den Datenelementen in Zusammenhang gehalten, wie in 7, 8 und 9 gezeigt.
  • Obwohl diese Ausführungsform in Bezug auf das 2-Bit-Additionskettenverfahren beschrieben wurde, kann es auch auf das allgemeine n-Bit-Additionskettenverfahren, das Gleitfensterverfahren und andere Verfahren, in denen es erforderlich ist, dieselben Daten wiederholt auszulesen, einschließlich anderer Fälle als der modularen Potenzierung, anzuwenden.
  • Der folgende Abschnitt ist eine beispielhafte Beschreibung von weiteren Aspekten der Erfindung.
  • (2-2) Zufälligmachen der Ausführungsreihenfolge
  • 10 zeigt eine Verschlüsselungseinheit, die eine Verschlüsselungsverarbeitung in einer zufälligen Reihenfolge durchführt, und 11 zeigt die entsprechende Entschlüsselungseinheit. In der Datenverarbeitungseinheit liest eine Ausführungsreihenfolge-Steuereinheit E1002 Daten aus einer Speichervorrichtung E1001 mit Ausführungsreihenfolge-Steuerdaten s[0], die in einer Speichervorrichtung E1004 gespeichert sind, und speichert Daten in einer permutierten Stellenreihenfolge in einer Speichervorrichtung E1003. Die Berechnungsausrüstung E1006 in der Verschlüsselungs-/Entschlüsselungseinheit verschlüsselt die in der Speichervorrichtung E1003 gespeicherten Daten mit Schlüsseldaten k[0] nacheinander und speichert die verschlüsselten Daten in einer anderen Speichervorrichtung E1007. Eine Ausführungsreihenfolge-Steuereinheit E1008 führt die Permutationen, die in der Ausführungsreihenfolge-Steuereinheit E1002 durchgeführt werden, unter Verwendung der Ausführungsreihenfolge-Steuerdaten s[0] umgekehrt durch und speichert die Daten in einer Speichervorrichtung E1009 in derselben Reihenfolge, in der die verschlüsselten Daten in der Speichervorrichtung E1001 gespeichert wurden. Die Ausführungsreihenfolge-Steuerdaten, die in der Speichervorrichtung E1004 gespeichert werden, können willkürlich vom Benutzer definiert werden oder können von einem Zufallszahlengenerator eingegeben werden. Insbesondere besteht keine Notwendigkeit, dass die Ausführungsreihenfolge-Steuerdaten s[0] E1004 und s[1] E1104 gleich sind.
  • Obwohl in dieser Ausführungsform die Speichervorrichtungen E1001 und E1003 in der Verschlüsselungseinheit und E1007 und E1009 in der Entschlüsselungseinheit in 10 und die Speichervorrichtungen E1101 und E1103 in der Verschlüsselungseinheit und E1007 und E1009 in der Entschlüsselungseinheit in 11 als verschiedene Speichervorrichtungen beschrieben sind, kann jedes Paar von Speichervorrichtungen zu einer Speichervorrichtung kombiniert werden, indem die darin gespeicherten Daten aktualisiert werden. Die Speichervorrichtungen E1001, E1003, E1007 und E1009 und die Speichervorrichtungen E1101, E1103, E1107 und E1109 können auch jeweils als eine Speichervorrichtung implementiert werden.
  • Wie in 12 gezeigt, ist ferner eine schnellere kryptographische Verarbeitung durch Permutieren nur der Ausführungsreihenfolgen der Prozesse S1201, S1202, S1203, S1204, S1205, S1206 und S1207, anstatt der Prozedur zu folgen, die die Reihenfolge von Daten, die aus der Speichervorrichtung gelesen werden, in der Ausführungsreihenfolge-Steuereinheit permutiert und die Daten nach der Permutation vor dem Beginn der Verschlüsselungs- und Entschlüsselungsoperation wiederherstellt, möglich. Insbesondere wird die Verarbeitungsreihenfolge, die gewöhnlich sequentiell von d[0] bis d[6] ist, so manipuliert, dass sie immer unvorhersagbar ist. Wie in der ersten Ausführungsform können die Ausführungsreihenfolge-Steuerdaten gehalten werden, um die Ausführungsreihenfolge zu definieren, wodurch ermöglicht wird, dass der Benutzer die Reihenfolge selbst definiert, oder ein Zufallszahlengenerator kann die Ausführungsreihenfolge-Steuerdaten erzeugen, um zu bewirken, dass die Verarbeitung in einer Reihenfolge durchgeführt wird, die vom Analysator nicht vorhergesagt werden kann. In 12 wird angenommen, dass die Schlüsseldatenelemente E1204 bis E1210 voneinander verschieden sind, aber sie können zu Schlüsseldaten (kein Teil der vorliegenden Erfindung) als k[0] = k[1] = k[2] = k[3] = k[4] = k[5] = k[6] kombiniert werden.
  • (2-3) Zufälligmachen von Datenstellen
  • Wie vorstehend beschrieben, sind durch Datenverarbeitungseinheiten zu verarbeitende Daten durch zwei Parameter gekennzeichnet: wobei einer ihre Schreibweise angibt und der andere ihre Stelle angibt, wie z. B. binäre Schreibweise in Computern und die Adresse in einem CPU-Adressraum. Datenanalyseverfahren und ihre Gegenmaßnahmen in Abhängigkeit von der Schreibweise sind wie vorste hend beschrieben. Eine Ausführungsform der Gegenmaßnahmen gegen die Datenanalyse unter Verwendung von Datenadressen wird nun beschrieben.
  • Diese Ausführungsform nimmt eine modulare Potenzierung an. Das 2-Bit-Additionskettenverfahren wird verwendet, wie vorstehend beschrieben.
  • Dieses Verfahren verbirgt die Ausdrücke y0 mod N, y1 mod N, y2 mod N und y3 mod N durch Verschlüsseln derselben, um zu verhindern, dass der Analysator vorhersagt, welche von (b-1), (b-2), (b-3) und (b-4) verwendet wird, und speichert sie in der Speichervorrichtung. Außerdem ändert diese Ausführungsform die Datenstellen. Als Beispiel werden Permutationen von Datenstellen beschrieben.
  • Wie in 13 gezeigt, stellt eine Datenverarbeitungseinheit vier Blöcke b[0] (E1304), b[1] (1305), b[2] (1306) und b[3] (1307) bereit, um y0 mod N, y1 mod N, y2 mod N bzw. y3 mod N zu speichern. Als anfängliche Berechnung werden y0 mod N, y1 mod N, y2 mod N und y3 mod N aus der Eingabe y erzeugt und mit dem Verschlüsselungsschlüssel k[0] verschlüsselt, dann in den vorstehend beschriebenen entsprechenden Blöcken gespeichert. Zu diesem Zeitpunkt werden die Werte von y0 mod N, y1 mod N, y2 mod N und y3 mod N, die mit dem Verschlüsselungsschlüssel k[0] verschlüsselt wurden, in einer zufälligen Reihenfolge in den Blöcken b[0] bis b[3] gespeichert (Schritte S1301, S1302, S1303 und S1304).
  • Diese Ausführungsform permutiert die Blöcke b[0] bis b[3] in zufälliger Reihenfolge in jeder Verarbeitungsschleife und verschlüsselt alle von y0 mod N, y1 mod N, y2 mod N und y3 mod N, die in den Blöcken b[0] bis b[3] in einer undefinierten Reihenfolge gespeichert sind, erneut mit einem neuen Verschlüsselungsschlüssel k[1] und speichert die Ergebnisse (Schritte S1401 bis S1404 in 14). Es besteht jedoch kein Bedarf, alle Blöcke b[0] bis b[3] in jeder Verarbeitungsschleife zu permutieren. Es soll beispielsweise angenommen werden, dass ein in b[0] gespeicherter Wert ausgelesen wird. Eine Permutation von b[0] und einem der Blöcke b[1] bis b[3] wird unter Verwendung der Ausgabe aus dem Zufallszahlengenerator mit der Wahrscheinlichkeit von 3/4 durchgeführt. Die Wahrscheinlichkeit, dass jeder der Blöcke b[1] bis b[3] zur Permutation mit b[0] ausgewählt wird, wird auf 1/3 gesetzt. Wie durch die Zustandsänderung von E1501 auf E1503 in 15 gezeigt, wenn b[0] mit b[1] permutiert wird, dann werden b[2] und b[3] auch permutiert. wenn b[0] mit b[2] permutiert wird, dann werden ebenso b[1] und b[3] permutiert (E1504); wenn b[0] mit b[3] permutiert wird, dann werden b[1] und b[2] permutiert (E1505). Durch Folgen dieser Prozedur wird die Wahrscheinlichkeit, dass das Zugreifen auf b[0] erneut auf die vorherigen Daten trifft, zu 1/4. Wie aus 15 ersichtlich ist, wird die Wahrscheinlichkeit, dass dieselben Daten gespeichert werden, wenn auf b[1], b[2] und b[3] erneut zugegriffen wird, jeweils auch zu 1/4. Jedes von E1502, E1503, E1504 und E1505 in 15 tritt mit der Wahrscheinlichkeit von 1/4 auf, so dass der Analysator keine Informationen über die verarbeiteten Daten aus den Stellen, an denen auf die Daten zugegriffen wird, erhalten kann.
  • Es besteht eine gewisse Wahrscheinlichkeit, dass die Permutationszielstellen aus den Stellen bestimmt werden können, auf die zum Zeitpunkt der Permutation zugegriffen wird. Unterschiede unter den Permutationen b[0] und b[1], b[0] und b[2] und b[0] und b[3] können beispielsweise aufgrund der Stellen, auf die zugegriffen wird, beo bachtet werden. Daher ist es bevorzugt, wenn Zugriffe auf alle Blöcke durchgeführt werden, damit nicht unausgeführte Permutationen beobachtet werden sollen.
  • In dieser Ausführungsform werden Permutationen von Stellen durchgeführt, um den Bedarf für zusätzlichen Platz in der Speichervorrichtung zu beseitigen. Ein ähnlicher Effekt kann durch Bereitstellen eines Speicherbereichs, der größer ist als die Größe der zu speichernden Daten, und willkürliches Ändern der Speicherstellen erzeugt werden. Wenn die Verarbeitungsreihenfolge der Schritte, durch die die Speicherstellen geändert werden, in der vorstehend beschriebenen Weise zufällig gemacht wird, kann die Analyse schwieriger gemacht werden.
  • Es ist unmöglich, Rauschen, das in Messdaten enthalten ist, wie z. B. Größen von Stromverbrauchsdaten und Daten von elektromagnetischer Strahlung, durch Verarbeitung von einem Messdatenelement zu beseitigen. Es ist erforderlich, solches Rauschen durch Mitteln von Messdaten, die von mehreren Messungen erhalten werden, zu beseitigen. Wenn jedoch die Daten bei jeder Messung variieren oder variieren, bevor eine angemessene Anzahl von Messabtastwerten erhalten ist, um das Rauschen zu beseitigen, mischt eine Mittelungsoperation nur die Signalelemente in den Daten. Daher kann der Analysator die Inhalte der Zieldaten durch Beobachten des Stromverbrauchs nicht ableiten.
  • Durch Verringern der Korrelation zwischen den verarbeiteten Daten und dem Stromverbrauch und der elektromagnetischen Strahlung der Datenverarbeitungseinheit, obwohl eine Hardware mit vergleichsweise kleinem Maßstab und mit vergleichsweise geringem Rechen mehraufwand verwendet wird, können es die Ausführungsformen der vorliegenden Erfindung schwierig oder unmöglich machen, dass ein Analysator Informationen erhält.
  • Nichts in der obigen Beschreibung soll die vorliegende Erfindung auf irgendwelche speziellen Materialien, irgendeine spezielle Geometrie oder Orientierung von Teilen begrenzen. Viele Teil/Orientierungs-Austauschvorgänge werden innerhalb des Schutzbereichs der vorliegenden Erfindung in Betracht gezogen. Die hierin beschriebenen Ausführungsformen wurden nur beispielhaft dargestellt und sollten nicht verwendet werden, um den Schutzbereich der Erfindung, der durch die beigefügten Ansprüche definiert ist, zu begrenzen.
  • Obwohl die Erfindung hinsichtlich spezieller Ausführungsformen in einer Anwendung beschrieben wurde, kann ein üblicher Fachmann angesichts der Lehren hierin zusätzliche Ausführungsformen und Modifikationen erzeugen, ohne vom Schutzbereich der beanspruchten Erfindung abzuweichen. Folglich ist es selbstverständlich, dass die Zeichnungen und die Beschreibungen hierin nur beispielhaft angeboten sind, um das Verständnis der Erfindung zu erleichtern, und nicht zur Begrenzung von deren Schutzbereich aufgefasst werden sollten.

Claims (11)

  1. Datenverarbeitungseinheit, die umfasst: eine erste Speichervorrichtung (E302); Berechnungsmittel (E303), die einen zweiten Speicher (E304) enthalten; eine Busleitung, die die Berechnungsmittel (E303) und die erste Speichervorrichtung (E302) verbindet, wobei die Berechnungsmittel (E303) im Gebrauch so beschaffen sind, dass sie Daten unter Verwendung erster Schlüsseldaten, die in dem zweiten Speicher (E304) gespeichert sind, verschlüsseln und die verschlüsselten Daten in dem ersten Speicher (E302) speichern; dadurch gekennzeichnet, dass die Berechnungsmittel (E303) so beschaffen sind, dass sie die verschlüsselten Daten aus dem ersten Speicher (E302) auslesen und die verschlüsselten Daten unter Verwendung zweiter Schlüsseldaten erneut verschlüsseln, ohne die verschlüsselten Daten zu entschlüsseln, und die erneut verschlüsselten Daten speichern, und so beschaffen sind, dass sie die erneut verschlüsselten Daten aus dem ersten Speicher (E302) auslesen und die erneut verschlüsselten Daten unter Verwendung dritter Schlüsseldaten, die aus den ersten und den zweiten Schlüseldaten erzeugt werden, entschlüsseln, wobei die zweiten Schlüsseldaten von den ersten Schlüsseldaten verschieden sind.
  2. Datenverarbeitungseinheit nach Anspruch 1, bei der die zweite Speichervorrichtung (E304) ein internes Register ist.
  3. Datenverarbeitungseinheit nach Anspruch 1, bei der die erste Speichervorrichung (E302) ein Schreib-Lese-Speicher (RAM) ist.
  4. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 3, bei der die Berechnungsmittel (E303) ferner so beschaffen sind, dass sie für jede vorgegebene Datenlänge unterschiedliche Schlüsseldaten als erste und zweite Schlüsseldaten aus dem zweiten Speicher (E304) auslesen.
  5. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 4, bei der die Berechnungsmittel (E303) ferner so beschaffen sind, dass sie für jede Verschlüsselung und erneute Verschlüsselung unterschiedliche Schlüsseldaten als erste und zweite Schlüsseldaten aus dem zweiten Speicher (E304) auslesen.
  6. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 5, die ferner einen Zufallszahlengenerator (E405) umfasst, wobei der Zufallszahlengenerator (E405) so beschaffen ist, dass er als erste und zweite Schlüsseldaten Zufallszahlen erzeugt.
  7. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 6, bei der die Berechnungsmittel so beschaffen sind, dass sie eine Exklusiv-ODER-Operation für die Verschlüsselung, die erneute Verschlüsslung und die Entschlüsselung verwenden.
  8. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 7, bei der die Berechnungsmittel (E303) ferner so beschaffen sind, dass sie die dritten Schlüsseldaten unter Verwendung einer Exklusiv-ODER-Operation an den ersten und den zweiten Schlüsseldaten erzeugen.
  9. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 8, bei der die Berechnungsmittel (E303) ferner so beschaffen sind, dass sie den Datenort, von dem die verschlüsselten oder die erneut verschlüsselten Daten ausgelesen werden, und den Datenort der anderen Daten der Verschlüsselung oder der erneuten Verschlüsslung permutieren.
  10. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 9, bei der die Berechnungsmittel (E303) ferner so beschaffen sind, dass sie gleichermaßen aus den Datenorten der verschlüsselten oder der erneut verschlüsselten Daten und der anderen Daten einen Ort auswählen und den Datenort, von dem die verschlüsselten oder die erneut verschlüsselten Daten ausgelesen werden, und den ausgewählten Datenort der anderen Daten nach der Verschlüsselung oder der erneuten Verschlüsselung permutieren.
  11. Verfahren zum Verschlüsseln/Entschlüsseln von Daten intern in einer Datenverarbeitungseinheit, die Berechnungsmittel (E303), die erste und zweite Schlüsseldaten speichern, eine Speichervorrichtung (E302) und eine Busleitung, die die Berechnungsmittel (E303) und die Speichervorrichtung (E302) verbinden, umfasst, das die folgenden Schritte umfasst: Verschlüsseln von Daten unter Verwendung erster Schlüsseldaten, Speichern der verschlüsselten Daten in der Speichervorrichtung (E302), gekennzeichnet durch Auslesen der verschlüsselten Daten aus der Speichervorrichtung (E302), erneutes Verschlüsseln der verschlüsselten Daten unter Verwendung zweiter Schlüsseldaten ohne Entschlüsselung der verschlüsselten Daten, Speichern der erneut verschlüsselten Daten, Auslesen der erneut verschlüsselten Daten aus der Speichervorrichtung (E302) und Entschlüsseln der erneut verschlüsselten Daten unter Verwendung dritter Schlüsseldaten, die aus den ersten und den zweiten Schlüsseldaten erzeugt werden, wobei die zweiten Schlüsseldaten von den ersten Schlüsseldaten verschieden sind.
DE60217260T 2001-10-30 2002-05-24 Datenverarbeitungs- und Verschlüsselungseinheit Expired - Lifetime DE60217260T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001331856 2001-10-30
JP2001331856A JP4045777B2 (ja) 2001-10-30 2001-10-30 情報処理装置

Publications (2)

Publication Number Publication Date
DE60217260D1 DE60217260D1 (de) 2007-02-15
DE60217260T2 true DE60217260T2 (de) 2007-07-12

Family

ID=19147356

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60217260T Expired - Lifetime DE60217260T2 (de) 2001-10-30 2002-05-24 Datenverarbeitungs- und Verschlüsselungseinheit

Country Status (4)

Country Link
US (1) US7284133B2 (de)
EP (1) EP1308885B1 (de)
JP (1) JP4045777B2 (de)
DE (1) DE60217260T2 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001245123A (ja) * 2000-03-01 2001-09-07 Canon Inc 画像処理装置,画像処理方法および画像処理過程を記憶した記憶媒体
JP2004007260A (ja) * 2002-05-31 2004-01-08 Fujitsu Ltd 暗号装置、電子機器及び暗号方法
EP1544285A4 (de) * 2002-08-21 2005-09-21 Sapporo Breweries Verfahren zur herstellung eines bierähnlichen getränks mit geringem alkoholgehalt und bierähnliches getränk mit geringem alkoholgehalt
JP3819872B2 (ja) * 2003-05-23 2006-09-13 株式会社東芝 論理演算装置
US8045707B2 (en) * 2003-08-15 2011-10-25 Broadcom Corporation System and method for securing data
CN100356342C (zh) 2003-11-18 2007-12-19 株式会社瑞萨科技 信息处理装置
US7949883B2 (en) * 2004-06-08 2011-05-24 Hrl Laboratories, Llc Cryptographic CPU architecture with random instruction masking to thwart differential power analysis
WO2006066999A2 (en) * 2004-12-22 2006-06-29 International Business Machines Corporation Method, system and computer program product for handling data
JP4685512B2 (ja) * 2005-05-31 2011-05-18 川崎マイクロエレクトロニクス株式会社 演算処理装置
JP4783104B2 (ja) 2005-09-29 2011-09-28 株式会社東芝 暗号化/復号装置
US8321691B2 (en) * 2006-03-06 2012-11-27 Stmicroelectronics S.A. EMA protection of a calculation by an electronic circuit
US8301890B2 (en) * 2006-08-10 2012-10-30 Inside Secure Software execution randomization
US7613907B2 (en) * 2006-08-11 2009-11-03 Atmel Corporation Embedded software camouflage against code reverse engineering
US7984301B2 (en) * 2006-08-17 2011-07-19 Inside Contactless S.A. Bi-processor architecture for secure systems
US7554865B2 (en) * 2006-09-21 2009-06-30 Atmel Corporation Randomizing current consumption in memory devices
US9324361B2 (en) * 2007-08-14 2016-04-26 Seagate Technology Llc Protecting stored data from traffic analysis
US20090187771A1 (en) * 2008-01-17 2009-07-23 Mclellan Jr Hubert Rae Secure data storage with key update to prevent replay attacks
US8112634B2 (en) * 2008-06-04 2012-02-07 Samsung Electronics Co., Ltd. Security-enhanced storage devices using media location factor in encryption of hidden and non-hidden partitions
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
CN102362280A (zh) * 2009-03-23 2012-02-22 惠普开发有限公司 在电子设备中安全地存储数据的***和方法
GB2489405B (en) * 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
KR101380895B1 (ko) 2012-06-12 2014-04-10 한국전자통신연구원 보안 서비스 제공 장치 및 이를 이용한 보안 서비스 방법
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
JP6282197B2 (ja) * 2014-08-26 2018-02-21 Kddi株式会社 記憶装置、方法及びプログラム
SG10201902395SA (en) * 2019-03-18 2019-11-28 Qrypted Tech Pte Ltd Method and system for a secure transaction
CN110417802B (zh) * 2019-08-06 2021-05-07 上海七口田科技有限公司 一种电商平台网站数据保护***
US11985235B2 (en) * 2019-09-16 2024-05-14 Quantum Technologies Laboratories, Inc. Quantum communication system
US11556656B2 (en) * 2019-09-25 2023-01-17 Micron Technology, Inc. Exclusive or engine on random access memory
US11347899B2 (en) * 2019-12-04 2022-05-31 Realtek Singapore Private Limited Dynamic memory scrambler
JP6808100B1 (ja) * 2020-01-07 2021-01-06 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH658759A5 (de) * 1983-05-20 1986-11-28 Gretag Ag Verfahren und vorrichtung zur chiffrierten datenuebermittlung.
JPH0762862B2 (ja) * 1985-09-17 1995-07-05 カシオ計算機株式会社 Icカ−ドシステムにおける認証方式
DE3730134C1 (de) * 1987-09-09 1996-05-30 Siemens Ag Schlüsselgerät
GB9011290D0 (en) * 1989-07-20 1995-11-08 Siemens Ag A ciphering device
US4987595A (en) * 1989-09-11 1991-01-22 Motorola, Inc. Secure cryptographic processor arrangement
DE4023131C1 (de) * 1990-07-20 1991-11-21 Siemens Ag, 8000 Muenchen, De
US5222137A (en) * 1991-04-03 1993-06-22 Motorola, Inc. Dynamic encryption key selection for encrypted radio transmissions
CA2147641C (en) * 1992-10-21 1999-12-21 Hideki Imai Copying machine with encryption function
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
US6125182A (en) * 1994-11-09 2000-09-26 Channel One Communications, Inc. Cryptographic engine using logic and base conversions
US5724427A (en) * 1995-08-17 1998-03-03 Lucent Technologies Inc. Method and apparatus for autokey rotor encryption
US5631960A (en) * 1995-08-31 1997-05-20 National Semiconductor Corporation Autotest of encryption algorithms in embedded secure encryption devices
JPH09238132A (ja) * 1996-02-29 1997-09-09 Oki Electric Ind Co Ltd 携帯用端末通信システム及びその通信方法
JPH1022990A (ja) 1996-06-28 1998-01-23 Sony Corp 情報処理装置および方法
KR100213188B1 (ko) * 1996-10-05 1999-08-02 윤종용 사용자 인증 장치 및 방법
US6028939A (en) * 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method
US6094486A (en) * 1997-06-19 2000-07-25 Marchant; Brian E. Security apparatus for data transmission with dynamic random encryption
US6240183B1 (en) * 1997-06-19 2001-05-29 Brian E. Marchant Security apparatus for data transmission with dynamic random encryption
JP3613936B2 (ja) * 1997-07-07 2005-01-26 富士ゼロックス株式会社 アクセス資格認証装置
US6081896A (en) * 1997-09-02 2000-06-27 Motorola, Inc. Cryptographic processing system with programmable function units and method
US6055316A (en) * 1997-12-26 2000-04-25 Sun Microsystems, Inc. System and method for deriving an appropriate initialization vector for secure communications
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6295604B1 (en) * 1998-05-26 2001-09-25 Intel Corporation Cryptographic packet processing unit
DE69938045T2 (de) * 1998-06-03 2009-01-15 Cryptography Research Inc., San Francisco Verwendung von unvorhersagbarer Information zur Leckminimierung von Chipkarten und anderen Kryptosystemen
US6393565B1 (en) * 1998-08-03 2002-05-21 Entrust Technologies Limited Data management system and method for a limited capacity cryptographic storage unit
US6320964B1 (en) * 1998-08-26 2001-11-20 Intel Corporation Cryptographic accelerator
US6347143B1 (en) * 1998-12-15 2002-02-12 Philips Electronics No. America Corp. Cryptographic device with encryption blocks connected parallel
US6445797B1 (en) * 1998-12-16 2002-09-03 Secure Choice Llc Method and system for performing secure electronic digital streaming
US6570988B1 (en) * 1999-06-09 2003-05-27 Microsoft Corporation Simple technique for implementing a cryptographic primitive using elementary register operations
US6598163B1 (en) * 1999-08-02 2003-07-22 Lucent Technologies Inc. Flash mixing apparatus and method
JP4671571B2 (ja) * 1999-09-29 2011-04-20 株式会社日立製作所 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
US6961849B1 (en) * 1999-10-21 2005-11-01 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a group clerk
US6978367B1 (en) * 1999-10-21 2005-12-20 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a client proxy
US6931532B1 (en) * 1999-10-21 2005-08-16 International Business Machines Corporation Selective data encryption using style sheet processing
US6724894B1 (en) * 1999-11-05 2004-04-20 Pitney Bowes Inc. Cryptographic device having reduced vulnerability to side-channel attack and method of operating same
US7472093B2 (en) * 2000-03-08 2008-12-30 Rsa Security Inc. Targeted delivery of informational content with privacy protection
US6904150B1 (en) * 2000-10-25 2005-06-07 Ericsson Inc. Cryptographic method and system for double encryption of messages
US6366117B1 (en) * 2000-11-28 2002-04-02 Xilinx, Inc. Nonvolatile/battery-backed key in PLD

Also Published As

Publication number Publication date
US20030091191A1 (en) 2003-05-15
US7284133B2 (en) 2007-10-16
EP1308885B1 (de) 2007-01-03
EP1308885A1 (de) 2003-05-07
JP4045777B2 (ja) 2008-02-13
JP2003134103A (ja) 2003-05-09
DE60217260D1 (de) 2007-02-15

Similar Documents

Publication Publication Date Title
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE69322376T2 (de) Einrichtung und Verfahren zur Datenverschlüsselung
DE69509127T2 (de) Verfahren zum durchführen eines kommunikationsprotokolles mit geheimschlüssel zwischen zwei verarbeitungsvorrichtungen
DE10201449C1 (de) Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE69935913T2 (de) Leckresistente aktualisierung eines indexierten kryptographischen schlüssels
DE2843583C2 (de) Verfahren für den zugriffsicheren Nachrichtenverkehr über einen ungesicherten Nachrichtenübertragungskanal
DE60036499T2 (de) Eine Technik, um einen Parameter, wie z.b. eine Prüfsumme, durch ein Primitiv zu erzeugen, welche elementare Register-Operationen verwendet
DE60031304T3 (de) Verfahren zur authentifizierung von softwarebenutzern
DE60119620T2 (de) Verfahren zur Skalarmultiplikation auf einer elliptischen Kurve und entsprechende Vorrichtung
EP2340502B1 (de) Datenverarbeitungssystem zur bereitstellung von berechtigungsschlüsseln
DE102007007699A1 (de) Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
DE10148415A1 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
EP2499774B1 (de) Verfahren und system zur beschleunigten entschlüsselung von kryptographisch geschützten nutzdateneinheiten
DE102004042826B4 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
EP3899844A1 (de) Verfahren zum erzeugen einer blinden signatur
EP1062764A1 (de) Verfahren und vorrichtung zur kryptographischen bearbeitung anhand einer elliptischen kurve auf einem rechner
DE112009000152T5 (de) Modulare Reduktion unter Verwendung einer speziellen Form des Modulo
DE60103515T2 (de) Kryptografisches verfahren zum schutz gegen betrug
DE112018002723B4 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
DE60203909T2 (de) Kryptographisches verfahren zum schutz eines elektronischen chips gegen betrug
DE69928684T2 (de) Gegenmassnahmenvorrichtung in einem elktronischen bauteil um einen krypto-algorithmus mit geheimschlüssel durch zu führen
DE60100992T2 (de) Verfahren zur modularen potenzierung in einem elekronischen baustein, der einen kryptographischen algorithmus mit öffentlichem schlüssel durchführt
EP1596527B1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE102020134618A1 (de) Sicherheits-controller und verfahren zur verarbeitung von datenelementen eines datenfeldes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition