DE602004013206T2 - Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung - Google Patents

Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung Download PDF

Info

Publication number
DE602004013206T2
DE602004013206T2 DE602004013206T DE602004013206T DE602004013206T2 DE 602004013206 T2 DE602004013206 T2 DE 602004013206T2 DE 602004013206 T DE602004013206 T DE 602004013206T DE 602004013206 T DE602004013206 T DE 602004013206T DE 602004013206 T2 DE602004013206 T2 DE 602004013206T2
Authority
DE
Germany
Prior art keywords
bit
logical
data word
binary data
exclusive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602004013206T
Other languages
English (en)
Other versions
DE602004013206D1 (de
Inventor
Jovan Golic
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telecom Italia SpA
Original Assignee
Telecom Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telecom Italia SpA filed Critical Telecom Italia SpA
Publication of DE602004013206D1 publication Critical patent/DE602004013206D1/de
Application granted granted Critical
Publication of DE602004013206T2 publication Critical patent/DE602004013206T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Logic Circuits (AREA)
  • Hardware Redundancy (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein das Gebiet der Kryptographie, insbesondere kryptographische Verfahren und Vorrichtungen und noch spezieller Verfahren zum Verhindern von auf Informationslecks gerichteten Angriffen auf integrierten Schaltungen, die kryptographische Funktionen hardwaremäßig implementieren.
  • ALLGEMEINER STAND DER TECHNIK
  • Kryptographische Funktionen, die mit Geheimschlüsseln zu tun haben, wie zum Beispiel Blockchiffren oder Nachrichtenauthentifizierungscodes, können entweder softwaremäßig oder hardwaremäßig auf mikroelektronischen Datenverarbeitungsvorrichtungen wie zum Beispiel Chipkarten mit integrierter Schaltung (Integrated Circuit, IC) (manchmal auch als "Smartcards" bezeichnet) implementiert sein.
  • Währen der Ausführung einer generischen kryptographischen Funktion werden sensitive Daten, die von dem (den) Geheimschlüssel(n) abhängen, verarbeitet, über die internen Verbindungen der IC gesendet und in den internen Speichern der Datenverarbeitungsvorrichtung gespeichert.
  • In dem Bemühen zu verhindern, dass unbefugte Personen auf betrügerische Weise durch Manipulieren Kenntnis von dem (den) kryptographischen Geheimschlüssel(n) oder anderen sensitiven Informationen erlangen, werden manipulationssichere IC-Chips hergestellt; in solchen IC-Chips sind eigens spezielle physikalische Gegenmaßnahmen vorgesehen, um die zugrunde liegende IC vor Manipulation zu schützen, wie zum Beispiel Schutzschichten und verschiedene Sensoren, Detektoren und Filter.
  • Jedoch sogar in manipulationssicheren IC-Chips können sensitive Informationen über verschiedene Seitenkanäle nach außen dringen, wie zum Beispiel durch Messen von Signaltakten, Energieverbrauch und ausgestrahlter elektromagnetischer Energie, sowie durch Überwachen der Signale durch Microprobing (Anwendung von Mikrosonden).
  • Dieser Abfluss von Informationen erzeugt ein ernstes Problem: Eine gute kryptographische Funktion genügt im Allgemeinen der Anforderung, dass es rechnerisch undurchführbar sein sollte, den Geheimschlüssel aus der Kenntnis von Eingangs-/Ausgangsdaten zu rekonstruieren, doch eine solche Anforderung ist normalerweise nicht zwangsläufig erfüllt, falls intermediäre sensitive Daten, die während der Ausführung der kryptographischen Funktion erzeugt werden, preisgegeben werden.
  • Das Wiedergewinnen des Geheimschlüssels aus intermediären sensitiven Daten, welche durch irgendeinen möglichen Seitenkanal während der Ausführung der kryptographischen Funktion abfließen können, ist das Ziel verschiedener kryptoanalytischer Angriffe, welche als Seitenkanalangriffe bezeichnet werden. Daher besteht die Notwendigkeit, intermediäre sensitive Daten zu schützen, welche während der Ausführung der kryptographischen Funktion erzeugt werden und welche, wenn sie nach außen gelangen, unbefugte Dritte in die Lage versetzen können, den Geheimschlüssel auf betrügerische Weise zu rekonstruieren.
  • Die Seitenkanalangriffe verändern nicht die Funktionalität der Vorrichtung, welche den kryptographischen Prozess implementiert, und sind typischerweise nicht invasiv. Leistungsanalyseangriffe (vorgeschlagen zum Beispiel in P. Kocher et al., "Differential power analysis", Advances in Cryptology-Crypto '99, Lecture Notes in Computer Science, Bd. 1666, S. 388–397, 1999) sind sehr leistungsfähig, da sie keine teuren Ressourcen erfordern; außerdem sind die meisten Implementierungen kryptographischer Funktionen, insbesondere Softwareimplementierungen, durch solche Angriffe gefährdet, sofern nicht spezielle Gegenmaßnahmen integriert sind.
  • Insbesondere sind in der Klasse der Leistungsanalyseangriffe die so genannten Angriffe durch differentielle Leistungsanalyse (Differential Power Analysis, DPA) (erster Ordnung) von besonderer praktischer Bedeutung, da sie eine relativ einfache statistische Methode verwenden, welche nahezu unabhängig von der Implementierung des kryptographischen Algorithmus ist. Sie erfordern das Messen der Leistungsaufnahme des kryptographischen Algorithmus für eine Anzahl von bekannten Eingängen (oder bekannten Ausgängen). Andere, anspruchsvollere statistische Analysen der Leistungsaufnahmekurven können ebenfalls realisierbar sein.
  • Die Grundlage von Leistungsanalyseangriffen sind elementare Berechnungen innerhalb der Vorrichtung, die verwendet werden, um die kryptographische Funktion (die kryptographische Vorrichtung) zu implementieren, Berechnungen, welche von den Geheimschlüsselinformationen und von den bekannten Eingangs- und/oder Ausgangsinformationen abhängen. Falls außerdem die diesen elementaren Berechnungen entsprechende Leistungsaufnahme von den Werten abhängt, die berechnet werden, dann enthalten die Leistungsaufnahmekurven der kryptographischen Vorrichtung Informationen über den Geheimschlüssel, und derartige Informationen können mittels statistischer Methoden extrahiert werden, um den Geheimschlüssel zu rekonstruieren.
  • Softwareimplementierungen kryptographischer Funktionen, bei welchen die Operationen durch den Takt der Datenverarbeitungseinheit, gewöhnlich eines Mikroprozessors, synchronisiert werden, die den Algorithmus ausführt, welcher die kryptographische Funktion implementiert, sind besonders anfällig gegenüber Leistungsanalyseangriffen.
  • Hardwareimplementierungen kryptographischer Funktionen sind ebenfalls potentiell anfällig gegenüber Leistungsanalyseangriffen, obwohl eine höhere Abtastfrequenz erforderlich sein kann, um die Leistungsaufnahmekurven zu erhalten.
  • Eine allgemeine algorithmische Strategie, um Leistungsanalyseangriffen entgegenzuwirken, besteht darin, die Berechnungen, welche von dem Geheimschlüssel abhängen, zu randomisieren, indem man die ursprünglichen Daten mit Zufallsmasken maskiert und indem man die Berechnungen dementsprechend modifiziert. Dies kann für Software- oder Hardwareimplementierungen geschehen. Eine Vorgehensweise dieses Typs, die in L. Goubin und J. Patarin, "DES and differential power analysis – The duplication method", Cryptographic Hardware and Embedded Systems – CHES '99, Lecture Notes in Computer Science, Bd. 1717, S. 158–172, 1999, angegeben wird, schlägt ein Datenaufteilungsverfahren vor, um Implementierungen von DES und anderen Blockchiffren vor DPA-Angriffen zu schützen, wobei die Eingangsnachricht ebenso wie alle intermediären Daten jeweils in zwei Teile aufgeteilt werden, so dass die ursprünglichen Daten durch die bitweise Exklusiv-ODER-Verknüpfung (XOR) oder irgendeine andere geeignete Operation wiedergewonnen werden können. Die nichtlinearen Teile des Algorithmus, wie etwa die S-Boxen, werden durch geeignete Nachschlagtabellen von erhöhter Größe implementiert (in einem Nur-Lese-Speicher – ROM).
  • Die US-Patentanmeldung US 2001/0053220 A1 enthält einen ähnlichen Vorschlag, mit dem Unterschied, dass die Datenteile auch einer Bitpermutation unterzogen werden können. Die nichtlinearen Teile des Algorithmus, wie etwa die S-Boxen, können als Nachschlagtabellen implementiert werden, die dementsprechend aktualisiert werden (in einem Direktzugriffsspeicher – ROM).
  • Die Anmelderin weist darauf hin, dass ein Datenaufteilungsverfahren im Wesentlichen äquivalent zu einem Zufallsmaskierungsverfahren ist, das in T. Messerges, "Securing the AES finalists against power analysis attacks", Fast Software Encryption – FSE 2000, Lecture Notes in Computer Science, Bd. 1978, S. 150–164, 2001, mit dem Unterschied, dass bei dem letztgenannten Verfahren, anstelle der Ausführung doppelter Berechnungen mit Datenteilen, eine modifizierte Berechnung ausgeführt wird, in welche ursprüngliche Daten und angewendete Zufallsmasken einbezogen sind. Alle drei erwähnten Vorgehensweisen sind in erster Linie für Softwareimplementierungen bestimmt.
  • Ein alternativer Weg, um mit Leistungsanalyseangriffen fertig zu werden, besteht darin, von einer speziellen Codierung von Daten Gebrauch zu machen, welche darauf gerichtet ist, die Leistungsaufnahme auszubalancieren, zum Beispiel indem die Daten durch binäre Vektoren mit einer festen Anzahl von Einsen dargestellt werden, wie etwa Dual-Rail-Codierung. Insbesondere beschreibt die US-Patentanmeldung Nr. US 2003/0140240 A1 ein Verfahren zum Schutz von Hardwareimplementierungen kryptographischer Algorithmen vor Leistungsanalyseangriffen auf der Ebene der Logikgatter, wobei die Leistungsaufnahmeausbalanciert wird, indem alle Daten durch binäre Vektoren mit einer festen Anzahl von Einsen codiert werden und indem die Übergänge der Logikgatter ausbalanciert werden.
  • Um den DPA-Angriff auf ein mikroelektronisches Bauelement, das einen kryptographischen Algorithmus mittels einer digitalen IC implementiert, zu verhindern, genügt es sicherzustellen, dass jede elementare Berechnung, welche mit den geheimen Informationen verknüpft ist und von einem Logikgatter ausgeführt wird, randomisiert wird. Genauer, die zu erfüllende allgemeine Bedingung ist, dass der Ausgangswert jedes Logikgatters in dem geschützten Hardwareentwurf dieselbe Wahrscheinlichkeitsverteilung für jeden gegebenen festen Wert des Geheimschlüssels und der Eingangsdaten hat. Anders ausgedrückt, der Ausgangswert jedes Logikgatters in der digitalen IC, welche den kryptographischen Algorithmus implementiert, sollte statistisch unabhängig von dem Geheimschlüssel und den Eingangsdaten sein. Hier und durchgehend in der vorliegenden Beschreibung wird diese mathematische Bedingung als die "Bedingung der sicheren Berechnung" (Secure Computation Condition) bezeichnet und wurde erstmals explizit vorgeschlagen in J. Golic ', "DeKaRT: A new paradigm for key-dependent reversible circuits", Cryptographic Hardware and Embedded Systems – CHES 2003, Lecture Notes in Computer Science, Bd. 2779, S. 98–112, 2003. Die notwendige Unsicherheit wird gewährleistet, indem rein zufällige Masken verwendet werden, die vorzugsweise durch einen schnellen Zufallszahlengenerator erzeugt werden, der hardwaremäßig implementiert und in den IC-Chip integriert ist.
  • Es ist anzumerken, dass eine sichere Berechnung auf der Wortebene in Software im Allgemeinen nicht eine sichere Berechnung auf der Bitebene in Hardware zur Folge hat, obwohl die Sicherheit auf Wortebene für mehr Widerstand gegen anspruchsvollere Leistungsanalyseangriffe wie zum Beispiel die DPA-Angriffe höherer Ordnung sorgen kann. In der Praxis ist die Bedingung der sicheren Berechnung auf der Bitebene notwendig, um einen Schutz vor DPA-Angriffen (der ersten Ordnung) zu gewährleisten, und sie ist wahrscheinlich auch hinreichend, obwohl die einzelnen Logikgatter ihre endgültigen (zufälligen) Werte nicht gleichzeitig erreichen und im Übergangsstadium ihre Ausgangswerte (zufällig) variieren können und von ihren vorherigen Eingängen abhängen können. Dieser Effekt ist auch bei Softwareimplementierungen vorhanden und macht tatsächlich im Allgemeinen die Leistungsanalyse von nicht maskierten Implementierungen komplizierter, insbesondere für Implementierungen von Logikschaltungen in Hardware.
  • Die Maskierungsoperation, welche die Daten (Eingangs-, Ausgangs- und intermediäre Daten) mit einer Zufallsmaske kombiniert, ist typischerweise an die Natur der in dem kryptographischen Algorithmus verwendeten mathematischen Operationen angepasst, da auf diese Weise die erforderlichen Modifikationen in den Berechnungen auf ein Minimum begrenzt werden.
  • Genauer, es werde angenommen, dass in irgendeiner elementaren Berechnung in dem kryptographischen Algorithmus x und y die Eingänge eines Logikgatters bilden, welches diese Eingänge miteinander zu einem Ausgang z kombiniert, indem es eine Gruppenoperation & anwendet, gemäß: x & y = z (wobei eine Gruppenoperation gemäß der Gruppentheorie eine auf einer Menge definierte Operation ist, welche assoziativ ist, ein Identitätselement hat und so geartet ist, dass jedes Element der Menge ein inverses Element hat). Die Verwendung einer beliebigen Gruppenoperation zum Maskieren ist hinreichend, um die Daten perfekt zu randomisieren; es werde daher angenommen, dass die Eingänge x und y durch dieselbe Gruppenoperation & und unter Verwendung der Zufallsmasken rx bzw. rv randomisiert werden. Dann ist, in Anbetracht von (x & rx) & (y & ry) = (x & y) & (rx & ry) = z & (rx & ry),der resultierende Ausgang z somit automatisch randomisiert durch die Maske rz = rx & rv, so dass die Berechnung nicht modifiziert zu werden braucht.
  • Allgemeiner, falls z = f(x, y) für eine gegebene Funktion f (nicht notwendigerweise eine Gruppenoperation) ist, und falls gewünscht wird, einen maskierten Ausgang z & rz aus maskierten Eingängen x & rx und y & ry zu erhalten, dann muss die Funktion f (und müssen folglich die Berechnungen) zu einer neuen Funktion h modifiziert werden, die durch h(x, y) = f(x & rx, y & rv) & rz bestimmt ist, und das Problem ist, wie diese Funktion h sicher zu berechnen ist.
  • Demzufolge müssen in dem maskierten kryptographischen Algorithmus nur diejenigen elementaren Berechnungen modifiziert werden, die von der zugrunde liegenden Gruppenoperation &, welche für den Maskierungsvorgang benutzt wird, verschieden sind.
  • Im Allgemeinen sind die Gruppenoperationen auf Binärwörtern, die in kryptographischen Algorithmen am häufigsten verwendet werden, die bitweise Exklusiv-ODER-Verknüpfung (eXclusive OR, XOR) und die Addition modulo einer ganzen Zahl, welche eine Potenz von 2 ist. In Anbetracht der Tatsache, dass die Exklusiv-ODER-Verknüpfung von zwei Binärwerten in Wirklichkeit ihrer Addition modulo 2 entspricht, werden die bitweise Exklusiv-ODER-Verknüpfung und die Addition modulo 2n von zwei n-Bit-Wörtern x und y im Weiteren mit x +2 y bzw. x +n y bezeichnet.
  • Die oben zitierte Arbeit von J. Golić beschreibt einen allgemeinen theoretischen Rahmen für den Schutz vor DPA-Angriffen durch Zufallsmaskierung mittels Exklusiv-ODER-Verknüpfung auf der Logikgatter-(d. h. Hardware-)Ebene. Ein Hardwareverfahren, das heißt eine Logikschaltung für eine Zufallsmaskierung mittels Exklusiv-ODER-Verknüpfung eines MUX-(MUltipleXer-)Gatters mit 2 Eingängen, wobei ein Steuereingang auswählt, welcher von den zwei Dateneingängen zu dem Ausgang zu nehmen ist, wird in der US-Patentschrift Nr. US 6,295,606 B1 vorgeschlagen und ist dazu bestimmt, zum Maskieren von Nachschlagtabellen-Implementierungen von Booleschen Funktionen verwendet zu werden, die in kryptographischen Funktionen verwendet werden sollen. Die Bedingung der sicheren Berechnung, wie oben definiert, ist jedoch in US 6,295,606 B1 nicht zu finden. Ein anderes Hardwareverfahren zur Zufallsmaskierung von Logikgattern wird in der deutschen Patentschrift DE 10201449 C1 vorgeschlagen, doch der Anmelder merkt an, dass das Verfahren mit Fehlern behaftet ist und nicht der oben definierten Bedingung der sicheren Berechnung genügt.
  • In vielen Algorithmen werden die x +2 y und x +n y Operationen, zusammen mit anderen Booleschen und ganzzahligen Operationen, zur kryptographischen Sicherheit miteinander kombiniert. Die am besten bekannten Beispiele sind die weitverbreitete kryptographische Hash-Funktion SHA-1 (National Institute of Standards and Technology, FIPS Publication 180-1, Secure Hash Standard, 1994), die Blockchiffre IDEA (X. Lai und J. Massey, "A proposal for a new block encryption standard", Advances in Cryptology – Eurocrypt '90, Lecture Notes in Computer Science, Bd. 473, S. 398–404, 1991) und die Blockchiffre RC6 (R. L. Rivest et al., "The RC6 block cipher", v.1.1, Aug. 1998, erhältlich unter http://www.rsasecurity.com/rsalabs/rc6). Die SHA-1 umfasst einen Geheimschlüssel, wenn sie zur Nachrichtenauthentifizierung verwendet wird, zum Beispiel in der so genannten HMAC-Konstruktion. In solchen Algorithmen ist es zweckmäßig, beide oben erwähnte Gruppenoperationen (x +2 y und x +n y) für die Zufallsmaskierung zu verwenden.
  • Die Zufallsmaskierung, die auf der Addition modulo 2n beruht, wird gewöhnlich "arithmetische Maskierung" genannt, während die Zufallsmaskierung, die auf der Addition modulo 2 (oder bitweisen Exklusiv-ODER-Verknüpfung) beruht, gewöhnlich "Boolesche Maskierung" genannt wird.
  • Daher besteht ein Bedarf daran, eine Umwandlung zwischen den zwei entsprechenden Masken auf eine rechentechnisch sichere Weise durchzuführen, das heißt auf eine Weise, die sicher im Hinblick auf Leistungsanalyseangriffe wie etwa DPA ist. Nämlich, wenn ein n Bits enthaltendes Datenwort x und ein n Bits enthaltendes Zufallsmaskenwort (Zufallsmaske) r gegeben sind, besteht das Problem darin, x +n r ausgehend von x +2 r sicher zu berechnen, und umgekehrt.
  • Früher vorgeschlagene Lösungen für das Maskenumwandlungsproblem sind im Wesentlichen software- anstatt hardwareorientiert, was bedeutet, dass die elementaren Berechnungen, die betrachtet werden, auf Wörtern anstatt auf einzelnen Bits beruhen. Aus ihnen wird ersichtlich, dass die Umwandlung von arithmetischer Maskierung zu Boolescher Maskierung von Natur aus schwieriger ist als die Umwandlung von Boolescher Maskierung zu arithmetischer Maskierung. Genauer, in L. Goubin, "A sound method for switching between Boolean and arithmetic masking", Cryptographic Hardware and Embedded Systems – CHES 2001, Lecture Notes in Computer Science, Bd. 2162, S. 3–15, 2001, werden zwei Lösungen vorgeschlagen: eine für die Umwandlung von Boolescher in arithmetische Maskierung und die andere für die Umwandlung von arithmetischer in Boolesche Maskierung. Die erste Lösung erfordert sieben Operationen mit n-Bit-Wörtern und ein Hilfs-Zufallsmaskenwort mit n Bits, nämlich fünf Operationen der bitweisen Exklusiv-ODER-Verknüpfung und zwei Subtraktionen modulo 2n. Die zweie Lösung ist weit weniger effizient und erfordert 5(n + 1) Operationen mit n-Bit-Wörtern und ein Hilfs-Zufallsmaskenwort mit n Bits. Zum Vergleich ist anzumerken, dass die direkte Umwandlung der Masken durch eine +2 und eine +n Operation mit n-Bit-Wörtern erzielt werden kann, jedoch nicht rechentechnisch sicher ist.
  • Eine andere softwareorientierte Lösung für die Umwandlung von arithmetischer Maskierung zu Boolescher Maskierung wird in J.-S. Coron und A. Tchulkine, "A new algorithm for switching from arithmetic to Boolean masking", Cryptographic Hardware and Embedded Systems – CHES 2003, Lecture Notes in Computer Science, Bd. 2779, S. 89–97, 2003, vorgeschlagen. Die vorgeschlagene Lösung erfordert eine gewisse Vorausberechnung und Speicherung und einige Hilfs-Zufallsmaskierungsbits, kann jedoch effizienter sein als die oben beschriebene Lösung, in Abhängigkeit von der Wortgröße des Prozessors.
  • Ein weiteres Verfahren zur Umwandlung wird in T. S. Messerges, "Securing the AES finalists against power analysis attacks", Fast Software Encryption – International Workshop, Bd. 1978, April 2000, Seiten 150–164, vorgeschlagen.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • In Anbetracht des Standes der Technik, der oben skizziert wurde, hat sich die Anmelderin mit dem Problem der Durchführung einer Zufallsmaskierung auf der Hardwareebene in IC-Chips, welche kryptographische Funktionen implementieren, beschäftigt.
  • Insbesondere bestand das Problem, das von der Anmelderin gelöst wurde, darin, wie eine sichere Umwandlung von arithmetischer Maskierung zu Boolescher Zufallsmaskierung und umgekehrt in denjenigen IC-Chips durchgeführt werden kann, welche kryptographische Funktionen implementieren, die sowohl arithmetische als auch Boolesche Operationen erfordern. Eine sichere Umwandlung bedeutet, dass der Ausgangswert jedes Logikgatters in der digitalen Logikschaltung, welche den Umwandlungsalgorithmus implementiert, statistisch unabhängig von den Eingangsdaten sein sollte, wobei die statistische Unabhängigkeit durch die Zufallsmaske gewährleistet wird.
  • Die Anmelderin hat ein neues Verfahren zur Umwandlung von arithmetischer Maskierung zu Boolescher Zufallsmaskierung und umgekehrt gefunden, welches eine sichere und effiziente Umwandlung auf einer Bit-Basis ermöglicht.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren zur sicheren Umwandlung zwischen zwei unterschiedlichen Zufallsmaskierungen, insbesondere von arithmetischer zu Boolescher Zufallsmaskierung und umgekehrt, bereitgestellt, wie im beigefügten Anspruch 1 dargelegt.
  • Das Verfahren zur sicheren Umwandlung umfasst ein Umwandeln eines ersten binären Datenwortes, das durch ein binäres Maskenwort gemäß einem ersten Maskiervorgang maskiert ist, in ein entsprechendes zweites binäres Datenwort, das durch das binäre Maskenwort gemäß einem zweiten Maskiervorgang maskiert ist, wobei das erste und das zweite binäre Datenwort und das binäre Maskenwort entsprechende Mehrzahlen von Bits aufweisen, wobei jede der Mehrzahlen von Bits ein niedrigstwertiges Bit, ein erstes Bit und mindestens ein i-tes Bit, sofern i ≥ 2 ist, enthält. Das Umwandlungsverfahren umfasst:
    Nehmen des niedrigstwertigen Bits des ersten binären Datenwortes als ein niedrigstwertiges Bit des zweiten binären Datenwortes;
    Berechnen des ersten Bits des zweiten binären Datenwortes durch:
    • – Durchführen einer ersten Exklusiv-ODER-Verknüpfung des niedrigstwertigen Bits des binären Maskenwortes mit dem ersten Bit des ersten binären Datenwortes und Auswählen entweder eines Ergebnisses der ersten Exklusiv-ODER-Verknüpfung oder des ersten Bits des ersten binären Datenwortes als einen Wert des ersten Bits des zweiten binären Datenwortes, in Abhängigkeit von einem Wert, der mit dem niedrigstwertigen Bit des ersten oder des zweiten binären Datenwortes verbunden ist; und
  • Berechnen des i-ten Bits des zweiten binären Datenwortes durch:
    • – Durchführen einer zweiten Exklusiv-ODER-Verknüpfung des i-ten Bits des ersten binären Datenwortes mit dem (i-1)-ten Bit des binären Maskenwortes;
    • – Durchführen einer dritten Exklusiv-ODER-Verknüpfung des i-ten Bits des ersten binären Datenwortes mit einem ersten Wert, der mit dem (i-1)-ten Bit des ersten oder zweiten binären Datenwortes verbunden ist; und
    • – Auswählen eines Ergebnisses entweder der zweiten Exklusiv-ODER-Verknüpfung oder der dritten Exklusiv-ODER-Verknüpfung als einen Wert des i-ten Bits des zweiten binären Datenwortes, in Abhängigkeit von einem zweiten Wert, der mit dem (i-1)-ten Bit des ersten oder des zweiten binären Datenwortes verbunden ist.
  • Insbesondere umfasst das Durchführen der ersten Exklusiv-ODER-Verknüpfung Folgendes:
    • – Durchführen einer ersten logischen UND-Verknüpfung des niedrigstwertigen Bits des binären Maskenwortes mit einem logischen Komplement des ersten Bits des ersten binären Datenwortes;
    • – Durchführen einer zweiten logischen UND-Verknüpfung eines logischen Komplements des niedrigstwertigen Bits des binären Maskenwortes mit dem ersten Bit des ersten binären Datenwortes; und
    • – Durchführen einer logischen ODER-Verknüpfung der Ergebnisse der ersten und der zweiten logischen UND-Verknüpfung.
  • Das Auswählen entweder des Ergebnisses der ersten Exklusiv-ODER-Verknüpfung oder des ersten Bits des ersten binären Datenwortes als einen Wert des ersten Bits des zweiten binären Datenwortes kann umfassen:
    • – Durchführen einer dritten logischen UND-Verknüpfung des Ergebnisses der ersten Exklusiv-ODER-Verknüpfung mit einem logischen Komplement des Wertes, der mit dem niedrigstwertigen Bit des ersten oder des zweiten binären Datenwortes verbunden ist;
    • – Durchführen einer vierten logischen UND-Verknüpfung des ersten Bits des ersten binären Datenwortes mit dem Wert, der dem niedrigstwertigen Bit des ersten oder des zweiten binären Datenwortes entspricht; und
    • – Durchführen einer logischen ODER-Verknüpfung der Ergebnisse der dritten und der vierten logischen UND-Verknüpfung.
  • Das Durchführen der zweiten Exklusiv-ODER-Verknüpfung kann insbesondere umfassen:
    • – Durchführen einer fünften logischen UND-Verknüpfung eines logischen Komplements des i-ten Bits des ersten binären Datenwortes mit dem (i-1)-ten Bit des binären Maskenwortes;
    • – Durchführen einer sechsten logischen UND-Verknüpfung des i-ten Bits des ersten binären Datenwortes mit einem logischen Komplement des (i-1)-ten Bits des binären Maskenwortes; und
    • – Durchführen einer logischen ODER-Verknüpfung der Ergebnisse der fünften und der sechsten logischen UND-Verknüpfung.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung umfasst das Durchführen der dritten Exklusiv-ODER-Verknüpfung:
    • – Durchführen einer siebenten logischen UND-Verknüpfung eines logischen Komplements des i-ten Bits des ersten binären Datenwortes mit dem ersten Wert, der mit dem (i-1)-ten Bit des ersten oder des zweiten binären Datenwortes verbunden ist;
    • – Durchführen einer achten logischen UND-Verknüpfung des i-ten Bits des ersten binären Datenwortes mit einem logischen Komplement des ersten Werts, der mit dem (i-1)-ten Bit des ersten oder des zweiten binären Datenwortes verbunden ist; und
    • – Durchführen einer logischen ODER-Verknüpfung der Ergebnisse der siebenten und der achten logischen UND-Verknüpfung.
  • Insbesondere kann das Auswählen eines Ergebnisses entweder der zweiten Exklusiv-ODER-Verknüpfung oder der dritten Exklusiv-ODER-Verknüpfung als einen Wert des i-ten Bits des zweiten binären Datenwortes umfassen:
    • – Durchführen einer neunten logischen UND-Verknüpfung des Ergebnisses der zweiten Exklusiv-ODER-Verknüpfung mit einem logischen Komplement des zweiten Werts, der mit dem (i-1)-ten Bit des ersten oder des zweiten binären Datenwortes verbunden ist;
    • – Durchführen einer zehnten logischen UND-Verknüpfung des Ergebnisses der dritten Exklusiv-ODER-Verknüpfung mit dem zweiten Wert, der mit dem (i-1)-ten Bit des ersten oder des zweiten binären Datenwortes verbunden ist; und
    • – Durchführen einer logischen ODER-Verknüpfung der Ergebnisse der neunten und der zehnten logischen UND-Verknüpfung.
  • Gemäß einer Ausführungsform der Erfindung umfasst das Durchführen einer oder mehrerer von den ersten, zweiten und dritten Exklusiv-ODER-Verknüpfungen:
    • – Durchführen einer ersten logischen NAND-Verknüpfung eines ersten und eines zweiten Operanden der Exklusiv-ODER-Verknüpfung;
    • – Durchführen einer zweiten logischen NAND-Verknüpfung des ersten Operanden und eines Ergebnisses der ersten logischen NAND-Verknüpfung;
    • – Durchführen einer dritten logische NAND-Verknüpfung des zweiten Operanden und eines Ergebnisses der ersten logischen NAND-Verknüpfung; und Durchführen einer vierten logischen NAND-Verknüpfung der Ergebnisse der zweiten und der dritten logischen NAND-Verknüpfung.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung umfasst das Auswählen entweder eines Ergebnisses der ersten Exklusiv-ODER-Verknüpfung oder des ersten Bits des ersten binären Datenwortes als einen Wert des ersten Bits des zweiten binären Datenwortes, in Abhängigkeit von einem Wert, der mit dem niedrigstwertigen Bit des ersten oder des zweiten binären Datenwortes verbunden ist:
    • – Zuführen des Wertes, der mit dem niedrigstwertigen Bit des ersten oder des zweiten binären Datenwortes verbunden ist, als einen ersten und einen zweiten Operanden zu einer fünften logischen NAND-Verknüpfung;
    • – Durchführen einer sechsten logischen NAND-Verknüpfung zwischen einem Ergebnis der fünften logischen NAND-Verknüpfung und einem Ergebnis der ersten Exklusiv-ODER-Verknüpfung;
    • – Durchführen einer siebenten logischen NAND-Verknüpfung zwischen einem Ergebnis der fünften logischen NAND-Verknüpfung und dem ersten Bit des ersten binären Datenwortes; und
    • – Durchführen einer achten logischen NAND-Verknüpfung des Ergebnisses der siebenten und der achten logischen NAND-Verknüpfung.
  • Außerdem umfasst gemäß einer Ausführungsform der vorliegenden Erfindung das Auswählen eines Ergebnisses entweder der zweiten Exklusiv-ODER-Verknüpfung oder der dritten Exklusiv-ODER-Verknüpfung als einen Wert des i-ten Bits des zweiten binären Datenwortes, in Abhängigkeit von einem zweiten Wert, der mit dem (i-1)-ten Bit des ersten oder des zweiten binären Datenwortes verbunden ist:
    • – Zuführen des zweiten Wertes, der mit dem (i-1)-ten Bit des ersten oder des zweiten binären Datenwortes verbunden ist, als einen ersten und einen zweiten Operanden zu einer neunten logischen NAND-Verknüpfung;
    • – Durchführen einer zehnten logischen NAND-Verknüpfung zwischen einem Ergebnis der neunten logischen NAND-Verknüpfung und einem Ergebnis der zweiten Exklusiv-ODER-Verknüpfung;
    • – Durchführen einer elften logischen NAND-Verknüpfung zwischen einem Ergebnis der neunten logischen NAND-Verknüpfung und einem Ergebnis der dritten Exklusiv-ODER-Verknüpfung; und
    • – Durchführen einer zwölften logischen NAND-Verknüpfung des Ergebnisses der zehnten und der elften logischen NAND-Verknüpfung.
  • Das Maskenumwandlungsverfahren gemäß der vorliegenden Erfindung ist bitbasiert, in dem Sinne, dass sämtliche betrachteten elementaren Operationen auf der Bitebene ausgeführt werden, und es ist daher für eine direkte Implementierung in Hardware geeignet, zum Beispiel mittels kombinatorischer Logikschaltungen, die aus standardmäßigen Logikgattern bestehen. Es sind keine zusätzlichen Zufallsmaskierungs-Bits neben denjenigen, die in der Datenmaske vorhanden sind, erforderlich.
  • Die grundlegenden zwei Eigenschaften jeder Logikschaltung sind die Anzahl der beteiligten Logikgatter (die Gatter-Anzahl) und die maximale Laufzeit (auch als die "Tiefe" bezeichnet), ausgedrückt als die Summe der Laufzeiten der Logikgatter, die an dem entsprechenden kritischen Pfad beteiligt sind. Die Anmelderin hat festgestellt, dass das Maskenumwandlungsverfahren gemäß der vorliegenden Erfindung, was die Gatter-Anzahl anbelangt, für sowohl die Umwandlung von Boolescher zu arithmetischer Maskierung als auch die Umwandlung von arithmetischer zu Boolescher Maskierung gleich effizient ist; insbesondere ist die Anzahl der Logikgatter, die benötigt werden, ungefähr dieselbe wie diejenige, die für eine +n Operation mit n-Bit-Wörtern notwendig ist. Auf der Logikgatter-Ebene ist keine wesentliche Asymmetrie zwischen den zwei Maskenumwandlungen vorhanden.
  • Insbesondere hat die Anmelderin festgestellt, dass die Laufzeit der Logikschaltung, welche die Umwandlung von arithmetischer Maskierung zu Boolescher Maskierung durchführt, ungefähr die Hälfte der Laufzeit der Logikschaltung beträgt, welche die Umwandlung von Boolescher Maskierung zu arithmetischer Maskierung durchführt, und in etwa dieselbe ist wie diejenige für eine +n Operation mit n-Bit-Wörtern.
  • Das Umwandlungsverfahren gemäß der vorliegenden Erfindung ist, von einem praktischen Standpunkt aus betrachtet, wichtig für die Gewährleistung eines Schutzes vor Leistungsanalyse-(z. B. DPA-)und anderen Seitenkanalangriffen auf Hardwareimplementierungen kryptographi scher Algorithmen, wie zum Beispiel die verschlüsselte Hash-Funktion SHA-1, die zur Nachrichtenauthentifizierung in einer Anzahl von weitverbreiteten kryptographischen Protokollen verwendet wird.
  • Außerdem kann das Verfahren der vorliegenden Erfindung auch für die sichere Berechnung der arithmetischen Maskierungsoperation x +n r verwendet werden, wobei x ein geheimes n-Bit-Wort ist und r eine n-Bit-Zufallsmaske ist. Würde der maskierte Wert direkt vermittels der Übertragsbits berechnet, so wäre die Berechnung auf der Logikgatter-Ebene nicht sicher, da die Übertragsbits von x abhängig sind und daher nicht vollständig randomisiert sind. Die sichere Berechnung kann erreicht werden, indem zuerst unter Verwendung von n 2-Bit Exklusiv-ODER-Verknüpfungen x +2 r berechnet wird und danach x +2 r mittels des neuen Verfahrens in x +n r umgewandelt wird.
  • Andere Aspekte der Erfindung betreffen eine Maskenumwandlungsschaltungsanordnung, welche das obige Verfahren implementiert, eine integrierte Schaltung, die wenigstens eine solche Maskenumwandlungsschaltungsanordnung integriert, und eine Smartcard, die wenigstens eine solche integrierte Schaltung enthält.
  • Noch ein weiterer Aspekt der Erfindung betrifft ein Teilnehmeridentitätsmodul (Subscriber Identity Module, SIM), das zur Verwendung in Verbindung mit einer Benutzereinrichtung in einem Kommunikationsnetzwerk geeignet ist und eine Smartcard wie oben definiert enthält.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden anhand der nachfolgenden ausführlichen Beschreibung einiger Ausführungsformen derselben deutlich, die lediglich als nicht einschränkende Beispiele angeführt werden, wobei die Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen gegeben wird, wobei:
  • Die 1A und 1B Prinzipschaltbilder von Logikschaltungen sind, die dafür geeignet sind, ein Maskenumwandlungsverfahren gemäß einer ersten Ausführungsform der vorliegenden Erfindung zu implementieren, zur Umwandlung von Boolescher Zufallsmaskierung zu arithmetischer Zufallsmaskierung;
  • die 2A und 2B Prinzipschaltbilder von Logikschaltungen sind, die funktional zu den in den Figuren 1A und 1B dargestellten äquivalent sind und dafür geeignet sind, das Maskenumwandlungsverfahren gemäß der ersten Ausführungsform der vorliegenden Erfindung zu implementieren;
  • die 3A und 3B Prinzipschaltbilder von Logikschaltungen sind, die dafür geeignet sind, ein Maskenumwandlungsverfahren gemäß einer zweiten Ausführungsform der vorliegenden Erfindung zu implementieren, zur Umwandlung von arithmetischer Zufallsmaskierung zu Boolescher Zufallsmaskierung;
  • die 4A und 4B Prinzipschaltbilder von Logikschaltungen sind, die funktional zu den in den 3A und 3B dargestellten äquivalent sind und dafür geeignet sind, das Maskenumwandlungsverfahren gemäß der zweiten Ausführungsform der vorliegenden Erfindung zu implementieren;
  • die 5A und 5B Prinzipschaltbilder von Logikschaltungen sind, die dafür geeignet sind, ein Maskenumwandlungsverfahren gemäß einer dritten Ausführungsform der vorliegenden Erfindung zu implementieren, zur Umwandlung von Boolescher Zufallsmaskierung zu arithmetischer Zufallsmaskierung;
  • die 6A und 6B Prinzipschaltbilder von Logikschaltungen sind, die funktional zu den in den 5A und 5B dargestellten äquivalent sind und dafür geeignet sind, das Maskenumwandlungsverfahren gemäß der dritten Ausführungsform der vorliegenden Erfindung zu implementieren;
  • die 7A und 7B Prinzipschaltbilder von Logikschaltungen sind, die dafür geeignet sind, ein Maskenumwandlungsverfahren gemäß einer vierten Ausführungsform der vorliegenden Erfindung zu implementieren, zur Umwandlung von arithmetischer Zufallsmaskierung zu Boolescher Zufallsmaskierung;
  • die 8A und 8B Prinzipschaltbilder von Logikschaltungen sind, die funktional zu den in den 7A und 7B dargestellten äquivalent sind und dafür geeignet sind, das Maskenumwandlungsverfahren gemäß der vierten Ausführungsform der vorliegenden Erfindung zu implementieren;
  • die 9A und 9B Prinzipschaltbilder von Logikschaltungen sind, die dafür geeignet sind, ein MUX-Logikgatter bzw. ein Exklusiv-ODER-Logikgatter in Form von NAND-Logikgattern zu implementieren, die geeignet sind, in der CMOS-Transistortechnologie implementiert zu werden; und
  • 10 zeigt sehr schematisch ein beispielhaftes Szenario, in welchem die vorliegende Erfindung vorteilhaft angewendet werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM(EN) DER ERFINDUNG
  • Im Folgenden werden vier Ausführungsformen eines Maskenumwandlungsverfahrens gemäß der vorliegenden Erfindung zur Durchführung der Umwandlung zwischen Boolescher Zufallsmaskierung und arithmetischer Zufallsmaskierung und umgekehrt beschrieben, zusammen mit ihrer möglichen Hardwareimplementierung in Form von einfachen Logikgattern. Insbesondere sind zwei der Ausführungsformen, welche beschrieben werden, dafür geeignet, die Umwandlung von Boolescher Zufallsmaskierung zu arithmetischer Zufallsmaskierung durchzuführen, während die anderen zwei Ausführungsformen dafür geeignet sind, die umgekehrte Umwandlung durchzuführen, von arithmetischer Zufallsmaskierung zu Boolescher Zufallsmaskierung.
  • Die zugrunde liegende Annahme für die sichere Berechnung ist, dass die Zufallsmaske gleichverteilt ist, was erreicht werden kann, indem ein schneller Zufallszahlengenerator verwendet wird, der in Hardware implementiert ist. Genau gesagt, muss im Idealfall für alle neuen Eingangsdaten der zu schützenden kryptographischen Funktion jeweils eine neue Maske erzeugt werden.
  • Bevor mit der Beschreibung der verschiedenen Ausführungsformen der vorliegenden Erfindung begonnen wird, wird auf 10 Bezug genommen, in der ein beispielhaftes Szenario dargestellt ist, in welchem die Zufallsmaskenumwandlung vorteilhaft angewendet wird.
  • Insbesondere ist das betrachtete Szenario dasjenige von Mobilkommunikationssystemen, z. B. eines Mobilkommunikationsnetzes wie zum Beispiel eines GPRS/EDGE-Netzes oder UMTS-Netzes der dritten Generation, über welches Benutzer, die mit geeigneten Mobilkommunika tions-Endgeräten (oder Benutzereinrichtungen) 1000 ausgestattet sind, miteinander kommunizieren, Nachrichten und möglicherweise Medieninhalte austauschen und im Internet surfen können.
  • Bekanntlich arbeiten die mobilen Endgeräte 1000 in Verbindung mit einem Teilnehmeridentitätsmodul (Subscriber Identity Module, SIM) 1005 (einem so genannten USIM im Falle von UMTS), welches hauptsächlich Zwecken der Authentifizierung der Benutzer im Kommunikationsnetz dient.
  • Das SIM 1005 ist ein Smartcard-Modul mit einem darin eingebetteten IC-Chip 1010. Der IC-Chip 1010 enthält typischerweise einen Datenprozessor, z. B. einen Mikrocontroller mit geeigneten Speicherressourcen (ROM, RAM).
  • Mit der zunehmenden Erweiterung der Palette von Diensten, welche den Benutzern von Mobilkommunikationsnetzen angeboten werden, wird es immer mehr erforderlich, dass der IC-Chip 1010 zusätzlich zur Authentifizierung des Benutzers anspruchsvolle Funktionen ausführt. Eine dieser Funktionen besteht darin, Kryptographie zu implementieren; dies ist zum Beispiel in denjenigen Ende-zu-Ende-Kontexten nützlich, in denen Benutzern des Mobilkommunikationsnetzes ermöglicht wird, sichere, d. h. verschlüsselte und authentifizierte (SMS-)Nachrichten auszutauschen sowie einander auf der Ende-zu-Ende-Basis zu authentifizieren. Insbesondere kann Kryptographie durch Integration geeigneter Logikschaltungen in Hardware implementiert sein.
  • Wie im einleitenden Teil der vorliegenden Beschreibung erörtert wurde, kann, um kryptoanalytische Angriffe zu verhindern, welche den (die) für Zwecke der Verschlüsselung/Entschlüsselung verwendeten Geheimschlüssel aufdecken können, eine Zufallsmaskierung direkt auf der Hardwareebene implementiert werden, d. h. auf der Ebene der Logikschaltungen, welche die gewählte kryptographische Funktion (z. B. die Hash-Funktion SHA-1 in der HMAC-Betriebsweise, die zum Authentifizieren der Nachrichten verwendet wird) implementieren. Dies ist in dem eingekreisten Bereich in der Zeichnung schematisch dargestellt. Ein Zufallszahlengenerator (Random Number Generator, RNG) 1045, vorzugsweise ein schneller RNG, der in Hardware in dem IC-Chip 1010 implementiert ist, erzeugt eine Zufallsmaske r, d. h. eine n-Bit-Zufallszahl.
  • Die Zufallsmaske r wird verwendet, um durch eine Maskierungsfunktion 1020 Eingangsdaten 1015 der auszuführenden kryptographischen Funktion zu maskieren. Insbesondere ist die Maskierungsfunktion vorteilhafterweise eine Gruppenoperation und, noch spezieller, eine bitweise Exklusiv-ODER-Verknüpfung oder eine Addition/Subtraktion modulo 2n. Tatsächlich sind diese zwei Operationen die am häufigsten verwendeten Gruppenoperationen, welche typischerweise auf binären Datenwörtern in gegenwärtig gebräuchlichen kryptographischen Algorithmen ausgeführt werden: Indem sie verwendet werden, um die Daten zu maskieren, entfällt die Notwendigkeit, die entsprechenden elementaren Berechnungen zu modifizieren.
  • Die maskierten Eingangsdaten werden anschließend in eine maskierte Logikschaltung (eine Gesamtheit von Logikgattern) 1025 eingespeist, welche eine maskierte elementare Berechnung ausführt, die einen Teil des kryptographischen Algorithmus umfasst. Insbesondere wenn eine elementare Berechnung z. B. eine bitweise Exklusiv-ODER-Verknüpfung ist (analoge Überlegungen gelten im Falle einer Addition/Subtraktion modulo 2n) und die Maskierungsfunktion so gewählt ist, dass sie dieselbe Gruppenoperation ist, dann fällt die maskierte Logikschaltung 1025 in Wirklichkeit mit der ursprünglichen, nicht maskierten Schaltung zusammen.
  • Eine nachfolgende elementare Berechnung in dem kryptographischen Algorithmus kann zum Beispiel die andere Gruppenoperation sein, im angeführten Beispiel die Addition/Subtraktion modulo 2n, durchgeführt durch die maskierte Logikschaltung 1035. Danach wird eine Zufallsmaskenumwandlung 1030 von, in dem betrachteten Beispiel, der ursprünglichen Booleschen Maskierung zu der arithmetischen Maskierung durchgeführt, so dass die Notwendigkeit entfällt, die Logikschaltung 1035 zu modifizieren.
  • Danach kann eine weitere Maskenumwandlung 1040 durchgeführt werden, und so weiter, bis sämtliche elementaren Berechnungen, welche Bestandteil der kryptographischen Funktion sind, abgeschlossen sind. Falls zwischen beliebigen zwei aufeinander folgenden Maskenumwandlungen auch irgendwelche elementaren Berechnungen vorhanden sind, die von den entsprechenden Gruppenoperationen verschieden sind, dann müssen diese ebenfalls durch geeignete maskierte Logikschaltungen maskiert werden. Da dies nicht Gegenstand der vorliegenden Erfindung ist, sind die entsprechenden maskierten Logikschaltungen in 10 der Einfachheit halber nicht dargestellt.
  • Die Figuren 1A, 1B, 2A und 2B betreffen ein Maskenumwandlungsverfahren gemäß einer ersten Ausführungsform der vorliegenden Erfindung, zur Umwandlung von Boolescher zu arithmetischer Maskierung.
  • Mathematisch ausgedrückt, wenn die Notationen +2 und +n zum Bezeichnen der bitweisen Moduln-2-(Booleschen) bzw. der Moduln-2n-(arithmetischen) Addition von n-Bit-Wörtern verwendet werden und wenn ein n-Bit-Datenwort x = xn-1xn-2...x1x0 und ein n-Bit-Zufallsmaskenwort (Zufallsmaske) r = rn-1rr-2...r1r0 gegeben sind (das niedrigstwertige Bit in den n-Bit-Wörtern wird mit dem Index 0 bezeichnet), besteht das Maskenumwandlungsproblem darin, x +n r aus x +2 r sicher zu berechnen, in dem weiter oben definierten Sinne. Es sei x' = x'n-1x'n-2...x'1x'0 = x +2 rdas Boolesch-maskierte Datenwort, das aus dem Anfangsdatenwort x durch Anwendung der Booleschen Zufallsmaske r, das heißt durch Anwendung der Zufallsmaske r über die Operation +2, erhalten wird, und es sei x'' = x''n-1x''n-2...x''1x''0 = x +n rdas arithmetisch-maskierte Datenwort, das aus dem Anfangsdatenwort x durch Anwendung der arithmetischen Zufallsmaske r, das heißt durch Anwendung der Zufallsmaske r über die Operation +n, erhalten wird.
  • Es werde die folgende Notation gewählt, um die Booleschen Operationen darzustellen: +2, wie bereits definiert, steht für die Exklusiv-ODER-Verknüpfung (Addition modulo 2), OR steht für die logische ODER-Verknüpfung (oder Disjunktion),
    Figure 00200001
    steht für die NICHT-Verknüpfung (oder das binäre Komplement); die logische UND-Verknüpfung oder Konjunktion wird ohne irgendein Symbol bezeichnet, indem einfach die Symbole der Operanden verkettet werden. In den Zeichnungen sind die logische UND- und ODER-Verknüpfung unter Verwendung der Symbole ∧ bzw. ∨ dargestellt.
  • Die Exklusiv-ODER-Verknüpfung kann gemäß
    Figure 00200002
    implementiert werden, oder, was äquivalent ist, gemäß
    Figure 00210001
    wobei
    Figure 00210002
    die Boolesche Funktion ist, die durch ein MUX-("MUltiple-Xer") Gatter mit zwei Dateneingängen x und y und einem Steuereingang c implementiert ist.
  • Das Maskenumwandlungsverfahren gemäß dieser Ausführungsform der vorliegenden Erfindung erfordert eine Berechnung, welche rekursiv durch die folgenden Gleichungen (Gleichungen (1)) definiert ist:
    Figure 00210003
  • Die Gleichungen (1) werden hergeleitet, indem von dem wohlbekannten schulmäßigen Verfahren zum Berechnen der Summe ganzer Zahlen mit Übertrag ausgegangen wird. Hier und überall werden die algebraischen Herleitungen der Einfachheit halber nicht mit angeführt, da die Gleichungen sowie ihre sichere Berechnung direkt geprüft werden können, durch eine einfache mathematische Analyse.
  • Die Gleichungen (1) können praktisch mittels einfacher Logikgatter in Hardware implementiert werden, wie in den 1A und 1B dargestellt, wobei das Bezugszeichen 100a die Logikschaltung bezeichnet, welche die zweite Gleichung der Gleichungen (1) implementiert (d. h. die Schaltung, die dafür geeignet ist, das Bit x''1 des Datenwortes x'' zu erzeugen, das aus dem Anfangsdatenwort x durch Anwendung der arithmetischen Zufallsmaske erhalten wird), und das Bezugszeichen 100b die Logikschaltung bezeichnet, welche die dritte Gleichung der Gleichungen (1) implementiert (d. h. die Schaltung, die dafür geeignet ist, das generische weitere Bit x''i des Datenwortes x'' zu erzeugen).
  • Insbesondere, wie in 1A dargestellt, werden das niedrigstwertige Bit r0 des Maskenwortes r und das logische Komplement des Bits x'1 des Boolesch-maskierten Datenwortes x' mittels eines UND-Logikgatters 105 durch UND verknüpft; das Bit x'1 wird mit dem logischen Komplement des Zufallsmaskenbits r0 mittels eines UND-Logikgatters 110 ebenfalls durch UND verknüpft. Die Ausgänge der zwei UND-Logikgatter 105 und 110 werden in ein ODER-Logikgatter 115 eingespeist. Der Ausgang des ODER-Logikgatters 115 wird mit dem logischen Komplement des niedrigstwertigen Bits x'0 des Boolesch-maskierten Datenwortes x' mittels eines UND-Logikgatters 120 durch UND verknüpft; das Bit x'0 wird mit dem Bit x'1 mittels eines UND-Logikgatters 125 ebenfalls durch UND verknüpft. Die Ausgänge der UND-Logikgatter 120 und 125 werden mittels eines ODER-Logikgatters 130 durch ODER verknüpft, um das gewünschte Bit x''1 zu erzeugen.
  • Es wird auf 1B Bezug genommen; das Bit ri-1 des Maskenwortes r und das logische Komplement des Bits x'i des Boolesch-maskierten Datenwortes x' werden mittels eines UND-Logikgatters 135 durch UND verknüpft; das Bit x'i wird mit dem logischen Komplement des Zufallsmaskenbits ri-1 mittels eines UND-Logikgatters 140 ebenfalls durch UND verknüpft. Ferner werden das logische Komplement des Bits x''i-1 des arithmetisch-maskierten Datenwortes x'' und das logische Komplement des Bits x'i mittels eines UND-Logikgatters 145 durch UND verknüpft; die Bits x'i und x''i-1 werden mittels eines UND-Logikgatters 150 ebenfalls durch UND verknüpft.
  • Die Ausgänge der zwei UND-Logikgatter 135 und 140 werden in ein ODER-Logikgatter 155 eingespeist. In ähnlicher Weise werden die Ausgänge der zwei UND-Logikgatter 145 und 150 in ein ODER-Logikgatter 160 eingespeist.
  • Der Ausgang des ODER-Logikgatters 155 wird mit dem logischen Komplement des Bits x'i-1 mittels eines UND-Logikgatters 165 durch UND verknüpft. Das Bit x'i-1 wird mit dem Ausgang des ODER-Logikgatters 160 mittels eines UND-Logikgatters 170 ebenfalls durch UND verknüpft. Die Ausgänge der UND-Logikgatter 165 und 170 werden mittels eines ODER-Logikgatters 175 durch ODER verknüpft, um das gewünschte Bit x''i zu erzeugen.
  • Es ist ersichtlich, dass die Logikgatter, die zum Implementieren der gewünschten Maskenumwandlungsfunktion erforderlich sind, die ODER-, UND- und NICHT-Gatter sind (die NICHT-Gatter sind der Einfachheit halber in den Zeichnungen nicht dargestellt), welche alle elementare Logikgatter sind, was die Hardwareimplementierung anbelangt.
  • Es ist anzumerken, dass in den Gleichungen (1) die logische ODER-Verknüpfung durch eine Exklusiv-ODER-Verknüpfung ersetzt werden könnte; vom Standpunkt der Hardwareimplementierung aus kann dies jedoch ungünstig sein, da das ODER-Logikgatter typischerweise elementarer ist als des Exklusiv-ODER-Logikgatter.
  • Die Exklusiv-ODER-Verknüpfungen, welche ODER-Verknüpfungen in den Gleichungen (1) ersetzen können, können jedoch als ein Spezialfall der Operation MUX angesehen werden; dies legt nahe, die Gleichungen (1) in die folgende äquivalente Form zu bringen (Gleichungen (2)):
    Figure 00230001
  • Die Gleichungen (2) können praktisch mittels der Logikschaltungen, die in den 2A und 2B dargestellt sind, in Hardware implementiert werden, wobei das Bezugszeichen 200a die Logikschaltung bezeichnet, welche die zweite Gleichung der Gleichungen (2) implementiert, und das Bezugszeichen 200b die Logikschaltung bezeichnet, welche die dritte Gleichung der Gleichungen (2) implementiert (auch in diesem Falle sind die NICHT-Logikgatter aus Gründen der Einfachheit der Zeichnungen nicht dargestellt).
  • Insbesondere, wie in 2A dargestellt, werden das niedrigstwertige Bit r0 des Maskenwortes r und das Bit x'1 des Boolesch-maskierten Datenwortes x' mittels eines Exklusiv-ODER-Logikgatters 205 durch Exklusiv-ODER verknüpft; der Ausgang des Exklusiv-ODER-Logikgatters 205 und das Bit x'1 bilden die Eingänge eines MUX-Logikgatters 210, das durch das Bit x'0 gesteuert wird; ein Ausgang des MUX-Logikgatters 210 stellt das gewünschte Bit x''1 dar.
  • Es wird auf 2B Bezug genommen; in ähnlicher Weise werden das Bit ri-1 des Maskenwortes r und das Bit x'i des Boolesch-maskierten Datenwortes x' mittels eines Exklusiv-ODER-Logikgatters 215 durch Exklusiv-ODER verknüpft; das Bit x'i wird außerdem mit dem logischen Komplement des Bits x''i-1 mittels eines Exklusiv-ODER-Logikgatters 220 durch Exklusiv-ODER verknüpft.
  • Die Ausgänge der Exklusiv-ODER-Logikgatter 215 und 220 bilden die Eingänge eines MUX-Logikgatters 225, das durch das Bit x'i-1 gesteuert wird; der Ausgang des MUX-Logikgatters 225 stellt das gewünschte Bit x''i dar.
  • Die in den 2A und 2B dargestellten Logikschaltungen sind funktional äquivalent zu den in den 1A und 1B dargestellten.
  • Durch eine mathematische Analyse kann gezeigt werden, dass der Ausgang jedes Logikgatters in den Schaltungen der 1A, 1B, 2A und 2B sicher berechnet wird, d. h. dass er dieselbe Wahrscheinlichkeitsverteilung für jeden festen Wert des Eingangs x hat. Anders ausgedrückt, sämtliche elementaren Berechnungen sind auf der Logikgatter-Ebene sicher im Hinblick auf DPA-Angriffe. Für die gewünschte Randomisierung wird durch x'i gesorgt, das heißt durch das zugrunde liegende Maskierungsbit ri, welches unabhängig von ri-1, x''i-1 und x'i-1 ist.
  • Interessant ist, dass, anders als bei den früher vorgeschlagenen Verfahren, keine zusätzlichen Maskierungsbits erforderlich sind.
  • In beiden Fällen ist die Anzahl der Logikgatter äquivalent zu 3n-4 MUX-Gattern, und die Tiefe beträgt ungefähr 2(n-1) MUX-Gatter. Für Zwecke des Vergleichs ist anzumerken, dass das schulmäßige Verfahren zur Addition ganzer Zahlen mit Übertrag eine äquivalente Gatter-Anzahl von ungefähr 3n-4 MUX-Gattern und eine Tiefe von ungefäihr n MUX-Gattern aufweist. Dies zeigt, dass die vorgeschlagenen Logikschaltungen für die Maskenumwandlung tatsächlich sehr einfach sind.
  • Die 3A, 3B, 4A und 4B betreffen ein Maskenumwandlungsverfahren gemäß einer zweiten Ausführungsform der vorliegenden Erfindung, zur Umwandlung von arithmetischer zu Boolescher Maskierung.
  • Mathematisch ausgedrückt, wenn ein n-Bit-Datenwort x und ein n-Bit-Zufallsmaskenwort r gegeben sind, besteht das Maskenumwandlungsproblem darin, x +2 r aus x +n r sicher zu berechnen.
  • Auch in diesem Falle wird die Berechnung rekursiv durch die folgenden Gleichungen definiert, wobei dieselbe Notation wie bei der zuvor erörterten Ausführungsform verwendet wurde. Wie oben beruhen die Gleichungen auf dem wohlbekannten schulmäßigen Verfahren zum Berechnen der Summe ganzer Zahlen mit Übertrag. Die erhaltenen Gleichungen sind (Gleichungen (3)):
    Figure 00250001
  • Die Gleichungen (3) können praktisch mittels einfacher Logikgatter in Hardware implementiert werden, wie in den 3A und 3B dargestellt, wobei das Bezugszeichen 300a die Logikschaltung bezeichnet, welche die zweite Gleichung der Gleichungen (3) implementiert (d. h. die Schaltung, die dafür geeignet ist, das Bit x'1 des Datenwortes x' zu erzeugen, das aus dem Anfangsdatenwort x durch Anwendung der Booleschen Zufallsmaske erhalten wird), und das Bezugszeichen 300b die Logikschaltung bezeichnet, welche die dritte Gleichung der Gleichungen (3) implementiert (d. h. die Schaltung, die dafür geeignet ist, das generische weitere Bit x'i des Datenwortes x' zu erzeugen).
  • Insbesondere, wie in 3A dargestellt, werden das niedrigstwertige Bit r0 des Maskenwortes r und das logische Komplement des Bits x''1 des arithmetisch-maskierten Datenwortes x'' mittels eines UND-Logikgatters 305 durch UND verknüpft; das Bit x''1 wird mit dem logischen Komplement des Zufallsmaskenbits r0 mittels eines UND-Logikgatters 310 ebenfalls durch UND verknüpft. Die Ausgänge der zwei UND-Logikgatter 305 und 310 werden in ein ODER-Logikgatter 315 eingespeist. Der Ausgang des ODER-Logikgatters 315 wird mit dem logischen Komplement des niedrigstwertigen Bits x'0 des Boolesch-maskierten Datenwortes x' mittels eines UND-Logikgatters 320 durch UND verknüpft; das Bit x'0 wird mit dem Bit x''1 mittels eines UND-Logikgatters 325 ebenfalls durch UND verknüpft. Die Ausgänge der UND-Logikgatter 320 und 325 werden mittels eines ODER-Logikgatters 330 durch ODER verknüpft, um das gewünschte Bit x'1 zu erzeugen.
  • Es wird auf 3B Bezug genommen; das Bit ri-1 des Maskenwortes r und das logische Komplement des Bits x''i des arithmetisch-maskierten Datenwortes x'' werden mittels eines UND-Logikgatters 335 durch UND verknüpft; das Bit x''i wird mit dem logischen Komplement des Zufallsmaskenbits ri-1 mittels eines UND-Logikgatters 340 ebenfalls durch UND verknüpft. Ferner werden das logische Komplement des Bits x''i-1 des arithmetisch-maskierten Datenwortes x'' und das logische Komplement des Bits x''i mittels eines UND-Logikgatters 345 durch UND verknüpft; die Bits x''i und x''i-1 werden mittels eines UND-Logikgatters 350 ebenfalls durch UND verknüpft.
  • Die Ausgänge der zwei UND-Logikgatter 335 und 340 werden in ein ODER-Logikgatter 355 eingespeist. In ähnlicher Weise werden die Ausgänge der zwei UND-Logikgatter 345 und 350 in ein ODER-Logikgatter 360 eingespeist.
  • Der Ausgang des ODER-Logikgatters 355 wird mit dem logischen Komplement des Bits x'i-1 mittels eines UND-Logikgatters 365 durch UND verknüpft. Das Bit x'i-1 wird mit dem Ausgang des ODER-Logikgatters 360 mittels eines UND-Logikgatters 370 ebenfalls durch UND verknüpft. Die Ausgänge der UND-Logikgatter 365 und 370 werden mittels eines ODER-Logikgatters 375 durch ODER verknüpft, um das gewünschte Bit x'i zu erzeugen.
  • Es ist ersichtlich, dass auch in diesem Falle, wie bei den zuvor beschriebenen Implementierungen, die einzigen Logikgatter, die zum Implementieren der gewünschten Funktion erforderlich sind, die ODER-, UND- und NICHT-Gatter sind (die NICHT-Gatter sind der Einfachheit halber in den Zeichnungen nicht dargestellt), welche, vom Standpunkt der Hardwareimplementierung aus betrachtet, alle elementare Logikgatter sind.
  • In den Gleichungen (3) können auch in diesem Falle Exklusiv-ODER-Verknüpfungen identifiziert werden, da sie, wie weiter oben erwähnt, anstelle von ODER-Verknüpfungen verwendet werden können. Beachtet man, dass die Exklusiv-ODER-Verknüpfung als ein Spezialfall der Operation MUX angesehen werden kann, so können die Gleichungen (3) dementsprechend auch in die folgende äquivalente Form gebracht werden (Gleichungen (4)):
    Figure 00260001
  • Die Gleichungen (4) können praktisch mittels der in den 4A und 4B dargestellten Logikschaltungen, welche zu den in den 3A und 3B dargestellten funktional äquivalent sind, in Hardware implementiert werden; das Bezugszeichen 400a bezeichnet die Logikschaltung, welche die zweite Gleichung der Gleichungen (4) implementiert, und das Bezugszeichen 400b bezeichnet die Logikschaltung, welche die dritte Gleichung der Gleichungen (4) imple mentiert (auch in diesem Falle sind die NICHT-Logikgatter aus Gründen der Einfachheit der Zeichnungen nicht dargestellt).
  • Insbesondere, wie in 4A dargestellt, werden das niedrigstwertige Bit r0 des Maskenwortes r und das Bit x''1 des arithmetisch-maskierten Datenwortes x'' mittels eines Exklusiv-ODER-Logikgatters 405 durch Exklusiv-ODER verknüpft; der Ausgang des Exklusiv-ODER-Logikgatters 405 und das Bit x''1 bilden die Eingänge eines MUX-Logikgatters 410, das durch das Bit x'0 gesteuert wird; ein Ausgang des MUX-Logikgatters 410 stellt das gewünschte Bit x'1 dar.
  • Es wird auf 4B Bezug genommen; in ähnlicher Weise werden das Bit ri-1 des Maskenwortes r und das Bit x''i des arithmetisch-maskierten Datenwortes x'' mittels eines Exklusiv-ODER-Logikgatters 415 durch Exklusiv-ODER verknüpft; das Bit x''i wird außerdem mit dem logischen Komplement des Bits x''i-1 mittels eines Exklusiv-ODER-Logikgatters 420 durch Exklusiv-ODER verknüpft.
  • Die Ausgänge der Exklusiv-ODER-Logikgatter 415 und 420 bilden die Eingänge eines MUX-Logikgatters 425, das durch das Bit x'i-1 gesteuert wird; der Ausgang des MUX-Logikgatters 425 stellt das gewünschte Bit x'i dar.
  • Durch eine mathematische Analyse kann gezeigt werden, dass der Ausgang jedes Logikgatters in den Schaltungen der 3A, 3B, 4A und 4B sicher berechnet wird, d. h. dass er dieselbe Wahrscheinlichkeitsverteilung für jeden festen Wert des Eingangs x hat. Für die gewünschte Randomisierung wird durch x''i gesorgt, das heißt durch das zugrunde liegende Maskierungsbit ri, welches unabhängig von ri-1, x''i-1 und x'i-1 ist. Wie oben sind keine zusätzlichen Maskierungsbits erforderlich.
  • Sowohl im Falle der Schaltungen der 3A und 3B als auch im Falle der Schaltungen der 4A und 4B ist die Anzahl der Logikgatter äquivalent zu 3n-4 MUX-Gattern, und die Tiefe ist auf ungefähr n MUX-Gatter reduziert. Die Verringerung der Tiefe ist auf die Tatsache zurückzuführen, dass die Werte x''i-1 bereits verfügbar sind.
  • Im Folgenden werden andere Ausführungsformen der vorliegenden Erfindung beschrieben, welche als Modifikationen der oben beschriebenen Ausführungsformen betrachtet werden können, um die Umwandlung von arithmetischer Maskierung zu Boolescher Zufallsmaskierung und umgekehrt durchzuführen, wobei jedoch die Zufallsmaske von den Daten subtrahiert wird, anstatt zu ihnen addiert zu werden.
  • Insbesondere betreffen die 5A, 5B, 6A und 6B ein Umwandlungsverfahren gemäß einer dritten Ausführungsform der vorliegenden Erfindung, zur Umwandlung von Boolescher zu arithmetischer Maskierung, wobei jedoch, im Unterschied zu der ersten erörterten Ausführungsform, die Maske von den zu maskierenden Daten subtrahiert wird, anstatt zu ihnen addiert zu werden.
  • Mathematisch ausgedrückt, besteht das Maskenumwandlungsproblem darin, x'' = x –n r aus x' = x +2 r sicher zu berechnen, wobei –n die Subtraktion modulo 2n bezeichnet.
  • Da
    Figure 00280001
  • Dementsprechend kann die gewünschte Maskenumwandlung durchgeführt werden, indem die folgenden Gleichungen implementiert werden (Gleichungen 5):
    Figure 00280002
  • Die Gleichungen (5) können praktisch mittels einfacher Logikgatter in Hardware implementiert werden, wie in den 5A und 5B dargestellt, wobei das Bezugszeichen 500a die Logikschaltung bezeichnet, welche die zweite Gleichung der Gleichungen (5) implementiert (d. h. die Schaltung, die dafür geeignet ist, das Bit x''1 des Datenwortes x'' zu erzeugen, das aus dem Anfangsdatenwort x durch Anwendung der arithmetischen Zufallsmaske erhalten wird), und das Bezugszeichen 500b die Logikschaltung bezeichnet, welche die dritte Gleichung der Gleichungen (5) implementiert (d. h. die Schaltung, die dafür geeignet ist, das generische weitere Bit x''i des Datenwortes x'' zu erzeugen).
  • Insbesondere, wie in 5A dargestellt, werden das niedrigstwertige Bit r0 des Maskenwortes r und das logische Komplement des Bits x'1 des Boolesch-maskierten Datenwortes x' mittels eines UND-Logikgatters 505 durch UND verknüpft; das Bit x'1 wird mit dem logischen Komplement des Zufallsmaskenbits r0 mittels eines UND-Logikgatters 510 ebenfalls durch UND verknüpft. Die Ausgänge der zwei UND-Logikgatter 505 und 510 werden in ein ODER-Logikgatter 515 eingespeist. Der Ausgang des ODER-Logikgatters 515 wird mit dem niedrigstwertigen Bit x'0 des Boolesch-maskierten Datenwortes x' mittels eines UND-Logikgatters 520 durch UND verknüpft; das logische Komplement des Bits x'0 wird mit dem Bit x'1 mittels eines UND-Logikgatters 525 ebenfalls durch UND verknüpft. Die Ausgänge der UND-Logikgatter 520 und 525 werden mittels eines ODER-Logikgatters 530 durch ODER verknüpft, um das gewünschte Bit x''1 zu erzeugen.
  • Es wird auf 5B Bezug genommen; das Bit ri-1 des Maskenwortes r und das logische Komplement des Bits x'i des Boolesch-maskierten Datenwortes x' werden mittels eines UND-Logikgatters 535 durch UND verknüpft; das Bit x'i wird mit dem logischen Komplement des Zufallsmaskenbits ri-1 mittels eines UND-Logikgatters 540 ebenfalls durch UND verknüpft. Ferner werden das Bit x''i-1 des arithmetisch-maskierten Datenwortes x'' und das logische Komplement des Bits x'i mittels eines UND-Logikgatters 545 durch UND verknüpft; das Bit x'i und das logische Komplement des Bits x''i-1 werden mittels eines UND-Logikgatters 550 ebenfalls durch UND verknüpft.
  • Die Ausgänge der zwei UND-Logikgatter 535 und 540 werden in ein ODER-Logikgatter 555 eingespeist. In ähnlicher Weise werden die Ausgänge der zwei UND-Logikgatter 545 und 550 in ein ODER-Logikgatter 560 eingespeist.
  • Der Ausgang des ODER-Logikgatters 555 wird mit dem Bit x'i-1 mittels eines UND-Logikgatters 565 durch UND verknüpft; das logische Komplement des Bits x'i-1 wird mit dem Ausgang des ODER-Logikgatters 560 mittels eines UND-Logikgatters 570 ebenfalls durch UND verknüpft. Die Ausgänge der UND-Logikgatter 565 und 570 werden mittels eines ODER-Logikgatters 575 durch ODER verknüpft, um das gewünschte Bit x''i zu erzeugen.
  • Es ist ersichtlich, dass, wie bei den zuvor beschriebenen Ausführungsformen, die Logikgatter, die zum Implementieren der gewünschten Funktion erforderlich sind, die ODER-, UND- und NICHT-Gatter sind (die NICHT-Gatter sind der Einfachheit halber in den Zeichnungen nicht dargestellt), welche, vom Standpunkt der Hardwareimplementierung aus betrachtet, alle elementare Gatter sind.
  • Falls in den Gleichungen (5) Exklusiv-ODER-Verknüpfungen anstelle von ODER-Verknüpfungen verwendet werden und die Exklusiv-ODER-Verknüpfungen als ein Spezialfall der allgemeineren Operation MUX angesehen werden, können die Gleichungen (5) in die folgende Form gebracht werden (Gleichungen (6)):
    Figure 00300001
  • Die Gleichungen (6) können praktisch mittels der in den 6A und 6B dargestellten Logikschaltungen, welche zu den in den 5A und 5B dargestellten funktional äquivalent sind, in Hardware implementiert werden, wobei das Bezugszeichen 600a die Logikschaltung bezeichnet, welche die zweite Gleichung der Gleichungen (6) implementiert, und das Bezugszeichen 600b die Logikschaltung bezeichnet, welche die dritte Gleichung der Gleichungen (6) implementiert (auch in diesem Falle sind die NICHT-Logikgatter aus Gründen der Einfachheit der Zeichnungen nicht dargestellt).
  • Insbesondere, wie in 6A dargestellt, werden das niedrigstwertige Bit r0 des Maskenwortes r und das Bit x'1 des Boolesch-maskierten Datenwortes x' mittels eines Exklusiv-ODER-Logikgatters 605 durch Exklusiv-ODER verknüpft; der Ausgang des Exklusiv-ODER-Logikgatters 605 und das Bit x'1 bilden die Eingänge eines MUX-Logikgatters 610, das durch das logische Komplement des Bits x'0 gesteuert wird; ein Ausgang des MUX-Logikgatters 610 stellt das gewünschte Bit x''1 dar.
  • Es wird auf 6B Bezug genommen; in ähnlicher Weise werden das Bit ri-1 des Maskenwortes r und das Bit x'i des Boolesch-maskierten Datenwortes x' mittels eines Exklusiv-ODER-Logikgatters 615 durch Exklusiv-ODER verknüpft; das Bit x'i wird außerdem mit dem Bit x''i-1 mittels eines Exklusiv-ODER-Logikgatters 620 durch Exklusiv-ODER verknüpft.
  • Die Ausgänge der Exklusiv-ODER-Logikgatter 615 und 620 bilden die Eingänge eines MUX-Logikgatters 625, das durch das logische Komplement des Bits x'i-1 gesteuert wird; der Ausgang des MUX-Logikgatters 625 stellt das gewünschte Bit x''i dar.
  • Die Logikschaltungen sind äquivalent zu den in den 1A, 2A, 3A und 3B dargestellten, und alle Berechnungen bleiben sicher.
  • Sowohl im Falle der Schaltungen der 5A und 5B als auch im Falle der Schaltungen der 6A und 6B ist die Anzahl der Logikgatter äquivalent zu 3n-4 MUX-Gattern, und die Tiefe beträgt ungefähr 2(n-1) MUX-Gatter.
  • Die 7A, 7B, 8A und 8B betreffen ein Umwandlungsverfahren gemäß einer vierten Ausführungsform der vorliegenden Erfindung, zur Umwandlung von arithmetischer zu Boolescher Maskierung, wobei jedoch, im Unterschied zu der weiter oben erörterten zweiten Ausführungsform, die Maske von den zu maskierenden Daten subtrahiert wird, anstatt zu ihnen addiert zu werden.
  • Mathematisch ausgedrückt, besteht das Maskenumwandlungsproblem darin, x'' = x +2 r aus x' x –n r sicher zu berechnen.
  • Die gewünschte Umwandlung wird durch die folgenden Gleichungen erhalten (Gleichungen (7)):
    Figure 00310001
  • Die Gleichungen (7) können praktisch mittels einfacher Logikgatter in Hardware implementiert werden, wie in den 7A und 7B dargestellt, wobei das Bezugszeichen 700a die Logikschaltung bezeichnet, welche die zweite Gleichung der Gleichungen (7) implementiert (d. h. die Schaltung, die dafür geeignet ist, das Bit x'1 des Datenwortes x' zu erzeugen, das aus dem Anfangsdatenwort x durch Anwendung der Booleschen Zufallsmaske erhalten wird), und das Bezugszeichen 700b die Logikschaltung bezeichnet, welche die dritte Gleichung der Gleichun gen (7) implementiert (d. h. die Schaltung, die dafür geeignet ist, das generische weitere Bit x'i des Datenwortes x' zu erzeugen).
  • Insbesondere, wie in 7A dargestellt, werden das niedrigstwertige Bit r0 des Maskenwortes r und das logische Komplement des Bits x''1 des arithmetisch-maskierten Datenwortes x'' mittels eines UND-Logikgatters 705 durch UND verknüpft; das Bit x''1 wird mit dem logischen Komplement des Zufallsmaskenbits r0 mittels eines UND-Logikgatters 710 ebenfalls durch UND verknüpft. Die Ausgänge der zwei UND-Logikgatter 705 und 710 werden in ein ODER-Logikgatter 715 eingespeist. Der Ausgang des ODER-Logikgatters 715 wird mit dem niedrigstwertigen Bit x'0 des Boolesch-maskierten Datenwortes x' mittels eines UND-Logikgatters 720 durch UND verknüpft; das logische Komplement des Bits x'0 wird mit dem Bit x''1 mittels eines UND-Logikgatters 725 ebenfalls durch UND verknüpft. Die Ausgänge der UND-Logikgatter 720 und 725 werden mittels eines ODER-Logikgatters 730 durch ODER verknüpft, um das gewünschte Bit x'1 zu erzeugen.
  • Es wird auf 7B Bezug genommen; das Bit ri-1 des Maskenwortes r und das logische Komplement des Bits x''i des arithmetisch-maskierten Datenwortes x'' werden mittels eines UND-Logikgatters 735 durch UND verknüpft; das Bit x''i wird mit dem logischen Komplement des Zufallsmaskenbits ri-1 mittels eines UND-Logikgatters 740 ebenfalls durch UND verknüpft. Ferner werden das Bit x''i-1 des arithmetisch-maskierten Datenwortes x'' und das logische Komplement des Bits x''i mittels eines UND-Logikgatters 745 durch UND verknüpft; das Bit x''i und das logische Komplement des Bits x''i-1 werden mittels eines UND-Logikgatters 750 ebenfalls durch UND verknüpft.
  • Die Ausgänge der zwei UND-Logikgatter 735 und 740 werden in ein ODER-Logikgatter 755 eingespeist. In ähnlicher Weise werden die Ausgänge der zwei UND-Logikgatter 745 und 750 in ein ODER-Logikgatter 760 eingespeist.
  • Der Ausgang des ODER-Logikgatters 755 wird mit dem Bit x'i-1 mittels eines UND-Logikgatters 765 durch UND verknüpft; das logische Komplement des Bits x'i-1 wird mit dem Ausgang des ODER-Logikgatters 760 mittels eines UND-Logikgatters 770 ebenfalls durch UND verknüpft. Die Ausgänge der UND-Logikgatter 765 und 770 werden mittels eines ODER-Logikgatters 775 durch ODER verknüpft, um das gewünschte Bit x'i zu erzeugen.
  • Es ist ersichtlich, dass auch in diesem Falle, wie bei den zuvor beschriebenen Implementierungen, die einzigen Logikgatter, die zum Implementieren der gewünschten Funktion erforderlich sind, die ODER-, UND- und NICHT-Gatter sind (die NICHT-Gatter sind der Einfachheit halber in den Zeichnungen nicht dargestellt), welche, vom Standpunkt der Hardwareimplementierung aus betrachtet, alle elementare Logikgatter sind.
  • Falls in den Gleichungen (7) Exklusiv-ODER-Verknüpfungen anstelle von ODER-Verknüpfungen verwendet werden (wobei die Exklusiv-ODER-Verknüpfungen ein Spezialfall der Operation MUX sind), können die Gleichungen (7) auch in die folgende Form gebracht werden (Gleichungen (8)):
    Figure 00330001
  • Die Gleichungen (8) können praktisch mittels der in den 8A und 8B dargestellten Logikschaltungen, welche zu den in den 7A und 7B dargestellten funktional äquivalent sind, in Hardware implementiert werden; das Bezugszeichen 800a bezeichnet die Logikschaltung, welche die zweite Gleichung der Gleichungen (8) implementiert, und das Bezugszeichen 800b bezeichnet die Logikschaltung, welche die dritte Gleichung der Gleichungen (8) implementiert (auch in diesem Falle sind die NICHT-Logikgatter aus Gründen der Einfachheit der Zeichnungen nicht dargestellt).
  • Insbesondere, wie in 8A dargestellt, werden das niedrigstwertige Bit r0 des Maskenwortes r und das Bit x''1 des arithmetisch-maskierten Datenwortes x'' mittels eines Exklusiv-ODER-Logikgatters 805 durch Exklusiv-ODER verknüpft; der Ausgang des Exklusiv-ODER-Logikgatters 805 und das Bit x''1 bilden die Eingänge eines MUX-Logikgatters 810, das durch das logische Komplement des Bits x'0 gesteuert wird; ein Ausgang des MUX-Logikgatters 810 stellt das gewünschte Bit x'1 dar.
  • Es wird auf 8B Bezug genommen; das Bit ri-1 des Maskenwortes r und das Bit x''i des arithmetisch-maskierten Datenwortes x'' werden mittels eines Exklusiv-ODER-Logikgatters 815 durch Exklusiv-ODER verknüpft; das Bit x''i wird außerdem mit dem Bit x''i-1 mittels eines Exklusiv-ODER-Logikgatters 820 durch Exklusiv-ODER verknüpft.
  • Die Ausgänge der Exklusiv-ODER-Logikgatter 815 und 820 bilden die Eingänge eines MUX-Logikgatters 825, das durch das logische Komplement des Bits x'i-1 gesteuert wird; der Ausgang des MUX-Logikgatters 825 stellt das gewünschte Bit x'i dar.
  • Sowohl im Falle der Schaltungen der 7A und 7B als auch in dem der Schaltungen der 8A und 8B ist die Anzahl der Logikgatter äquivalent zu 3n-4 MUX-Gattern, während die Tiefe auf ungefähr n MUX-Gatter reduziert ist.
  • Die 9A und 9B zeigen die aus den NAND-Logikgattern bestehenden Logikschaltungen, welche ein MUX-Logikgatter bzw. ein Exklusiv-ODER-Logikgatter implementieren, wobei ein NAND-Logikgatter eine Verknüpfung implementiert, die ein logisches Komplement der logischen UND-Verknüpfung ist. Fachleuten auf dem Gebiet der integrierten Halbleiterschaltungen ist wohlbekannt, dass die NAND-Logikgatter dafür geeignet sind, in CMOS-Transistortechnologie implementiert zu werden, und dass jede Boolesche Funktion mit Hilfe der NAND-Logikgatter dargestellt werden kann.
  • Insbesondere, wie in 9A dargestellt, empfängt ein erstes NAND-Logikgatter mit zwei Eingängen 905 an seinen beiden Eingängen ein logisches Signal c, das dazu bestimmt ist, ein Steuersignal für das äquivalente MUX-Logikgatter darzustellen. Ein Ausgang des ersten NAND-Logikgatters 905 wird einem ersten Eingang eines zweiten NAND-Logikgatters mit zwei Eingängen 910 zugeführt, das an seinem zweiten Eingang den ersten Eingang x des äquivalenten MUX-Logikgatters empfängt. Ein drittes NAND-Logikgatter mit zwei Eingängen empfängt an seinen Eingängen das Steuersignal c und den zweiten Eingang y des äquivalenten MUX-Logikgatters. Die Ausgänge des zweiten und des dritten NAND-Logikgatters 910 und 915 werden jeweils einem vierten NAND-Logikgatter mit zwei Eingängen 920 zugeführt, dessen Ausgang den Ausgang z des äquivalenten MUX-Logikgatters bildet.
  • Es wird auf 9B Bezug genommen; in ähnlicher Weise empfängt ein erstes NAND-Logikgatter mit zwei Eingängen 925 die Eingänge x und y des äquivalenten Exklusiv-ODER-Logikgatters. Ein Ausgang des ersten NAND-Logikgatters 925 wird einem ersten Eingang sowohl eines zweiten als auch eines dritten NAND-Logikgatters mit zwei Eingängen 930 bzw. 935 zugeführt, welche an ihrem zweiten Eingang die Eingänge x und y des äquivalenten Exklusiv-ODER-Logikgatters empfangen. Die Ausgänge des zweiten und des dritten NAND- Logikgatters 930 und 935 werden jeweils einem vierten NAND-Logikgatter mit zwei Eingängen 940 zugeführt, dessen Ausgang den Ausgang z des äquivalenten Exklusiv-ODER-Logikgatters bildet.
  • Demzufolge können die Logikschaltungen, die in den 2A und 2B, den 4A und 4B, den 6A und 6B und den 8A und 8B dargestellt sind, unter Verwendung ausschließlich von NAND-Logikgattern implementiert werden, indem jedes Exklusiv-ODER-Logikgatter durch eine Schaltung von 9A und jedes MUX-Logikgatter durch eine Schaltung von 9B ersetzt wird. Das NICHT-Logikgatter in den 2A und 2B kann zum Beispiel implementiert werden, indem ein NAND-Logikgatter verwendet wird. Mit Hilfe ähnlicher Argumente kann gezeigt werden, dass sämtliche Berechnungen auf der Ebene der NAND-Logikgatter sicher bleiben, d. h. dass der Ausgang jedes NAND-Logikgatters statistisch unabhängig vom Eingang ist. Die resultierenden Logikschaltungen sind daher dafür geeignet, in CMOS-Transistortechnologie implementiert zu werden. Alternativ dazu kann das Exklusiv-ODER-Gatter mit einem negierten Eingang (XNOR) in den 2B und 4B ebenfalls sicher implementiert werden, indem drei NAND-Gatter und ein NOR-Gatter verwendet werden, welches ebenfalls leicht in CMOS-Transistortechnologie zu implementieren ist.
  • Dank der vorliegenden Erfindung kann eine sichere Maskenumwandlung leicht in Hardware implementiert werden, zum Beispiel in IC-Chips, wodurch kryptographische Algorithmen, die hierdurch implementiert sind, sicher gemacht werden, selbst im Hinblick auf subtile Seitenkanalangriffe wie DPA.
  • Die vorliegende Erfindung kann im Allgemeinen immer dann angewendet werden, wenn eine Hardwareimplementierung einer kryptographischen Funktion beabsichtigt ist, welche die Operationen der bitweisen Exklusiv-ODER-Verknüpfung und der ganzzahligen Addition modulo 2n erfordert, und insbesondere, obgleich nicht im Sinne einer Einschränkung, im Falle von Smartcards wie etwa SIM-Karten des Typs, wie sie in modernen Mobilkommunikationsnetzen verwendet werden.
  • Obwohl die vorliegende Erfindung anhand einiger Ausführungsformen offenbart und beschrieben wurde, ist es für den Fachmann offensichtlich, dass verschiedene Modifikationen an den beschriebenen Ausführungsformen sowie andere Ausführungsformen der vorliegenden Erfindung möglich sind, ohne den Schutzumfang, der in den beigefügten Ansprüchen definiert ist, zu verlassen. Insbesondere können anstelle des schulmäßigen Verfahrens zur Addition ganzer Zahlen mit Übertrag andere Verfahren benutzt werden, zum Beispiel diejenigen, bei denen die zugrunde liegenden Ein-Bit-Volladdierer in einem (Wallace-)Baum angeordnet sind, um die Gesamttiefe zu reduzieren und anschließend die vorgeschlagenen Verfahren dementsprechend anzupassen.

Claims (21)

  1. Verfahren zur sicheren Umwandlung zwischen zwei unterschiedlichen Zufallsmaskierungen, die für kryptografische Funktionen verwendet werden, mit – einem Umwandeln eines ersten binären Datenworts (x'; x''), das durch ein binäres Maskenwort (r) gemäß einem ersten Maskiervorgang maskiert ist, in ein zweites entsprechendes binäres Datenwort (x''; x'), das durch das binäre Maskenwort gemäß einem zweiten Maskiervorgang maskiert ist, wobei die ersten und zweiten binären Datenworte und das binäre Maskenwort entsprechende Mehrzahlen von Bits (x'i, x''i, ri) aufweisen, wobei jede der Mehrzahlen von Bits ein niedrigstwertiges Bit (x'0, x''0, r0), ein erstes Bit (x'1, x''1, r1) und zumindest ein i-tes Bit (x'i, x''i, ri), i ≥ 2 enthält, dadurch gekennzeichnet, dass das Umwandeln eines ersten binären Datenworts in ein zweites binäres Datenwort folgendes aufweist: – Nehmen des niedrigstwertigen Bits (x'0; x''0) des ersten binären Datenworts als ein niedrigstwertiges Bit (x''0; x'0) des zweiten binären Datenworts; – Berechnen des ersten Bits (x''1; x'1) des zweiten binären Datenworts durch: – Durchführen einer ersten exklusives ODER-Verknüpfung (205; 405; 605; 805) des niedrigstwertigen Bits (r0) des binären Maskenworts mit dem ersten Bit ((x'1; x''1) des ersten binären Datenworts und Auswählen (210; 410; 610; 810) entweder eines Ergebnisses der ersten exklusives ODER-Verknüpfung oder des ersten Bits des ersten binären Datenworts als ein Wert des ersten Bits (x''1; x'1) des zweiten binären Datenworts, abhängig von einem Wert in Bezug auf das niedrigstwertige Bit (x'0) des ersten oder des zweiten binären Datenworts; und – Berechnen des i-ten Bits (x''i; x'i) des zweiten binären Datenworts durch: – Durchführen einer zweiten exklusives ODER-Verknüpfung (215; 415; 615; 815) des i-ten Bits (x'i; x''i) des ersten binären Datenworts mit dem (i-1)-ten Bit (ri-1) des binären Maskenworts; – Durchführen einer dritten exklusives ODER-Verknüpfung (220; 420; 620; 820) des i-ten Bits (x'i; x''i) des ersten binären Datenworts mit einem ersten Weg mit Bezug auf das (i-1)-te Bit (x''i-1) des ersten oder zweiten binären Datenworts; und – Auswählen (225; 425; 625; 825) eines Ergebnisses entweder der zweiten exklusives ODER-Verknüpfung oder der dritten exklusives ODER-Verknüpfung als einen Wert des i-ten Bits (x''i; x'i) des zweiten binären Datenworts abhängig von einem zweiten Wert mit Bezug zum (i-1)-ten Bit (x'i-1) des ersten oder des zweiten binären Datenworts.
  2. Verfahren nach Anspruch 1, bei dem das Durchführen der ersten exklusives ODER-Verknüpfung folgendes aufweist: – Durchführen einer ersten logischen UND-Verknüpfung (105; 305; 505; 705) des niedrigstwertigen Bits des binären Maskenworts mit einem logischen Komplement des ersten Bits des ersten binären Datenworts; – Durchführen einer zweiten logischen UND-Verknüpfung (110; 310; 510; 710) eines logischen Komplements des niedrigstwertigen Bits des binären Maskenworts mit dem ersten Bit des ersten binären Datenworts; und – Durchführen einer logischen ODER-Verknüpfung (115; 315M 515; 715) der Ergebnisse der ersten und zweiten logischen UND-Verknüpfungen.
  3. Verfahren nach Anspruch 1 oder 2, bei dem das Auswählen entweder des Ergebnisses der ersten exklusives ODER-Verknüpfung oder des ersten Bits des ersten binären Datenworts als ein Wert des ersten Bits des zweiten binären Datenworts abhängig von einem Wert mit Bezug auf das niedrigstwertige Bit des ersten oder zweiten binären Datenworts folgendes aufweist: – Durchführen einer dritten logischen UND-Verknüpfung (120; 320; 520; 720) des Ergebnisses der ersten exklusives ODER-Verknüpfung mit einem logischen Komplement des Werts mit Bezug auf das niedrigstwertige Bit des ersten oder zweiten binären Datenworts; – Durchführen einer vierten logischen UND-Verknüpfung (125; 325; 525; 725) des ersten Bits des ersten binären Datenworts mit dem Wert mit Bezug auf das niedrigstwertige Bit des ersten oder des zweiten binären Datenworts; und – Durchführen einer logischen ODER-Verknüpfung (130; 330; 530; 730) der Ergebnisse der dritten und vierten logischen UND-Verknüpfungen.
  4. Verfahren nach Anspruch 1, 2 oder 3, bei dem das Durchführen der zweiten exklusives ODER-Verknüpfung folgendes aufweist: – Durchführen einer fünften logischen UND-Verknüpfung (135; 335; 535; 735) eines logischen Komplements des i-ten Bits des ersten binären Datenworts mit dem (i-1)-ten Bit des binären Maskenworts; – Durchführen einer sechsten logischen UND-Verknüpfung (140; 340; 540; 740) des i-ten Bits des ersten binären Datenworts mit einem logischen Komplement des (i-1)-ten Bits des binären Maskenworts; und – Durchführen einer logischen ODER-Verknüpfung (155; 355; 555; 755) der Ergebnisse der fünften und sechsten logischen UND-Verknüpfungen.
  5. Verfahren nach einem der vorangehenden Ansprüche, bei dem das Durchführen der dritten exklusives ODER-Verknüpfung folgendes umfasst: – Durchführen einer siebenten logischen UND-Verknüpfung (145; 345; 545; 745) eines logischen Komplements des i-ten Bits des ersten binären Datenworts mit dem ersten Wert mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts; – Durchführen einer achten logischen UND-Verknüpfung (150; 350; 550; 750) des i-ten Bits des ersten binären Datenworts mit einem logischen Komplement des ersten Werts mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts; und – Durchführen einer logischen ODER-Verknüpfung (160; 360; 560; 760) der Ergebnisse der siebenten und achten logischen UND-Verknüpfungen.
  6. Verfahren nach einem der vorangehenden Ansprüche, bei dem das Auswählen eines Ergebnisses entweder der zweiten exklusives ODER-Verknüpfung oder der dritten exklusives ODER-Verknüpfung als einen Wert des i-ten Bits des zweiten binären Datenworts abhängig von einem zweiten Wert mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts folgendes aufweist: – Durchführen einer neunten logischen UND-Verknüpfung (165; 365; 565; 765) des Ergebnisses der zweiten exklusives ODER-Verknüpfung mit einem logischen Komplement des zweiten Werts mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts; – Durchführen einer zehnten logischen UND-Verknüpfung (170; 370; 570; 770) des Ergebnisses der dritten exklusiv ODER-Verknüpfung mit dem zweiten Wert mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts; und – Durchführen einer logischen ODER-Verknüpfung (175; 375; 575; 775) der Ergebnisse der neunten und zehnten logischen UND-Verknüpfungen.
  7. Verfahren nach Anspruch 1, bei dem das Durchführen einer oder mehrerer unter den ersten, zweiten und dritten exklusives ODER-Verknüpfungen folgendes aufweist: – Durchführen einer ersten logischen NAND-Verknüpfung (925) eines ersten und eines zweiten Operanden der exklusiv ODER-Verknüpfung.; – Durchführen einer zweiten logischen NAND-Verknüpfung (930) des ersten Operanden und eines Ergebnisses der ersten logischen NAND-Verknüpfung; – Durchführen einer dritten logische NAND-Verknüpfung (935) des zweiten Operanden und eines Ergebnisses der ersten logischen NAND-Verknüpfung; und – Durchführen einer vierten logischen NAND-Verknüpfung (940) der Ergebnisse der zweiten und dritten logischen NAND-Verknüpfungen.
  8. Verfahren nach Anspruch 1, bei dem das Auswählen entweder eines Ergebnisses der ersten exklusives ODER-Verknüpfung oder des ersten Bits des ersten binären Datenworts als ein Wert des ersten Bits des zweiten binären Datenworts abhängig von einem Wert mit Bezug auf das niedrigstwertige Bit des ersten oder den zweiten binären Datenworts folgendes umfasst: – Zuführen des Werts mit Bezug auf das niedrigstwertige Bit des ersten oder des zweiten binären Datenworts als ein erster und ein zweiter Operand zu einer fünften logischen NAND-Verknüpfung (905); – Durchführen einer sechsten logischen NAND-Verknüpfung (910) zwischen einem Ergebnis der fünften logischen NAND-Verknüpfung und einem Ergebnis der ersten exklusives ODER-Verknüpfung; – Durchführen einer siebenten logischen NAND-Verknüpfung (915) zwischen einem Ergebnis der fünften logischen NAND-Verknüpfung und dem ersten Bit des ersten binären Datenworts; und – Durchführen einer achten logischen NAND-Verknüpfung (920) des Ergebnisses der siebenten und achten logischen NAND-Verknüpfungen.
  9. Verfahren nach Anspruch 1, in dem das Auswählen eines Ergebnisses entweder der zweiten exklusives ODER-Verknüpfung oder der dritten exklusives ODER-Verknüpfung als einen Wert des i-ten Bits des zweiten binären Datenworts abhängig von einem zweiten Wert mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts folgendes aufweist: – Zuführen des zweiten Werts mit Bezug auf das (i-1).te Bit des ersten oder des zweiten binären Datenworts als einen ersten und einen zweiten Operanden zu einer neunten logischen NAND-Verknüpfung (905); – Durchführen einer zehnten logischen NAND-Verknüpfung (910) zwischen einem Ergebnis der neunten logischen NAND-Verknüpfung und einem Ergebnis der zweiten exklusives ODER-Verknüpfung; – Durchführen einer elften logischen NAND-Verknüpfung (915) zwischen einem Ergebnis der neunten logischen NAND-Verknüpfung und einem Ergebnis der dritten exklusives ODER-Verknüpfung; und – Durchführen einer zwölften logischen NAND-Verknüpfung (920) des Ergebnisses der zehnten und elften logischen NAND-Verknüpfungen.
  10. Maskenumwandlungsschaltung zur Umwandlung zwischen zwei verschiedenen Zufallsmaskierungen, die für kryptografische Funktionen verwendet werden, wobei die Maskenumwandlungsschaltung ausgebildet ist zu einem Umwandeln eines ersten binären Datenworts (x'; x''), das durch ein binäres Maskenwort (r) gemäß einem ersten Maskiervorgang maskiert ist, in ein zweites entsprechendes binäres Datenwort (x''; x'), das durch das binäre Maskenwort gemäß einem zweiten Maskiervorgang maskiert ist, wobei die ersten und zweiten binären Datenworte und das binäre Maskenwort entsprechende Mehrzahlen von Bits (x'i, x''i, ri) aufweisen, wobei jede der Mehrzahlen von Bits ein niedrigstwertiges Bit (x'0, x''0, r0), ein erstes Bit (x'1, x''1, r1) und zumindest ein i-tes Bit (x'i, x'i, ri), i ≥ 2 enthält, wobei die Maskenumwandlungsschaltung dadurch gekennzeichnet ist, dass sie folgendes aufweist: eine Identitäts-Funktions-Schaltung zum das niedrigstwertige Bit (x''0; x'0) des zweitten binären Datenworts entsprechend dem niedrigstwertigen Bit (x'0, x''0) des ersten binären Datenworts Machen; – einer ersten exklusives ODER-Verknüpfungs-Schaltung (205; 405; 605; 805), die zur exklusives ODER-Verknüpfung des niedrigstwertigen Bits (r0) des binären Maskenworts mit dem ersten Bit (x'1; x''1) des ersten binären Datenworts geeignet ist; – einer ersten Auswahlschaltung (210; 410; 610; 810), die zur Auswahl entweder eines Ergebnisses der ersten exklusives ODER-Verknüpfung oder des ersten Bits des ersten binären Datenworts als ein Wert des ersten Bits (x''1, x'1) des zweiten binären Datenworts, abhängig von einem Wert mit Bezug auf das niedrigstwertige Bit (x'0) des ersten oder des zweiten binären Datenworts geeignet ist; – wobei für jedes i-te Bit des zweiten binären Datenworts eine jeweilige Schaltungsanordnung folgendes aufweist: – eine zweite exklusives ODER-Verknüpfungs-Schaltung (215; 415; 615; 815), die zur exklusives ODER-Verknüpfung des i-ten Bits (x'i, x''i) des ersten binären Datenworts mit dem (i-1)-ten Bit (ri-1) des binären Maskenworts geeignet ist; – eine dritte exklusives ODER-Verknüpfungs-Schaltung (220; 420; 620; 820), die zur exklusives ODER-Verknüpfung des i-ten Bits (x'i, x''i) des ersten binären Datenworts mit einem ersten Weg mit Bezug auf das (i-1)-te Bit (x''i-1) des ersten oder zweiten binären Datenworts geeignet ist; und – einer zweiten Auswahlschaltung (225; 425; 625; 825), die zur Auswahl eines Ergebnisses entweder der zweiten exklusives ODER-Verknüpfung oder der dritten exklusives ODER-Verknüpfung als einen Wert des i-ten Bits (x''i, x'i) des zweiten binären Datenworts abhängig von einem zweiten Wert mit Bezug auf das (i-1)-te Bit (x'i-1) des ersten oder des zweiten binären Datenworts geeignet ist.
  11. Maskenumwandlungsschaltungsanordnung nach Anspruch 10, bei der die erste exklusives ODER-Verknüpfungs-Schaltung folgendes aufweist: – eine erste logische UND-Verknüpfungs-Schaltung (105; 305; 505; 705), die zur UND-Verknüpfung des niedrigstwertigen Bits des binären Maskenworts mit einem logischen Komplement des ersten Bits des ersten binären Datenworts geeignet ist; – eine zweite logische UND-Verknüpfungs-Schaltung (110; 310; 510; 710), die zur UND-Verknüpfung eines logischen Komplements des niedrigstwertigen Bits der binären Maske mit dem ersten Bit des ersten binären Datenworts geeignet ist; und – eine logische ODER-Verknüpfungs-Schaltung (115; 315M 515; 715), die zur ODER-Verknüpfung der Ergebnisse der ersten und zweiten logischen UND-Verknüpfungs-Schaltungen geeignet ist.
  12. Maskenumwandlungsschaltungsanordnung nach Anspruch 10 oder 11, bei der die erste Auswahlschaltung folgendes aufweist: – eine dritte logische UND-Verknüpfungs-Schaltung (120; 320; 520; 720) zur UND-Verknüpfung des Ergebnisses der ersten logischen exklusives ODER-Schaltung mit dem Wert mit Bezug auf das niedrigstwertige Bit des ersten oder zweiten binären Datenworts; – eine vierte logische UND-Verknüpfungs-Schaltung (125; 325; 525; 725) zur UND-Verknüpfung des ersten Bits des ersten binären Datenworts mit dem Wert mit Bezug auf das niedrigstwertige Bit des ersten oder den zweiten binären Datenworts; und – eine zweite logische ODER-Verknüpfungs-Schaltung (130; 330; 530; 730) zur ODER-Verknüpfung der Ergebnisse der dritten und vierten logischen UND-Verknüpfungs-Schaltungen.
  13. Maskenumwandlungsschaltungsanordnung nach Anspruch 10, 11 oder 12, bei der die zweite exklusives ODER-Verknüpfungs-Schaltung folgendes aufweist: – eine fünfte logische UND-Verknüpfungs-Schaltung (135; 335; 535; 735) zur UND-Verknüpfung eines logischen Komplements des i-ten Bits des ersten binären Datenworts mit dem (i-1)-ten Bit des binären Maskenworts; – eine sechste logische UND-Verknüpfungs-Schaltung (140; 340; 540; 740) zur UND-Verknüpfung des i-ten Bits des ersten binären Datenworts mit einem logischen Komplement des (i-1)-ten Bits des binären Maskenworts; und – eine dritte logische ODER-Verknüpfungs-Schaltung (155; 355; 555; 755) zur ODER-Verknüpfung der Ergebnisse der fünften und sechsten logischen UND-Verknüpfungs-Schaltungen.
  14. Maskenumwandlungsschaltungsanordnung nach einem der Ansprüche 10 bis 13, bei der die dritte exklusives ODER-Verknüpfungs-Schaltung folgendes umfasst: – eine siebente logische UND-Verknüpfungs-Schaltung (145; 345; 545; 745) zur UND-Verknüpfung eines logischen Komplements des i-ten Bits des ersten binären Datenworts mit dem ersten Wert mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts; – eine achte logische UND-Verknüpfungs-Schaltung (150; 350; 550; 750) zur UND-Verknüpfung des i-ten Bits des ersten binären Datenworts mit einem logischen Komplement des ersten Werts mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts; und – eine vierte logische ODER-Verknüpfungs-Schaltung (160; 360; 560; 760) zur ODER-Verknüpfung der Ergebnisse der siebenten und achten logischen UND-Verknüpfungs-Schaltungen.
  15. Maskenumwandlungsschaltungsanordnung nach einem der Ansprüche 10 bis 14, bei der die zweite Auswahlschaltung folgendes aufweist: – eine neunte logische UND-Verknüpfungs-Schaltung (165; 365; 565; 765) zur UND-Verknüpfung der Ausgabe der zweiten exklusives ODER-Verknüpfung-Schaltung mit einem logischen Komplement des zweiten Werts mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts; – eine zehnte logische UND-Verknüpfungs-Schaltung (170; 370; 570; 770) zur UND-Verknüpfung der Ausgabe der dritten exklusives ODER-Verknüpfungs-Schaltung mit dem zweiten Wert mit Bezug auf das (i-1)-te Bit des ersten oder des zweiten binären Datenworts; und – eine fünfte logische ODER-Verknüpfungs-Schaltung (175; 375; 575; 775) zur ODER-Verknüpfung der Ausgaben der neunten und zehnten logischen UND-Verknüpfungs-Schaltungen.
  16. Maskenumwandlungsschaltungsanordnung nach Anspruch 10, bei der eine oder mehrere der ersten, zweiten und dritten exklusives ODER-Logikschaltungen folgendes aufweisen: – eine erste logische NAND-Verknüpfungs-Schaltung (925) zur NAND-Verknüpfung eines ersten und eines zweiten Operanden der exklusives ODER-Verknüpfungs-Schaltung; – eine zweite logische NAND-Verknüpfungs-Schaltung (930) zur NAND-Verknüpfung des ersten Operanden und einer Ausgabe der ersten logischen NAND-Verknüpfungs-Schaltung; – eine dritte logische NAND-Verknüpfungs-Schaltung (935) zur NAND-Verknüpfung des zweiten Operanden und einer Ausgabe der ersten logischen NAND-Verknüpfungs-Schaltung; und – eine vierte logische NAND-Verknüpfungs-Schaltung (940) zur NAND-Verknüpfung der Ausgaben der zweiten und dritten logischen NAND-Verknüpfungs-Schaltungen.
  17. Maskenumwandlungsschaltungsanordnung nach Anspruch 10, bei der die erste Auswahlschaltung folgendes umfasst: – eine fünfte logische NAND-Verknüpfungs-Schaltung (905) zum Empfang des Werts mit Bezug auf das niedrigstwertige Bit des ersten oder des zweiten binären Datenworts an beiden Eingängen; – eine sechste logische NAND-Verknüpfungs-Schaltung (910) zur NAND-Verknüpfung einer Ausgabe der fünften logischen NAND-Verknüpfungs-Schaltung und einer Ausgabe der ersten exklusives ODER-Verknüpfungs-Schaltung; – eine siebente logische NAND-Verknüpfungs-Schaltung (915) zur NAND-Verknüpfung einer Ausgabe der fünften logischen NAND-Verknüpfungs-Schaltung und des ersten Bits des ersten binären Datenworts; und – eine achte logische NAND-Verknüpfungs-Schaltung (920) zur NAND-Verknüpfung der Ausgaben der siebenten und achten logischen NAND-Verknüpfungs-Schaltungen.
  18. Maskenumwandlungsschaltungsanordnung nach Anspruch 10, bei der die zweite Auswahlschaltung folgendes aufweist: – eine neunte logische NAND-Verknüpfungs-Schaltung (905) zum Empfang des zweiten Werts mit Bezug auf das (i-1).te Bit des ersten oder des zweiten binären Datenworts an beiden Eingängen; – eine zehnte logische NAND-Verknüpfungs-Schaltung (910) zur NAND-Verknüpfung einer Ausgabe der neunten logischen NAND-Verknüpfungs-Schaltung und einer Ausgabe der zweiten exklusives ODER-Verknüpfungs-Schaltung; – eine elfte logische NAND-Verknüpfung (915) zur NAND-Verknüpfung einer Ausgabe der neunten logischen NAND-Verknüpfungs-Schaltung und einer Ausgabe der dritten exklusives ODER-Verknüpfungs-Schaltung; und – eine zwölfte logische NAND-Verknüpfungs-Schaltung (920) zur NAND-Verknüpfung der Ausgaben der zehnten und elften logischen NAND-Verknüpfungs-Schaltungen.
  19. Integrierte Schaltung, die zumindest eine Maskenumwandlungsschaltungsanordnung nach einem der Ansprüche 10 bis 18 integriert.
  20. Smart-Card mit einer integrierten Schaltung nach Anspruch 19.
  21. Teilnehmeridentitätsmodul (SIM), das zur Verwendung in Verbindung mit einer Nutzereinrichtung in einem Kommunikationsnetzwerk geeignet ist und eine Smart-Card nach Anspruch 20 enthält.
DE602004013206T 2004-12-01 2004-12-01 Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung Active DE602004013206T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2004/053203 WO2006058561A1 (en) 2004-12-01 2004-12-01 Method and related device for hardware-oriented conversion between arithmetic and boolean random masking

Publications (2)

Publication Number Publication Date
DE602004013206D1 DE602004013206D1 (de) 2008-05-29
DE602004013206T2 true DE602004013206T2 (de) 2009-05-14

Family

ID=34979658

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004013206T Active DE602004013206T2 (de) 2004-12-01 2004-12-01 Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung

Country Status (5)

Country Link
US (1) US8050402B2 (de)
EP (1) EP1836554B1 (de)
AT (1) ATE392659T1 (de)
DE (1) DE602004013206T2 (de)
WO (1) WO2006058561A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015116049B3 (de) * 2015-09-23 2017-02-16 Infineon Technologies Ag Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2443355B (en) * 2005-01-27 2008-08-06 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443359B (en) * 2005-01-27 2008-10-01 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
KR100725169B1 (ko) * 2005-01-27 2007-06-04 삼성전자주식회사 전력 분석 공격에 안전한 논리 연산 장치 및 방법
GB2443358A (en) * 2005-01-27 2008-04-30 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443356B (en) * 2005-01-27 2008-08-06 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443357B (en) * 2005-01-27 2008-10-08 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
WO2006112114A1 (ja) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. データ暗号化装置及びデータ暗号化方法
WO2008064704A1 (en) * 2006-11-30 2008-06-05 Telecom Italia S.P.A Method and device for preventing information leakage attacks on a device implementing a cryptographic function
US8091139B2 (en) * 2007-11-01 2012-01-03 Discretix Technologies Ltd. System and method for masking arbitrary Boolean functions
DE102010028375A1 (de) * 2010-04-29 2011-11-03 Robert Bosch Gmbh Schutz vor kryptoanalytischen Seitenkanalattacken
FR2998692B1 (fr) * 2012-11-28 2015-01-30 Oberthur Technologies Procede de traitement cryptographique comprenant des operations booleennes sur des donnees masquees de maniere arithmetique, dispositifs et produit programme d'ordinateur correspondants
US9569616B2 (en) * 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
US10075290B2 (en) 2013-12-20 2018-09-11 Koninklijke Philips N.V. Operator lifting in cryptographic algorithm
US9531384B1 (en) * 2014-12-01 2016-12-27 University Of South Florida Adiabatic dynamic differential logic for differential power analysis resistant secure integrated circuits
US9923719B2 (en) 2014-12-09 2018-03-20 Cryptography Research, Inc. Location aware cryptography
US10333699B1 (en) 2015-09-30 2019-06-25 Cryptography Research, Inc. Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
US20180089426A1 (en) * 2016-09-29 2018-03-29 Government Of The United States As Represented By The Secretary Of The Air Force System, method, and apparatus for resisting hardware trojan induced leakage in combinational logics
US10389519B2 (en) * 2016-09-30 2019-08-20 International Business Machines Corporation Hardware based cryptographic side-channel attack prevention
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3557813A1 (de) * 2018-04-17 2019-10-23 Gemalto Sa Verfahren, das gegen seitenkanalangriffe gesichert ist, die eine arithmetische operation eines kryptografischen algorithmus durchführen, der boolesche und arithmetische operationen mischt.
US11822704B2 (en) 2018-10-29 2023-11-21 Cryptography Research, Inc. Constant time secure arithmetic-to-Boolean mask conversion
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
FR3101983B1 (fr) 2019-10-11 2021-11-12 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
FR3101980B1 (fr) * 2019-10-11 2021-12-10 St Microelectronics Grenoble 2 Processeur
FR3101982B1 (fr) 2019-10-11 2024-03-08 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
CN113922943B (zh) * 2021-09-29 2023-09-19 哲库科技(北京)有限公司 Sbox电路、运算方法及电子设备
FR3141261A1 (fr) * 2022-10-25 2024-04-26 Stmicroelectronics (Rousset) Sas Protection de données masquées

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510518B1 (en) * 1998-06-03 2003-01-21 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimizational in smartcards and other cryptosystems
JP2002519722A (ja) * 1998-06-03 2002-07-02 クリプターグラフィー リサーチ インコーポレイテッド スマートカードおよび他の暗号システム用の、漏洩を最小に抑える、改良desおよび他の暗号プロセス
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
GB2365153A (en) * 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state
DE10201449C1 (de) 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE10341096A1 (de) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015116049B3 (de) * 2015-09-23 2017-02-16 Infineon Technologies Ag Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
US10395063B2 (en) 2015-09-23 2019-08-27 Infineon Technologies Ag Zero detection circuit and masked boolean or circuit

Also Published As

Publication number Publication date
DE602004013206D1 (de) 2008-05-29
EP1836554A1 (de) 2007-09-26
EP1836554B1 (de) 2008-04-16
US20090112896A1 (en) 2009-04-30
WO2006058561A1 (en) 2006-06-08
US8050402B2 (en) 2011-11-01
ATE392659T1 (de) 2008-05-15

Similar Documents

Publication Publication Date Title
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE69936024T2 (de) Vorrichtung zur Verschlüsselung/Entschlüsselung
EP3219042B1 (de) Gehärtete white box implementierung 2
DE2843583C2 (de) Verfahren für den zugriffsicheren Nachrichtenverkehr über einen ungesicherten Nachrichtenübertragungskanal
DE10201449C1 (de) Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE102012201164B4 (de) Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
EP2901611B1 (de) Seitenkanalgeschützte maskierung
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE60207818T2 (de) Gesichertes Verfahren zur kryptographischen Berechnung mit Geheimschlüssel und Bauteil, das ein solches Verfahren anwendet
DE10148415C2 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE102004042826B4 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
DE10143728A1 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
DE10304451B3 (de) Modulare Exponentiation mit randomisiertem Exponenten
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
DE60301750T2 (de) Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
DE60022770T2 (de) Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ
DE602004003675T2 (de) Sicherheitsgegenmassnahmen gegen Angriffe durch Stromverbrauchsanalysen
DE102020000814A1 (de) Schlüsselgenerierung und PACE mit Sicherung gegen Seitenkanalangriffe
DE60213327T2 (de) Auf einem Blockverschlüsselungsalgorithmus mit Rundenwiederholung basiertes Verfahren und Vorrichtung zur Ausführung des Verfahrens
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
DE60034944T2 (de) Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung
EP1596527A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition