DE10222212A1 - Ausspähungsgeschützte modulare Inversion - Google Patents
Ausspähungsgeschützte modulare InversionInfo
- Publication number
- DE10222212A1 DE10222212A1 DE10222212A DE10222212A DE10222212A1 DE 10222212 A1 DE10222212 A1 DE 10222212A1 DE 10222212 A DE10222212 A DE 10222212A DE 10222212 A DE10222212 A DE 10222212A DE 10222212 A1 DE10222212 A1 DE 10222212A1
- Authority
- DE
- Germany
- Prior art keywords
- auxiliary
- module
- value
- inverse
- parameter
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/721—Modular inversion, reciprocal or quotient calculation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7238—Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7247—Modulo masking, e.g. A**e mod (n*r)
Abstract
Bei Verfahren zum ausspähungsgeschützten Bestimmen des modularen Inversen b eines Wertes a zum Modul n für eine kryptographische Anwendung werden ein Hilfswert beta und ein Hilfsmodul delta zumindest in Abhängigkeit von dem Wert a, dem Modul n sowie mindestens einem Maskierungsparameter r bestimmt, ein Hilfsinverses beta·'· wird als modulares Inverses des Hilfswertes beta zum Hilfsmodul delta bestimmt, und das modulare Inverse b wird zumindest in Abhängigkeit von dem Hilfsinversen beta·'·, dem mindestens einen Maskierungsparameter r und dem Hilfswert beta und/oder dem Hilfsmodul delta bestimmt. Ein Computerprogrammprodukt und ein tragbarer Datenträger weisen entsprechende Merkmale auf. Die Erfindung stellt ein ausspähungsgesichertes Verfahren zur modularen Inversion bereit, das sich für sicherheitskritische Anwendungen wie z. B. kryptographische Berechnungen auf einem tragbaren Datenträger eignet.
Description
- Die Erfindung betrifft allgemein das technische Gebiet der Kryptographie und spezieller eine für kryptographische Zwecke vorgesehene Technik zur modularen Inversion. Insbesondere ist die Erfindung zum Einsatz in tragbaren Datenträgern vorgesehen, die z. B. als Chipkarten in unterschiedlichen Bauformen oder als Chipmodule ausgestaltet sein können.
- Auf dem Gebiet der Kryptographie werden Verfahren zur modularen Inversion beispielsweise bei der Erzeugung eines Schlüsselpaars für das in dem US-Patent 4,405,829 beschriebene RSA-Codier- oder Signaturverfahren eingesetzt. Das RSA-Verfahren verwendet einen öffentlichen Schlüssel (e, m) und einen geheimen privaten Schlüssel d, wobei der Wert m das Produkt zweier großer Primzahlen p und q ist. Zur Schlüsselpaarberechnung werden zunächst die Werte p, q und e festgelegt. Der private Schlüssel d wird dann als das modulare Inverse von e zum Modul (p - 1)(q - 1) berechnet. Dies heißt, daß die Zahl d die Gleichung 1 = ed mod (p - 1)(q - 1) erfüllt. Bei der Berechnung müssen der private Schlüssel d und der Modul (p - 1)(q - 1) geheim bleiben.
- Allgemein ist zu zwei gegebenen ganzen Zahlen a und n das modulare Inverse von a zum Modul n definiert als diejenige Zahl b, für die 0 ≤ b < n und 1 = ab mod n gilt. Eine solche Zahl b existiert, wenn a und n teilerfremd sind. Algorithmen zur Berechnung des modularen Inversen eines vorgegebenen Wertes a zu einem vorgegebenen Modul n sind als solche bekannt. So ist beispielsweise der erweiterte Euklidische Algorithmus auf den Seiten 325 bis 327 des Buches von Donald E. Knuth, "The Art of Computer Programming", Band 2, 2. Auflage, Addison-Wesley, 1981, beschrieben. Eine insbesondere im Zusammenhang mit Binärzahlen vorteilhafte Abwandlung des erweiterten Euklidischen Algorithmus ist das Verfahren von Stein, das auf den Seiten 321 bis 324 des genannten Buches in Verbindung mit Aufgabe 35 auf Seite 339 und der Lösung dazu auf Seite 606 beschrieben ist.
- Bei beiden genannten Verfahren besteht jedoch das Problem, daß bei einer direkten Implementierung des Algorithmus als Programm der abgearbeitete Programmcode und damit auch physische Parameter wie Laufzeit oder Stromverbrauch hochgradig von den Eingabedaten abhängen. Es können daher durch Analyse der Stromverbrauchskurve, der Programmlaufzeit oder anderer Meßwerte Rückschlüsse auf die Eingabewerte a und n gezogen werden. Beispiele für diese und andere Angriffsmöglichkeiten im Zusammenhang mit tragbaren Datenträgern sind in Abschnitt 8.2.4.1 (Seiten 482 bis 499) des Buches "Handbuch der Chipkarten" von W. Rankl und W. Effing, 3. Auflage, Hanser, 1999 beschrieben. Es ist zu vermuten, daß entsprechende Angriffsmöglichkeiten auch bei anderen als den oben beispielhaft beschriebenen Verfahren zur modularen Inversion möglich sind.
- Wenn mindestens einer der Eingabewerte a oder n geheimgehalten werden muß, so stellen Angriffsmöglichkeiten wie die oben genannten ein Sicherheitsrisiko dar. So besteht bei dem bereits beschriebenen Beispiel der Schlüsselpaarerzeugung für das RSA-Verfahren die Gefahr, daß ein Angreifer bei der Berechnung des modularen Inversen von e zum Modul (p - 1)(q - 1) entweder der geheimzuhaltende Modul (p - 1)(q - 1) oder unmittelbar das Berechnungsergebnis, nämlich den privaten Schlüssel d, ausspäht.
- Besonders kritisch sind die genannten Sicherheitsprobleme dann, wenn das Verfahren zur modularen Inversion von einem Prozessor eines tragbaren Datenträgers, beispielsweise einer Chipkarte (smart card) oder eines Chipmoduls, ausgeführt wird. Ein erster Grund dafür ist, daß solche tragbaren Datenträger oft für sicherheitskritische Anwendungen verwendet werden, z. B. im Zusammenhang mit Finanztransaktionen, der Zugangskontrolle oder der Signatur von rechtlich bindenden Dokumenten. Zweitens befinden sich tragbare Datenträger, während das Verfahren ausgeführt wird, typischerweise im Besitz des Angreifers, so daß dieser alle Zugriffs- und Analysemöglichkeiten zur Ausspähung der geheimzuhaltenden Werte hat.
- Die Erfindung hat daher die Aufgabe, ein ausspähungsgesichertes Verfahren zur modularen Inversion bereitzustellen, das sich für sicherheitskritische Anwendungen wie z. B. kryptographische Berechnungen auf einem tragbaren Datenträger eignet. Insbesondere soll das Verfahren eine möglichst geringe Anfälligkeit für Angriffe durch Laufzeitanalyse oder Stromverbrauchsanalyse aufweisen.
- Erfindungsgemäß wird diese Aufgabe ganz oder zum Teil gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 1, ein Computerprogrammprodukt gemäß Anspruch 12 und einen tragbaren Datenträger gemäß Anspruch 13. Die abhängigen Ansprüche definieren bevorzugte Ausgestaltungen der Erfindung.
- Die Erfindung geht von der Grundidee aus, die Eingabedaten (nämlich den Wert a und der Modul n) nicht unmittelbar einem Verfahren zur modularen Inversion zuzuführen, sondern sie zunächst in geeigneter Weise in einen Hilfswert β und ein Hilfsmodul δ zu transformieren. Mindestens ein die Transformation beeinflussender Maskierungsparameter r wird dabei z. B. zufällig oder quasi-zufällig oder auf andere geeignete Weise so gewählt, daß sich selbst bei Kenntnis des Hilfswertes β und/ oder des Hilfsmoduls δ keine hinreichenden Informationen über die geheimzuhaltenden Eingabedaten bzw. den geheimzuhaltenden Teil der Eingabedaten ableiten lassen.
- Aus dem Hilfswert β und dem Hilfsmodul δ wird dann nach einem an sich bekannten Verfahren zur modularen Inversion ein Hilfsinverses β' bestimmt. Auch wenn dieses Inversionsverfahren möglicherweise einer der eingangs genannten Angriffsmöglichkeiten zugänglich ist, bringt eine Ausspähung des Hilfswertes β und/ oder des Hilfsmoduls δ und/ oder des Hilfsinversen β' dem Angreifer keinen Gewinn, weil diese die Ausgangsdaten zumindest zum Teil in maskierter Form, nämlich in Abhängigkeit von mindestens einen Maskierungsparameter r, enthalten.
- Schließlich wird die anfängliche Transformation im Ergebnis rückgängig gemacht, indem das modulare Inverse b in Abhängigkeit von dem Hilfsinversen β' berechnet wird. In diese Rück-Transformation fließen auch der mindestens eine Maskierungsparameter r und mindestens einer der Werte β und δ sowie gegebenenfalls weitere Werte ein.
- Durch die erfindungsgemäß vorgesehene Hin- und Rücktransformation werden daher die geheimzuhaltenden Werte vor dem kritischen Berechnungsabschnitt verschleiert oder maskiert. Diese Verschleierung oder Maskierung wird nach der ausspähungsgefährdeten Berechnung des modularen Inversen wieder rückgängig gemacht, um das gewünschte Ergebnis zu erhalten. Dabei sind die der Ver- und Entschleierung dienenden Berechnungen gegen die hier zu berücksichtigenden Angriffsmöglichkeiten abgesichert. Das Gesamtverfahren ist damit ausspähungsgesichert und auch für kritische Anwendungen geeignet. Es wird ein gewisser Mehraufwand für die der Ver- und Entschleierung dienenden Berechnungen benötigt, der jedoch insgesamt nicht besonders ins Gewicht fällt.
- In bevorzugten Ausgestaltungen werden sowohl der Hilfswert β als auch der Hilfsmodul δ in dem Sinne maskiert, daß sie sich von dem zugrundeliegenden Wert a beziehungsweise dem Modul n unterscheiden. In anderen Ausführungsformen der Erfindung ist dagegen vorgesehen, die Maskierung nur hinsichtlich eines dieser Werte durchzuführen. Es ist dann entweder der Hilfswert β identisch mit dem Wert a oder der Hilfsmodul δ identisch mit dem Modul n. Diese Ausgestaltungen sind insbesondere dann einsetzbar, wenn einer der Werte a und n nicht geheimgehalten zu werden braucht.
- Der Maskierungsparameter r wird in bevorzugten Ausgestaltungen bei jeder einzelnen Ausführung des Verfahrens erneut zufällig gewählt, indem beispielsweise ein geeigneter Zufallszahlenalgorithmus aufgerufen wird. In Ausführungsalternativen kann dagegen der Maskierungsparameter r für mehrere Berechnungsvorgänge konstant bleiben oder durch einen einfachen Algorithmus, der keine strengen Anforderungen hinsichtlich der Zufallsverteilung erfüllt, fortgeschaltet werden. Auch hierdurch kann schon eine hinreichende Ausspähungssicherheit erzielt werden. Vorzugsweise weist der Maskierungsparameter r ungefähr dieselbe Größenordnung wie der Modul n auf. Darunter kann z. B. zu verstehen sein, daß sich die Werte r und n in ihrer Länge als Binär- oder Dezimalzahl höchstens um 20 Prozent oder höchstens um die Hälfte unterscheiden.
- Vorzugsweise ist vorgesehen, den Wert a und/ oder der Modul n durch Multiplikation mit dem Maskierungsparameter r zu verfälschen, wobei der Hilfswert β und/oder der Hilfsmodul δ in Abhängigkeit von dem Produkt berechnet werden.
- In bevorzugten Ausgestaltungen ist neben dem Maskierungsparameter r noch mindestens ein Hilfsparameter s vorgesehen, der ebenfalls zur Berechnung der maskierten Werte β und/ oder δ herangezogen wird, der aber bei der späteren Bestimmung des modularen Inversen nicht mehr unmittelbar verwertet wird. Mittelbar fließt der Hilfsparameter s bei dieser Berechnung jedoch ein, weil er in der Regel zumindest einen der Werte β, β' und δ beeinflußt. Die oben erwähnten bevorzugten Eigenschaften des Maskierungsparameters r gelten in bevorzugten Ausgestaltungen entsprechend auch für den Hilfsparameter s.
- Bevorzugt ergeben sich der Hilfswert β und der Hilfsmodul δ jeweils als Differenz zwischen einem Vielfachen des Wertes a und einem Vielfachen des Moduls n. Insbesondere kann vorgesehen sein, den Hilfswert β und den Hilfsmodul δ gemäß den Gleichungen ra = αn + β und sn = γa + δ oder gemäß den Gleichungen ra = αn + δ und sn = γa + β zu bestimmen. Wenn zusätzlich die Ungleichung 0 ≤ β < n oder 0 ≤ δ < n beziehungsweise die Ungleichung 0 ≤ δ < a oder 0 ≤ β < a erfüllt ist, entspricht dies je einer Berechnung einer Division mit Rest.
- Das erfindungsgemäße Computerprogrammprodukt weist Programmbefehle auf, um das erfindungsgemäße Verfahren zu implementieren. Ein derartiges Computerprogrammprodukt kann beispielsweise ein Halbleiterspeicher oder eine Diskette oder eine CD-ROM sein, auf denen ein erfindungsgemäßes Berechnungsprogramm gespeichert ist. Insbesondere kann ein derartiges Computerprogrammprodukt zur Verwendung bei der Herstellung von Chipkarten vorgesehen sein.
- In bevorzugten Ausgestaltungen sind das Computerprogrammprodukt und/ oder der tragbare Datenträger mit Merkmalen weitergebildet, die den oben beschriebenen und/oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.
- Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden genauen Beschreibung eines Ausführungsbeispiels und mehrerer Ausführungsalternativen hervor. Es wird auf die schematischen Zeichnungen verwiesen, in denen die (einzige) Fig. 1 ein Flußdiagramm des Verfahrensablaufs bei einem Ausführungsbeispiel der Erfindung zeigt.
- Das in Fig. 1 schematisch dargestellte Verfahren ist dazu vorgesehen, von einem Prozessor eines tragbaren Datenträgers, insbesondere einer Chipkarte (smart card) oder eines Chipmoduls, ausgeführt zu werden. Das Verfahren ist dazu in Form von Programmbefehlen für diesen Prozessor implementiert, die in einem ROM oder EEPROM des Datenträgers gespeichert sind. Im vorliegenden Ausführungsbeispiel wird das Verfahren bei der Schlüsselpaarbestimmung für ein RSA-Codierverfahren oder ein RSA-Signaturverfahren verwendet. In Ausführungsvarianten der Erfindung wird dagegen das Verfahren für andere kryptographische Zwecke verwendet.
- Das Verfahren geht von einem vorgegebenen Wert a und einem Modul n aus und berechnet daraus das modulare Inverse b, also denjenigen Wert 0 ≤ b < n, für den 1 = ab mod n gilt. In einem ersten Schritt 10 werden dazu der Wert α und der Modul n transformiert, um einen Hilfswert β und ein Hilfsmodul δ zu bestimmen. Im vorliegenden Ausführungsbeispiel weist der Schritt 10 vier Teilschritte 12, 14, 16, 18 auf, die in Ausführungsalternativen auch in anderer Reihenfolge oder ganz oder teilweise ineinander verzahnt ausgeführt werden können.
- Im ersten Teilschritt 12 wird ein zufälliger Maskierungsparameter r bestimmt, der ungefähr dieselbe Größenordnung wie der Wert n hat. Es wird dazu ein an sich bekannter, durch Software implementierter Zufallszahlen- Generator eingesetzt. Das Produkt des Maskierungsparameters r und des Wertes a wird in Teilschritt 14 ganzzahlig mit Rest durch den Modul n geteilt. Der ganzzahlige Quotient a wird nicht weiter benötigt, während der Rest β als Hilfswert für das weitere Verfahren dient.
- Die Teilschritte 16 und 18 entsprechen den gerade beschriebenen Teilschritten 12 und 14. In Teilschritt 16 wird ein zufälliger Hilfsparameter s bestimmt, und in Teilschritt 18 wird das Produkt des Hilfsparameters s mit dem Modul n durch den Wert a dividiert. Sowohl der ganzzahlige Quotient γ als auch der Rest δ werden in den folgenden Schritten benötigt; der Rest δ wird hierbei auch als Hilfsmodul 8 bezeichnet.
- In Schritt 20 wird nach einem an sich bekannten Verfahren zur modularen Inversion, beispielsweise nach dem erweiterten Euklidischen Algorithmus oder dem Verfahren von Stein, ein Hilfsinverses β' des Hilfswertes β zum Hilfsmodul 8 berechnet. Mit anderen Worten hat der Wert β' die Eigenschaft 1 = ββ'mod δ.
- Es kann vorkommen, daß die Berechnung des Hilfsinversen β' fehlschlägt, weil die Werte β und 8 nicht teilerfremd sind und daher kein Inverses β' von β existiert. Wenn dieser Fall in Schritt 20 auftritt, wird ein Rücksprung 22 an den Anfang von Schritt 10 ausgelöst. Es werden dann neue Zufallswerte r und s gewählt. Die Wahrscheinlichkeit, daß ein derartiger Rücksprung erfolgt, beträgt ungefähr 40%, falls a und n teilerfremd sind. Es ist daher unwahrscheinlich, daß übermäßig viele Rücksprünge 22 ausgeführt werden müssen. So beträgt beispielsweise die Wahrscheinlichkeit, daß mehr als vier neue Paare von Zufallszahlen r und s berechnet werden müssen, nur ungefähr ein Prozent.
- Falls a und n nicht teilerfremd sind, wird der Rücksprung 22 stets ausgeführt, so daß das in Fig. 1 gezeigte Verfahren nicht terminieren würde. Soll dieses Verfahren daher in einem Kontext eingesetzt werden, bei dem die Teilerfremdheit von a und n nicht von vorneherein feststeht, so ist die Verwendung eines Rücksprungzählers vorgesehen. Der Rücksprungzähler überwacht die Anzahl von Rücksprüngen 22, die bei einem Verfahrensdurchlauf auftreten. Bei Überschreitung einer vorgegebenen Maximalzahl von Rücksprüngen 22 wird das Verfahren von Fig. 1 abgebrochen. Eine weitere Voraussetzung für den korrekten Verfahrensablauf ist der Ausschluß der (praktisch uninteressanten) Trivialfälle a = 1 und n = 1, da in diesen Fällen das Verfahren immer fehlschlägt.
- Nach der Bestimmung des Hilfsinversen β' in Schritt 20 wird in Schritt 24 das Inverse b berechnet, indem zunächst eine Berechnung eines Zwischenwerts δ' = (ββ' - 1)/δ und dann die abschließende Berechnung b = β'r + δ'γ mod n durchgeführt wird. Der Wert b ist das gesuchte Inverse, das nun der kryptographischen Anwendung zur Verfügung steht.
- Die Schritte 10 und 24 lassen sich gegen die eingangs beschriebenen Angriffe durch Laufzeitanalyse und Stromverbrauchsanalyse gut absichern, weil für die dort vorgenommenen Berechnungen Algorithmen zur Verfügung stehen, die wenig Angriffsmöglichkeiten bieten. Die Inversenberechnung in Schritt 20 ist zwar ausspähungsgefährdet, aber ein Angreifer könnte durch Analyse dieses Schritts allenfalls Kenntnis über den Hilfswert β und/ oder der Hilfsmodul δ erhalten. Diese Werte sind in Schritt 10 gegenüber den geheimzuhaltenden Eingabewerten a und n maskiert worden, da der zufällige Maskierungsparameter r und der zufällige Hilfsparameter s in die Berechnung von β und δ eingeflossen sind. Eine mögliche Kenntnis der Werte β und δ läßt daher für einen Angreifer keine sicherheitsschädlichen Rückschlüsse auf die Eingangswerte a und n zu.
- In alternativen Ausgestaltungen des Verfahrens von Fig. 1 sind in den Teilschritten 14 und 18 die Rollen der Werte β und δ vertauscht. In diesem Fall wird in Schritt 24 statt der Gleichung b = β'r + δ'γ mod n die Gleichung b = -(δ'r + β'γ) mod n verwendet.
- In weiteren Ausführungsalternativen wird in Teilschritt 14 und/oder Teilschritt 16 nicht eine Division mit Rest durchgeführt, sondern es werden die Werte α und/oder γ zufällig oder nach einem anderen geeigneten Verfahren gewählt. In diesem Fall ergeben sich in Teilschritt 14 der Hilfswert β durch β = ra - αn beziehungsweise in Teilschritt 18 der Hilfsmodul δ durch δ = sn - γa.
- Schließlich sind auch Ausgestaltungen der Erfindung vorgesehen, bei denen entweder in Teilschritt 12 der Maskierungsparameter r = 1 und in Teilschritt 14 der Wert α = 0 gesetzt wird (es gilt dann β = a), oder bei denen in Teilschritt 16 δer Hilfsparameter s = 1 und in Teilschritt 18 der Wert γ = 0 gesetzt wird (es gilt dann δ = n). Weitere Ausführungsalternativen können insbesondere durch Kombinationen der bisher beschriebenen Möglichkeiten erhalten werden.
Claims (13)
1. Verfahren zum ausspähungsgeschützten Bestimmen des
modularen Inversen b eines Wertes a zum Modul n für eine
kryptographische Anwendung, mit den Schritten:
a) Bestimmen (10) eines Hilfswertes β und eines dazu teilerfremden
Hilfsmoduls δ zumindest in Abhängigkeit von dem Wert a, dem
Modul n sowie mindestens einem Maskierungsparameter r derart,
daß sich der Hilfswert β von dem Wert a und/ oder der
Hilfsmodul δ von dem Modul n unterscheiden/unterscheidet,
b) Bestimmen (20) eines Hilfsinversen β' als modulares Inverses des
Hilfswertes β zum Hilfsmodul δ, und
c) Bestimmen (24) des modularen Inversen b zumindest in
Abhängigkeit von den folgenden Werten:
- dem Hilfsinversen β',
- dem mindestens einen Maskierungsparameter r, und
- dem Hilfswert β und/ oder dem Hilfsmodul δ.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der
mindestens eine Maskierungsparameter r zufällig gewählt wird,
und/ oder daß der mindestens eine Maskierungsparameter r die
Größenordnung des Moduls n aufweist.
3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch
gekennzeichnet, daß der Wert a oder der Modul n mit dem
Maskierungsparameter r multipliziert wird, und daß das dadurch erhaltene
Produkt in die Berechnung des Hilfswertes β und/ oder des
Hilfsmoduls δ einfließt.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch
gekennzeichnet, daß in Schritt a) die Bestimmung des Hilfswertes β und
des Hilfsmoduls δ ferner in Abhängigkeit von mindestens einem
Hilfsparameter s erfolgt, der in Schritt c) allenfalls mittelbar in die
Bestimmung des Inversen b einfließt.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß der
mindestens eine Hilfsparameter s zufällig gewählt wird,
und/oder daß der mindestens eine Hilfsparameter s die
Größenordnung des Wertes a aufweist.
6. Verfahren nach Anspruch 4 oder Anspruch 5, dadurch
gekennzeichnet, daß in Schritt a) der Hilfswert β und der Hilfsmodul δ
derart bestimmt werden, daß die Gleichungen ra = αn + β und
sn = γa + δ für vorbestimmte oder in Schritt a) berechnete Werte α
und γ erfüllt sind.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß das
Inverse b durch Auswerten der Gleichung b = β'r + δ'γ mod n mit
δ' = (ββ' - 1)/δ bestimmt wird.
8. Verfahren nach Anspruch 4 oder Anspruch 5, dadurch
gekennzeichnet, daß in Schritt a) der Hilfswert β und der Hilfsmodul δ
derart bestimmt werden, daß die Gleichungen ra = αn + δ und
sn = γa + β für vorbestimmte oder in Schritt a) berechnete Werte α
und γ erfüllt sind.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß das
Inverse b durch Auswerten der Gleichung b = -(δ'r + β'γ) mod n
mit δ' = (ββ' - 1)/δ bestimmt wird.
10. Verfahren nach einem der Ansprüche 6 bis 9, dadurch
gekennzeichnet, daß der Hilfswert β und/oder der Hilfsmodul 8 durch je
eine Division mit Rest bestimmt wird/werden, so daß zumindest
eine der Ungleichungen 0 ≤ β < n und 0 ≤ δ < a erfüllt ist.
11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch
gekennzeichnet, daß die kryptographische Anwendung die
Schlüsselpaarbestimmung bei einem RSA-Codierverfahren oder einem
RSA-Signaturverfahren ist.
12. Computerprogrammprodukt, das Programmbefehle aufweist, um
einen Prozessor zu veranlassen, ein Verfahren mit den Merkmalen
eines der Ansprüche 1 bis 11 auszuführen.
13. Tragbarer Datenträger, insbesondere Chipkarte oder Chipmodul,
der zur Ausführung eines Verfahrens mit den Merkmalen eines
der Ansprüche 1 bis 11 eingerichtet ist.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10222212A DE10222212A1 (de) | 2002-05-16 | 2002-05-16 | Ausspähungsgeschützte modulare Inversion |
EP03735380.2A EP1506473B1 (de) | 2002-05-16 | 2003-05-13 | Ausspähungsgeschützte modulare inversion |
US10/514,579 US7474748B2 (en) | 2002-05-16 | 2003-05-13 | Modular inversion that is protected against espionage |
AU2003236642A AU2003236642A1 (en) | 2002-05-16 | 2003-05-13 | Modular inversion that is protected against espionage |
JP2004505873A JP4717437B2 (ja) | 2002-05-16 | 2003-05-13 | スパイ行為に対抗して保護される逆法計算 |
PCT/EP2003/005011 WO2003098429A2 (de) | 2002-05-16 | 2003-05-13 | Ausspähungsgeschützte modulare inversion |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10222212A DE10222212A1 (de) | 2002-05-16 | 2002-05-16 | Ausspähungsgeschützte modulare Inversion |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10222212A1 true DE10222212A1 (de) | 2003-12-04 |
Family
ID=29413947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10222212A Withdrawn DE10222212A1 (de) | 2002-05-16 | 2002-05-16 | Ausspähungsgeschützte modulare Inversion |
Country Status (6)
Country | Link |
---|---|
US (1) | US7474748B2 (de) |
EP (1) | EP1506473B1 (de) |
JP (1) | JP4717437B2 (de) |
AU (1) | AU2003236642A1 (de) |
DE (1) | DE10222212A1 (de) |
WO (1) | WO2003098429A2 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005030286A1 (de) * | 2005-06-29 | 2007-01-04 | Giesecke & Devrient Gmbh | Verwendung eines Koprozessors zur modularen Inversion |
DE102008050800B4 (de) * | 2007-10-12 | 2014-01-16 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Bestimmen einer modularen multiplikativen Inversen |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005024609A1 (de) * | 2005-05-25 | 2006-11-30 | Siemens Ag | Bestimmung einer modularen Inversen |
FR2897964B1 (fr) * | 2006-02-28 | 2017-01-13 | Atmel Corp | Procede de calcul numerique incluant la division euclidienne |
CN103336680B (zh) * | 2013-06-27 | 2016-01-13 | 清华大学 | 实现二进制左移模逆算法的电路 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4405829A (en) * | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
JP3515306B2 (ja) | 1997-01-29 | 2004-04-05 | 日本電信電話株式会社 | 逆元演算装置 |
EP1050133B2 (de) * | 1998-01-02 | 2009-05-27 | Cryptography Research Inc. | Leckresistentes kryptographisches verfahren und vorrichtung |
CA2259089C (en) * | 1999-01-15 | 2013-03-12 | Robert J. Lambert | Method and apparatus for masking cryptographic operations |
FR2800478B1 (fr) * | 1999-10-28 | 2001-11-30 | Bull Cp8 | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique |
WO2002003608A1 (en) * | 2000-06-29 | 2002-01-10 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Befalf Of The University Of Oregon | Method and apparatus for incomplete modular arithmetic |
JP4706811B2 (ja) * | 2000-09-06 | 2011-06-22 | ネッツエスアイ東洋株式会社 | 依頼計算を用いた演算装置、及び記録媒体 |
DE10061697A1 (de) | 2000-12-12 | 2002-06-27 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Ermitteln eines Schlüsselpaars und zum Erzeugen von RSA-Schlüsseln |
US6763365B2 (en) * | 2000-12-19 | 2004-07-13 | International Business Machines Corporation | Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements |
DE10143728B4 (de) | 2001-09-06 | 2004-09-02 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation |
-
2002
- 2002-05-16 DE DE10222212A patent/DE10222212A1/de not_active Withdrawn
-
2003
- 2003-05-13 JP JP2004505873A patent/JP4717437B2/ja not_active Expired - Lifetime
- 2003-05-13 WO PCT/EP2003/005011 patent/WO2003098429A2/de active Application Filing
- 2003-05-13 EP EP03735380.2A patent/EP1506473B1/de not_active Expired - Lifetime
- 2003-05-13 AU AU2003236642A patent/AU2003236642A1/en not_active Abandoned
- 2003-05-13 US US10/514,579 patent/US7474748B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005030286A1 (de) * | 2005-06-29 | 2007-01-04 | Giesecke & Devrient Gmbh | Verwendung eines Koprozessors zur modularen Inversion |
DE102008050800B4 (de) * | 2007-10-12 | 2014-01-16 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Bestimmen einer modularen multiplikativen Inversen |
US10318245B2 (en) | 2007-10-12 | 2019-06-11 | Infineon Technologies Ag | Device and method for determining an inverse of a value related to a modulus |
Also Published As
Publication number | Publication date |
---|---|
JP2005532715A (ja) | 2005-10-27 |
EP1506473A2 (de) | 2005-02-16 |
EP1506473B1 (de) | 2013-07-17 |
WO2003098429A3 (de) | 2004-07-15 |
US20050157870A1 (en) | 2005-07-21 |
US7474748B2 (en) | 2009-01-06 |
JP4717437B2 (ja) | 2011-07-06 |
AU2003236642A1 (en) | 2003-12-02 |
WO2003098429A2 (de) | 2003-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1262037B1 (de) | Tragbarer datenträger mit zugriffsschutz durch schlüsselteilung | |
EP3593483B1 (de) | Übergang von einer booleschen maskierung zu einer arithmetischen maskierung | |
EP1115094A2 (de) | Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb | |
EP1664979B1 (de) | Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen | |
EP1540880B1 (de) | Geschützte kryptographische berechnung | |
EP2641241B1 (de) | Verfahren zur langzahldivision oder modulare reduktion | |
WO2001048706A1 (de) | Tragbarer datenträger mit zugriffsschutz durch nachrichtenverfremdung | |
EP1506473B1 (de) | Ausspähungsgeschützte modulare inversion | |
EP1615098B1 (de) | Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes | |
DE102005057104A1 (de) | Smartcard und Steuerverfahren hierfür | |
WO2003069462A2 (de) | Vorrichtung und verfahren zum berechnen eines ergebnisses aus einer division | |
DE102011052230B4 (de) | Verfahren und Apparat zur Erzeugung von Zufalls-Wartezuständen | |
EP1564649A2 (de) | Erzeugung von Primzahlen mittels probabilistischer Tests | |
DE102012015158A1 (de) | Gegen Ausspähen geschützte kryptographische Berechnung | |
EP1504337B1 (de) | Berechnung des modularen inversen eines wertes | |
WO2002019065A2 (de) | Verfahren und vorrichtung zum durchführen einer modularen exponentiation in einem kryptographischen prozessor | |
EP3504616B1 (de) | Modul und verfahren zur abgesicherten berechnung von mathematischen operationen | |
WO2003044653A2 (de) | Verfahren und vorrichtung zum multiplizieren und verfahren und vorrichtung zum addieren auf einer elliptischen kurve | |
EP1518165B1 (de) | Berechnung eines vielfachen eines gruppenelements für kryptographische zwecke | |
DE102004032893B4 (de) | Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes | |
DE102018006313A1 (de) | Verfahren mit Safe-Error-Abwehrmaßnahme | |
DE10253285B4 (de) | Verschleierung eines geheimen Wertes | |
EP1536320B1 (de) | Montgomery-Multiplikation mit vergrösserter Operandenlänge | |
DE102004052196B4 (de) | Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit | |
EP1760929A1 (de) | Geschütztes kryptographisches Verfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OR8 | Request for search as to paragraph 43 lit. 1 sentence 1 patent law | ||
8105 | Search report available | ||
8110 | Request for examination paragraph 44 | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |