DE102007026977B4 - Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt - Google Patents
Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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/755—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/77—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key 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...
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 CPU11 , ROM12 , RAM13 , EEPROM14 , I/O-Modul15 und Bus16 , wie dargestellt. Die CPU11 kann dazu ausgebildet sein, gesamtheitliche Datenverarbeitungs- und arithmetische Operationen zu steuern. Der ROM12 kann dazu ausgebildet sein, das Betriebssystem, den Boot-Code und das Initialisierungsprogramm zu speichern. Der RAM13 kann dazu verwendet werden, modifizierbare Programme und/oder temporäre Daten zu speichern. Der EEPROM14 kann dazu verwendet werden, ein oder mehrere Anwendungsprogramme zu speichern. Das I/O-Modul15 kann verwendet werden, um es der CPU11 zu ermöglichen mit einer externen Vorrichtung zu kommunizieren. Die CPU11 , ROM12 , RAM13 und EEPROM14 sind mittels eines Buses16 gekoppelt. Der Bus16 kann sowohl einen Datenbus als auch einen Adressbus umfassen. Der Datenbus kann elektrische Signale zwischen CPU11 , ROM12 , RAM13 und EEPROM14 sowie zwischen beliebigen anderen Vorrichtung übertragen, die an den Bus16 angeschlossen sein können, um Daten zwischen diesem zu übertragen. Der Adressbus kann die CPU11 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 WO 3/030441 A2 - 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 der3 gemäß einigen Ausgestaltungen der vorliegenden Erfindung; -
5 ein Blockdiagramm zur Darstellung von Entschlüsselungslogikschaltung zur Verwendung in dem kryptographischen System der2 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 der9 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 Card100 gemäß einigen Ausgestaltungen der vorliegenden Erfindung eine CPU110 , eine kryptographische Schaltung130 , einen Schlüsselverteiler (key scheduler)140 und einen Speicher120 , die in der dargestellten Art und Weise ausgebildet sind. Die kryptographische Schaltung130 kann als ein Coprozessor der CPU110 ausgebildet sein. Die CPU110 und die kryptographische Schaltung130 können untereinander Daten- und Adressinformationen austauschen. Der Schlüsselverteiler140 kann einen Schlüssel für die krytographische Schaltung130 bereitstellen, der zum Verschlüsseln und/oder Entschlüsseln von Daten verwendet werden kann. In einigen Ausgestaltungen umfasst die kryptographische Schaltung130 ein Verschlüsselungsschaltung131 , die dazu verwendet wird, Daten zu verschlüsseln, die auf dem Bus150 übertragen werden, welcher die kryptographische Schaltung130 und den Speicher120 verbindet, wobei eine Adresse verwendet wird, die mit den Daten verknüpft ist und/oder ein Schlüssel, der von dem Schlüsselverteiler140 erhalten wird. Die kryptographische Schaltung130 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üsselungsschaltung131 der2 gemäß einigen Ausgestaltungen der vorliegenden Erfindung verwendet werden kann. Die Verschlüsselungslogikschaltung umfasst eine Erstrunden-Logikschaltung210 und eine Zweitrunden-Logikschaltung220 . Die Erstrunden-Logikschaltung210 umfasst XOR-Logikschaltungen211 und212 , ein Datenregister213 , S-Box-Schaltungen214 und215 und eine Permutationsschaltung216 , die in Reihe geschaltet sind. Zu verschlüsselnde Daten werden an einem Eingang der XOR-Schaltung211 empfangen, wo eine Maskierungsoperation an den Daten durchgeführt wird, indem eine mit den Daten verknüpfte Adresse (addr1) verwendet wird. Die XOR-Schaltung212 führt eine zweite Maskierungsoperation an der Ausgabe der XOR-Schaltung211 durch, indem ein Schlüssel (key1) verwendet wird, der von dem Schlüsselverteiler140 erhalten wird. Obwohl eine exklusive ODER-Logikoperation als Maskierungsoperation der Blöcke211 und212 in3 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-Schaltung212 und liefert einen ersten Teil der Ausgabe der XOR-Schaltung212 an eine erste S-Box-Schaltung (S1)214 und einen zweiten Teil der Ausgabe der XOR-Schaltung212 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-Schaltungen214 und215 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 S1214 ist 0010, die Eingabe für S2 215 ist 1100. Bezugnehmend auf die Tabelle in5 ist S1 (2) = 13 = 1101 und S2 (12) = 9 = 1001. Die Eingabe für die Permutationsschaltung216 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 der3 kann die Permutationsschaltung216 dazu ausgebildet sein, eine Verschiebeoperation durchzuführen, sodass P1(1101 1001) = 1011 0011. - Die Zweitrunden-Logikschaltung
220 umfasst XOR-Logikschaltungen221 und222 , ein Datenregister223 , S-Box-Schaltungen224 und225 und eine Permutationsschaltung226 , die in Reihe geschaltet sind. Operationen der Zweitrunden-Logikschaltung220 sind mit den Operationen vergleichbar, die weiter oben unter Bezugnahme auf die Erstrunden-Logikschaltung210 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-Logikschaltungen221 bzw.222 durchgeführt werden. Auch arbeitet in der Zweitrunden-Logikschaltung220 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üsselungsschaltung132 in2 verwendet werden können. Die Verschlüsselungslogikschaltung umfasst eine Erstrunden-Logikschaltung310 und eine Zweitrunden-Logikschaltung320 . Die Erstrunden-Logikschaltung310 umfasst eine inverse Permutationsschaltung311 , inverse S-Box-Schaltungen312 und313 , ein Datenregister314 und XOR-Logikschaltungen315 und316 , die in Reihe geschaltet sind. Die Erstrunden-Logikschaltung310 dient dazu, diejenigen Operationen rückgängig zu machen, die von der Zweitrunden-Logikschaltung220 in3 durchgeführt wurden. Wenn die Ausgabe der Erstrunden-Logikschaltung210 in3 gleich OP ist wenn ∥ eine Konkatenations- oder Verknüpfungsoperation darstellt, dann erzeugt die inverse Permutationsschaltung311 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-Schaltungen312 und313 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-Logikschaltung315 führt die folgenden Operation durch: OP XOR ADDR2 XOR KEY2 XOR ADDR2 = OP XOR KEY2. Schließlich führt die zweite XOR-Logikschaltung316 die folgende Operation durch: OP XOR KEY2 XOR KEY2 = OP. Auf diese Weise gewinnt die Erstrunden-Logikschaltung310 die Ausgabe der Erstrunden-Logikschaltung210 der Verschlüsselungsschaltung131 an ihrem Ausgang zurück. - Die Zweitrunden-Logikschaltung
320 umfasst eine inverse Permutationsschaltung321 , inverse S-Box-Schaltungen322 und323 , ein Datenregister324 und XOR-Logikschaltungen325 und326 , die in Reihe geschaltet sind. Die Zweitrunden-Logikschaltung320 dient dazu, die Operationen rückgängig zu machen, die durch die Erstrunden-Logikschaltung210 in3 durchgeführt wurden. Operationen der Zweitrunden-Logikschaltung320 sind mit denjenigen Operationen vergleichbar, die weiter oben unter Bezugnahme auf die Erstrunden-Logikschaltung310 diskutiert wurden. Dies bedeutet, dass die Zweitrunden-Logikschaltung320 an ihrem Eingang die Ausgabe der Erstrunden-Logikschaltung210 der Verschlüsselungsschaltung131 in3 empfängt und an ihrem Ausgang die ursprünglichen unverschlüsselten Daten erzeugt. - Unter erneuter Bezugnahme auf
2 kann die Smart Card100 vorteilhafter Weise verschlüsselte Daten über den Bus150 zu dem Speicher120 gemäß den verschiedenen Ausgestaltungen übertragen, die weiter oben bezüglich der3 und4 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 die3 bis5 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 die3 bis5 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 die3 bis5 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 auf6 umfasst eine Smart Card100' in Übereinstimmung mit einigen Ausgestaltungen der vorliegenden Erfindung eine CPU110' , eine Verschlüsselungsschaltung131' , eine Entschlüsselungsschaltung132' , einen Schlüsselverteiler140' und einen Speicher120' , die in der dargestellten Art und Weise ausgebildet sind. Der Speicher120' ist über einen Datenbus150' mit der CPU110' gekoppelt. Operationen der Verschlüsselungsschaltung131' und der Entschlüsselungsschaltung132' sind ähnlich zu den Operationen der Verschlüsselungsschaltung131 und der Verschlüsselungsschaltung132 der weiter oben anhand der2 . Ein Unterschied zwischen der Smart Card100' gemäß6 und der Smart Card100 gemäß2 besteht darin, dass die Verschlüsselungslogik in der Smart Card100' in die CPU110' integriert ist, sodass eine einzelne Logikeinheit gebildet ist, wohingegen die kryptographische Schaltung130 gemäß2 als ein Coprozessor für die CPU110 in2 ausgebildet ist. -
7 ist ein Blockdiagramm zur Darstellung einer Fehlererkennungsschaltung gemäß einigen Ausgestaltungen der vorliegenden Erfindung. Bezugnehmend auf7 umfasst die Fehlererkennungsschaltung eine CPU410 , drei Logikschaltungen430 ,440 und450 und eine Speicher420 , die wie abgebildet ausgestaltet sind. Der mit der CPU410 gekoppelte Datenbus ist parallel zu den Logikschaltungen430 und440 geschaltet. Die XOR-Logikschaltung431 führt eine Maskierungsoperation an den Daten durch, indem sie ein erstes Muster MASK1 (M1) verwendet, und speichert die Ausgabe in einem Register432 . in gleicher Weise führt die XOR-Logikschaltung441 eine Maskierungsoperation an den Daten durch, indem sie ein zweites Muster MASK2 (M2) verwendet, und speichert die Ausgabe in einem Register442 . Obwohl eine exklusive ODER-Logikoperation als die Maskierungsoperation der Blöcke431 und441 in7 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 Ausgang460 , und die Logikschaltung440 liefert Eingabedaten XOR M2 an den Ausgang470 . Die Ausgaben werden an Register451 bzw.452 der Logikschaltung450 geliefert. Die Logikschaltung450 umfasst weiterhin XOR-Logikschaltungen453 und454 . Die XOR-Logikschaltung453 wird dazu verwendet, die ursprünglichen Eingabedaten zurück zu gewinnen, indem eine Maskierungsoperation an dem Inhalt des Registers451 unter Verwendung des ersten Musters MASK1 (M1) durchgeführt wird. Die Ausgabe der XOR-Logikschaltung453 ist durch die folgende Gleichung gegeben: Eingabedaten XOR M1 XOR M1 = Eingabedaten. Somit werden die Eingabedaten in dem Speicher420 gespeichert. - Die XOR-Logikschaltung
454 führt eine Maskierungsoperation an dem Inhalt des Registers452 unter Verwendung des Inhalts des Registers451 durch. Die Ausgabe der XOR-Logikschaltung454 ist durch die folgende Gleichung gegeben: Eingabedaten XOR M1 XOR Eingabedaten XOR M2 = M1 XOR M2. Eine Fehlererkennungsschaltung455 kann die Ausgabe der XOR-Logikschaltung454 mit dem bekannten Ergebnis von M1 XOR M2 vergleichen. Wenn die Ausgabe der XOR-Logikschaltung454 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 in7 gezeigt, illustriert8 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 bis6 mit den Ausgestaltungen der Fehlererkennungsschaltung gemäß den7 und8 kombiniert werden. Bezugnehmend auf9 ist ein kryptographisches System dargestellt, das eine Fehlererkennungsschaltung gemäß einigen Ausgestaltungen der vorliegenden Erfindung umfasst. Das kryptographische System in9 umfasst gemäß einigen Ausgestaltungen der vorliegenden Erfindung eine CPU510 , eine kryptographische Schaltung530 , einen Schlüsselverteiler540 , eine Fehlererkennungsschaltung550 und einen Speicher520 , die in der dargestellten Weise ausgebildet sind. Die kryptographische Schaltung530 kann als ein Coprozessor der CPU510 ausgestaltet sein. Die CPU510 und die kryptographische Schaltung530 können untereinander Daten- und Adressinformationen austauschen. In anderen Ausgestaltungen können die CPU510 und die kryptographische Schaltung530 in einer einzelnen Logikeinheit verkörpert sein, wie sie weiter oben anhand der6 erläutert wurde. Die Architektur und die Operationen der Verschlüsselungsschaltungen531 und532 entsprechen im Wesentlichen der Architektur und den Operationen der Verschlüsselungsschaltung131 in2 mit Ausnahme des Designs der S-Box-Schaltung. In gleicher Weise entsprechen die Architektur und die Operationen der Entschlüsselungsschaltung533 im Wesentlichen der Architektur und den Operationen der Entschlüsselungsschaltung132 in2 , mit Ausnahme des Designs der inversen S-Box-Schaltung. - Wie in
9 gezeigt, erzeugt die kryptographische Schaltung530 verschlüsselte Daten XOR MASK1 (M1) am Ausgang560 und verschlüsselte Daten XOR MASK2 (M2) am Ausgang570 . Die Architektur und die Operationen der Fehlererkennungsschaltung550 entsprechen denjenigen der Logikschaltungen450 und450' der Fehlererkennungsschaltungen gemäß7 bzw.8 . - Bezugnehmend auf
10 wird eine Verschlüsselungslogikschaltung beschrieben, die in den Verschlüsselungsschaltungen531 und/oder532 in9 gemäß einigen Ausgestaltungen der vorliegenden Erfindung eingesetzt werden kann. Aus Gründen der Darstellung wird die Verschlüsselungslogikschaltung in10 unter Bezugnahme auf eine Implementierung der Verschlüsselungsschaltung531 beschrieben. Die Erstrunden- und Zweitrunden-Logikschaltungen610 und620 entsprechen im Wesentlichen den Erstrunden- und Zweitrunden-Logikschaltungen210 und220 , die weiter oben unter Bezugnahme auf3 erläutert wurden. Die Unterkomponenten der Erstrunden- und Zweitrunden-Logikschaltungen610 und620 sind entsprechend den Unterkomponenten der Erstrunden- und Zweitrunden-Logikschaltungen210 und220 bezeichnet. Im Gegensatz zu der Verschlüsselungslogikschaltung in3 weichen die S-Box-Schaltungen614 ,615 ,624 und625 jedoch von den entsprechenden S-Box-Schaltungen in3 ab. Dies ergibt sich dadurch, dass die Eingabe für die Erstrunden-Logikschaltung610 nicht lediglich Eingabedaten sind, sondern Eingabedaten, auf welche die XOR-Logikschaltung605 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üsselungsschaltung533 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üsselungsschaltung531 die verschlüsselten Daten XOR M1 darstellt, erfüllt die neue S1-Schaltung614 ,624 die folgende Gleichung:S1'(D XOR M1 XOR A XOR K) = S1(D XOR A XOR K) XOR P-1(M1); 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); 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-Schaltung615 ,625 wie folgt geschrieben werden:S1'(i XOR M1) = S1(i) XOR P-1(M1); 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)), P(S1(i) XOR P-1(M1) ∥ S2(i) XOR P-1(M1)) = P((S1(i) ∥ S2(i)) XOR P-1(M1)), 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üsselungsschaltung132 in2 , der Verschlüsselungsschaltung131' und der Entschlüsselungsschaltung132' in6 , der Logikschaltungen430 ,440 und450 in7 , der Logikschaltungen430' ,440' und450' in8 und der Verschlüsselungsschaltungen531 ,532 , Entschlüsselungsschaltung533 und Fehlererkennungsschaltung550 in9 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)
- 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. - 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. - 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.
- 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. - Kryptographisches System nach Anspruch 4, dadurch gekennzeichnet, dass die Permutationsschaltung dazu ausgebildet ist, eine lineare Funktion an der transformierten zweiten Ausgabe durchzuführen.
- Kryptographisches System nach Anspruch 5, dadurch gekennzeichnet, dass die lineare Funktion eine Verschiebefunktion oder eine lineare Transformation von Bits der zweiten Ausgabe ist.
- 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. - Kryptographisches System nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Eingabedaten wenigstens ein Byte an Daten umfassen.
- 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. - 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. - 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. - 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.
- 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.
- 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.
- 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.
- 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.
- 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. - 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. - 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. - 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.
- 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. - 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); - 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. - 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. - 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); - 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. - 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. - 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. - 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.
- 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. - 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); - 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. - 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. - 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); - 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. - Kryptographisches System nach einem der Ansprüche 17 bis 35, dadurch gekennzeichnet, dass die Eingabedaten wenigstens eine Byte an Daten umfassen.
- 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.
- 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.
- 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.
- 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.
- 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. - 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); - 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.
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)
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)
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)
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 |
-
2007
- 2007-06-05 DE DE102007026977A patent/DE102007026977B4/de active Active
- 2007-06-07 JP JP2007151965A patent/JP2007328789A/ja active Pending
- 2007-06-07 GB GB0710989A patent/GB2438972B/en active Active
- 2007-06-07 FR FR0755535A patent/FR2902252A1/fr not_active Withdrawn
- 2007-11-06 FR FR0707792A patent/FR2906665A1/fr not_active Withdrawn
Patent Citations (4)
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 |