DE10253285B4 - Verschleierung eines geheimen Wertes - Google Patents

Verschleierung eines geheimen Wertes Download PDF

Info

Publication number
DE10253285B4
DE10253285B4 DE10253285.0A DE10253285A DE10253285B4 DE 10253285 B4 DE10253285 B4 DE 10253285B4 DE 10253285 A DE10253285 A DE 10253285A DE 10253285 B4 DE10253285 B4 DE 10253285B4
Authority
DE
Germany
Prior art keywords
value
partial
values
secret
secret value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10253285.0A
Other languages
English (en)
Other versions
DE10253285A1 (de
Inventor
Dr. Kahl Helmut
Dr. Bockes Markus
Dr. Pulkus Jürgen
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.)
Giesecke and Devrient Mobile Security GmbH
Original Assignee
Giesecke and Devrient Mobile Security GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient Mobile Security GmbH filed Critical Giesecke and Devrient Mobile Security GmbH
Priority to DE10253285.0A priority Critical patent/DE10253285B4/de
Publication of DE10253285A1 publication Critical patent/DE10253285A1/de
Application granted granted Critical
Publication of DE10253285B4 publication Critical patent/DE10253285B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7252Randomisation as countermeasure against side channel attacks of operation order, e.g. starting to treat the exponent at a random place, or in a randomly chosen direction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum verschleierten Speichern eines geheimen Wertes (K), mit den Schritten: - Umwandeln des geheimen Wertes (K) in mindestens zwei Teilwerte (K1, K2), wobei der erste Teilwert (K1) von dem ganzzahligen Quotienten und der zweite Teilwert (K2) von dem Rest einer Division abhängen, deren Dividend von dem zu verschleiernden Wert (K) abhängt und deren Divisor von einem Verschleierungsparameter (S) abhängt, so daß der geheime Wert (K) aus den Teilwerten (K1, K2) und dem Verschleierungsparameter (S) ermittelbar ist, und - Veranlassen des Speicherns der Teilwerte (K1, K2) in einem nichtflüchtigen Speicher (22) eines tragbaren Datenträgers (10), dadurch gekennzeichnet, daß der geheime Wert (K) einen vorbestimmten, mehrfach unterbrochenen Wertebereich aufweist, und daß diese Eigenschaft des geheimen Wertes (K) beim Berechnen mindestens eines der Teilwerte (K1, K2) ausgenutzt wird, um die maximale Bitlänge (M-L, L) mindestens eines der berechneten Teilwerte (K1, K2) zu reduzieren.

Description

  • Die Erfindung betrifft allgemein das verschleierte Speichern eines geheimen Wertes bzw. das Ausführen einer kryptographischen Berechnung unter Verwendung des verschleiert gespeicherten geheimen Wertes. Insbesondere ist die Erfindung zum Einsatz in tragbaren Datenträgern vorgesehen, die z.B. als Chipkarten (smart cards) in unterschiedlichen Bauformen oder als Chipmodule ausgestaltet sein können.
  • In tragbaren Datenträgern werden oft geheime Werte, insbesondere Schlüssel für kryptographische Berechnungen, gespeichert. Diese geheimen Werte müssen zuverlässig vor Ausspähung geschützt werden. Da tragbare Datenträger in der Regel für sicherheitskritische Anwendungen - z.B. Finanztransaktionen oder die Signatur von rechtlich bindenden Dokumenten - eingesetzt werden, könnte sich ein Angreifer bei Kenntnis des geheimen Wertes erhebliche Vorteile verschaffen. Ferner befindet sich der tragbare Datenträger typischerweise im Besitz des potenziellen Angreifers, so daß dieser alle Möglichkeiten zum Beeinflussen der kryptographischen Berechnung und zum Ausspähen der Berechnungsergebnisse hat.
  • In Kapitel 8.2.4 des Buches „Handbuch der Chipkarten“ von W. Rankl und W. Effing, 3. Auflage, Hanser-Verlag,1999, Seiten 480 - 519 sind diverse mechanische, elektrische und softwaretechnische Schutzmaßnahmen für tragbare Datenträger genannt, die unter anderem ein Ausspähen von geheimen Werten verhindern sollen. Diese Maßnahmen bieten bereits ein beträchtliches Maß an Sicherheit; sie können jedoch nach wie vor umgangen werden.
  • Der Bericht „Differential fault analysis of secret key cryptosystems“ von E. Biham und A. Shamir, Technion - Israel Institute of Technology, Technical Report CS0910, 1997, verfügbar unter http://www.cs.technion.ac.il/~biham, beschreibt ein Verfahren zum Ausspähen von geheimen Werten, das als differenzielle Fehleranalyse (Differential Fault Analysis - DFA) bekanntgeworden ist. Hierbei werden durch gezielte Belastung des Datenträgers - beispielsweise mittels elektrischer Impulse oder durch Strahlungseinwirkung - Fehler bei der Ausführung von kryptographischen Berechnungen hervorgerufen. Aus den Ergebnissen einer Mehrzahl solcher fehlerhafter Berechnungen können Rückschlüsse auf die Berechnungsabläufe und auf geheime Werte, die als Schlüssel für die Berechnungen dienen, gezogen werden.
  • Nach einem zumindest internen Stand der Technik der Anmelderin werden zum Schutz des symmetrischen DES-Verschlüsselungsverfahrens gegen DFA-Angriffe geheime Schlüssel verschleiert im Datenträger gespeichert. Dabei werden die geheimen Schlüssel während der Initialisierung oder Personalisierung des Datenträgers durch eine Exklusiv-Oder-Operation (XOR) mit einem zusätzlichen Verschleierungsparameter verknüpft. Der DES-Algorithmus ist so angepaßt, daß er nicht unmittelbar mit dem geheimen Schlüssel, sondern vielmehr mit dem verschleierten Schlüsselwert und dem Verschleierungsparameter arbeitet.
  • Das gerade genannte Verfahren hat jedoch den Nachteil, daß der Verschleierungsparameter dieselbe Länge wie der zu verschleiernde Wert aufweist. Insbesondere bei asymmetrischen Verschlüsselungsverfahren wie z.B. dem RSA-Verfahren mit großen Schlüssellängen verursacht dies einen erheblichen Speicherplatzbedarf. Überdies ist den Erfindern gegenwärtig kein Weg bekannt, wie ein durch eine XOR-Operation verschleierter Schlüsselwert ohne vorheriges Rückgängigmachen der Verschleierung für eine RSA-Signaturerzeugung verwendet werden könnte.
  • Aus der internationalen Offenlegungsschrift WO 01/48974 A1 ist ein tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung bekannt. Im Zuge einer kryptographischen Berechnung berechnet ein Prozessor des Datenträgers zunächst eine Zufallszahl und dividiert dann einen geheimzuhaltenden Wert durch die Zufallszahl. Bei diesen Schritten wird der Inhalt des nicht-flüchtigen Speichers des Datenträgers nicht verändert. Der Quotient und der Divisionsrest werden in zwei voneinander getrennten Teilschritten einer folgenden RSA-Berechnung verwendet.
  • Das aus der WO 01/48974 A1 bekannte Verfahren ist nicht zum verschleierten Speichern eines geheimen Wertes in dem nicht-flüchtigen Speicher des tragbaren Datenträgers vorgesehen. Ferner bietet das Verfahren lediglich Schutz gegen Angriffe durch differenzielle Leistungsanalyse (Differential Power Analysis - DPA). Gegen einen DFA-Angriff ist das Verfahren nicht wirksam. Das Dokument EP 1 217 783 B9 aus dem Stand der Technik offenbart ein Verfahren zur Verschleierung von geheimen Werten, bei welchem Schlüsselinformation eines geheimen (privaten) Schlüssels in mehrere nicht veränderbare („fixed“) partielle Schlüsselinformationen aufgeteilt ist und dadurch verschleiert ist.
  • Die Erfindung hat die Aufgabe, die oben genannten Probleme zumindest zum Teil zu vermeiden und eine Technik zum besonders guten Schutz geheimer Werte in einem tragbaren Datenträger bereitzustellen. Insbesondere sollen DFA-Angriffe und auf ähnlichen Prinzipien beruhende Angriffe verhindert werden. In bevorzugten Ausgestaltungen soll der erfindungsgemäße Schutz wenig Speicherplatz beanspruchen, insbesondere keinen zusätzlichen Speicherplatz in vorgegebenen Datenfeldern, die für geheime Schlüssel oder Komponenten von geheimen Schlüsseln vorgesehen sind.
  • Erfindungsgemäß wird diese Aufgabe ganz oder zum Teil gelöst durch ein Verfahren zum verschleierten Speichern eines geheimen Wertes mit den Merkmalen des Anspruchs 1, ein Verfahren zum Ausführen einer kryptographischen Berechnung nach Anspruch 8, eine programmgesteuerte Vorrichtung gemäß Anspruch 10 und ein Computerprogrammprodukt gemäß Anspruch 11. Die abhängigen Ansprüche definieren bevorzugte Ausgestaltungen der Erfindung. Die Aufzählungsreihenfolge der Verfahrensschritte in den Ansprüchen soll nicht als Ein schränkung des Schutzbereichs aufgefaßt werden; es sind vielmehr Ausgestaltungen der Erfindung vorgesehen, bei denen diese Verfahrensschritte ganz oder teilweise in anderer Reihenfolge oder ganz oder teilweise parallel oder ganz oder teilweise ineinander verzahnt (interleaved) ausgeführt werden. Insbesondere ist eine derartige ineinander verzahnte Ausführung für die Schritte des Berechnens und des Speicherns der einzelnen Teilwerte möglich.
  • Die Erfindung geht von der Grundidee aus, den geheimen Wert in mindestens zwei Teilwerte umzuwandeln, wobei eine Division mit Rest durchgeführt wird, deren Dividend von dem geheimen Wert und deren Divisor von einem zusätzlichen Verschleierungsparameter abhängt. Der erste und der zweite Teilwert werden in Abhängigkeit von dem ganzzahligen Quotienten beziehungsweise dem Rest der Division bestimmt. Im hier verwendeten Sprachgebrauch ist eine Abhängigkeit zwischen zwei Werten insbesondere dann gegeben, wenn die beiden Werte entweder gleich sind oder wenn sich der eine Wert durch einen - vorzugsweise einfachen - Berechnungsvorgang in den anderen Wert überführen läßt. Der geheime Wert weist dabei einen vorbestimmten, mehrfach unterbrochenen Wertebereich auf. Diese Eigenschaft des geheimen Wertes wird beim Berechnen mindestens eines der Teilwerte ausgenutzt, um die maximale Bitlänge mindestens eines der berechneten Teilwerte zu reduzieren.
  • Die Erfindung stellt eine Vorgehensweise zur Verschleierung von geheimen Werten bereit, die eine Ausspähung zuverlässig verhindert und die im Hinblick auf den Bedarf an Speicherplatz und Rechenleistung besonders vorteilhaft ist. Zusätzlicher Speicherplatz wird lediglich für den Verschleierungsparameter benötigt. Letzterer ist aber in der Regel deutlich kürzer als der zu verschleiernde Wert. Insbesondere in bevorzugten Ausführungsformen, bei denen der Verschleierungsparameter zur Verschleierung von mehreren geheimen Werten dient - wobei im Extremfall ein einziger Verschleierungsparameter während der gesamten Lebensdauer des Datenträgers verwendet wird - fällt dieser zusätzliche Speicherplatz nicht ins Gewicht.
  • Erfindungsgemäß ist vorgesehen, daß das Speichern der berechneten Teilwerte - und vorzugsweise auch des Verschleierungsparameters - in einem nicht-flüchtigen Speicher des tragbaren Datenträgers veranlaßt wird. Der Begriff „veranlassen“ ist hierbei im weitesten Sinne zu verstehen. Er umfaßt insbesondere jede Aktion, die bei einem üblichen Verfahrensfortgang das Einspeichern der berechneten Teilwerte in den nicht-flüchtigen Speicher unmittelbar oder mittelbar zur Folge hat. So wird beispielsweise das Einschreiben der berechneten Teilwerte in eine Datei schon als ein Veranlassen der Speicherung im hier verwendeten Sinne erachtet, wenn die Datei dazu vorgesehen ist, von einer Initialisierungs- und/oder Personalisierungsvorrichtung derart ausgewertet zu werden, daß die in der Datei enthaltenen Teilwerte im Zuge der Initialisierung und/oder Personalisierung des Datenträgers an diesen übertragen und in dessen nicht-flüchtigen Speicher eingeschrieben werden.
  • Erfindungsgemäß ist der geheime Wert aus den Teilwerten und dem Verschleierungsparameter ermittelbar. Dies heißt jedoch nicht notwendigerweise, daß eine tatsächliche Rekonstruktion des geheimen Wertes stattfindet. Vielmehr ist bei dem erfindungsgemäßen Verfahren zum Ausführen einer kryptographischen Berechnung vorgesehen, eine in der kryptographischen Berechnung eigentlich vorgesehene Operation, die von dem geheimen Wert abhängt, in mindestens zwei Teilberechnungen aufzuspalten, bei denen jeweils nur ein Teilwert herangezogen wird. Auf diese Weise kann die kryptographische Berechnung nur auf Grundlage der einzelnen Teilwerte - und gegebenenfalls des Verschleierungsparameters - ausgeführt werden, ohne daß der geheime Wert im Klartext rekonstruiert werden muß. Die kryptographische Berechnung kann in diesem Zusammenhang insbesondere eine Entschlüsselung oder Signaturerzeugung bei einem asymmetrischen Verschlüsselungsverfahren sein, z.B. dem RSA-Verfahren oder der als „RSA-CRT-Verfahren“ bezeichneten Variante des RSA-Verfahrens, welche den Chinesischen Restklassensatz (Chinese Remainder Theorem) verwendet.
  • In besonders bevorzugten Ausgestaltungen der Erfindung ist sichergestellt, daß alle Teilwerte zusammen in einem Datenfeld gespeichert werden können, das von seiner Dimensionierung her auch für die Aufnahme des geheimen Wertes geeignet wäre. Insbesondere kann dies ein Datenfeld sein, das für einen geheimen Schlüssel oder eine Komponente davon vorgesehen ist. Die hier beschriebene Technik kann dann problemlos in bestehende Datenstrukturen integriert werden.
  • Um eine solche kompakte Speicherung der Teilwerte zu ermöglichen, können Redundanzen ausgenutzt werden, die sich daraus ergeben, daß der geheime Wert innerhalb des Bereichs aller möglichen Binärwörter bis zur maximalen Bitlänge nur einen vorbestimmten, mehrfach unterbrochenen Wertebereich aufweist. Beispielsweise kann dieser Wertebereich dadurch definiert sein, daß die zulässigen Werte des geheimen Wertes entweder alle gerade oder alle ungerade sind. Dies wird im vorliegenden Dokument als eine gerade bzw. ungerade Parität des geheimen Wertes bezeichnet. Wenn geeignete Redundanzen vorliegen, kann im Berechnungsverlauf ohne Informationsverlust mindestens ein Bit weggelassen werden. Dies kann auch indirekt dadurch geschehen, daß einem Divisor Bits hinzugefügt werden.
  • Die erfindungsgemäße programmgesteuerte Vorrichtung kann beispielsweise ein tragbarer Datenträger - z.B. eine Chipkarte oder ein Chipmodul - sein.
  • Dies ist insbesondere dann der Fall, wenn die Vorrichtung zum Ausführen einer kryptographischen Berechnung unter Verwendung von verschleiert gespeicherten Schlüsselwerten dient oder wenn der Datenträger mit einer Funktionalität zur Erzeugung geheimer Schlüssel ausgestattet ist. In weiteren Ausgestaltungen ist die programmgesteuerte Vorrichtung eine Initialisierungs- und/oder Personalisierungsvorrichtung für tragbare Datenträger oder ein externer Computer, der Initialisierungs- und/ oder Personalisierungsdaten erzeugt.
  • Das erfindungsgemäße Computerprogrammprodukt weist Programmbefehle auf, um das erfindungsgemäße Verfahren zu implementieren. Ein derartiges Computerprogrammprodukt kann ein körperliches Medium sein, beispielsweise ein Halbleiterspeicher oder eine Diskette oder eine CD-ROM, auf dem ein Programm zur Ausführung eines erfindungsgemäßen Verfahrens gespeichert ist. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, beispielsweise ein über ein Computernetzwerk übermitteltes Signal. Das Computerprogrammprodukt kann insbesondere zur Verwendung im Zusammenhang mit der Herstellung und/ oder Initialisierung und/ oder Personalisierung von Chipkarten oder sonstigen Datenträgern vorgesehen sein.
  • In bevorzugten Ausgestaltungen sind die programmgesteuerte Vorrichtung und/oder das Computerprogrammprodukt mit Merkmalen weitergebildet, die den oben beschriebenen und/ oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.
  • Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden genauen Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen hervor. Es wird auf die schematischen Zeichnungen verwiesen, in denen zeigen:
    • 1 ein Blockdiagramm eines tragbaren Datenträgers, der Daten von einem externen Computer erhält,
    • 2 ein beispielhaftes Flußdiagramm eines Verfahrens zum verschleierten Speichern eines geheimen Wertes in einem ersten Ausführungsbeispiel der Erfindung,
    • 3 ein beispielhaftes Flußdiagramm wie in 2 in einem zweiten Ausführungsbeispiel der Erfindung, und
    • 4 ein beispielhaftes Flußdiagramm wie in 2 in einem dritten Ausführungsbeispiel der Erfindung.
  • In 1 ist ein tragbarer Datenträger 10 gezeigt, der beispielsweise als Chipkarte oder Chipmodul ausgebildet ist. In an sich bekannter Weise enthält der Datenträger 10 einen Halbleiterchip, auf dem ein Prozessor 12, ein Speicher 14 und eine Schnittstelle 16 zur drahtgebundenen oder drahtlosen Kommunikation ausgebildet sind. Der Speicher 14 weist mehrere unterschiedliche Bereiche auf, nämlich im vorliegenden Ausführungsbeispiel einen als maskenprogrammiertes ROM ausgestalteten Festwertspeicher 18, einen als RAM ausgestalteten Arbeitsspeicher 20 und einen als EEPROM oder FLASH-Speicher ausgestalteten nichtflüchtigen Speicher 22 .
  • In an sich bekannter Weise enthält der Festwertspeicher 18 wesentliche Teile des Betriebssystems des Datenträgers 10 und der von diesem Betriebssystem ausgeführten Programme. Der Arbeitsspeicher 20 dient zur temporären Aufnahme von Werten während Berechnungsvorgängen. Im nicht-flüchtigen Speicher 22 befinden sich ein Dateisystem, auf das die Programme zugreifen, und eine Vielzahl von weiteren, von dem Betriebssystem verwalteten Daten.
  • In 1 ist beispielhaft ein geheimer Schlüssel 24 gezeigt, der im nichtflüchtigen Speicher 22 in einer Datei des Dateisystems enthalten ist. Der geheime Schlüssel 24 dient im vorliegenden Ausführungsbeispiel für eine RSA-CRT-Berechnung. Er weist daher fünf Datenfelder für zwei geheime Primfaktoren, das Inverse des einen Primfaktors modulo des anderen Primfaktors und zwei CRT-Exponenten auf. Zumindest ein Teil dieser Werte wird zum Ausspähungsschutz verschleiert gespeichert. In 1 ist beispielhaft ein Datenfeld für eine Komponente des geheimen Schlüssels 24 mit dem Bezugszeichen 26 versehen. Die Ausführungsbeispiele der Erfindung werden im folgenden anhand dieses Datenfelds 26 und eines darin verschleiert zu speichernden, geheimen Wertes K beschrieben. Es versteht sich jedoch, daß auch die anderen Datenfelder des geheimen Schlüssels 24 - und gegebenenfalls weitere Datenfelder im nicht-flüchtigen Speicher 22 - auf entsprechende Weise mit verschleierten Werten belegt werden können.
  • Der nicht-flüchtige Speicher 22 weist ferner ein Datenfeld 28 für einen Verschleierungsparameter S auf. Dieses Datenfeld 28 kann in unterschiedlichen Ausgestaltungen entweder in einer über das Dateisystem zugänglichen Datei oder in einem für das Betriebssystem reservierten Bereich des nichtflüchtigen Speichers 22 angeordnet sein. Die Anzahl der im Datenfeld 28 vorhandenen Speicherbits wird mit L bezeichnet; im vorliegenden Ausführungsbeispiel sind dies L = 64 Bits. Die Bitanzahl L ist deutlich kleiner als die Bitanzahl M des Datenfeldes 26, welche zum Beispiel M = 768 Bits oder M = 1024 Bits betragen kann. Daher fällt der für den Verschleierungsparameter S benötigte Speicherplatz kaum ins Gewicht. Dies gilt insbesondere für Ausgestaltungen wie die vorliegend beschriebene, bei der ein einziger Verschleierungsparameter S zur Verschleierung einer Mehrzahl von geheimen Werten - beispielsweise zur Verschleierung aller fünf oder eines Teils der fünf Komponenten des geheimen Schlüssels 24 - eingesetzt wird.
  • Das Datenfeld 26 ist so dimensioniert, daß es auch den unverschleierten geheimen Wert K aufnehmen könnte, der eine maximale Bitlänge M aufweist. Gemäß den hier beschriebenen Ausführungsbeispielen wird jedoch im Datenfeld 26 nicht der Wert K gespeichert, sondern zwei Teilwerte K1 und K2. Die Teilwerte K1 und K2 sind aus dem Wert K unter Verwendung des Verschleierungsparameters S derart berechnet worden, daß sich aus ihnen und dem Verschleierungsparameter S der ursprüngliche Wert K rekonstruieren läßt. Tatsächlich erfolgt eine solche Rekonstruktion in den vorliegend beschriebenen Ausführungsbeispielen nicht unmittelbar; es sind viel mehr die vom Datenträger 10 durchgeführten Berechnungsabläufe so angepaßt, daß sie statt des geheimen Wertes K die beiden Teilwerte K1 und K2 - gegebenenfalls in Verbindung mit dem Verschleierungsparameter S - verwenden.
  • Die Teilwerte K1 und K2 weisen zusammen eine Bitlänge von höchstens M Bits auf, so daß diese Teilwerte K1, K2 in das ursprünglich für den geheimen Wert K vorgesehene Datenfeld 26 passen. Dies stellt einen beträchtlichen Vorteil der hier beschriebenen Ausführungsbeispiele dar, weil vorgegebene Datenstrukturen unverändert weiterverwendet werden können. In den hier beschriebenen Ausführungsbeispielen hat der zweite Teilwert K2 eine maximale Bitlänge L, die identisch mit der maximalen Bitlänge L des Verschleierungsparameters S ist. Die maximale Bitlänge des ersten Teilwerts K1 beträgt demgemäß M-L. Es sind jedoch auch Ausführungsalternativen vorgesehen, bei denen die Teilwerte K1, K2 andere Bitlängen aufweisen.
  • Die hier beschriebenen Ausführungsbeispiele beruhen auf der Grundüberlegung, daß die Teilwerte K1 und K2 vom Quotient beziehungsweise Rest einer Division abgeleitet sind, deren Dividend von dem geheimen Wert K und deren Divisor von dem Verschleierungsparameter S abhängt. Dabei ist jedoch zu berücksichtigen, daß bei einer einfachen Division K/S die Bitlängen des Quotienten und des Restes zusammen möglicherweise die maximale Bitlänge M überschreiten würden. Durch die im folgenden noch genauer beschriebenen Techniken wird jedoch eine solche Situation vermieden. Diese Techniken gehen von der Voraussetzung aus, daß der geheime Wert K eine vorgegebene, feste Parität hat. Beispielsweise ist für die hier beschriebene Anwendung, bei der der geheime Wert K ein Parameter eines geheimen RSA-CRT-Schlüssels ist, jede Schlüsselkomponente stets eine ungerade Zahl. Somit ist der Wert des geringstwertigen Bits (LSB) jeder Schlüsselkomponente - nämlich der Wert „1“ - bekannt. Diese Tatsache wird in den hier beschriebenen Ausführungsbeispielen genutzt, um sicherzustellen, daß die Bitlängensumme der Teilwerte K1 und K2 höchstens den Wert M aufweist.
  • Gemäß der Darstellung von 1 dient ein externer Rechner 30 zum Bestimmen des Verschleierungsparameers S und zum Umsetzen des geheimen Wertes K in die Teilwerte K1 und K2. Der externe Rechner 30 kann beispielsweise Bestandteil einer Initialisierungs- und/ oder Personalisierungsvorrichtung für den Datenträger 10 sein, oder die Werte S, K1 und K2 werden von dem externen Rechner 30 berechnet und dann an eine Inititalisierungs- und/-oder Personalisierungsvorrichtung weitergegeben. Alternativ oder zusätzlich kann der tragbare Datenträger 10 auch dazu ausgelegt sein, selbst ein Verfahren zur Berechnung der Teilwerte K1 und K2 durchzuführen. Dies ist insbesondere dann sinnvoll, wenn der Datenträger 10 mit einer Funktionalität zur Erzeugung von geheimen Schlüsseln ausgestattet ist. In diesem Fall kann der Datenträger 10 in unterschiedlichen Ausgestaltungen entweder mindestens einen eigenen Verschleierungsparameter S erzeugen oder den oder die während der Initialisierung und/ oder Personalisierung übertragenen Verschleierungsparameter S verwenden.
  • 2 zeigt ein erstes Ausführungsbeispiel des von dem externen Rechner 30 oder dem tragbaren Datenträger 10 ausgeführten Verfahrens zur verschleierten Speicherung des geheimen Wertes K. Die vorab feststehende Parität des Wertes K wird mit B bezeichnet. Es gilt B = 0 für einen geraden Wert K und B = 1 für einen ungeraden Wert K; insgesamt also B = (K mod 2).
  • In Schritt 40 wird der für den Verschleierungsvorgang anzuwendende Verschleierungsparameter S bestimmt. Der Verschleierungsparameter S ist eine Zahl der Bitlänge L, deren höchstwertiges Bit (MSB) im vorliegenden Ausführungsbeispiel den Wert „1“ haben muß. Wenn der anzuwendende Verschleierungsparameter S bereits aus einem früheren Verschleierungsvorgang vorliegt, besteht Schritt 40 lediglich in einem Zugriff auf diesen bereits vorliegenden Wert; andernfalls wird der Verschleierungsparameter S als Zufallszahl bestimmt, die die gerade genannten Eigenschaften aufweist.
  • In Schritt 42 wird ein Hilfswert C gebildet, indem der geheime Wert K unter Weglassung seines geringstwertigen Bits um eine Bitposition nach rechts verschoben wird. Eine derartige Verschiebung läßt sich beispielsweise durch eine Ganzzahl-Division des geheimen Wertes K durch den Divisor 2 erreichen.
  • Schritt 44 betrifft den eigentlichen Verschleierungsvorgang, bei dem der von dem geheimen Wert K abhängige Hilfswert C mit Rest durch den Verschleierungsparameter S geteilt wird. Der ganzzahlige Quotient bildet den ersten Teilwert K1, und der Divisionsrest bildet den zweiten Teilwert K2. Die Teilwerte K1 und K2 weisen maximale Bitlängen M-L beziehungsweise L auf.
  • In Schritt 46 wird der zweite Teilwert K2, falls erforderlich, durch das Voranstellen von Bits mit dem Wert „0“ ergänzt, bis die Bitlänge des ergänzten zweiten Teilwerts K2 genau L beträgt. Dann wird in Schritt 48 die Konkatenation (Zusammenfügung) des ersten Teilwerts K1 und des bis zur Bitlänge L ergänzten zweiten Teilwerts K2 gebildet; diese Konkatenation wird vorliegend durch „K1 | K2“ bezeichnet. Die Bitlänge der beiden zusammengefügten Teilwerte K1 | K2 beträgt maximal M Bits. Daher passen die beiden zusammengefügten Teilwerte K1 | K2 in das Datenfeld 26 im nicht-flüchtigen Speicher 22 .
  • In Schritt 50 wird das Einspeichern der zusammengefügten Teilwerte K1 | K2 in das Datenfeld 26 unmittelbar oder mittelbar veranlaßt. Wenn das Verfahren von dem externen Rechner 30 ausgeführt wird, kann Schritt 50 darin bestehen, daß im Zuge der Initialisierung und/ oder Personalisierung des Datenträgers 10 ein geeigneter Datensatz, der die Teilwerte K1 | K2 enthält, an den Datenträger 10 übertragen wird. Ist der externe Rechner 30 nicht Bestandteil der Initialisierungs- und/ oder Personalisierungsvorrichtung, so wird Schritt 50 bereits dadurch ausgeführt, daß der externe Rechner 30 einen geeigneten Datensatz, der die Teilwerte K1 | K2 enthält, zur alsbaldigen oder späteren Verwendung durch die Initialisierungs- und/ oder Personalisierungsvorrichtung erzeugt. Wenn das Verfahren gemäß 2 von dem tragbaren Datenträger 10 selbst ausgeführt wird, dann beinhaltet Schritt 50 in der Regel das eigentliche Einschreiben der Teilwerte K1 | K2 in das Datenfeld 26 des nicht-flüchtigen Speichers 22 .
  • Als Ergebnis des Verfahrens von 2 ist der geheime Wert K durch die Teilwerte K1 | K2 in verschleierter Form gespeichert worden. Bei Kenntnis der Teilwerte K1 | K2 und des Verschleierungsparameters S ist der geheime Wert K leicht durch Auswerten der folgenden Beziehung ermittelbar: K = 2·(K1 · S + K2) + B (*)
  • Wenn der Datenträger 10 eine kryptographische Berechnung ausführt - im vorliegenden Fall beispielsweise eine Entschlüsselung oder Signaturerzeugung nach dem RSA-CRT-Verfahren - erfolgt vorzugsweise keine unmittelbare Rekonstruktion des geheimen Wertes K durch Auswertung der obigen Formel (*), weil dann der geheime Wert K im Klartext vorliegen würde und somit ausspähungsgefährdet wäre. Vielmehr wird das kryptographische Berechnungsverfahren so abgewandelt, daß es statt des geheimen Wertes K die einzelnen Teilwerte K1 und K2 - gegebenenfalls in Kombination mit dem Verschleierungsparameter S - in voneinander getrennten Teilberechnungen verwendet. Eine solche Anpassung an sich bekannter kryptographischer Verfahren an die vorliegende Verschleierungstechnik ist für den Fachmann insbesondere aufgrund der Einfachheit der oben genannten Beziehung (*) leicht möglich.
  • Die in 3 dargestellte Ausführungsvariante ist im wesentlichen äquivalent zu dem Ausführungsbeispiel von 2. Gemäß 3 wird in Schritt 60 der Verschleierungsparameter S als gerade Zahl mit der Bitlänge L bestimmt, wobei führende Bits mit den Werten „0“ im vorliegenden Fall zulässig sind.
  • In Schritt 62 werden die Teilwerte K1 und K2 als Quotient beziehungsweise Rest einer Division berechnet, deren Dividend der geheime Wert K und deren Divisor der Verschleierungsparameter mit einem vorangestellten Bit mit dem Wert „1“ ist. Durch diese Maßnahme wird sichergestellt, daß der Quotient höchstens die Bitlänge M-L aufweist. Da die Bitlänge des Divisionsrests K2 möglicherweise größer als L ist, wird der Divisionsrest in Schritt 64 um eine Stelle nach rechts geschoben, also ganzzahlig durch den Wert 2 dividiert. Dies ist ohne Informationsverlust möglich, da die Parität des Divisionsrests gleich der - vorgegebenen - Parität des geheimen Wertes K ist.
  • Die folgenden Schritte 66 bis 70 entsprechen den bereits im Zusammenhang mit 2 beschriebenen Schritten 46 bis 50.
  • Als Ergebnis des in 3 gezeigten Verfahrens ist wiederum die Speicherung der Teilwerte K1 | K2 im Datenfeld 26 veranlaßt worden. Die Beziehung zwischen dem geheimen Wert K und den Werten K1, K2 und S ergibt sich hier vermöge der Gleichung: K = K1 · (1|S) + 2·K2 + B
  • Wiederum wird diese Gleichung vorzugsweise nicht direkt ausgewertet, sondern in ein entsprechend abgewandeltes kryptographisches Verfahren integriert.
  • In der weiteren Ausführungsvariante gemäß 4 wird in Schritt 80 der Verschleierungsparameter S als gerade Zahl mit der Bitlänge L und einem höchstwertigen Bit „1“ bestimmt. In Schritt 82 werden die Teilwerte K1 und K2 als Quotient beziehungsweise Rest der Division des geheimen Wertes K durch den Verschleierungsparameter S berechnet. Die Bitlänge des Restes K2 ist stets kleiner als L; der Quotient K1 kann aber möglicherweise einen Wert aufweisen, der um ein Bit länger als die zur Verfügung stehende Bitlänge M-L ist. Dies wird in Test 84 überprüft.
  • Falls der Quotient K1 die zur Verfügung stehende Bitlänge M-L nicht überschreitet, wird der „Nein“-Zweig von Test 84 gewählt. In den folgenden Schritten 90 bis 94, die den Schritten 46 bis 50 von 2 entsprechen, wird dann die Konkatenation K1 | K2 bestimmt, und die Speicherung von K1 | K2 im Datenfeld 26 wird veranlaßt.
  • Falls dagegen der Quotient K1 eine zu große Bitlänge aufweist, wird der „Ja“-Zweig von Test 84 gewählt. In Schritt 86 wird darum das höchstwertige Bit des Quotienten K1 entfernt. Dies wird in Schritt 88 dadurch angezeigt, daß das geringstwertige Bit des Restes K2 invertiert wird; es wird also K2 durch K2 XOR1 ersetzt. Diese Veränderung des geringstwertigen Bits des Divisionsrests kann von einem den Teilwert K2 auswertenden Programm erkannt werden, weil das unveränderte Bit stets gleich der - vorgegebenen - Parität B des geheimen Wertes K ist. In Schritt 90 wird nun der modifizierte zweite Teilwert K2 ergänzt, in Schritt 92 mit dem verkürzten ersten Teilwert K1 verknüpft und in Schritt 94 zum Speichern bereitgestellt.
  • Bei der Auswertung der Teilwerte K1 | K2 erfolgt eine Fallunterscheidung abhängig davon, ob die Parität des zweiten Teilwerts K2 gleich der Systemparität B ist oder nicht. Im erstgenannten Fall, falls also K2 = B (mod 2) gilt, besteht die Beziehung K = K1·S + K2. Falls sich die Parität des zweiten Teilwerts K2 von der Systemparität B unterscheidet, folgt dagegen, daß bei der Teilwertberechnung die Schritte 86 und 88 ausgeführt worden sind. Es gilt dann die Beziehung: K = (1|K1)·S + (K2XOR1)
  • Die gerade erläuterte Fallunterscheidung wird in entsprechender Weise auch bei einer kryptographischen Berechnung durchgeführt, die Teilwerte K1, K2 verwendet, welche gemäß dem Verfahren von 4 gewonnen worden sind.

