DE69834431T3 - Leckresistentes kryptographisches verfahren und vorrichtung - Google Patents
Leckresistentes kryptographisches verfahren und vorrichtung Download PDFInfo
- Publication number
- DE69834431T3 DE69834431T3 DE69834431T DE69834431T DE69834431T3 DE 69834431 T3 DE69834431 T3 DE 69834431T3 DE 69834431 T DE69834431 T DE 69834431T DE 69834431 T DE69834431 T DE 69834431T DE 69834431 T3 DE69834431 T3 DE 69834431T3
- Authority
- DE
- Germany
- Prior art keywords
- key
- parameters
- leak
- rsa
- secret
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/723—Modular exponentiation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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/0841—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3013—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7257—Random modification not requiring correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial 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 an 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 leckbestä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 RSA-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 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 nurfallen. 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 Schritt110 sendet der Server R zum Token des Benutzers. In Schritt112 empfängt das Token R. In Schritt115 inkrementiert das Token seinen Zähler t durch Berechnen von t ← t + 1. In Schritt120 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 Schritt122 benutzt das Token die neuen Werte von t und Kt zum Berechnen eines Authentifikators A = HA(Kt||t||R). In Schritt125 sendet das Token sowohl t als auch den Authentifikator A zum Server, der sie in Schritt130 empfängt. In Schritt135 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 Schritt175 . Ansonsten initialisiert der Server in Schritt140 seinen Schleifenzähler i auf null und sein Key-Register Kt' auf K0. In Schritt145 vergleicht der Server i mit dem empfangenen Wert von t und geht zu Schritt160 über, wenn sie gleich sind. Ansonsten inkrementiert der Server in Schritt150 i durch Berechnen von i ← i + 1. In Schritt155 berechnet der Server Kt' ← HK(i||Kt') und geht dann zurück zu Schritt145 . In Schritt160 berechnet der Server A' = HA(Kt'||t||R). Schließlich vergleicht der Server in Schritt165 A und A', wobei die Authentifizierung in Schritt170 erfolgreich ist, wenn eine Übereinstimmung vorliegt, oder in Schritt175 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 LMAX 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 MAC-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-Hellmau-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:
- 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 Schritt205 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 Schritt210 verwendet das Token einen Zufallsgenerator (oder Pseudozufallsgenerator) zum Wählen einer zufälligen ganzen Zahl b0, wobei 0 < b0 < p ist. In Schritt215 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 Schritt220 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 Schritt220 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 Schritt225 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 Schritt230 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 Schritt235 berechnet) und z0 benutzt werden. In Schritt235 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 Schritt240 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 Schritt245 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 Schritt250 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 Schritt255 berechnet das Token z1 = (z0)xl 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 Schritt260 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 Schritt265 findet das Token das Ergebnis des Exponential-Key-Austauschs durch Berechnen von z = z2b3 mod p. Schließlich löscht das Token in Schritt270 evtl. verbleibende temporäre Variablen und gibt sie frei. -
- 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 vonund den Session-Key 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, berechnetund berechnetBob erzeugt einen zufälligen xBA, wobei 0 < xBA < Φ(pAlice) ist, berechnet und berechnetBob 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 in2 verwendet Alice yBA (von Bob erhalten) und Bob benutzt yAB (von Alice erhalten). Unter Anwendung des in2 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 in2 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 anstatt nur y = yBA, und Bob setzt 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 Schritt300 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 Schritt305 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 Schritt310 aktualisiert das Gerät z durch Berechnen von z ← k'z. In Schritt315 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 Schritt320 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 Schritt325 erzeugt) verwendet werden. In Schritt325 wählt das Gerät ein zufälliges R, wobei 0 < R < z und gcd(R, z) = 1 ist. In Schritt330 aktualisiert das Gerät d1 durch Berechnen von d1 ← d1R mod z. In Schritt335 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 Schritt340 aktualisiert das Gerät d2 durch Berechnen von d2 ← d2R' mod z. In Schritt345 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 Schritt350 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 α 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 ± (R4qk – 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 α gespeichert und dann jedes Variablen-Update zuverlässig durchgeführt werden, wähend 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)(mqk) 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 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 – 1 mod Φ(p))(a1 – 1 mod Φ(p)) mod Φ(p) zu berechnen.
-
4 illustriert einen beispielhaften leckbeständigen ElGamal-Entschlüsselungsprozess. In Schritt405 empfängt das Entschlüsselungsgerät ein verschlüsseltes Meldungspaar (γ, δ). In Schritt410 wählt das Gerät ein zufälliges r1, wobei 1 ≤ r1 < Φ(p) und gcd(rl, Φ(p)) = 1 ist. In Schritt415 aktualisiert das Gerät a1 durch Berechnen von a1 ← a1r1 mod Φ(p), Überschreiben des alten Wertes von a1 mit dem neuen Wert. In Schritt420 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 Schritt245 aktualisiert das Gerät a2 durch Berechnen von a2 ← a2r2 mod Φ(p). In Schritt430 beginnt das Gerät den Private-Key-(Entschlüsselungs-)-Prozess durch Berechnen von m' = γa1 mod p. In Schritt435 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: - 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,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, α, 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)modq) + (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 (16)
- 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 folgenden Schritte beinhaltet: (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.
- Verfahren nach Anspruch 1, bei dem der genannte Private-Key-Abschnitt einen Exponent beinhaltet und wobei das genannte Zwischenergebnis das Ergebnis des Erhebens der genannten Meldung zur Potenz des genannten Exponents Modulo einem zweiten Key-Abschnitt repräsentiert.
- Verfahren nach Anspruch 2, wobei die genannte Private-Key-Operation für die Verwendung mit einem RSA-Kryptosystem konfiguriert ist.
- Verfahren nach Anspruch 2, bei dem die genannte Private-Key-Operation für den Gebrauch mit einem ElGamal-Kryptosystem konfiguriert ist.
- Verfahren nach Anspruch 1, bei dem die genannte Private-Key-Operation für den Gebrauch mit einem DSA-Kryptosystem konfiguriert ist.
- 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.
- Verfahren nach Anspruch 1, bei dem der genannte Private-Key für den Gebrauch mit einem Elliptische-Kurve-Kryptosystem konfiguriert ist.
- Verfahren nach einem der Ansprüche 1 bis 7, das in einer Chipkarte ausgeführt ist.
- 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 beinhaltet: (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 an dem Ergebnis 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 gegen das genannte Verschlüsselungssystem 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 unterschiedlichen Werten für das genannte Vielfache von p und für das genannte Vielfache von q durch Beibehalten von Vielfachen der geheimen Primzahlen p und q, die jedes Mal aktualisiert werden, und wobei die neuen Werte des Vielfachen von p und des Vielfachen von q von deren jeweiligen alten Werten abgeleitet werden.
- 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.
- 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 beinhaltet: (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 an dem Ergebnis 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 gegen das genannte Verschlüsselungssystem 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 unterschiedlichen Werten für das genannte Vielfache von p und für das genannte Vielfache von q; wobei: (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.
- Verfahren nach Anspruch 10 oder 11, 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.
- 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, wobei das Verfahren die folgenden Schritte beinhaltet: (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.
- Verfahren nach Anspruch 13, 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.
- Verfahren nach Anspruch 13, 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.
- 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) Empfangen eines symmetrischen Authentifizierungscode und eines Parameters von einer zweiten Partei (b) Abrufen des genannten gespeicherten Key aus einem Speicher; (c) kryptografisches Verarbeiten des genannten Key zum Ableiten eines aktualisierten Key durch Ausführen einer kryptografischen Update-Funktion, die das Wiederholen einer kryptografischen Transformation eine Anzahl von Malen beinhaltet, die von dem genannten Parameter bestimmt wird; so dass i. verhütet wird, dass Teilinformationen über den genannten gespeicherten Key nützliche Informationen über den genannten aktualisierten Key enthüllen, und ii. auch verhütet wird, dass Teilinformationen über den genannten aktualisierten Key nützliche Informationen über den genannten gespeicherten Key enthüllen; (d) Ersetzen des genannten gespeicherten Key in dem genannten Speicher durch den genannten aktualisierten Key; (e) Ausführen einer symmetrischen Meldungsauthentifizierungscode-Verifizierungsoperation und 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.
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 DE69834431T2 (de) | 2007-04-19 |
DE69834431T3 true 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) |
Families Citing this family (298)
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 |
CN104583961B (zh) | 2012-08-14 | 2017-12-01 | 英派尔科技开发有限公司 | 基于软件的侧信道攻击防止 |
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)
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 |
-
1998
- 1998-12-31 AU AU25573/99A patent/AU2557399A/en not_active Abandoned
- 1998-12-31 AT AT06008626T patent/ATE429748T1/de not_active IP Right Cessation
- 1998-12-31 EP EP98966880A patent/EP1050133B2/de not_active Expired - Lifetime
- 1998-12-31 DE DE69840782T patent/DE69840782D1/de not_active Expired - Lifetime
- 1998-12-31 US US09/224,682 patent/US6304658B1/en not_active Expired - Lifetime
- 1998-12-31 CA CA002316227A patent/CA2316227C/en not_active Expired - Lifetime
- 1998-12-31 DE DE69834431T patent/DE69834431T3/de not_active Expired - Lifetime
- 1998-12-31 WO PCT/US1998/027896 patent/WO1999035782A1/en active IP Right Grant
- 1998-12-31 AT AT98966880T patent/ATE325478T1/de not_active IP Right Cessation
-
2000
- 2000-12-13 US US09/737,182 patent/US6381699B2/en not_active Expired - Lifetime
-
2002
- 2002-04-29 US US10/136,012 patent/US7506165B2/en not_active Expired - Fee Related
-
2007
- 2007-10-30 US US11/981,495 patent/US7792287B2/en not_active Expired - Fee Related
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 |
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 |
DE69834431T2 (de) | 2007-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69834431T3 (de) | Leckresistentes kryptographisches verfahren und vorrichtung | |
Prouff et al. | Masking against side-channel attacks: A formal security proof | |
Alwen et al. | Leakage-resilient public-key cryptography in the bounded-retrieval model | |
US5768388A (en) | Time delayed key escrow | |
Fischlin et al. | Self-guarding cryptographic protocols against algorithm substitution attacks | |
CN112106322A (zh) | 基于密码的阈值令牌生成 | |
DE102016210786A1 (de) | Komponente zur Anbindung an einen Datenbus und Verfahren zur Umsetzung einer kryptografischen Funktionalität in einer solchen Komponente | |
Qin et al. | Continuous non-malleable key derivation and its application to related-key security | |
DE60109805T2 (de) | Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers | |
Manevich et al. | Cross chain atomic swaps in the absence of time via attribute verifiable timed commitments | |
Herranz et al. | KEM/DEM: Necessary and sufficient conditions for secure hybrid encryption | |
DE10328860B4 (de) | Vorrichtung und Verfahren zum Verschlüsseln von Daten | |
EP1691501B1 (de) | Leckresistentes kryptographisches Verfahren und Vorrichtung | |
Bindel et al. | Hybrid key encapsulation mechanisms and authenticated key exchange | |
CN115276986A (zh) | 一种通用场景下的云代理池分流重加密共享方法 | |
Li et al. | Security analysis of the whirlpool hash function in the cloud of things | |
Gennaro et al. | Automata evaluation and text search protocols with simulation based security | |
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 | |
Guo et al. | Table recomputation-based higher-order masking against horizontal attacks | |
EP1062763B1 (de) | Schlüsselaustauschverfahren | |
Wong et al. | How (Not) to Build Threshold EdDSA | |
Błaśkiewicz et al. | Darknet signatures | |
Hanzlik et al. | CTRL-PACE: Controlled Randomness for e-Passport Password Authentication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8363 | Opposition against the patent | ||
8366 | Restricted maintained after opposition proceedings |