DE69834431T2 - Leckresistentes kryptographisches verfahren und vorrichtung - Google Patents

Leckresistentes kryptographisches verfahren und vorrichtung Download PDF

Info

Publication number
DE69834431T2
DE69834431T2 DE69834431T DE69834431T DE69834431T2 DE 69834431 T2 DE69834431 T2 DE 69834431T2 DE 69834431 T DE69834431 T DE 69834431T DE 69834431 T DE69834431 T DE 69834431T DE 69834431 T2 DE69834431 T2 DE 69834431T2
Authority
DE
Germany
Prior art keywords
key
leak
mod
parameters
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69834431T
Other languages
English (en)
Other versions
DE69834431T3 (de
DE69834431D1 (de
Inventor
C. Paul San Francisco KOCHER
M. Joshua San Francisco JAFFE
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.)
Cryptography Research Inc
Original Assignee
Cryptography Research Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26751037&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69834431(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Cryptography Research Inc filed Critical Cryptography Research Inc
Publication of DE69834431D1 publication Critical patent/DE69834431D1/de
Application granted granted Critical
Publication of DE69834431T2 publication Critical patent/DE69834431T2/de
Publication of DE69834431T3 publication Critical patent/DE69834431T3/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • 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
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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
    • 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/7257Random modification not requiring correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Description

  • TECHNISCHER BEREICH
  • Das Verfahren und die Vorrichtung der vorliegenden Erfindung betreffen im Allgemeinen Verschlüsselungssysteme und im Besonderen das Sichern kryptografischer Tokens, die die Sicherheit von geheimen Informationen in feindlichen Umgebungen bewahren müssen.
  • HINTERGRUND DER ERFINDUNG
  • Die meisten Verschlüsselungssyteme benötigen ein sicheres Key-Management. In Sicherheitssystemen auf der Basis von Public-Keys müssen Private-Keys geschützt werden, damit Angreifer die Keys nicht zum Fälschen digitaler Signaturen, zum Modifizieren von Daten oder zum Entschlüsseln vertraulicher Informationen benutzen können. Systeme, die mit symmetrischer Verschlüsselung arbeiten, verlangen ebenso, dass Keys geheim gehalten werden. Gut entwickelte Verschlüsselungsalgorithmen und -protokolle müssen verhindern, dass Angreifer, die Kommunikationen mithören, ein System knacken können. Verschlüsselungsalgorithmen und -protokolle verlangen jedoch herkömmlicherweise, dass eingriffssichere Hardware- oder andere implementationsspezifische Maßnahmen Angreifer daran hindern, auf die Keys zuzugreifen oder sie zu finden.
  • Wenn der Kryptosystemdesigner sicher annehmen kann, dass das Key-Management-System völlig eingriffssicher ist und keine Informationen in Bezug auf die Keys preisgibt, ausgenommen über die im Protokoll definierten Meldungen und Operationen, dann reichen zur Erzielung guter Sicherheit häufig bereits bekannte Verschlüsselungstechniken aus. Es ist jedoch derzeit außerst schwierig, Hardware-Key-Managementsysteme herzustellen, die gute Sicherheit bieten, besonders in kostenarmen ungeschirmten Verschlüsselungsgeräten für den Einsatz in Anwendungen, bei denen Angreifer das Gerät physisch unter Kontrolle haben.
  • So müssen beispielsweise kryptografische Tokens (wie z.B. Chipkarten, die in elektronischen Bargeld- und Kopierschutzansätzen zum Einsatz kommen) ihre Keys selbst in potentiell feindlichen Umgebungen schützen. (Ein Token ist eine Vorrichtung, die kryptografische Keys, die vor Angreifern geschützt werden müssen, enthält oder manipuliert. Formen, in denen Tokens hergestellt werden können, sind u.a., ohne Einschränkung, Chipkarten, spezialisierte Verschlüsselungs- und Key-Management-Geräte wie Telefone, sichere Bildtelefone, sichere Webserver, mit Verschlüsselung arbeitende Verbraucherelektronikgeräte, sichere Mikroprozessoren und andere eingriffssichere Verschlüsselungssysteme.)
  • Es ist eine Reihe verschiedener physischer Techniken zum Schützen von Verschlüsselungsgeräten bekannt, einschließlich solcher mit Key-Management-Systemen in physisch haltbaren Gehäusen, Beschichten integrierter Schaltungen mit speziellen Überzügen, die den Chip nach dem Entfernen zerstören, und Einwickeln von Geräten in feine Drähte, so dass ein Eingriff nachgewiesen werden kann. Diese Ansätze sind jedoch teuer, lassen sich in Einzelchip-Lösungen (wie z.B. Chipkarten) nur schwer verwenden und schwer beurteilen, da für ihre Sicherheit keine mathematische Basis vorhanden ist. Physische Eingriffsbeständigkeitstechniken sind gegen einige Attacken ebenfalls unwirksam. So haben beispielsweise neuere Arbeiten von Cryptography Research gezeigt, dass Angreifer nichtinvasiv durch sorgfältiges Messen und Analysieren der Leistungsaufnahme vieler Geräte Geheimschlüssel extrahieren können. Geheimschlüssel können auch über eine Analyse von Zeitmessungen oder von elektromagnetischer Strahlung gefunden werden. Im Hinblick auf die Analyse von Zeitmessungen wird auf Kocher, Paul C. in Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems in CRYPTO '96, 16th Annual International Cryptography Conference in Santa Barbara in den USA vom 18.–22. August 1996 verwiesen, herausgegeben in Proceedings of the Annual International Cryptography Conference, Koblitz, N. (Ed.), Berlin, Springer, Bd. CONF. 16, Seiten 104–113, ISBN 3-540-61512-1.
  • Es sind einige Techniken bekannt, um eine externe Überwachung von Verschlüsselungsgeheimnissen zu verhindern, wie z.B. die Verwendung von Stromversorgungen mit großen Kondensatoren, um Leistungsaufnahmeschwankungen zu maskieren, der Einbau von Geräten in gut abgeschirmte Gehäuse, um elektromagnetische Strahlungen zu verhüten, Nachrichtenausblendung (Message Blinding), um Timing-Attacken zu verhüten, und Puffern von Ein-/Ausgängen, um ein Auslecken von Signalen auf E/A-Leitungen zu verhindern. Abschirmung, Einführen von Rauschen und andere solche Gegenmaßnahmen sind jedoch häufig nur von begrenztem Wert, da kompetente Angreifer Keys immer noch herausfinden können, indem sie Signale verstärken und Rauschen durch Mitteln von von vielen Operationen gesammelten Daten ausfiltern können. Ferner sind diese Gegenmaßnahmen in Chipkarten und anderen eingriffsbeständigen Chips häufig nicht anwendbar oder reichen aufgrund der Tatsache nicht aus, dass sie auf externen Leistungsquellen beruhen, weil eine Abschirmung nicht praktikabel ist und aufgrund anderer physikalischer Beschränkungen. Die Verwendung von Ausblend- und mathematischen Konstantzeitalgorithmen zur Verhütung von Timing-Attacken ist ebenfalls bekannt, verhindert aber keine komplexeren Attacken wie z.B. Leistungsaufnahmeanalyse (besonders dann, wenn der Systemdesigner nicht perfekt vorhersagen kann, welche Informationen einem Angreifer zur Verfügung stehen, wie es häufig der Fall ist, bevor ein Gerät physisch hergestellt und charakterisiert wurde).
  • Ausgestaltungen der vorliegenden Erfindung nutzen zuvor bekannte Verschlüsselungsgrundstrukturen und -operationen. Zum Beispiel: das US-Patent 5,136,646 von Haber et al. und der Pseudozufallsgenerator, der in der RSAREF-Verschlüsselungsbibliothek zum Einsatz kommt, arbeiten mit wiederholter Anwendung von Hash-Funktionen, anonyme digitale Bargeldansätze verwenden Ausblendtechniken; Null-Kenntnis-Protokolle arbeiten mit Hash-Funktionen zum Maskieren von Informationen; und Key-Teilungs- und Schwellenwertansätze speichern Geheimnisse in mehreren Teilen.
  • Der oben erwähnte Artikel von Kocher in CRYPTO '96 untersucht, wie potentielle Angreifer Timing-Attacken nutzen können, um Geheimschlüssel zu ermitteln, indem sie die Dauer von Berechnungen messen, die an Geräten vorgenommen werden, deren Verschlüsselungsberechnungen eine unterschiedliche Anzahl an Taktzyklen je nach Key und Eingabedaten benötigen. Der Artikel schlägt vor, Konstantzeitschaltungen, Verzögerungen, Ausblendung und Exponentenmodifikation als Gegenmaßnahmen gegen Timing-Attacken zu verwenden. Die Verschlüsselung von Timing-Attacken ist jedoch im Allgemeinen einfacher als für Attacken wie Differentialleistungsanalyse, die analoge Eigenschaften von Systemen beinhaltet. Das US-Patent Nr. 5,506,905 beschreibt ein Verfahren zum Ausführen von Verschlüsselungstransaktionen, insbesondere in einem System zum Fernsteuern eines Fahrzeugschlosses oder einer Garagentür oder dergleichen, das das Abrufen und Verarbeiten eines Keys, das Speichern des aktualisierten Keys und das Ausführen einer kryptografischen Operation mit dem Key mehrere Male nacheinander beinhaltet. Jede Meldung beinhaltet eine Sequenznummer zum Assistieren bei der Verifikation am Empfänger.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung in ihren verschiedenen Aspekten ist in den nachfolgenden Hauptansprüchen definiert, auf die nun Bezug genommen werden sollte. Vorteilhafte Merkmale sind in den Unteransprüchen dargelegt.
  • Bevorzugte Ausgestaltungen der Erfindung werden nachfolgend mit Bezug auf die Zeichnungen ausführlicher beschrieben. Diese Ausgestaltungen bieten eine lecksichere und leckbeständige Verschlüsselung, nämlich mathematische Ansätze für Eingriffsbeständigkeit, die viele existierende Verschlüsselungsgrundstrukturen unterstützen, kostenarm sind, an existierender Hardware ausgeführt werden können (entweder für sich alleine oder mit Software, die auf solcher Hardware laufen kann), und die Probleme in Verbindung damit lösen können, dass Geheimnisse aus Verschlüsselungsgeräten entweichen. Anstatt anzunehmen, dass physische Geräte perfekte Sicherheit bieten, können lecksichere und leckbeständige Verschlüsselungssysteme entworfen werden, die selbst dann sicher bleiben, wenn Angreifer einige Informationen über das System und seine Geheimnisse sammeln können. Die Erfindung ausgestaltende lecksichere und leckbeständige Systeme können symmetrische Authentifizierung, Exponential-Key-Agreement nach Diffie-Hellman, ElGamal-Public-Key-Verschlüsselung, ElGamal-Signaturen, den Digital Signature Standard, RSA und andere Algorithmen implementieren.
  • Eines der charakteristischen Attribute eines typischen lecksicheren oder leckbeständigen Kryptosystems ist, dass es „selbstheilend" ist, so dass der Wert von zu einem Angreifer ausgeleckten Informationen mit der Zeit abnimmt oder verschwindet. Lecksichere Kryptosysteme sind beständig gegen Lecks mit bis zu LMAX Bit an Informationen pro Transaktion, wobei LMAX ein Sicherheitsfaktor ist, der vom Systemdesigner so gewählt wird, dass er die maximale erwartete Leckrate übersteigt. Die allgemeinere Klasse 1eckbeständiger Kryptosysteme beinhaltet lecksichere Kryptosysteme und andere, die Lecks standhalten können, aber nicht unbedingt so definiert sind, dass sie gegen jede definierte maximale Informationsleckrate beständig sind. Daher ist jedes lecksichere System auch als leckbeständig zu verstehen. Die vorliegende Erfindung ausgestaltende leckbeständige Systeme können eine Reihe verschiedener Überwachungs- und Mithörattacken überleben, die herkömmliche (nicht leckbeständige) Kryptosysteme knacken würden.
  • Ein die vorliegende Erfindung ausgestaltendes typisches leckbeständiges Kryptosystem besteht aus drei allgemeinen Teilen. Der Initialisierungs- oder Key-Erzeugungsschritt erzeugt ein sicheres Key-Material, das für den Ansatz geeignet ist. Ein Update-Prozess modifiziert das Secret-Key-Material kryptografisch auf eine solche Weise, dass eventuelle Informationen über die Geheimnisse, die möglicherweise zuvor aus dem System geleckt sind, nutzlos gemacht werden, so dass Sicherheitsvorteile gegenüber Systemen des Standes der Technik erzielt werden. Ein letzter Vorgang führt Verschlüsselungsoperationen wie z.B. die Erzeugung von digitalen Signaturen oder von Entschlüsselungsmeldungen durch.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung wird beispielhaft mit Bezug auf die Zeichnungen ausführlich beschrieben. Dabei zeigt:
  • 1 ein beispielhaftes leckbeständiges symmetrisches Authentifizierungsverfahren;
  • 2 eine beispielhafte leckbeständige Diffie-Hellman Exponential-Key-Austauschoperation;
  • 3 eine beispielhafte leckbeständige RSR-Private-Key-Operation;
  • 4 eine beispielhafte leckbeständige ElGamal-Signierungsoperation.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSGESTALTUNGEN DER ERFINDUNG
  • Die nachfolgenden Abschnitte beschreiben eine Einführung in lecksichere/leckbeständige Kryptografie, gefolgt von verschiedenen Ausgestaltungen der Erfindung zum Verbessern der Sicherheit üblicher Verschlüsselungsprotokolle.
  • 1. Einleitung und Terminologie
  • Die Leckrate L ist als die Anzahl von Bits an nützlichen Informationen über die Geheimnisse eines Kryptosystems definiert, die pro Operation offenbart werden können, wobei eine Operation eine Verschlüsselungstransaktion ist. Ein Angreifer mag zwar in der Lage sein, Messdaten im Wert von mehr als L Bits zu sammeln, aber diese Daten ergeben per Definition nicht mehr als L Bits an nützlichen Informationen über die Geheimnisse des Systems.
  • Der Ausführer eines lecksicheren Systems wählt einen Designparameter LMAX, die maximale Leckmenge pro Operation, die das System zulässt, wenn es unkomprimiert bleiben soll. LMAX sollte mit Vorsicht gewählt werden und sollte normalerweise die Menge an nützlichen Informationen erheblich übersteigen, die bekanntlich über die Geheimnisse des Systems bei jeder Transaktion an Angreifer auslecken können. Designer brauchen nicht unbedingt genau oder vollständig Menge und Typ von Informationen zu kennen, die aus ihren Systemen auslecken können; die Wahl von LMAX kann anhand von Schätzungen und Modellen für das Verhalten des Systems getroffen werden. Die Wahl von LMAX beeinflussende allgemeine Faktoren beinhalten die potentiellen Überwachungstypen, die Angreifern zur Verfügung stehen, den Fehlergrad der Maßnahmen der Angreifer und technische Beschränkungen, die LMAX begrenzen. (Größere Werte von LMAX erhöhen die Speicher- und Leistungsanforderungen des Gerätes und können in einigen Fällen L erhöhen.) Zum Schätzen der Menge an nützlichen Informationen, die ein Angreifer z.B. durch Überwachen der Leistungsaufnahme eines Gerätes sammeln könnte, könnte ein Designer die Menge an Rauschen im Leistungsgebrauch des Gerätes, die Stromleitungskapazität, die nützliche Zeitauflösung für Leistungsaufnahmemessungen sowie die Stärke der überwachten Signale verwenden. Ebenso weiß der Designer, dass Zeitmessungen nur selten mehr als ein paar Bit Informationen pro Operation ergeben, da Zeitinformationen normalerweise auf eine integrale Anzahl von Taktzyklen quantifiziert werden. Beim Wählen von LMAX muss der Designer annehmen, dass Angreifer von mehreren Angriffstypen erhaltene Informationen kombinieren können. Wenn die Leckrate zu groß ist (wie in dem extremen Fall, bei dem L der Key-Größe entspricht, weil der gesamte Key bei einer einzigen Transaktion extrahiert werden kann), sollten zusätzliche Design-Merkmale hinzugefügt werden, um L zu reduzieren und den für LMAX benötigten Wert zu reduzieren. Zu solchen zusätzlichen Maßnahmen können bekannte Methoden wie das Filtern von Leistungseingängen des Gerätes, das Hinzufügen von Abschirmung, das Einführen von Rauschen in Timing oder Leistungsaufnahme, das Implementieren von Konstantzeit- und Konstantausführungspfadalgorithmen und das Ändern des Geräte-Layouts gehören. Auch hier ist wieder zu beachten, dass der Designer eines leckbeständigen Systems nicht tatsächlich zu wissen braucht, welche Informationen offenbart werden oder wie sie auslecken; er braucht lediglich eine Obergrenze für die Rate zu wählen, mit der Angreifer Informationen über die Keys erlernen könnten. Im Gegensatz dazu ist der Designer eines herkömmlichen Systems mit der weitaus schwierigeren Aufgabe des Gewährleistens konfrontiert, dass keine Informationen über die Geheimnisse auslecken.
  • Es gibt viele Arten und Weisen, in denen Informationen aus Kryptosystemen auslecken können. So kann beispielsweise ein Angreifer einen schnellen Analog-Digital-Wandler zum Aufzeichnen der Leistungsaufnahme einer Chipkarte bei einer Verschlüsselungsoperation benutzen. Die Menge an nützlichen Informationen, die von einer solchen Messung erhalten werden können, variiert, aber es wäre recht typisch, dass man genügend Informationen gewinnen würde, um jedes der 128 Key-Bits korrekt mit einer Wahrscheinlichkeit von 0,7 zu erraten. Diese Information kann den Aufwand reduzieren, der für eine Brute-Force-Attacke benötigt wird. So könnte beispielsweise eine Brute-Force-Attacke mit einer Meldung gegen einen Key, der k Bits enthält, wobei der Wert jedes Bits bekannt ist, mit einer Wahrscheinlichkeit p in
    Figure 00090001
    Operationen vollendet werden. Die Reduzierung des Aufwands für eine Brute-Force-Attacke ist mit dem Verkürzen des Keys um L = log2(E(k,½)/E(k,p)) = log2(k – E(k, p) – 1) Bits äquivalent. (Zum Beispiel, im Falle von k = 128 und p = 0,7, wird L mit etwa 11 Bits für die erste Messung geschätzt. Bei einer Mehrmeldungsattacke kann der Aufwand des Angreifers auf nur
    Figure 00100001
    fallen. Angreifer können zusätzliche Informationen über die Keys durch Messen zusätzlicher Operationen gewinnen; wenn keine Leckbeständigkeit benutzt wird, dann wird das Herausfinden des Keys nach nur ein paar Dutzend Operationen zu einer leichten Sache.
  • Beim Wählen von LMAX sollte ein Systemdesigner das Signal-Rausch-Verhältnis der Messungen eines Angreifers berücksichtigen. Wenn beispielsweise Signal und Rauschen eine grob äquivalente Größe haben, dann weiß der Designer, dass die Messungen eines Angreifers etwa 25 Prozent der Zeit inkorrekt sind (z.B. p = 0,75, wenn nur eine Beobachtung pro Key-Bit möglich ist). Zahlreiche Messtechniken, wie z.B. solche, die Zeit beinhalten, können Signal-Rausch-Verhältnisse von 1:100 oder schlechter haben. Bei solchen Systemen ist L im Allgemeinen recht klein, aber Angreifer, die eine große Zahl von Messungen durchführen, können den gesamten Key durch Mittelwertbildung oder mit einer anderen statistischen Technik herausfinden. In extremen Fällen können Angreifer in der Lage sein, alle Key-Bits mit praktisch perfekter Genauigkeit aus einer einzelnen Transaktion erhalten (d.h. L = k), so dass eine zusätzliche Abschirmung, Rauschen in der Leistungsaufnahme (oder anderswo) und andere Maßnahmen nötig sind, um p und L zu reduzieren. LMAX sollte natürlich mit Vorsicht gewählt werden; in dem obigen Beispiel, bei dem weniger als 4 nützliche Bits pro Operation für die jeweilige Attacke erhalten werden, könnte der Designer LMAX = 64 für ein lecksicheres Design wählen.
  • Lecksichere (und im Allgemeinen leckbeständige) Kryptosysteme bieten Systemdesignern wichtige Vorteile. Beim Entwickeln eines traditionellen (d.h. nicht leckbeständigen und nicht lecksicheren) Kryptosystems muss ein sorgfältiger Kryptosystemdesiger alle möglichen Informationen studieren, die Angreifern zur Verfügung stehen, wenn er sicherstellen will, dass keine Analysetechniken zum Kompromittieren der Keys verwendet werden könnten. In der Praxis werden viele unsichere Systeme entwickelt und eingesetzt, weil eine solche Analyse unvollständig ist, sogar den Versuch nicht lohnt oder weil die an dem System arbeitenden Kryptografern die physischen Eigenschaften des Gerätes, das sie entwickeln, nicht verstehen oder nicht völlig unter Kontrolle haben. Auch unerwartete Herstellungsdefekte oder Prozessänderungen, Änderungen am Produkt durch Angreifer oder Modifikationen, die am Einsatzort am Produkt vorgenommen werden, können Probleme verursachen. Selbst ein System, das mit großer Sorgfalt entwickelt und analysiert wurde, kann geknackt werden, wenn später neue oder verbesserte Datensammlungs- und -analysetechniken gefunden werden. Im Gegensatz dazu braucht der Systemdesigner bei lecksicherer Verschlüsselung nur eine Obergrenze für die maximale Rate zu definieren, mit der Angreifer Informationen über die Keys extrahieren können. Es ist kein tiefgreifendes Verständnis der Angreifern zur Verfügung stehenden Informationen notwendig, da lecksichere (und leckbeständige) Kryptosystem-Designs ein Auslecken geheimer Informationen in dem Gerät auf (praktisch) jegliche Weise zulassen, dabei aber trotzdem sicher bleiben, weil geleckte Informationen nur von momentanem Wert sind.
  • In einem typischen lecksicheren Design wird angenommen, dass der Angreifer mit jeder neuen Verschlüsselungsoperation i eine beliebige Funktion Fi wählen und das LMAX-Bit-Ergebnis des Berechnens von Fi über die Geheimnisse, Eingaben, Zwischenergebnisse und Ausgaben des Gerätes im Laufe der Operation ermitteln kann. Der Angreifer kann sogar eine neue Funktion Fi mit jeder neuen Operation wählen. Das System wird mit einem Sicherheitsfaktor n und einer Leckrate LMAX als sicher angesehen, wenn nach dem Beobachten einer großen Zahl von Operationen ein Angreifer Signaturen nicht fälschen, Daten nicht entschlüsseln und andere vertrauliche Operationen nicht durchführen kann, ohne eine umfassende Suche zum Finden eines n-Bit-Keys oder zum Ausführen einer vergleichbaren O(2n) Operation durchzuführen. Zusätzlich zum Wählen von LMAX können Designer auch n wählen und sollten einen Wert wählen, der groß genug ist, um eine erschöpfende Suche undurchführbar zu machen. In den nachfolgenden Abschnitten werden verschiedene Ausgestaltungen der Erfindung, wie sie zur Verbesserung der Sicherheit üblicher Verschlüsselungsoperationen und -protokolle angewendet wird, ausführlicher beschrieben.
  • II. Symmetrische Verschlüsselungsprotokolle
  • A. Symmetrische Authentifizierung
  • Ein beispielhaftes Verschlüsselungsprotokoll, das unter Anwendung der Techniken der vorliegenden Erfindung gesichert werden kann, ist symmetrische Authentifizierung.
  • 1. Herkömmliche symmetrische Authentifizierung
  • Angenommen, ein Benutzer möchte sich bei einem Server mit einem n-Bit-Secret-Key K identifizieren, der sowohl dem Server als auch dem kryptografischen Token des Benutzers bekannt, aber Angreifern nicht bekannt ist. Das kryptografische Token muss einem betrügerischen Eingriff widerstehen können und beispielsweise Angreifer daran hindern, Geheimnisse von einem gestohlenen Token zu extrahieren. Wenn das Token des Benutzers eine perfekte Eingriffsbeständigkeit (d.h. L = 0) hat, dann können Authentifizierungsprotokolle des Standes der Technik verwendet werden. Typischerweise sendet der Server einen eindeutigen, unvorhersehbaren Challenge-Wert R zum Token des Benutzers, der den Wert A = H(R||K) berechnet, wobei "||" eine Verkettung bedeutet und H eine kryptografische Einweg-Hash-Funktion wie z.B. SHA bedeutet. Der Benutzer sendet A zum Server, der A (mit seiner Kopie von K) unabhängig berechnet und sein Ergebnis mit dem empfangenen Wert vergleicht. Die Benutzerauthentifizierung verläuft nur dann erfolgreich, wenn die Vergleichsoperation eine Übereinstimmung anzeigt.
  • Wenn die Funktion H sicher ist und wenn K groß genug ist, um Brute-Force-Attacken zu verhüten, dann dürfen Angreifer nicht in der Lage sein, nützliche Informationen von den Werten von (R, A) alter Authentifizierungssessions zu erhalten. Um zu gewährleisten, dass Angreifer nicht die Identität von Benutzern annehmen, indem sie alte Werte von A wiedergeben, erzeugt der Server Werte von R, die effektiv (mit ausreichend hoher Wahrscheinlichkeit) eindeutig sind. In den meisten Fällen macht der Server R auch unvorhersehbar, um zu gewährleisten, dass ein Angreifer mit vorübergehendem Besitz eines Tokens zukünftige Werte von A nicht berechnen kann. So könnte beispielsweise R eine 128-Bit-Zahl sein, die mit einem sicheren Zufallsgenerator (oder einem Pseudozufallsgenerator) im Server erzeugt wird. Die Eigenschaften von kryptografischen Hash-Funktionen wie z.B. H sind Gegenstand zahlreicher Erörterungen in der Literatur und brauchen hier nicht ausführlich beschrieben zu werden. Hash-Funktionen bieten typischerweise Funktionalität, die nach einem Zufallsorakel modelliert werden, das deterministisch einen bestimmten Ausgang von einem beliebigen Eingang erzeugt. Idealerweise sollten solche Funktionen kollisionsbeständig und nicht invertierbar sein, sie sollten keine Teilinformationen über die Eingabe von der Ausgabe auslecken und sie sollten keine Informationen über die Ausgabe auslecken, wenn nicht der gesamte Eingang bekannt ist. Hash-Funktionen können eine beliebige Ausgangsgröße haben. So erzeugt beispielsweise MD5 128-Bit-Ausgänge und SHA erzeugt 160-Bit-Ausgänge. Hash-Funktionen können von anderen Verschlüsselungsgrundstrukturen oder anderen Hash-Funktionen konstruiert werden.
  • Die Verschlüsselungssicherheit des Protokolls unter Anwendung von Technologie des Standes der Technik kann zwar gut sein, sie ist aber nicht lecksicher; selbst eine Ein-Bit-Leckfunktion (mit L = 1) kann den Key offenbaren. Wenn beispielsweise die Leckfunktion F gleich Bit (R mod n) von K ist, dann kann ein Angreifer das System schnell knacken, da ein neues Key-Bit mit jeder Transaktion offenbart wird, wo (R mod n) einen neuen Wert hat. Daher besteht Bedarf an einem lecksicheren/leckbeständigen symmetrischen Authentifizierungsprotokoll.
  • 2. Leckbeständige symmetrische Authentifizierung
  • Es folgt eine Ausgestaltung eines leckbeständigen (und in der Tat auch lecksicheren) symmetrischen Authentifizierungsprotokolls, das im Zusammenhang mit einer maximalen Leckrate von LMAX Bit pro Transaktion von dem Token und einem Sicherheitsfaktor n beschrieben wird, was bedeutet, dass Attacken mit einer Komplexität von O(2n), wie z.B. Brute-Force-Attacken gegen einen n-Bit-Key, akzeptabel sind, aber es darf keine erheblich leichteren Attacken geben. Das Token des Benutzers führt einen Zähler t, der auf null initialisiert wird, und ein (n + 2LMAX)-Bit an gemeinsamem Secret-Kt, der mit einem Secret-K0 initialisiert wird. Man beachte, dass gegen Angreifer, die Vorberechnungsattacken auf der Basis eines Hellmanschen Zeit/Speicher-Kompromisses ausführen, größere Werte von n in Ordnung sein können. Man beachte auch, dass einige nützliche Protokollsicherheitsmerkmale, wie z.B. Benutzer- und/oder Server-Kennungen in den Hash-Operationseingaben, der Einfachheit halber in der Protokollbeschreibung weggelassen wurden. Man nehme auch an, dass es zu keinen Lecks vom Server kommt. Zur Vereinfachung der Protokollbeschreibung wurde auf einige mögliche Sicherheitsmerkmale (wie z.B. Benutzer- und/oder Server-Kennungen in den Hash-Operationseingaben) verzichtet, und es wird angenommen, dass sich der Server in einer physisch sicheren Umgebung befindet. Die Fachperson wird jedoch erkennen, dass die Erfindung nicht auf solche Annahmen begrenzt ist, die lediglich der Einfachheit halber und nicht aus Notwendigkeit gemacht wurden.
  • Wie im herkömmlichen Protokoll, beginnt der Server den Authentifizierungsvorgang durch Erzeugen eines eindeutigen und unvorhersehbaren Wertes R in Schritt 105. Zum Beispiel, R könnte ein 128-Bit-Ausgang von einem sicheren Zufallsgenerator sein. In Schritt 110 sendet der Server R zum Token des Benutzers. In Schritt 112 empfängt das Token R. In Schritt 115 inkrementiert das Token seinen Zähler t durch Berechnen von t ← t + 1. In Schritt 120 aktualisiert das Token Kt durch Berechnen von Kt ← HK(t||Kt), wobei HK eine kryptografische Hash-Funktion ist, die einen (n + 2LMAX) Bit Ausgang vom alten Wert von Kt und dem neu (neu inkrementierten) Wert von t ist. Man beachte, dass in den Ersatzoperationen (mit „←" bezeichnet) das Token die alten Werte von t und Kt löscht und sie durch die neuen Werte ersetzt. Durch Löschen des alten Kt gewährleistet das Token, dass spätere Leckfunktionen keine Informationen über den alten (gelöschten) Wert offenbaren können. In Schritt 122 benutzt das Token die neuen Werte von t und Kt zum Berechnen eines Authentifikators A = HA(Kt||t||R). In Schritt 125 sendet das Token sowohl t als auch den Authentifikator A zum Server, der sie in Schritt 130 empfängt. In Schritt 135 prüft der Server, ob t akzeptabel ist (z.B. nicht zu groß, aber größer als der bei der letzten erfolgreichen Authentifizierung erhaltene Wert). Wenn t ungültig ist, dann geht der Server weiter zu Schritt 175. Ansonsten initialisiert der Server in Schritt 140 seinen Schleifenzähler i auf null und sein Key-Register Kt' auf K0. In Schritt 145 vergleicht der Server i mit dem empfangenen Wert von t und geht zu Schritt 160 über, wenn sie gleich sind. Ansonsten inkrementiert der Server in Schritt 150 i durch Berechnen von i ← i + 1. In Schritt 155 berechnet der Server Kt' ← HK(i||Kt') und geht dann zurück zu Schritt 145. In Schritt 160 berechnet der Server A' = HA(Kt'||t||R). Schließlich vergleicht der Server in Schritt 165 A und A', wobei die Authentifizierung in Schritt 170 erfolgreich ist, wenn eine Übereinstimmung vorliegt, oder in Schritt 175 erfolglos ist, wenn keine Übereinstimmung vorliegt.
  • Dieses Design basiert auf der Annahme, dass zu Beginn einer beliebigen Transaktion der Angreifer LMAX Bit an nützlichen Informationen über den Zustand des Tokens haben kann (z.B. Kt), die mit der Leckfunktion F in einer vorherigen Operation erhalten wurden. Während der Transaktion kann der Angreifer zusätzliche LMAX Bits an nützlichen Informationen von dem Token erhalten. Wenn zu irgendeinem Zeitpunkt beliebige 2LMAX (oder weniger) Bits an nützlichen Informationen dem Angreifer über das Geheimnis bekannt sind, dann gibt es immer noch (n + 2LMAX) – 2LMAX = n oder mehr unbekannte Bits. Diese n Bits an unbekannten Informationen stellen sicher, dass Attacken einen Aufwand von O(2n) erfordern, was dem gewünschten Sicherheitsfaktor entspricht. Der Angreifer darf jedoch nicht mehr als LMAX Bits an nützlichen Informationen über Kt am Ende der Transaktion haben. Die Eigenschaft, dass Angreifer nützliche Informationen bei einer normalen Operation des Systems verlieren, ist eine Charakteristik des lecksicheren oder leckbeständigen Kryptosystems. Im Allgemeinen wird dieser Informationsverlust erzielt, wenn das Kryptosystem Operationen ausführt, die nützliche Teilinformationen der Angreifer über das Geheimnis in nutzlose Informationen umwandeln. (Informationen werden dann als nutzlos angesehen, wenn sie einem Angreifer lediglich die Fähigkeit bieten, Kandidatenwerte in einer erschöpfenden O(2n) Suche oder einer anderen „härteren" Operation zu testen. Wenn beispielsweise eine erschöpfende Suche von X hart und H eine gute Hash-Funktion ist, dann ist H(X) für einen Angreifer, der X herauszufinden versucht, eine nutzlose Information.)
  • Somit wird angenommen, dass der Angreifer mit LMAX Bits an nützlichen Informationen über Kt vor der Berechnung von Kt ← HK(t||Kt) des Tokens beginnt. (Anfangsinformationen über etwas anderes als Kt sind für einen Angreifer ohne Wert, weil Kt der einzige geheime Wert in dem Token ist. Die Funktion HK und der Wert von t werden nicht als geheim angenommen.) Die Informationen des Angreifers können eine beliebige Funktion von Kt sein, die von Lecks aus einer vorherigen Operation erzeugt wurde.
  • 3. Sicherheitsmerkmale von lecksicheren Systemen
  • Der folgende Abschnitt enthält eine technische Erörterung der Sicherheitsmerkmale des oben beschriebenen beispielhaften lecksicheren Systems. Die folgende Analyse wird als Beispiel dafür gegeben, wie das Design analysiert werden kann und wie ein System unter Anwendung allgemeiner Annahmen über Fähigkeiten von Angreifern entwickelt werden kann. Die Erörterung und die Annahmen gelten nicht unbedingt für andere Ausgestaltungen der Erfindung und sind nicht als den Umfang oder die Anwendbarkeit der Erfindung auf irgendeine Weise begrenzend anzusehen.
  • Während einer Transaktion könnte die Leckfunktion F bis zu LMAX Informationen über das System und seine Geheimnisse offenbaren. Das Design basiert auf der Annahme, dass jede in dem System enthaltene Information durch F geleckt werden kann, unter der Voraussetzung, dass F keine nützlichen neuen Informationen über Werte von Kt offenbart, die vor Beginn der Operation gelöscht wurden, und F keine nützlichen Informationen über Werte von Kt offenbart, die in zukünftigen Operationen berechnet werden. Diese Beschränkungen sind vollkommen sinnvoll, da Lecks in Wirklichkeit keine Informationen über gelöschte und noch nicht existierende Daten offenbaren würden. (Die einzige Möglichkeit, wie Informationen über zukünftige Kt-Werte geleckt würden, wäre der seltsame Fall, wenn die Leckfunktion selbst die Funktion HK beinhalten würde oder auf irgendeine Weise davon abgeleitet wäre.) In der Praxis sind diese Beschränkungen von F akademisch und von wenig Belang, aber sie sind bei der Konstruktion von Nachweisen zum Demonstrieren der Sicherheit eines lecksicheren Systems relevant.
  • Wenn das Leck zu Beginn der HK-Berechnung auftritt, dann könnte es dem Angreifer bis zu 2LMAX Bits an nützlichen Informationen über den Eingangswert von Kt geben. Da Kt (2LMAX + n)Bits an geheimen Informationen enthält und der Angreifer bis zu 2LMAX Bits an nützlichen Informationen über den Anfangswert von Kt haben kann, bleiben wenigstens (2LMAX + n) – 2LMAX = n Bits an Informationen in Kt geheim. Die Hash-Funktion HK mischt diese n Bits effektiv, um einen sicheren neuen Kt-Wert bei jeder Transaktion zu erzeugen, so dass die Informationen des Angreifers über den alten Kt-Wert nicht mehr nützlich sind.
  • Wenn das Leck am Ende der HK-Berechnung auftritt, dann könnte es einem Angreifer bis zu LMAX Bits an Informationen über den Endwert von HK geben, was LMAX Bits an Informationen über die Eingabe in die nachfolgende Transaktion ergibt. Dies ist kein Problem, da das Design auf der Annahme basiert, dass Angreifer bis zu LMAX Bits an Informationen über Kt zu Beginn jeder Transaktion haben.
  • Eine dritte Möglichkeit ist, dass die LMAX Bits an Informationen des Angreifers Zwischenwerte beschreiben könnten, die bei der Operation HK berechnet wurden. Aber selbst wenn der Angreifer LMAX neue Bits an Informationen über den Eingang von HK und auch LMAX Bits an Informationen über den Ausgang von HK erhalten könnte, wäre das System sicher, da der Angreifer niemals mehr als 2LMAX Bits an Informationen über den Kt Eingang oder mehr als LMAX Bits an Informationen über den Kt Ausgang hätte. Vorausgesetzt, dass LMAX Bits an Informationen aus HK nicht mehr als LMAX Bits an Informationen über den Eingang oder mehr als LMAX Bits an Informationen über den Ausgang offenbaren können, ist das System sicher. Dies gilt so lange, wie HK den Eingang nicht irgendwie komprimiert, um einen kurzen Zwischenwert zu bilden, der zur Bildung des Ausgangs expandiert wird. Da keine Hash-Funktionen verwendet werden sollen, deren interne Zustände geringer sind als ihre Ausgänge, sind die meisten kryptografischen Hash-Funktionen in Ordnung.
  • Eine vierte Möglichkeit ist, dass das Leck ganz oder teilweise während der Berechnung von A = HA(Kt||t||R) auftreten könnte. Das Gesamt-„Budget" des Angreifers für Beobachtungen ist LMAX Bits. Wenn L1 Bits an Leck bei der HK-Berechnung auftreten, dann können zusätzliche L2 Bits an Informationen bei der Operation A = HA(Kt||t||R) lecken, wobei L2 ≤ LMAX – L1 ist. Wenn das zweite Leck Informationen über Kt ergibt, dann unterscheidet sich dies nicht von Leckinformationen über das Ergebnis der HK-Berechnung; der Angreifer schließt die Transaktion weiterhin mit nicht mehr als LMRX Bits an Informationen über Kt ab, weil L1 + L2 ≤ LMAX ist. Das zweite Leck könnte jedoch Informationen über A offenbaren. Um A gegen Lecks sicher zu halten (um beispielsweise zu verhindern, dass ein Angreifer ein Leck zum Erfassen von A benutzt, und dass er A benutzt, bevor dies ein legitimer Benutzer kann), muss die Größe von A zusätzliche LMAX Bits enthalten (um Sicherheit selbst dann zu bieten, wenn L2 = LMAX ist). Wie HK, sollte HA keine Informationen über gelöschte oder zukünftige Werte von Kt auslecken, die nicht in der gegebenen Operation benutzt oder davon erzeugt werden. Wie bei den ähnlichen Annahmen über Lecks von HK, ist diese Begrenzung vornehmlich akademisch und nur von geringem praktischem Belang, da Leckfunktionen in Wirklichkeit keine Informationen über gelöschte oder noch nicht berechnete Daten offenbaren. Designer müssen jedoch vorsichtig sein, wenn sie versuchen, ungewöhnliche Designs für HA zu benutzen, die auf HK basieren oder davon abgeleitet sind, besonders dann, wenn die Operation HA(Kt||t||R) nützliche Informationen über das Ergebnis der Berechnung von HK(t||Kt) offenbaren könnte.
  • B. Andere leckbeständige symmetrische Ansätze
  • Dieselbe Grundtechnik zum Aktualisieren eines Key (K) mit jeder Transaktion, so dass ein Leck über einen Key während einer Transaktion keine nützlichen Informationen über einen Key in einer nachfolgenden (oder vergangenen) Transaktion offenbaren wird, lässt sich leicht auf andere Anwendungen außer der Authentifizierung ausdehnen.
  • 1. Symmetrische Datenverifikation
  • Zum Beispiel und ohne Beschränkung, eine leckbeständige symmetrische Datenverifikation ist häufig dort nützlich, wo ein Gerät Updates für symmetrisch signierten Code, Daten, Inhalt oder Parameter benötigt (die alle praktischerweise hierin als „Daten" bezeichnet werden). In existierenden Systemen wird typischerweise ein Hash oder MAC der Daten mit einem Secret-Key berechnet und die Daten werden zurückgewiesen, wenn der berechnete Hash- oder MAC-Wert nicht mit einem mit den Daten empfangenen Wert übereinstimmt. Zum Beispiel, ein MRC-Wert könnte als HMAC(K, Daten) berechnet werden, wobei HMAC in „RFC 2104, HMAC: Keyed-Hashing for Message Authentication" von H. Krawczyk, M. Bellare und R. Canetti, 1997, definiert wird. Traditionelle (nicht leckbeständige) Designs sind häufig für Attacken wie Leistungsaufnahmeanlayse von MAC-Funktionen und Zeitanalyse von Vergleichsoperationen anfällig.
  • In einem beispielhaften leckbeständigen Verifikationsprotokoll führt ein Verifizierungsgerät (der „Verifizierer") einen Zähler t und einen Key Kt, die mit t ← 0 und Kt ← K0 initialisiert werden (z.B. im Werk). Vor der Transaktion gibt der Verifizierer t an das Gerät aus, das die signierten Daten bereitstellt („Signierer") und das auch K0 kennt. Der Signierer verwendet t zum Berechnen von Kt + 1' (der Strich bedeutet eine Menge, die vom Signierer anstatt vom Verifizierer abgeleitet wurde) anhand von K0 (oder Kt' oder einem anderen verfügbaren Wert von Ki') unter Verwendung der Beziehung Ki' = HK(i||Ki – 1'), berechnet die Signatur S' = HMAC(Kt + 1', Daten) und sendet S' plus eventuelle andere benötigte Informationen (wie z.B. Daten oder t) zum Verifizierer. Der Verifizierer bestätigt, dass der empfangene Wert von t (ggf.) mit seinem Wert von t übereinstimmt und weist die Signatur zurück, wenn dies nicht der Fall ist. Wenn t übereinstimmt, dann inkrementiert der Verifizierer t und aktualisiert Kt in seinen nichtflüchtigen Speicher durch Berechnen von t ← t + 1 und Kt ← HK(t||Kt). In einer alternativen Ausgestaltung, wenn der empfangene Wert von t größer ist als der interne Wert, aber die Differenz nicht unangemessen groß ist, dann ist es möglicherweise geeigneter, die Signatur zu akzeptieren und mehrere Updates an Kt durchzuführen (um dem Signierer nachzukommen), anstatt die Signatur ganz zurückzuweisen. Schließlich berechnet der Verifizierer S = HMAC(Kt,Daten) und verifiziert, dass S = S' ist, wobei die Signatur zurückgewiesen wird, wenn S nicht gleich dem mit den Daten empfangenen Wert von S' ist.
  • 2. Symmetrische Verschlüsselung
  • Neben Authentifizierung und Verifizierung kann eine leckbeständige symmetrische Kryptografie auch auf eine Reihe verschiedener Anwendungen und Umgebungen zugeschnitten werden. Wenn beispielsweise Datenverschlüsselung anstatt Authentifizierung gewünscht wird, dann können dieselben Techniken wie oben offenbart auch zum Erzeugen eines Key Kt verwendet werden, der zur Verschlüsselung anstatt zur Verifizierung verwendet wird.
  • 3. Variationen der rechnerischen Implementation
  • Es wurden oben verschiedene Anwendungen für die Grundtechnik des Aktualisierens eines Key Kt gemäß einem Zähler und des Löschens alter Key-Werte offenbart, um zu gewährleisten, dass zukünftige Lecks keine Informationen über den jetzt gelöschten Key offenbaren können. Die Fachperson wird jedoch erkennen, dass die oben beschriebenen beispielhaften Techniken auf verschiedene Weisen modifiziert werden können. Wenn beispielsweise Kommunikationen zwischen dem Gerät und dem Server unzuverlässig sind (z.B. wenn der Server Spracherkennung oder manuelle Eingabe zum Empfangen von t und A verwendet), dann können kleine Fehler in der Signatur ignoriert werden. (Die Fachperson wird erkennen, dass viele Funktionen benutzt werden können, um zu ermitteln, ob eine Signatur – eng genug – mit ihrem erwarteten Wert übereinstimmt.) In einer anderen Variation der Grundtechnik kann die Reihenfolge von Operationen und von Datenwerten eingestellt werden, oder zusätzliche Schritte und Parameter können hinzugefügt werden. In einer anderen Variation brauchen, um Kommunikationsbandbreite oder Speicherkapazität zu sparen, höhere Bits oder Stellen von t nicht kommuniziert oder gespeichert zu werden. In einer anderen Variation brauchen Geräte, als Leistungsoptimierung, Kt nicht mit jeder neuen Transaktion von K0 neu zu berechnen. Zum Beispiel, wenn eine Transaktion erfolgreich verläuft, kann der Server K0 verwerfen und kann die validierte Version von Kt behalten. In einer anderen Variation kann das Protokoll, wenn eine bidirektionale Authentifizerung benötigt wird, einen Schritt beinhalten, in dem der Server sich dem Benutzer (oder dem Token des Benutzers) nach Abschluss der Benutzerauthentifizierung selbst authentifiziert. In einer anderen Variation kann der Server, wenn er ebenfalls gegen Lecks gesichert werden soll (wie in dem Fall, bei dem die Rolle des „Servers" von einem gewöhnlichen Benutzer gespielt wird), seinen eigenen Zähler t führen. In jeder Transaktion vereinbaren die Parteien, den größeren ihrer beiden Werte von t zu benutzen, wobei das Gerät mit dem kleineren t-Wert zusätzliche Updates an Kt ausführt, um t zu synchronisieren. In einer anderen Ausgestaltung für Geräte, die einen Taktgeber und eine zuverlässige Leistungsquelle (z.B. Batterie) enthalten, kann die Update-Operation periodisch ausgeführt werden, z.B. durch Berechnen von Kt ← HK(t||Kt) einmal pro Sekunde. Das Token verwendet den aktuellen Kt-Wert zum Berechnen von A = HA(Kt||t||R) oder kann, wenn das Token kein Mittel zum Empfangen von R hat, A = HA(Kt) ausgeben. Der Server kann seinen Taktgeber und seine lokale Kopie des Geheimnisses zum Führen seiner eigenen Version von Kt verwenden, die es benutzen kann, um zu ermitteln, ob empfangene Werte von A neu und korrekt sind. Alles oben Gesagte zeigt, dass die hierin beschriebenen beispielhaften Ausgestaltungen mit zahlreichen Variationen und Modifikationen ausgeführt werden können, wie die Fachperson verstehen wird.
  • III. Asymmetrische Verschlüsselungsprotokolle
  • Das oben Gesagte illustriert verschiedene Ausgestaltungen der Erfindung, die mit symmetrischen Verschlüsselungsprotokollen angewendet werden können. Wie nachfolgend ersichtlich wird, können noch weitere Ausgestaltungen der vorliegenden Erfindung in Verbindung mit asymmetrischen Verschlüsselungsoperationen und -protokollen zur Anwendung kommen. Während symmetrische Kryptosysteme für einige Anwendungen ausreichen, ist für viele Anwendungen eine asymmetrische Verschlüsselung erforderlich. Es gibt mehrere Möglichkeiten, wie Leckbeständigkeit in Public-Key-Kryptosysteme integriert werden kann, aber es wird häufig bevorzugt, die Gesamtsystemarchitektur so wenig wie möglich zu beeinflussen. In den meisten beispielhaften Designs wurde daher gewählt, Leckbeständigkeit in weithin eingesetzte Krytosysteme auf eine Weise zu integrieren, die nur das Key-Management-Gerät verändert und den Zertifikationsprozess, das Zertifikatformat, das Public-Key-Format oder Prozesse zur Verwendung des Public-Key nicht beeinflusst.
  • A. Zertifizierter Diffie-Hellman-Ansatz
  • Ein Diffie-Hellman-Exponential-Key-Austausch ist ein weithin eingesetztes asymmetrisches Protokoll, bei dem zwei Parteien, die keinen gemeinsamen Secret-Key benutzen, einen gemeinsamen Secret-Key negoziieren können. Implementationen von Diffie-Hellman können Informationen über die geheimen Exponenten auslecken, so dass Angreifer die von diesen Implementationen erzeugten Secret-Keys ermitteln können. Demzufolge wäre eine leckbeständige Implementation von Diffie-Hellman nützlich. Um eine solche leckbeständige Implementation zu verstehen, ist es nützlich, zunächst eine herkömmliche Diffie-Hellman-Implementation zu betrachten.
  • 1. Konventioneller zertifizierter Diffie-Hellman
  • Typische Protokolle im Stand der Technik zum Ausführen einer zertifizierten Diffie-Hellman Exponential-Key-Vereinbarung beinhalten zwei miteinander kommunizierende Benutzer (oder Geräte) und eine Zertifizierungsbehörde (CA). Die CA verwendet einen asymmetrischen Signaturalgorithmus (wie z.B. DSA) zum Signieren von Zertifikaten, die öffentliche Diffie-Hellman Parameter eines Benutzers vorgeben (Primzahl p und Generator g), den Public-Key (px mod g, wobei x die Geheimexponente des Benutzers ist) und Zusatzinformationen (wie z.B. die Identität des Benutzers, eine Beschreibung von dem Zertifikathalter gewährten Privilegien, eine Seriennummer, Ablaufdatum usw.). Zertifikate können von jedem mit dem Public-Signatur-Verifikations-Key verifiziert werden. Um ein Zertifikat zu erhalten, erzeugt ein Benutzer U gewöhnlich einen geheimen Exponenten (xu), berechnet seinen eigenen Public-Key yu = gx mod p, präsentiert yu zusammen mit eventuellen notwendigen zusätzlichen identifizierenden oder authentifizierenden Informationen (z.B. einen Pass) der CA, die dem Benutzer ein Zertifikat Cu ausstellt. Je nach dem System können p und g für jeden Benutzer eindeutig sein oder sie können systemweite Konstanten sein (wie in der nachfolgenden Beschreibung von Diffie-Hellman mit dem Stand der Technik angenommen wird).
  • Mittels Methoden des Standes der Technik können Alice und Bob ihre Zertifikate zum Einrichten eines sicheren Kommunikationskanals verwenden. Sie tauschen zunächst Zertifikate aus (CAlice und CBob). Jeder verifiziert, dass das Zertifikat des anderen akzeptabel ist (z.B. richtig formatiert, ordnungsgemäß von einer vertrauenswürdigen CA signiert, nicht abgelaufen, nicht widerrufen usw.). Da dieses Protokoll davon ausgeht, dass p und g Konstanten sind, prüfen sie auch, dass die Werte von p und g des Zertifikats mit den erwarteten Werten übereinstimmen. Alice extrahiert Bobs Public-Key (YBob) von CBob und verwendet ihren geheimen Exponenten (xAlice) zum Berechnen von zAlice = (YBob)XAlice mod p. Bob verwendet seinen geheimen Exponenten und Alices Public-Key zum Berechnen von zBob = (YAlice)XBob mod p. Wenn alles richtig funktioniert, dann ist zAlice = zBob, da:
    Figure 00260001
  • Somit haben Alice und Bob einen gemeinsamen Key z = zAlice = zBob. Ein Angreifer, der sich als Alice ausgibt, aber ihren geheimen Exponenten (xAlice) nicht kennt, kann zAlice = (YBob)XAlice mod p nicht korrekt berechnen. Alice und Bob können sich selbst positiv identifizieren, indem sie zeigen, dass sie z korrekt gefunden haben. So können beispielsweise beide dem anderen das Hash von z mit ihrem eigenen Zertifikat verkettet berechnen und senden. Nachdem Alice und Bob sich gegenseitig verifiziert haben, können sie einen symmetrischen Key benutzen, der von z abgeleitet wurde, um ihre Kommunikationen zu sichern. (Ein Beispiel für ein Protokoll im Stand der Technik, das authentifizierten Diffie-Hellman benutzt, siehe in „SSL Protocol Version 3.0" von A. Freier, P. Karlton und P. Kocher, März 1996).
  • 2. Leckbeständiger zertifizierter Diffie-Hellman
  • Ein zufriedenstellender Leckbeständiger Public-Key-Verschlüsselungsansatz müsste das Problem überwinden, dass, obwohl eine Zertifikation verlangt, dass der Public-Key konstant ist, Informationen über den entsprechenden Private-Key nicht aus dem Token auslecken dürfen, das ihn enthält. In dem oben beschriebenen symmetrischen Protokoll basiert das Design auf der Annahme, dass die Leckfunktion keine nützlichen Informationen über alte gelöschte Werte von Kt oder zukünftige Werte von Kt offenbart, die noch nicht berechnet sind. Existierende Public-Key-Ansätze verlangen jedoch, dass Implementationen wiederholt eine einheitliche, gewöhnlich deterministische Operation unter Verwendung des Private-Key durchführen. So sollte beispielsweise im Falle von Diffie-Hellman ein leckbeständiges Token, das mit existierenden Protokollen und Implementationen kompatibel ist, in der Lage sein, die Secret-Key-Operation yx mod p auszuführen und dabei zu gewährleisten, dass der Exponent x geheim bleibt. Eine radikale Verwürfelung des Geheimnisses, durch die Hash-Funktion HK im symmetrischen Ansatz ermöglicht, kann nicht angewendet werden, weil das Gerät in der Lage sein soll, dieselbe Operation einheitlich durchzuführen.
  • Die vom Token benutzten Operationen zum Ausführen der Private-Key-Operation werden mit den folgenden Variablen modifiziert, so dass Leckbeständigkeit hinzukommt:
    Register Kommentar
    x1 Erster Teil des Secret-Key (im nichtflüchtigen aktualisierbaren Speicher)
    x2 Zweiter Teil des Secret-Key (im nichtflüchtigen aktualisierbaren Speicher)
    g Der Generator (nicht geheim)
    p Die Public-Primzahl, gewöhnlich eine starke Primzahl (nicht geheim).
  • Die Primzahl p und der Generator g können globale Parameter sein oder sie können für individuelle Benutzer oder Gruppen von Benutzern (oder Tokens) spezifisch sein. In jedem Fall soll der Zertifikatempfänger in der Lage sein, p und g sicher zu erhalten, gewöhnlich als eingebaute Konstanten oder durch Extrahieren derselben aus dem Zertifikat.
  • Zum Erzeugen eines neuen Secret-Key holt das Key-Erzeugungsgerät (häufig, aber nicht immer, das kryptografische Token, das den Key enthält) zunächst p und g ein oder erzeugt sie, wobei p die Primzahl und g ein Generator mod p ist. Wenn p und g keine systemweiten Parameter sind, dann können im Stand der Technik bekannte Algorithmen zum Wählen großer Primzahlen und Generatoren angewendet werden. Es wird empfohlen, dass für p mit p – 1/2 ebenfalls eine Primzahl gewählt wird, oder wenigstens, dass Φ(p) nicht glatt ist. (Wenn p – 1/2 keine Primzahl ist, dann können Informationen über x1 und x2 modulo kleine Faktoren von Φ(p) auslecken, und aus diesem Grund wird bevorzugt, dass Φ(p) nicht glatt ist. Man beachte, dass Φ eine Eulersche Totientenfunktion bedeutet.) Nach dem Wählen von p und g erzeugt das Gerät zwei Zufallsexponenten x1 und x2. Das niedrigstwertige Bit von x1 und x2 wird nicht als geheim angesehen und kann auf 1 gesetzt werden. Mittels p, g, x1 und x2 kann das Gerät dann seinen Public-Key als gx1x2 mod p berechnen und, zusammen mit evtl. benötigten Identifikationsinformationen oder benötigten Parametern (z.B. p und g), der CA zur Zertifizierung vorlegen.
  • 2 illustriert den Vorgang, den das Token durchführt, um Private-Key-Operationen durchzuführen. In Schritt 205 erhält das Token die Eingangsmeldung y, seine eigene (nicht geheime) Primzahl p und seine eigenen Secret-Key-Hälften (x1 und x2). Wenn x1, x2 und p in verschlüsselter und/oder authentifizierter Form gespeichert sind, dann würden sie an dieser Stelle entschlüsselt oder verifiziert. In diesem Schritt muss das Token prüfen, ob 1 < y < p – 1 ist. In Schritt 210 verwendet das Token einen Zufallsgenerator (oder Pseudozufallsgenerator) zum Wählen einer zufälligen ganzen Zahl b0, wobei 0 < b0 < p ist. In Schritt 215 berechnet das Token b1 = b0 – 1 mod p. Die Umkehrberechnung mod p kann mit dem erweiterten euklidischen Algorithmus oder mit der Formel b1 = b0Φ(p) – 1 mod p erfolgen. In Schritt 220 berechnet das Token b2 = b1x1 mod p. An dieser Stelle wird b1 nicht mehr benötigt; sein Speicherplatz kann zum Speichern von b2 verwendet werden. Effiziente Algorithmen zum Berechnen einer modularen Potenzierung, in der Technik weithin bekannt, kann zum Ausführen von Schritt 220 zum Einsatz kommen. Alternativ kann die Berechnung von b2, wenn ein schneller modularer Potenzierer zur Verfügung steht, mit der Beziehung b2 = b0Φ(p) – x1 mod p erfolgen. In Schritt 225 berechnet das Token b3 = b2x2 mod p. An dieser Stelle wird b2 nicht mehr benötigt; sein Speicherplatz kann dann zum Speichern von b3 benutzt werden. In Schritt 230 berechnet das Token z0 = b0y mod p. An dieser Stelle werden y und b0 nicht mehr benötigt. Ihr Platz kann zum Speichern von r1 (in Schritt 235 berechnet) und z0 benutzt werden. In Schritt 235 verwendet das Token einen Zufallsgenerator zum Wählen einer zufälligen ganzen Zahl r1, wobei 0 < r1 < Φ(p) und gcd (r1, Φ(p)) = 1 sind. (Wenn p – 1/2 als Primzahl bekannt ist, dann reicht es aus zu verifizieren, dass r1 ungerade ist.) In Schritt 240 aktualisiert das Token x1 durch Berechnen von x1 ← x1 r1 mod Φ(p). Der alte Wert von x1 wird gelöscht und durch den aktualisierten Wert ersetzt. In Schritt 245 berechnet das Token r2 = (r1 – 1) mod Φ(p). Wenn p – 1/2 eine Primzahl ist, dann kann r2 mit einem modularen Potenzierer und dem Chinese Remainder Theorem gefunden werden. Man beachte, dass r1 nach diesem Schritt nicht benötigt wird, so dass dieser Raum zum Speichern von r2 benutzt werden kann. In Schritt 250 aktualisiert das Token x2 durch Berechnen von x2 ← x2r2 mod Φ(p). Der alte Wert von x2 sollte gelöscht und durch den aktualisierten Wert ersetzt werden. In Schritt 255 berechnet das Token z1 = (z0)x1 mod p. Man beachte, dass z0 nach diesem Schritt nicht mehr benötigt wird, daher kann sein Raum zum Speichern von z1 benutzt werden. In Schritt 260 berechnet das Token z2 = (z1)x2 mod p. Man beachte, dass z1 nach diesem Schritt nicht mehr benötigt wird, daher kann sein Raum zum Speichern von z2 benutzt werden. In Schritt 265 findet das Token das Ergebnis des Exponential-Key-Austauschs durch Berechnen von z = z2b3 mod p. Schließlich löscht das Token in Schritt 270 evtl. verbleibende temporäre Variablen und gibt sie frei.
  • Der in 2 gezeigt Prozess berechnet korrekt z = yx mod p, wobei x = x1 x2 mod Φ(p) ist, da:
    Figure 00310001
  • Das System ist für Private-Key-Besitzer nützlich, die mit anderen Benutzern (oder Geräten) kommunizieren, die Zertifikate haben, und auch dann, wenn sie mit Benutzern kommunizieren, die keine haben.
  • Wenn Alice ein Zertifikat hat und mit Bob kommunizieren möchte, der kein Zertifikat hat, dann läuft das Protokoll wie folgt ab. Alice sendet ihr Zertifikat (CAlice) zu Bob, der es empfängt und verifiziert, ob es akzeptabel ist. Bob extrahiert yAlice (zusammen mit pAlice und gAlice, es sei denn, dass sie systemweite Parameter sind) von CAlice. Als Nächstes erzeugt Bob einen Zufallsexponenten xBA, wobei 0 < xAB < Φ(pAlice) ist. Bob verwendet dann seinen Exponenten xAB und Alices Parameter zum Berechnen von
    Figure 00310002
    und den Session-Key
    Figure 00310003
    Bob sendet yBA zu Alice, die die in 2 illustrierte Operation zum Aktualisieren ihrer internen Parameter und zum Ableiten von z von yBA ausführt. Alice weist dann nach, dass sie z korrekt berechnet hat, z.B. indem sie H(z||CAlice) zu Bob sendet. (Alice kann dann Bob nicht authentifizieren, weil er kein Zertifikat hat. Demzufolge braucht sie nicht unbedingt zu verifizieren, dass er z erfolgreich berechnet hat.) Schließlich können Alice und Bob z (oder, üblicher, einen von z abgeleiteten Key) zum Sichern ihrer Kommunikationen verwenden.
  • Wenn sowohl Alice als auch Bob Zertifikate haben, dann läuft das Protokoll wie folgt ab. Zunächst tauschen Alice und Bob Zertifikate (CAlice und CBob) aus und jeder verifiziert, ob das Zertifikat des anderen gültig ist. Alice extrahiert dann die Parameter pBob, gBob und yBob von CBob, und Bob extrahiert pAlice, gAlice und yAlice von CAlice. Alice erzeugt dann einen Zufallsexponenten xAB, wobei 0 < xAB < Φ(pBob) ist, berechnet
    Figure 00320001
    und berechnet
    Figure 00320002
    Bob erzeugt einen zufälligen xBA, wobei 0 < xBA < Φ(pAlice) ist, berechnet
    Figure 00320003
    und berechnet
    Figure 00320004
    Bob sendet yBA zu Alice und Alice sendet yAB zu Bob. Alice und Bob führen jeweils die in 2 gezeigte Operation durch, wobei jeder die Primzahl p aus dem eigenen Zertifikat benutzt und seine eigenen Geheimexponentenhälften (x1 und x2) benutzt. Für die Meldung y in 2 verwendet Alice yBA (von Bob erhalten) und Bob benutzt yAB (von Alice erhalten). Unter Anwendung des in 2 gezeigten Prozesses berechnet Alice z. Unter Verwendung von z und zAB (zuvor berechnet) kann sie einen Session-Key K finden. Dies kann beispielsweise mit Hilfe einer Hash-Funktion H zum Berechnen von K = H (z||zAB) geschehen. Der Wert von z, den Bob mit dem in 2 gezeigten Prozess einholt, müsste gleich Alices zAB sein, und Bobs zBA (zuvor errechnet) müsste gleich Alices z sein. Wenn es keine Fehler oder Attacken gegeben hat, dann müsste Bob somit in der Lage sein, K zu finden, z.B. durch Berechnen von K = H(zBA||z). Alice und Bob benutzen jetzt K gemeinsam. Alice kann ihre Identität dadurch nachweisen, dass sie zeigt, dass sie K korrekt errechnet hat, z.B., indem sie H(K||CAlice) an Bob sendet. Bob kann seine eigene Identität dadurch nachweisen, dass er H(K||CBob) an Alice sendet. Alice und Bob können ihre Kommunikationen durch Verschlüsseln und Authentifizieren mit K oder einem von K abgeleiteten Key sichern.
  • Man beachte, dass dieses Protokoll, wie die anderen, nur beispielhaft ist; es sind viele Variationen und Erweiterungen der vorliegenden Erfindung möglich und werden für die Fachperson offensichtlich sein. So können beispielsweise Zertifikate aus einem Verzeichnis kommen, mehr als zwei Parteien können an der Key-Vereinbarung teilnehmen, Key-Escrow-Funktionen können hinzugefügt werden, die Primzahl Modulus p kann durch eine zusammengesetzte Zahl ersetzt werden, usw. Man beachte auch, dass Alice und Bob, wie sie in dem Protokoll genannt werden, nicht unbedingt Personen sind; sie wären normalerweise Computer, Verschlüsselungsgeräte usw.
  • Damit Leckbeständigkeit effektiv sein kann, dürfen Angreifer nicht in der Lage sein, neue nützliche Informationen über die geheimen Variablen mit jeder zusätzlichen Operation zu erhalten, es sei denn, dass eine vergleichbare Menge an alten nützlichen Informationen nutzlos gemacht wird. Das symmetrische Design basiert zwar auf der Annahme, dass ausgeleckte Informationen die Hash-Operation HK nicht überleben, aber dieses Design verwendet Multiplikationsoperationen mod Φ(p) zum Aktualisieren von x1 und x2. Die üblichste Varietät von geleckten Informationen, statistischen Informationen über Exponentenbits, ist für Angreifer in diesem Design nicht von Nutzen, da der Exponenten-Update-Prozess (x, ← x1r1 mod Φ(p) und x2 ← x2r2 mod Φ(p)) den Nutzen dieser Informationen zerstört. Die einzige relevante Charakteristik, die den Update-Prozess überlebt, ist, dass x1x2 mod Φ(p) konstant bleibt, so dass der Systemdesigner vorsichtig sein muss, um zu gewährleisten, dass die Leckfunktion keine Informationen offenbart, die es dem Angreifer gestatten, neue nützliche Informationen über x1x2 mod Φ(p) herauszufinden.
  • Es gibt eine mäßige Leistungseinbuße, etwa mit einem Faktor von vier, für das beschriebene leckbeständige Design. Eine Möglichkeit zum Verbessern der Leistung besteht darin, die Aus- und Einblendoperationen zu beseitigen, die häufig unnötig sind. (Die Ausblendoperationen verhindern, dass Angreifer Eingangswerte von y mit den durch die modulare Potenzierungsoperation verarbeiteten Zahlen korreliert.) Alternativ oder zusätzlich ist es möglich, Werte von b0, b3, r1 und r2 durch Berechnen von b0 ← (b0) v mod p, b3 ← (b3)v mod p, r1 ← (r1)w mod Φ(p) und r2 ← (r2)w mod Φ(p) zu aktualisieren und wiederzuverwenden, wobei v und w recht kurze Zufallsexponenten sind. Man beachte, dass die Beziehung b3 ← b0 – x1x2 mod p wahr bleibt, wenn b0 und b3 zur Potenz v (mod p) erhoben werden. Die Beziehung r2 = (r1 – 1) mod Φ(p) bleibt ebenfalls wahr, wenn r1 und r2 potenziert werden (mod Φ(p)). Es können auch andere Parameter-Update-Operationen zur Anwendung kommen, wie z.B. Potenzierung mit festen Exponenten (z.B. v = w = 3) oder Multiplikation mit Zufallswerten und deren Umkehr, mod p und Φ(p). Die Zeit pro Transaktion mit diesem Update-Prozess ist etwa die Hälfte von der der unoptimierten leckbeständigen Implementation, aber es wird zusätzliche Speicherung benötigt und es ist sorgfältig darauf zu achten, dass b0, b3, r1 und r3 nicht lecken oder auf andere Weise kompromittiert werden.
  • Es ist auch zu bemerken, dass mit diesem besonderen Typ von zertifiziertem Diffie-Hellman der negoziierte Key jedesmal derselbe ist, wenn ein bestimmtes Benutzerpaar kommuniziert. Demzufolge kann, obwohl die mit b0 und b3 durchgeführte Ausblendoperation die Exponenten nicht schützt, das Ergebnis K im letzten Schritt oder von dem System nach Abschluss des Prozesses auslecken. Wenn Speicherplatz zur Verfügung steht, dann sollten Parteien die Werte von y verfolgen, die sie empfangen haben (oder ihre Hashes) und Duplikate zurückweisen. Alternativ können Alice und Bob, um zu gewährleisten, dass ein anderes Ergebnis von jeder Negoziierung erhalten wird, zusätzliche Exponenten wAlice und wBob erzeugen und austauschen, z.B. mit 0 < w < 2128 (wobei 2128 << p ist). Alice setzt
    Figure 00350001
    anstatt nur y = yBA, und Bob setzt
    Figure 00350002
    anstatt y = yAB vor dem Ausführen der in 2 gezeigten Operation.
  • B. Leckbeständiger RSA
  • Ein weiteres asymmetrisches Verschlüsselungsprotokoll ist RSA, der weithin für digitale Signaturen und Public-Key-Verschlüsselung zum Einsatz kommt. RSA-Private-Key-Operationen beruhen auf geheimen Exponenten. Wenn Informationen über diese geheimen Exponenten von einer Implementation lecken, dann kann ihre Sicherheit kompromittiert werden. Demzufolge wäre eine leckbeständige Implementation von RSA nützlich.
  • Um RSA-Private-Key-Operationen Leckbeständigkeit zu verleihen, kann der geheime Exponent in zwei Hälften unterteilt werden, so dass Informationen über beide Hälften mit jeder Operation zerstört werden. Dies sind zwei Arten von RSA-Private-Key-Operationen. Die erste, Private-Key-Signierung, beinhaltet das Signieren einer Meldung mit dem eigenen Private-Key zum Erzeugen einer digitalen Signatur, die von jedermann mit einem entsprechenden Public-Key verifiziert werden kann. RSA-Signierungsoperationen beinhalten das Berechnen von S = Md mod n, wobei M die Meldung ist. S ist die Signatur (die mit M = Se mod n verifiziert werden kann), d ist der geheime Exponent und ist gleich e – 1 mod Φ(n), und n ist der Modulus und ist gleich pq, wobei n und e Public- und p und q Secret-Primzahlen sind, und Φ ist die Eulersche Phi-Funktion. Ein RSA-Public-Key besteht aus e und n, während ein RSA-Private-Key aus d und n besteht (oder anderen Repräsentationen davon). Damit RSA sicher ist, müssen d, Φ(n), p und q alle geheim sein.
  • Die andere RSA-Operation ist Entschlüsselung, die angewendet wird, um mit dem eigenen Public-Key verschlüsselte Meldungen wiederherzustellen. RSA-Entschlüsselung ist praktisch identisch mit dem Signieren, da die entschlüsselte Meldung M vom Schlüsseltext C durch Berechnen von M = Cd mod n wiederhergestellt wird, wobei der Schlüsseltext C durch Berechnen von C = Me mod n erzeugt wurde. In der folgenden Erörterung werden zwar Variablennamen von der RSA-Signierungsoperation verwendet, aber dieselben Techniken können ebenso auf Entschlüsselung angewendet werden.
  • Ein beispielhafter leckbeständiger Ansatz für RSA-Implementationen kann wie in 3 illustriert konstruiert werden. In Schritt 300 wird das Gerät vor dem Beginn von Signierungs- und Entschlüsselungsoperationen mit den Public- und Private-Keys initialisiert (oder es erzeugt diese). Das Gerät enthält den Public-Modulus n und die Secret-Key-Komponenten d1, d2 und z und k, wobei k eine Primzahl mittlerer Größe ist (z.B. 0 < k < 2128), die zufällig gewählt wird, z = kΦ (n), d1 ist eine Zufallszahl, so dass 0 < d1 < z und gcd(d1, z) = 1 und d2 = (e – 1 mod Φ(n))(d1 – 1 mod z) mod z sind. In diesem beispielhaften Ansatz ersetzen d1 und d2 den gewöhnlichen RSA-Geheimexponenten d. Techniken zum Erzeugen der anfänglichen RSA-Primzahlen (z.B. p und q) und Modulus (n) sind in der Technik gut bekannt. In Schritt 305 berechnet das Gerät eine zufällige Primzahl k' mittlerer Größe (z.B. 0 < k' < 2128). (Algorithmen zum effizienten Erzeugen von Primzahlen sind in der Technik bekannt.)
  • In Schritt 303 empfängt das Gerät (Token) eine Meldung M zum Signieren (oder zum Entschlüsseln). In Schritt 310 aktualisiert das Gerät z durch Berechnen von z ← k'z. In Schritt 315 aktualisiert das Gerät z wieder durch Berechnen von z ← z/k. (Bei dieser Operation darf kein Rest entstehen, da k durch z teilbar ist.) In Schritt 320 wird k durch k' durch Ausführen von k ← k' ersetzt. Da k' in nachfolgenden Operationen nicht verwendet wird, kann sein Speicherplatz zur Aufnahme von R (in Schritt 325 erzeugt) verwendet werden. In Schritt 325 wählt das Gerät ein zufälliges R, wobei 0 < R < z und gcd(R, z) = 1 ist. In Schritt 330 aktualisiert das Gerät d1 durch Berechnen von d1 ← d1R mod z. In Schritt 335 findet das Gerät die Umkehr von R durch Berechnen von R' ← R – 1 mod z beispielsweise unter Anwendung des erweiterten euklidischen Algorithmus. Man beachte, dass R nach diesem Schritt nicht mehr benötigt wird, daher kann sein Speicherplatz gelöscht und zur Aufnahme von R' verwendet werden. In Schritt 340 aktualisiert das Gerät d2 durch Berechnen von d2 ← d2R' mod z. In Schritt 345 berechnet das Gerät S0 = Md1 mod n, wobei M die Eingangsmeldung ist, die die zu signierende (oder die zu entschlüsselnde Meldung) ist. Man beachte, dass M nach diesem Schritt nicht mehr benötigt wird, daher kann sein Speicherplatz für S0 benutzt werden. In Schritt 350 berechnet das Gerät S = S0d2 mod n, was die endgültige Signatur (oder Klartext, wenn eine Meldung entschlüsselt wird) ergibt. Leckbeständiger RSA hat ähnliche Sicherheitseigenschaften wie normaler RSA: standardmäßige Meldungsauffüllung, Nachverarbeitung und Key-Größen können angewendet werden. Public-Key-Operationen werden ebenfalls normal durchgeführt (z.B. M = Se mod n).
  • Ein einfacherer RSA-Leckbeständigkeitsansatz kann durch Teilen des Exponents d in zwei Hälften d1 und d2 implementiert werden, so dass d1 + d2 = d ist. Dies kann bei einer Key-Erzeugung dadurch erzielt werden, dass d1 als zufällige ganze Zahl gewählt wird, wobei 0 ≤ d1 ≤ d ist, und durch Wählen von d2 ← d – d1. Zum Ausführen von Private-Key-Operationen braucht das Gerät d1 und d2, braucht aber d nicht zu enthalten. Vor jeder Private-Key-Operation identifiziert das Verschlüsselungsgerät, ob d1 oder d2 größer ist. Wenn d1 > d2 ist, dann berechnet das Gerät eine zufällige ganze Zahl r, bei der 0 ≤ r ≤ d1 ist, addiert r zu d2 (d.h. d2 ← d2 + r) und subtrahiert r von d1 (d.h. d1 ← d1 – r). Ansonsten, wenn d1 ≤ d2 ist, wählt das Gerät eine zufällige ganze Zahl r, wobei 0 ≤ r ≤ d2 ist, addiert r zu d1 (d.h. d1 ← d1 + r) und subtrahiert r von d2 (d.h. d2 ← d2 – r). Dann berechnet das Gerät zum Ausführen der Private-Key-Operation an einer Meldung M s1 = Md1 mod n, s2 = Md2 mod n, und berechnet die Signatur S = s1s2 mod n. Dieser Ansatz des Teilens des Exponents in zwei Hälften, deren Summe gleich dem Exponenten ist, kann zwar auch mit Diffie-Hellman und anderen Kryptosystemen angewendet werden, aber das Teilen des Exponents in das Produkt von zwei Zahlen modΦ(p) wird gewöhnlich bevorzugt, da die Annahme, dass Informationen über d1 + d2 nicht lecken, weniger konservativ ist als die Annahme, dass Informationen über x1x2 modΦ(p) nicht auslecken. Im Falle von RSA können Updates modΦ(n) nicht sicher erfolgen, da Φ(n) geheim gehalten werden muss. Wenn zwecks Leistung das Chinese Remainder Theorem (CRT) erforderlich ist, dann ist es möglich, ähnliche Techniken zum Hinzufügen von Leckbeständigkeit durch Führen von Vielfachen der geheimen Primzahlen (p und q) anzuwenden, die jedesmal aktualisiert werden (z.B. Multiplizieren mit dem neuen Vielfachen, dann Dividieren durch das alte Vielfache). Diese Techniken schützen auch die Exponenten (dp und dq) als Vielfache ihrer normalen Werte. Am Ende der Operation wird das Ergebnis S zum Kompensieren für die Justierungen an dp, dq, p und q korrigiert.
  • Eine beispielhafte Ausgestaltung führt Statusinformationen bestehend aus den Werten n, Bt, Bp k, pk, qk, dpk, dqk, Pinv and f. Zum Konvertieren eines herkömmlichen RSA CRT Private-Key (bestehend aus p, q, dp und dq mit p < q) in die neue Repräsentation wird ein Zufallswert für k gewählt, wobei 0 < k < 264 ist. Der Wert Bt wird zufällig gewählt, wobei 0 < Bi < n ist, und R1 und R2 werden zufällig gewählt, wobei 0 < R1 < 264 und 0 < R2 < 264 ist. (Natürlich werden Konstanten wie 264 als Beispielwerte gewählt. Es ist möglich, aber nicht notwendig, Zufallszahlen mit Einschränkungen zu belegen, wie z.B. zu verlangen, dass sie Primzahlen sind.) Der leckbeständige Private-Key-Zustand wird dann durch Setzen von n ← pq, Bf ← Bi-d mod n, pk ← (k) (p), qk ← (k) (q), dpk dp + (R1)(p) – R1, dqk ← dq + (R2)(q) – R2, Pinv ← k(p – 1 mod q) und f ← 0 initialisiert.
  • Zum Aktualisieren des Systemzustands kann zunächst ein Zufallswert a produziert werden, wobei 0 < α < 264 ist. Dann werden pk ← ((α)(pk))/k, qk ← ((α)(qk))/k, pinv ← ((α)(pinv))/k, k ← α berechnet. Die Exponenten dpk und dqk können durch Berechnen von dpk ← dpk ± (R3pk – R3k) und dqk ← dqk ± (R4gk – R4k) aktualisiert werden, wobei R3 und R4 zufällige oder konstante Werte sein können (sogar 1). Die Ausblendfaktoren Bi und Bf können durch Berechnen von Bi-Bi2 mod n und Bf-Bf2 mod n, durch Berechnen von zwei neuen Ausblendfaktoren, durch Potenzieren mit einem anderen Wert als 2 usw. aktualisiert werden. Update-Prozesse sind so oft wie praktisch möglich auszuführen, z.B. vor und nach jedem modularen Potenzierungsprozess. Vor Beginn des Updates wird ein Fehlerzähler f inkrementiert, und am Ende des Update wird f auf null gesetzt. Wenn f jemals einen Schwellenwert übersteigt, der zu viele aufeinander folgende Fehler anzeigt, dann sollte sich das Gerät selbst vorübergehend oder permanent sperren. Man beachte, dass bei einer Unterbrechung des Update-Prozesses Speicherwerte nicht in Zwischenzuständen gelassen werden sollten. Dies kann dadurch erfolgen, dass vollständige zuverlässige Speicher-Updates verwendet werden. Wenn der gesamte Satz von Variablenänderungen für ein einzelnes vollständiges Update zu groß ist, dann kann zunächst a gespeichert und dann jedes Variablen-Update zuverlässig durchgeführt werden, während verfolgt wird, wie viele vollendet wurden.
  • Zum Ausführen einer Private-Key-Operation (wie z.B. Entschlüsselung oder Signieren) wird die Eingangsmeldung C vom modularen Potenzierer empfangen. Als Nächstes wird der Wert durch Berechnen von C ← (C)(Bi) mod n ausgeblendet. Der ausgeblendete Eingangswert wird dann zum Berechnen von modifizierten CRT-Zwischenwerten durch Berechnen von mpk (C)dpk mod pk und mqk ← (C')dqk mod qk benutzt. Als Nächstes werden in der beispielhaften Ausgestaltung die CRT-Zwischenwerte mit k multipliziert, z.B. mpk ← (k)(mpk) mod pk und mqk ← (k)(mgk) mod qk. Die CRT-Differenz wird dann als mpqk = (mpk[+ qk] – mqk)[mod qk] berechnet, wobei die Addition von qk und/oder die Reduzierung von mod qk fakultativ sind. (Die Addition von qk gewährleistet, dass das Ergebnis nicht negativ ist.) Das ausgeblendete Ergebnis kann berechnet werden als
    Figure 00410001
    dann wird das Endergebnis M berechnet als M = (M')Bf mod n.
  • Wie die durchschnittliche Fachperson verstehen wird, sind Variantenformen des Systems möglich. So können beispielsweise die Rechenvorgänge umgeordnet oder modifiziert werden. Einige Teile (wie z.B. die Anfangs- und Ausblendschritte) können übersprungen werden. In einem anderen Beispiel ist es auch möglich, mehrere Ausblendfaktoren (z.B. anstatt oder zusätzlich zum Wert von k) zu verwenden.
  • In einigen Fällen sind möglicherweise andere Techniken ebenso geeignet. So können z.B. Exponentenvektorcodierungen neu gewählt werden, die häufig beispielsweise einen Zufallsgenerator verwenden. Auch eine Montgomery-Arithmetik mod j kann durchgeführt werden, wobei j ein Wert ist, der sich mit jeder Operation ändert (im Gegensatz zu traditionellen Montgomery-Implementationen, bei denen j mit j = 2k konstant ist). Das oben Gesagte zeigt, dass das Verfahren und die Vorrichtung, die die vorliegende Erfindung ausgestalten, mit zahlreichen Variationen und Modifikationen an den hierin beschriebenen beispielhaften Ausgestaltungen implementiert werden können, die der Fachperson bekannt wären.
  • Wie oben in der RSA-Ausgestaltung der Erfindung beschrieben, wird die Eulersche Totientenfunktion mit, als Argument, dem Modulus n eines RSA-Public-Key verwendet. Allgemeiner, der Operand x in der Funktion Φ(x) kann ein genaues Vielfaches von wenigstens einem Faktor des Modulus eines RSA-Public-Key sein.
  • C. Leckbeständige ElGamal-Public-Key-Verschlüsselung und digitale Signaturen
  • Weitere asymmetrische Verschlüsselungsprotokolle, die mit Ausgestaltungen der Erfindung verbessert werden können, wie z.B. ElGamal und verwandte Kryptosysteme, werden weithin für digitale Signaturen und Public-Key-Verschlüsselung eingesetzt. Wenn Informationen über die geheimen Exponenten und Parameter aus einer ElGamal-Implementation auslecken, dann kann die Sicherheit kompromittiert werden. Demzufolge wären leckbeständige Implementationen von ElGamal nützlich.
  • Der Private-Key im ElGamal-Public-Key-Verschlüsselungsansatz ist ein zufällig gewähltes geheimes a, wobei 1 ≤ a ≤ p – 2 ist. Die nichtgeheimen Parameter sind eine Primzahl p, ein Generator a und αa mod p. Zum Verschlüsseln einer Meldung m wird ein zufälliges k gewählt (wobei 1 ≤ k ≤ p – 2) ist, und der Schlüsseltext (γ, δ) berechnet, wobei γ = αk mod p und δ = m (αo mod p) k mod p ist. Entschlüsselung erfolgt durch Berechnen von m = δ(γγ – 1 – a) mod p. (Eine Beschreibung der ElGamal-Public-Key-Verschlüsselung siehe Handbook of Applied Cryptography von A. Menezes, P. van Oorschot und S. Vanstone 1997, Seiten 294–298).
  • Um den ElGamal-Public-Key-Entschlüsselungsprozess leckbeständig zu machen, wird der geheime Exponent (p – 1 – a) in zwei Hälften a1 und a2 gespeichert, so dass a1a2 = (Φ/(p) – a)modΦ(p) ist. Beim Erzeugen von ElGamal-Parametern für diese leckbeständige Implementation wird empfohlen, aber nicht verlangt, dass p mit p – 1/2 als eine Primzahl gewählt wird, so dass Φ(p)/2 eine Primzahl ist. Die Variablen a1 und a2 werden normalerweise anfangs als zufällige ganze Zahlen zwischen 0 und Φ(p) gewählt.
  • Alternativ ist es möglich, zuerst α zu erzeugen, dann a1 und a2 zu wählen, wie durch Wählen von a1 relativ prim zu Φ(p), und a2 = (a – 1modΦ(p))(a1 – 1modΦ(p))modΦ(p) zu berechnen.
  • 4 illustriert einen beispielhaften leckbeständigen ElGamal-Entschlüsselungsprozess. In Schritt 405 empfängt das Entschlüsselungsgerät ein verschlüsseltes Meldungspaar (γ, δ). In Schritt 410 wählt das Gerät ein zufälliges r1, wobei 1 ≤ r1 < Φ(p) und gcd(r1, Φ(p)) = 1 ist. In Schritt 415 aktualisiert das Gerät a1 durch Berechnen von a1 ← a1r1 mod Φ(p), Überschreiben des alten Wertes von a1 mit dem neuen Wert. In Schritt 420 berechnet das Gerät die Umkehr von r1 durch Berechnen von r2 = (r1) – 1 mod Φ(p). Da r1 nach diesem Schritt nicht benutzt wird, kann sein Speicherplatz zur Aufnahme von r2 benutzt werden.
  • Man beachte, dass, wenn p – 1/2 eine Primzahl ist, auch r2 durch Finden von r2' = r1(p – 1)/2 – 2 mod p – 1/2 und Verwenden des CRT zum Finden von r2 (mod p – 1) gefunden werden kann. In Schritt 245 aktualisiert das Gerät a2 durch Berechnen von a2 ← a2r2 mod Φ(p). In Schritt 430 beginnt das Gerät den Private-Key-(Entschlüsselungs-)-Prozess durch Berechnen von m' = γa1 mod p. In Schritt 435 berechnet das Gerät m = δ(m')a2 mod p und gibt die Meldung m zurück. Wenn die Verifizierung erfolgreich ist, dann gleicht das Ergebnis der ursprünglichen Meldung, weil:
    Figure 00430001
  • Wie beim ElGamal-Public-Key-Verschlüsselungsansatz, ist der Private-Key für den ElGamal-Digital-Signaturansatz ein zufällig gewähltes geheimes α, wobei 1 ≤ a ≤ p – 2 ist. Der Public-Key ist ebenfalls ähnlich und besteht aus einer Primzahl p, einem Generator α und einem Public-Parameter y, wobei y = αa mod p ist. Zum Signieren einer Meldung m wählt der Private-Key-Halter eine zufällige geheime ganze Zahl k (wobei 1 ≤ k ≤ p – 2 und k relativ prim zu p – 1 ist) und seine Umkehr, k – 1 mod Φ(p), oder berechnet sie vor. Als Nächstes berechnet der Signierer die Signatur (r, s), wobei r = αk mod p ist,
    Figure 00440001
    und H (m) das Hash der Meldung ist. Es erfolgt eine Signaturverifikation mit dem Public-Key (p, α, y) durch Verifizieren, dass 1 ≤ r < p, und durch Verifizieren, dass γγrs mod p = αH(m) mod p ist.
  • Um den digitalen ElGamal-Signierungsprozess leckbeständig zu machen, führt das den Private-Key enthaltende Token drei Dauervariablen ak, w und r. Zunächst ist ak = a (der Private-Exponent), w = 1 und r = α. Wenn eine Meldung m signiert werden soll (oder bei der Vorberechnung vor dem Signieren), erzeugt das Token eine Zufallszahl b und seine Umkehr b – 1 mod Φ(p), wobei b relativ prim zu Φ(p) und 0 < b < Φ(p) ist. Das Token aktualisiert dann ak, w und r durch Berechnen von ak ← (ak)(b – 1)mod Φ(p), w ← (w) (b – 1)mod Φ(p) und r ← (rb)mod p. Die Signatur (r, s) wird vom aktualisierten Wert von r und s gebildet, wobei s = (w(H(m) – akr))modΦ(p) ist. Man beachte, dass ak, w und r vor der ersten Operation nicht randomisiert werden, aber randomisiert werden sollten, bevor sie der Gefahr einer Attacke ausgesetzt werden, da sonst die erste Operation mehr Informationen als die nachfolgende lecken kann. So wird empfohlen, dass eine Dummy-Signatur oder ein Parameter-Update mit ak ← (ak)(b – 1)mod Φ(p), w ← (w) (b – 1)mod Φ(p) und r ← (rb)mod p unmittelbar nach der Key-Erzeugung ausgeführt wird. Gültige Signaturen, die mit dem beispielhaften eingriffsbeständigen ElGamal-Prozess produziert wurden, können mit dem normalen ElGamal-Signatur-Verifikationsverfahren geprüft werden.
  • Es ist auch möglich, einige oder alle der ElGamal-Variablen in zwei Hälften als Teil des Leckbeständigkeitsansatzes zu teilen. Bei einer solchen Variante wird a durch a1 und a2, w durch w1 und w2 und r durch r1 und r2 ersetzt. Es ist auch möglich, die Operationen dadurch umzuordnen, dass beispielsweise die Parameter-Updates als Vorberechnungsschritt vor dem Empfang der verschlüsselten Meldung ausgeführt werden. Andere Variationen und Modifikationen an den hierin beschriebenen beispielhaften Ausgestaltungen werden für die Fachperson offensichtlich sein.
  • D. Leckbeständiger DSA
  • Ein weiteres häufig angewendetes asymmetrisches Verschlüsselungsprotokoll ist der Digital Signature Algorithm (DSA, auch Digital Signature Standard oder DSS genannt), der in „Digital Signature Standard (DSS)" aus der Federal Information Processing Standards Publication 186 vom National Institute of Standards and Technology vom 19. Mai 1994 bekannt und im Handbook of Applied Cryptography auf den Seiten 452 bis 454 ausführlich beschrieben ist. DSA wird weithin für digitale Signaturen eingesetzt. Wenn Informationen über den Secret-Key aus einer DSA-Implementation auslecken, dann kann die Sicherheit kompromittiert werden. Demzufolge wären leckbeständige Implementationen von DSA nützlich.
  • Bei nicht lecksicheren Systemen besteht der Private-Key aus einem geheimen Parameter a, und der Public-Key besteht aus (p, q, a, y), wobei p eine große (gewöhnlich 512 bis 1024 Bit) Primzahl, q eine 160-Bit-Primzahl, α ein Generator der zyklischen Gruppe der Ordnung q mod p und y = αa mod p ist. Zum Signieren einer Meldung, deren Hash H (m) ist, erzeugt der Signierer zunächst eine zufällige ganze Zahl k und ihre Umkehr k – 1 mod q, wobei 0 < k < q ist, oder berechnet sie vor. Der Signierer berechnet dann die Signatur (r, s), wobei r = (αk mod p)mod q und s = (k – 1 mod q)(H(m) + ar)mod q ist.
  • In einer beispielhaften Ausgestaltung eines leckbeständigen DSA-Signierungsprozesses führt das den Private-Key enthaltende Token zwei Variablen im nichtflüchtigen Speicher, ak und k, die mit ak = a und k = 1 initialisiert werden. Wenn eine Meldung m signiert werden soll (oder bei der Vorberechnung vor dem Signieren), erzeugt das Token eine zufällige ganze Zahl b und ihre Umkehr b – 1 mod q, wobei 0 < b < q ist. Das Token aktualisiert dann ak und k durch Berechnen von ak ← (akb – 1 mod q)(k)mod q, gefolgt von k ← b. Die Signatur (r, s) wird von den aktualisierten Werten von ak und k durch Berechnen von r ← (ak)mod p gebildet (was zu mod q reduziert werden kann), und s = [(b – 1H (m) mod q) + (akr) mod q] mod q. Wie angedeutet, werden zum Berechnen von s b – 1H(m)mod q und (akr)mod q zuerst berechnet, dann mit mod q kombiniert. Man beachte, dass ak und k vor der ersten Operation randomisiert werden müssen, da das erste Update mehr Informationen als nachfolgende Updates auslecken kann. Somit wird empfohlen, dass eine Dummy-Signatur (oder ein Parameter-Update) unmittelbar nach der Key-Erzeugung ausgeführt wird. Mit dem leckbeständigen DSA-Prozess erzeugte gültige Signaturen können mit dem normalen DSA-Signaturverifizierungsverfahren geprüft werden.
  • IV. Andere Algorithmen und Anwendungen
  • Weitere Verschlüsselungsprozesse können lecksicher oder leckbeständig gemacht oder in leckbeständige Kryptosysteme integriert werden. So können beispielsweise Kryptosysteme wie die, die auf elliptischen Kurven (einschließlich elliptischer Kurvenanaloge oder anderer Kryptosysteme), Secret-Sharing-Ansätzen, anonymen elektrischen Bargeldprotokollen, Schwellensignatur-Ansätzen usw. basieren, mit Ausgestaltungen der vorliegenden Erfindung leckbeständig gemacht werden.
  • Implementationsdetails der beschriebenen Ansätze können justiert werden, z.B. durch Umordnen von Operationen, Einfügen von Schritten, Substituieren von äquivalenten oder ähnlichen Operationen usw. Ebenso ist es häufig möglich, während neue Keys normalerweise dann erzeugt werden, wenn ein neues System erzeugt wird, Leckbeständigkeit retroaktiv hinzuzufügen, während existierende Private-Keys geführt oder konvertiert werden.
  • Leckbeständige Designs vermeiden die Ausführung wiederholter mathematischer Operationen mit sich nicht ändernden (statischen) geheimen Werten, da sie wahrscheinlich auslecken. In Umgebungen, in denen es möglich ist, eine einfache Funktion zu implementieren (wie z.B. ein exklusives ODER), die keine Informationen leckt, ist es jedoch möglich, diese Funktion zum Implementieren komplexerer Verschlüsselungsoperationen zu verwenden.
  • Während die beispielhaften Implementationen von der Annahme ausgehen, dass die Leckfunktionen im System vorhandene Informationen offenbaren können, können Designer häufig die (schwächere) Annahme sicher nutzen, dass Informationen, die in einer bestimmten Operation nicht verwendet werden, bei dieser Operation nicht auslecken. Ansätze unter Anwendung dieser schwächeren Annahme können eine große Tabelle von vorberechneten Subkey-Werten haben, von denen eine eindeutige oder zufällige Teilmenge gewählt und/oder für jede Operation aktualisiert wird. So können beispielsweise DES-Implementationen indexierte Permutations-Lookup-Tabellen verwenden, in denen ein paar Tabellenelemente mit jeder Operation ausgetauscht werden.
  • Leckbeständigkeit bietet zwar zahlreiche Vorteile, aber die Anwendung von Leckbeständigkeit an sich garantiert keine gute Sicherheit. So sind beispielsweise leckbeständige Kryptosysteme nicht von Natur aus gegen Fehlerattacken sicher, so dass Operationen verifiziert werden müssen. (Änderungen können sogar am Kryptosystem und/oder an Leckbeständigkeitsoperationen vorgenommen werden, um Fehler zu erkennen.) Ebenso verhütet Leckbeständigkeit an sich keine Attacken, die den gesamten Zustand aus einem Gerät extrahieren (z.B. L = LMAX). Zum Beispiel sind möglicherweise traditionelle Eingriffsbeständigkeitstechniken erforderlich, um Angreifer daran zu hindern, ROM- oder EEPROM-Speicherzellen zu färben und den Inhalt unter einem Mikroskop zu lesen. Implementierer sollten sich auch über Unterbrechungsattacken im Klaren sein, z.B. solche, die das Abtrennen der Stromversorgung oder das Rückstellen eines Gerätes bei einer Operation beinhalten, um zu gewährleisten, dass Geheimnisse nicht kompromittiert werden oder dass eine einzelne leckende Operation wiederholt durchgeführt wird. (Als Gegenmaßnahme können Geräte einen Zähler im nichtflüchtigen Speicher vor jeder Operation inkrementieren und den Zählerwert immer zurücksetzen oder reduzieren, wenn die Operation erfolgreich beendet wird. Wenn die Zahl der unterbrochenen Operationen seit dem letzten erfolgreichen Update einen Schwellenwert übersteigt, dann kann sich das Gerät selbst sperren.) Es müssen evtl. andere Eingriffsbeständigkeitsmechanismen und -techniken wie z.B. die Verwendung von Festzeit- und Festausführungspfadcode oder Implementationen für kritische Operationen in Verbindung mit Leckbeständigkeit eingesetzt werden, besonders für Systeme mit einer relativ geringen Selbstheilungsrate (z.B. LMAX ist klein).
  • Leckbeständige Algorithmen, Protokolle und Geräte können in praktisch jeder Anwendung zum Einsatz kommen, die Verschlüsselungssicherheit und sicheres Key-Management verlangen, einschließlich und ohne Einschränkung: Chipkarten, elektronisches Bargeld, elektronische Zahlungen, Mittelüberweisungen, Fernzugriff, Zeitstempelung, Zertifizierung, Zertifikatvalidierung, sicheres Email, sicheres Telefax, Telekommunikationssicherheit (Sprache und Daten), Computernetzwerke, Funk- und Satellitenkommunikationen, Infrarotkommunikationen, Zugriffssteuerung, Türschlösser, drahtlose Schlüssel, biometrische Geräte, Kfz-Zündschlösser, Kopierschutzgeräte, Zahlungssysteme, Systeme zum Kontrollieren der Benutzung und Bezahlung von Urheberrechtsinformationen sowie Verkaufsstellenterminals.
  • Das oben Gesagte zeigt, dass das Verfahren und die Vorrichtung der vorliegenden Erfindung mit zahlreichen Variationen und Modifikationen an den hierin beschriebenen beispielhaften Ausgestaltungen implementiert werden können, wie der Fachperson bekannt sein wird. Somit ist beabsichtigt, dass der Umfang der vorliegenden Erfindung nur durch die nachfolgenden Ansprüche begrenzt wird.

Claims (17)

  1. Verfahren zum Ausführen einer Private-Key-Operation für ein asymmetrisches Verschlüsselungssystem mit Beständigkeit gegen Leckattacken gegen das genannte Verschlüsselungssystem, wobei das Verfahren die folgende Schritte umfasst: (a) Codieren eines Abschnitts eines Private-Key als wenigstens zwei Komponententeile, so dass eine Rechenfunktion der genannten Teile den genannten Abschnitt ergibt; (b) Modifizieren der genannten Komponententeile zum Erzeugen von aktualisierten Komponententeilen, wo jedoch die genannte Rechenfunktion der genannten aktualisierten Teile weiterhin den genannten Private-Key-Abschnitt ergibt; (c) Erhalten einer Meldung für den Gebrauch in einer asymmetrischen Private-Key-Verschlüsselungsoperation; (d) separates Anwenden der genannten Komponententeile auf die genannte Meldung zum Erzeugen eines Zwischenergebnisses; (e) Ableiten eines Endergebnisses von dem genannten Zwischenergebnis, so dass das genannte Endergebnis ein gültiges Ergebnis des Anwendens des genannten Private-Key auf die genannte Meldung ist; und (f) Wiederholen der Schritte (b) bis (e) eine Mehrzahl von Malen.
  2. Verfahren nach Anspruch 1, bei dem der genannte Private-Key-Abschnitt einen Exponent beinhaltet und wobei das genannte Zwischenergebnis das Erheben der genannten Meldung zur Potenz des genannten Exponents Modulo einem zweiten Key-Abschnitt repräsentiert.
  3. Verfahren nach Anspruch 2, wobei die genannte Private-Key-Operation für die Verwendung mit einem RSA-Kryptosystem konfiguriert ist.
  4. Verfahren nach Anspruch 2, bei dem die genannte Private-Key-Operation für den Gebrauch mit einem EIGamal-Kryptosystem konfiguriert ist.
  5. Verfahren nach Anspruch 1, bei dem die genannte Private-Key-Operation für den Gebrauch mit einem DSA-Kryptosystem konfiguriert ist.
  6. Verfahren nach Anspruch 5, bei dem der genannte Private-Key durch geheime Parameter ak und k repräsentiert wird, deren Produkt Modulo einer vorbestimmten DSA-Primzahl q für den genannten Private-Key den genannten Private-Key-Abschnitt ergibt.
  7. Verfahren nach Anspruch 1, bei dem der genannte Private-Key für den Gebrauch mit einem Elliptische-Kurve-Kryptosystem konfiguriert ist.
  8. Verfahren nach einem der Ansprüche 1 bis 7, das in einer Chipkarte ausgeführt ist.
  9. Verfahren zum Implementieren von RSA mit dem Chinese Remainder Theorem für die Verwendung in einem Verschlüsselungssystem mit Beständigkeit gegen Leckattacken gegen das genannte Verschlüsselungssystem, wobei das Verfahren die folgenden Schritte umfasst: (a) Erhalten einer Repräsentation eines RSA-Private-Key, der einem RSA-Public-Key entspricht, wobei der genannte Private-Key durch Geheimfaktoren p und q gekennzeichnet ist; (b) Speichern der genannten Repräsentation des genannten Private-Key in einem Speicher; (c) Erhalten einer Meldung für die Verwendung in einer RSA-Verschlüsselungsoperation; (d) Berechnen eines ersten Moduls, das einem Vielfachen von p entspricht, wobei der Wert des genannten Vielfachen von p und der Wert des genannten Vielfachen von p dividiert durch p einem Angreifer gegen das genannte Verschlüsselungssystem beide unbekannt sind; (e) Reduzieren der genannten Meldung Modulo dem genannten ersten Modul; (f) Durchführen einer modularen Exponenzierung des Ergebnisses von Schritt (e); (g) Berechnen eines zweiten Moduls, das einem Vielfachen von q entspricht, wobei der Wert des genannten Vielfachen von q und der Wert des genannten Vielfachen von q dividiert durch q einem Angreifer des genannten Verschlüsselungssystems beide unbekannt sind; (h) Reduzieren der genannten Meldung Modulo dem genannten zweiten Modul; (i) Ausführen einer modularen Exponenzierung an dem Ergebnis von Schritt (h); (j) Kombinieren der Ergebnisse der genannten Schritte (e) und (h) zum Erzeugen eines Ergebnisses, das, wenn es mit dem genannten RSA-Public-Key auf eine RSA-Public-Key-Operation angewendet wird, die genannte Meldung ergibt; und (k) Wiederholen der Schritte (c) bis (j) eine Mehrzahl von Malen mit anderen Werten für das genannte Vielfache von p und für das genannte Vielfache von q.
  10. Verfahren nach Anspruch 9, bei dem: (i) der genannte Schritt (b) das Speichern eines Exponents dp des genannten RSA-Private-Key in dem genannten Speicher als eine Mehrzahl von Parametern beinhaltet; (ii) eine Rechenfunktion von wenigstens einem aus der genannten Mehrzahl von Parametern mit dp Modulo (p – 1) kongruent ist; (iii) keiner der den genannten gespeicherten dp umfassenden Parameter gleich dp ist; (iv) ein in dem genannten Schritt (f) benutzter Exponent wenigstens einer der genannten Parameter ist; (v) wenigstens einer der genannten Parameter in dem genannten Speicher sich mit den genannten Wiederholungen der genannten Schritte (c) bis (j) ändert.
  11. Verfahren nach Anspruch 10, bei dem die genannte Mehrzahl von Parametern einen ersten Parameter beinhaltet, der gleich dem genannten dp plus einem Vielfachen von ϕ(p) ist und auch einen zweiten Parameter beinhaltet, der gleich einem Vielfachen von ϕ(p) ist, wobei ϕ die Eulersche Totientenfunktion bedeutet.
  12. Verfahren zum Ausführen eines exponentiellen Key-Austauschs für die Verwendung in einem Verschlüsselungssystem mit Beständigkeit gegen Leckattacken gegen das genannte Verschlüsselungssystem, umfassend die folgenden Schritte: (a) Erhalten, und Speichern in einem Speicher, von exponentiellen Key-Austauschparametern g und p sowie einer Mehrzahl von geheimen Exponentenparametern, an denen eine Rechenbeziehung zum Erzeugen eines Exponents x berechnet werden kann; (b) Verwenden einer Key-Update-Transformation zum Erzeugen einer Mehrzahl von aktualisierten geheimen Exponentenparametern unter Beibehaltung der genannten Rechenbeziehung dazwischen; (c) Empfangen eines Public-Wertes y von einer Partei, mit der der genannte Key-Austausch gewünscht wird; (d) Anwenden der genannten aktualisierten geheimen Exponentenparameter zum Ausführen einer kryptografischen Berechnung, die ein exponentielles Key-Austauschergebnis z = y^x mod p ergibt; (e) Benutzen des genannten Ergebnisses z zum Sichern einer elektronischen Kommunikation mit der genannten Partei; und (f) Ausführen der genannten Schritte (b), (c), (d) und (e) in einer Mehrzahl von Transaktionen.
  13. Verfahren nach Anspruch 12, bei dem die genannte Key-Update-Transformation das Wählen eines zufälligen Key-Update-Wertes r beinhaltet, und wobei der genannte Schritt (b) das Multiplizieren von einem der genannten geheimen Exponentenparameter mit r und einem weiteren der genannten geheimen Exponentenparameter durch eine Umkehr von r beinhaltet, wobei die genannte Multiplikation Modulo ϕ(p) erfolgt, wobei ϕ eine Eulersche Totientenfunktion ist.
  14. Verfahren nach Anspruch 12, bei dem die genannte Key-Update-Transformation das Wählen eines zufälligen Key-Update-Wertes r beinhaltet; und wobei der genannte Schritt (b) das Addieren von r zu einem der genannten geheimen Exponentenparameter und das Subtrahieren von r von einem anderen der genannten geheimen Exponentenparameter beinhaltet.
  15. Verfahren zum Durchführen von kryptografischen Transaktionen in einem kryptografischen Token unter gleichzeitigem Schützen eines gespeicherten kryptografischen Key gegen Eingriffe aufgrund von Leckattacken, das die folgenden Schritte beinhaltet: (a) Abrufen des genannten gespeicherten Key aus einem Speicher; (b) kryptografisches Verarbeiten des genannten Key zum Ableiten eines aktualisierten Key durch Ausführen einer kryptografischen Update-Funktion, wobei die genannte Ableitung das Zerstören der Nützlichkeit von Teilinformationen beinhaltet, die zuvor über den genannten gespeicherten Key geleckt sind; (c) Ersetzen des genannten gespeicherten Key in dem genannten Speicher durch den genannten aktualisierten Key; (d) Ausführen einer symmetrischen Verschlüsselungsoperation unter Verwendung des genannten aktualisierten Key und Senden eines Ergebnisses über die genannte Verschlüsselungsoperation zu einer Partei, die den genannten aktualisierten Key zurückableiten kann; und (e) Wiederholen der Schritte (a) bis (b) eine Mehrzahl von Malen.
  16. Verfahren nach Anspruch 15, das ferner den Schritt, vor dem genannten Schritt (a), des Empfangens eines symmetrischen Berechtigungscodes und eines Parameters von einer zweiten Partei umfasst, und wobei der genannte Schritt (b) das Iterieren einer kryptografischen Transformation eine Anzahl von Malen beinhaltet, die von dem genannten Paramter abgeleitet wird; und wobei der genannte Schritt (d) das Ausführen einer symmetrischen Meldungsauthentifizierungscode-Verifizierungsoperation enthält.
  17. Verfahren nach Anspruch 15, wobei der genannte aktualisierte Key unvorhersehbare Informationen enthält, so dass der genannte aktualisierte Key nicht in seiner Gesamtheit irgendwo außerhalb des genannten kryptografischen Tokens gespeichert wird; und wobei das Ergebnis des genannten Schrittes (d) von den genannten unvorhersehbaren Informationen unabhängig ist.
DE69834431T 1998-01-02 1998-12-31 Leckresistentes kryptographisches verfahren und vorrichtung Expired - Lifetime DE69834431T3 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7034498P 1998-01-02 1998-01-02
US70344P 1998-01-02
US8952998P 1998-06-15 1998-06-15
US89529P 1998-06-15
PCT/US1998/027896 WO1999035782A1 (en) 1998-01-02 1998-12-31 Leak-resistant cryptographic method and apparatus

Publications (3)

Publication Number Publication Date
DE69834431D1 DE69834431D1 (de) 2006-06-08
DE69834431T2 true DE69834431T2 (de) 2007-04-19
DE69834431T3 DE69834431T3 (de) 2009-09-10

Family

ID=26751037

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69840782T Expired - Lifetime DE69840782D1 (de) 1998-01-02 1998-12-31 Leckresistentes kryptographisches Verfahren und Vorrichtung
DE69834431T Expired - Lifetime DE69834431T3 (de) 1998-01-02 1998-12-31 Leckresistentes kryptographisches verfahren und vorrichtung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69840782T Expired - Lifetime DE69840782D1 (de) 1998-01-02 1998-12-31 Leckresistentes kryptographisches Verfahren und Vorrichtung

Country Status (7)

Country Link
US (4) US6304658B1 (de)
EP (1) EP1050133B2 (de)
AT (2) ATE429748T1 (de)
AU (1) AU2557399A (de)
CA (1) CA2316227C (de)
DE (2) DE69840782D1 (de)
WO (1) WO1999035782A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773111B2 (en) 2012-08-14 2017-09-26 Empire Technology Development Llc Software-based side-channel attack prevention

Families Citing this family (297)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US6963859B2 (en) 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US6233684B1 (en) 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
US6748410B1 (en) 1997-05-04 2004-06-08 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
AU2557399A (en) * 1998-01-02 1999-07-26 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
FR2776445A1 (fr) 1998-03-17 1999-09-24 Schlumberger Ind Sa Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique
ES2660057T3 (es) 1998-05-18 2018-03-20 Giesecke + Devrient Mobile Security Gmbh Soporte de almacenamiento de datos de acceso protegido
EP1090480B1 (de) 1998-06-03 2019-01-09 Cryptography Research, Inc. Verbesserungen zu des und anderen kryptographischen verfahren mit leckminimisierung für chipkarten und andere kryptosysteme
AU5458199A (en) 1998-07-02 2000-01-24 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
CA2243761C (en) * 1998-07-21 2009-10-06 Certicom Corp. Timing attack resistant cryptographic system
JP4317607B2 (ja) * 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
US6578143B1 (en) * 1998-12-18 2003-06-10 Qualcomm Incorporated Method for negotiating weakened keys in encryption systems
US7092523B2 (en) 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7599491B2 (en) 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
KR20020007303A (ko) 1999-02-12 2002-01-26 맥 힉스 인증 관련 및 기타 서비스를 제공하기 위한 시스템 및 방법
FR2790890B1 (fr) * 1999-03-08 2001-04-27 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
US6298135B1 (en) 1999-04-29 2001-10-02 Motorola, Inc. Method of preventing power analysis attacks on microelectronic assemblies
FR2793904B1 (fr) * 1999-05-21 2001-07-27 St Microelectronics Sa Procede et dispositif de gestion d'un circuit electronique
FR2794592B1 (fr) * 1999-06-04 2001-08-24 France Telecom Generateur de bits pour l'etablissement d'une clef secrete de cryptage et procede correspondant
US6804782B1 (en) * 1999-06-11 2004-10-12 General Instrument Corporation Countermeasure to power attack and timing attack on cryptographic operations
FI115259B (fi) * 1999-07-16 2005-03-31 Setec Oy Menetelmä vasteen tuottamiseksi
SG104928A1 (en) * 1999-09-02 2004-07-30 Compaq Computer Corp Autokey initialization of cryptographic devices
US20020029200A1 (en) 1999-09-10 2002-03-07 Charles Dulin System and method for providing certificate validation and other services
JP2003521763A (ja) 1999-09-24 2003-07-15 メアリー マッケンニー 電子商取引における決済サービスを提供するためのシステム及び方法
FR2799851B1 (fr) * 1999-10-14 2002-01-25 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
FR2800478B1 (fr) * 1999-10-28 2001-11-30 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique
EP1098469B1 (de) * 1999-11-03 2007-06-06 Infineon Technologies AG Kodiervorrichtung
US6724894B1 (en) 1999-11-05 2004-04-20 Pitney Bowes Inc. Cryptographic device having reduced vulnerability to side-channel attack and method of operating same
TW548940B (en) * 1999-11-29 2003-08-21 Gen Instrument Corp Generation of a mathematically constrained key using a one-way function
DE19963408A1 (de) * 1999-12-28 2001-08-30 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung
DE19963407A1 (de) * 1999-12-28 2001-07-12 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung
US6973570B1 (en) * 1999-12-31 2005-12-06 Western Digital Ventures, Inc. Integrated circuit comprising encryption circuitry selectively enabled by verifying a device
US6983366B1 (en) * 2000-02-14 2006-01-03 Safenet, Inc. Packet Processor
JP3926532B2 (ja) 2000-03-16 2007-06-06 株式会社日立製作所 情報処理装置、情報処理方法、及びカード部材
US6732175B1 (en) * 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
FR2807898B1 (fr) * 2000-04-18 2002-06-28 Gemplus Card Int Procede de cryptographie sur courbes elliptiques
DE50010164D1 (de) * 2000-05-22 2005-06-02 Infineon Technologies Ag Sicherheits-Datenverarbeitungseinheit sowie dazugehöriges Verfahren
KR100377172B1 (ko) * 2000-06-13 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
FR2810481B1 (fr) * 2000-06-20 2003-04-04 Gemplus Card Int Controle d'acces a un moyen de traitement de donnees
FI112013B (fi) * 2000-07-11 2003-10-15 Setec Oy Menetelmä salaisen avaimen käsittelemiseksi sekä laitteisto
US7165178B2 (en) * 2000-08-14 2007-01-16 Identrus Llc System and method for facilitating signing by buyers in electronic commerce
US7269735B2 (en) 2000-08-28 2007-09-11 Contentgaurd Holdings, Inc. Instance specific digital watermarks
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
FR2813468B1 (fr) * 2000-08-29 2003-01-10 Gemplus Card Int Securite d'acces par code secret a un moyen de traitement de donnees
WO2002032064A1 (en) 2000-09-08 2002-04-18 Tallent Guy S System and method for providing authorization and other services
WO2002021408A1 (en) 2000-09-08 2002-03-14 Tallent Guy S System and method for transparently providing certificate validation and other services within an electronic transaction
US7620832B2 (en) * 2000-09-20 2009-11-17 Mips Technologies, Inc. Method and apparatus for masking a microprocessor execution signature
FI112707B (fi) * 2000-09-29 2003-12-31 Setec Oy Menetelmä salaisen avaimen käsittelemiseksi
FI112708B (fi) * 2000-09-29 2003-12-31 Setec Oy Menetelmä ja laite vasteen laskemiseksi
US7606492B2 (en) * 2000-10-04 2009-10-20 Enablence Usa Fttx Networks Inc. System and method for communicating optical signals upstream and downstream between a data service provider and subscribers
US7130541B2 (en) * 2000-10-04 2006-10-31 Wave7 Optics, Inc. System and method for communicating optical signals upstream and downstream between a data service provider and subscriber
US6973271B2 (en) 2000-10-04 2005-12-06 Wave7 Optics, Inc. System and method for communicating optical signals between a data service provider and subscribers
US6769062B1 (en) 2000-10-25 2004-07-27 Ericsson Inc. Method and system of using an insecure crypto-accelerator
WO2003001737A2 (en) * 2000-10-26 2003-01-03 Wave7 Optics, Inc. Method and system for processing upstream packets of an optical network
US7343324B2 (en) 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
FR2818846B1 (fr) * 2000-12-22 2004-03-05 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
US6912294B2 (en) 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US7028009B2 (en) 2001-01-17 2006-04-11 Contentguardiholdings, Inc. Method and apparatus for distributing enforceable property rights
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US8069116B2 (en) 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
FR2820576B1 (fr) * 2001-02-08 2003-06-20 St Microelectronics Sa Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage
JP4651212B2 (ja) * 2001-03-22 2011-03-16 大日本印刷株式会社 携帯可能情報記憶媒体およびその認証方法
US7516325B2 (en) * 2001-04-06 2009-04-07 Certicom Corp. Device authentication in a PKI
FR2824209B1 (fr) * 2001-04-30 2003-08-29 St Microelectronics Sa Brouillage d'un calcul mettant en oeuvre une fonction modulaire
US6950937B2 (en) * 2001-05-30 2005-09-27 Lucent Technologies Inc. Secure distributed computation in cryptographic applications
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US6895503B2 (en) 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US8099364B2 (en) 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7725401B2 (en) 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8275709B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8001053B2 (en) 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US7318145B1 (en) 2001-06-01 2008-01-08 Mips Technologies, Inc. Random slip generator
US7774280B2 (en) 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
CN1539117A (zh) 2001-06-07 2004-10-20 ��̹�е¿عɹɷ����޹�˾ 在数字权利管理系统中支持多个委托区域的方法和装置
US7269350B2 (en) * 2001-07-05 2007-09-11 Wave7 Optics, Inc. System and method for communicating optical signals between a data service provider and subscribers
US7877014B2 (en) * 2001-07-05 2011-01-25 Enablence Technologies Inc. Method and system for providing a return path for signals generated by legacy video service terminals in an optical network
US7146104B2 (en) 2001-07-05 2006-12-05 Wave7 Optics, Inc. Method and system for providing a return data path for legacy terminals by using existing electrical waveguides of a structure
WO2003005611A2 (en) 2001-07-05 2003-01-16 Wave7 Optics, Inc. System and method for communicating optical signals to multiple subscribers having various bandwidth demands connected to the same optical waveguide
US7529485B2 (en) * 2001-07-05 2009-05-05 Enablence Usa Fttx Networks, Inc. Method and system for supporting multiple services with a subscriber optical interface located outside a subscriber's premises
US7333726B2 (en) * 2001-07-05 2008-02-19 Wave7 Optics, Inc. Method and system for supporting multiple service providers within a single optical network
WO2003005612A1 (en) 2001-07-05 2003-01-16 Wave7 Optics, Inc. Methods and systems for providing return path for signals generated by legacy terminals in optical network
US6654565B2 (en) 2001-07-05 2003-11-25 Wave7 Optics, Inc. System and method for increasing upstream communication efficiency in an optical network
US7190901B2 (en) * 2001-07-05 2007-03-13 Wave7 Optices, Inc. Method and system for providing a return path for signals generated by legacy terminals in an optical network
US20030072059A1 (en) * 2001-07-05 2003-04-17 Wave7 Optics, Inc. System and method for securing a communication channel over an optical network
US20060020975A1 (en) * 2001-07-05 2006-01-26 Wave7 Optics, Inc. System and method for propagating satellite TV-band, cable TV-band, and data signals over an optical network
US7705732B2 (en) * 2001-07-10 2010-04-27 Fred Bishop Authenticating an RF transaction using a transaction counter
US7593639B2 (en) * 2001-08-03 2009-09-22 Enablence Usa Fttx Networks Inc. Method and system for providing a return path for signals generated by legacy terminals in an optical network
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
FR2829335A1 (fr) * 2001-09-06 2003-03-07 St Microelectronics Sa Procede de brouillage d'un calcul a quantite secrete
DE10143728B4 (de) 2001-09-06 2004-09-02 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
FR2830146B1 (fr) 2001-09-24 2003-10-31 Gemplus Card Int Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant
EP1449045A2 (de) * 2001-11-14 2004-08-25 International Business Machines Corporation Vorrichtung und methode mit reduziertem durchsickern von informationen
US7974923B2 (en) 2001-11-20 2011-07-05 Contentguard Holdings, Inc. Extensible rights expression processing system
US7840488B2 (en) 2001-11-20 2010-11-23 Contentguard Holdings, Inc. System and method for granting access to an item or permission to use an item based on configurable conditions
WO2003044716A2 (en) 2001-11-20 2003-05-30 Contentguard Holdings, Inc. An extensible rights expression processing system
US7243853B1 (en) 2001-12-04 2007-07-17 Visa U.S.A. Inc. Method and system for facilitating memory and application management on a secured token
US7583897B2 (en) * 2002-01-08 2009-09-01 Enablence Usa Fttx Networks Inc. Optical network system and method for supporting upstream signals propagated according to a cable modem protocol
KR100431286B1 (ko) * 2002-01-14 2004-05-12 한국정보보호진흥원 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치
US7076059B1 (en) * 2002-01-17 2006-07-11 Cavium Networks Method and apparatus to implement the data encryption standard algorithm
KR100431047B1 (ko) * 2002-02-26 2004-05-12 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
AU2003225804A1 (en) 2002-03-14 2003-09-29 Contentguard Holdings, Inc. System and method for expressing usage rights using modulated signals
US7805371B2 (en) 2002-03-14 2010-09-28 Contentguard Holdings, Inc. Rights expression profile system and method
JP2003296680A (ja) * 2002-03-29 2003-10-17 Hitachi Ltd データ処理装置
US6999966B2 (en) * 2002-04-23 2006-02-14 International Business Machines Corporation Content management system and methodology for implementing a complex object using nested/recursive structures
US7082455B2 (en) * 2002-04-23 2006-07-25 International Business Machines Corporation Method and apparatus of parameter passing of structured data for stored procedures in a content management system
US6950815B2 (en) * 2002-04-23 2005-09-27 International Business Machines Corporation Content management system and methodology featuring query conversion capability for efficient searching
US6944627B2 (en) * 2002-04-23 2005-09-13 International Business Machines Corporation Content management system and methodology employing a tree-based table hierarchy featuring arbitrary information retrieval from different locations in the hierarchy
US6938050B2 (en) 2002-04-23 2005-08-30 International Business Machines Corporation Content management system and methodology employing a tree-based table hierarchy which accomodates opening a dynamically variable number of cursors therefor
US6947948B2 (en) 2002-04-23 2005-09-20 International Business Machines Corporation Version-enabled, multi-typed, multi-targeting referential integrity relational database system and methodology
US7035854B2 (en) * 2002-04-23 2006-04-25 International Business Machines Corporation Content management system and methodology employing non-transferable access tokens to control data access
CN1666207A (zh) 2002-04-29 2005-09-07 康坦夹德控股股份有限公司 采用法律表述语言的权利管理系统
DE10222212A1 (de) * 2002-05-16 2003-12-04 Giesecke & Devrient Gmbh Ausspähungsgeschützte modulare Inversion
US7623786B2 (en) * 2002-05-20 2009-11-24 Enablence Usa Fttx Networks, Inc. System and method for communicating optical signals to multiple subscribers having various bandwidth demands connected to the same optical waveguide
DE10230098A1 (de) * 2002-07-04 2004-02-19 Siemens Ag Verfahren zur Authentifizierung eines ersten Objekts gegenüber wenigstens einem weiteren Objekt, insbesondere einem Fahrzeug gegenüber wenigstens einem Schlüssel
FR2842052B1 (fr) * 2002-07-05 2004-09-24 France Telecom Procede et dispositifs cryptographiques permettant d'alleger les calculs au cours de transactions
US7343011B2 (en) * 2002-07-15 2008-03-11 Conexant, Inc. Secure telecommunications system for wireless local area networks
DK1973297T3 (da) * 2002-07-26 2011-12-19 Koninkl Philips Electronics Nv Sikker, autentificeret afstandsmåling
CN1672358B (zh) * 2002-07-29 2010-07-14 国际商业机器公司 群签名方案
FR2844891A1 (fr) * 2002-09-20 2004-03-26 St Microelectronics Sa Masquage de donnees decomposees dans un systeme de residus
US20040139021A1 (en) * 2002-10-07 2004-07-15 Visa International Service Association Method and system for facilitating data access and management on a secure token
KR101047641B1 (ko) * 2002-10-07 2011-07-08 텔레폰악티에볼라겟엘엠에릭슨(펍) 보안 장치용 보안 및 프라이버시 강화
US7607015B2 (en) * 2002-10-08 2009-10-20 Koolspan, Inc. Shared network access using different access keys
US7853788B2 (en) * 2002-10-08 2010-12-14 Koolspan, Inc. Localized network authentication and security using tamper-resistant keys
US7325134B2 (en) * 2002-10-08 2008-01-29 Koolspan, Inc. Localized network authentication and security using tamper-resistant keys
US7574731B2 (en) * 2002-10-08 2009-08-11 Koolspan, Inc. Self-managed network access using localized access management
US7058260B2 (en) * 2002-10-15 2006-06-06 Wave7 Optics, Inc. Reflection suppression for an optical fiber
CN1708942B (zh) * 2002-10-31 2010-11-03 艾利森电话股份有限公司 设备特定安全性数据的安全实现及利用
KR100441397B1 (ko) * 2002-10-31 2004-07-23 소프트포럼 주식회사 메시지의 인증 및 암호화 방법
US7895443B2 (en) * 2002-11-05 2011-02-22 Safenet, Inc. Secure authentication using hardware token and computer fingerprint
US7313238B2 (en) * 2003-01-31 2007-12-25 Hewlett-Packard Development Company, L.P. Method and system for relating cryptographic keys
DE10304451B3 (de) * 2003-02-04 2004-09-02 Infineon Technologies Ag Modulare Exponentiation mit randomisiertem Exponenten
US7392246B2 (en) * 2003-02-14 2008-06-24 International Business Machines Corporation Method for implementing access control for queries to a content management system
US7454141B2 (en) 2003-03-14 2008-11-18 Enablence Usa Fttx Networks Inc. Method and system for providing a return path for signals generated by legacy terminals in an optical network
US20060179305A1 (en) * 2004-03-11 2006-08-10 Junbiao Zhang WLAN session management techniques with secure rekeying and logoff
CN1874222A (zh) * 2003-03-14 2006-12-06 汤姆森特许公司 提供安全通信会话的方法、终端设备和接入点
GB2399904B (en) * 2003-03-28 2005-08-17 Sharp Kk Side channel attack prevention in data processing apparatus
US7551737B2 (en) * 2003-03-31 2009-06-23 International Business Machines Corporation Cryptographic keys using random numbers instead of random primes
JP4759513B2 (ja) * 2003-06-02 2011-08-31 リキッド・マシンズ・インコーポレーテッド 動的、分散的および協働的な環境におけるデータオブジェクトの管理
US7685642B2 (en) 2003-06-26 2010-03-23 Contentguard Holdings, Inc. System and method for controlling rights expressions by stakeholders of an item
US7697690B2 (en) * 2003-07-21 2010-04-13 Hewlett-Packard Development Company, L.P. Windowed backward key rotation
FR2858496B1 (fr) * 2003-07-31 2005-09-30 Gemplus Card Int Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
US20060248595A1 (en) * 2003-08-08 2006-11-02 Koninklijke Philips Electronics N.V. Reproducing encrypted content using region keys
US7934005B2 (en) * 2003-09-08 2011-04-26 Koolspan, Inc. Subnet box
US8489452B1 (en) 2003-09-10 2013-07-16 Target Brands, Inc. Systems and methods for providing a user incentive program using smart card technology
US7389530B2 (en) * 2003-09-12 2008-06-17 International Business Machines Corporation Portable electronic door opener device and method for secure door opening
EP1523188A1 (de) * 2003-10-06 2005-04-13 Canal + Technologies Paarung eines externen Sicherheitsmoduls
US7725933B2 (en) * 2003-10-07 2010-05-25 Koolspan, Inc. Automatic hardware-enabled virtual private network system
US7827409B2 (en) * 2003-10-07 2010-11-02 Koolspan, Inc. Remote secure authorization
US7596704B2 (en) * 2003-10-10 2009-09-29 Jing-Jang Hwang Partition and recovery of a verifiable digital secret
US20050089190A1 (en) * 2003-10-23 2005-04-28 Eyal Shavit Recording content distribution information into an adjunct to content
JP4626148B2 (ja) * 2004-01-07 2011-02-02 株式会社日立製作所 復号または署名作成におけるべき乗剰余算の計算方法
US7467386B2 (en) * 2004-01-16 2008-12-16 International Business Machines Corporation Parameter passing of data structures where API and corresponding stored procedure are different versions/releases
US7457964B2 (en) * 2004-02-04 2008-11-25 Microsoft Corporation Trusted path for transmitting content thereon
WO2005119960A2 (en) * 2004-06-01 2005-12-15 Ben-Gurion University Of The Negev Research And Development Authority Structure preserving database encryption method and system
US7715565B2 (en) * 2004-07-29 2010-05-11 Infoassure, Inc. Information-centric security
KR100652377B1 (ko) * 2004-08-06 2007-02-28 삼성전자주식회사 모듈라 지수승 알고리즘, 기록매체 및 시스템
US7340180B2 (en) * 2004-08-10 2008-03-04 Wave7 Optics, Inc. Countermeasures for idle pattern SRS interference in ethernet optical network systems
WO2006027430A1 (fr) * 2004-08-16 2006-03-16 France Telecom Procede d’authentification entre entites communiquant entre elles au travers d’un reseau de telecommunications
US7599622B2 (en) 2004-08-19 2009-10-06 Enablence Usa Fttx Networks Inc. System and method for communicating optical signals between a data service provider and subscribers
WO2006018047A1 (en) * 2004-08-20 2006-02-23 Telecom Italia S.P.A. Method for enrolling a user terminal in a wireless local area network
US7477741B1 (en) 2004-10-01 2009-01-13 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Analysis resistant cipher method and apparatus
WO2006041784A2 (en) * 2004-10-04 2006-04-20 Wave7 Optics, Inc. Minimizing channel change time for ip video
JP4326443B2 (ja) * 2004-10-08 2009-09-09 フェリカネットワークス株式会社 情報処理装置および情報処理方法、並びにプログラム
US7478902B2 (en) * 2004-11-04 2009-01-20 Hewlett-Packard Development Company, L.P. Inkjet compositions
US7764785B2 (en) 2004-11-08 2010-07-27 King Fahd University Of Petroleum And Minerals Method for communicating securely over an insecure communication channel
CN101099328B (zh) 2004-11-11 2011-05-18 塞尔蒂卡姆公司 定制的静态Diffie-Helman群
CA2586816C (en) * 2004-11-11 2013-03-26 Certicom Corp. Secure interface for versatile key derivation function support
US8660961B2 (en) 2004-11-18 2014-02-25 Contentguard Holdings, Inc. Method, system, and device for license-centric content consumption
WO2006069172A2 (en) * 2004-12-21 2006-06-29 Wave7 Optics, Inc. System and method for operating a wideband return channel in a bi-directional optical communication system
FR2879866B1 (fr) * 2004-12-22 2007-07-20 Sagem Procede et dispositif d'execution d'un calcul cryptographique
JP5068176B2 (ja) 2005-01-18 2012-11-07 サーティコム コーポレーション デジタル署名と公開鍵の促進された検証
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
FR2882209A1 (fr) * 2005-02-11 2006-08-18 France Telecom Procede d'authentification d'une etiquette electonique par utilisation d'un algorithme cryptographique a cle publique
US20060210071A1 (en) * 2005-03-16 2006-09-21 Chandran Gayathiri R Encryption of security-sensitive data
US8200972B2 (en) * 2005-03-16 2012-06-12 International Business Machines Corporation Encryption of security-sensitive data by re-using a connection
FR2884004B1 (fr) * 2005-03-30 2007-06-29 Oberthur Card Syst Sa Procede de traitement de donnees impliquant une exponentiation modulaire et un dispositif associe
US7594116B2 (en) * 2005-04-28 2009-09-22 Proofpoint, Inc. Mediated key exchange between source and target of communication
EP1876577A1 (de) * 2005-04-28 2008-01-09 Matsushita Electric Industrial Co., Ltd. Programmkonvertierungsvorrichtung, verschlüsselungseinrichtung und verschlüsselungsverfahren
FR2887351A1 (fr) * 2005-06-16 2006-12-22 St Microelectronics Sa Protection d'un calcul d'exponentiation modulaire effectue par un circuit integre
FR2889349A1 (fr) 2005-07-26 2007-02-02 St Microelectronics Sa Procede et dispositif de securisation d'un circuit integre, notamment une carte a microprocesseur
US20070047959A1 (en) * 2005-08-12 2007-03-01 Wave7 Optics, Inc. System and method for supporting communications between subcriber optical interfaces coupled to the same laser transceiver node in an optical network
US8621577B2 (en) * 2005-08-19 2013-12-31 Samsung Electronics Co., Ltd. Method for performing multiple pre-shared key based authentication at once and system for executing the method
EP1920324A1 (de) * 2005-08-19 2008-05-14 Nxp B.V. Schaltungsanordnung und verfahren zur durchführung eines inversionsablaufs in einer kryptografischen berechnung
US8041032B2 (en) * 2005-08-19 2011-10-18 Cardiac Pacemakers, Inc. Symmetric key encryption system with synchronously updating expanded key
KR20080035004A (ko) * 2005-08-19 2008-04-22 엔엑스피 비 브이 회로 구조체, 마이크로컨트롤러, 데이터 처리 장치, 암호화 계산 수행 방법 및 프로그램을 구비하는 컴퓨터 판독가능한 매체
FR2890267B1 (fr) * 2005-08-26 2007-10-05 Viaccess Sa Procede d'etablissement d'une cle de session et unites pour la mise en oeuvre du procede
FR2890269A1 (fr) * 2005-09-01 2007-03-02 France Telecom Authentification anonyme et non tracable retroactivement d'un objet electronique par une entite d'authentification
US7720767B2 (en) 2005-10-24 2010-05-18 Contentguard Holdings, Inc. Method and system to support dynamic rights and resources sharing
WO2007048430A1 (en) * 2005-10-28 2007-05-03 Telecom Italia S.P.A. A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems
FR2895609A1 (fr) * 2005-12-26 2007-06-29 Gemplus Sa Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
KR100850202B1 (ko) * 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
US7971058B2 (en) * 2006-03-27 2011-06-28 Kyocera Corporation System and method for generating a plaintext / cyphertext database for use in device authentication
US8301890B2 (en) * 2006-08-10 2012-10-30 Inside Secure Software execution randomization
US7613907B2 (en) * 2006-08-11 2009-11-03 Atmel Corporation Embedded software camouflage against code reverse engineering
US7984301B2 (en) * 2006-08-17 2011-07-19 Inside Contactless S.A. Bi-processor architecture for secure systems
US7554865B2 (en) * 2006-09-21 2009-06-30 Atmel Corporation Randomizing current consumption in memory devices
US8127135B2 (en) * 2006-09-28 2012-02-28 Hewlett-Packard Development Company, L.P. Changing of shared encryption key
US7822207B2 (en) * 2006-12-22 2010-10-26 Atmel Rousset S.A.S. Key protection mechanism
US8160245B2 (en) 2007-03-07 2012-04-17 Research In Motion Limited Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
EP2122899B1 (de) * 2007-03-06 2011-10-05 Research In Motion Limited Ganzzahlige division gegen einen leistungsanalyseangriff
US8391479B2 (en) * 2007-03-07 2013-03-05 Research In Motion Limited Combining interleaving with fixed-sequence windowing in an elliptic curve scalar multiplication
US8243919B2 (en) 2007-03-07 2012-08-14 Research In Motion Limited Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks
US8280041B2 (en) * 2007-03-12 2012-10-02 Inside Secure Chinese remainder theorem-based computation method for cryptosystems
EP1998491A1 (de) * 2007-05-31 2008-12-03 Thomson Licensing Verfahren zur Berechnung von komprimierten RSA-Moduli
US7907735B2 (en) 2007-06-15 2011-03-15 Koolspan, Inc. System and method of creating and sending broadcast and multicast data
US7936871B2 (en) * 2007-06-28 2011-05-03 Samsung Electronics Co., Ltd. Altering the size of windows in public key cryptographic computations
US7974409B2 (en) * 2007-06-28 2011-07-05 Samsung Electronics Co., Ltd. Changing the order of public key cryptographic computations
US8059814B1 (en) * 2007-09-28 2011-11-15 Emc Corporation Techniques for carrying out seed or key derivation
US8341410B2 (en) * 2007-10-08 2012-12-25 Microsoft Corporation Efficient certified email protocol
US8290151B2 (en) 2007-10-12 2012-10-16 Infineon Technologies Ag Device and method for determining an inverse of a value related to a modulus
US8781112B2 (en) * 2007-11-02 2014-07-15 Certicom Corp. Signed montgomery arithmetic
CN100488099C (zh) * 2007-11-08 2009-05-13 西安西电捷通无线网络通信有限公司 一种双向接入认证方法
ATE513377T1 (de) 2007-12-13 2011-07-15 Oberthur Technologies Verfahren für kryptografische datenverarbeitung, insbesondere unter verwendung einer s box und diesbezügliche einrichtung und software
US20090164796A1 (en) * 2007-12-21 2009-06-25 Daon Holdings Limited Anonymous biometric tokens
AU2009205675B2 (en) 2008-01-18 2014-09-25 Identrust, Inc. Binding a digital certificate to multiple trust domains
US20090184800A1 (en) 2008-01-22 2009-07-23 Harris Scott C Cellular phone Entry Techniques
FR2926651B1 (fr) * 2008-01-23 2010-05-21 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique
US8312534B2 (en) * 2008-03-03 2012-11-13 Lenovo (Singapore) Pte. Ltd. System and method for securely clearing secret data that remain in a computer system memory
WO2009136361A1 (en) * 2008-05-07 2009-11-12 Koninklijke Philips Electronics N.V. Exponent obfuscation
FR2935059B1 (fr) * 2008-08-12 2012-05-11 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede
KR101324351B1 (ko) 2008-08-19 2013-11-01 엔엑스피 비 브이 암호 기반 메시지 인증 코드를 생성하는 방법
EP2169535A1 (de) * 2008-09-22 2010-03-31 Thomson Licensing Verfahren, Vorrichtung und Computerprogrammunterstützung zur regelmäßigen Umkodierung einer positiven ganzen Zahl
JP5407352B2 (ja) * 2009-01-19 2014-02-05 富士通株式会社 復号処理装置、復号処理プログラム、復号処理方法
EP2222013A1 (de) * 2009-02-19 2010-08-25 Thomson Licensing Verfahren und Vorrichtung zur Bekämpfung von Fehlerangriffen
EP2401734B1 (de) * 2009-02-27 2016-04-20 Certicom Corp. System und verfahren zur durchführung einer potenzierung in einem kryptographischen system
US8281343B2 (en) * 2009-05-19 2012-10-02 Cisco Technology, Inc. Management and display of video content
US10402849B2 (en) * 2009-05-20 2019-09-03 Inmar Clearing, Inc. Digital incentives issuance, redemption, and reimbursement
FR2946819B1 (fr) * 2009-06-16 2011-07-01 Sagem Securite Cryptographie sur une courbe elliptique.
US20140314229A1 (en) 2011-12-09 2014-10-23 Morpho Cryptography on a simplified elliptical curve
FR2946818B1 (fr) 2009-06-16 2011-07-01 Sagem Securite Cryptographie sur une courbe elliptique simplifiee.
US20170207918A1 (en) 2009-06-16 2017-07-20 Morpho Cryptography on an elliptical curve
US8245959B1 (en) 2009-06-30 2012-08-21 Emc Corporation Powered card and method of disposing of the same
EP2290872B1 (de) 2009-08-27 2014-06-18 Nxp B.V. Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes zur Authentifizierung einer Nachricht
CN102725737B (zh) 2009-12-04 2016-04-20 密码研究公司 可验证防泄漏的加密和解密
US8775813B2 (en) * 2010-02-26 2014-07-08 Certicom Corp. ElGamal signature schemes
KR101610917B1 (ko) * 2010-03-08 2016-04-11 삼성전자주식회사 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
DE102010010851A1 (de) 2010-03-10 2011-09-15 Giesecke & Devrient Gmbh Ausspähungsschutz bei der Ausführung einer Operationssequenz in einem tragbaren Datenträger
US8539254B1 (en) 2010-06-01 2013-09-17 Xilinx, Inc. Method and integrated circuit for protecting against differential power analysis attacks
US8966253B1 (en) 2010-06-01 2015-02-24 Xilinx, Inc. Method and apparatus for authenticating a programmable device bitstream
US8583944B1 (en) 2010-08-04 2013-11-12 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption
US8650408B2 (en) 2010-09-08 2014-02-11 Xilinx, Inc. Protecting against differential power analysis attacks on decryption keys
US8832462B2 (en) 2010-09-08 2014-09-09 Xilinx, Inc. Protecting against differential power analysis attacks on sensitive data
IT1401937B1 (it) * 2010-09-16 2013-08-28 St Microelectronics Srl Metodo di generazione di una firma digitale
EP2437160A1 (de) * 2010-10-04 2012-04-04 Nagravision S.A. Verschleierte modulare Potenzierung
EP2466523B1 (de) * 2010-12-16 2015-04-29 BlackBerry Limited Verfahren und Vorrichtung zum Sichern einer Rechnervorrichtung
WO2012086076A1 (ja) * 2010-12-24 2012-06-28 三菱電機株式会社 署名生成装置及び署名生成方法及び記録媒体
CN103282950B (zh) * 2010-12-27 2015-11-25 三菱电机株式会社 运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法
US8909941B1 (en) 2011-03-31 2014-12-09 Xilinx, Inc. Programmable integrated circuit and a method of enabling the detection of tampering with data provided to a programmable integrated circuit
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
EP2608445A1 (de) * 2011-12-20 2013-06-26 Gemalto SA Verfahren zum Schutz einer binären GCD-Berechnung gegen SPA-Angriffe
CN102664732B (zh) * 2012-03-07 2016-06-22 南相浩 Cpk公钥体制抗量子计算攻击的实现方法及系统
US9106405B1 (en) * 2012-06-25 2015-08-11 Amazon Technologies, Inc. Multi-user secret decay
FR2997780B1 (fr) * 2012-11-07 2016-01-22 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation modulaire
JP6366595B2 (ja) 2012-11-12 2018-08-01 クリプトグラフィ リサーチ, インコーポレイテッド 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム
US9009495B2 (en) 2013-06-28 2015-04-14 Envieta, LLC High speed cryptographic combining system, and method for programmable logic devices
FR3015726B1 (fr) * 2013-12-24 2016-01-08 Morpho Procede de traitement comparatif securise
US9264221B2 (en) * 2014-01-31 2016-02-16 Google Inc. Systems and methods for faster public key encryption using the associated private key portion
EP3886397B1 (de) 2014-03-21 2023-01-18 Sun Patent Trust Sicherheitsschlüsselableitung bei dualer konnektivität
US10680816B2 (en) * 2014-03-26 2020-06-09 Continental Teves Ag & Co. Ohg Method and system for improving the data security during a communication process
US10326590B2 (en) * 2014-11-11 2019-06-18 Intel Corporation Technologies for trusted device on-boarding
US10013363B2 (en) 2015-02-09 2018-07-03 Honeywell International Inc. Encryption using entropy-based key derivation
US10594471B2 (en) 2015-03-20 2020-03-17 Cryptography Research, Inc. Multiplicative blinding for cryptographic operations
EP3089398B1 (de) * 2015-04-30 2017-10-11 Nxp B.V. Sicherung einer kryptographischen vorrichtung
CN104917608B (zh) * 2015-05-19 2018-04-20 清华大学 一种密钥抗功耗攻击的方法
US10181944B2 (en) 2015-06-16 2019-01-15 The Athena Group, Inc. Minimizing information leakage during modular exponentiation and elliptic curve point multiplication
US11521203B2 (en) * 2015-07-09 2022-12-06 Cryptography Research, Inc. Generating a cryptographic key based on transaction data of mobile payments
US10642962B2 (en) 2015-07-28 2020-05-05 Western Digital Technologies, Inc. Licensable function for securing stored data
US10237305B2 (en) * 2016-02-17 2019-03-19 Nagravision S.A. Methods and systems for enabling legal-intercept mode for a targeted secure element
EP3217307B1 (de) * 2016-02-22 2018-11-07 Eshard Verfahren zur prüfung des widerstands einer schaltung zu einer seitenkanalanalyse von zweiter ordnung oder mehr
EP3424175B1 (de) 2016-03-03 2024-02-21 Cryptography Research, Inc. Umwandlung eines booleschen maskierten wertes in einen arithmetisch maskierten wert für kryptographische operationen
TW201810989A (zh) * 2016-05-18 2018-03-16 納格維遜股份有限公司 用以保護密碼指數的方法及系統
WO2017201406A1 (en) * 2016-05-19 2017-11-23 Arris Enterprises Llc Implicit rsa certificates
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
US10708073B2 (en) 2016-11-08 2020-07-07 Honeywell International Inc. Configuration based cryptographic key generation
EP3337086A1 (de) * 2016-12-15 2018-06-20 Gemalto Sa Verfahren zur synchronisierten signatur mit zusätzlicher rsa-schlüssel-spaltung unter verwendung eines gleitfensters
US10686598B2 (en) * 2017-02-27 2020-06-16 Cord3 Innovation Inc. One-to-many symmetric cryptographic system and method
EP3379769A1 (de) * 2017-03-21 2018-09-26 Gemalto Sa Verfahren für durch verwendung von multiplikativer teilung eines asymmetrischer exponents geschützte rsa-signatur oder -entschlüsselung
US11229023B2 (en) * 2017-04-21 2022-01-18 Netgear, Inc. Secure communication in network access points
US10924261B2 (en) 2017-05-22 2021-02-16 Arm Limited Efficient power distribution
US10997322B2 (en) 2017-05-22 2021-05-04 Arm Limited Efficient power distribution
WO2019157475A1 (en) * 2018-02-12 2019-08-15 Ripple Labs Inc. Byzantine agreement in open networks
DE102018108313A1 (de) * 2018-04-09 2019-10-10 Infineon Technologies Ag Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
US10826694B2 (en) 2018-04-23 2020-11-03 International Business Machines Corporation Method for leakage-resilient distributed function evaluation with CPU-enclaves
SG11202102798TA (en) 2018-10-02 2021-04-29 Capital One Services Llc Systems and methods for cryptographic authentication of contactless cards
CN109379176B (zh) * 2018-12-10 2021-12-03 湖北工业大学 一种抗口令泄露的认证与密钥协商方法
JP2020195100A (ja) * 2019-05-29 2020-12-03 株式会社bitFlyer Blockchain 公開鍵の信頼性を証明するための装置、方法及びそのためのプログラム
JP2021048518A (ja) * 2019-09-19 2021-03-25 株式会社東芝 情報処理装置、情報処理システム及び情報処理装置の制御方法
US11461084B2 (en) * 2021-03-05 2022-10-04 EMC IP Holding Company LLC Optimizing docker image encryption—kubernetes using shamir secrets to enforce multiple constraints in container runtime environment
US11394308B1 (en) 2021-05-05 2022-07-19 Arm Limited Apparatuses and methods for power isolation
CN114024667A (zh) * 2021-10-12 2022-02-08 杭州趣链科技有限公司 基于双线性ElGamal密码体制并抵抗差分攻击的数据聚合方法
US11438146B1 (en) * 2021-10-27 2022-09-06 Coinbase Il Rd Ltd. System and method for performing key exchange while overcoming a malicious adversary party
CN115276960B (zh) * 2022-08-02 2024-03-15 山东大学 一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法
CN116453670A (zh) * 2023-06-16 2023-07-18 高密市人民医院 一种血液标本检验数据的存储系统和方法

Family Cites Families (182)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2733432A (en) 1956-01-31 Breckman
FR561910A (de) 1922-02-11 1923-10-30
US4214126A (en) 1945-04-30 1980-07-22 Rca Corporation Cadence suppression system
US2632058A (en) 1946-03-22 1953-03-17 Bell Telephone Labor Inc Pulse code communication
US3816762A (en) 1973-01-02 1974-06-11 Fairchild Camera Instr Co Noise suppression circuit
US4243890A (en) 1976-08-23 1981-01-06 Miller Bruce J Isolator/switching assembly for data processing terminal
US4107458A (en) 1976-08-23 1978-08-15 Constant James N Cipher computer and cryptographic system
US4139839A (en) 1977-03-18 1979-02-13 Nasa Digital data reformatter/deserializer
FR2401459A1 (fr) 1977-08-26 1979-03-23 Cii Honeywell Bull Support d'information portatif muni d'un microprocesseur et d'une memoire morte programmable
US4295041A (en) 1977-08-26 1981-10-13 Compagnie Internationale Pour L'informatique Cii-Honeywell Bull (Societe Anonyme) Device for the protection of access to a permanent memory of a portable data carrier
US4200770A (en) 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
US4202051A (en) 1977-10-03 1980-05-06 Wisconsin Alumni Research Foundation Digital data enciphering and deciphering circuit and method
CH623271A5 (de) 1977-11-15 1981-05-29 Hasler Ag
US4203166A (en) 1977-12-05 1980-05-13 International Business Machines Corporation Cryptographic file security for multiple domain networks
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4309569A (en) 1979-09-05 1982-01-05 The Board Of Trustees Of The Leland Stanford Junior University Method of providing digital signatures
US4369332A (en) 1979-09-26 1983-01-18 Burroughs Corporation Key variable generator for an encryption/decryption device
US4268898A (en) 1980-03-20 1981-05-19 Lorain Products Corporation Semiconductor switching circuit with clamping and energy recovery features
DE3127843A1 (de) 1981-07-15 1983-05-26 AEG-Telefunken Nachrichtentechnik GmbH, 7150 Backnang Verfahren zur verhinderung von "kompromittierender abstrahlung" bei der verarbeitung und uebertragung geheimer dateninformationen
JPS58187015A (ja) 1982-04-26 1983-11-01 Nippon Telegr & Teleph Corp <Ntt> スイツチト・キヤパシタ回路
US4605921A (en) 1983-06-20 1986-08-12 Riddle Herbert S Digital word-framing technique and system
US4569052A (en) 1983-07-14 1986-02-04 Sperry Corporation Coset code generator for computer memory protection
US4759063A (en) 1983-08-22 1988-07-19 Chaum David L Blind signature systems
US4776011A (en) 1983-10-24 1988-10-04 Sony Corporation Recursive key schedule cryptographic system
US4605820A (en) 1983-11-10 1986-08-12 Visa U.S.A. Inc. Key management system for on-line communication
US4570084A (en) 1983-11-21 1986-02-11 International Business Machines Corporation Clocked differential cascode voltage switch logic systems
US4799258A (en) * 1984-02-13 1989-01-17 National Research Development Corporation Apparatus and methods for granting access to computers
NL8401989A (nl) 1984-06-22 1986-01-16 Nederlanden Staat Video-eindstation met beeldlijnverhaspeling.
JPS61102167A (ja) 1984-10-23 1986-05-20 Yokogawa Hokushin Electric Corp Dc/dcコンバ−タ
US4661658A (en) 1985-02-12 1987-04-28 International Business Machines Corporation Offline PIN validation with DES
US4686392A (en) 1985-10-30 1987-08-11 International Business Machines Corporation Multi-functional differential cascode voltage switch logic
GB8608172D0 (en) 1986-04-03 1986-05-08 Walker S M Computer security devices
FR2600183B1 (fr) 1986-06-13 1990-10-12 Eurotechnique Sa Circuit integre pour la memorisation et le traitement d'informations de maniere confidentielle comportant un dispositif anti-fraude
US4937866A (en) 1986-08-13 1990-06-26 U.S. Philips Corporation System for decoding transmitted scrambled signals
JPS6370550A (ja) 1986-09-12 1988-03-30 Nec Corp 半導体集積回路装置
US5341423A (en) 1987-02-06 1994-08-23 General Electric Company Masked data transmission system
FR2617976B1 (fr) 1987-07-10 1989-11-10 Thomson Semiconducteurs Detecteur electrique de niveau logique binaire
JPH01114995A (ja) 1987-10-29 1989-05-08 Toppan Printing Co Ltd Icカード
JP2698588B2 (ja) 1987-11-13 1998-01-19 株式会社東芝 携帯可能電子装置
US5412379A (en) 1988-05-27 1995-05-02 Lectron Products, Inc. Rolling code for a keyless entry system
JPH022475A (ja) 1988-06-15 1990-01-08 Omron Tateisi Electron Co Icカード
NO165698C (no) 1988-07-05 1991-03-20 System Sikkerhet As System for beskyttelse mot avlytting av digitalt utstyr.
DE3825880C1 (de) 1988-07-29 1995-12-21 Siemens Ag Schlüsseleinrichtung
GB8819767D0 (en) 1988-08-19 1989-07-05 Ncr Co Public key diversification method
US4932057A (en) 1988-10-17 1990-06-05 Grumman Aerospace Corporation Parallel transmission to mask data radiation
US4905176A (en) 1988-10-28 1990-02-27 International Business Machines Corporation Random number generator circuit
FR2638869B1 (fr) 1988-11-10 1990-12-21 Sgs Thomson Microelectronics Dispositif de securite contre la detection non autorisee de donnees protegees
US5293029A (en) 1989-01-17 1994-03-08 Kabushiki Kaisha Toshiba System for mutually certifying an IC card and an IC card terminal
SE462935B (sv) 1989-01-30 1990-09-17 Cominvest Res Ab Saett och anordning foer hindrande av extern detektering av signalinformation
US5181243A (en) 1989-05-19 1993-01-19 Syntellect, Inc. System and method for communications security protection
US5086467A (en) 1989-05-30 1992-02-04 Motorola, Inc. Dummy traffic generation
FR2651347A1 (fr) 1989-08-22 1991-03-01 Trt Telecom Radio Electr Procede de generation de nombre unique pour carte a microcircuit et application a la cooperation de la carte avec un systeme hote.
US5412730A (en) 1989-10-06 1995-05-02 Telequip Corporation Encrypted data transmission system employing means for randomly altering the encryption keys
US5136643A (en) 1989-10-13 1992-08-04 Fischer Addison M Public/key date-time notary facility
IT1238529B (it) 1989-11-10 1993-08-18 Data Protection Srl Dispositivo di protezione per computer e simili, atto ad impedire la cattura, la registrazione e l'uso indebito di dati dai medesimi duran-te il loro funzionamento e a proteggerli da disturbi transitori, ad e-levato contenuto energetico, verificantisi sulla rete a corrente alternata di alimentazione.
US5249294A (en) 1990-03-20 1993-09-28 General Instrument Corporation Determination of time of execution of predetermined data processing routing in relation to occurrence of prior externally observable event
US5177430A (en) 1990-04-19 1993-01-05 Moshe Mohel Circuit for securing a power supply
GB2247138B (en) 1990-06-29 1994-10-12 Digital Equipment Corp System and method for error detection and reducing simultaneous switching noise
US5136646A (en) 1991-03-08 1992-08-04 Bell Communications Research, Inc. Digital document time-stamping with catenate certificate
JPH0778975B2 (ja) 1990-09-27 1995-08-23 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 光学ディスク駆動装置
FR2667715A1 (fr) 1990-10-09 1992-04-10 Gemplus Card Int Procede et dispositif pour accroitre la protection d'une carte a memoire.
US5144667A (en) 1990-12-20 1992-09-01 Delco Electronics Corporation Method of secure remote access
US5149992A (en) 1991-04-30 1992-09-22 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University MOS folded source-coupled logic
US5241598A (en) 1991-05-22 1993-08-31 Ericsson Ge Mobile Communications, Inc. Rolling key resynchronization in cellular verification and validation system
SE500276C2 (sv) 1991-06-24 1994-05-24 Shield Research In Sweden Ab Förfarande och anordning för att förhindra extern detektering av signalinformation
US5159632A (en) 1991-09-17 1992-10-27 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
WO1993006695A1 (en) 1991-09-23 1993-04-01 Z-Microsystems Enhanced security system for computing devices
JP3083187B2 (ja) 1991-09-30 2000-09-04 富士通株式会社 電子財布システムの鍵管理方式
DE69311596T2 (de) 1992-02-27 1998-01-02 Philips Electronics Nv Integrierte CMOS-Schaltung
JP2821306B2 (ja) 1992-03-06 1998-11-05 三菱電機株式会社 Icカードと端末機との間の認証方法およびそのシステム
US5600324A (en) 1992-05-11 1997-02-04 Rockwell International Corporation Keyless entry system using a rolling code
US5297201A (en) 1992-10-13 1994-03-22 J.D. Technologies, Inc. System for preventing remote detection of computer data from tempest signal emissions
FR2704081B1 (fr) 1993-04-16 1995-05-19 France Telecom Procédé de mise à jour d'une carte à mémoire et carte à mémoire pour la mise en Óoeuvre de ce procédé.
CN1054245C (zh) 1993-05-05 2000-07-05 刘尊全 数据加密的装置和方法
US5297207A (en) 1993-05-24 1994-03-22 Degele Steven T Machine generation of cryptographic keys by non-linear processes similar to processes normally associated with encryption of data
BR9406733A (pt) * 1993-06-02 2000-04-25 Verifone Inc Sistema e processo para a reavaliação de indicações armazenadas em carões ic.
US5483598A (en) 1993-07-01 1996-01-09 Digital Equipment Corp., Patent Law Group Message encryption using a hash function
US5914471A (en) * 1993-07-20 1999-06-22 Koninklijke Ptt Nederland N.V. Method and apparatus for recording usage data of card operated devices
JP2750072B2 (ja) 1993-07-27 1998-05-13 松下電工株式会社 電力変換装置
US5399996A (en) 1993-08-16 1995-03-21 At&T Global Information Solutions Company Circuit and method for minimizing electromagnetic emissions
EP0720796B1 (de) * 1993-09-20 1997-07-16 International Business Machines Corporation System und verfahren zur änderung des schlüssels oder des kennwortes in einem kommunikationsnetzwerk mit schlüssel- verteilung
US5369706A (en) 1993-11-05 1994-11-29 United Technologies Automotive, Inc. Resynchronizing transmitters to receivers for secure vehicle entry using cryptography or rolling code
US5710834A (en) * 1995-05-08 1998-01-20 Digimarc Corporation Method and apparatus responsive to a code signal conveyed through a graphic image
US5515438A (en) 1993-11-24 1996-05-07 International Business Machines Corporation Quantum key distribution using non-orthogonal macroscopic signals
FR2713419B1 (fr) 1993-12-02 1996-07-05 Gemplus Card Int Procédé de génération de signatures DSA avec des appareils portables à bas coûts.
EP0656708A1 (de) * 1993-12-03 1995-06-07 International Business Machines Corporation System und Verfahren zur Übertragung und Gültigkeitsprüfung eines aktualisierten kryptographischen Schlüssels zwischen zwei Benutzern
US5404402A (en) 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
JP3029381B2 (ja) 1994-01-10 2000-04-04 富士通株式会社 データ変換装置
US5434919A (en) 1994-01-11 1995-07-18 Chaum; David Compact endorsement signature systems
US5631492A (en) * 1994-01-21 1997-05-20 Motorola Standard cell having a capacitor and a power supply capacitor for reducing noise and method of formation
US5412723A (en) 1994-03-01 1995-05-02 International Business Machines Corporation Mechanism for keeping a key secret from mobile eavesdroppers
US5420925A (en) 1994-03-03 1995-05-30 Lectron Products, Inc. Rolling code encryption process for remote keyless entry system
JPH07322602A (ja) 1994-05-23 1995-12-08 Fujitsu Ltd 電源装置
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5414614A (en) 1994-06-06 1995-05-09 Motorola, Inc. Dynamically configurable switched capacitor power supply and method
EP0693836A1 (de) 1994-06-10 1996-01-24 Sun Microsystems, Inc. Verfahren und Einrichtung für ein Schlüsselmanagementschema für Internet-Protokolle
US5506905A (en) * 1994-06-10 1996-04-09 Delco Electronics Corp. Authentication method for keyless entry system
US5546463A (en) * 1994-07-12 1996-08-13 Information Resource Engineering, Inc. Pocket encrypting and authenticating communications device
US5511123A (en) 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5557346A (en) 1994-08-11 1996-09-17 Trusted Information Systems, Inc. System and method for key escrow encryption
US5600273A (en) 1994-08-18 1997-02-04 Harris Corporation Constant delay logic circuits and methods
US5514982A (en) 1994-08-18 1996-05-07 Harris Corporation Low noise logic family
BE1008699A3 (fr) 1994-09-09 1996-07-02 Banksys Procede et agencement pour donner selectivement un acces dans un systeme de securite.
US5663896A (en) * 1994-09-22 1997-09-02 Intel Corporation Broadcast key distribution apparatus and method using Chinese Remainder
US5633930A (en) * 1994-09-30 1997-05-27 Electronic Payment Services, Inc. Common cryptographic key verification in a transaction network
US5559887A (en) 1994-09-30 1996-09-24 Electronic Payment Service Collection of value from stored value systems
US5544086A (en) 1994-09-30 1996-08-06 Electronic Payment Services, Inc. Information consolidation within a transaction network
US5636157A (en) * 1994-10-03 1997-06-03 International Business Machines Corporation Modular 64-bit integer adder
US5737419A (en) * 1994-11-09 1998-04-07 Bell Atlantic Network Services, Inc. Computer system for securing communications using split private key asymmetric cryptography
JP2825064B2 (ja) * 1994-12-19 1998-11-18 株式会社日本自動車部品総合研究所 暗号化装置
EP0804855B1 (de) * 1994-12-30 2001-10-10 Thomson Consumer Electronics, Inc. Modem mit automatischer rückrufmöglichkeit
US5602917A (en) 1994-12-30 1997-02-11 Lucent Technologies Inc. Method for secure session key generation
US5625692A (en) 1995-01-23 1997-04-29 International Business Machines Corporation Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing
US5483182A (en) 1995-03-06 1996-01-09 Motorola, Inc. Method and apparatus for a DC-DC converter an current limiting thereof
DE19511298B4 (de) 1995-03-28 2005-08-18 Deutsche Telekom Ag Verfahren zur Erteilung und zum Entzug der Berechtigung zum Empfang von Rundfunksendungen und Decoder
US5638444A (en) * 1995-06-02 1997-06-10 Software Security, Inc. Secure computer communication method and system
US5778074A (en) * 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes
US6078663A (en) 1995-06-30 2000-06-20 Canon Kabushiki Kaisha Communication apparatus and a communication system
US5727062A (en) 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
FR2738971B1 (fr) * 1995-09-19 1997-10-10 Schlumberger Ind Sa Procede de determination d'une cle de cryptage associee a un circuit integre
NL1001659C2 (nl) * 1995-11-15 1997-05-21 Nederland Ptt Werkwijze voor het afwaarderen van een elektronisch betaalmiddel.
US5727063A (en) * 1995-11-27 1998-03-10 Bell Communications Research, Inc. Pseudo-random generator
JPH09163469A (ja) * 1995-12-11 1997-06-20 Alpha Corp 遠隔操作装置及び遠隔操作方法
JP3504050B2 (ja) 1996-01-26 2004-03-08 株式会社東芝 べき乗剰余演算方法及び装置
US6453296B1 (en) 1996-01-31 2002-09-17 Canon Kabushiki Kaisha Electronic credit system and communication apparatus
FR2745135B1 (fr) * 1996-02-15 1998-09-18 Cedric Colnot Procede pour faire autoriser par un serveur l'acces a un service a partir de dispositifs portatifs a microcircuits electroniques du type carte a memoire par exemple
FR2745099B1 (fr) 1996-02-19 1998-03-27 Sgs Thomson Microelectronics Procede de sequencement d'un circuit integre
US5761306A (en) * 1996-02-22 1998-06-02 Visa International Service Association Key replacement in a public key cryptosystem
FR2745924B1 (fr) 1996-03-07 1998-12-11 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
US5778069A (en) 1996-04-10 1998-07-07 Microsoft Corporation Non-biased pseudo random number generator
CA2177622A1 (en) * 1996-05-29 1997-11-30 Thierry Moreau Cryptographic data integrity apparatus and method based on pseudo-random bit generators
US5764766A (en) 1996-06-11 1998-06-09 Digital Equipment Corporation System and method for generation of one-time encryption keys for data communications and a computer program product for implementing the same
US5859548A (en) * 1996-07-24 1999-01-12 Lg Semicon Co., Ltd. Charge recycling differential logic (CRDL) circuit and devices using the same
US5745577A (en) 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
EP0831433A1 (de) * 1996-09-24 1998-03-25 Koninklijke KPN N.V. Verfahren zum Durchführen von wiedergewinnbaren Transaktionen mit Chipkarten, Verfahren zum Wiedergewinnen einer solchen Transaktion, als auch eine Chipkarte, die wiedergewinnbare Transaktionen erlaubt
EP0840477B1 (de) 1996-10-31 2012-07-18 Panasonic Corporation Hochsicheres Verfahren zur geheimen Schlüsselübertragung mit Beschränkung des Schadens bei Bekanntwerden oder Dekodierung des geheimen Schlüssels
GB9624127D0 (en) * 1996-11-20 1997-01-08 British Telecomm Transaction system
DE19649292A1 (de) 1996-11-28 1998-06-04 Deutsche Telekom Ag Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems
US5848159A (en) * 1996-12-09 1998-12-08 Tandem Computers, Incorporated Public key cryptographic apparatus and method
US5821775A (en) 1996-12-27 1998-10-13 Intel Corporation Method and apparatus to interface monotonic and non-monotonic domino logic
WO1998031122A1 (en) * 1997-01-08 1998-07-16 Bell Communications Research, Inc. A method and apparatus for generating secure hash functions
US6690795B1 (en) 1997-03-04 2004-02-10 Lucent Technologies Inc. Multiple keys for decrypting data in restricted-access television system
US6049613A (en) * 1997-03-07 2000-04-11 Jakobsson; Markus Method and apparatus for encrypting, decrypting, and providing privacy for data values
US6247129B1 (en) * 1997-03-12 2001-06-12 Visa International Service Association Secure electronic commerce employing integrated circuit cards
AUPO799197A0 (en) 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Image processing method and apparatus (ART01)
GB9707349D0 (en) 1997-04-11 1997-05-28 Univ Waterloo A dynamic current mode logic family
WO1998050851A1 (en) * 1997-05-04 1998-11-12 Fortress U & T Ltd. Improved apparatus & method for modular multiplication & exponentiation based on montgomery multiplication
US6748410B1 (en) 1997-05-04 2004-06-08 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
US5917754A (en) * 1997-05-21 1999-06-29 Atmel Corporation Semiconductor memory having a current balancing circuit
US5905399A (en) * 1997-06-30 1999-05-18 Sun Microsystems, Inc. CMOS integrated circuit regulator for reducing power supply noise
US6003014A (en) * 1997-08-22 1999-12-14 Visa International Service Association Method and apparatus for acquiring access using a smart card
US6128391A (en) 1997-09-22 2000-10-03 Visa International Service Association Method and apparatus for asymetric key management in a cryptographic system
US6064740A (en) * 1997-11-12 2000-05-16 Curiger; Andreas Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
US6041412A (en) * 1997-11-14 2000-03-21 Tl Technology Rerearch (M) Sdn. Bhd. Apparatus and method for providing access to secured data or area
US6345359B1 (en) 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US6090153A (en) 1997-12-05 2000-07-18 International Business Machines Corporation Multi-threshold-voltage differential cascode voltage switch (DCVS) circuits
US6046608A (en) 1997-12-08 2000-04-04 Intel Corporation Differential precharge circuit
US6448981B1 (en) 1997-12-09 2002-09-10 International Business Machines Corporation Intermediate user-interface definition method and system
US6046931A (en) 1997-12-11 2000-04-04 Evsx, Inc. Method and apparatus for a RAM circuit having N-nary output interface
US6211456B1 (en) 1997-12-11 2001-04-03 Intrinsity, Inc. Method and apparatus for routing 1 of 4 signals
US6066965A (en) 1997-12-11 2000-05-23 Evsx, Inc. Method and apparatus for a N-nary logic circuit using 1 of 4 signals
US6107835A (en) 1997-12-11 2000-08-22 Intrinsity, Inc. Method and apparatus for a logic circuit with constant power consumption
US6069497A (en) 1997-12-11 2000-05-30 Evsx, Inc. Method and apparatus for a N-nary logic circuit using 1 of N signals
US6185685B1 (en) 1997-12-11 2001-02-06 International Business Machines Corporation Security method and system for persistent storage and communications on computer network systems and computer network systems employing the same
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
AU2557399A (en) 1998-01-02 1999-07-26 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US6226750B1 (en) 1998-01-20 2001-05-01 Proact Technologies Corp. Secure session tracking method and system for client-server environment
US6101477A (en) 1998-01-23 2000-08-08 American Express Travel Related Services Company, Inc. Methods and apparatus for a travel-related multi-function smartcard
US6041122A (en) * 1998-02-27 2000-03-21 Intel Corporation Method and apparatus for hiding crytographic keys utilizing autocorrelation timing encoding and computation
FR2776445A1 (fr) * 1998-03-17 1999-09-24 Schlumberger Ind Sa Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique
FR2776410B1 (fr) * 1998-03-20 2002-11-15 Gemplus Card Int Dispositifs pour masquer les operations effectuees dans une carte a microprocesseur
US6336188B2 (en) * 1998-05-01 2002-01-01 Certicom Corp. Authenticated key agreement protocol
JP2002517787A (ja) 1998-05-29 2002-06-18 インフィネオン テクノロジース アクチエンゲゼルシャフト データ処理方法および装置
EP1084543B1 (de) 1998-06-03 2008-01-23 Cryptography Research Inc. Verwendung von unvorhersagbarer Information zur Leckminimierung von chipkarten und anderen Kryptosystemen
ATE418099T1 (de) 1998-06-03 2009-01-15 Cryptography Res Inc Gesicherte moduläre potenzierung mit leckminimierung für chipkarten und andere kryptosysteme
WO1999067766A2 (en) 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
EP1090480B1 (de) 1998-06-03 2019-01-09 Cryptography Research, Inc. Verbesserungen zu des und anderen kryptographischen verfahren mit leckminimisierung für chipkarten und andere kryptosysteme
US5998978A (en) 1998-06-29 1999-12-07 Motorola, Inc. Apparatus and method for reducing energy fluctuations in a portable data device
US6075865A (en) 1998-07-01 2000-06-13 Tecsec Incorporated Cryptographic communication process and apparatus
AU5458199A (en) * 1998-07-02 2000-01-24 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
GB2371460B (en) 2001-01-19 2004-12-22 Pixelfusion Ltd Computer graphics

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773111B2 (en) 2012-08-14 2017-09-26 Empire Technology Development Llc Software-based side-channel attack prevention

Also Published As

Publication number Publication date
AU2557399A (en) 1999-07-26
US7506165B2 (en) 2009-03-17
US6381699B2 (en) 2002-04-30
US20010002486A1 (en) 2001-05-31
WO1999035782A1 (en) 1999-07-15
US20080104400A1 (en) 2008-05-01
CA2316227A1 (en) 1999-07-15
US6304658B1 (en) 2001-10-16
EP1050133A4 (de) 2005-05-04
ATE325478T1 (de) 2006-06-15
US20030028771A1 (en) 2003-02-06
EP1050133B2 (de) 2009-05-27
EP1050133A1 (de) 2000-11-08
DE69834431T3 (de) 2009-09-10
DE69834431D1 (de) 2006-06-08
DE69840782D1 (de) 2009-06-04
CA2316227C (en) 2009-08-11
US7792287B2 (en) 2010-09-07
ATE429748T1 (de) 2009-05-15
EP1050133B1 (de) 2006-05-03

Similar Documents

Publication Publication Date Title
DE69834431T2 (de) Leckresistentes kryptographisches verfahren und vorrichtung
Alwen et al. Leakage-resilient public-key cryptography in the bounded-retrieval model
Prouff et al. Masking against side-channel attacks: A formal security proof
Zhou et al. PPDM: A privacy-preserving protocol for cloud-assisted e-healthcare systems
US5768388A (en) Time delayed key escrow
Fischlin et al. Self-guarding cryptographic protocols against algorithm substitution attacks
CN112106322A (zh) 基于密码的阈值令牌生成
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
Qin et al. Continuous non-malleable key derivation and its application to related-key security
Ruhault SoK: Security models for pseudo-random number generators
Herranz et al. KEM/DEM: Necessary and sufficient conditions for secure hybrid encryption
Strangio Efficient Diffie-Hellmann two-party key agreement protocols based on elliptic curves
Barki et al. Achieving privacy and accountability in traceable digital currency
EP1691501B1 (de) Leckresistentes kryptographisches Verfahren und Vorrichtung
DE10328860B4 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
Bindel et al. Hybrid key encapsulation mechanisms and authenticated key exchange
Ak et al. IND-CCA secure encryption based on a Zheng–Seberry scheme
Li et al. A construction for general and efficient oblivious commitment based envelope protocols
Kang et al. Selective-opening security for public-key encryption in the presence of parameter subversion
Schwenk Modelling time, or a step towards reduction-based security proofs for otp and kerberos
Wong et al. How (Not) to Build Threshold EdDSA
Barthe et al. A machine-checked formalization of the random oracle model
Błaśkiewicz et al. Darknet signatures
Zhang Improvements and Generalisations of Signcryption Schemes
Hu et al. A new security model for secure thresholding

Legal Events

Date Code Title Description
8363 Opposition against the patent
8366 Restricted maintained after opposition proceedings