AT10303U1 - Verfahren und schaltung zur durchführung von rechenoperationen - Google Patents

Verfahren und schaltung zur durchführung von rechenoperationen Download PDF

Info

Publication number
AT10303U1
AT10303U1 AT0805108U AT80512008U AT10303U1 AT 10303 U1 AT10303 U1 AT 10303U1 AT 0805108 U AT0805108 U AT 0805108U AT 80512008 U AT80512008 U AT 80512008U AT 10303 U1 AT10303 U1 AT 10303U1
Authority
AT
Austria
Prior art keywords
masked
digital circuit
inverted form
masking
operand
Prior art date
Application number
AT0805108U
Other languages
English (en)
Inventor
Thomas Popp
Stefan Mangard
Manfred Aigner
Original Assignee
Univ Graz Tech
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 Univ Graz Tech filed Critical Univ Graz Tech
Priority to AT0805108U priority Critical patent/AT10303U1/de
Publication of AT10303U1 publication Critical patent/AT10303U1/de

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
    • 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
    • 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/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

2 AT010 303 U1
Die Erfindung betrifft ein Verfahren gemäß dem Oberbegriff des Patentanspruches 1. Des Weiteren betrifft die Erfindung eine digitale Schaltung gemäß dem Oberbegriff des Anspruches 10.
Aus der Patentschrift DE 102 01 449 C1 sind ein Rechenwerk bzw. ein Verfahren zum Ausführen einer arithmetischen Operation mit zumindest zwei Operanden bekannt, wobei die zumindest zwei Operanden verschlüsselt sind. Das Rechenwerk umfasst eine arithmetisch-logische Einheit mit einem ersten Eingang für den ersten verschlüsselten Operanden, einen zweiten Eingang für den zweiten verschlüsselten Operanden, einen dritten Eingang für einen Verschlüsselungsparameter und einen Ausgang für ein verschlüsseltes Ergebnis der Operation. Die arithmetisch-logische Einheit verknüpft den ersten Eingang, den zweiten Eingang und den dritten Eingang mittels arithmetischer Unteroperationen unter Berücksichtung der Art und Weise der Verschlüsselung der Operanden, sodass an dem Ausgang ein verschlüsseltes Ergebnis erhalten wird, das gleich einem Wert ist, der erhalten werden würde, wenn der erste Operand in unverschlüsseltem Zustand und der zweite Operand in unverschlüsseltem Zustand der arithmetischen Operation unterzogen werden und ein erhaltenes Resultat anschließend verschlüsselt wird, wobei keine Entschlüsselung der Operanden in der arithmetisch-logischen Einheit durchgeführt wird. Durch diesen Aufbau der arithmetisch-logischen Einheit sollten so genannte Seitenkanalattacken auf die arithmetisch-logische Einheit verhindert werden.
Es ist jedoch aus Mangard, Popp, Gammel, "Side-Channel Leakage of Masked CMOS Gates", Proceedings of the RSA Conference 2005 Cryptographers' Track (CT-RSA 2005, February 14-18, 2005, San Francisco, USA), Lecture Notes in Computer Science (LNCS), Springer Verlag, 2005 bekannt, dass in derartigen Rechenwerken kurzzeitige Störimpulse, so genannte „Glitches“, auftreten, welche die Durchführung von Seitenkanalattacken trotzdem ermöglichen. Seitenkanalattacken stellen ein erhebliches Sicherheitsrisiko für Rechenwerke bzw. Rechenverfahren dar bei denen vertrauliche Daten verarbeitet werden.
Als Vorschlag zum Schutz von Rechenwerken bzw. Rechenverfahren sind neben der in der Patentschrift DE 102 01 449 C1 beschriebenen Technik auch so genannte „dual-rail pre-charge“ Logikstile, wie die „Sense-Amplifier Based Logic“ oder die „Wave Dynamic Digital Logic“ bekannt. In Schaltungen basierend auf diesen Logikstilen werden sämtliche Verbindungsleitungen doppelt ausgeführt und in jedem Taktzyklus auf definierte Werte vorgeladen. Seitenkanalattacken auf derartige Schaltungen werden weitgehend vermieden, indem die Verbindungsleitungen jeweils paarweise bezüglich ihrer elektrischen Eigenschaften ausbalanciert werden. Das Ausbalancieren der Leitungen ist technisch jedoch sehr aufwendig und der Aufwand wird durch die Verwendung immer kleinerer Halbleitertechnologien ständig größer.
Ziel der Erfindung ist es, ein Verfahren bzw. eine Schaltung zu schaffen, die höchste Sicherheit gegen Seitenkanalattacken bietet und gleichzeitig leicht implementiert werden kann.
Diese Ziele werden bei einem Verfahren mit den in Anspruches 1 angeführten Merkmalen erreicht. Bei einer erfindungsgemäßen Schaltung werden diese Ziele durch die Merkmale des Patentanspruches 10 erreicht.
Die vorliegende Erfindung basiert darauf, dass alle in einem erfindungsgemäßen Verfahren bzw. in einer erfindungsgemäßen Schaltung auftretenden Datenwerte maskiert sind. Unter dem Maskieren eines Datenwerts versteht man eine Rechenoperation bei welcher der Datenwert mit einem oder mehreren Zufallswert(en) so verknüpft wird, dass das Resultat der Rechenoperation, d.h. der maskierte Datenwert, statistisch unabhängig vom ursprünglichen Datenwert ist. In der Praxis wird zum Maskieren eines Datenwerts üblicherweise eine bitweise XOR Verknüpfung von Zufallswerten und des zu maskierenden Datenwerts eingesetzt.
Durch das Maskieren aller in einem Verfahren bzw. einer Schaltung auftretenden Datenwerte werden sämtliche auftretenden physikalischen Seitenkanalinformationen weitgehend statistisch 3 AT010 303 U1 unabhängig von den unmaskierten Datenwerten gemacht. Somit wird höchste Sicherheit gegen Seitenkanalattacken gewährleistet.
In bisher bekannten Verfahren und Schaltungen, die Maskierung als Schutzmaßnahme gegen Seitenkanalattacken einsetzen, werden nicht alle auftretenden Datenwerte ausreichend maskiert um eine hohe Sicherheit gegen Seitenkanalattacken zu gewährleisten. Beispielsweise treten in arithmetisch-logischen Einheiten gemäß der Patentschrift DE 102 01 449 C1 Datenwerte auf, die statistisch abhängig von den entsprechenden unmaskierten Datenwerten sind. Diese Abhängigkeit ermöglicht wiederum die Durchführung von Seitenkanalattacken. Weiters treten in derartigen arithmetisch-logischen Einheiten auch die eingangs erwähnten „Glitches“ auf, welche ebenfalls die Anfälligkeit gegenüber Seitenkanalattacken erhöhen.
In der hier vorliegenden Erfindung sind konsequent alle an den Ein- und Ausgängen der Logikelemente auftretenden Datenwerte maskiert. Dies wird einerseits dadurch erreicht, dass „Glitches“ in dem Verfahren bzw. in der Schaltung komplett verhindert werden und andererseits dadurch, dass auf der Ebene von einstufigen Logikelementen und nicht auf der Ebene von arithmetisch-logischen Einheiten maskiert wird. Einstufige Logikelemente sind die kleinstmögli-chen Teile einer Schaltung, die einen logischen Ausgangsdatenwert basierend auf Eingangsdatenwerten und einer logischen Funktion berechnen können.
Mit einer Implementierung eines erfindungsgemäßen Verfahrens bzw. einer erfindungsgemäßen Schaltung sind keine technisch schwer zu realisierenden Anforderungen verbunden. Insbesondere sind keine ausbalancierten Verbindungsleitungen erforderlich. Im Folgenden werden nun die Effekte für die einzelnen Merkmale des Anspruches 1 und die Effekte für die einzelnen Unteransprüche im Detail erörtert.
Das Maskieren von Datenwerten bietet einen effektiven Schutz gegen Seitenkanalattacken, wenn tatsächlich jeder in einer digitalen Schaltung auftretende Datenwert maskiert ist. Im Allgemeinen treten in einer digitalen Schaltung jedoch „Glitches“ auf, welche die Erfüllung dieser Bedingung technisch sehr aufwendig machen. Der Grund hierfür ist, dass es bereits während der Entwicklung einer digitalen Schaltung relativ aufwendig ist festzustellen, welche Datenwerte überhaupt als Folge von „Glitches“ in einer digitalen Schaltung auftreten werden. Umso aufwendiger ist es dann noch zusätzlich dafür Sorge zu tragen, dass jeder dieser auftretenden Datenwerte stets ordnungsgemäß maskiert sein wird.
Um diesen Aufwand vollständig einzusparen, werden erfindungsgemäße Verfahren so ausgeführt bzw. erfindungsgemäße Schaltungen so aufgebaut, dass „Glitches“ erst gar nicht auftreten können. Dies wird grundsätzlich dadurch erreicht, dass das so genannte „dual-rail pre-charge“ Konzept verwendet wird. Konkret bedeutet dies, dass alle Datenleitungen im Vergleich zu einer konventionellen CMOS Schaltung verdoppelt werden. Anstatt einer Leitung gibt es somit ein Leitungspaar zur Kodierung eines Datenbits. Weiters kann die digitale Schaltung in zwei sich zeitlich abwechselnde Phasen versetzt werden. Dies sind die so genannte Vorladephase und die so genannte Auswertephase. Typischerweise wird das Umschalten zwischen diesen beiden Phasen durch ein Steuer- bzw. Taktsignal ausgelöst. Während der Vorladephase werden alle Ein- und Ausgänge der einstufigen Logikelemente, welche die digitale Schaltung aufbauen, auf vorgegebene Vorladewerte gesetzt. Mit anderen Worten ausgedrückt bedeutet dies, dass die gesamte Schaltung in jeder Vorladephase in jeweils denselben Zustand versetzt wird. In diesem Zustand liegen an allen Ein- und Ausgängen von einstufigen Logikelementen zuvor definierte Vorladewerte an. Wichtig dabei ist zu berücksichtigen, dass alle Eingänge jedes einzelnen Logikelements jeweils auf den gleichen Vorladewert gesetzt werden müssen. Es gibt also kein Logikelement in der digitalen Schaltung an dessen Eingängen in der Vorladephase unterschiedliche Werte anliegen. Dadurch treten, wie später noch genauer ausgeführt wird, keine „Glitches“ in der digitalen Schaltung auf. 4 AT 010 303 U1 Während der Auswertephase wird von der digitalen Schaltung eine Rechenoperation ausgeführt. Diese Rechenoperation wird vollständig maskiert und in „dual-rail“ Kodierung ausgeführt. Dies bedeutet, dass der digitalen Schaltung neben maskierten Operanden und entsprechenden Maskierungsparametern auch die maskierten Operanden und die Maskierungsparameter in invertierter Form übergeben werden. Basierend auf diesen übergebenen Werten werden ein maskiertes Resultat und ein maskiertes Resultat in invertierter Form berechnet. Diese maskierten Resultate entsprechen jenen Resultaten die erhalten werden würden, wenn die vorgegebene Rechenoperation unmaskiert mit unmaskierten Operanden ausgeführt worden wäre und wenn die Resultate anschließend maskiert worden wären.
Neben der maskierten Ausführung der Rechenvorschrift in „dual-rail“ Kodierung, ist ein wesentliches Merkmal von erfindungsgemäßen Verfahren und Schaltungen, dass während der Auswertephase alle Datenwerte an den Ausgängen jedes einzelnen einstufigen Logikelements der digitalen Schaltung gemäß jeweils einem Maskierungsverfahren maskiert sind. Somit treten während der Auswertephase in der digitalen Schaltung ausschließlich Datenwerte auf, die gemäß einem Maskierungsverfahren maskiert sind. Dadurch ist gewährleistet, dass alle in der digitalen Schaltung auftretenden Datenwerte statistisch unabhängig von den entsprechenden unmaskierten Werten in einer konventionellen CMOS Schaltung sind. Dies ist eine wesentliche Voraussetzung für die Erreichung einer hohen Sicherheit gegen Seitenkanalattacken.
Die Eigenschaft, dass der Ausgang jedes einzelnen einstufigen Logikelements gemäß einem Maskierungsverfahren maskiert ist, wird dadurch erreicht, dass beim Entwurf einer digitalen Schaltung die Logikfunktionen der einzelnen einstufigen Logikelemente und die Verschaltung dieser Logikelemente basierend auf Wahrheitstabellen entsprechend ausgewählt werden. Bei der Auswahl der Logikfunktionen der einstufigen Grundelemente ist weiters darauf zu achten, dass diese Funktionen positiv oder negativ monoton sind.
Die Monotonieeigenschaft der Logikfunktionen und die Voraussetzung, dass während der Vorladephase die Eingänge eines jeden einstufigen Logikelements auf jeweils denselben Vorladewert gesetzt werden und führen dazu, dass beim Übergang der Schaltung von der Vorladephase in die Auswertephase alle Ausgänge eines jeden einstufigen Logikelements maximal einmal ihren Wert ändern. Mit anderen Worten ausgedrückt bedeutet dies, dass beim Übergang von der Vorladephase in die Auswertephase keine „Glitches“ auftreten.
Dasselbe gilt auch für den Übergang der digitalen Schaltung von der Auswertephase zurück in die Vorladephase. Bei diesem Übergang schalten die Ausgänge von genau jenen einstufigen Logikelementen auf ihren definierten Vorladewert zurück, die zuvor beim Übergang in die Aus-wertephase ihren Wert geändert haben. In erfindungsgemäßen Schaltungen und Verfahren treten somit zu keiner Zeit „Glitches“ auf, wenn gleichzeitig auch gewährleistet ist, dass an den Eingängen der digitalen Schaltung keine „Glitches" auftreten. Diese Grundvoraussetzung kann zum Beispiel dadurch erfüllt werden, dass die Eingänge der digitalen Schaltung durch Flip-Flops oder durch eine weitere erfindungsgemäße Schaltung gesetzt werden.
Das Verhindern von „Glitches“ und das Maskieren der Ausgänge aller einstufigen Logikelemente in erfindungsgemäßen Verfahren und Schaltungen führen zu einer sehr hohen Sicherheit gegen Seitenkanalattacken. Die physikalischen Seitenkanalinformation, die durch die Änderung der Datenwerte bei einem Übergang von einer Vorladephase in eine Auswertephase bzw. bei einem Übergang von einer Auswertephase in eine Vorladephase auftreten, sind durch die Maskierung weitgehend unabhängig von jenen Datenwerten, die in entsprechenden unmaskierten CMOS Schaltungen auftreten würden.
In Unteranspruch 3 wird als Maskierungsverfahren, die bitweise XOR Verknüpfung von zu maskierendem Operanden und den Maskierungsparametern angeführt. Bei Verwendung dieses Maskierungsverfahrens ist gewährleistet, dass während der maskierten Berechnung einer Rechenvorschrift gemäß der Erfindung keine Datenwerte auftreten, die eine statistische Abhän- 5 AT010 303 U1 gigkeit zu jenen Werten aufweisen, die in einer entsprechenden unmaskierten CMOS Schaltung auftreten würden.
In den Unteransprüchen 7 und 8 sind zwei Methoden angeführt, wie zwischen Vorladephase und Auswertephase hin- und her geschaltet werden kann. Bei der Methode, die in Unteranspruch 7 beschrieben ist, wird hierfür ein zusätzliches Steuersignal verwendet. Dies hat den Vorteil, dass alle einstufigen Logikelemente zeitgleich in die Vorladephase versetzt werden können. Daraus resultiert aber anderseits auch der Nachteil, dass zu diesem Zeitpunkt dann ein sehr hoher Stromverbrauch in der Schaltung auftritt.
Eine alternative Methode wird in Unteranspruch 8 beschrieben. Bei dieser Methode wird die Logikfunktion der einstufigen Logikelemente so gewählt, dass die einstufigen Logikelemente dadurch in die Vorladephase versetzt werden, dass an deren Eingängen Vorladewerte angelegt werden. Es ist für diese Methode somit kein zusätzliches Steuersignal erforderlich und es treten auch nicht so hohe Ströme auf wie bei der Methode gemäß Unteranspruch 7. Ein Nachteil dieser Methode ist jedoch, dass nicht alle Logikelemente gleichzeitig in die Vorladephase versetzt werden können. Es ist somit notwendig, dass die Vorladephase zumindest gleich lange dauert wie die Auswertephase.
Wie in Unteranspruch 9 angeführt, ist eine Balancierung von Leitungspaaren bezüglich ihrer elektrischen Eigenschaften nicht notwendig. Dadurch ist eine Implementierung einer erfindungsgemäßen Schaltung bzw. eines erfindungsgemäßen Verfahrens technisch wesentlich einfacher als die Implementierung von Schaltungen basieren auf den „dual-rail pre-charge“ Logikstilen „Sense-Amplifier Based Logic“ und „Wave Dynamic Digital Logic“.
In den Zeichnungen sind Beispiele erfindungsgemäßer digitaler Schaltungen dargestellt. Es zeigen: - Fig. 1 eine schematische Darstellung einer erfindungsgemäßen digitalen Schaltung; - Fig. 2 eine Darstellung einer erfindungsgemäßen digitalen Schaltung welche als Rechenoperation eine logische AND Operation implementiert und wobei als Maskierungsverfahren für die Operanden bzw. das Resultat eine bitweise XOR Verknüpfung mit dem Maskierungsparameter eingesetzt wird; - Fig. 3 eine Darstellung einer erfindungsgemäßen digitalen Schaltung welche als Rechenoperation eine logische NAND Operation implementiert und wobei als Maskierungsverfahren für die Operanden bzw. das Resultat eine bitweise XOR Verknüpfung mit dem Maskierungsparameter eingesetzt wird; - Fig. 4 eine Darstellung einer erfindungsgemäßen digitalen Schaltung welche als Rechenoperation eine logische OR Operation implementiert und wobei als Maskierungsverfahren für die Operanden bzw. das Resultat eine bitweise XOR Verknüpfung mit dem Maskierungsparameter eingesetzt wird; - Fig. 5 eine Darstellung einer erfindungsgemäßen digitalen Schaltung welche als Rechenoperation eine logische NOR Operation implementiert und wobei als Maskierungsverfahren für die Operanden bzw. das Resultat eine bitweise XOR Verknüpfung mit dem Maskierungsparameter eingesetzt wird; - Fig. 6 eine Darstellung einer erfindungsgemäßen digitalen Schaltung welche als Rechenoperation eine logische XOR Operation implementiert und wobei als Maskierungsverfahren für die Operanden bzw. das Resultat eine bitweise XOR Verknüpfung mit dem Maskierungsparameter eingesetzt wird; - Fig. 7 eine Darstellung einer erfindungsgemäßen digitalen Schaltung welche als Rechenoperation eine logische XNOR Operation implementiert und wobei als Maskierungsverfahren für die Operanden bzw. das Resultat eine bitweise XOR Verknüpfung mit dem Maskierungsparameter eingesetzt wird; und - Fig. 8 eine Darstellung einer erfindungsgemäßen digitalen Schaltung welche als Rechenoperation einen Wechsel der Maske eines Operanden vornimmt und wobei als Maskierungsverfah- 6 AT 010 303 U1 ren für den Operanden eine bitweise XOR Verknüpfung mit dem jeweiligen Maskierungsparameter eingesetzt wird. - Fig. 1 zeigt eine schematische Darstellung einer erfindungsgemäßen digitalen Schaltung 1. Eine erfindungsgemäße digitale Schaltung ist aus einem oder mehreren einstufigen Logikelementen 2 aufgebaut. Unter einstufigen Logikelementen sind die kleinstmöglichsten digitalen Teilschaltungen zu verstehen, die einen logischen Ausgangsdatenwert basierend auf Eingangsdatenwerten und einer logischen Funktion berechnen können. In einer erfindungsgemäßen digitalen Schaltung müssen die verwendeten einstufigen Logikelemente jeweils eine positiv oder negativ monotone, logische Funktion realisieren.
Eine erfindungsgemäße digitale Schaltung wird abwechselnd in eine der zwei folgenden Phasen versetzt: in die Vorladephase oder in die Auswertephase. In der Vorladephase werden an die Eingänge 3, 4, 5 und 6 der digitalen Schaltung vorgegebene Vorladewerte angelegt. Durch eine entsprechende Wahl der jeweiligen Logikfunktion der einstufigen Logikelemente, nötigenfalls auch unter Berücksichtigung eines der Schaltung zusätzlich zugeführten Steuersignals, muss sichergestellt werden, dass die Ausgänge der einstufigen Logikelemente und somit auch die Ausgänge 7 und 8 der digitalen Schaltung auf vorgegebene Vorladewerte gesetzt werden. Zusätzlich muss in einer erfindungsgemäßen digitalen Schaltung darauf geachtet werden, dass die einstufigen Logikelemente derart zusammengeschaltet sind, dass während der Vorladephase die Eingänge jeweils eines einstufigen Logikelements auf den gleichen Vorladewert gesetzt werden. Zusammen mit der oben genannten Forderung, dass einstufige Logikelemente nur monotone Funktionen realisieren dürfen, stellt diese Bedingung bezüglich der Eingangswerte der einstufigen Logikelemente sicher, dass in einer erfindungsgemäßen digitalen Schaltung und somit auch an ihren Ausgängen keine „Glitches“ auftreten. Solche „Glitches“ rufen, wie eingangs schon beschrieben, eine Anfälligkeit für Seitenkanalattacken hervor.
In der der Vorladephase folgenden Auswertephase werden an die Eingänge 3 und 4 der digitalen Schaltung die gemäß den jeweiligen Maskierungsverfahren und den Maskierungsparametern maskierten Operanden und die invertierten, maskierten Operanden angelegt. Die Maskierungsparameter und die invertierten Maskierungsparameter werden an die Eingänge 5 und 6 angelegt. An den Ausgängen der erfindungsgemäßen Schaltung treten in weiterer Folge die maskierten und die invertierten, maskierten Resultate auf. In der Auswertephase ist darauf zu achten, dass alle in der digitalen Schaltung auftretenden logischen Datenwerte gemäß einem Maskierungsverfahren und den entsprechenden Maskierungsparametern maskiert sind. - Fig. 2 zeigt die Implementierung einer erfindungsgemäßen digitalen Schaltung 1 die als Rechenoperation eine AND Operation ausführt. Im vorliegenden Fall wird als Maskierungsverfahren für die Operanden OP 1 und OP2 an den Eingängen der Schaltung und auch für das Resultat RE an den Ausgängen der Schaltung eine bitweise XOR Verknüpfung mit dem Maskierungsparameter MA eingesetzt. Selbstverständlich könnten auch andere geeignete Maskierungsverfahren (z.B. eine XNOR Verknüpfung) mit einem oder mehreren Maskierungsparame-ter(n) (z.B. ein Maskierungsparameter für die Operanden, ein Maskierungsparameter für das Resultat) verwendet werden. Die maskierten Operanden bzw. die invertierten, maskierten Operanden an den Eingängen und das maskierte Resultat bzw. das invertierte, maskierte Resultat an den Ausgängen der digitalen Schaltung stehen in dem in den Gleichungen (1) bis (6) beschriebenen Zusammenhang. OP7MA =OP70MA (1) OP7Ma = OP1® MA (2) OP2MA =OP2®MA (3) OP2Ma =ΟΡ2φΜΑ (4) rema =re©ma (5) 7 AT 010 303 U1 REma=RE®MA (6) Während der so genannten Auswertephase liegen die maskierten Operanden, die invertierten, maskierten Operanden, der Maskierungsparameter und der invertierte Maskierungsparameter an den Eingängen der digitalen Schaltung an. Die durchzuführende Rechenoperation ist eine AND Operation, welche zum einen maskiert und zum anderen invertiert und maskiert erfolgen muss. Die geforderten Resultate dieser Rechenoperation sind in den Gleichungen (7) und (8) dargestellt. REma = (OP7 0P2)©MA (7) REma = OP7 · OP2®MA (8)
Die Durchführung der Rechenoperation muss ausschließlich mit maskierten Datenwerten erfolgen, um gegen Seitenkanalattacken geschützt zu sein. Dazu werden in der Implementierung einstufige Logikelemente verwendet, welche die negativ monotone IMAJ (invertierte Majorität) Logikfunktion realisieren. Die IMAJ Logikfunktion wird wie folgt definiert: IMAJ(A,B,C) = AB+A-C+BC (9)
Die dazu inverse Logikfunktion wird als Majoritätsfunktion (MAJ) bezeichnet. Der Ausgangswert des IMAJ Logikelements 10 ergibt sich nun zu: X10MA = IMAJ(OP7ma ,OP2ma ,MA) = OP7ma OP2ma +OP7ma MA+OP2ma MA = (OP 7®MA) · (OP 2®MA) + (OP 7©MA) · ΜΑ + (OP 2®MA) · MA = (OP 7 · MA + OP 7 · MA) (OP 2 · MA + OP 2 · MA) + (OP 7 · MA + OP 7 ΜΑ) · MA+(OP 2 MA+OP 2 · ΜΑ) · MA = OP7·OP2·MÄ + OP7 ÖP2 MA + OP7·MA + OP2- MA = OP7 · OP2 MA + (ÖP7 OP 2 + OP 7 + OP 2) MA = OP 7 · OP 2 · MA + OP 7 · OP 2 MA = (OP7 · OP2 )®MA = ΟΡ7-ΟΡ2ΦΜΑ (70)
Es ist ersichtlich, dass dieses Zwischenergebnis ebenso ordnungsgemäß maskiert ist. Der Ausgangswert des nachfolgenden NOT Logikelements 11 ist zugleich das maskierte Resultat der erfindungsgemäßen digitalen Schaltung, welches mit dem gewünschten maskierten Resultat laut Gleichung (7) übereinstimmt: REMA =MAJ(OP7ma ,OP2ma ,MA) = X70ma = 0P70P2©MA = (0P70P2)®MA (11)
Weiters ergibt sich der Ausgangswert des IMAJ Logikelements 12 zu: X72ma =IMAJ(ÖP7Ma ,ÖP2ma ,MÄ) = ÖP7Ma ÖP2ma +ÖP7Ma MÄ+ÖP2ma MÄ = (OP7®MA) - (OP 2®MA)+(OP 7®MA) · MA+(OP 2®MA) MA = (ΟΡ7·ΜΑ + ΟΡ7·ΜΑ)·(ΟΡ2·ΜΑ+ΟΡ2·ΜΑ) + (ΟΡ7·ΜΑ + ΟΡ7·ΜΑ)·ΜΑ+(ΟΡ2·ΜΑ+ΟΡ2·ΜΑ)·ΜΑ = OP 7 · OP 2 · MA+OP 7 · OP 2 · MA+OP 7 · MA + OP 2 · MA = ΟΡ7·ΟΡ2·ΜΑ+(ΟΡ7·ΟΡ2 + ΟΡ7+ΟΡ2)ΜΑ = 0P7 0P2MA+0P7 0P2MA = (OP7 OP2)©MA = (OP7 OP2)®MA (72) 8 AT 010 303 U1
Es ist ersichtlich, dass dieses Zwischenergebnis auch ordnungsgemäß maskiert ist. Der Ausgangswert des nachfolgenden NOT Logikelements 13 ist zugleich das invertierte, maskierte Resultat der erfindungsgemäßen digitalen Schaltung, welches mit dem gewünschten maskierten Resultat laut Gleichung (8) übereinstimmt: 5 REma = MAJ(ÖP7ma ,ÖP2Ma ,MÄ) = X72ma =(OP 1 ·ΟΡ2)φΜΑ = ΟΡ7 OP20MA (13)
Es sei noch einmal darauf hingewiesen, dass alle in der Implementierung der digitalen Schaltung auftretenden Zwischenergebnisse nur in entsprechend maskierter Form auftreten, wodurch io Seitenkanalattacken weitgehend verhindert werden.
In der sich mit der Auswertephase abwechselnden Vorladephase werden vorgegebene Vorladewerte an die Eingänge der erfindungsgemäßen digitalen Schaltung (Operanden und Maskierungsparameter) angelegt. Dabei ist darauf zu achten, dass die Eingänge je eines einstufigen 15 Logikelements auf denselben Vorladewert gesetzt werden. Dies ist eine der Maßnahmen die notwendig sind, um das Auftreten von „Glitches“ zu verhindern. Im vorliegenden Fall betrifft das jeweils die Eingänge der beiden IMAJ Logikelemente 10 und 12. Insbesondere ist diese Bedingung dann erfüllt, wenn alle Eingänge der digitalen Schaltung während der Vorladephase auf denselben Vorladewert gesetzt werden. Für die beiden NOT Logikelemente 11 und 13 ist obige 20 Bedingung immer erfüllt, da sie nur einen Eingang besitzen. Es sei darauf hingewiesen, dass wenn während der Vorladephase an alle Eingänge der digitalen Schaltung der gleiche Vorladewert 0 angelegt wird, sich auch an den Ausgängen der Schaltung der Vorladewert 0 ergibt.
Die IMAJ Logikfunktion und die NOT Logikfunktion sind beides negativ monotone Logikfunktio-25 nen. Damit ist die Anforderung an eine erfindungsgemäße digitale Schaltung erfüllt, welche besagt, dass nur einstufige Logikelemente mit positiv oder negativ monotoner Funktion verwendet werden dürfen. Zusammen mit der Forderung, dass die Eingänge je eines einstufigen Logikelements während der Vorladephase auf denselben Vorladewert gesetzt werden müssen, stellt diese Bedingung bezüglich der verwendeten Logikfunktionen sicher, dass in der erfin-30 dungsgemäßen digitalen Schaltung keine „Glitches“ auftreten. Treten nun beim Übergang von der Vorladephase in die Auswertephase bzw. umgekehrt auch an den Eingängen der digitalen Schaltung keine „Glitches“ auf, d.h. ein Eingangssignal ändert seinen Wert ausgehend vom aktuellen Wert höchstens einmal, dann treten in der digitalen Schaltung selbst und somit an ihren Ausgängen auch keine „Glitches“ auf. Die Resultate an den Ausgängen der Schaltung 35 können somit wiederum als Eingangssignale für andere erfindungsgemäße digitale Schaltungen verwendet werden. - Fig. 3 zeigt die Implementierung einer erfindungsgemäßen digitalen Schaltung 1 die als Rechenoperation eine NAND Operation ausführt. Als Maskierungsverfahren für die Operanden 40 OP 7 und OP2 an den Eingängen der Schaltung und auch für das Resultat RE an den Ausgängen der Schaltung wird wiederum eine bitweise XOR Verknüpfung mit dem Maskierungsparameter MA eingesetzt. Die maskierten Operanden bzw. die invertierten, maskierten Operanden an den Eingängen und das maskierte Resultat bzw. das invertierte, maskierte Resultat an den Ausgängen der digitalen Schaltung stehen in dem in den Gleichungen (1) bis (6) beschriebenen 45 Zusammenhang.
Die durchzuführende Rechenoperation ist hier eine NAND Operation, welche zum einen maskiert und zum anderen invertiert und maskiert erfolgen muss. Die geforderten Resultate dieser Rechenoperation sind in den Gleichungen (14) und (15) dargestellt. 50 REMA =ΟΡί·ΟΡ2θΜΑ (14) ^ma =(ΟΡ7·ΟΡ2)θΜΑ (15) 55 Die Implementierung der digitalen Schaltung in Fig. 3 ist beinahe identisch mit der in Fig. 2 9 AT010 303U1 gezeigten Schaltung, lediglich die beiden Ausgangssignale für REma und RE MAsind vertauscht. Das heißt, in der Auswertephase ergibt sich für das maskierte Resultat REMa der digitalen Schaltung in Fig. 3 ein Wert entsprechend Gleichung (13): REma =MAJ(OP7ma ,OP2ma ,MA) = OP7 OP20MA (76)
Der Wert stimmt mit dem gewünschten maskierten Resultat laut Gleichung (14) überein. Für das invertierte, maskierte Resultat RE MA der digitalen Schaltung in Fig. 3 ergibt sich ein Wert entsprechend Gleichung (11): REma = MAJ(OP7ma ,OP2ma ,MA) = (0P7 0P2)©MA (17)
Der Wert stimmt mit dem gewünschten Resultat laut Gleichung (15) überein.
Da die digitale Schaltung in Fig. 3 gegenüber der Schaltung in Fig. 2 nur minimal geändert wurde gelten die dortigen Überlegungen bezüglich der Maskierung von Zwischenergebnissen, der Vorladephase, der monotonen Logikfunktionen und der „Glitches“ in entsprechender Form auch hier. Es sei auch hier noch darauf hingewiesen, dass wenn während der Vorladephase an alle Eingänge der digitalen Schaltung der gleiche Vorladewert 0 angelegt wird, sich auch an den Ausgängen der Schaltung der Vorladewert 0 ergibt. - Fig. 4 zeigt die Implementierung einer erfindungsgemäßen digitalen Schaltung 1 die als Rechenoperation eine OR Operation ausführt. Als Maskierungsverfahren für die Operanden OP7 und OP2 an den Eingängen der Schaltung und auch für das Resultat RE an den Ausgängen der Schaltung wird wiederum eine bitweise XOR Verknüpfung mit dem Maskierungsparameter MA eingesetzt. Die maskierten Operanden bzw. die invertierten, maskierten Operanden an den Eingängen und das maskierte Resultat bzw. das invertierte, maskierte Resultat an den Ausgängen der digitalen Schaltung stehen in dem in den Gleichungen (1) bis (6) beschriebenen Zusammenhang. Während der Auswertephase liegen die maskierten Operanden, die invertierten maskierten Operanden, der Maskierungsparameter und der invertierte Maskierungsparameter an den Eingängen der digitalen Schaltung an. Die durchzuführende Rechenoperation ist eine OR Operation, welche zum einen maskiert und zum anderen invertiert und maskiert erfolgen muss. Die geforderten Resultate dieser Rechenoperation sind in den Gleichungen (18) und (19) dargestellt. REma = (OPI + OP2)0MA (18) ^ma =OP7 + OP2©MA (19)
Die Durchführung der Rechenoperation muss ausschließlich mit maskierten Datenwerten erfolgen, um gegen Seitenkanalattacken geschützt zu sein. Dazu werden in der Implementierung wiederum einstufige Logikelemente verwendet, welche die negativ monotone IMAJ (invertierte Majorität) Logikfunktion gemäß Gleichung (9) realisieren. Der Ausgangswert des IMAJ Logikelements 30 ergibt sich nun zu: X30ma = IMAJ(OP7ma ,OP2ma ,MÄ) = OP7ma OP2ma + OP7ma MÄ + OP2ma MÄ = (OP 7®MA) · (OP 2ΘΜΑ) + (OP 70MA) · MÄ+(OP 20MA) · MÄ = (ΟΡ1·ΜΑ + ΟΡ7·ΜΑ)·(ΟΡ2·ΜΑ + ΟΡ2·ΜΑ) + (ΟΡ7·ΜΑ + ΟΡ7·ΜΑ)·ΜΑ + (ΟΡ2·ΜΑ + ΟΡ2·ΜΑ)·ΜΑ = 0ΡΪΟΡ2·ΜΑ + ΟΡ7·ΟΡ2·ΜΑ + ΟΡί MÄ + OP2MA = OP1 + OP2 MA + (OP7 OP2 + OP7 + OP2) - MA = OP 7 + OP2-MA + (OP7 + OP2)MA = 10 AT 010 303 U1 (ΟΡί + ΟΡ2)®ΜΑ = ΟΡί + ΟΡ20ΜΑ (20)
Es ist ersichtlich, dass dieses Zwischenergebnis ebenso ordnungsgemäß maskiert ist. Der Ausgangswert des nachfolgenden NOT Logikelements 31 ist zugleich das maskierte Resultat der erfindungsgemäßen digitalen Schaltung, welches mit dem gewünschten maskierten Resultat laut Gleichung (18) übereinstimmt: REma = MAJ(OP1ma ,OP2ma ,MA ) = X30ma = ΟΡί + ΟΡ2©ΜΑ = (ΟΡί + ΟΡ2)©ΜΑ (21)
Weiters ergibt sich der Ausgangswert des IMAJ Logikelements 32 zu: X32ma = IMAJ(OP1ma ,OP2ma ,MA) = OP1ma OP2ma + OP1ma 'MA + ÖP2MA -MA = (OP 10M A) · (OP 2®MA)+(OP 1 φΜ A) · MA+(OP 2®M A) · MA = (OP 1 ΜΑ + OPI MA) · (ÖP2 · MÄ + OP 2 · MA)+(ÖPi · MA+OP 1 MA) · MA + (OP 2 · Μ A + OP 2 · MA) MA = ΟΡ7·ΟΡ2·ΜΑ+ΟΡ7·ΟΡ2·ΜΑ+ΟΡί MA + OP2MA = ΟΡί + ΟΡ2ΜΑ+(ΟΡίΟΡ2+ΟΡί+ΟΡ2)-ΜΑ = ΟΡί + OP2MÄ+(OPi + OP2)MA = ΟΡί + ΟΡ2φΜΑ = (ΟΡί + ΟΡ2)φΜΑ (22)
Es ist ersichtlich, dass dieses Zwischenergebnis auch ordnungsgemäß maskiert ist. Der Ausgangswert des nachfolgenden NOT Logikelements 33 ist zugleich das invertierte, maskierte Resultat der erfindungsgemäßen digitalen Schaltung, welches mit dem gewünschten maskierten Resultat laut Gleichung (19) übereinstimmt: REma =MAJ(OP1Ma ,OP2ma ,MA) = X32ma = (OPi + OP2 )©MA = OPi + OP2©MA (23)
Es sei noch einmal darauf hingewiesen, dass auch hier alle in der Implementierung der digitalen Schaltung auftretenden Zwischenergebnisse nur in entsprechend maskierter Form auftreten, wodurch Seitenkanalattacken weitgehend verhindert werden.
In der sich mit der Auswertephase abwechselnden Vorladephase werden vorgegebene Vorladewerte an die Eingänge der erfindungsgemäßen digitalen Schaltung (Operanden und Maskierungsparameter) angelegt. Dabei ist darauf zu achten, dass die Eingänge je eines einstufigen Logikelements auf denselben Vorladewert gesetzt werden. Dies ist wie bereits beschrieben eine der Maßnahmen die nötig sind, um das Auftreten von „Glitches“ zu verhindern. Im vorliegenden Fall betrifft das jeweils die Eingänge der beiden IMAJ Logikelemente 30 und 32. Insbesondere ist diese Bedingung dann erfüllt, wenn alle Eingänge der digitalen Schaltung während der Vorladephase auf denselben Vorladewert gesetzt werden. Für die beiden NOT Logikelemente 31 und 33 ist obige Bedingung immer erfüllt, da sie nur einen Eingang besitzen. Es sei auch hier darauf hingewiesen, dass wenn während der Vorladephase an alle Eingänge der digitalen Schaltung der gleiche Vorladewert 0 angelegt wird, sich auch an den Ausgängen der Schaltung der Vorladewert 0 ergibt.
Die IMAJ Logikfunktion und die NOT Logikfunktion sind beides negativ monotone Logikfunktionen. Damit ist die Anforderung an eine erfindungsgemäße digitale Schaltung erfüllt, welche besagt, dass nur einstufige Logikelemente mit positiv oder negativ monotoner Funktion verwendet werden dürfen. Zusammen mit der Forderung, dass die Eingänge je eines einstufigen Logikelements während der Vorladephase auf denselben Vorladewert gesetzt werden müssen, stellt diese Bedingung bezüglich der verwendeten Logikfunktionen sicher, dass in der erfindungsgemäßen digitalen Schaltung keine „Glitches“ auftreten. Treten nun beim Übergang von 11 AT 010 303 U1 der Vorladephase in die Auswertephase bzw. umgekehrt auch an den Eingängen der digitalen Schaltung keine „Glitches“ auf, d.h. ein Eingangssignal ändert seinen Wert ausgehend vom aktuellen Wert höchstens einmal, dann treten in der digitalen Schaltung selbst und somit an ihren Ausgängen auch keine „Glitches“ auf. Die Resultate an den Ausgängen der Schaltung können somit wiederum als Eingangssignale für andere erfindungsgemäße digitale Schaltungen verwendet werden. - Fig. 5 zeigt die Implementierung einer erfindungsgemäßen digitalen Schaltung 1 die als Rechenoperation eine NOR Operation ausführt. Als Maskierungsverfahren für die Operanden OP 7 und OP2 an den Eingängen der Schaltung und auch für das Resultat RE an den Ausgängen der Schaltung wird wiederum eine bitweise XOR Verknüpfung mit dem Maskierungsparameter MA eingesetzt. Die maskierten Operanden bzw. die invertierten, maskierten Operanden an den Eingängen und das maskierte Resultat bzw. das invertierte, maskierte Resultat an den Ausgängen der digitalen Schaltung stehen in dem in den Gleichungen (1) bis (6) beschriebenen Zusammenhang.
Die durchzuführende Rechenoperation ist hier eine NOR Operation, welche zum einen maskiert und zum anderen invertiert und maskiert erfolgen muss. Die geforderten Resultate dieser Rechenoperation sind in den Gleichungen (24) und (25) dargestellt. RE MA = OP7+OP20MA (24) REma =(ΟΡ7 + ΟΡ2)φΜΑ (25)
Die Implementierung der digitalen Schaltung in Fig. 5 ist beinahe identisch mit der in Fig. 4 gezeigten Schaltung, lediglich die beiden Ausgangssignale für REMa und RE MAsind vertauscht. Das heißt, in der Auswertephase ergibt sich für das maskierte Resultat REMa der digitalen Schaltung in Fig. 5 ein Wert entsprechend Gleichung (23): REma =MAJ(OPfma ,OP2MA ,MA) = OP7 + OP2®MA (26)
Der Wert stimmt mit dem gewünschten maskierten Resultat laut Gleichung (24) überein. Für das invertierte, maskierte Resultat RE MAder digitalen Schaltung in Fig. 5 ergibt sich ein Wert entsprechend Gleichung (21): REma = MAJ(OP7ma .OP2ma ,MÄ) = (OP7 + OP2)©MA (27)
Der Wert stimmt mit dem gewünschten Resultat laut Gleichung (25) überein.
Da die digitale Schaltung in Fig. 5 gegenüber der Schaltung in Fig. 4 nur minimal geändert wurde gelten die dortigen Überlegungen bezüglich der Maskierung von Zwischenergebnissen, der Vorladephase, der monotonen Logikfunktionen und der „Glitches“ in entsprechender Form auch hier. Es sei auch hier noch darauf hingewiesen, dass wenn während der Vorladephase an alle Eingänge der digitalen Schaltung der gleiche Vorladewert 0 angelegt wird, sich auch an den Ausgängen der Schaltung der Vorladewert 0 ergibt. - Fig. 6 zeigt die Implementierung einer erfindungsgemäßen digitalen Schaltung 1 die als Rechenoperation eine XOR Operation ausführt. Als Maskierungsverfahren für die Operanden OP 7 und OP2 an den Eingängen der Schaltung und auch für das Resultat RE an den Ausgängen der Schaltung wird wiederum eine bitweise XOR Verknüpfung mit dem Maskierungsparameter MA eingesetzt. Die maskierten Operanden bzw. die invertierten, maskierten Operanden an den Eingängen und das maskierte Resultat bzw. das invertierte, maskierte Resultat an den Ausgängen der digitalen Schaltung stehen in dem in den Gleichungen (1) bis (6) beschriebenen Zusammenhang. 12 AT 010 303 U1 Während der Auswertephase liegen die maskierten Operanden, die invertierten, maskierten Operanden, der Maskierungsparameter und der invertierte Maskierungsparameter an den Eingängen der digitalen Schaltung an. Die durchzuführende Rechenoperation ist eine XOR Operation, welche zum einen maskiert und zum anderen invertiert und maskiert erfolgen muss. Die geforderten Resultate dieser Rechenoperation sind in den Gleichungen (28) und (29) dargestellt. REMA = (ΟΡ7φΟΡ2)φΜΑ (28) REma = ΟΡίφΟΡ2φΜΑ (29)
Die Durchführung der Rechenoperation muss ausschließlich mit maskierten Datenwerten erfolgen, um gegen Seitenkanalattacken geschützt zu sein. In der Implementierung werden nun bereits erfindungsgemäße digitale Schaltungen nach Fig. 3 verwendet, welche eine maskierte NAND Operation und eine invertierte, maskierte NAND Operation gemäß Gleichungen (14) und (15) realisieren.
Die Ausgangswerte des maskierten NAND-Elements 50 ergeben sich nun zu: X50ma = Χ50φΜΑ = ΟΡί ΌΡ20ΜΑ (30) X5Öma =X5Ö0MA = (OP1ÖP2)®MA (31)
Es ist ersichtlich, dass diese Zwischenergebnisse ordnungsgemäß maskiert sind. Die Ausgangswerte des maskierten NAND-Elements 51 ergeben sich zu: X51ma = X 5 ίφΜΑ = OP 1 OP 2©MA (32) ΧΊΠμα = ΧΐΓϊφΜΑ = (ΟΡΪ ·ΟΡ2)φΜΑ (33)
Es ist ersichtlich, dass auch diese Zwischenergebnisse ordnungsgemäß maskiert sind. Die Ausgangswerte des nachfolgenden maskierten NAND-Elements 52 sind zugleich die maskierten Resultate der erfindungsgemäßen digitalen Schaltung: REma = Χ50·Χ57φΜΑ=ΟΡίΟΡ2 ·ΟΡ7·ΟΡ2φΜΑ= (ΟΡ7·0Ρ2+0ΡΪΟΡ2)φΜΑ = (ΟΡ7φΟΡ2)φΜΑ (34) RE μα = (X 50 · X 51 )®MA = (OP 1 · OP 2 · OP 1 · OP2 )0MA = [(ΟΡΪ+OP 2) · (OP 1+ÖP2) ]®MA = (ΟΡΪ · ÖP2 + OP 1 · OP 2 )0MA = ÖP70ÖP20MA (35)
Die durch die digitale Schaltung berechneten maskierten Resultate gemäß den Gleichungen (34) und (35) stimmen mit den gewünschten maskierten Resultaten gemäß den Gleichungen (28) und (29) überein.
Es sei darauf hingewiesen dass auch hier alle in der Implementierung der digitalen Schaltung auftretenden Zwischenergebnisse, inklusive der Zwischenergebnisse in den maskierten NAND-Elementen 50, 51 und 52, nur in entsprechend maskierter Form auftreten, wodurch Seitenkanalattacken weitgehend verhindert werden.
Die Überlegungen zu den erfindungsgemäßen digitalen Schaltungen in Fig. 2 bis Fig. 5 bezüglich der Vorladephase, der monotonen Logikfunktionen und der „Glitches“ gelten in entsprechender Form auch hier. Bezüglich der Vorladephase sei noch darauf hingewiesen, dass wenn während der Vorladephase an alle Eingänge der digitalen Schaltung der gleiche Vorladewert 0 angelegt wird sich an den Eingängen aller einstufigen Logikelemente für jeweils ein Logikelement der gleiche Vorladewerte einstellt und dass sich auch an den Ausgängen der Schaltung der Vorladewert 0 ergibt. 13 AT 010 303 U1 - Fig. 7 zeigt die Implementierung einer erfindungsgemäßen digitalen Schaltung 1 die als Rechenoperation eine XNOR Operation ausführt. Als Maskierungsverfahren für die Operanden OP1 und OP2 an den Eingängen der Schaltung und auch für das Resultat RE an den Ausgängen der Schaltung wird wiederum eine bitweise XOR Verknüpfung mit dem Maskierungsparameter MA eingesetzt. Die maskierten Operanden bzw. die invertierten, maskierten Operanden an den Eingängen und das maskierte Resultat bzw. das invertierte, maskierte Resultat an den Ausgängen der digitalen Schaltung stehen in dem in den Gleichungen (1) bis (6) beschriebenen Zusammenhang.
Die durchzuführende Rechenoperation ist hier eine XNOR Operation, welche zum einen maskiert und zum anderen invertiert und maskiert erfolgen muss. Die geforderten Resultate dieser Rechenoperation sind in den Gleichungen (36) und (37) dargestellt. REMA =OPf©OP2©MA (36) REma =(ΟΡίφΟΡ2)0ΜΑ (37)
Die Implementierung der digitalen Schaltung in Fig. 7 ist beinahe identisch mit der in Fig. 6 gezeigten Schaltung, lediglich die beiden Ausgangssignale für REma und RE MA sind vertauscht. Das heißt, in der Auswertephase ergibt sich für das maskierte Resultat REMa der digitalen Schaltung in Fig. 7 ein Wert entsprechend Gleichung (35): RE MA = OP 1 ©OP 2©MA (38)
Der Wert stimmt mit dem gewünschten maskierten Resultat laut Gleichung (36) überein. Für das invertierte, maskierte Resultat RE MA der digitalen Schaltung in Fig. 7 ergibt sich ein Wert entsprechend Gleichung (34): REma = (OP 1 ©OP 2 )©MA (39)
Der Wert stimmt mit dem gewünschten Resultat laut Gleichung (37) überein.
Da die digitale Schaltung in Fig. 7 gegenüber der Schaltung in Fig. 6 nur minimal geändert wurde gelten die dortigen Überlegungen bezüglich der Maskierung von Zwischenergebnissen, der Vorladephase, der monotonen Logikfunktionen und der „Glitches“ in entsprechender Form auch hier. Es sei auch hier noch darauf hingewiesen, dass wenn während der Vorladephase an alle Eingänge der digitalen Schaltung der gleiche Vorladewert 0 angelegt wird, sich auch an den Ausgängen der Schaltung der Vorladewert 0 ergibt. - Fig. 8 zeigt die Implementierung einer erfindungsgemäßen digitalen Schaltung 1 die als Rechenoperation einen Wechsel der Maske eines Operanden vornimmt. Als Maskierungsverfahren für den Operanden OP am Eingang bzw. am Ausgang der digitalen Schaltung wird eine bitweise XOR Verknüpfung mit dem Maskierungsparameter MA 1 bzw. MA2 eingesetzt. Der maskierte Operand bzw. der invertierte, maskierte Operand an den Eingängen und der maskierte Operand bzw. der invertierte, maskierte Operand an den Ausgängen der digitalen Schaltung stehen in dem wie in den Gleichungen (40) und (41) beschriebenen Zusammenhang. OPMA) = OP ©MAI (40) OPma2=OP©MA2 (41) Während der Auswertephase liegen der maskierte Operand, der invertierte, maskierte Operand, ein Maskierungsparameter der der XOR Verknüpfung von MAI und MA2 entspricht und der invertierte Maskierungsparameter an den Eingängen der digitalen Schaltung an. Die durchzuführende Rechenoperation ist ein Wechsel der Maske des Operanden, welche zum einen maskiert und zum anderen invertiert und maskiert erfolgen muss. Die geforderten Resultate dieser Rechenoperation sind in den Gleichungen (42) und (43) dargestellt. 14 AT 010 303 U1 OPMA2 =ΟΡφΜΑ2 (42) ÖPma2=ÖP®MA2 (43)
Die Durchführung der Rechenoperation muss ausschließlich mit maskierten Datenwerten erfolgen, um gegen Seitenkanalattacken geschützt zu sein. In der Implementierung wird unter anderem eine erfindungsgemäße digitale Schaltung nach Fig. 3 verwendet, welche eine maskierte NAND Operation und eine invertierte, maskierte NAND Operation gemäß Gleichungen (14) und (15) realisiert.
Die Ausgangswerte des NOR Logikelements 70 und des nachfolgenden NOT Logikelements 71 ergeben sich nun zu: X70MAi ,ma2 = OPma , + ΜΑ ίφΜΑ 2 = (ΟΡφΜΑ 1)+( ΜΑ ίφΜΑ 2) = ΟΡ·ΜΑ7+ΟΡ·ΜΑ7+ΜΑί·ΜΑ2+ΜΑί·ΜΑ2 (44) χ71ΜΑ1ΜΑ2=Χ70ΜΑ1ΜΑ2 = ΟΡ·ΜΑ7+0Ρ·ΜΑ7+ΜΑ7·ΜΑ2+ΜΑ7 ·ΜΑ2 (45)
Die Ausgangswerte des NAND Logikelements 72 und des nachfolgenden NOT Logikelements 73 ergeben sich zu: X72MA1MA2 =ÖPMAi ·(MA 70MA2) = (ΟΡφΜΑ 1) (MA 7φΜΑ2) = (OP · MA1 + OP · MA1) (MA1 MA 2+MA1 Μ A 2 = ÖP MÄ7 MA 2 + OP · MA1 MA 2 (46) ^3MA1 MA2 = X72MA1MA2 =ÖPMAfMA2+OPMAf-MÄ2 (47)
Die Ausgangswerte des NAND Logikelements 74 und des nachfolgenden NOT Logikelements 75 ergeben sich zu: X74WA1MA2 = OP ma 1 (MA 1©MA 2) = (ΟΡφΜΑ 1)·( MA 10MA 2) = (OP MA 1 + OP · MA 1)-( MA 1 MA 2+MA 1 MA 2 = OP · MA 1 MA 2 + OP MA 1 MA 2 (48) X?5ma1 MA2 = X74MA1 MA2 =ÖP-MÄ7-MÄ2+OP-MAf-MA2 (49)
Und die Ausgangswerte des NOR Logikelements 76 und des nachfolgenden NOT Logikelements 77 ergeben sich nun zu: X76MA1MA2 =OPma, +(MA 70MA 2 ) = (ΟΡφΜΑ 1)+(MA 7®MA 2) = OP MA 7+OP-MAI +MA7MA2+MA1 MA2 (50) X77ma,,ma2 = X76ma,,MA2 =OP MA7+OP·MA7+MA7·MA2+MA1 ·MA2 (51)
Die Zwischenergebnisse X70majiMa2 bis Χ77ΜΛ, MA2 sind wiederum ordnungsgemäß maskiert, da sie statistisch unabhängig von den entsprechenden unmaskierten Werten sind. Die Ausgangswerte des nachfolgenden maskierten NAND-Elements 78 sind zugleich die maskierten Resultate der erfindungsgemäßen digitalen Schaltung: 15 AT010 303 U1 0^ma2 - MAJ (X 73 MAJMA2 ’X77MAi,ma2 ,ΜΑ·/0ΜΑ2) (ÖP MÄ7 MA 2 + OP · MA1 · MA2) (OP · MÄ7+ÖP · MA1 + MA1 · MA 2+MÄ7 · MA 2) + (ÖP · ΜΑΪ MA 2 + OP Μ A1 MA 2) · (MÄ7 · MÄ2 + Μ A1 · MA 2)+ (OP · ΜΑΪ+ÖP MA 1 + MA 1 · MA2+MA7 MA 2) · (MÄ7 MÄ2 + MA 1 MA 2) = OP · ΜΑΪ MA 2 + OP · MA 7 · MÄ2 + OP · ΜΑΪ MA2 + OP · MA 7 · MA 2 = OP · MÄ2+ÖP · MA 2 = ΟΡθΜΑ 2 (52) OPma2 -MAJ(X7fMAi MA2 , X75MAi MA2 ,MAf0MA2)- (OP · ΜΑΪ +ÖP · MAI+ΜΑΪ · MA2 + MA1· MA2 ) (ÖP ·ΜΑΪ · MA2 + OP· MA7· MA2) + (OP · ΜΑΪ +ÖP · MA1 + MÄ7 · MÄ2 + MA1· MA2) (MAI MA2 + ΜΑΪ · MA2) + (ÖP · MÄ^· MÄ2 + OP MA7 · MA2) · (MA7 MÄ2 + MA7 · MA2) = ÖP ΜΑΪ·MA2 +OP MA 1 MA2+OP·MÄ?· MA2+ÖP MA7 MA2 = OP MA 2+ÖP MÄ2 = OP0MA 2 = ΟΡθΜΑ 2 (53)
Die durch die digitale Schaltung berechneten maskierten Resultate gemäß den Gleichungen (52) und (53) stimmen mit den gewünschten maskierten Resultaten gemäß den Gleichungen (42) und (43) überein.
Es sei noch einmal darauf hingewiesen dass auch hier alle in der Implementierung der digitalen Schaltung auftretenden Zwischenergebnisse, inklusive der Zwischenergebnisse im maskierten NAND-Element 78, nur in entsprechend maskierter Form auftreten, wodurch Seitenkanalattacken weitgehend verhindert werden.
In der sich mit der Auswertephase abwechselnden Vorladephase werden vorgegebene Vorladewerte an die Eingänge der erfindungsgemäßen digitalen Schaltung (Operand und Maskierungsparameter) angelegt. Dabei ist darauf zu achten, dass die Eingänge je eines einstufigen Logikelements auf denselben Vorladewert gesetzt werden. Dies ist wie bereits beschrieben eine der Maßnahmen die nötig sind, um das Auftreten von „Glitches“ zu verhindern. Im vorliegenden Fall betrifft das jeweils die Eingänge der beiden NOR Logikelemente 70 und 76, die Eingänge der beiden NAND Logikelemente 72 und 74 und die Eingänge des maskierten NAND-Elements 78. Insbesondere ist diese Bedingung dann erfüllt, wenn alle Eingänge der digitalen Schaltung während der Vorladephase auf denselben Vorladewert gesetzt werden. Für die vier NOT Logikelemente 71, 73, 75 und 77 ist obige Bedingung immer erfüllt, da sie nur einen Eingang besitzen. Es sei auch hier darauf hingewiesen, dass wenn während der Vorladephase an alle Eingänge der digitalen Schaltung der gleiche Vorladewert 0 angelegt wird, sich auch an den Ausgängen der Schaltung der Vorladewert 0 ergibt.
Die NOR, die NAND und die NOT Logikfunktion sind negativ monotone Logikfunktionen. Wie in Fig. 3 ersichtlich, gilt dies auch für die Logikfunktionen im NAND Element 78. Damit ist die Anforderung an eine erfindungsgemäße digitale Schaltung erfüllt, welche besagt, dass nur einstufige Logikelemente mit positiv oder negativ monotoner Funktion verwendet werden dürfen. Zusammen mit der Forderung, dass die Eingänge je eines einstufigen Logikelements während der Vorladephase auf denselben Vorladewert gesetzt werden müssen, stellt diese Bedingung bezüglich der verwendeten Logikfunktionen sicher, dass in der erfindungsgemäßen digitalen Schaltung keine „Glitches“ auftreten. Treten nun beim Übergang von der Vorladephase in die Auswertephase bzw. umgekehrt auch an den Eingängen der digitalen Schaltung keine „Glitches“ auf, d.h. ein Eingangssignal ändert seinen Wert ausgehend vom aktuellen Wert höchstens einmal, dann treten in der digitalen Schaltung selbst und somit an ihren Ausgängen auch keine „Glitches“ auf. Die Resultate an den Ausgängen der Schaltung können somit

Claims (14)

16 AT010 303 U1 wiederum als Eingangssignale für andere erfindungsgemäße digitale Schaltungen verwendet werden. Ansprüche: 1. Digitale Schaltung, die mit einstufigen Logikelementen aufgebaut ist, zur Durchführung einer Rechenoperation, mit der die mit Maskierungsverfahren unter Einsatz von Maskierungsparametern maskierten Operanden unter Anwendung dieser Maskierungsparameter im Zuge der vorgegebenen Rechenoperation zu maskierten Resultaten verknüpft werden, dadurch gekennzeichnet, - dass alle einstufigen Logikelemente (2) der digitalen Schaltung (1) jeweils eine positiv oder negativ monotone, logische Funktion besitzen, - dass die digitale Schaltung (1) zeitlich abwechselnd in eine Vorladephase und eine Auswertephase versetzt wird, - dass die einstufigen Logikelemente (2) derart zusammengeschaltet sind, dass bei den während der Vorladephase an die Eingänge der digitalen Schaltung (3, 4, 5, 6) angelegten, vorgegebenen Vorladewerten die Eingänge jeweils eines einstufigen Logikelements auf den gleichen Vorladewert gesetzt sind und dass die Ausgänge der einstufigen Logikelemente aufgrund ihrer jeweils vorgegebenen logischen Funktion auf vorgegebene Vorladewerte gesetzt sind und somit auch die Ausgänge der digitalen Schaltung (7, 8) auf vorgegebene Vorladewerte gesetzt sind, - dass die digitale Schaltung (1) N Eingänge für gemäß den Maskierungsverfahren und den Maskierungsparametern maskierte Operanden (3), M Eingänge für Maskierungsparameter (5), N Eingänge für die maskierten Operanden in invertierter Form (4) und M Eingänge für die Maskierungsparameter in invertierter Form (6) aufweist, an die in der der Vorladephase folgenden Auswertephase die entsprechenden Signalwerte angelegt sind, - dass die digitale Schaltung (1) L Ausgänge für maskierte Resultate (7) und L Ausgänge für die maskierten Resultate in invertierter Form (8) aufweist, an denen in der Auswertephase die durch Verknüpfung der 2 N Operanden und 2 M Maskierungsparameter unter Berücksichtigung der Maskierungsverfahren und der Maskierungsparameter mittels logischer Funktionen, welche von den einstufigen Logikelementen (2) realisiert werden, erhaltenen L maskierten Resultate und die L maskierten Resultate in invertierter Form auftreten, wobei diese Resultate gleich dem Wert sind, der erhalten werden würde, wenn die Operanden im unmaskierten Zustand der vorgegebenen Rechenoperation unterzogen würden und die erhaltenen Resultate anschließend maskiert würden, - dass durch die logische Funktion jedes einstufigen Logikelements (2) und durch die Verschaltung der einstufigen Logikelemente sichergestellt ist, dass alle während der Auswertephase an den Ausgängen der einstufigen Logikelemente und somit auch an den Ausgängen der digitalen Schaltung (7, 8) auftretenden logischen Werte gemäß einem Maskierungsverfahren und den Maskierungsparametern maskiert und - dass die digitale Schaltung (1) zur Durchführung von maskierten AND-Operationen ein erstes einstufiges Logikelement (10) mit einer invertierten Majoritätsfunktion IMAJ zur Verknüpfung des ersten maskierten Operanden (OP7Ma), des zweiten maskierten Operanden (OP2MA) und des Maskierungsparameters (MA) aufweist, um ein erstes maskiertes Zwischenergebnis zu erhalten, wobei ein einstufiges Logikelement (11) mit einer NOT-Funktion zur Negierung des ersten maskierten Zwischenergebnisses vorgesehen ist, um ein maskiertes Resultat (REma) zu erhalten, und - dass die digitale Schaltung (1) ein weiteres einstufiges Logikelement (12) mit einer invertierten Majoritätsfunktion IMAJ zur Verknüpfung des ersten maskierten Operanden in invertierter Form(OP7 MA), des zweiten maskierten Operanden in invertierter Form(OP2 MA)und des Maskierungsparameters in invertierter Form (MA) aufweist, um ein zweites maskiertes Zwischenergebnis zu erhalten, wobei ein einstufiges Logikelement (13) mit einer NOT-Funktion zur Negierung des zweiten maskierten Zwischenergebnisses vorgesehen ist, um das maskierte Resultat in invertierter Form (RE Ma) zu erhalten, 17 AT 010 303 U1 - oder dass die digitale Schaltung (1) zur Durchführung von maskierten NAND-Operationen ein erstes einstufiges Logikelement (20) mit einer invertierten Majoritätsfunktion IMAJ zur Verknüpfung des ersten maskierten Operanden (OPIma). des zweiten maskierten Operanden (OP2ma) und des Maskierungsparameters (MA) aufweist, um ein erstes maskiertes Zwischenergebnis zu erhalten, wobei ein einstufiges Logikelement (21) mit einer NOT-Funktion zur Negierung des ersten maskierten Zwischenergebnisses vorgesehen ist, um das maskierte Resultat in invertierter Form (RE ma) zu erhalten, und - dass die digitale Schaltung (1) ein weiteres einstufiges Logikelement (22) mit einer invertierten Majoritätsfunktion IMAJ zur Verknüpfung des ersten maskierten Operanden in invertierter Form (OP7 MA), des zweiten maskierten Operanden in invertierter Form(OP2 Ma) und des Maskierungsparameters in invertierter Form (MA) aufweist, um ein zweites maskiertes Zwischenergebnis zu erhalten, wobei ein einstufiges Logikelement (23) mit einer NOT-Funktion zur Negierung des zweiten maskierten Zwischenergebnisses vorgesehen ist, um ein maskiertes Resultat (REma) zu erhalten, - oder dass die digitale Schaltung (1) zur Durchführung von maskierten OR-Operationen ein erstes einstufiges Logikelement (30) mit einer invertierten Majoritätsfunktion IMAJ zur Verknüpfung des ersten maskierten Operanden (OP1Ma). des zweiten maskierten Operanden (OP2ma) und des Maskierungsparameters in invertierter Form (MA) aufweist, um ein erstes maskiertes Zwischenergebnis zu erhalten, wobei ein einstufiges Logikelement (31) mit einer NOT-Funktion zur Negierung des ersten maskierten Zwischenergebnisses vorgesehen ist, um ein maskiertes Resultat (REMa) zu erhalten, und - dass die digitale Schaltung (1) ein weiteres einstufiges Logikelement (32) mit einer invertierten Majoritätsfunktion IMAJ zur Verknüpfung des ersten maskierten Operanden in invertierter Form (OPI MA), des zweiten maskierten Operanden in invertierter Form (OP2 Ma) und des Maskierungsparameters (MA) aufweist, um ein zweites maskiertes Zwischenergebnis zu erhalten, wobei ein einstufiges Logikelement (33) mit einer NOT-Funktion zur Negierung des zweiten maskierten Zwischenergebnisses vorgesehen ist, um das maskierte Resultat in invertierter Form (RE Ma) zu erhalten, - oder dass die digitale Schaltung (1) zur Durchführung von maskierten NOR-Operationen ein erstes einstufiges Logikelement (40) mit einer invertierten Majoritätsfunktion IMAJ zur Verknüpfung des ersten maskierten Operanden (OP1Ma). des zweiten maskierten Operanden (OP2Ma) und des Maskierungsparameters in invertierter Form (MA) aufweist, um ein erstes maskiertes Zwischenergebnis zu erhalten, wobei ein einstufiges Logikelement (41) mit einer NOT-Funktion zur Negierung des ersten maskierten Zwischenergebnisses vorgesehen ist, um das maskierte Resultat in invertierter Form (RE Ma) zu erhalten, und - dass die digitale Schaltung (1) ein weiteres einstufiges Logikelement (42) mit einer invertierten Majoritätsfunktion IMAJ zur Verknüpfung des ersten maskierten Operanden in invertierter Form (OPI MA), des zweiten maskierten Operanden in invertierter Form (OP2 MA) und des Maskierungsparameters (MA) aufweist, um ein zweites maskiertes Zwischenergebnis zu erhalten, wobei ein einstufiges Logikelement (43) mit einer NOT-Funktion zur Negierung des zweiten maskierten Zwischenergebnisses vorgesehen ist, um ein maskiertes Resultat (REmä) zu erhalten.
2. Digitale Schaltung nach Anspruch 1, dadurch gekennzeichnet, dass in jeder Vorladephase alle an den Ein- und Ausgängen der digitalen Schaltung (3, 4, 5, 6, 7, 8) auftretenden logischen Werte auf ein und denselben vorgegebenen Vorladewert gesetzt sind.
3. Digitale Schaltung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass als Maskierungsverfahren für jeden in der digitalen Schaltung (1) auftretenden logischen Wert eine, insbesondere bitweise erfolgende, logische Verknüpfung, vorzugsweise XOR- oder XNOR-Verknüpfung, zwischen dem jeweiligen unmaskierten logischen Wert und einem oder mehreren Maskierungsparameter(n) vorgesehen ist.
4. Digitale Schaltung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die digitale Schaltung (1) einen einzigen Eingang für einen Maskierungsparameter (5) und 18 AT 010 303 U1 einen einzigen Eingang für den Maskierungsparameter in invertierter Form (6) (M=1) aufweist.
5. Digitale Schaltung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die digitale Schaltung (1) einen einzigen Ausgang für ein maskiertes Resultat (7) und einen einzigen Ausgang für das maskierte Resultat in invertierter Form (8) (L=1) aufweist.
6. Digitale Schaltung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die digitale Schaltung (1) zwei Eingänge für zwei maskierte Operanden (3) und zwei Eingänge für die zwei maskierten Operanden in invertierter Form (4) (N=2) aufweist.
7. Digitale Schaltung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass jedes einstufige Logikelement (2) gemäß seiner jeweiligen logischen Funktion in die Vorladephase versetzt ist, wenn alle Eingänge dieses einstufigen Logikelements auf denselben vorgegebenen Vorladewert gesetzt sind und dass jedes einstufige Logikelement ansonsten, insbesondere bei Anliegen anderer Werte als der Vorladewerte, in die Auswertephase versetzt ist.
8. Digitale Schaltung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass jedes einstufige Logikelemente (2) gemäß seiner jeweiligen logischen Funktion mit einem der digitalen Schaltung zusätzlich zugeführten Steuersignal entweder in die Vorladephase oder in die Auswertephase versetzbar ist.
9. Digitale Schaltung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die zwischen den einstufigen Logikelementen (2) geführten Leitungen und die an die digitale Schaltung (1) direkt angeschlossenen Leitungen (3, 4, 5, 6, 7, 8) bezüglich ihrer elektrischen Eigenschaften unbalanciert sind.
10. Digitale Schaltung nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass die einzelnen einstufigen Logikelemente (2) der digitalen Schaltung (1) in CMOS Technik erstellt sind.
11. Digitale Schaltung nach einem der Ansprüche 1 bis 10, bei der die vorgegebene Rechenoperation eine insbesondere logische XOR-Operation ist, dadurch gekennzeichnet, - dass zur Erstellung dieser Schaltung eine erste, maskierte NAND-Operationen durchführende, digitale Schaltung (50) zur Verknüpfung des ersten maskierten Operanden (OP fma>i des ersten maskierten Operanden in invertierter Form (OPI MA), des zweiten maskierten Operanden (OP2Ma), des zweiten maskierten Operanden in invertierter Form (OP2 Ma ), des Maskierungsparameters (MA) und des Maskierungsparameters in invertierter Form (MA) vorgesehen ist, um ein erstes maskiertes Zwischenergebnis und das erste maskierte Zwischenergebnis in invertierter Form zu erhalten, - dass eine zweite, maskierte NAND-Operationen durchführende, digitale Schaltung (51) zur Verknüpfung des ersten maskierten Operanden (OPfMA), des ersten maskierten Operanden in invertierter Form (OP 1 MA), des zweiten maskierten Operanden (OP2Ma), des zweiten maskierten Operanden in invertierter Form (OP2 MA) ,_des Maskierungsparameters (MA) und des Maskierungsparameters in invertierter Form (MA) vorgesehen ist, um ein zweites maskiertes Zwischenergebnis und das zweite maskierte Zwischenergebnis in invertierter Form zu erhalten und - dass eine weitere, maskierte NAND-Operationen durchführende, digitale Schaltung (52) zur Verknüpfung des ersten maskierten Zwischenergebnisses, des ersten maskierten Zwischenergebnisses in invertierter Form, des zweiten maskierten Zwischenergebnisses, des zweiten maskierten Zwischenergebnisses in invertierter Form, des Maskierungsparameters (MA) und des Maskierungsparameters in invertierter Form (MA) vorgesehen ist, um ein maskiertes Resultat (REMa) und das maskierte Resultat in invertierter Form (RE ma) zu erhalten. 19 AT010 303 U1
12. Digitale Schaltung, insbesondere nach einem der Ansprüche 1 bis 10, bei der die vorgegebene Rechenoperation eine logische XNOR-Operation ist, dadurch gekennzeichnet, - dass zur Erstellung dieser Schaltung eine erste, maskierte NAND-Operationen durchführende, digitale Schaltung (60) zur Verknüpfung des ersten maskierten Operanden (OP 1m), des ersten maskierten Operanden in invertierter Form (OP 1 MA) , des zweiten maskierten Operanden (OP2MA), des zweiten maskierten Operanden in invertierter Form (OP2 MA), des Maskierungsparameters (MA) und des Maskierungsparameters in invertierter Form (MA) vorgesehen ist, um ein erstes maskiertes Zwischenergebnis und das erste maskierte Zwischenergebnis in invertierter Form zu erhalten, - dass eine zweite, maskierte NAND-Operationen durchführende, digitale Schaltung (61) zur Verknüpfung des ersten maskierten Operanden (OPiMA), des ersten maskierten Operanden in invertierter Form (OPI MA), des zweiten maskierten Operanden (OP2mä), des zweiten maskierten Operanden in invertierter Form (ΟΡ2 MA), des Maskierungsparameters (MA) und des Maskierungsparameters in invertierter Form (MA) vorgesehen ist, um ein zweites maskiertes Zwischenergebnis und das zweite maskierte Zwischenergebnis in invertierter Form zu erhalten und - dass eine weitere, maskierte NAND-Operationen durchführende, digitale Schaltung (62) zur Verknüpfung des ersten maskierten Zwischenergebnisses, des ersten maskierten Zwischenergebnisses in invertierter Form, des zweiten maskierten Zwischenergebnisses, des zweiten maskierten Zwischenergebnisses in invertierter Form, des Maskierungsparameters (MA) und des Maskierungsparameters in invertierter Form (MA) vorgesehen ist, um ein maskiertes Resultat (REMA) und das maskierte Resultat in invertierter Form (RE MA) zu erhalten.
13. Digitale Schaltung, insbesondere nach einem der Ansprüche 1 bis 10, bei der die vorgegebene Rechenoperation ein Wechseln der Maske eines Operanden ist, dadurch gekennzeichnet, - dass zur Erstellung dieser Schaltung ein einstufiges Logikelement (70) mit einer NOR-Funktion und ein nachgeschaltetes einstufiges Logikelement (71) mit einer NOT-Funktion zur Verknüpfung des mit der Maske MAI maskierten Operanden (OPMAi) und des Maskierungsparameters in invertierter Form (MA7©MA2) vorgesehen ist, um ein erstes maskiertes Zwischenergebnis zu erhalten, - dass ein einstufiges Logikelement (72) mit einer NAND-Funktion und ein nachgeschaltetes einstufiges Logikelement (73) mit einer NOT-Funktion zur Verknüpfung des mit der Maske MAI maskierten Operanden in invertierter Form(OP7 MAf) und des Maskierungsparameters (MA7©MA2) vorgesehen ist, um ein zweites maskiertes Zwischenergebnis zu erhalten, - dass ein einstufiges Logikelement (74) mit einer NAND-Funktion und ein nachgeschaltetes einstufiges Logikelement (75) mit einer NOT-Funktion zur Verknüpfung des mit der Maske MA7 maskierten Operanden in invertierter Form (OP1 MAi) und des Maskierungsparameters in invertierter Form (MA70MA2) vorgesehen ist, um ein drittes maskiertes Zwischenergebnis zu erhalten, - dass ein einstufiges Logikelement (76) mit einer NOR-Funktion und ein nachgeschaltetes einstufiges Logikelement (77) mit einer NOT-Funktion zur Verknüpfung des mit der Maske MAf maskierten Operanden (OPMA7) und des Maskierungsparameters (MA70MA2) vorgesehen ist, um ein viertes maskiertes Zwischenergebnis zu erhalten und - dass eine digitale, maskierte NAND-Operationen durchführende Schaltung (78) zur Verknüpfung des ersten maskierten Zwischenergebnisses, des zweiten maskierten Zwischenergebnisses, des dritten maskierten Zwischenergebnisses, des vierten maskierten Zwischenergebnisses, des Maskierungsparameters (MA7©MA2) und des Maskierungsparameters in invertierter Form (MA70MA2) vorgesehen ist, um einen mit der Maske MA2 maskierten Operanden (OPMA2) und den mit der Maske MA2 maskierten Operanden in invertierter Form (OP MA2) zu erhalten.
14. Digitale Schaltung nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, dass 20 AT 010 303 U1 beim Maskieren eine Verknüpfung der Datenwerte erfolgt, derart, dass die maskierten Datenwerte statistisch unabhängig vom ursprünglichen Datenwert sind bzw. dass die Ausgangswerte aller einstufigen Logikelemente, die in der maskierten Schaltung auftreten, statistisch unabhängig von den unmaskierten Eingangswerten sind. Hiezu 5 Blatt Zeichnungen
AT0805108U 2005-07-26 2008-07-01 Verfahren und schaltung zur durchführung von rechenoperationen AT10303U1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AT0805108U AT10303U1 (de) 2005-07-26 2008-07-01 Verfahren und schaltung zur durchführung von rechenoperationen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AT0125505A AT502230A2 (de) 2005-07-26 2005-07-26 Verfahren und schaltung zur durchführung von rechenoperationen
AT0805108U AT10303U1 (de) 2005-07-26 2008-07-01 Verfahren und schaltung zur durchführung von rechenoperationen

Publications (1)

Publication Number Publication Date
AT10303U1 true AT10303U1 (de) 2008-12-15

Family

ID=37667276

Family Applications (2)

Application Number Title Priority Date Filing Date
AT0125505A AT502230A2 (de) 2005-07-26 2005-07-26 Verfahren und schaltung zur durchführung von rechenoperationen
AT0805108U AT10303U1 (de) 2005-07-26 2008-07-01 Verfahren und schaltung zur durchführung von rechenoperationen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
AT0125505A AT502230A2 (de) 2005-07-26 2005-07-26 Verfahren und schaltung zur durchführung von rechenoperationen

Country Status (3)

Country Link
AT (2) AT502230A2 (de)
DE (1) DE112006002032A5 (de)
WO (1) WO2007012102A2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5458611B2 (ja) * 2009-03-13 2014-04-02 ソニー株式会社 暗号処理装置
US20230016420A1 (en) * 2019-12-10 2023-01-19 Cryptography Research, Inc. Share domain arrangements for masked hardware implementations

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
AT502230A2 (de) 2007-02-15
WO2007012102A3 (de) 2007-05-10
WO2007012102A2 (de) 2007-02-01
DE112006002032A5 (de) 2008-07-03

Similar Documents

Publication Publication Date Title
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
DE102006009239B4 (de) Vorrichtung und Verfahren zum Berechnen einer Darstellung eines Ergebnis-Operanden
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
EP1472587A2 (de) Rechenwerk und verfahren zum ausfuehren einer arithmetischen operation mit verschluesselten operanden
DE112005001906B4 (de) Mehrbit-Addierer und Verfahren zum Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette
DE102007009526A1 (de) Vorrichtung zum Speichern eines binären Zustandes
DE102016120009A1 (de) Digitalschaltung und verfahren zum herstellen einer digitalschaltung
EP1540460B1 (de) Vorrichtung und verfahren zum umsetzen und addiererschaltung
DE60113721T2 (de) Logischer schaltkreis mit variablen internen polaritäten
EP1664979B1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE102012111414B4 (de) Master-Slave-Speicherschaltung
DE1474037A1 (de) Paritaets-Pruefeinrichtung fuer Datenverarbeitende Maschinen
AT10303U1 (de) Verfahren und schaltung zur durchführung von rechenoperationen
DE102004061312B4 (de) Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
DE102005037357B3 (de) Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden
DE10344647B3 (de) Schaltungsanordnung und Verfahren zur Verarbeitung eines Dual-Rail-Signals
DE10227618B4 (de) Logikschaltung
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
DE10217375B4 (de) Schaltungsanordnung und Verfahren zur Erzeugung eines Dual-Rail-Signals
DE102005011374B3 (de) Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren
DE102005037355B3 (de) Schaltung und Verfahren zum Berechnen einer logischen Verknüpfung zweier Eingangsoperanden
DE102004020576A1 (de) Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente
EP0433315A1 (de) Schaltungsanordnung zur addition oder subtraktion von im bcd-code oder dual-code codierten operanden
DE102015116049B3 (de) Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
DE19717110C2 (de) Schaltungsanordnung zum Erzeugen einer Pseudo-Zufallsfolge

Legal Events

Date Code Title Description
MM01 Lapse because of not paying annual fees

Effective date: 20120731