Claims (11)

  1. Verfahren zum verschleierten Speichern eines geheimen Wertes (K), mit den Schritten: - Umwandeln des geheimen Wertes (K) in mindestens zwei Teilwerte (K1, K2), wobei der erste Teilwert (K1) von dem ganzzahligen Quotienten und der zweite Teilwert (K2) von dem Rest einer Division abhängen, deren Dividend von dem zu verschleiernden Wert (K) abhängt und deren Divisor von einem Verschleierungsparameter (S) abhängt, so daß der geheime Wert (K) aus den Teilwerten (K1, K2) und dem Verschleierungsparameter (S) ermittelbar ist, und - Veranlassen des Speicherns der Teilwerte (K1, K2) in einem nichtflüchtigen Speicher (22) eines tragbaren Datenträgers (10), dadurch gekennzeichnet, daß der geheime Wert (K) einen vorbestimmten, mehrfach unterbrochenen Wertebereich aufweist, und daß diese Eigenschaft des geheimen Wertes (K) beim Berechnen mindestens eines der Teilwerte (K1, K2) ausgenutzt wird, um die maximale Bitlänge (M-L, L) mindestens eines der berechneten Teilwerte (K1, K2) zu reduzieren.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der geheime Wert (K) und die Teilwerte (K1, K2) je eine vorbestimmte maximale Bitlänge (M, M-L, L) aufweisen, und daß die maximale Bitlänge (M) des geheimen Wertes (K) mindestens so groß wie die Summe der maximalen Bitlängen (M-L, L) der Teilwerte (K1, K2) ist.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß die Teilwerte (K1, K2) in einem Datenfeld (26) in dem nicht-flüchtigen Speicher (22) des tragbaren Datenträgers (10) gespeichert werden, das für einen geheimen Schlüssel (24) oder eine Komponente eines geheimen Schlüssels (24) vorgesehen ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Verschleierungsparameter (S) von dem geheimen Wert (K) unabhängig ist und zur Verschleierung von mehreren geheimen Werten (K) dient.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß der geheime Wert (K) eine vorbestimmte Parität (B) aufweist.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß beim Berechnen der Teilwerte (K1, K2) mindestens ein Bit mindestens eines der folgenden Werte weggelassen wird/-werden: - des geheimen Wertes (K), - des Dividenden, - des Quotienten, - des Divisionsrests, - des ersten Teilwerts (K1), und - des zweiten Teilwerts (K2).
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß beim Berechnen der Teilwerte (K1, K2) dem Verschleierungsparameter (S) und/oder dem Divisor mindestens ein Bit hinzugefügt wird/werden.
  8. Verfahren zum Ausführen einer kryptographischen Berechnung in einem tragbaren Datenträger (10), wobei die kryptographische Berechnung eine von einem geheimen Wert (K) abhängige Berechnung aufweist, welche in mindestens zwei Teilberechnungen aufgespalten wird, bei denen jeweils einer von mindestens zwei Teilwerten (K1, K2) verwendet wird, wobei die Teilwerte (K1, K2) durch ein Verfahren nach einem der Ansprüche 1 bis 7 berechnet und in einem nicht-flüchtigen Speicher (22) des Datenträgers (10) gespeichert worden sind.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die kryptographische Berechnung eine Entschlüsselung oder Signaturerzeugung bei einem asymmetrischen Verschlüsselungsverfahren, insbesondere einem RSA-Verfahren oder einem RSA-CRT-Verfahren, ist.
  10. Programmgesteuerte Vorrichtung (10, 30), die zur Ausführung eines Verfahrens mit den Merkmalen eines der Ansprüche 1 bis 9 eingerichtet ist.
  11. Computerprogrammprodukt, das Programmbefehle aufweist, um einen Prozessor einer programmgesteuerten Vorrichtung (10, 30) zu veranlassen, ein Verfahren mit den Merkmalen eines der Ansprüche 1 bis 9 auszuführen.
