DE102007026977B4 - Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt - Google Patents

Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt Download PDF

Info

Publication number
DE102007026977B4
DE102007026977B4 DE102007026977A DE102007026977A DE102007026977B4 DE 102007026977 B4 DE102007026977 B4 DE 102007026977B4 DE 102007026977 A DE102007026977 A DE 102007026977A DE 102007026977 A DE102007026977 A DE 102007026977A DE 102007026977 B4 DE102007026977 B4 DE 102007026977B4
Authority
DE
Germany
Prior art keywords
output
round
circuit
input data
logic circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102007026977A
Other languages
English (en)
Other versions
DE102007026977A1 (de
Inventor
Odile Derouet
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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
Priority claimed from KR1020060051033A external-priority patent/KR100837270B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102007026977A1 publication Critical patent/DE102007026977A1/de
Application granted granted Critical
Publication of DE102007026977B4 publication Critical patent/DE102007026977B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • 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/77Protecting 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 in smart cards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)
  • Quality & Reliability (AREA)

Abstract

Kryptographisches System, aufweisend:
Verschlüsselungslogik (131), die dazu ausgebildet ist, Eingabedaten zu verschlüsseln, indem sie eine Maskierungsoperation an den Eingabedaten unter Verwendung einer mit den Eingabedaten verknüpften Adresse durchführt,
wobei die Verschlüsselungslogik aufweist:
eine Erstrunden-Logikschaltung (210), die dazu ausgebildet ist, eine Erstrunden-Logikschaltungausgabe in Abhängigkeit von den Eingabedaten, wenigstens einem ersten Teil der Adresse und einem ersten Schlüssel zu erzeugen;
eine Erstrunden-S-Box-Schaltung (214, 215), die dazu ausgebildet ist, die Erstrunden-Logikschaltungausgabe zu transformieren;
eine Erstrunden-Permutationsschaltung (216), die dazu ausgebildet ist, die transformierte Erstrunden-Logikschaltungsausgabe zu permutieren, um eine Erstrunden-Ausgabe zu erzeugen;
eine Zweitrunden-Logikschaltung (220), die dazu ausgebildet ist, eine Zweitrunden-Logikschaltungausgabe in Abhängigkeit von der Erstrundenausgabe, wenigstens einem zweiten Teil der Adresse und einem zweiten Schlüssel zu erzeugen;
eine Zweitrunden-S-Box-Schaltung (224, 225), die dazu ausgebildet ist, die Zweitrunden-Logikschaltungausgabe zu transformieren; und
eine Zweitrunden-Permutationsschaltung (226), die dazu ausgebildet ist, die transformierte Zweitrunden-Logikschaltungausgabe zu permutieren, um die verschlüsselten Eingabedaten...

Description

  • Die vorliegende Erfindung betrifft ein kryptographisches System, ein Verfahren zum Betreiben eines kryptographischen Systems und ein Computerprogrammprodukt.
  • Eine Smart Card ist eine Kunststoffkarte, in der eine integrierte Schaltung (IC) angeordnet sein kann und die ähnlich zu einer Kreditkarte ausgebildet sein kann. Standards für die Smart-Card-Technologie sind durch die International Standards Organization (ISO) und das Joint Technical Committee (JTC1) des International Electronic Committee (IEC) definiert worden. Die internationale Standard-Serie ISO/IEC816 definiert verschiedene Eigenschaften von Smart Cards, wie physikalische Eigenschaften, physikalische Verbindungen, elektronische Signale, Übertragungsprotokolle, Befehle, Sicherheitsarchitekturen, Anwendungsidentifzierer und allgemeine Datenelemente.
  • Smart Cards wurden für eine Verwendung als Multimediainformationsvorrichtung ins Gespräch gebracht, da sie eine bessere Datenhaltung als herkömmliche Magnetkarten und eine erhöhte Sicherheit gewährleiste ten können. Smart Cards besitzen den Vorteil einer hohen Sicherheit und einer großen Datenspeicherkapazität, was für ein weites Feld von Anwendungen geeignet sein kann. Dementsprechend sind Smart Cards für Anwendungen in unterschiedlichen Bereichen eingesetzt worden, wie auf dem Gebiet der Finanzen, des Vertriebs, des Verkehrs, der mobilen Kommunikation und anderen Anwendungen.
  • 1 ist ein Blockdiagramm zur Darstellung einer herkömmlichen Smart-Card-Architektur. Die Smart Card umfasst eine bzw. einen CPU 11, ROM 12, RAM 13, EEPROM 14, I/O-Modul 15 und Bus 16, wie dargestellt. Die CPU 11 kann dazu ausgebildet sein, gesamtheitliche Datenverarbeitungs- und arithmetische Operationen zu steuern. Der ROM 12 kann dazu ausgebildet sein, das Betriebssystem, den Boot-Code und das Initialisierungsprogramm zu speichern. Der RAM 13 kann dazu verwendet werden, modifizierbare Programme und/oder temporäre Daten zu speichern. Der EEPROM 14 kann dazu verwendet werden, ein oder mehrere Anwendungsprogramme zu speichern. Das I/O-Modul 15 kann verwendet werden, um es der CPU 11 zu ermöglichen mit einer externen Vorrichtung zu kommunizieren. Die CPU 11, ROM 12, RAM 13 und EEPROM 14 sind mittels eines Buses 16 gekoppelt. Der Bus 16 kann sowohl einen Datenbus als auch einen Adressbus umfassen. Der Datenbus kann elektrische Signale zwischen CPU 11, ROM 12, RAM 13 und EEPROM 14 sowie zwischen beliebigen anderen Vorrichtung übertragen, die an den Bus 16 angeschlossen sein können, um Daten zwischen diesem zu übertragen. Der Adressbus kann die CPU 11 mit dem Hauptspeicherelement oder den Hauptspeicherelementen verbinden, um bestimmte Orte (Adressen) in dem Hauptspeicher zu identifizieren. Die Breite des Adressbusses bestimmt, wie viele eindeutige Speicherorte adressiert werden können.
  • In Smart-Card-Elementen kann es von Bedeutung sein, die Vertraulichkeit und Integrität der Daten zu schützen, die auf dem Datenbus übertragen werden. In gleicher Weise kann es auch von Bedeutung sein, die Integrität der Adressen zu schützen, die auf dem Adressbus übertragen werden. Wenn die Daten und/oder Adressen, die in der Smart Card gespeichert/verwendet sind bzw. werden, nicht sicher sind, kann ein Benutzer oder ein Systembetreiber zurückhaltend sein, wenn es darum geht, private oder geheime Informationen in einer Smart Card zu speichern. Nicht autorisierter Zugriff auf eine Smart Card wird mit unter als „Tempering” bezeichnet. Tempering-Techniken umfassen invasive Angriffe unter Verwendung von Mikrosonden und nicht-invasive Angriffe unter Verwendung von Software-Werkzeugen. Nicht-invasive Angriffe können das Durchführen einer Side-Channel-Analyse beinhalten, die einen Schlüsselcode eines kryptographischen Algorithmus (z. B. DES-Algorithmus) entschlüsselt, indem ein Muster der Leistungsaufnahme (oder Stromdissipation) oder Zeitablaufunterschiede aufgrund von Operationen der Smart Card verwendet werden. Side-Channel-Analysetechniken können als einfache Leistungsanalyse (simple power analysis – SPA) und differenzielle Leistungsanalyse (diffential power analysis – DPA) klassifiziert werden. DPA und SPA sind Verfahren zum Analysieren eines Leitungssignals, das durch ein Gerät mit niedriger Leistungsaufnahme, wie eine Smart Card, im Verlauf von Berechnungen (oder Operationen) erzeugt wird, um geheime Informationen aufzufinden, die in der Smart Card gespeichert sind, wenn der Blockverschlüsslungsalgorithmus auf die Smart Card angewandt wird. DPA und SPA können basierend darauf ausgeführt werden, dass der Angreifer ein bestimmtes Bit eines Verschlüsselungstexts nach einem Durchgang schätzt, was einem Klartext entspricht, wenn der Klartext bekannt ist. Eine Gegenmaßnahme für DPA und SPA besteht darin, zu verhindern, dass der Angreifer den Klartext im Zuge von Berechnungen erfährt, die innerhalb der Smart Card ausgeführt werden.
  • Verschiedene Gegenmaßnahmen gegen DPA und SPA sind vorgeschlagen worden. Die Gegenmaßnahmen beinhalten Hardwareverfahren und Softwareverfahren. Die Hardwareverfahren umfassen das Erzeugen einer Rauschleistung, die zufällige Ausgestaltung einer Operationssequenz und/oder das Filtern eines Leistungssignals. Die Softwareverfahren beinhalten Maskierungstechniken, bei denen eine Zufallszahl innerhalb der Smart Card erzeugt wird und bei denen die Zufallszahl mit Klartext durch ein exklusives ODER verknüpft wird, sodass der Klartext wie eine Zufallszahl aussieht, wodurch eine Leistungsanalyse ausgeschaltet wird.
  • Die WO 3/092219 A1 und die WO 3/030441 A2 zeigen jeweils kryptographische Systeme, bei denen Eingabedaten unter Verwendung einer mit den Eingabedaten verknüpften Adresse verschlüsselt werden.
  • Die DE 103 45 378 A1 zeigt ein Verfahren zur Verschlüsselung und zur Entschlüsselung, bei dem eine Verschlüsselung in zwei Runden erfolgt.
  • Die EP 0 908 810 A2 zeigt eine Fehlererkennungsschaltung mit mehreren Logikschaltungen.
  • Der Erfindung liegt das technische Problem zugrunde, ein kryptographisches System, ein Verfahren zum Betreiben eines kryptographischen Systems und ein Computerprogrammprodukt anzugeben, die eine hohe Sicherheit gewährleisten.
  • Die Erfindung löst diese Aufgabe mittels eines kryptographischen Systems mit den Merkmalen des Patentanspruchs 1 oder des Patentanspruchs 17, mittels eines Verfahrens zum Betreiben eines kryptographischen Systems mit den Merkmalen des Patentanspruchs 12 oder des Patentanspruchs 37 und mittels eines Computerprogrammprodukts mit den Merkmalen des Patentanspruchs 16 oder des Patentanspruchs 43.
  • Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben, deren Wortlaut hiermit durch Bezugnahme in die Beschreibung aufgenommen wird, um unnötige Textwiederholungen zu vermeiden.
  • Obwohl die vorliegende Erfindung primär unter Bezugnahme auf System- und/oder Schaltungsausgestaltungen beschrieben wird, sei darauf hingewiesen, dass die vorliegende Erfindung als ein System, eine Schaltung, ein Verfahren und/oder als ein Computerprogrammprodukt verkörpert sein kann.
  • Vorteilhafte Ausgestaltungen der Erfindung, die nachfolgend detailliert beschrieben sind, sowie zur Erleichterung des Verständnisses der Erfindung erörterte Ausgestaltungen des Standes der Technik sind in den Zeichnungen dargestellt. Es zeigt/zeigen:
  • 1 ein Blockdiagramm zur Darstellung einer herkömmlichen Smart-Card-Architektur;
  • 2 ein Blockdiagramm zur Darstellung eines kryptographischen Systems gemäß einiger Ausgestaltungen der vorliegenden Erfindung;
  • 3 ein Blockdiagramm zur Darstellung von Verschlüsselungslogikschaltung zur Verwendung in dem kryptographischen System gemäß 2 in Übereinstimmung mit einigen Ausgestaltungen der vorliegenden Erfindung;
  • 4 eine S-Box-Tabelle zur Verwendung in der Verschlüsselungslogikschaltung der 3 gemäß einigen Ausgestaltungen der vorliegenden Erfindung;
  • 5 ein Blockdiagramm zur Darstellung von Entschlüsselungslogikschaltung zur Verwendung in dem kryptographischen System der 2 gemäß einigen Ausgestaltungen der vorliegenden Erfindung;
  • 6 ein Blockdiagramm zur Darstellung eines kryptographischen Systems gemäß weiteren Ausgestaltungen der vorliegenden Erfindung;
  • 7 ein Blockdiagramm zur Darstellung einer Fehlererkennungsschaltung gemäß einigen Ausgestaltungen der vorliegenden Erfindung;
  • 8 ein Blockdiagramm zur Darstellung einer Fehlererkennungsschaltung gemäß weiteren Ausgestaltungen der vorliegenden Erfindung;
  • 9 ein Blockdiagramm zur Darstellung eines kryptographischen Systems, das in Übereinstimmungen mit einigen Ausgestaltungen der vorliegenden Erfindung die Fehlererkennungsschaltung gemäß 7 umfasst; und
  • 10 ein Blockdiagramm zur Darstellung von Verschlüsselungslogikschaltung zur Verwendung in dem kryptographischen System der 9 gemäß einigen Ausgestaltungen der vorliegenden Erfindung.
  • Es sei darauf hingewiesen, dass ein Element, welches als mit einem anderen Element „verbunden” oder „gekoppelt” beschrieben ist, entweder direkt mit dem anderen Element verbunden oder gekoppelt sein kann oder dass Zwischenelemente vorhanden sein können. Wenn im Gegensatz hierzu ein Element als mit einem anderen Element „direkt verbunden” oder „direkt gekoppelt” beschrieben ist, sind keine Zwischenelemente vorhanden.
  • Die vorliegende Erfindung kann in Form von Systemen, Verfahren und/oder Computerprogrammprodukten verkörpert sein. Dementsprechend kann die vorliegenden Erfindung in Form von Hardware und/oder in Form von Software (einschließlich Firmware, Resident-Software, Mikrocode usw.) verkörpert sein. Des Weiteren kann die vorliegende Erfindung die Form eines Computerprogrammprodukts auf einem durch einen Computer verwendbaren oder computerlesbaren Speichermedium annehmen, das einen computerverwendbaren oder computerlesbaren Programmcode enthält, der zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem in dem Medium verkörpert ist. Im Kontext des vorliegenden Dokuments kann es sich bei dem durch einen Computer verwendbaren oder computerlesbaren Medium um jedes beliebige Medium handeln, das das Programm zur Verwendung durch oder in Verbindung mit dem Anweisungsausführungssystem, -gerät oder -apparat enthält, speichern, mitteilen, verbreiten oder transportieren kann.
  • Das durch einen Computer verwendbare oder computerlesbare Medium kann ohne Beschränkung der Allgemeinheit ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder halbleiterbasiertes System oder Gerät bzw. eine entsprechende Vorrichtung oder ein entsprechendes Verbreitungsmedium sein. Genauere Beispiele (in Form einer nicht abschließenden Auflistung) für das computerlesbare Medium würden umfassen: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, einen Speicher mit wahlfreiem Zugriff (radom access memory – RAM), einen Nurlesespeicher (read-only memory – ROM), einen löschbaren programmierbaren Nurlesespeicher (eraseable programmable read-only memory – EPROM oder Flashspeicher), eine optische Faser und einen Compact-Disc-Nurlesespeicher (CD-ROM). Es sei darauf hingewiesen, dass das durch einen Computer verwendbare oder durch einen Computer lesbaren Medium sogar Papiere oder ein anderes geeignetes Medium sein kann, auf denen das Programm gedruckt ist, da das Programm beispielsweise über optisches Scannen des Papiers oder des anderen Mediums elektronisch aufgenommen, anschließend kompiliert, übersetzt oder anderweitig in geeigneter Weise verarbeitet werden, falls erforderlich, und dann in einem Computerspeicher gespeichert werden kann.
  • Einige Ausgestaltungen der vorliegenden Erfindung ergeben sich aus der Erkenntnis, dass beispielsweise eine Smart Card, ein kryptographisches System umfassen kann, das dazu verwendet werden kann, Daten zu verschlüsseln, indem eine mit den Eingabedaten verknüpfte Adresse verwendet wird, um einen Schutz gegen Tempering-Angriffe der oben beschriebenen Art zu erhalten. Eine Smart Card kann eine Fehlererkennungschaltung umfassen, in der verschiede Logikoperationen an den auf einem Datenbus übertragenen Daten und/oder den auf einem Adressbus übertragenen Adressen durchgeführt werden, um zu bestimmen, ob die Daten- und/oder die Adressinformationen korrumpiert wurden.
  • Einige Ausgestaltungen der vorliegenden Erfindung werden im Kontext einer Smart Card beschrieben, die eine kryptographische Funktion und/oder eine Fehlererkennungsfunktion umfasst. Es sei darauf hingewiesen, dass Ausgestaltungen der vorliegenden Erfindung nicht auf Smart Cards beschränkt sind und dass die kryptographischen Systeme und Fehlererkennungsschaltungen, die in diesem Dokument beschriebenen sind, auch in anderen Vorrichtungen oder Geräten oder als eigenständige Vorrichtungen oder Geräte verwendet werden können.
  • Bezugnehmend auf 2 umfasst eine Smart Card 100 gemäß einigen Ausgestaltungen der vorliegenden Erfindung eine CPU 110, eine kryptographische Schaltung 130, einen Schlüsselverteiler (key scheduler) 140 und einen Speicher 120, die in der dargestellten Art und Weise ausgebildet sind. Die kryptographische Schaltung 130 kann als ein Coprozessor der CPU 110 ausgebildet sein. Die CPU 110 und die kryptographische Schaltung 130 können untereinander Daten- und Adressinformationen austauschen. Der Schlüsselverteiler 140 kann einen Schlüssel für die krytographische Schaltung 130 bereitstellen, der zum Verschlüsseln und/oder Entschlüsseln von Daten verwendet werden kann. In einigen Ausgestaltungen umfasst die kryptographische Schaltung 130 ein Verschlüsselungsschaltung 131, die dazu verwendet wird, Daten zu verschlüsseln, die auf dem Bus 150 übertragen werden, welcher die kryptographische Schaltung 130 und den Speicher 120 verbindet, wobei eine Adresse verwendet wird, die mit den Daten verknüpft ist und/oder ein Schlüssel, der von dem Schlüsselverteiler 140 erhalten wird. Die kryptographische Schaltung 130 umfasst weiterhin eine Entschlüsselungsschaltung, die dazu verwendet wird, zuvor verschlüsselte Daten zu entschlüsseln.
  • 3 ist ein Blockdiagramm zur Darstellung von Verschlüsselungslogikschaltung, die in der Verschlüsselungsschaltung 131 der 2 gemäß einigen Ausgestaltungen der vorliegenden Erfindung verwendet werden kann. Die Verschlüsselungslogikschaltung umfasst eine Erstrunden-Logikschaltung 210 und eine Zweitrunden-Logikschaltung 220. Die Erstrunden-Logikschaltung 210 umfasst XOR-Logikschaltungen 211 und 212, ein Datenregister 213, S-Box-Schaltungen 214 und 215 und eine Permutationsschaltung 216, die in Reihe geschaltet sind. Zu verschlüsselnde Daten werden an einem Eingang der XOR-Schaltung 211 empfangen, wo eine Maskierungsoperation an den Daten durchgeführt wird, indem eine mit den Daten verknüpfte Adresse (addr1) verwendet wird. Die XOR-Schaltung 212 führt eine zweite Maskierungsoperation an der Ausgabe der XOR-Schaltung 211 durch, indem ein Schlüssel (key1) verwendet wird, der von dem Schlüsselverteiler 140 erhalten wird. Obwohl eine exklusive ODER-Logikoperation als Maskierungsoperation der Blöcke 211 und 212 in 3 dargestellt ist, sei darauf hingewiesen, dass die Maskierungsoperation eine exklusive ODER-Opereration, eine Additionsoperation, eine Subtraktionsoperation, eine Multiplikationsoperation und/oder eine Divisionsoperation umfassen kann, wobei die Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen gemäß verschiedenen Ausgestaltungen der vorliegenden Erfindung bezogen auf einen Betrag (modulus) durchgeführt werden.
  • Das Datenregister 213 hält die Ausgabe der XOR-Schaltung 212 und liefert einen ersten Teil der Ausgabe der XOR-Schaltung 212 an eine erste S-Box-Schaltung (S1) 214 und einen zweiten Teil der Ausgabe der XOR-Schaltung 212 an eine zweite S-Box-Schaltung (S2) 215. S-Box ist die Abkürzung für Ersetzungsbox (substitution box) und wird in kryptographischen Systemen regelmäßig verwendet. Insbesondere können S-Boxen verwendet werden, um den Zusammenhang zwischen Klartext und Verschlüsselungstext zu verschleiern. Im Betrieb kann eine S-Box eine Anzahl von Eingabebits, m, nehmen und diese Eingabebits in eine Anzahl von Ausgabebits, n, umwandeln, wobei sie beispielsweise eine Nachschlagetabelle verwendet. 4 ist eine beispielhafte S-Box-Tabelle, die dazu verwendet werden kann, die S-Box-Schaltungen 214 und 215 zu implementieren. Wenn es sich bei den Eingabedaten beispielsweise um ein Byte mit dem Wert data = 1001 1010, addr1 = 0111 0011 und key1 = 1100 0101 handelt, dann ist der in dem Datenregister gespeicherte Wert gleich 0010 1100. Die Eingabe für S1 214 ist 0010, die Eingabe für S2 215 ist 1100. Bezugnehmend auf die Tabelle in 5 ist S1 (2) = 13 = 1101 und S2 (12) = 9 = 1001. Die Eingabe für die Permutationsschaltung 216 ist somit 1101 1001.
  • Gemäß einigen Ausgestaltungen der vorliegenden Erfindung ist die Permutationsschaltung 216 dazu ausgebildet, eine lineare Funktion an ihrem Eingang durchzuführen. In Übereinstimmung mit verschiedenen Ausgestaltungen der vorliegenden Erfindung kann es sich bei der linearen Funktion um eine Verschiebefunktion (shift function) oder um eine lineare Transformation von Bits handeln. In dem Beispiel der 3 kann die Permutationsschaltung 216 dazu ausgebildet sein, eine Verschiebeoperation durchzuführen, sodass P1(1101 1001) = 1011 0011.
  • Die Zweitrunden-Logikschaltung 220 umfasst XOR-Logikschaltungen 221 und 222, ein Datenregister 223, S-Box-Schaltungen 224 und 225 und eine Permutationsschaltung 226, die in Reihe geschaltet sind. Operationen der Zweitrunden-Logikschaltung 220 sind mit den Operationen vergleichbar, die weiter oben unter Bezugnahme auf die Erstrunden-Logikschaltung 210 erläutert wurden, mit der Ausnahme, dass anstelle der ersten Adresse (addr1) und des ersten Schlüssels (key1) eine zweite Adresse (addr2) und ein zweiter Schlüssel (key2) in den Maskierungsoperationen verwendet werden, die durch die XOR-Logikschaltungen 221 bzw. 222 durchgeführt werden. Auch arbeitet in der Zweitrunden-Logikschaltung 220 die 3-Box-Schaltung S1 bezogen auf das untere Halbbyte anstelle des oberen Halbbytes und die S-Box-Schaltung S2 arbeitet bezogen auf das obere Halbbyte anstelle des unteren Halbbytes.
  • Die verschlüsselten Daten, die von der Zweitrunden-Logikschaltung 220 ausgegeben werden, können sehr schwierig zu entschlüsseln sein. Dies führt dazu, dass Tempering-Angriffe der weiter oben erläuterten Art auf eine Smart Card nicht zu einem Erfolg beim Erhalten vertraulicher Daten führen, die in der Smart Card verwendet werden und die in Übereinstimmung mit verschiedenen Ausgestaltungen der vorliegenden Erfindung verschlüsselt wurden.
  • 5 ist ein Blockdiagramm zur Darstellung von Entschlüsselungslogikschaltung, die gemäß einigen Ausgestaltungen der vorliegenden Erfindung in der Entschlüsselungsschaltung 132 in 2 verwendet werden können. Die Verschlüsselungslogikschaltung umfasst eine Erstrunden-Logikschaltung 310 und eine Zweitrunden-Logikschaltung 320. Die Erstrunden-Logikschaltung 310 umfasst eine inverse Permutationsschaltung 311, inverse S-Box-Schaltungen 312 und 313, ein Datenregister 314 und XOR-Logikschaltungen 315 und 316, die in Reihe geschaltet sind. Die Erstrunden-Logikschaltung 310 dient dazu, diejenigen Operationen rückgängig zu machen, die von der Zweitrunden-Logikschaltung 220 in 3 durchgeführt wurden. Wenn die Ausgabe der Erstrunden-Logikschaltung 210 in 3 gleich OP ist wenn ∥ eine Konkatenations- oder Verknüpfungsoperation darstellt, dann erzeugt die inverse Permutationsschaltung 311 eine Ausgabe, die durch die folgende Gleichung P–2[P2(S2(OP XOR ADDR2 XOR KEY2) ∥ S1(OP XOR ADDR2 XOR K2))] = S2(OP XOR ADDR2 XOR KEY2) ∥ S1(OP XOR ADDR2 XOR K2) gegeben ist. Die inversen S-Box-Schaltungen 312 und 313 führen die folgenden Operationen durch: S–2 (S2(OP XOR ADDR2 XOR KEY2)) = OP XOR ADDR2 XOR KEY2 und S–1 (S1(OP XOR ADDR2 XOR KEY2)) = OP XOR ADDR2 XOR KEY2. Die erste XOR-Logikschaltung 315 führt die folgenden Operation durch: OP XOR ADDR2 XOR KEY2 XOR ADDR2 = OP XOR KEY2. Schließlich führt die zweite XOR-Logikschaltung 316 die folgende Operation durch: OP XOR KEY2 XOR KEY2 = OP. Auf diese Weise gewinnt die Erstrunden-Logikschaltung 310 die Ausgabe der Erstrunden-Logikschaltung 210 der Verschlüsselungsschaltung 131 an ihrem Ausgang zurück.
  • Die Zweitrunden-Logikschaltung 320 umfasst eine inverse Permutationsschaltung 321, inverse S-Box-Schaltungen 322 und 323, ein Datenregister 324 und XOR-Logikschaltungen 325 und 326, die in Reihe geschaltet sind. Die Zweitrunden-Logikschaltung 320 dient dazu, die Operationen rückgängig zu machen, die durch die Erstrunden-Logikschaltung 210 in 3 durchgeführt wurden. Operationen der Zweitrunden-Logikschaltung 320 sind mit denjenigen Operationen vergleichbar, die weiter oben unter Bezugnahme auf die Erstrunden-Logikschaltung 310 diskutiert wurden. Dies bedeutet, dass die Zweitrunden-Logikschaltung 320 an ihrem Eingang die Ausgabe der Erstrunden-Logikschaltung 210 der Verschlüsselungsschaltung 131 in 3 empfängt und an ihrem Ausgang die ursprünglichen unverschlüsselten Daten erzeugt.
  • Unter erneuter Bezugnahme auf 2 kann die Smart Card 100 vorteilhafter Weise verschlüsselte Daten über den Bus 150 zu dem Speicher 120 gemäß den verschiedenen Ausgestaltungen übertragen, die weiter oben bezüglich der 3 und 4 beschrieben wurden. Die verschlüsselten Daten können mittels Leistungsanalysetechniken schwierig zu entschlüsseln sein aufgrund der Maskierungsoperationen, S-Box-Operationen und/oder der Permutationsoperationen, die durch die Verschlüsselungsschaltung durchgeführt wurden. Ausgestaltungen der vorliegenden Erfindung können außerdem gemäß dem Grad des gewünschten Schutzes skaliert werden. Beispielsweise beinhalten die Verschlüsselungsschaltungen und die Entschlüsselungsschaltungen, die weiter oben unter Bezugnahme auf die 3 bis 5 beschrieben wurden, zwei Durchgänge von Verschlüsselungs-/Entschlüsselungsoperationen. Weniger oder mehr Durchgänge von Verschlüsselungs-/Entschlüsselungsoperationen können in Übereinstimmung mit verschiedenen Ausgestaltungen der vorliegenden Erfindung verwendet werden. In den Beispielen, die weiter oben unter Bezugnahme auf die 3 bis 5 beschreiben wurden, handelt es sich bei den Eingabedaten um ein Byte. Es kann jedoch wünschenswert sein, die oben beschriebenen kryptographischen Operationen in Abhängigkeit von der Busbreite an anderen Datengrößen durchzuführen. Daher können die weiter oben unter Bezugnahme auf die 3 bis 5 beschriebenen Operationen parallel durchgeführt werden, um beispielsweise 16 Bit, 32 Bit, 64 Bit oder andere Busbreiten zu unterstützen.
  • 6 ist ein Blockdiagramm zur Darstellung eines kryptographischen Systems gemäß weiteren Ausgestaltungen der vorliegenden Erfindung. Bezugnehmend auf 6 umfasst eine Smart Card 100' in Übereinstimmung mit einigen Ausgestaltungen der vorliegenden Erfindung eine CPU 110', eine Verschlüsselungsschaltung 131', eine Entschlüsselungsschaltung 132', einen Schlüsselverteiler 140' und einen Speicher 120', die in der dargestellten Art und Weise ausgebildet sind. Der Speicher 120' ist über einen Datenbus 150' mit der CPU 110' gekoppelt. Operationen der Verschlüsselungsschaltung 131' und der Entschlüsselungsschaltung 132' sind ähnlich zu den Operationen der Verschlüsselungsschaltung 131 und der Verschlüsselungsschaltung 132 der weiter oben anhand der 2. Ein Unterschied zwischen der Smart Card 100' gemäß 6 und der Smart Card 100 gemäß 2 besteht darin, dass die Verschlüsselungslogik in der Smart Card 100' in die CPU 110' integriert ist, sodass eine einzelne Logikeinheit gebildet ist, wohingegen die kryptographische Schaltung 130 gemäß 2 als ein Coprozessor für die CPU 110 in 2 ausgebildet ist.
  • 7 ist ein Blockdiagramm zur Darstellung einer Fehlererkennungsschaltung gemäß einigen Ausgestaltungen der vorliegenden Erfindung. Bezugnehmend auf 7 umfasst die Fehlererkennungsschaltung eine CPU 410, drei Logikschaltungen 430, 440 und 450 und eine Speicher 420, die wie abgebildet ausgestaltet sind. Der mit der CPU 410 gekoppelte Datenbus ist parallel zu den Logikschaltungen 430 und 440 geschaltet. Die XOR-Logikschaltung 431 führt eine Maskierungsoperation an den Daten durch, indem sie ein erstes Muster MASK1 (M1) verwendet, und speichert die Ausgabe in einem Register 432. in gleicher Weise führt die XOR-Logikschaltung 441 eine Maskierungsoperation an den Daten durch, indem sie ein zweites Muster MASK2 (M2) verwendet, und speichert die Ausgabe in einem Register 442. Obwohl eine exklusive ODER-Logikoperation als die Maskierungsoperation der Blöcke 431 und 441 in 7 dargestellt ist, sei darauf hingewiesen, dass die Maskierungsoperation eine exklusive ODER-Operation, eine Additionsoperation, eine Subtraktionsoperation, eine Multiplikationsoperation und/oder eine Divisionsoperation umfassen kann, wobei die Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen bezogen auf einen Betrag gemäß verschiedenen Ausgestaltungen der vorliegenden Erfindung durchgeführt werden.
  • Die Logikschaltung 430 liefert Eingabedaten XOR M1 an den Ausgang 460, und die Logikschaltung 440 liefert Eingabedaten XOR M2 an den Ausgang 470. Die Ausgaben werden an Register 451 bzw. 452 der Logikschaltung 450 geliefert. Die Logikschaltung 450 umfasst weiterhin XOR-Logikschaltungen 453 und 454. Die XOR-Logikschaltung 453 wird dazu verwendet, die ursprünglichen Eingabedaten zurück zu gewinnen, indem eine Maskierungsoperation an dem Inhalt des Registers 451 unter Verwendung des ersten Musters MASK1 (M1) durchgeführt wird. Die Ausgabe der XOR-Logikschaltung 453 ist durch die folgende Gleichung gegeben: Eingabedaten XOR M1 XOR M1 = Eingabedaten. Somit werden die Eingabedaten in dem Speicher 420 gespeichert.
  • Die XOR-Logikschaltung 454 führt eine Maskierungsoperation an dem Inhalt des Registers 452 unter Verwendung des Inhalts des Registers 451 durch. Die Ausgabe der XOR-Logikschaltung 454 ist durch die folgende Gleichung gegeben: Eingabedaten XOR M1 XOR Eingabedaten XOR M2 = M1 XOR M2. Eine Fehlererkennungsschaltung 455 kann die Ausgabe der XOR-Logikschaltung 454 mit dem bekannten Ergebnis von M1 XOR M2 vergleichen. Wenn die Ausgabe der XOR-Logikschaltung 454 nicht gleich M1 XOR M2 ist, dann wurden die Eingabedaten auf wenigstens einen Zweig des dualen Datenbusses korrumpiert und es wird eine Fehler festgestellt.
  • 8 ist ein Blockdiagramm zur Darstellung einer Fehlererkennungsschaltung gemäß weiteren Ausgestaltungen der vorliegenden Erfindung. Die Fehlererkennungsschaltung gemäß 8 umfasst dieselben Komponenten wie die Fehlererkennungsschaltung gemäß 7, wobei gleiche Bestandteile mit denselben Bezugszeichen versehen wurden, jedoch ein abschließendes Apostroph am Ende der Zahl aufweisen. Anstelle von Ausgestaltungen mit dualem Datenbus, wie in 7 gezeigt, illustriert 8 Ausgestaltungen mit dualem Adressbus. Operationen der Fehlererkennungsschaltung gemäß 8 sind mit denjenigen der Fehlererkennungsschaltung gemäß 7 vergleichbar, mit der Ausnahme, dass sie auf Adressinformationen angewendet werden, die auf einen dualen Adressbus übertragen werden.
  • Gemäß weiteren Ausgestaltungen der vorliegenden Erfindung können die Ausgestaltungen des kryptographischen Systems gemäß der 2 bis 6 mit den Ausgestaltungen der Fehlererkennungsschaltung gemäß den 7 und 8 kombiniert werden. Bezugnehmend auf 9 ist ein kryptographisches System dargestellt, das eine Fehlererkennungsschaltung gemäß einigen Ausgestaltungen der vorliegenden Erfindung umfasst. Das kryptographische System in 9 umfasst gemäß einigen Ausgestaltungen der vorliegenden Erfindung eine CPU 510, eine kryptographische Schaltung 530, einen Schlüsselverteiler 540, eine Fehlererkennungsschaltung 550 und einen Speicher 520, die in der dargestellten Weise ausgebildet sind. Die kryptographische Schaltung 530 kann als ein Coprozessor der CPU 510 ausgestaltet sein. Die CPU 510 und die kryptographische Schaltung 530 können untereinander Daten- und Adressinformationen austauschen. In anderen Ausgestaltungen können die CPU 510 und die kryptographische Schaltung 530 in einer einzelnen Logikeinheit verkörpert sein, wie sie weiter oben anhand der 6 erläutert wurde. Die Architektur und die Operationen der Verschlüsselungsschaltungen 531 und 532 entsprechen im Wesentlichen der Architektur und den Operationen der Verschlüsselungsschaltung 131 in 2 mit Ausnahme des Designs der S-Box-Schaltung. In gleicher Weise entsprechen die Architektur und die Operationen der Entschlüsselungsschaltung 533 im Wesentlichen der Architektur und den Operationen der Entschlüsselungsschaltung 132 in 2, mit Ausnahme des Designs der inversen S-Box-Schaltung.
  • Wie in 9 gezeigt, erzeugt die kryptographische Schaltung 530 verschlüsselte Daten XOR MASK1 (M1) am Ausgang 560 und verschlüsselte Daten XOR MASK2 (M2) am Ausgang 570. Die Architektur und die Operationen der Fehlererkennungsschaltung 550 entsprechen denjenigen der Logikschaltungen 450 und 450' der Fehlererkennungsschaltungen gemäß 7 bzw. 8.
  • Bezugnehmend auf 10 wird eine Verschlüsselungslogikschaltung beschrieben, die in den Verschlüsselungsschaltungen 531 und/oder 532 in 9 gemäß einigen Ausgestaltungen der vorliegenden Erfindung eingesetzt werden kann. Aus Gründen der Darstellung wird die Verschlüsselungslogikschaltung in 10 unter Bezugnahme auf eine Implementierung der Verschlüsselungsschaltung 531 beschrieben. Die Erstrunden- und Zweitrunden-Logikschaltungen 610 und 620 entsprechen im Wesentlichen den Erstrunden- und Zweitrunden-Logikschaltungen 210 und 220, die weiter oben unter Bezugnahme auf 3 erläutert wurden. Die Unterkomponenten der Erstrunden- und Zweitrunden-Logikschaltungen 610 und 620 sind entsprechend den Unterkomponenten der Erstrunden- und Zweitrunden-Logikschaltungen 210 und 220 bezeichnet. Im Gegensatz zu der Verschlüsselungslogikschaltung in 3 weichen die S-Box-Schaltungen 614, 615, 624 und 625 jedoch von den entsprechenden S-Box-Schaltungen in 3 ab. Dies ergibt sich dadurch, dass die Eingabe für die Erstrunden-Logikschaltung 610 nicht lediglich Eingabedaten sind, sondern Eingabedaten, auf welche die XOR-Logikschaltung 605 eine Maskierungsoperation unter Verwendung des Musters MASK1 (M1) angewendet hat.
  • Ein Ziel besteht darin, am Ausgang der Verschlüsselungsschaltung 531 verschlüsselte Daten XOR M1 zu erzeugen. Dies ermöglicht ein Entfernen des Musters MASK1 (M1) durch eine einfache XOR-Maskierungsoperation, und anschließend kann die Entschlüsselungsschaltung 533 die verschlüsselten Daten unter Verwendung der Verschlüsselungslogik entschlüsseln, welche die S-Box-Tabelle gemäß 4 umfasst, um die ursprünglichen Eingabedaten zurück zu gewinnen. Um sicher zu stellen, dass die Ausgabe der Verschlüsselungsschaltung 531 die verschlüsselten Daten XOR M1 darstellt, erfüllt die neue S1-Schaltung 614, 624 die folgende Gleichung: S1'(D XOR M1 XOR A XOR K) = S1(D XOR A XOR K) XOR P-1(M1); wobei D die Eingabedaten, M1 das erste Muster, A wenigstens einen Teil der Adresse (addr1), K den Schlüssel (key1), P–1 eine Inverse der durch die Permutationsschaltung 616 durchgeführten Permutation, S1'() die S1-Transformationsfunktion und S1() eine weitere in einer Entschlüsselungsoperation verwendete S-Box-Transformation bezeichnet.
  • In gleicher Weise erfüllt die neue S2-Schaltung 615, 625 die folgende Gleichung: S2'(D XOR M1 XOR A XOR K) = S2(D XOR A XOR K) XOR P-1(M1); wobei D die Eingabedaten, M1 das erste Muster, A wenigstens einen Teil der Adresse (addr1), K den Schlüssel (key1), P–1 eine Inverse der durch die Permutationsschaltung 616 durchgeführten Permutation, S2'() die S2-Transformationsfunktion und S2() eine weitere in einer Entschlüsselungsoperation verwendete S-Box-Transformation bezeichnet.
  • Wenn i = D XOR A1 XOR K1, dann können die vorstehenden Gleichungen für die neue S1-Schaltung 614, 624 und die neue S2-Schaltung 615, 625 wie folgt geschrieben werden: S1'(i XOR M1) = S1(i) XOR P-1(M1); und S2'(i XOR M1) = S2(i) XOR P-1(M1).
  • Die Ausgabe der Erstrunden-Logikschaltung 610 wird durch folgende Gleichungen gegeben: P(S1'(i XOR M1) ∥ S2'(i XOR M1)), die folgendermaßen umgeschrieben werden kann: P(S1(i) XOR P-1(M1) ∥ S2(i) XOR P-1(M1)) = P((S1(i) ∥ S2(i)) XOR P-1(M1)), die wie folgt umgeschrieben werden kann: P(S1(i) ∥ S2(i)) XOR P(P-1(M1)) = P(S1(i) ∥ S2(i)) XOR M1.
  • Somit ist die Ausgabe der Erstrunden-Logikschaltung 610: ED1 XOR M1.
  • Es sei darauf hingewiesen, dass die Funktionalität eines der Module oder aller Module der Verschlüsselungsschaltung 131 und der Entschlüsselungsschaltung 132 in 2, der Verschlüsselungsschaltung 131' und der Entschlüsselungsschaltung 132' in 6, der Logikschaltungen 430, 440 und 450 in 7, der Logikschaltungen 430', 440' und 450' in 8 und der Verschlüsselungsschaltungen 531, 532, Entschlüsselungsschaltung 533 und Fehlererkennungsschaltung 550 in 9 unter Verwendung diskreter Hardware-Komponenten, einer oder mehrerer anwendungsspezifischer integrierter Schaltungen (application specific integrated circuits – ASICs) oder eines programmierten digitalen Signalprozessors oder Mikrocontrollers implementiert sein können. Computercode zum Durchführen von Operationen kryptographischer Systeme und/oder Fehlererkennungsschaltungen, die weiter oben erläutert wurden, kann in einer Programmierhochsprache, wie Java, C und/oder C++ zur Erleichterung der Entwicklung geschrieben sein. Darüber hinaus kann der Computercode zum Ausführen von Operationen der vorliegenden Erfindung auch in anderen Programmiersprachen geschrieben sein, ohne Beschränkung der Allgemeinheit beispielsweise in interpretierten (interpreted) Sprachen. Einige Module oder Routinen können in Maschinensprache (assembler) oder sogar Mikrocode geschrieben sein, um Leistungsfähigkeit und/oder Speicherausnutzung zu verbessern.

