Verschlüsselungsverfahren zum Ausführen von kryptographischen Operationen.
Die Erfindung betrifft ein Verschlüsselungsverfahren, wobei wenigstens eine kryptographische Teiloperation
k;) von digital als Datenbitworte gespeicherten Daten Xi, ki ausgeführt und das jeweilige Ergebnis bzw. jeweilige Zwischenergebnisse yj digital als Datenbitworte abgespeichert bzw. zwischengespeichert werden, gemäß dem Oberbegriff des Anspruchs 1. Die Erfindung betrifft ferner eine Verschlüsselungsvorrichtung mit einer Berechnungseinheit und Registern Rj, wobei die Berechnungseinheit wenigstens eine kryptographische Teiloperation
k;) von digital in den Registern Rj der Verschlüsselungsvorrichtung als Datenbitworte gespeicherten Operanden x;, k; ausführt und das jeweilige Ergebnis bzw. Zwischenergebnisse y; digital in den Registern R; der Verschlüsselungsvorrichtung als Datenbitworte abspeichert bzw. zwischenspeichert, gemäß dem Oberbegriff des Anspruchs 8.
In vielen Datenverarbeitungsgeräten dienen kryptographische Operationen zum Schutz des Betriebes dieser Geräte bzw. zum Schutz von in dem Gerät transportierten Daten. Die hierfür notwendigen Berechnungsoperationen werden dabei sowohl von Standard- Rechenwerken als auch von dedizierten Crypto-Rechenwerken durchgeführt. Ein typisches Beispiel für letzteres sind Chipkarten bzw. IC-Karten. Bei derartigen kryptographischen Berechnungen, wie in Fig. 1 veranschaulicht, ist es oftmals notwendig, entsprechende Speicherbereiche bzw. Register des Datenverarbeitungsgerätes mit Operanden Xj, k; zu initialisieren. Während der i-ten Berechnung werden ggf. Zwischenergebnisse yi in Speicherbereichen oder Registern R; abgelegt oder abschließend das Ergebnis der Berechnung zur Weiterverarbeitung in Speicherbereichen oder Registern abgelegt. Das Register r; befindet sich zwischen einer vorherigen i-ten kryptographischen Berechnung und einer nachfolgenden (i+l)-ten kryptographischen Berechnung. Bei den in diesem Zusammenhang verwendeten Daten Xj, k; bzw. Zwischenergebnissen y; handelt es sich üblicherweise um sicherheitsrelevante Informationen, wie beispielsweise kryptographische Schlüssel oder Operanden.
Zur Berechnung der kryptographischen Algorithmen werden in den Datenverarbeitungsgeräten logische Verknüpfungen zwischen Operanden k, bzw. Zwischenergebnissen yi bzw. j, x1+1 durchgeführt. In Abhängigkeit von der verwendeten Technologie führen diese Operationen, insbesondere das Laden der Speicherbereiche bzw. Register mit Daten, zu einem erhöhten Stromverbrauch der Datenverarbeitungsgeräte. Bei komplementärer Logik, wie beispielsweise der CMOS-Technik, tritt ein erhöhter Stromverbrauch dann auf, wenn der Wert einer Bit-Speicherzelle geändert wird, d.h. sein Wert sich von "0" auf "1" bzw. von "1" auf "0" ändert. Der erhöhte Verbrauch hängt dabei von der Anzahl der im Speicher bzw. Register geänderten Bitstellen ab. Mit anderen Worten lässt das Laden eines zuvor gelöschten Registers einen Stromverbrauch proportional zum Hamminggewicht des Operanden (=Anzahl der Bits mit dem Wert "1") bzw. der Differenz im Hamminggewicht ansteigen. Durch eine entsprechende Analyse dieser Stromänderung könnte es möglich sein, Informationen über die berechneten Operationen zu extrahieren, so dass eine erfolgreiche Kryptoanalyse von geheimen Operanden, wie beispielsweise kryptographischen Schlüsseln, möglich ist. Mittels Durchführung mehrerer Strommessungen am Datenverarbeitungsgerät könnten beispielsweise bei sehr kleinen Signaländerungen eine hinreichende Extraktion der Informationen ermöglicht werden. Andererseits könnten mehrere Strommessungen eine ggf. erforderliche Differenzbildung ermöglichen. Diese Art der Kryptoanalyse wird auch als "Differential Power Analysis" bezeichnet, mittels derer ein Außenstehender durch reine Beobachtung von Änderungen des Stromverbrauches des Datenverarbeitungsgerätes eine ggf. unberechtigte Kryptoanalyse der kryptographischen Operationen, Algorithmen, Operanden bzw. Daten erfolgreich ausführen kann.
Aus der US 5 297 201 ist es bekannt, einen Hochfrequenz abstrahlenden Computer mit einer Einrichtung zu kombinieren, welche ebenfalls Hochfrequenz ähnlich zu derjenigen des Computers abstrahlt. Dadurch ist es für einen unberechtigten Dritten nicht mehr möglich, die Hochfrequenzabstrahlung des Computers zu dekodieren. Eine Kryptoanalyse durch einen Dritten, der unmittelbar Zugang zum Computer hat, kann dieses System jedoch nicht verhindern. Um bei Chipkarten eine Korrelation zwischen einer Ausgabe eines Ergebnisses einer kryptographischen Operation bzw. einer Übertragung einer Schlüsselinformation für eine kryptographischen Operation und der kryptographischen Operation selbst zu beseitigen ist es aus Patent Abstracts of Japan 10069222A bekannt, das Ergebnis der kryptographischen Operation bzw. die Übertragung der Schlüsselinformation für die kryptographischen
Operationen zeitlich zu verzögern. Jedoch ist auch dieses System mittels der "Differential Power Analysis" analysierbar, da sich auch die verzögerte Datenübertragung im Stromverbrauch des Datenverarbeitungsgerätes verrät.
Es ist Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren sowie eine verbesserte Vorrichtung der obengenannten Art zur Verfügung zu stellen, welche die obengenannten Nachteile beseitigen und eine erfolgreiche Kryptoanalyse mittels Beobachtung eines Stromverbrauches eines Datenverarbeitungsgerätes wirksam verhindert. Diese Aufgabe wird durch ein Verfahren der o.g. Art mit den in Anspruch 1 gekennzeichneten Merkmalen gelöst.
Dazu ist es erfindungsgemäß vorgesehen, dass wenigstens eines der Daten Xj, kj und/oder das Ergebnis bzw. wenigstens ein Zwischenergebnis yi in Abhängigkeit von einem auf Zufallszahlen basierenden Steuersignal r, wahlweise bitweise zu y ' und/oder y. komplementiert wird oder nicht.
Dies hat den Vorteil, dass bei wiederholter Ausführung derselben kryptographischen Operation andere Bitfolgen bearbeitet bzw. abgespeichert werden, so dass sich bei der jeweiligen Ausführung einer kryptographischen Operation bzw. mehrerer kryptographischer Operationen andere Stromänderungen des Datenverarbeitungsgerätes ergeben. Unabhängig vom eigentlichen Wert der Teilergebnisse wird somit bei wiederholter Ausführung der Gesamtberechnung erreicht, dass jeder Datenpfad bei einer echten Zufallszahlenreihe gleichhäufig bzw. bei einer Pseudozufallszahlenreihe nahezu gleichhäufig von "0" auf "0", von "0" auf "1", von "1" auf "0" und von "1" auf "1" wechselt. Da jedoch das auf Zufallszahlen basierende Steuersignal r; nicht bekannt bzw. vorbestimmt ist, fehlt eine Korrelation zwischen den Stromänderungen und den Bitwerten der Daten und Ergebnisse, so dass eine "Differential Power Analysis" nicht mehr zu einer erfolgreichen Kryptoanalyse führt. Mit anderen Worten enthält der mittlere Stromverbrauch der Gesamtoperation keine brauchbare Information über die verwendeten Teiloperanden bzw. Zwischenergebnisse in den Teiloperationen. Vorzugsweise Weitergestaltungen der Vorrichtung sind in den Ansprüchen 2 bis 7 beschrieben.
Zweckmäßigerweise werden in den kryptographischen Teiloperationen eine oder mehrere XOR-Verknüfungen (Exklusiv-Oder-Verknüfung) ausgeführt.
Die Daten umfassen beispielsweise kryptographische Schlüssel und/oder Operanden.
In einer bevorzugten Ausführungsform werden Zwischenergebnisse y, zwischen der Ausführung von aufeinander folgenden kryptographischen Teiloperationen in einem Register Rj zwischengespeichert und als Operand x1+1 der nachfolgenden kryptographischen Teiloperationen zugeführt.
Zum Herstellen eines originalen, nicht invertierten Wertes nach jeder Teiloperation wird eine aus dem Zwischenergebnis yi einer vorangegangenen Teiloperation i erhaltene Bitfolge x1+1 = y,. für eine nachfolgende Teiloperation i+1 bitweise zu ,+1 komplementiert, wenn die Daten x„ k, der vorangegangenen Teiloperation i bitweise komplementiert wurden.
In einer besonders bevorzugten Ausführungsform werden bei der bitweisen
Komplementierung wenigstens ein Bitwert, insbesondere die geraden Bitwerte, die ungeraden
Bitwerte oder alle Bitwerte, eines Datenbitwortes x„ k„ bzw. y, invertiert. Hierbei ist es besonders vorteilhaft, wenn eine Invertierung von Bitwerten bzw. Bitadressen eines
Datenbitwortes x„ k„ bzw. y, bei der bitweisen Komplementierung mittels einer XOR-
Operation (Exklusiv-Oder-Operation) durchgeführt wird.
Bei einer Vorrichtung der o.g. Art ist erfindungsgemäß wenigstens ein von einem Steuersignal r, steuerbarer Inverter für wenigstens eines der Daten x„ k, und/oder das Ergebnis bzw. wenigstens ein Zwischenergebnis y„ ein Zufallszahlengenerator, welcher
Zufallszahlen erzeugt, sowie eine Vorrichtung zum Erzeugen des Steuersignals r, auf den
Zufallszahlen basierend vorgesehen, wobei der steuerbare Inverter in Abhängigkeit von dem
Steuersignal r, wahlweise die Bitfolgen x„ k, bzw. y, zu ihrem bitweisen Komplement x, , kt bzw. yt umsetzt oder unverändert lässt. Dies hat den Vorteil, dass bei wiederholter Ausführung derselben kryptographischen Operation andere Bitfolgen bearbeitet bzw. abgespeichert werden, so dass sich bei der jeweiligen Ausführung der kryptographischen Operation bzw. kryptographischen Operationen andere Stromänderungen des Datenverarbeitungsgerätes ergeben. Unabhängig vom eigentlichen Wert der Teilergebnisse wird somit bei wiederholter Ausführung der Gesamtberechnung erreicht, dass jeder Datenpfad bei einer echten Zufallszahlenreihe gleichhäufig bzw. bei einer Pseudozufallszahlenreihe nahezu gleichhäufig von "0" auf "0", von "0" auf "1", von "1" auf "0" und von "1" auf "1" wechselt. Da jedoch das auf Zufallszahlen basierende Steuersignal r,. nicht bekannt bzw. vorbestimmt ist, fehlt eine Korrelation zwischen
den Stromänderungen und den Bitwerten der Daten und Ergebnisse, so dass eine "Differential Power Analysis" nicht mehr zu einer erfolgreichen Kryptoanalyse führt. Mit anderen Worten enthält der mittlere Stromverbrauch der Gesamtoperation keine brauchbare Information über die verwendeten Teiloperanden bzw. Zwischenergebnisse in den Teiloperationen. Vorzugsweise Weitergestaltungen der Vorrichtung sind in den Ansprüchen 9 bis 14 beschrieben.
In einer bevorzugten Ausführungsform ist wenigstens einem Register R; ein Inverter nachgeschaltet, welcher das identische Steuersignal rj erhält, wie die der i-ten Teiloperation vorgeschalteten Inverter für die Daten x;, ki. Dieser einem Register Rj der i-ten Teiloperation nachgeschaltete Inverter ist dabei bevorzugt mit einem der nachfolgenden (i+1)- ten Teiloperation vorgeschalteten Inverter für ein Eingangsdatum x1+1 kombiniert. Der kombinierte Inverter erhält zweckmäßigerweise sowohl das Steuersignal r; der vorangegangenen i-ten Teiloperation als auch das Steuersignal rι+1 der nachfolgenden (i+l)-ten Teiloperation. Die Daten umfassen beispielsweise kryptographische Schlüssel und/oder
Operanden.
In einer bevorzugten Ausführungsform speichert ein Register R; zwischen einer vorangegangenen i-ten Teiloperation und einer nachfolgenden (i+l)-ten Teiloperation ein Zwischenergebnis yj der vorangegangenen i-ten Teiloperation und leitet dieses Zwischenergebnis als Eingangswert x1+1 an die nachfolgende (i+l)-te Teiloperation weiter. Zweckmäßigerweise invertiert die bitweise Komplementierung wenigstens einen Bitwert, insbesondere die geraden Bitwerte, die ungeraden Bitwerte oder alle Bitwerte, eines Datenbitwortes x1; kj, bzw. y,.
Nachstehend wird die Erfindung anhand der beigefügten Zeichnungen näher erläutert. Diese zeigen in
Fig. 1 ein Ablaufschema eines Teiles einer kryptographischen Operation gemäß dem Stand der Technik, Fig. 2 ein Ablaufschema eines Teiles einer ersten bevorzugten
Ausführungsform einer erfindungsgemäßen kryptographischen Operation und
Fig. 3 ein Ablaufschema eines Teiles einer zweiten bevorzugten Ausführungsform einer erfindungsgemäßen kryptographischen Operation.
Bei der in Fig. 2 dargestellten ersten bevorzugten Ausführungsform eines erfindungsgemäßen Verschlüsselungsverfahrens wird durch eine Kette von Teiloperationen fi(xi, kj), innerhalb derer ein oder mehrere logische XOR- Verknüpfungen (Exklusiv-Oder- Verknüpfung) ausgeführt werden, eine kryptographische Gesamtoperation durchgeführt. Dargestellt sind zwei Teiloperationen, nämlich die i-te Teiloperation 10 und die (i+l)-te Teiloperation 12, wobei jede Teiloperation von einer Berechnungseinheit ausgeführt wird. Jeder Teiloperation 10, 12 ist eine Speicherzelle oder ein Register Rj 14 bzw. eine Speicherzelle oder ein Register R; 16 nachgeschaltet. Jede Teiloperation 10, 12 hat als Eingangswert ein Datum Xj, Xj+i sowie einen Operanden ki, k;+1, welche als Datenbitworte zur Verfügung stehen.
Jeder Teiloperation 10, 12 vorgeschaltet ist jeweils ein steuerbarer Inverter 18 bzw. 20 für die Daten Xj, xj+i sowie jeweils ein steuerbarer Inverter 22, 24 für die Operanden kj, kj+1. Ferner ist bei jeder Teiloperation 10, 12 dem jeweiligen Register Rj 14 bzw. R1+1 16 ein steuerbarer Inverter 26, 28 für das Zwischenergebnis yj, y1+1 nachgeschaltet, wobei dieses
Zwischenergebnis von dem jeweiligen Register Rj 14 bzw. R;+1 16 als Eingangsdaten x1+1 bzw. Xi+2 an eine nachfolgende Teiloperation 12 weiter gegeben werden. Diese Inverter 18 bis 28 sind durch ein Steuersignal n bzw. r1+1 derart steuerbar, dass sie in Abhängigkeit von dem jeweiligen Steuersignal r; bzw. r1+1 wahlweise die zugeordneten Datenbitworte bitweise komplementieren oder nicht. Hierbei erhalten alle Inverter 18, 22, 26 bzw. 20, 24, 28 einer Teiloperation 10 bzw. 12 dasselbe Steuersignal r; bzw. rj+1. Mit anderen Worten wird die Entscheidung, ob eine Invertierung der entsprechenden Eingangswerte der Inverter 18 bis 28 durchgeführt wird oder ob die Eingangswerte unbearbeitet die Inverter 18 bis 28 durchlaufen, durch das zusätzliche Steuersignal bzw. rj+i entschieden. Diese Anordnung von Registern 14, 16 zwischen Teiloperationen 10, 12 findet vor allem dann Anwendung, wenn die
Teiloperationen 10, 12 zeitlich nacheinander von ein und derselben Einheit berechnet werden und somit die Teilergebnisse zwischengespeichert werden müssen.
Das Steuersignal wird durch Zufallswerte aus einem Zufallsgenerator dahingehend gesteuert, dass die Teiloperation abhängig vom Wert der Zufallszahlen entweder das Originalergebnis y = f(x, k) oder das bitinvertierte Ergebnis y = f(x, k) liefert. Hierdurch wird realisiert, dass sowohl die Berechnung als auch die Speicherung der Daten in den Registern Rj 14, 18 entweder mit Originalwerten oder mit bitinvertierten Werten durchgeführt wird. Unabhängig vom eigentlichen Wert der Teilergebnisse wird somit bei wiederholter Ausführung der Gesamtberechnung erreicht, dass jeder Datenpfad gleich häufig von "0" auf
"0", von "0" auf "1", von "1" auf "0" und von "1" auf "1" wechselt. Der mittlere Stromverbrauch der Gesamtoperation enthält somit keine brauchbare Information über die verwendeten Teiloperanden kj bzw. Zwischenergebnisse y; in den Teiloperationen 10, 12. Der dem Register 14, 16 nachgeschaltete Inverter 26, 28 stellt für die folgende Teiloperation 12 wieder den originalen, nicht invertierten Wert her.
Die zweite bevorzugte Ausführungsform des erfindungsgemäßen Verschlüsselungsverfahrens gemäß Fig. 3 entspricht der ersten Ausführungsform von Fig. 2 mit dem einzigen Unterschied, dass die den Registern 14, 16 nachgeschalteten Inverter 26, 28 mit dem jeweiligen Eingangsinverter 20 der folgenden Stufe 12 zu einem Inverter 30 kombiniert sind.
Die Inverter invertieren beispielsweise auch nur einen Teil der Bitwerte des jeweiligen Datenbitwortes. So werden beispielsweise nur die geraden oder ungeraden Bitworte bzw. Bitadressen invertiert. Die Invertierung der Bitwerte erfolgt beispielsweise mittels einer XOR-Operation (Exklusiv-Oder-Operation).
BEZUGSZEICHENLISTE:
10 i-te Teiloperation
12 (i+l)-te Teiloperation
14 Register Ri
16 Register R1+1 18 steuerbarer Inverter für xj
20 steuerbarer Inverter für x1+1
22 steuerbarer Inverter für k;
24 steuerbarer Inverter für k1+1
26 steuerbarer Inverter für yj 28 steuerbarer Inverter für yj+1
30 kombinierter Inverter