DE10253285.0A 2002-11-15 2002-11-15 Verschleierung eines geheimen Wertes Expired - Lifetime DE10253285B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10253285.0A DE10253285B4 (de) 2002-11-15 2002-11-15 Verschleierung eines geheimen Wertes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10253285.0A DE10253285B4 (de) 2002-11-15 2002-11-15 Verschleierung eines geheimen Wertes

Publications (2)

Publication Number Publication Date
DE10253285A1 DE10253285A1 (de) 2004-05-27
DE10253285B4 true DE10253285B4 (de) 2018-11-15

Family

ID=32185710

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10253285.0A Expired - Lifetime DE10253285B4 (de) 2002-11-15 2002-11-15 Verschleierung eines geheimen Wertes

Country Status (1)

Country Link
DE (1) DE10253285B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005020313A1 (de) * 2005-05-02 2006-11-16 Giesecke & Devrient Gmbh Vorrichtung und Verfahren zur Erzeugung von Daten für eine Initialisierung von Sicherheitsdatenträgern

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19820422A1 (de) * 1998-05-07 1999-11-11 Giesecke & Devrient Gmbh Verfahren zur Authentisierung einer Chipkarte innerhalb eines Nachrichtenübertragungs-Netzwerks
WO2001048974A1 (de) * 1999-12-28 2001-07-05 Giesecke & Devrient Gmbh Tragbarer datenträger mit zugriffsschutz durch schlüsselteilung
US6282290B1 (en) * 1997-03-28 2001-08-28 Mykotronx, Inc. High speed modular exponentiator
DE10061697A1 (de) * 2000-12-12 2002-06-27 Infineon Technologies Ag Verfahren und Vorrichtung zum Ermitteln eines Schlüsselpaars und zum Erzeugen von RSA-Schlüsseln
DE10061997A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
EP1217783B9 (de) * 1999-09-29 2009-07-15 Hitachi, Ltd. Vorrichtung, programm oder system zur verarbeitung geheimer informationen

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282290B1 (en) * 1997-03-28 2001-08-28 Mykotronx, Inc. High speed modular exponentiator
DE19820422A1 (de) * 1998-05-07 1999-11-11 Giesecke & Devrient Gmbh Verfahren zur Authentisierung einer Chipkarte innerhalb eines Nachrichtenübertragungs-Netzwerks
EP1217783B9 (de) * 1999-09-29 2009-07-15 Hitachi, Ltd. Vorrichtung, programm oder system zur verarbeitung geheimer informationen
WO2001048974A1 (de) * 1999-12-28 2001-07-05 Giesecke & Devrient Gmbh Tragbarer datenträger mit zugriffsschutz durch schlüsselteilung
DE10061697A1 (de) * 2000-12-12 2002-06-27 Infineon Technologies Ag Verfahren und Vorrichtung zum Ermitteln eines Schlüsselpaars und zum Erzeugen von RSA-Schlüsseln
DE10061997A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GROSSSCHÄDL,J.: The Chinese Remainder Theorem and its application in a high-speed RSA crypto chip. In: Computer Security Applications, 2000, Dez. 2000, S.384-393;Abschnitt 4.1 *