Claims (43)

  1. Kryptographisches System, aufweisend: Verschlüsselungslogik (131), die dazu ausgebildet ist, Eingabedaten zu verschlüsseln, indem sie eine Maskierungsoperation an den Eingabedaten unter Verwendung einer mit den Eingabedaten verknüpften Adresse durchführt, wobei die Verschlüsselungslogik aufweist: eine Erstrunden-Logikschaltung (210), die dazu ausgebildet ist, eine Erstrunden-Logikschaltungausgabe in Abhängigkeit von den Eingabedaten, wenigstens einem ersten Teil der Adresse und einem ersten Schlüssel zu erzeugen; eine Erstrunden-S-Box-Schaltung (214, 215), die dazu ausgebildet ist, die Erstrunden-Logikschaltungausgabe zu transformieren; eine Erstrunden-Permutationsschaltung (216), die dazu ausgebildet ist, die transformierte Erstrunden-Logikschaltungsausgabe zu permutieren, um eine Erstrunden-Ausgabe zu erzeugen; eine Zweitrunden-Logikschaltung (220), die dazu ausgebildet ist, eine Zweitrunden-Logikschaltungausgabe in Abhängigkeit von der Erstrundenausgabe, wenigstens einem zweiten Teil der Adresse und einem zweiten Schlüssel zu erzeugen; eine Zweitrunden-S-Box-Schaltung (224, 225), die dazu ausgebildet ist, die Zweitrunden-Logikschaltungausgabe zu transformieren; und eine Zweitrunden-Permutationsschaltung (226), die dazu ausgebildet ist, die transformierte Zweitrunden-Logikschaltungausgabe zu permutieren, um die verschlüsselten Eingabedaten zu erzeugen.
  2. Kryptographisches System nach Anspruch 1, dadurch gekennzeichnet, dass die Verschlüsselungslogik aufweist: eine erste Logikschaltung (210), die dazu ausgebildet ist, eine erste Maskierungsoperation an den Eingabedaten unter Verwendung wenigstens eines Teils einer Adresse durchzuführen, um auf diese Weise eine erste Ausgabe zu erzeugen; und eine zweite Logikschaltung (220), die dazu ausgebildet ist, eine zweite Maskierungsoperation an der ersten Ausgabe unter Verwendung eines Schlüssels durchzuführen, um eine zweite Ausgabe zu erzeugen.
  3. Kryptographisches System nach Anspruch 2, dadurch gekennzeichnet, dass die erste und die zweite Maskierungsoperation eine exklusive ODER-Operation, eine Additionsoperation, eine Subtraktionsoperation-, eine Multiplikationsoperation und/oder eine Divisionsoperation umfassen, wobei die Additions-, Subtraktions-, Multiplikations- und Divisionsoperation bezogen auf einen Betrag durchgeführt werden.
  4. Kryptographisches System nach Anspruch 2 oder 3, weiterhin aufweisend: eine S-Box-Schaltung (224, 225), die dazu ausgebildet ist, die zweite Ausgabe zu transformieren; und eine Permutationsschaltung (226), die dazu ausgebildet ist, die transformierte zweite Ausgabe zu permutieren, um die verschlüsselten Eingabedaten zu erzeugen.
  5. Kryptographisches System nach Anspruch 4, dadurch gekennzeichnet, dass die Permutationsschaltung dazu ausgebildet ist, eine lineare Funktion an der transformierten zweiten Ausgabe durchzuführen.
  6. Kryptographisches System nach Anspruch 5, dadurch gekennzeichnet, dass die lineare Funktion eine Verschiebefunktion oder eine lineare Transformation von Bits der zweiten Ausgabe ist.
  7. Kryptographisches System nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, dass die Eingabedaten wenigstens ein Byte an Daten umfassen und dass die S-Box-Schaltung eine erste S-Box-Schaltung (224) und eine zweite S-Box-Schaltung (225) aufweist, die dazu ausgebildet sind, ein erstes Halbbyte der zweiten Ausgabe bzw. ein zweites Halbbyte der zweiten Ausgabe zu transformieren.
  8. Kryptographisches System nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Eingabedaten wenigstens ein Byte an Daten umfassen.
  9. Kryptographisches System nach einem der Ansprüche 1 bis 8, weiterhin aufweisend: eine Prozessoreinheit (110); wobei die Verschlüsselungslogik einen kryptographischen Coprozessor (130) aufweist, der kommunikationstechnisch mit der Prozessoreinheit gekoppelt ist, wobei der kryptographische Coprozessor die Eingabedaten von der Prozessoreinheit empfängt.
  10. Kryptographisches System nach einem der Ansprüche 1 bis 8, weiterhin aufweisend: eine Prozessoreinheit (110'); wobei die Verschlüsselungslogik (131') mit der Prozessoreinheit integriert ist, sodass eine einzelne Logikeinheit gebildet ist.
  11. Kryptographisches System nach Anspruch 1, dadurch gekennzeichnet, dass die Eingabedaten wenigstens ein Byte an Daten umfassen und dass die Erstrunden-S-Box-Schaltung eine erste 8-Box-Schaltung (214) und eine zweite S-Box-Schaltung (215) aufweist, die dazu ausgebildet sind, ein oberes Bit-Halbbyte der Erstrunden-Logikschaltungausgabe bzw. eine unteres Bit-Halbbyte der Erstrunden-Logikschaltungausgabe zu transformieren, und dass die Zweitrunden-S-Box-Schaltung eine dritte S-Box-Schaltung (224) und eine vierte S-Box-Schaltung (225) entsprechend der ersten S-Box-Schaltung bzw. der zweiten S-Box-Schaltung aufweist, die dazu ausgebildet sind, ein unteres Bit-Halbbyte der Zweitrunden-Logikschaltungausgabe bzw. und ein oberes Bit-Halbbyte der Zweitrunden-Logikschaltungausgabe zu transformieren.
  12. Verfahren zum Betreiben eines kryptographischen Systems, beinhaltend: Verschlüsseln von Eingabedaten (DATA) durch Durchführen einer Maskierungsoperation an den Eingabedaten (DATA) unter Verwendung einer Adresse (Addr1, Addr2), die mit den Eingabedaten verknüpft ist; wobei das Verschlüsseln der Eingabedaten beinhaltet: Erzeugen einer Erstrunden-Logikschaltungausgabe in Abhängigkeit von den Eingabedaten, wenigstens einem ersten Teil der Adresse und einem ersten Schlüssel; Transformieren der Erstrunden-Logikschaltungausgabe; Permutieren der transformierten Erstrunden-Logikschaltungsausgabe, um eine Erstrunden-Ausgabe zu erzeugen; Erzeugen einer Zweitrunden-Logikschaltungausgabe in Abhängigkeit von der Erstrundenausgabe, wenigstens einem zweiten Teil der Adresse und einem zweiten Schlüssel; Transformieren der Zweitrunden-Logikschaltungausgabe; und Permutieren der transformierten Zweitrunden-Logikschaltungausgabe; um die verschlüsselten Eingabedaten zu erzeugen.
  13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass das Verschlüsseln der Eingabedaten beinhaltet: Durchführen einer ersten Maskierungsoperation an den Eingabedaten unter Verwendung wenigstens eines Teils einer Adresse, um eine ersten Ausgabe zu erzeugen; und Durchführen einer zweiten Maskierungsoperation an der ersten Ausgabe unter Verwendung eines Schlüssels, um eine zweite Ausgabe zu erzeugen.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die erste und die zweite Maskierungsoperation eine exklusive ODER-Operation, eine Additionsoperation, eine Subtraktionsoperation, eine Multiplikationsoperation und/oder eine Divisionsoperation umfassen, wobei die Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen bezogen auf einen Betrag durchgeführt werden.
  15. Verfahren nach Anspruch 13 oder 14, weiterhin beinhaltend: Umwandeln der zweiten Ausgabe unter Verwendung einer S-Box-Schaltung; und Permutieren der transformierten zweiten Ausgabe, um die Verschlüsselten Eingabedaten zu erzeugen.
  16. Computerprogrammprodukt mit computerlesbarem Programmcode, der auf einem computerlesbaren Medium verkörpert ist, wobei der computerlesbare Programmcode dazu ausgebildet, ist, das Verfahren nach einem der Ansprüche 12 bis 15 durchzuführen.
  17. Kryptographisches System, aufweisend: eine erste Verschlüsselungsschaltung (531), die dazu ausgebildet ist, in Abhängigkeit von Eingabedaten eine erste Ausgabe zu erzeugen, die verschlüsselten Eingabedaten entspricht, auf die eine Maskierungsoperation unter Verwendung eines ersten Musters angewandt wurde; eine zweite Verschlüsselungsschaltung (532), die dazu ausgebildet ist, in Abhängigkeit von den Eingabedaten eine zweite Ausgabe zu erzeugen, die den verschlüsselten Eingabedaten entspricht, auf die eine Maskierungsoperation unter Verwendung eines zweiten Musters angewandt wurde; eine Detektor-Eingabelogikschaltung (550), die dazu ausgebildet ist, eine Maskierungsoperation an der ersten Ausgabe und der zweiten Ausgabe durchzuführen, um eine dritte Ausgabe zu erzeugen; und eine Detektorschaltung (555), die dazu ausgebildet ist, die dritte Ausgabe mit einem Wert zu vergleichen, der dem ersten Muster entspricht, auf das die Maskierungsoperation unter Verwendung des zweiten Musters angewandt wurde, und einen Fehler zu erkennen, wenn der Wert nicht gleich der dritten Ausgabe ist.
  18. Kryptographisches System nach Anspruch 17, dadurch gekennzeichnet, dass die erste Verschlüsselungsschaltung aufweist: Verschlüsselungslogik (605, 610, 620), die dazu ausgebildet ist, die Eingabedaten zu verschlüsseln, indem die Maskierungsoperation an den Eingabedaten durchgeführt wird, wobei eine mit den Eingabedaten verknüpfte Adresse verwendet wird.
  19. Kryptographisches System nach Anspruch 18, dadurch gekennzeichnet, dass die Verschlüsselungslogik aufweist: eine erste Logikschaltung (605), die dazu ausgebildet ist, die Maskierungsoperation an den Eingabedaten unter Verwendung des ersten Musters durchzuführen, um eine erste Logikschaltungsausgabe zu erzeugen; eine zweite Logikschaltung (610), die dazu ausgebildet ist, die Maskierungsoperation an der ersten Logikschaltungsausgabe unter Verwendung wenigstens eines Teils der Adresse durchzuführen, um eine zweite Logikschaltungsausgabe zu erzeugen; und eine dritte Logikschaltung (620), die dazu ausgebildet ist, die Maskierungsoperation an der zweiten Logikschaltungsausgabe unter Verwendung eines Schlüssels durchzuführen, um eine dritte Logikschaltungsausgabe zu erzeugen.
  20. Kryptographisches System nach Anspruch 19, dadurch gekennzeichnet, dass die Maskierungsoperation eine exklusive ODER-Operation, eine Additionsoperation, eine Subtraktionsoperation, eine Multiplikationsoperation und/oder eine Divisionsoperation umfasst, wobei die Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen bezogen auf einen Betrag durchgeführt werden.
  21. Kryptographisches System nach Anspruch 19 oder 20, weiterhin aufweisend: eine S'-Box-Schaltung (624, 625), die dazu ausgebildet ist, die dritte Logikschaltungsausgabe zu transformieren; und eine Permutationsschaltung (626), die dazu ausgebildet ist, die transformierte dritte Logikschaltungsausgabe zu permutieren, um die erste Ausgabe zu erzeugen, die den verschlüsselten Eingabedaten entspricht, auf die Maskierungsoperation unter Verwendung des ersten Musters angewandt wurde.
  22. Kryptographisches System nach Anspruch 21, dadurch gekennzeichnet, dass die S'-Box-Schaltung die folgende Gleichung erfüllt: S'(D XOR M1 KOR A XOR K) = S(D XOR A XOR K) XOR P-1(M1); wobei D die Eingabedaten, M1 das erste Muster, A den wenigstens einen Teil der Adresse, K den Schlüssel, P-1 eine Inverse der durch die Permutationsschaltung durchgeführten Permutation, S'() die S'-Box-Transformationsfunktion und S() eine weitere in einer Entschlüsselungsoperation verwendete S-Box-Transformation bezeichnet.
  23. Kryptographisches System nach Anspruch 21 oder 22, dadurch gekennzeichnet, dass die Eingabedaten wenigstens ein Byte an Daten umfassen und dass die S'-Box-Schaltung eine erste S'-Box-Schaltung (624) und eine zweite S'-Box-Schaltung (625) umfasst, die dazu ausgebildet sind, ein erstes Halbbyte der dritten Logikschaltungsausgabe bzw. ein zweites Halbbyte der dritten Logikschaltungsausgabe zu transformieren.
  24. Kryptographisches System nach Anspruch 18, dadurch gekennzeichnet, dass die Verschlüsselungslogik aufweist: eine Erstrunden-Logikschaltung (610), die dazu ausgebildet ist, eine Erstrunden-Logikschaltungsausgabe in Abhängigkeit von den Eingabedaten, dem ersten Muster, wenigstens einem ersten Teil einer Adresse und einem ersten Schlüssel zu erzeugen; eine Erstrunden-S'-Box-Schaltung (614, 615), die dazu ausgebildet ist, die Erstrunden-Logikschaltungsausgabe zu transformieren; und eine Erstrunden-Permutationsschaltung (616), die dazu ausgebildet ist, die transformierte Erstrunden-Logikschaltungsausgabe zu permutieren, um eine Erstrunden-Ausgabe zu erzeugen; eine Zweitrunden-Logikschaltung (620), die dazu ausgebildet ist, eine Zweitrunden-Logikschaltungsausgabe in Abhängigkeit von der Erstrundenausgabe, wenigstens einem zweiten Teil einer Adresse und einem zweiten Schlüssel zu erzeugen; eine Zweitrunden-S'-Box-Schaltung (624, 625), die dazu ausgebildet ist, die Zweitrunden-Logikschaltungsausgabe zu transformieren; und eine Zweitrunden-Permutationsschaltung (626), die dazu ausgebildet ist, die transformierte Zweitrunden-Logikschaltungsausgabe zu permutieren, um die erste Ausgabe zu erzeugen, die den verschlüsselten Eingabedaten entspricht, auf die die Maskierungsoperation unter Verwendung des ersten Musters angewandt wurde.
  25. Kryptographisches System nach Anspruch 24, dadurch gekennzeichnet, dass die Erstrunden- und Zweitrunden-S'-Box-Schaltungen die folgende Gleichung erfüllen: S'(D XOR M1 XOR A XOR K) = S(D XOR A XOR K) XOR P-1(M1); wobei D die Eingabedaten, M1 das erste Muster, A den wenigstens einen Teil der Adresse, K den Schlüssel, P-1 eine Inverse der durch die Permutationsschaltung durchgeführten Permutation, S'() die S'-Box-Transformationsfunktion und S() eine weitere in einer Entschlüsselungsoperation verwendete S-Box-Transformation bezeichnet.
  26. Kryptographisches System nach Anspruch 25, dadurch gekennzeichnet, dass die Eingabedaten wenigstens ein Byte an Daten umfassen und dass die Erstrunden-S-Box-Schaltung eine erste S'-Box-Schaltung (614) und eine zweite S'-Box-Schaltung (615) aufweist, die dazu ausgebildet sind, ein oberes Bit-Halbbyte der Erstrunden-Logikschaltungausgabe bzw. eine unteres Bit-Halbbyte der Erstrunden-Logikschaltungausgabe zu transformieren und dass die Zweitrunden-S'-Box-Schaltung eine dritte S'-Box-Schaltung (624) und eine vierte S'-Box-Schaltung (625) entsprechend der ersten S'-Box-Schaltung bzw. der zweiten S'-Box-Schaltung aufweist, die dazu ausgebildet sind, ein unteres Bit-Halbbyte der Zweitrunden-Logikschaltungausgabe bzw. und ein oberes Bit-Halbbyte der Zweitrunden-Logikschaltungausgabe zu transformieren.
  27. Kryptographisches System nach einem der Ansprüche 17 bis 26, dadurch gekennzeichnet, dass die zweite Verschlüsselungsschaltung aufweist: Verschlüsselungslogik (605, 610, 620), die dazu ausgebildet ist, die Eingabedaten zu verschlüsseln, indem sie die Maskierungsoperation an den Eingabedaten unter Verwendung einer Adresse durchführt, die mit den Eingabedaten verknüpft ist.
  28. Kryptographisches System nach Anspruch 27, dadurch gekennzeichnet, dass die Verschlüsselungslogik aufweist: eine erste Logikschaltung (605), die dazu ausgebildet ist, die Maskierungsoperation an den Eingabedaten unter Verwendung des zweiten Musters durchzuführen, um eine erste Logikschaltungsausgabe zu erzeugen; eine zweite Logikschaltung (610), die dazu ausgebildet ist, die Maskierungsoperation an der ersten Logikschaltungsausgabe unter Verwendung wenigstens eines Teils der Adresse durchzuführen, um eine zweite Logikschaltungsausgabe zu erzeugen; und eine dritte Logikschaltung (620), die dazu ausgebildet ist, die Maskierungsoperation an der zweiten Logikschaltungsausgabe unter Verwendung eines Schlüssels durchzuführen, um eine dritte Logikschaltungsausgabe zu erzeugen.
  29. Kryptographisches System nach Anspruch 28, dadurch gekennzeichnet, dass die Maskierungsoperation eine exklusive ODER-Operation, eine Additionsoperation, eine Subtraktionsoperation, eine Multiplikationsoperation und/oder eine Divisionsoperation umfasst, wobei die Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen bezogen auf einen Betrag durchgeführt werden.
  30. Kryptographisches System nach Anspruch 28 oder 29, weiterhin aufweisend: eine S'-Box-Schaltung (624, 625), die dazu ausgebildet ist, die dritte Logikschaltungsausgabe zu transformieren; und eine Permutationsschaltung (626), die dazu ausgebildet ist, die transformierte dritte Logikschaltungausgabe zu permutieren, um die zweite Ausgabe zu erzeugen, die den verschlüsselten Eingabedaten entspricht, auf die Maskierungsoperation unter Verwendung des zweiten Musters angewandt wurde.
  31. Kryptographisches System nach Anspruch 30, dadurch gekennzeichnet, dass die S'-Box-Schaltung die folgende Gleichung erfüllt: S'(D XOR M2 XOR A XOR K) = S(D XOR A XOR K) XOR P-1(M2); wobei D die Eingabedaten, M2 das zweite Muster, A den wenigstens einen Teil der Adresse, K den Schlüssel, P-1 eine Inverse der durch die Permutationsschaltung durchgeführten Permutation, S'() die S'-Box-Transformationsfunktion und S() eine weitere in einer Entschlüsselungsoperation verwendete S-Box-Transformation bezeichnet.
  32. Kryptographisches System nach Anspruch 30 oder 31, dadurch gekennzeichnet, dass die Eingabedaten wenigstens ein Byte an Daten umfassen und dass die S'-Box-Schaltung eine erste S'-Box-Schaltung (624) und eine zweite S'-Box-Schaltung (625) umfasst, die dazu ausgebildet sind, ein erstes Halbbyte der dritten Logikschaltungsausgabe bzw. ein zweites Halbbyte der dritten Logikschaltungsausgabe zu transformieren.
  33. Kryptographisches System nach Anspruch 27, dadurch gekennzeichnet, dass die Verschlüsselungslogik aufweist: eine Erstrunden-Logikschaltung (610), die dazu ausgebildet ist, eine Erstrunden-Logikschaltungsausgabe in Abhängigkeit von den Eingabedaten, dem zweiten Muster, wenigstens einem ersten Teil einer Adresse und einem Schlüssel zu erzeugen; eine Erstrunden-S'-Box-Schaltung (614, 615), die dazu ausgebildet ist, die Erstrunden-Logikschaltungsausgabe zu transformieren; eine Erstrunden-Permutationsschaltung (616), die dazu ausgebildet ist, die transformierte Erstrunden-Logikschaltungsausgabe zu permutieren, um eine Erstrundenausgabe zu erzeugen; eine Zweitrunden-Logikschaltung (620), die dazu ausgebildet ist, eine Zweitrunden-Logikschaltungsausgabe in Abhängigkeit von der Erstrundenausgabe, wenigstens einem zweiten Teil der Adresse und einem zweiten Schlüssel zu erzeugen; eine Zweitrunden-S'-Box-Schaltung (624, 625), die dazu ausgebildet ist, die Zweitrunden-Logikschaltungsausgabe zu transformieren; und eine Zweitrunden-Permutationsschaltung (626), die dazu ausgebildet ist, die transformierte Zweitrunden-Logikschaltungsausgabe zu permutieren, um die zweite Ausgabe zu erzeugen, die den verschlüsselten Eingabedaten entspricht, auf die die Maskierungsoperation unter Verwendung des zweiten Musters angewandt wurde.
  34. Kryptographisches System nach Anspruch 33, dadurch gekennzeichnet, dass die Erstrunden- und Zweitrunden-S'-Box-Schaltungen die folgende Gleichung erfüllen: S'(D XOR M2 XOR A XOR K) S(D XOR A XOR K) XOR P-1(M2); wobei D die Eingabedaten, M2 das zweite Muster, A den wenigstens einen Teil der Adresse, K den Schlüssel, P-1 eine Inverse der durch die Permutationsschaltung durchgeführten Permutation, S'() die S'-Box-Transformationsfunktion und S() eine weitere in einer Entschlüsselungsoperation verwendete S-Box-Transformation bezeichnet.
  35. Kryptographisches System nach Anspruch 34, dadurch gekennzeichnet, dass die Eingabedaten wenigstens ein Byte an Daten umfassen und dass die Erstrunden-S'-Box-Schaltung eine erste S'-Box-Schaltung (614) und eine zweite S'-Box-Schaltung (615) aufweist, die dazu ausgebildet sind, ein oberes Bit-Halbbyte der Erstrunden-Logikschaltungausgabe bzw. eine unteres Bit-Halbbyte der Erstrunden-Logikschaltungausgabe zu transformieren und dass die Zweitrunden-S'-Box-Schaltung eine dritte S'-Box-Schaltung (624) und eine vierte S'-Box-Schaltung (625) entsprechend der ersten S'-Box-Schaltung bzw. der zweiten S'-Box-Schaltung aufweist, die dazu ausgebildet sind, ein unteres Bit-Halbbyte der Zweitrunden-Logikschaltungausgabe bzw. und ein oberes Bit-Halbbyte der Zweitrunden-Logikschaltungausgabe zu transformieren.
  36. Kryptographisches System nach einem der Ansprüche 17 bis 35, dadurch gekennzeichnet, dass die Eingabedaten wenigstens eine Byte an Daten umfassen.
  37. Verfahren zum Betreiben eines kryptographischen Systems, beinhaltend: Erzeugen, in Abhängigkeit von Eingabedaten, einer ersten Ausgabe, die verschlüsselten Eingabedaten entspricht, auf die eine Maskierungsoperation unter Verwendung eines ersten Musters angewandt wurde; Erzeugen, in Abhängigkeit von den Eingabedaten, einer zweiten Ausgabe, die den verschlüsselten Eingabedaten entspricht, auf die eine Maskierungsoperation unter Verwendung eines zweiten Musters angewandt wurde; Durchführen der Maskierungsoperation an der ersten Ausgabe und der zweiten Ausgabe, um eine dritte Ausgabe zu erzeugen; Vergleichen der dritten Ausgabe mit einem Wert, der dem ersten Muster entspricht, auf das die Maskierungsoperation unter Verwendung des zweiten Musters angewandt wurde; und Erkennen eines Fehlers, wenn der Wert nicht gleich der dritten Ausgabe ist.
  38. Verfahren nach Anspruch 37, dadurch gekennzeichnet, dass das Erzeugen der ersten Ausgabe beinhaltet: Verschlüsseln der Eingabedaten durch Durchführen der Maskierungsoperation an den Eingabedaten unter Verwendung einer Adresse, die mit den Eingabedaten verknüpft ist.
  39. Verfahren nach Anspruch 38, dadurch gekennzeichnet, dass das Verschlüsseln der Eingabedaten beinhaltet: Durchführen der Maskierungsoperation an den Eingabedaten unter Verwendung des ersten Musters, um eine erste Logikausgabe zu erzeugen; Durchführen der Maskierungsoperation an der ersten Logikausgabe unter Verwendung wenigstens eines Teils der Adresse, um eine zweite Logikausgabe zu erzeugen; und Durchführen der Maskierungsoperation an einer zweiten Logikausgabe unter Verwendung eines Schlüssels, um eine dritte Logikausgabe zu erzeugen.
  40. Verfahren nach Anspruch 39, dadurch gekennzeichnet, dass die Maskierungsoperation eine exklusive ODER-Operation, eine Additionsoperation, eine Subtraktionsoperation, eine Multiplikationsoperation und/oder eine Divisionsoperation umfasst, wobei die Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen bezogen auf einen Betrag durchgeführt werden.
  41. Verfahren nach Anspruch 40, weiterhin beinhaltend: Umwandeln der dritten Logikausgabe unter Verwendung einer S'-Box-Schaltung (614, 615, 624, 625); und Permutieren der transformierten dritten Logikausgabe, um die ersten Ausgabe zu erzeugen, die den verschlüsselten Eingabedaten entspricht, auf die die Maskierungsoperation unter Verwendung des ersten Musters angewandt wurde.
  42. Verfahren nach Anspruch 41, dadurch gekennzeichnet, dass die S'-Box-Schaltung die folgende Gleichung erfüllt: S'(D XOR M1 XOR A XOR K) = S(D XOR A XOR K) XOR P-1(M1); wobei D die Eingabedaten, M1 das erste Muster, A den wenigstens einen Teil der Adresse, K den Schlüssel, P-1 eine Inverse der durch die Permutationsschaltung durchgeführten Permutation, S'() die S'-Box-Transformationsfunktion und S() eine weitere in einer Entschlüsselungsoperation verwendete S-Box-Transformation bezeichnet.
  43. Computerprogrammprodukt mit computerlesbarem Programmcode, der auf einem computerlesbarem Medium verkörpert ist, wobei der computerlesbare Programmcode dazu ausgebildet ist, das Verfahren nach einem der Ansprüche 37 bis 42 durchzuführen.
