-
Die
Erfindung bezieht sich auf eine Kryptographievorrichtung, einen
integrierten Schaltkreis mit einer Kryptographievorrichtung, ein
kryptographisches Verfahren und ein Computerprogrammprodukt zum
durchführen des kryptographischen Verfahrens.
-
In
der Kryptographie wird jeder Angriff als Seitenkanalangriff bezeichnet,
welcher auf Informationen basiert, die aus der physikalischen Implementierung
eines Kryptosystems gewonnen werden, sogenannter Seitenkanalinformation,
anstatt auf theoretischen Schwachstellen der Algorithmen. Zum Beispiel
können Timing-Information, Energieverbrauch, elektromagnetische
Lecks oder sogar Schall eine zusätzliche Informationsquelle
darstellen, welche dazu genutzt werden kann, das System zu "knacken".
Viele Seitenkanalangriffe erfordern erhebliche technische Einblicke
in die internen Abläufe eines Kryptosystems, in welchem
das Kryptographieverfahren implementiert ist.
-
Man
unterscheidet verschiedene Arten von Seitenkanalangriffen:
Timing-Angriffe
sind Angriffe, welche auf der Messung der Zeit beruhen, welche verschiedene
Berechnungen des Kryptosystems zur Ausführung brauchen.
-
Architektur-Seiteneffekt-Angriffe
sind Angriffe, welche die Seiteneffekte bei der Ausführung
einer Berechnung auf einer bestimmten Maschinenarchitektur ausnützen
(z. B. Cache-Zeilen löschen).
-
Energieverbrauchsmessungs-Angriffe
sind Angriffe, welche den wechselnden Stromverbrauch der Hardware
während Berechnungen ausnutzen.
-
TEMPEST
(van Eck oder Abstrahlungsmessung)-Angriffe sind Angriffe, welche
auf dem Entweichen elektromagnetischer Strahlung beruhen und welche
direkten Klartext oder andere Informationen liefern.
-
Akustische
Kryptoanalyseangriffe sind Angriffe, welche den Schall als Informationsquelle
ausnutzen, welcher während der Berechnungen emittiert wird
(ähnlich den Energieverbrauchsmessungs-Angriffen).
-
In
allen genannten Fällen ist das zugrundeliegende Prinzip,
dass physikalische Effekte, welche erzeugt werden, während
das Kryptosystem arbeitet, nützliche zusätzliche
Informationen über Geheimnisse im Kryptosystem geben können,
zum Beispiel einen kryrptografischen Schlüssel, teilweise
Statusinformationen, volle oder teilweise Klartexte, und so weiter.
Der Ausdruck Kryptophthora (geheime Verschlechterung) wird manchmal
benutzt, um die Verschlechterung des Geheimnisgehalts des geheimen Schlüssels
durch Seitenkanal-Lecks zu beschreiben.
-
Bei
einem Timing-Angriff wird die Datenbewegung in und aus der CPU oder
dem Speicher der Hardware beobachtet, auf welcher das Kryptosystem oder
der Algorithmus läuft. Einfach indem man beobachtet, wie
lange es dauert, die Schlüsselinformation zu übertragen,
kann man manchmal feststellen, wie lang der Schlüssel in
diesem Moment ist.
-
Interne
Berechnungsschritte liefern in vielen Chiffrierimplementationen
Informationen über den Klartext oder den Schlüssel.
Auf einige dieser Informationen kann durch das beobachtete Timing
geschlossen werden. Alternativ kann bei einem Timing-Angriff auch
beobachtet werden, wie lange der kryptographische Algorithmus dauert – das
allein kann ausreichend Information liefern, um kryptoanalytisch
nützlich zu sein.
-
Ein
Energieverbrauchs-Angriff kann ähnliche Informationen liefern,
indem die Versorgungsleitungen der Hardware, speziell der CPU überwacht
werden. Genauso wie bei einem Timing-Angriff können unter
gewissen Umständen erhebliche Informationen bei manchen
Algorithmen erlangt werden.
-
Eine
fundamentale und unabwendbare physikalische Tatsache ist, dass Wechsel
im Stromfluss Funkwellen erzeugen, so dass alles, was Stromflüsse
erzeugt – zumindest im Prinzip – einen van-Eck (sog.
TEMPEST)-Angriff möglich macht. Wenn die Stromflüsse
in unterscheidbarem Maße strukturiert sind, was üblicherweise
der Fall ist, kann die Abstrahlung aufgenommen werden, um auf Informationen über
die Operationen auf entsprechender Hardware zu schließen.
-
Eine
weitere unvermeidliche physikalische Tatsache in Schaltungen ist,
dass fließende Ströme das Material, durch welches
sie fließen, erhitzen. Daher wird je nach Stromfluss auch
ständig Wärme an die Umgebung abgegeben. Aufgrund
der Gesetze der Thermodynamik werden so ständig wechselnde thermisch
induzierte mechanische Spannungen erzeugt. Diese Spannungen sind
die Hauptverursacher von geringen Schallemissionen von rechnenden CPUs.
Es ist denkbar, dass Informationen über die Berechnungen
von Kryptosystemen und Algorithmen auch auf diese Weise erlangt
werden können.
-
Wenn
die Oberfläche des CPU Chips oder in manchen Fällen
das Gehäuse der CPU überwacht werden kann, können
Infrarotbilder auch Informationen über die Operationen,
welche die CPU ausführt, liefern. Dies ist bekannt als
Thermobild-Angriff.
-
Eine
weitere Form der Seitenkanalangriffe ist die Verbrauchsanalyse,
bei welcher der Angreifer den Stromverbrauch von kryptographischer
Hardware, wie einer Smart-Card, einer manipulationssicheren „Black-Box",
eines Mikrochips, etc analysiert. Die Verbrauchsanalyse kann Informationen
darüber liefern, was ein Gerät gerade macht, und
sogar Material des Schlüssels liefern.
-
Die
differentielle Verbrauchsanalyse ist eine Erweiterung der Verbrauchsanalyse,
welche es dem Angreifer erlauben kann, Zwischenwerte von Datenblöcken
und Schlüsselblöcken zu berechnen.
-
Die
Betrachtung von Graphen von Zeit und Strom, welche ein Gerät
verbraucht, kann oft exakt zeigen, was das Gerät zu einem
bestimmten Zeitpunkt macht.
-
Die
Ströme, welche durch ein Gerät fließen, sind üblicherweise
klein, aber Elektrolabors haben üblicherweise Einrichtungen,
um sie präzise genug, zuverlässig und häufig
zu messen. Es ist vernünftig für einen Entwickler
eines Kryptosystems anzunehmen, dass ein Gegner Zugang zu solchen
Geräten hat.
-
Die
Verbrauchsanalyse sucht nicht nach Schwächen in den Algorithmen
oder Protokollen als vielmehr in ihren Ausführungsformen.
Sie bietet eine Möglichkeit in sonst manipulationssichere
Hardware „hineinzusehen". Zum Beispiel schließt
ein DES-Schlüssel-Verarbeitungsplan ein, 28 Bit Schlüsselregister
zu rotieren. Um Zeit zu sparen, prüfen die meisten Ausführungsformen
einfach das am wenigsten signifikante Bit, um zu sehen, ob es eine
1 ist. Wenn das so ist, teilt es das Register durch zwei und hängt
die 1 am linken Ende an. Die Verbrauchsanalyse kann den Unterschied
zwischen einem Register mit einer 1 und einem Register mit einer
0 deutlich machen, wenn dies passiert. Dies kann Informationen über
das Schlüsselmaterial preisgeben. Die DES Permutationen,
welche häufig einfach in Software implementiert sind, bieten
sogar durch Entscheidungsverzweigungen noch mehr Informationen.
-
Die
differenzielle Verbrauchsanalyse (DPA) ist eine Methode ein Kryptosystem
anzugreifen, bei welcher der wechselnde Stromverbrauch von Mikroprozessoren
während der Ausführung von kryptographischen Programmen
ausgenutzt wird. Sie ist auch ein Seitenkanalangriff. Indem man
eine statistische Analyse des gemessenen Stromverbrauchs während vielen
Durchläufen eines bestimmten kryptographischen Algorithmus
untersucht, kann es möglich sein Informationen über
den geheimen Schlüssel, welcher auf einer Smart-Card gespeichert
ist, zu erlangen, wenn die Implementierung des Algorithmus nicht DPA-manipulationssicher
ist.
-
Eine
andere bekannte Gegenmaßnahme schließt Veränderungen
des Algorithmus ein, so dass die kryptographischen Operationen auf
Daten angewandt werden, welche mit dem momentanen Wert in einer
mathematischen Beziehung stehen, welche die kryptographischen Operationen überdauert.
Dies wird als Blenden bezeichnet und verwendet einen Algorithmus,
welcher auf Zahlentheorie, wie Faktorisieren oder diskreten Logarithmen
basiert.
-
Die
US 6,724,894 beschreibt
ein Verfahren zum Schutz vor Seitenkanalangriffen speziell vor differenzieller
Verbrauchsanalyse, bei welchem temporäre Schlüssel
erzeugt werden, indem der geheime Schlüssel mit einer Zufallszahl
modifiziert wird. In einem ersten Schritt wird die zu verschlüsselnde
Nachricht mit dem temporären Schlüssel verschlüsselt. Danach
wird eine weitere Funktion auf die Nachricht angewandt, welche die
Verschlüsselung durchführt, wobei diese Verschlüsselung
identisch mit der ist, welche direkt mit dem unmodifizierten Schlüssel
erreicht werden kann. Dies hat den Vorteil, dass die Informationen,
welche anfällig für Seitenkanalangriffe sind,
ständig mit der Zufallszahl variieren und dabei die Anfälligkeit
des Gerätes für Seitenkanalangriffe reduziert
werden. Hierbei ist es allerdings erforderlich eine Zufallszahl
zu erzeugen, was bekanntlich mit Schwierigkeiten verbunden ist.
Weiterhin wird der Aufwand für die Verschlüsselung
und Entschlüsselung größer, wenn die
Zufallszahl groß wird. Ein weiterer Nachteil ist, dass
das System auf dem häufigen Austauschen des temporären
Schlüssels beruht, so dass ein Angreifer den geheimen Schlüssel
errechnen kann, wenn der Anwender den Schlüssel nicht häufig
genug wechselt. Weiterhin wird wenigstens während einer
Verschlüsselung einer Nachricht der selbe Schlüssel
verwendet.
-
Es
ist Aufgabe der Erfindung, eine Kryptographievorrichtung und ein
Verfahren zum Ver- oder Entschlüsseln von Daten anzugeben,
welche bzw. welches auf einfache Art und Weise die Anfälligkeit gegen
Seitenkanalangriffe reduziert.
-
Gemäß der
Erfindung wird eine Kryptographievorrichtung vorgeschlagen, welche
- – einen ersten Rechenblock enthält,
der ausgebildet ist, empfangene erste Eingangsdaten entweder zu
verschlüsseln oder zu entschlüsseln und die verschlüsselten
bzw. entschlüsselten ersten Eingangsdaten als erste Ausgangsdaten
an einem ersten Datenausgang auszugeben,
- – einen zweiten Rechenblock enthält, der ausgebildet
ist, empfangene zweite Eingangsdaten entweder zu verschlüsseln
oder zu entschlüsseln und die verschlüsselten
bzw. entschlüsselten zweiten Eingangsdaten als zweite Ausgangsdaten
an einem zweiten Datenausgang auszugeben, und
- – eine Steuereinheit umfasst, welche mit dem ersten
und dem zweiten Rechenblock verbunden ist und die ausgebildet ist,
in einem ersten Betriebszustand die ersten Ausgangsdaten zum einen dem
ersten Rechenblock teilweise oder vollständig als die ersten
Eingangsdaten zuzuweisen und zum anderen entweder teilweise oder
vollständig dem zweiten Rechenblock als Teil der zweiten Eingangsdaten
zuzuweisen.
-
Um
den Informationsabfluss der Kryptographievorrichtung zu verhindern
oder zumindest erheblich zu erschweren, wird gemäß der
Erfindung künstliches Rauschen in den Operationsfluss des
Verschlüsselungsalgorithmus eingebracht. Das Rauschen wird
vom ersten Rechenblock als erste Ausgangsdaten zur Verfügung
gestellt, um im zweiten Rechenblock zusätzlich verarbeitet
zu werden.
-
Die
Kryptographievorrichtung ist so konzipiert, dass eine geschickte
Manipulation der Seitenkanalinformation durchgeführt wird.
Dies hat eine Reduktion der Seitenkanalinformation zur Folge. Dies hat
den Vorteil, dass ein Angreifer, welcher Seitenkanalinformation
abhört, so lange brauchen würde, um den geheimen
Schlüssel zu berechnen, dass man den Schlüssel
als sicher einstufen kann, solange er auf einer Kryptographievorrichtung
gemäß der Erfindung verwendet wird. Weiterhin
können auch die zu verschlüsselnden Daten nicht
durch Einbeziehung von Seitenkanalinformation gewonnen werden.
-
Besonders
Smart-Cards, wie sie zur Entschlüsselung von verschlüsselten
TV-Programmen verwendet werden, können von jedem Besitzer
uneingeschränkt analysiert werden, um den integrierten Schlüssel
zu extrahieren. Besonders Verbrauchsanalysen und DPA (Differential
Power Analysis) können mehrfach durchgeführt werden.
Hierbei wird wie oben beschrieben der dynamische Verlauf des Stromverbrauchs
analysiert. Bei Einsatz der Kryptographievorrichtung gemäß der
Erfindung in einer Smart-Card ist die Schlüsselextraktion
jedoch nicht mehr möglich, da die Seitenkanalinformation
keine regelmäßigen Muster mehr aufweist.
-
Deshalb
wird in einem Ausführungsbeispiel eine Smart-Card vorgeschlagen,
die eine Kryptographievorrichtung gemäß der Erfindung
enthält.
-
Der
Ausdruck Rechenblock wird in der vorliegenden Anmeldung gleichbedeutend
mit den Ausdrücken Kryptoblock oder Ver- und Entschlüsselungsblock
verwendet.
-
In
einem Ausführungsbeispiel werden dem ersten Rechenblock
im ersten Betriebszustand keine Daten von extern am ersten Dateneingang
zugeleitet.
-
Kryptosysteme
werden in symmetrische und asymmetrische Kryptosysteme unterteilt.
Ein symmetrisches Kryptosystem ist ein Kryptosystem, welches im
Gegensatz zu einem asymmetrischen Kryptosystem den gleichen Schlüssel
zur Ver- und Entschlüsselung verwendet. Der Ausdruck Verschlüsselungsverfahren wird
daher in der vorliegenden Anmeldung im Zusammenhang mit symmetrischen Kryptosystemen
zur Vereinfachung auch als Abkürzung für Ver-
und Entschlüsselungsverfahren verwendet.
-
Deshalb
ist bei einer Ausführungsvariante der Kryptographievorrichtung
der erste oder der zweite Rechenblock ausgebildet, die empfangenen ersten
oder zweiten Eingangsdaten nach einem symmetrischen Verschlüsselungs-
oder Entschlüsselungsverfahren zu berechnen.
-
Symmetrische
Kryptosysteme haben den Vorteil, dass die Kryptographievorrichtung
ein Verschlüsselungsverfahren mit geringer Schlüssellänge durchführen
kann.
-
Man
teilt die symmetrischen Verschlüsselungsverfahren in Blockchiffren
und Stromchiffren auf. Eine Blockchiffre ist ein Algorithmus der
einen Datenblock von typisch 64 oder 128 Bit mittels eines Schlüsselwerts
verschlüsselt. Der verschlüsselte Block hat dabei
die gleiche Länge.
-
Symmetrische
Verschlüsselungsalgorithmen können Blockverschlüsselungsverfahren
wie beispielsweise DES, AES (Advanced Encryption Standard), Triple-DES,
IDEA (International Data Encryption Algorithm), Blowfish, Twofish,
Anubis, A5/3 (KASUMI), Camellia, FEHL, Lucifer, Magenta, MARS, MISTY,
SEED, Serpent, SHACAL, Skipjack, TEA, CAST-128, CAST-256, RC2, RC5
und RC6 sein.
-
Ein
Stromchiffre (engl. „stream cipher") ist die symmetrische,
kontinuierliche und verzögerungsfreie Ver- oder Entschlüsselung
eines Datenstroms. Eine Stromchiffre ver- bzw. entschlüsselt
Nachrichten Bit für Bit bzw. Zeichen für Zeichen.
Beispiele für Stromchiffren sind: A5/1, A512, Rabbit, RC4,
SEAL oder QUISCI.
-
Das
verwendete symmetrische Verschlüsselungsverfahren kann
eines der oben genannten sein.
-
Der
gemeinsame, geheime Schlüssel muss bei einem symmetrischen
Verschlüsselungsverfahren jedoch vor der Kommunikation
ausgetauscht werden. Dies kann erhebliche Schwierigkeiten mit sich
bringen. Deshalb gibt es die asymmetrischen Verschlüsselungsalgorithmen.
-
Ein
asymmetrisches Kryptoverfahren ist ein Kryptoverfahren, bei dem
jede der kommunizierenden Parteien ein Schlüsselpaar besitzt,
das aus einem geheimen Teil (privater Schlüssel) und einem nicht
geheimen Teil (öffentlicher Schlüssel) besteht. Der
private Schlüssel ermöglicht es seinem Inhaber, z.
B. Daten zu entschlüsseln, digitale Signaturen zu erzeugen
oder sich zu authentifizieren. Der öffentliche Schlüssel
ermöglicht es jedermann, Daten für den Schlüsselinhaber
zu verschlüsseln, dessen digitale Signaturen zu prüfen
oder ihn zu authentifizieren. Dementsprechend greift eine Kryptographievorrichtung,
welche nach einem asymmetrischen Verfahren arbeitet, auf zwei Schlüssel
zu, je nachdem, ob sie verschlüsselt oder entschlüsselt.
Im Gegensatz zu einem symmetrischen Kryptosystem müssen
die kommunizierenden Parteien also keinen gemeinsamen geheimen Schlüssel
kennen. Das hat den Vorteil, dass kein Austausch eines geheimen
Schlüssels nötig ist. Deshalb ist bei einer Ausführungsvariante
der Kryptographievorrichtung der erste oder der zweite Rechenblock
ausgebildet, die empfangenen ersten oder zweiten Eingangsdaten nach
einem asymmetrischen Verschlüsselungs- oder Entschlüsselungsverfahren
zu berechnen. Zu den geeigneten asymmetrischen Verschlüsselungsalgorithmen
zählen RSA, Rabin- und Elgamal-Kryptosysteme. In den letzten Jahren
wurde die Verschlüsselung mit Elliptischen Kurven (Elliptic
Curve Cryptography, ECC) immer populärer, da sie bei gleicher
Sicherheitsstufe mit wesentlich kleineren Schlüsseln auskommt.
-
Asymmetrische
Verschlüsselungsverfahren sind rechenintensiver als symmetrische
Verschlüsselungsverfahren. Deshalb ist der Anwendungsbereich symmetrischer
und asymmetrischer Verschlüsselungsverfahren unterschiedlich.
In diesem Zusammenhang kann eine Kombination beider Verschlüsselungsverfahren
nützlich sein. Bei einem Ausführungsbeispiel der
Kryptographievorrichtung ist daher der erste Rechenblock ausgebildet,
die empfangenen ersten Eingangsdaten nach einem symmetrischen Verschlüsselungs-
oder Entschlüsselungsverfahren zu berechnen und der zweite
Rechenblock ausgebildet, die empfangenen zweiten Eingangsdaten nach
einem asymmetrischen Verschlüsselungs- oder Entschlüsselungsverfahren
zu berechnen. Damit kann zum Beispiel ein geheimer Schlüssel
eines symmetrischen Verfahrens mittels eines asymmetrischen Verschlüsselungsverfahrens
verschlüsselt und übertragen werden. Anschließend
können größere Datenmengen nach dem symmetrischen
Verfahren verschlüsselt übertragen werden.
-
Bei
einem Ausführungsbeispiel der Kryptographievorrichtung
ist der erste Rechenblock ausgebildet, die empfangenen ersten Eingangsdaten
nach einem AES Verschlüsselungs- oder Entschlüsselungsverfahren
zu berechnen und der zweite Rechenblock ausgebildet, die empfangenen
zweiten Eingangsdaten nach einem ECC Verschlüsselungs- oder
Entschlüsselungsverfahren zu berechnen.
-
In
einem Ausführungsbeispiel enthält der asymmetrisch
arbeitende Verschlüsselungs- und Entschlüsselungsblock
eine Schlüsselwechseleinheit. Diese ist ausgebildet beim
Verschlüsseln einen öffentlichen Schlüssel
zur Verfügung zu stellen und beim Entschlüsseln
einen privaten Schlüssel zur Verfügung zu stellen.
-
Der
Rechenblock kann auch eine Schlüsselspeichereinrichtung
enthalten. Damit kann die Kryptographievorrichtung an verschiedene
Adressaten verschlüsseln. Die Schlüssel können
auch fester Bestandteil des Rechenblocks sein, so dass sie nicht getauscht
werden können.
-
Bei
einer Ausführungsform der Kryptographievorrichtung ist
die Steuereinheit ausgebildet, mindestens einem Rechenblock als
erste beziehungsweise zweite Eingangsdaten Nutzdaten und zusätzlich
pseudozufällige Daten, die nicht für die eigentliche
Ver- bzw. Entschlüsselung benötigt werden, zuzuweisen.
Diese pseudozufälligen Daten werden auch als Dummydaten
bezeichnet.
-
Mit
Nutzdaten werden solche Daten bezeichnet, welche die eigentlich
zu ver- oder entschlüsselnde Nachricht enthält.
Bei dem Beispiel einer Entschlüsselung eines TV-Programms
sind Nutzdaten die verschlüsselten Bilddaten des Pro gramms.
Die Nutzdaten werden aus einer Nutzdatenquelle bezogen. Beim Beispiel
des TV-Programms ist die Nutzdatenquelle ein Funk- oder Kabelempfänger.
Die Dummydaten sind mehr oder weniger zufällige zusätzliche
Daten, welche keinen Beitrag zur eigentlichen Ver- oder Entschlüsselung
leisten und nach dem Durchlaufen eines Rechenblocks aussortiert und
weggeworfen werden. Sie dienen nur der Störung der Seitenkanalinformation
durch zusätzliche Rechenoperationen oder einen veränderten
Operationsfluss. Die Steuereinheit kann in diesem Ausführungsbeispiel
die Dummydaten dem Dateneingang des ersten oder des zweiten Rechenblocks
zuleiten. In einem Ausführungsbeispiel der Kryptographievorrichtung
sind die Dummydaten von einem Teil der ersten Ausgangsdaten oder
von den ersten Ausgangsdaten insgesamt gebildet. Die ersten Ausgangsdaten
sind in diesem Ausführungsbeispiel vorzugsweise nicht zu
einem Geräteausgang der Kryptographievorrrichtung zugeführt.
Dem zweiten Rechenblock im ersten Betriebszustand zugewiesene Dummydaten
sind in diesem Ausführungsbeispiel vorzugsweise also die
ersten Ausgangsdaten. Dem ersten Rechenblock im ersten Betriebszustand
zugewiesene Dummydaten sind in diesem Ausführungsbeispiel
vorzugsweise ebenfalls die ersten Ausgangsdaten.
-
Die
Dummydaten können in einem alternativen, hier nicht bevorzugten
Ausführungsbeispiel von einer separaten, also von den ersten
und zweiten Rechenblöcken verschiedenen Dummydatenquelle oder
von der Steuereinheit erzeugt werden.
-
Der
erste Rechenblock kann seine Ausgangsdaten auf seinen Dateneingang
zurückkoppeln und dabei einen AES-Verschlüsselungsalgorithmus verwenden
und z. B. im CFB- oder CBC-Mode laufen. Ein Teil der Ausgangsdaten
des ersten Rechenblocks kann von der Steuereinheit dem Dateneingang
des zweiten Rechenblocks zugeleitet werden, welche diese Daten zusätzlich
verarbeitet. Der zweite Rechenblock kann dabei einen ECC Verschlüsselungsalgorithmus
verwenden. Dabei werden die verschlüsselten Ausgangsdaten
des ersten Rechenblocks nicht aus der Kryptographievorrichtung ausgegeben,
sondern erneut verschlüsselt, um dann wieder verschlüsselt
zu werden, und so weiter. Greift man diese verschlüsselten
Daten nach jeder Runde ab, erhält man einen pseu do-zufälligen
Datenstrom. Dieser Zufalls-Datenstrom wird verwendet, um eine Zufälligkeit
im ECC-Ablauf im zweiten Rechenblock zu erzeugen. Die Zufälligkeit
sorgt dafür, dass aus dem Zeit- und Stromverbrauch des
ECC berechnenden Rechenblocks keine Schlussfolgerungen über die
verwendeten Schlüssel oder die verarbeiteten Daten gezogen
werden können. In einem Ausführungsbeispiel der
Kryptographievorrichtung ist die Steuereinheit ausgebildet, den
Betrieb des ersten oder zweiten Rechenblocks unabhängig
voneinander anzuhalten und in Gang zu setzen.
-
Die
Steuereinheit kann somit die Rechenblöcke unabhängig
von einander an- und abschalten, zum Beispiel wenn ein Rechenblock
nicht verwendet wird. Andererseits kann die Steuereinheit durch
unregelmäßiges Anhalten und in Gang setzen eines
oder beider Rechenblöcke die Seitenkanalinformation stören.
-
Multiplikationen
sind in digitalen Systemen sehr rechenintensiv. Bei Verschlüsselungsalgorithmen
werden eine Vielzahl von Multiplikationsschritten ausgeführt.
-
Deshalb
ist in einer Ausführungsform der Kryptographievorrichtung
der zweite Rechenblock ausgebildet, bei der Verschlüsselung
bzw. Entschlüsselung erforderliche Polynom-Multiplikationen
mit Hilfe eines Karatsuba-Verfahrens durchzuführen. Die Multiplikation
nach dem Karatsuba-Algorithmus hat den Vorteil, dass sie weniger
Rechenoperationen benötigt als eine herkömmliche
Multiplikation. Ihre Verwendung kann auch zu einem Geschwindigkeitszuwachs
führen, weil ihre Laufzeitkomplexität geringer ist.
-
Bei
einem weiteren Ausführungsbeispiel der Kryptographieeinrichtung
besitzt mindestens ein Rechenblock mehrere parallele Multiplikationseinheiten. Multiplikationseinheiten
sind Module, welche in einem oder mehreren Taktzyklen eines digitalen
Systems wie der Kryptographievorrichtung eine Multiplikationsoperation
durchführen können. Der Einsatz von parallelen
Multiplikationseinheiten erzeugt einen Geschwindigkeitszuwachs bei
Multiplikationsoperationen. Im Gegensatz zur seriellen Verarbeitung
kann eine Vielzahl von Multiplikationsoperationen gleichzeitig durchgeführt
werden.
-
Auch
eine Kombination von einer Multiplikation nach Karatsuba und der
Verwendung mehrerer paralleler Multiplikationseinheiten ist vorteilhaft,
da bei der Multiplikation nach Karatsuba die zu multiplizierenden
Zahlen in kleinere Teile zerlegt werden. Diese Teile können
dann mit parallelen Multiplikationseinheiten gleichzeitig berechnet
werden.
-
In
einem Ausführungsbeispiel ist die Steuereinrichtung ausgebildet,
eine m-Bit-Multiplikation iterativ beispielsweise auf 9 partielle
Multiplikationen der Bitlänge m/4 zu verteilen. Dazu werden
dann 9 Taktzyklen benötigt. Ein Rechenblock ist dabei dazu ausgebildet,
die Multiplikationen der Länge m/4 in je einem Taktzyklus
durchzuführen, indem im Rechenblock 9 parallele
Multiplikationseinheiten der Größe m/16 (m/4/4)
instanziiert werden. Die Operationen der Multiplikationseinheiten
werden dann parallel ausgeführt. Wenn m/4/4 größer
8 Bit ist, kann die Steuereinheit die partiellen Multiplikationen
weiter zerlegen.
-
In
einem Ausführungsbeispiel ist die Zahl m = 256. Man benötigt
9 Taktzyklen in denen man je eine Multiplikation der Länge
64 Bit ausführt. Die Steuereinheit ist ausgebildet die
64 Bit Multiplikation in 9 Blöcke der Größe
16 Bit zu zerlegen und jeden dieser 9 16 Bit-Blöcke wieder
in 9 partielle Multiplikationen der Länge 4 Bit. Die parallelen
Multipliziereinheiten können zu 64 Bit-Blöcken
zusammengefasst sein. Jeder 64 Bit-Block hat intern z. B. 81 4-Bit
Multipliziereinheiten, die parallel angesprochen werden können.
-
Bei
einer Ausführungsform der Kryptographievorrichtung ist
die Steuereinheit ausgebildet, dem ersten oder zweiten Rechenblock
eine Anzahl parallel durchzuführender Rechenoperationen
pro Takteinheit jeweils entweder von Takteinheit zu Takteinheit
oder in größeren zeitlichen Abständen
vorzugeben. Die Anzahl parallel durchzuführender Rechenoperationen
pro Takteinheit kann die Steuereinheit beispielsweise durch ein
Steuersignal vorgeben. Der erste Rechenblock, oder der zweite Rechenblock, oder
beide Rechenblöcke sind in diesem Ausführungsbeispiel
vorzugsweise ausgebildet, in einem von der Steuereinheit her empfangenen
Steuersignal enthaltene Steuerinformation zu extrahieren und die Anzahl
im jeweiligen Rechenblock parallel durchzuführender Rechenoperationen pro
Takteinheit in Abhängigkeit von der extrahierten Steuerinformation einzustellen.
-
Das
Steuersignal kann die Steuerinformation über die Anzahl
parallel durchzuführender Rechenoperationen pro Takteinheit
in Form pseudozufälliger Daten enthalten. Die Steuerinformation
kann hierfür beispielsweise durch Herausgreifen von Daten
aus dem Strom der ersten Ausgangsdaten entnommen werden. In einer
Ausführungsform werden die entnommenen ersten Ausgangsdaten
zur Bildung der Steuerinformation vom empfangenden Rechenblock zusätzlich
einer Umrechnung unterzogen.
-
Es
können in unterschiedlichen Ausführungsbeispielen
je nach Mengenbedarf an Steuerinformation alle ersten Ausgangsdaten
oder nur Teile der ersten Ausgangsdaten als Steuerinformation verwendet
werden.
-
Diese
Eigenschaft der Kryptographievorrichtung ermöglicht eine
sehr feingliedrige Manipulation der Seitenkanalinformation, weil
keine Multiplikationsoperation mehr als störungsfrei angenommen werden
kann, da sich die Anzahl der parallel durchgeführten Multiplikationsoperationen
ständig ändert und damit auch der Stromverbrauch
und der Zeitverbrauch für jede Multiplikation. Bei Nichtausnutzen
aller parallelen Multiplikationseinheiten verlängert sich zwar
die gesamte Rechenzeit für die Ver- oder Entschlüsselung,
jedoch wird der Energieverbrauch nicht erhöht, weil keine
zusätzlichen Multiplikationsoperationen durchgeführt
werden müssen.
-
Die
Verbrauchsanalyse kann am einfachsten Entscheidungsverzweigungen
beim Ausführen des kryptographischen Programms unterscheiden,
weil das Gerät verschiedene Dinge tut, wobei es verschieden
viel Strom verbraucht, abhängig davon, welcher Entscheidungsast
ausgeführt wird. Aus diesem Grund ist es günstig,
wenn vom Verbrauch her keine Unterschiede in Entscheidungsverzweigungen
bei kryptographischen Implementierungen bestehen. Rotationen, Permutationen
und logische Operationen (wie beispielsweise XOR) sollten nach Möglichkeit
gleich lang dauern und ähnlich viel Energie verbrauchen.
-
Es
gibt jedoch einige Algorithmen mit inhärent aussagekräftigen
Verzweigungen. Deshalb können bei einer Ausführungsvariante
auch zwei Nutzdatenquellen zwei verschiedene Nutzdatenströme ausgeben.
Dabei ist jeder Rechenblock ausgebildet jeweils einen Nutzdatenstrom
zu verarbeiten.
-
Bei
dieser Ausführungsvariante der Kryptographievorrichtung
ist der erste Rechenblock mit einem ersten Geräteeingang
für erste Nutzdaten und einem Geräteausgang verbunden,
und der zweite Rechenblock ist mit einem zweiten Geräteeingang für
zweite Nutzdaten und dem Geräteausgang verbunden. Die Steuereinheit
ist dabei ausgebildet, in einem zweiten Betriebszustand die ersten
Ausgangsdaten dem Geräteausgang und nicht dem zweiten Rechenblock
und nicht dem ersten Rechenblock zuzuleiten, und die vom zweiten
Rechenblock ausgegebenen zweiten Ausgangsdaten dem Geräteausgang zuzuleiten.
-
Der
Vorteil dieser Ausführungsvariante ist, dass der erste
Rechenblock auch Nutzdaten verarbeitet. Damit können zwei
verschiedene Eingangsdaten oder Eingangsdatenströme gleichzeitig
ver- oder entschlüsselt werden. Zum Beispiel kann, wie
oben bereits erläutert, der erste Rechenblock eine symmetrische
Ver- oder Entschlüsselung vornehmen und der zweite Rechenblock
kann eine asymmetrische Ver- oder Entschlüsselung mit anderen
Eingangsdaten vornehmen.
-
Ein
weiterer Vorteil ist, dass die Dynamik des Gesamtenergieverbrauchs
der Kryptographievorrichtung in diesem Betriebszustand die Überlagerung
der Dynamik des Energieverbrauchs der zwei parallel arbeitenden
Rechenblöcke ist. Damit kann nicht jeder Rechenblock einzeln
von außen analysiert werden. Es ist somit schwieriger,
auf die Vorgänge insbesondere Entscheidungsverzweigungen
in einem Rechenblock anhand der Seitenkanalinformation zu schließen,
und der geheime interne Schlüssel wird geschützt.
-
Der
Geräteausgang kann auch geteilt ausgeführt sein,
so dass jeder Rechenblock seinen eigenen Geräteausgang
hat. Im Fall lediglich eines Geräteausgangs können
die Ausgangsdaten der Rechenblöcke auf den Geräteausgang
gemultiplext werden.
-
In
einer weiteren Ausführungsform der Kryptographievorrichtung
ist die Steuereinheit ausgebildet, zwischen dem ersten und dem zweiten
Betriebszustand umzuschalten.
-
In
dieser Ausführungsform kann die Steuereinheit bestimmen,
in welchem Betriebszustand die Kryptographievorrichtung laufen soll.
Im ersten Betriebszustand werden die Ausgangsdaten des ersten Rechenblocks
auf seinen Dateneingang zurückgekoppelt und anteilig dem
zweiten Rechenblock als zusätzliche Eingangsdaten zugeleitet,
und im zweiten Betriebszustand arbeiten die Rechenblöcke gleichzeitig
an verschiedenen Eingangsdaten, oder es arbeitet nur ein Rechenblock.
-
In
einem Ausführungsbeispiel der Kryptographievorrichtung
ist die Steuereinheit ausgebildet, dem ersten oder zweiten Rechenblock
eine von verschiedenen vorgebbaren Abfolgen von Rechenoperationen
vorzugeben.
-
Der
Vorteil des Änderns der Reihenfolge von Rechenoperationen
ist eine weitere Reduktion der abgegebenen Seitenkanalinformation.
Kryptoanalyse beruht auf der Annahme von Regelmäßigkeit
im analysierten Algorithmus. Diese Regelmäßigkeit
geht durch Vertauschen von Abfolgen der Rechenoperationen verloren.
Wenn einem Angreifer nicht bekannt ist, welche Operationen nacheinander
ausgeführt werden, weil die Abfolge der Rechenoperationen ständig
wechselt, kann das erschweren, auf den internen Systemzustand und
die Position im Algorithmus zu schließen. Damit werden
der geheime Schlüssel und die geheimen Daten vor einer
Kryptoanalyse geschützt.
-
Bei
einer weiteren Ausführungsform der Kryptographievorrichtung
ist die Steuereinheit ausgebildet, die Abfolge der Rechenoperationen
im zweiten Rechenblock vorzugeben. Die Abfolge der Rechenoperationen
kann die Steuereinheit beispielsweise durch ein Steuersignal vorgeben.
Der zweite Rechenblock ist in diesem Ausführungsbeispiel
vorzugsweise ausgebildet, in einem von der Steuereinheit her empfangenen
Steuersignal enthaltene Abfolge-Steuerinformation zu extrahieren
und die Abfolge durchzuführender Rechenoperationen in Abhängigkeit
von der extrahierten Abfolge-Steuerinformation einzustellen.
-
Das
Steuersignal kann die Abfolge-Steuerinformation über die
Abfolge durchzuführender Rechenoperationen in Form pseudozufälliger
Daten, also Dummydaten, enthalten. Das hat den Vorteil, dass die
Zufälligkeit der Abfolge der Rechenoperationen erhöht
werden kann. Die Abfolge-Steuerinformation kann hierfür
beispielsweise durch Herausgreifen von Daten aus dem Strom der ersten
Ausgangsdaten entnommen werden. In einer Ausführungsform
werden die entnommenen Ausgangsdaten zur Bildung der Abfolge-Steuerinformation
vom empfangenden zweiten Rechenblock zusätzlich einer Umrechnung
unterzogen.
-
Es
können in unterschiedlichen Ausführungsbeispielen
je nach Mengenbedarf an Steuerinformation alle ersten Ausgangsdaten
oder nur Teile der ersten Ausgangsdaten als Abfolge-Steuerinformation
verwendet werden. Bei einem Ausführungsbeispiel der Kryptographievorrichtung
enthält der erste oder der zweite Rechenblock eine Vielzahl
Multiplikationseinheiten. Die Steuereinheit ist ausgebildet, parallel
einer ersten Teilanzahl der Multiplikationseinheiten Nutzdaten und
einer zweiten Teilanzahl der Multiplikationseinheiten Dummydaten
zuzuleiten.
-
Dies
hat den Vorteil, dass bei jeder Multiplikationsoperation Dummydaten
und Nutzdaten verarbeitet werden können. Dadurch ist die
Seitenkanalinformation für jede Multiplikationsoperation
gestört. Ein Angreifer kann somit weniger Information über
einen geheimen Schlüssel oder verarbeitete Daten ermitteln,
wenn in keiner Multiplikationsoperation ausschließlich
Nutzdaten verarbeitet werden. Die Steuereinrichtung kann auch einer
ersten Teilanzahl der Multiplikationseinheiten Nutzdaten, einer
zweiten Teilanzahl Dummydaten und einer dritten Teilanzahl keine
Daten zuleiten.
-
Bei
einem Ausführungsbeispiel kann die Kryptographievorrichtung
im ersten Betriebszustand laufen und die ersten Ausgangsdaten können
als Dummydaten verwendet werden. Dabei weist die Steuereinheit die
ersten Ausgangsdaten dem zweiten Rechenblock zumindest teilweise
zu. Die ersten Ausgangsdaten stellen pseudozufällige Daten
dar und eignen sich gut als Dummydaten. Sie werden im ersten Betriebszustand
dem zweiten Rechenblock zugewiesen und nicht an einem Geräteausgang
ausgegeben. Die Dummydaten können genutzt werden, um zusätzliche
Rechenoperationen mit den Dummydaten im zweiten Rechenblock durchzuführen
oder die Anzahl parallel durchzuführender Rechenoperationen
vorzugeben. In einer Ausführungsform können einem
Anteil paralleler Multiplikationseinheiten Dummydaten und einem
anderen Anteil Nutzdaten zugeleitet werden. Bei einer Ausführungsform
kann die Abfolge der Rechenoperationen mit den Dummydaten gesteuert
werden. Damit sind die ersten Ausgangsdaten Steuerdaten für
den zweiten Rechenblock. Dabei kann der zweite Rechenblock einen
Zusatzdateneingang aufweisen, welchem die Dummydaten zugewiesen
werden, um die Abfolge der Rechenoperationen im zweiten Rechenblock
zu steuern. In allen Fällen wird die Seitenkanalinformation des
Kryptosystems gestört und dadurch reduziert.
-
In
einem weiteren Ausführungsbeispiel ist die Steuereinheit
ausgebildet, dem ersten Rechenblock einen ersten Datenstrom von
extern und dem zweiten Rechenblock einen zweiten Datenstrom von extern
zuzuleiten. Weiterhin ist die Steuereinheit ausgebildet, die ersten
Ausgangsdaten zumindest teilweise dem zweiten Rechenblock zuzuleiten,
und sie nicht dem Geräteausgang zuzuleiten. Die ersten Ausgangsdaten
können als Dummydaten verwendet werden.
-
Die
Steuereinheit kann in einem Ausführungsbeispiel auch aus
mehreren getrennten Teilen bestehen, welche auch zum Teil in die
Rechenblöcke integriert sein können.
-
Bei
einer Ausführungsvariante der Kryptographievorrichtung
ist der erste und der zweite Rechenblock und die Steuereinheit jeweils
hardwareimplementiert. in einer weiteren Ausführungsvariante enthält
ein integrierter Schaltkreis die Kryptographievorrichtung. integrierte
Schaltkreise sind eine übliche Form der Hardwareimplementierung.
Sie können bei großen Stückzahlen kostengünstig
hergestellt werden. In einem weiteren Ausführungsbeispiel
enthält ein ASIC die Kryptographievorrichtung.
-
Die
Verwendung festverdrahteter Hardware für die Kryptographievorrichtung
hat den Vorteil, dass der Energieverbrauch im Betriebweniger schwankt. Dies
gilt besonders, wenn die Kryptographievorrichtung eine Vielzahl
an parallelen Multipliziereinheiten enthält. Dadurch wird
das Signal-Rauschverhältnis der Seitenkanalinformation
verringert. Dies bewirkt eine Reduktion der Seitenkanalinformation.
-
Es
wird angemerkt, dass auch eine Kombination der verschiedenen in
dieser Anmeldung beschriebenen Ausführungsformen der Kryptographievorrichtung
möglich ist, soweit die Ausführungsbeispiele nicht
ausdrücklich als Alternativen zueinander beschrieben sind.
-
Das
der Erfindung zugrunde liegende technische Problem wird gemäß einem
weiteren Aspekt der Erfindung durch ein Steuermodul für
eine Kryptographieeinheit gelöst.
-
Im
weiteren wird gemäß einem zweiten Aspekt der Erfindung
ein Verfahren zum Ver- oder Entschlüsseln von Daten vorgeschlagen.
-
Das
Verfahren umfasst ein Verschlüsseln oder Entschlüsseln
erster Eingangsdaten mit einem ersten Rechenblock und ein Ausgeben
der verschlüsselten oder entschlüsselten ersten
Eingangsdaten als erste Ausgangsdaten an einem ersten Datenausgang.
Weiterhin enthält das Verfahren ein Verschlüsseln
oder Entschlüsseln zweiter Eingangsdaten mit einem zweiten
Rechenblock und ein Ausgeben der verschlüsselten oder entschlüsselten
zweiten Eingangsdaten als zweite Ausgangsdaten an einem zweiten
Datenausgang. Weiterhin enthält das Verfahren ein Zuweisen
der ersten Ausgangsdaten zum einen entweder teilweise oder vollständig
als Eingangsdaten zum ersten Rechenblock und zum anderen entweder
teilweise oder vollständig als Teil der zweiten Eingangsdaten
zum zweiten Rechenblock.
-
Die
ersten Ausgangsdaten werden bei dem vorgestellten Verfahren somit
auf den ersten Dateneingang teilweise oder vollständig
zurückgekoppelt.
-
Die
Vorteile des erfindungsgemäßen Verfahrens ergeben
sich aus den oben beschriebenen Vorteilen der Kryptographievorrichtung
des ersten Aspekts der Erfindung. Nachfolgend werden Ausführungsbeispiele
des Verfahrens beschrieben.
-
In
einem Ausführungsbeispiel des Verfahrens umfasst das Zuweisen
der ersten Ausgangsdaten an den zweiten Rechenblock ein Steuern
der Abfolge der Rechenoperationen im zweiten Rechenblock anhand
der ersten Ausgangsdaten.
-
In
einem weiteren Ausführungsbeispiel des Verfahrens umfasst
das Zuweisen der ersten Ausgangsdaten an den zweiten Rechenblock
ein Steuern der Anzahl parallel durchzuführender Rechenoperationen
im zweiten Rechenblock anhand der ersten Ausgangsdaten.
-
Das
Verfahren kann mit der Kryptographievorrichtung gemäß dem
ersten Aspekt der Erfindung durchgeführt werden. Dabei
wird der Anteil an Seitenkanalinformation reduziert, durch beispielsweise ein
verwendeter geheimer Schlüssel oder andere geheime Daten
vor kryptoanalytischen Angriffen geschützt werden.
-
Im
folgenden werden weitere Ausführungsbeispiele anhand der
Fig. en erläutert.
-
1 zeigt
in einem vereinfachten Blockdiagramm ein erstes Ausführungsbeispiel
einer Kryptographievorrichtung in einem ersten Betriebszustand.
-
2 zeigt
das Kryptographiesystem der 1 in einem
zweiten Betriebszustand, in dem eine Steuereinheit einen Datenpfad
trennt.
-
3 zeigt
eine schematische Darstellung eines zweiten Ausführungsbeispiels
einer Kryptographievorrichtung.
-
4 zeigt
eine schematische Darstellung eines dritten Ausführungsbeispiels
einer Kryptographievorrichtung.
-
5 zeigt
zur näheren Erläuterung der Funktionsweise der
Kryptographievorrichtungen der 1 bis 4 schematisch
parallele Multiplikationseinheiten, wie sie im zweiten Rechenblock
in einer ersten Weise Verwendung finden können.
-
6 zeigt
zur näheren Erläuterung der Funktionsweise der
Kryptographievorrichtungen der 1 bis 4 schematisch
parallele Multiplikationseinheiten, wie sie im zweiten Rechenblock
in einer zweiten Weise Verwendung finden können.
-
7 zeigt
einen Ablaufplan für eine Iteration bei der Ver- Entschlüsselung
nach einem elliptischen Kurven-Kryptographie (ECC) Algorithmus
-
1 ist
eine vereinfachte Darstellung einer Kryptographievorrichtung 100 in
einem ersten Betriebszustand. Die Kryptographievorrichtung 100 enthält
einen ersten Rechenblock 102 mit einem ersten Dateneingang 106 und
einem ersten Datenausgang 116 und eine Steuereinheit 120,
welche dem ersten Dateneingang 106 erste Ausgangsdaten 116 vom ersten
Datenausgang 116 als erste Eingangsdaten 106 zuweist 112,
so dass der erste Datenausgang 116 auf den ersten Dateneingang 106 zurückgekoppelt
ist. Dies ist durch den Pfeil an der Steuereinheit dargestellt.
Dieser Datenweg wird auch als Rückkoppelungsdatenpfad bezeichnet.
Daten und die jeweiligen Ein- Ausgänge sind mit demselben
Bezugszeichen gekennzeichnet. Die Kryptographievorrichtung arbeitet
somit im oben bereits erwähnten ersten Betriebszustand.
Der ersten Rechenblock 102 und der zweite Rechenblock 104 werden
nachfolgend jeweils auch als Ver- und Entschlüsselungsblock
bezeichnet.
-
Weiterhin
weist die Steuereinheit 120 erste Ausgangsdaten 116 teilweise
oder vollständig einem zweiten Dateneingang 108 eines
zweiten Rechenblocks 104 als zweite Eingangsdaten 108 zu.
Damit liegen am zweiten Dateneingang 108 teilweise erste Ausgangsdaten 110 und
teilweise Nutzdaten 130. Die dem zweiten Dateneingang 108 zugeführten
ersten Ausgangdaten 110 werden nachfolgend der Kürze
halber auch als Zusatzdaten bezeichnet. „Teilweise" kann
hier entweder parallel anteilig oder seriell anteilig bedeuten.
Im einem Fall liegen also parallel zum einen Teil Nutzdaten und
zum anderen Teil Zusatzdaten an, im anderen Fall liegen für
eine bestimmte Anzahl von Systemtakten Nutzdaten und für eine
bestimmte Anzahl nachfolgender oder vorausgehender Systemtakte Zusatzdaten
an.
-
Die
eigentliche Aufgabe der Kryptographieeinrichtung ist es, die Nutzdaten
zu verarbeiten, d. h. zu verschlüsseln oder zu entschlüsseln
und verschlüsselte bzw. entschlüsselte Nutzdaten
nach extern auszugeben. Die ersten Ausgangsdaten 110 werden
nicht nach extern ausgegeben.
-
Nutzdaten
können Daten sein, welche von außen an die Kryptographievorrichtung übertragen worden
sind. Die Rechenblöcke sind Ver- und Entschlüsselungsblocks.
Das bedeutet, dass sie Eingangsdaten ver- bzw. entschlüsseln
können und an ihren Datenausgängen ausgeben können.
-
Die
Abfolge der Rechenoperationen im zweiten Rechenblock 104 oder
eine Anzahl parallel auszuführender Rechenoperationen im
zweiten Rechenblock 104 kann in einer bevorzugten Ausführungsform
durch die Zusatzdaten gesteuert werden. Ein solches Ausführungsbeispiel
wird unten anhand von 4 näher beschrieben.
In einem solchen Fall kann der zweite Rechenblock 104 auch
ausschließlich Nutzdaten ver- oder entschlüsseln.
Die Zusatzdaten haben in diesem Fall also allein die Funktion von Steuerinformationen.
-
Im
vorliegenden Ausführungsbeispiel können die Zusatzdaten
jedoch auch allein die Funktion haben, durch ihre zusätzliche
Verschlüsselung bzw. Entschlüsselung im zweiten
Rechenblock 104 die der Kryptographievorrichtung entnehmbare
Seitenkanalinformation zu reduzieren. Die Rechenblöcke
können in einer solchen besonders einfachen Ausführungsform
also auch ohne Funktionsblöcke zur Auswertung und Umsetzung
der entsprechenden Steuerinformationen ausgebildet sein.
-
2 zeigt
ein Ausführungsbeispiel der Kryptographievorrichtung 100 der 1 in
einem zweiten Betriebszustand. Dies bedeutet jedoch nicht, dass
die jeweiligen Teile notwendigerweise mit denen der 1 in
ihrer Funktion und Konstruktion identisch sind.
-
Im
Ausführungsbeispiel der 2 trennt
die Steuereinheit den Rückkopplungsdatenpfad 116 nach 112 auf.
Somit ist auch der Datenpfad 116 nach 110 zum
zweiten Dateneingang 108 getrennt. Die Rechenblöcke
verarbeiten parallel nur Nutzdaten, da den Dateneingängen
keine Zusatzdaten zugewiesen werden. Die Nutzdaten werden am ersten
Datenausgang 116 und am zweiten Datenausgang 114 nach extern
ausgegeben. Dies kann über einen Geräteausgang
geschehen (nicht dargestellt).
-
In 3 ist
ein weiteres Ausführungsbeispiel einer Kryptographievorrichtung 200,
auch Kryptographiesystem 200 genannt, gemäß der
Erfindung schematisch dargestellt. Hier tragen der Kryptographievorrichtung
aus 1 entsprechende Teile tragen der Einfachheit halber
die selben Bezugszeichen wie in 1. Dies
bedeutet jedoch nicht, dass die jeweiligen Teile notwendigerweise
mit denen der 1 in ihrer Funktion und Konstruktion
identisch sind. Die Kryptographievorrichtung 200 enthält
einen ersten Rechenblock 102 mit einem ersten Eingang 106 für erste
Eingangsdaten 106 und einen ersten Datenausgang 116 für
Ausgangsdaten 116. Das Kryptographiesystem ist ausgebildet,
erste Eingangsdaten 106 zu ver- oder entschlüsseln
und am Datenausgang auszugeben 116. Weiterhin enthält
die Kryptographievorrichtung 200 einen zweiten Rechenblock 104 mit
einem zweiten Dateneingang 108 und einem zweiten Datenausgang 114.
Der Rechenblock 104 ist ausgebildet Eingangsdaten 108 zu
ver- oder entschlüsseln und am zweiten Datenausgang 114 auszugeben.
Die Rechenblocks werden nachfolgend auch Ver- und Entschlüsselungsblocks
genannt. In einem Ausführungsbeispiel können Eingangsdaten und
Ausgangsdaten auch Datenströme sein. Für Ein- und
Ausgänge und die entsprechenden, dort abgreifbaren Eingangsdaten
bzw. Ausgangsdaten wird der Einfachheit halber das selbe Bezugszeichen
verwendet.
-
Das
Kryptographiesystem 200 ist wie die Kryptographievorrichtung 100 ausgebildet,
wie oben beschrieben im ersten und im zweiten Betriebszustand zu
arbeiten. Im ersten Betriebszustand ist der erste Ver- und Entschlüsselungsblock 102 mit
dem zweiten Dateneingang 108 des zweiten Ver- und Entschlüsselungsblocks über
eine Datenweiche 118 verbunden 110.
-
Das
Kryptographiesystem 200 enthält weiterhin eine
Steuereinheit 120. Die Steuereinheit ist mit dem ersten
und dem zweiten Rechenblock 102 bzw. 104, einem
Schalter 122 und der Datenweiche 118 verbunden.
Die Steuereinheit 120 ist ausgebildet, den ersten 102 und
den zweiten Rechenblock 104 zu steuern und Informationen
wie zum Beispiel Statusinformation zur Verfügung zu stellen
oder Informationen abzufragen.
-
Die
Steuereinheit öffnet im ersten Operationsmodus den Schalter 122,
so dass an einem ersten Geräteausgang 134 keine
Ausgangsdaten 116 ausgegeben werden.
-
Der
erste Rechenblock hat einen ersten Dateneingang 106 und
einen ersten Datenausgang 116, welcher über die
Datenweiche 118 mit dem ersten Dateneingang 106 verbunden
ist 112. Die Steuereinheit regelt im ersten Betriebszustand
die Datenweiche so, dass mindestens ein Teil des Datenstroms am
Datenausgang auf den ersten Dateneingang 106 zurückgekoppelt 112 wird.
Außerdem steuert die Steuereinheit die Datenweiche so,
dass ein Teil der ersten Ausgangsdaten an den zweiten Dateneingang des
zweiten Rechenblocks übertragen wird 110. Die an
den zweiten Rechenblock übertragenen ersten Ausgangsdaten 110 bilden
eingangs erläuterten Zusatzdaten und im vorliegenden Zusammenhang
auch die ebenfalls oben eingeführten Dummydaten.
-
Der
zweite Rechenblock verarbeitet im ersten Operationsmodus zum einen
die Zusatzdaten 110, welche vom ersten Rechenblock erzeugt
werden, und zum anderen Nutzdaten 130 jeweils anteilig.
Die Daten liegen in diesem Ausführungsbeispiel am zweiten
Dateneingang 108 an. Der zweite Rechenblock kann auch nur
Nutzdaten 130 oder nur Zusatzdaten 110 verarbeiten.
-
In
einer Ausführungsform ist die Menge der zusätzlichen
Eingangsdaten 110, welche der erste Rechenblock 102 an
den zweiten Rechenblock 104 überträgt, über
die Steuereinheit und die Datenweiche einstellbar. Die zusätzlichen
Eingangsdaten 110, welche berechnet werden sind keine Nutzdaten 130. Sie
dienen nur der Verschleierung der Berechnungen des zweiten Rechenblocks.
Diese zusätzlichen Berechnungen dienen der Reduktion von
Seitenkanalinformation gemäß der Erfindung. Bei
besonders sicherheitsrelevanten Berechnungen kann das Maß der
Zusatzdaten 110 bei zum Beispiel 90% liegen und nur 10%
der Daten sind Nutzdaten, mit welchen die Ver- bzw. Entschlüsselung
durchgeführt werden soll. Die zusätzlichen Eingangsdaten 110,
welche vom ersten Rechenblock durch Rückkoppelung erzeugt
werden sind pseudo-zufällige Daten. Dies kann so geschehen,
dass eine Datensequenz an den ersten Dateneingang 106 des
ersten Rechenblocks geliefert wird, welche dort verschlüsselt
werden und wieder auf den Eingang 106 zurückgekoppelt
werden, wobei mindestens ein Teil der ersten Ausgangsdaten an den
zweiten Rechenblock 104 übertragen wird 110.
Mindestens ein Teil der rückgekoppelten Daten durchlaufen
den ersten Rechenblock ein weiteres Mal, werden nochmals verschlüsselt
und werden wiederum zurückgekoppelt 112 und an
den zweiten Rechenblock 104 zumindest teilweise übertragen 110.
-
In
einer Ausführungsform wird die Abfolge der Rechenoperationen
im zweiten Rechenblock durch die Zusatzdaten gesteuert. Es kann
auch die Anzahl parallel auszuführender Rechenoperationen durch
die Zusatzdaten, welche am zweiten Dateneingang anliegen gesteuert
werden.
-
Der
erste Rechenblock 102 kann in einer weiteren Ausführungsvariante
einen zweiten Eingang (nicht dargestellt) für rückgekoppelte
Daten 112 enthalten. Der erste Rechenblock erhält
dabei einen Eingangsdatenstrom 106 und einen rückgekoppelten Datenstrom 112,
wobei er zu einem gewissen Teilverhältnis rückgekoppelte
Daten 112 und Eingangsdaten 106 verarbeitet. Mindestens
Teile der Daten des Rückkopplungsstrangs 112 werden
an den zweiten Rechenblock als zusätzliche Eingangsdaten 110 übertragen.
Dadurch erhält man ein großes Maß an Zufälligkeit
der an den zweiten Rechenblock 104 übertragenen
Daten 110.
-
Alternativ
kann dieses Teilverhältnis an Rückgekoppelten
Daten und Eingangsdaten von einem Puffer 126 eingestellt
werden.
-
In
einer weiteren Ausführungsform sind den Dateneingängen 106 und 108 Puffer 126 und 124 vorgeschaltet,
um am Eingang der Puffer anfallende Daten zwischenzuspeichern und
gemäß der Kapazität der Rechenblocks
an diese weiterzugeben. Der Puffer 124 hat in diesem Ausführungsbeispiel
zwei Eingänge, einen für die Nutzdaten und einen
für die Zusatzdaten 110. Der Puffer kann die Nutzdaten
und die Zusatzdaten wie beschrieben zeitlich seriell oder parallel
mischen. Die Puffer können mit der Steuereinheit 120 verbunden
sein und der Eingangsdatenstrom 106 und 108 kann
von der Steuereinrichtung 120 gesteuert werden. Die Puffer
können in einer Ausführungsform von den Rechenblocks
abgefragt werden. Hierzu kann ein Rechenblock beim Freiwerden von
Rechenkapazität Daten aus dem Puffer abfragen. Dies kann
geschehen, indem vordefinierte Datenpakete mit einem Takt abgerufen
werden, oder es kann eine Adressleitung vorgesehen sein, welche den
Puffer und den Rechenblock verbindet, um Daten direkt zu adressieren
und aus dem Puffer abzurufen. Eine Adressleitung oder eine Taktleitung
kann auch die Steuereinheit und die Puffer verbinden. Die Steuerung
der Puffer kann auch durch einen externen Systemtakt vorgegeben
werden. Die Puffer können auch die Anteile an Zusatzdaten 110 oder 112 und
die Anteile der Nutzdaten 130 steuern, wobei die Steuereinheit
die jeweiligen Anteile vorgeben kann, wenn sie mit den Puffern verbunden
ist.
-
In
einem Ausführungsbeispiel enthält die Kryptographievorrichtung
eine Zufallsquelle (nicht dargestellt), die nicht manipulierbar
ist, wie z. B. das Rauschen eines Widerstands, welches in ein digitales
Signal gewandelt wird. Eine als digitales Signal ausgegebene Zahl
kann zur Initialisierung des ersten Rechenblocks im ersten Betriebszustand
verwendet werden. Eine Alternative ist es, eine zufällige
Zahl zu generieren und diese bei ihrer ersten Verwendung in einem
nichtflüchtigen Speicher abzulegen. Der Speicher kann im
Puffer 126 enthalten sein. Im weiteren Verlauf wird die
Zufallszahl dann als Initialisierungsvektor verwendet. Nach Abschluss
der Berechnungen wird das Ergebnis im selben Speicher ablegt, also
der vorherige Zufallsvektor durch aktuelle Ausgangsdaten ersetzt.
Der Spei cher ist in einem Ausführungsbeispiel nach der
ersten Initialisierung nicht mehr von außen manipulierbar.
-
Die
Steuereinheit 120 ist im vorliegenden Ausführungsbeispiel
mit einer Benutzerschnittstelle UI oder einem anderen Steuergerät
verbunden. Damit wird ermöglicht, den Betriebszustand und
andere Einstellungen, wie die Anteile an Nutzdaten 130 und die
Anteile der Zusatzdaten 110 etc., von außen vorzugeben.
-
Im
zweiten Betriebszustand schließt die Steuereinheit 120 den
Schalter 122. Gleichzeitig sperrt sie die Datenweiche 118 an
beiden Ausgängen 112 und 110. Damit werden
keine Daten mehr vom Datenausgang 116 des ersten Rechenblocks 102 auf den
ersten Dateneingang 106 zurückgekoppelt. Es werden
in diesem Betriebszustand auch keine zusätzlichen Eingangsdaten 110 an
den zweiten Dateneingang 108 des zweiten Rechenblocks 104 übertragen,
weil die Datenweiche 118 sperrt. Damit können die
beiden Rechenblöcke 102, 104 unabhängig
voneinander und parallel Eingangsdaten oder Datenströme 130, 132 ver-
oder entschlüsseln. Die Ausgangsdaten des ersten und zweiten
Rechenblocks werden an einem jeweiligen Geräteausgang 134, 136 ausgegeben.
-
Bei
einer Ausführungsvariante ist der erste Rechenblock 102 ein
(Advanced Encryption Standard) AES Ver- und Entschlüsselungsblock
und der zweite Rechenblock 104 ein (Elliptic Curve Cryptosystem)
ECC-Rechenblock.
-
4 zeigt
eine weitere Ausführungsvariante 300 einer Kryptographievorrichtung.
Die Kryptographievorrichtung 300 ist der Ausführungsvariante aus 3 weitgehend
identisch, mit dem Unterschied, dass der zweite Rechenblock 104 einen
Zusatzdateneingang 138 besitzt und die Datenweiche 118 nicht
direkt mit dem Puffer 124 verbunden ist, sondern mit einer
zweiten Datenweiche 140. Die zweite Datenweiche 140 ist
mit der Steuereinheit 120 verbunden und von dieser steuerbar
(nicht dargestellt).
-
Im
ersten Betriebszustand werden die Zusatzdaten 110 zumindest
anteilig dem zweiten Rechenblock 104 durch die Datenweiche 140 zugewiesen.
Die Steuer einheit 120 ist dabei ausgebildet, die zweite
Datenweiche 140 so zu steuern, dass die Zusatzdaten 110 zumindest
anteilig dem Puffer 124 zugeführt werden können,
um mit den Nutzdaten 130 kombiniert zu werden, und dass
die Zusatzdaten 110 zumindest anteilig dem Zusatzdateneingang 138 zugeführt
werden können. Der Zusatzdateneingang 138 kann
auch als Ablaufsteuereingang 138 bezeichnet werden. Die
Zusatzdaten können am Ablaufsteuereingang 138 als
Abfolge-Steuerinformationen oder als Abfolge-Steuerinformationsfluss
bezeichnet werden. Der zweite Rechenblock ist in diesem Ausführungsbeispiel
ausgebildet, in einem von der Steuereinheit her empfangenen Steuersignal
enthaltene Abfolge-Steuerinformation zu extrahieren und die Abfolge
durchzuführender Rechenoperationen in Abhängigkeit
von der extrahierten Abfolge-Steuerinformation einzustellen. Dazu
kann der zweite Rechenblock einen Operationssteuerblock enthalten
(nicht dargestellt). Im einzelnen werden über den Abfolge-Steuerinformationsfluss
am Ablaufsteuereingang 138 die Abfolge der Rechenoperationen
im zweiten Rechenblock 104 gesteuert.
-
Auch
kann die Steuereinheit anhand der Zusatzdaten die Anzahl parallel
durchzuführender Rechenoperationen pro Takteinheit kann
beispielsweise durch ein Steuersignal vorgeben. Der erste Rechenblock,
oder der zweite Rechenblock, oder beide Rechenblöcke sind
in diesem Ausführungsbeispiel vorzugsweise ausgebildet,
aus dem eingehenden Strom von Zusatzdaten Steuerinformation zu extrahieren und
die Anzahl im jeweiligen Rechenblock parallel durchzuführender
Rechenoperationen pro Takteinheit in Abhängigkeit von der
extrahierten Steuerinformation einzustellen. Der Zusatzdaten bilden
oder enthalten insofern Steuersignale.
-
In
einem Ausführungsbeispiel kann die Steuereinheit 120 zwischen
verschiedenen Betriebseinstellungen wechseln. In einer ersten Betriebseinstellung
verarbeitet der zweite Rechenblock 104 die Zusatzdaten 110 und
die Nutzdaten 130. Die Zusatzdaten 110 und die
Nutzdaten 130 werden dabei im Puffer 124 gemischt.
Das heißt, von einem Teil vom zweiten Rechenblock parallel
verarbeiteter Daten besteht ein erster Anteil aus Nutzdaten und
ein zweiter Anteil aus Zusatzdaten.
-
Die
Steuereinheit steuert die zweite Datenweiche 140 dazu so,
dass die Zusatzdaten an den Puffer 124 durchgeleitet werden.
-
In
einer zweiten Betriebseinstellung verarbeitet der zweite Rechenblock
sequentiell Nutzdaten und nach einigen Systemtaktzyklen Zusatzdaten. Der
Puffer 124 ist dabei ausgebildet, sequentiell, wiederholt
Nutzdaten 130 und danach Zusatzdaten 110 an den
zweiten Dateneingang 108 zu leiten. Die Daten am zweiten
Dateneingang 108 können dabei als Datenblöcke
vorliegen. Diese Datenblöcke können z. B. eine
Länge von 256 Bit haben.
-
In
diesen Betriebseinstellungen führt die zweite Datenweiche 140 dem
Ablaufsteuereingang 138 keine Zusatzdaten 110 bzw.
keinen Kontrollfluss zu.
-
In
einer dritten Betriebseinstellung verarbeitet der zweite Rechenblock 104 ausschließlich
Nutzdaten 130 oder Nutzdaten und Zusatzdaten 110.
Der zweite Rechenblock 104 steuert dabei die Abfolge der
abzuarbeitenden Rechenoperationen bei der Ver- oder Entschlüsselung
anhand der Zusatzdaten 110, welche am Zusatzdateneingang 138 anliegen.
-
In
einer vierten Betriebseinstellung verarbeitet der zweite Rechenblock 104 ausschließlich
Nutzdaten 130 oder Nutzdaten und Zusatzdaten 110.
Der zweite Rechenblock 104 steuert dabei die Anzahl der parallel
durchzuführenden Rechenoperationen anhand der Zusatzdaten 110 bzw.
des Steuerflusses. Die Anteile der Nutzdaten 130 und der
Zusatzdaten 110, welche an den zweiten Dateneingang 108 geliefert
werden kann dabei von dem Puffer 124 gesteuert werden.
In diesen Betriebseinstellungen steuert die Steuereinheit 120 die
zweite Datenweiche 140 so, dass sowohl dem Ablaufsteuereingang 138 als
auch dem Puffer 124 und damit dem zweiten Dateneingang 108 zumindest
anteilig Zusatzdaten zugeführt werden. Die Steuereinheit 120 kann
der zweiten Datenweiche 140 auch vorgeben, Zusatzdaten 110 ausschließlich
dem Ablaufsteuereingang 138 zuzuleiten.
-
Die
Betriebseinstellungen können während des zweiten
Betriebszustands von der Steuereinheit 120 eingestellt
werden.
-
5 zeigt
zur näheren Erläuterung der Funktionsweise der
Kryptographievorrichtungen der 1 bis 4 schematisch
parallele Multiplikationseinheiten, wie sie im zweiten Rechenblock
in einer ersten Weise Verwendung finden können.
-
Mindestens
einer der beiden Rechenblöcke enthält mehrere
Multipliziereinheiten 502 bis 514, auch Multiplizierer
genannt, welche parallel Multiplikationsoperationen, schematisch
durch Pfeile 518 bis 526 dargestellt, durchführen
können. Dabei können während jedes Mehrfachmultiplikationsschrittes, welcher
mehrere parallele Multiplikationsoperationen 518 bis 526 an
mehreren parallel zur Verfügung stehenden Dateneinheiten 528 bis 536 umfasst,
unterschiedlich viele Multiplikationsoperationen parallel durchgeführt
werden. Dies kann eine zufällige Anzahl von parallelen
Multiplikationsoperationen, wie im vorliegenden Fall die fünf
Multiplikationsoperationen 518 bis 526 sein. Die
restlichen Multipliziereinheiten 512 bis 514 führen
keine Multiplikationsoperation durch.
-
Die
Dateneinheiten 528 bis 536 können Bitblöcke
jeglicher Länge sein, wie z. B. 4-Bitblöcke. Durch
diese unterschiedliche Anzahl an parallel durchgeführten
Multiplikationsoperationen 518 bis 526 wird der
Anteil an Seitenkanalinformation reduziert, weil zum Beispiel die
Dauer und der Energieverbrauch für eine Multiplikation
unterschiedlich ist. Die Anzahl der verwendeten parallelen Multiplikationsoperationen 518 bis 526 kann
anhand der Zusatzdaten gesteuert werden.
-
Im
weiteren wird Bezug auf 6 genommen. 6 zeigt
zur näheren Erläuterung der Funktionsweise der
Kryptographievorrichtungen der 1 bis 4 schematisch
parallele Multiplikationseinheiten, wie sie im zweiten Rechenblock
in einer zweiten Weise Verwendung finden können. Es kann
gemäß 6 auch eine zufällige
Anzahl der Multipliziereinheiten 602 bis 606 zufällige
Daten 628 bis 632 oder Dummydaten 628 bis 632 berechnen, während
die andere Multipliziereinheiten 612, 614 die
Eingangsdaten des Rechenblocks 634, 636 bearbeiten
und einige Multipliziereinheiten 608, 610 keine Rechenoperation
durchführen.
-
Dadurch
kann die Seitenkanalinformation zusätzlich reduziert werden,
weil zufälliges Rauschen durch noch kleinere Datenblöcke
erzeugt werden kann. Weiterhin kann der Stromverbrauch genauer eingestellt
werden, weil nicht durchgeführte Multiplikationsoperationen
in den Multipliziereinheiten 608, 610 weniger
Strom verbrauchen. Die Steuereinheit kann dabei die parallel ausgeführten
Operationen und Anteile an Nutzdaten 634, 336 und
Zusatzdaten 628 bis 632 vorgeben. Dafür
ist die Steuereinheit 120 mit den Rechenblöcken 102, 104 dem Puffer 124 und
der zweiten Datenweiche 140 verbunden.
-
In
einem Ausführungsbeispiel werden Multiplikationsoperationen
mit Hilfe einer Multiplikation nach Karatsuba durchgeführt.
Andere Multiplikationsoperationen können mit anderen Realisierungsformen
der Multiplikation durchgeführt werden.
-
In
einer Ausführungsform kann der Operationsfluss variabel
gestaltet sein. Damit wird die Reihenfolge der Operationen innerhalb
eines Ver- oder Entschlüsselungsalgorithmus gemäß einem
Kontrollfluss vertauscht, soweit es der Algorithmus zulässt. Vorzugsweise
wird die Reihenfolge zufällig beeinflusst. Durch eine zufällige
Reihenfolge der Operationen ist einem Beobachter oder Angreifer
weniger über die Abläufe im Kryptosystem bekannt,
wodurch sich Seitenkanalinformationen schlechter zuordnen lassen.
In diesem Ausführungsbeispiel wird keine zusätzliche
Energie oder Zeit für den Algorithmus verbraucht, weil
die Gesamtanzahl der Operationen gleich bleibt.
-
Bei
einem Ausführungsbeispiel kontrolliert die Steuereinheit
die Auswahl der Reihenfolge der Rechenoperationen oder die Anzahl
von parallel getätigten Multiplikationsoperationen. Deshalb
kann sie über Steuerleitungen mit den Rechenblöcken
verbunden sein.
-
Die
Zusatzdaten und gegebenenfalls der zufällige Kontrollfluss
können von dem ersten Rechenblock in Form von Dummydaten
geliefert werden. Die Steuereinheit kann in einer Ausführungsvariante
die rückgekoppelten ersten Ausgangsdaten empfangen und
für die Steuerung des variablen Operationsflusses für
die Rechenoperationen im zweiten Rechenblock verwenden. Dieser Teil
der Steuer einheit 120 kann auch teilweise oder vollständig
im zweiten Rechenblock 104 integriert sein.
-
In
einer Ausführungsform enthält mindestens einer
der Rechenblöcke genau 81 4-Bit Multipliziereinheiten,
die parallel angesprochen werden können.
-
In
einer Ausführungsform ist der Rechenblock, welcher mehrere
parallele Multipliziereinheiten enthält der zweite Rechenblock.
-
Die
Steuereinheit kann auch aus mehreren Teilen bestehen und ganz oder
teilweise in den Rechenblöcken integriert sein.
-
Es
sind auch Ausführungsvarianten möglich, bei welchen
beide Rechenblöcke jeweils die Rolle des ersten Rechenblocks
oder des zweiten Rechenblocks übernehmen können.
Die Steuereinheit ist dabei ausgebildet, die Rechenblöcke
so zu kontrollieren, dass sie entweder als erste, rückgekoppelter
Rechenblock zur Erzeugung von Zusatzdaten arbeiten, oder als zweiter
Rechenblock, zur zumindest teilweise Verarbeitung von Nutzdaten.
-
Die
Zusatzdaten werden im folgenden auch mit zusätzlichen (pseudozufälligen)
Kontrollsignalen, Pseudodaten, zufälligen Daten oder Zufallsstrom
bezeichnet.
-
7 zeigt
einen Ablaufplan für eine Iteration bei der Ver- Entschlüsselung
nach einem elliptischen Kurven-Kryptographie (ECC) Algorithmus.
Mit x bis x2 und z bis z2 werden Zahlen bezeichnet und mit M1 bis
M6 sind Multiplikationen bezeichnet. Mit S1 bis S5 werden Potenzoperationen
bezeichnet und mit A1 bis A3 werden Additionsoperationen bezeichnet.
-
Für
jedes Bit des Schlüssels muss dieser Ablauf durchlaufen
werden. Dieser Ablaufplan gilt für den Fall, dass das aktuelle
Bit 1 ist. Ist es 0, sieht der Ablaufplan anders aus. Es ist die
innere Schleife des Montgomery oder Lopez/Dahab-Algorithmus. Nähere
Einzelheiten sind beschrieben in: Julio L'opez and Ricardo Dahab.
Fast multiplication an elliptic curves over gf(2m) without precomputation.
-
In CHES
'99: Proceedings of the First International Workshop an Cryptographic
Hardware and Embedded Systems, pages 316–327, London, UK, 1999.
Springer-Verlag.
-
An
dem Graph sieht man die Abhängigkeiten der Operationen.
Z. B. A1 ist von den Multiplikationen M1 und M2 abhängig.
Als erste Operation kann man entweder M1, M2, S1 oder S2 ausführen.
Es gibt offensichtlich eine Menge von möglichen konkreten Abläufen.
In diesem Ausführungsbeispiel wird der konkrete Ablauf
von den zusätzlichen (pseudozufälligen) Kontrollsignalen
abhängig gemacht. Die Verwaltung und Ausführung
geschieht dabei im ECC-Block, der den zweiten Rechenblock 104 bildet.
Im zweiten Rechenblock 104 gibt es einen Kontrollblock
der den Fluss steuert. Dieser Kontrollblock kann auch Teil der Steuereinheit 120 sein.
Er verarbeitet die Steuersignale von 120 und die Zusatzdaten 110.
Die Steuereinheit 120 gibt dabei den Betriebszustand und
ggf. die Betriebseinstellung vor und der erste Rechenblock 104 liefert
die zusätzlichen oder zufälligen Daten 110.
Bei den dritten Betriebseinstellungen kontrolliert die Steuereinheit
die Abfolge der Rechenoperationen im zweiten Rechenblock anhand
des Zufallsdatenstroms. Liefert der Zufallsstrom 110 z.
B. eine 0 wird M1 als erste Operation ausgeführt, wird eine
1 geliefert ist es M2, kommt eine 2 oder 3 ist es S1 bzw. S2.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
-
Zitierte Nicht-Patentliteratur
-
- - CHES '99:
Proceedings of the First International Workshop an Cryptographic
Hardware and Embedded Systems, pages 316–327, London, UK, 1999.
Springer-Verlag [0144]