Also Published As

Publication number Publication date
DE10253285A1 (de) 2004-05-27

Similar Documents

Publication Publication Date Title
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
EP1262037B1 (de) Tragbarer datenträger mit zugriffsschutz durch schlüsselteilung
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
EP1540880B1 (de) Geschützte kryptographische berechnung
DE112009000152B4 (de) Verfahren zur Datenübertragung über einen Datenkanal mit einem Elliptische-Kurven-Kryptographieverfahren und Vorrichtung hierfür
DE112018002723T5 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
WO2012065730A1 (de) Verfahren zur langzahldivision oder modulare reduktion
DE10253285B4 (de) Verschleierung eines geheimen Wertes
WO2011110307A1 (de) Ausspähungsschutz bei der ausführung einer operationssequenz in einem tragbaren datenträger
EP1506473B1 (de) Ausspähungsgeschützte modulare inversion
EP2936728B1 (de) Verfahren zum betreiben eines portablen datenträgers sowie ein solcher portabler datenträger
EP1615098B1 (de) Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes
DE102021101697B3 (de) Datenverarbeitungsvorrichtung und verfahren zum verarbeiten geheimer daten
WO2002019065A2 (de) Verfahren und vorrichtung zum durchführen einer modularen exponentiation in einem kryptographischen prozessor
EP3504616B1 (de) Modul und verfahren zur abgesicherten berechnung von mathematischen operationen
DE102014004378A1 (de) Speichereffiziente seitenkanalgeschützte Maskierung
EP1518165B1 (de) Berechnung eines vielfachen eines gruppenelements für kryptographische zwecke
DE102018006313A1 (de) Verfahren mit Safe-Error-Abwehrmaßnahme
DE102004032893B4 (de) Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes
DE102004052196B4 (de) Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit
DE102004023902A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE102010039273B4 (de) Kryptographie-Prozessor, Chipkarte und Verfahren zur Berechnung eines Ergebnisses einer Exponentiation
DE102010064578B3 (de) Kryptographie-Prozessor, Chipkarte und Verfahren zur Berechnung eines Ergebnisses einer Exponentiation
EP1760929B1 (de) Geschütztes kryptographisches Verfahren
DE102015201430A1 (de) Intrinsische Authentifizierung von Programcode

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8110 Request for examination paragraph 44
R081 Change of applicant/patentee

Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, DE

Free format text: FORMER OWNER: GIESECKE & DEVRIENT GMBH, 81677 MUENCHEN, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R071 Expiry of right