DE102007026977A 2006-06-07 2007-06-05 Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt Active DE102007026977B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020060051033A KR100837270B1 (ko) 2006-06-07 2006-06-07 스마트 카드 및 그것의 데이터 보안 방법
KR10-2006-0051033 2006-06-07
US11/785,281 2007-04-16
US11/785,281 US8332634B2 (en) 2006-06-07 2007-04-16 Cryptographic systems for encrypting input data using an address associated with the input data, error detection circuits, and methods of operating the same

Publications (2)

Publication Number Publication Date
DE102007026977A1 DE102007026977A1 (de) 2008-01-24
DE102007026977B4 true DE102007026977B4 (de) 2012-03-08

Family

ID=38318938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007026977A Active DE102007026977B4 (de) 2006-06-07 2007-06-05 Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt

Country Status (4)

Country Link
JP (1) JP2007328789A (de)
DE (1) DE102007026977B4 (de)
FR (2) FR2902252A1 (de)
GB (1) GB2438972B (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101685633B1 (ko) 2009-01-05 2016-12-12 삼성전자주식회사 메모리 시스템
WO2010109516A1 (ja) 2009-03-23 2010-09-30 富士通株式会社 データ処理装置及びデータ処理方法
DE102011107104B4 (de) * 2011-07-12 2020-11-12 Giesecke+Devrient Mobile Security Gmbh Tragbares Sicherheitsmodul und Verfahren zu dessen Betrieb zur Abwehr eines Angriffs in Echtzeit per Mustererkennung
US9269418B2 (en) 2012-02-06 2016-02-23 Arm Limited Apparatus and method for controlling refreshing of data in a DRAM
FR3019349A1 (fr) * 2014-03-31 2015-10-02 Orange Procede et module de transformation d'une adresse memoire
CN113518988A (zh) * 2019-03-05 2021-10-19 密码研究公司 嵌入式中央处理单元上的抗侧通道攻击存储器访问
US20220284132A1 (en) * 2019-08-29 2022-09-08 Carnegie Mellon University Method for securing logic circuits

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0908810A2 (de) * 1997-10-10 1999-04-14 General Instrument Corporation Gesicherter Prozessor mit externem Speicher unter Verwendung von Block-Chaining und Wiederherstellung der Blockreihenfolge
WO2003030441A2 (en) * 2001-10-03 2003-04-10 Koninklijke Philips Electronics N.V. Memory encryption system and method
WO2003092219A1 (fr) * 2002-04-23 2003-11-06 Scm Microsystems Gmbh Procede et dispositif de chiffrement de donnees numeriques___
DE10345378A1 (de) * 2003-09-30 2005-05-12 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver-/Entschlüsselung

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
DE10115118A1 (de) * 2001-03-27 2002-10-10 Philips Corp Intellectual Pty Verfahren zur Übertragung von Daten über einen Datenbus
EP1578053A1 (de) * 2004-03-18 2005-09-21 STMicroelectronics Limited Datenmaskierung
EP1617586B1 (de) * 2004-07-06 2008-09-03 Proton World International N.V. Stromverschlüsselung des Inhalts eines Speichers, welcher ausserhalb eines Prozessors angeordnet ist

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0908810A2 (de) * 1997-10-10 1999-04-14 General Instrument Corporation Gesicherter Prozessor mit externem Speicher unter Verwendung von Block-Chaining und Wiederherstellung der Blockreihenfolge
WO2003030441A2 (en) * 2001-10-03 2003-04-10 Koninklijke Philips Electronics N.V. Memory encryption system and method
WO2003092219A1 (fr) * 2002-04-23 2003-11-06 Scm Microsystems Gmbh Procede et dispositif de chiffrement de donnees numeriques___
DE10345378A1 (de) * 2003-09-30 2005-05-12 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver-/Entschlüsselung

Also Published As

Publication number Publication date
FR2902252A1 (fr) 2007-12-14
DE102007026977A1 (de) 2008-01-24
JP2007328789A (ja) 2007-12-20
GB2438972B (en) 2011-01-12
GB0710989D0 (en) 2007-07-18
FR2906665A1 (fr) 2008-04-04
GB2438972A (en) 2007-12-12

Similar Documents

Publication Publication Date Title
DE102007063755B4 (de) Fehlererkennungsschaltung und zugehöriges Betriebsverfahren und Computerprogrammprodukt
DE102007026977B4 (de) Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE60006041T2 (de) Verfahren zur überprüfung der benützung von öffentlichen schlüsseln welche von einem geladenen system generiert werden
DE102013206185A1 (de) Verfahren zur Erkennung einer Manipulation eines Sensors und/oder von Sensordaten des Sensors
EP1496420B1 (de) Sicherheits-Datenverarbeitungseinheit sowie dazugehöriges Verfahren
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
DE102006006057A1 (de) Datenverschlüsselungsvorrichtung und Verfahren zum Verschlüsseln von Daten
DE102004042826A1 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
EP3206154B1 (de) Verfahren und vorrichtungen zum sicheren übermitteln von nutzdaten
DE102004061312B4 (de) Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
DE112018002723T5 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
WO2001046785A2 (de) Verfahren und vorrichtung zur überprüfung einer datei
EP1988484A2 (de) Gegen Kopieren geschützte Chipkarte und Verfahren im Zusammenhang mit deren Herstellung
EP1596527B1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP1984865A2 (de) Verfahren zur durchführung eines schreibzugriffs, computerprogrammprodukt, computersystem und chipkarte
EP1573955B1 (de) Verschl sselungsverfahren
EP2154625B1 (de) Sichere personalierung eines einmalpasswort-generators
DE19960047B4 (de) Verfahren und Einheit zur sicheren Informationsbehandlung in einem kryptographischen Informationsverarbeitungssystem
DE102004001659B4 (de) Vorrichtung und Verfahren zum Konvertieren einer ersten Nachricht in eine zweite Nachricht
DE102019003673B3 (de) Seitenkanalsichere Implementierung
DE102004043480B3 (de) Vorrichtung und Verfahren zum Erkennen einer Störung einer kryptographischen Einheit vorzugsweise des AES-Algorithmus
EP3251281A1 (de) Intrinsische authentifizierung von programcode

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
8172 Supplementary division/partition in:

Ref document number: 102007063755

Country of ref document: DE

Kind code of ref document: P

Q171 Divided out to:

Ref document number: 102007063755

Country of ref document: DE

Kind code of ref document: P

R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20120609