Die vorliegende Erfindung bezieht sich auf das technische Gebiet der
Kryptographie und insbesondere bezieht sich die vorliegenden Erfindung auf das technische
Teilgebiet der kryptographischen Busverschlüsselung.
Um Daten von einem Bauelement zu einem weiteren Bauelement auf einer
Halbleiterplatine zu übertragen, werden oftmals Signalbusse mit mehreren parallel
verlaufenden Leitungen verwendet. Um jedoch einen Signalabgriff bei sicherheitsrelevanten
Anwendungen an diese Busleitungen zu vermeiden, wird oftmals eine Busverschlüsselung
angewandt, so dass die Daten nur in verschlüsselter Form zwischen den beiden
Bauelementen übertragen werden. Ein möglicher Angreifer müsste dann,
um an die Information zu kommen, die zwischen den beiden Bauelementen ausgetauscht
werden, den entsprechenden Verschlüsselungsschlüssel oder einen zugehörigen
Entschlüsselungsschlüssel kennen. Oftmals wird für diese Busverschlüsselung
im Stand der Technik eine Stromchiffre verwendet, wie sie beispielsweise aus der
WO 01/40950 A2, der EP 1118941 A1,
der EP1249010 B1 oder der
EP 1472587 B1 bekannt sind.
In der 2 ist eine solche Datenübertragung
mittels Busverschlüsselung in einem Blockschaltbild näher dargestellt.
Hierbei werden mittels eines ersten Busses 202 mit m Bitleitungen die (verschlüsselten)
Daten mt zwischen einem ersten Bauelement CPU und einem zweiten Bauelement
AES übertragen. Die in 2 schematisch dargestellten
beiden Bauelemente können jedoch auch softwaremäßig realisiert sein,
beispielsweise als unterschiedliche Routinen, die in einem Prozessor ablaufen.
Weiterhin können auch von dem zweiten Bauelement AES (verschlüsselte)
Daten MT über den zweiten Bus 204 mit m Bitleitungen übertragen
werden.
Bezüglich der Datenverarbeitung in jedem der beiden Bauelemente
CPU oder AES lässt sich die Funktionsweise dieser Verarbeitung wie folgt beschreiben.
An einem Eingang 206 des ersten Funktionsblocks (d.h. des ersten Bauelementes)
CPU werden die verschlüsselten Daten eines Datenstroms empfangen und (beispielsweise
durch eine Exklusiv- ODER -Verknüpfung oder ähnliches) mit einem Entschlüsselungsschlüssel
TM entschlüsselt. Dieser Entschlüsselungsschlüssel TM
kann dabei von einem One-Time-Pad-Generator OTPG erzeugt werden, kann jedoch beispielsweise
auch aus einer Look-Up-Tabelle entnommen werden. Dieser Entschlüsselungsschlüssel
TM entspricht dabei einem Verschlüsselungsschlüssel TM,
der zum Verschlüsseln des Eingangsdatenstromes auf dem Bus 204 von
der Funktionseinheit AES verwendet wird. Im vorliegenden Fall sind Verschlüsselungsschlüssel
TM und Entschlüsselungsschlüssel TM identisch. Als
Resultat der Verknüpfung der verschlüsselten Eingangsdaten mit dem Entschlüsselungsschlüssel
im Entschlüsseler 208 werden Klartextdaten M Ausgegeben und zwischengespeichert.
Für die weitere Verarbeitung in der Funktionseinheit CPU, welche dann maskiert
oder verschlüsselt stattfinden soll, wird eine Verschlüsselung in einem
Verschlüssler 210 mit einem T-Key durchgeführt, so dass während
der eigentlichen Datenbe- oder -verarbeitung die Daten nur verschlüsselt/maskiert
in der Funktionseinheit CPU verwendet werden. Anschließend werden in einem
Entschlüsseler 212 die ver- oder bearbeiteten Daten wieder mit einem
entsprechenden T-Key entschlüsselt und in einer weiterfolgenden Stufe (Verschlüssler
214) mit einem weiteren Verschlüsselungsschlüssel tm
verschlüsselt, um bei einer Übertragung zum zweiten Funktionsblock AES
über den ersten Bus 202 wieder in verschlüsselter Form übertragen
werden zu können. Der weitere Verschlüsselungsschlüssel tm
kann dabei wiederum ein One-Time-Pad sei.
Die Verarbeitung im zweiten Funktionsblock RES erfolgt nun analog,
d. h. es erfolgt wiederum eine Entschlüsselung mit einem entsprechenden Entschlüsselungsschlüssel
tm, der beispielsweise auch durch einen One-Time-Pad-Generator OTPG der
weiteren Datenverschlüsselungsvorrichtung generiert wird, wodurch ein Klartext
m resultiert, der zwischengespeichert wird. Hieraus folgt wiederum ein Verschlüsseln
des Klartextes m beziehungsweise der gespeicherten Version des Klartextes m unter
Verwendung eines T-Keys, um die eigentlichen Rechenschritte im Funktionsblock AES
unter Verwendung der verschlüsselten Daten durchzuführen. Hieran anschließend
erfolgt wiederum ein Entschlüsseln eines durch die Funktionseinheit AES berechneten
Wertes, wobei dieser entschlüsselte Wert wiederum unter Verwendung des von
dem One-Time-Pad-Generators OTPG bereitgestellten Schlüssels TM
erfolgt, wodurch sich der verschlüsselte Datenstrom MT ergibt, der
über den zweiten Bus 204 zur ersten Funktionseinheit CPU übertragen
wird. Das Gesamtschaltbild ist in 2 dargestellt, wobei
dieses Bild eine Kombination von verschlüsselter Datenübertragung mit
verschlüsseltem Rechnen zeigt.
Die in 2 dargestellte Realisierung zeigt
jedoch mehrere Probleme. Erstens ist anzumerken, dass das größte Problem
darin besteht, dass ein Klartextanteil m und M in einem solchen Design durch die
Partitionierung der Busleitungen, insbesondere unter Verwendung
der Designvorschrift „Registered out", entsteht. Für eine solche Partitionierung
wird insbesondere ein X-Bus-Scramble XBS verwendet. Für eine solche Buserstellung
versuchen alle automatischen Tools zur Layouterstellung auftretende Gatter timingneutral
bevorzugt in der Mitte einer Busleitung zu platzieren. Hierdurch ist jedoch ein
relativ großer Teil der Leitung in einer Busleitung von außen (beispielsweise
durch einen Tastkopf) abgreifbar, was insbesondere bei der Übertragung von
Klartext auf eine solche Busleitung in Zusammenhang mit einer verschlüsselten
Übertragung und einem verschlüsselten Rechnen ungünstig ist, da eine
solche „Klartextleitung" als schwächstes Glied in einer sicherheitsrelevanten
Datenübertragung angesehen werden muss. Nur durch aufwendiges Handlayout kann
der Klartextanteil der Busleitungen so gering wie möglich gehalten werden.
Weiterhin muss für das verschlüsselte/maskierte Rechnen
ein temporärer Schlüssel (T-Key) generiert werden, was jedoch nur durch
zusätzliche Hardware bzw. durch numerisch aufwändiges zusätzliche
Rechnen erreicht werden kann.
Drittens ist auch noch anzumerken, dass ein Wechsel des T-Keys nur
nach „leergelaufener Pipeline" möglich ist, d. h. dass es die Verwendung
eines T-Keys auf einen oder mehrere Datenblöcke beim Berechnen in der ersten
Funktionseinheit CPU oder der zweiten Funktionseinheit AES erfordert, den Schlüssel
bis zur vollständigen Abarbeitung der entsprechenden Operationen auf dem jeweiligen
Datenblock angewandt wird.
Die DE 10201444 A1
beschreibt ein Rechenwerk und ein Verfahren zum Kombinieren eines ersten Operanden
mit einem zweiten Operanden, denen die Überlegung zugrunde liegt, dass ein
1-Bit-Volladdierer, der das Kernstück eines Bit-Slicer eines Rechenwerks darstellt,
nicht nur Addierfunktionen ausführen sollte, sondern Multifunktionsfähigkeiten
besitzen sollte, weshalb dort vorgeschlagen wird, dass ein 1-Bit-Volladdierer so
konstruiert ist, dass er neben seiner originären Addiererfunktion auch zumindest
die üblichen logischen Grundfunktionen ausführt, ohne dass Änderungen
im Addierer selbst bzw. Hinzufügungen im Addierer selbst notwendig sind. Erzielt
wird dies dadurch, dass von bekannten Addierer-Gleichungen für das Summenbit
und den Übertrag weggegangen wird und stattdessen modifizierte Addierergleichungen
verwendet werden. Es bestehe ein Vorteil darin, dass die Vorgehensweise ohne Weiteres
für verschlüsselte Operanden geeignet sei. Dabei werden keine Klartextdaten
erzeugt.
Die US 2004/0136530 A1 beschreibt eine arithmetische Einheit, die
verschlüsselte Eingangsdaten maskiert verarbeitet und die Ausgabedaten unter
Verwendung eines neu zugeführten Verschlüsselungsschlüssels verschlüsselt
erzeugt.
Die EP 1283458 A2
beschreibt einen angriffssicheren Mikroprozessor mit schneller Kontextumschaltung,
bei dem intern ein temporärer Schlüssel erzeugt wird, um verschlüsselte
Daten weiter zu verarbeiten.
Es ist die Aufgabe der vorliegenden Erfindung, einen Ansatz bereitzustellen,
der gegenüber dem Stand der Technik deutlich sicherer und zugleich noch einfacher
umsetzbar ist.
Diese Aufgabe wird durch eine Busverschlüsselungsvorrichtung
gemäß Anspruch 1, ein Busverschlüsselungssystem gemäß Anspruch
10, ein Verfahren gemäß Anspruch 11 sowie ein Computerprogramm gemäß
Anspruch 12 gelöst.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass zur
Vermeidung eines freiliegenden Klartextanteils ein mit einem Verschlüsselungsschlüssel
verschlüsselter Eingangsdatenstrom nicht zunächst mit einem dem Verschlüsselungsschlüssel
entsprechenden Entschlüsselungsschlüssel entschlüsselt wird, sondern
beispielsweise die Daten des verschlüsselten Eingangsdatenstroms und der Verschlüsselungsschlüssel
in zwei Verarbeitungszweigen (vorzugsweise parallel) verarbeitet werden. Erst bei
einer erneuten Übertragung werden die Daten aus den beiden Verarbeitungszweigen
miteinander kombiniert, wobei zugleich beispielsweise ein weiterer Verschlüsselungsschlüssel
berücksichtigt wird, um die kombinierten Daten verschlüsselt an eine weitere
Datenverarbeitungseinrichtung übertragen zu können. Dies bedeutet, dass
nunmehr das Entschlüsseln der Daten des verschlüsselten Eingangsdatenstroms
entfällt, wodurch einerseits kein Klartextanteil entsteht und andererseits
keine aufwendige Umverschlüsselung unter Verwendung des T-Keys erforderlich
ist. Zugleich kann aber der Klartextanteil, soweit benötigt, auch aus den entsprechenden
Daten in den jeweiligen Verarbeitungszweigen durch Kombination (beispielsweise durch
Exklusiv-ODER-Verknüpfung) gewonnen werden.
Die vorliegenden Erfindung bietet den Vorteil, dass nicht mehr zwischen
einer Verschlüsselung während der Übertragung und einer Verschlüsselung/Maskierung
während der Be- bzw. Verarbeitung gewechselt werden muss.
Dies bietet als weitere Vorteile, dass keine Umverschlüsselung zwischen dem
Empfang und dem Rechenwerk zu erfolgen braucht und somit kein Klartext auf irgendeiner
Leitung entsteht, wodurch ferner auch kein aufwendiges Handlayout für ein solches
Schaltungs- bzw. Chipdesign notwendig ist. Ferner bietet sich der Vorteil, dass
der erfindungsgemäße Ansatz lediglich einen minimierten Hardwareaufwand
durch den Entfall der T-Key-Verschlüsselung erfordert. Ferner kann auch vorteilhaft
jede gestartete Operation zur maskierten Berechnung einen eigenen Schlüssel
bekommen, der unabhängig vom Pipelinezustand in einem Rechenwerk ist.
Ein exemplarisches Ausführungsbeispiel wird nachfolgend anhand
der beiliegenden Zeichnungen näher erläutert. Es zeigen:
1 ein Blockschaltbild eines Ausführungsbeispiels
der vorliegenden Erfindung; und
2 ein Blockschaltbild eines herkömmlichen Ansatzes
zur Kombination von verschlüsselten Datenübertragung mit verschlüsseltem
Rechnen.
In der nachfolgenden Beschreibung werden gleiche oder ähnliche
Elemente mit gleichen oder ähnlichen Bezugszeichen versehen, wobei auf eine
wiederholte Beschreibung dieser Elemente verzichtet wird.
Die 1 zeigt ein Blockschaltbild eines
Ausführungsbeispiels der vorliegenden Erfindung. Hierbei umfasst eine erste
Datenverschlüsselungsvorrichtung CPU eine Datenbereitstellungseinrichtung
102 zum Empfangen eines mit einem Verschlüsselungsschlüssel TM
verschlüsselten Eingangsdatenstroms MT. Diese Datenbereitstellungseinrichtung
102 kann beispielsweise ein Speicher oder auch ein Eingang der ersten Datenverschlüsselungsvorrichtung
CPU sein. Ferner umfasst die erste Datenverschlüsselungsvorrichtung eine Schlüsselbereitstellungseinheit
104 zum Bereitstellen eines dem Verschlüsselungsschlüssel TM
entsprechenden Entschlüsselungsschlüssel TM. Die Schlüsselbereitstellungseinheit
104 kann dabei, wie in 1 dargestellt, ein
One-Time-Pad-Generator OTPG sein, sie kann jedoch auch ein Speicher sein, in dem
ein entsprechender symmetrischer oder asymmetrischer Entschlüsselungsschlüssel
gespeichert ist (beispielsweise als Look-Up-Tabelle).
Ferner umfasst die erste Datenverschlüsselungsvorrichtung eine
erste Zweigbearbeitungseinheit 106 die ausgebildet ist, um eine erste Operation
108 auf die Daten des verschlüsselten Eingangsdatenstromes MT
anzuwenden, um erste Zweigdaten mr zu erhalten. In 1
ist die erste Zweigbearbeitungseinheit 106 nicht expliziert dargestellt
sondern wird lediglich durch die Wirkung der ersten Operation 108, d. h.
durch den gestrichelt dargestellten Pfeil mit dem Bezugszeichen 108 gekennzeichnet.
Die erste Operation kann dabei eine AND, OR, XOR, NAND, NOR, NAND oder eine Kombination
dieser Operationen sein (entsprechend der EP
1472587 B1). Analog umfasst die erste Datenverschlüsselungsvorrichtung
CPU auch eine zweite Zweigdatenbearbeitungseinheit 110, die ausgebildet
ist, um eine zweite Operation 112 auf den Entschlüsselungsschlüssel
TM anzuwenden, um zweite Zweigdaten rm zu erhalten. Die zweite
Operation kann dabei eine AND, OR, XOR, NAND, NOR, NAND oder eine Kombination dieser
Operationen sein (entsprechend der EP 1472587
B1). Hierbei ist wiederum die zweite Zweigdatenverarbeitungseinheit
110 nicht expliziert dargestellt sondern lediglich durch die Wirkung der
zweiten Operation 112 (d. h. durch den gestrichelt dargestellten Pfeil)
angedeutet. Die erste oder zweite Operation kann auch aufeinanderfolgende Bits verarbeiten
bzw. kombinieren um entsprechenden erste oder zweite Zweigdaten zu erhalten.
Die ersten oder zweite Zweigdatenbearbeitungseinheit 110,
110' kann dabei ausgebildet sein, um eine oder eine Mehrzahl von mathematischen
Unteroperationen auszuführen, die durch folgende Geheimtext-Rechenvorschriften
gegeben sind:
– für eine AND-Operation:
– für eine OR-Operation:
– für eine NAND-Operation:
– für eine NOR-Operation:
– für eine XOR-Operation:
– für eine XNOR-Operation:
– für eine Volladdiererfunktion mit folgendem Summenbit:
oder
– für eine Volladdiererfunktion mit Übertragbit:
CARRY: r(k)←
wobei a(i) der mit dem ersten Verschlüsselungsparameter verschlüsselte
erste Operand ist, wobei b(j) der mit dem zweiten Verschlüsselungsparameter
verschlüsselte zweite Operand ist, wobei i der erste Verschlüsselungsparameter
ist, wobei j der zweite Verschlüsselungsparameter ist, wobei k der dritte Verschlüsselungsparameter
ist, wobei der dritte Verschlüsselungsparameter gleich der XOR-Verknüpfung
des ersten und des zweiten Verschlüsselungsparameters ist, wobei r(k)
mit dem dritten Verschlüsselungsparameter verschlüsselte Ergebnis der
Operation ist, und wobei cin(k) ein mit dem dritten Verschlüsselungsparameter verschlüsselter
Übertrag-Eingang ist. Hieraus wird ersichtlich, dass die Verknüpfung der
i und j als beispielsweise zwei aufeinanderfolgende One-Time-Pads des One-Time-Pad-Generators
104 durch eine XOR-Verknüpfung (zweite Operation 112) verknüpft
werden, wogegen die beiden Eingangsdaten a(i) und b(j) nicht
durch eine alleinige XOR-Verknüpfung (erste Operation 108), sondern
beispielsweise durch eine oben genannte AND- oder eine SUM-Verknüpfung verknüpft
werden. Hierbei ist jedoch anzumerken, dass für die Operationen AND, OR, NAND,
NOR, SUM und CARRY der erste oder zweite Verschlüsselungsparameter i und j
in der Berechnungsvorschrift zu verwenden sind, wodurch in einem solchen Fall ein
Datenaustausch zwischen den Rechenwerken erfolgen sollte, die die erste und zweite
Operationen 112, 108 ausführen.
Schließlich umfasst die erste Datenverschlüsselungsvorrichtung
CPU einen Verschlüsseler 114, der ausgebildet ist, um einen verschlüsselten
Ausgabedatenstrom mt aus den ersten Zweigdaten mr und den
zweiten Zweigdaten rm unter Verwendung eines Ausgabeverschlüsselungsschlüssels
tm zu erstellen. Hierbei kann der Verschlüsseler 114 ausgebildet
sein, um eine Exklusiv-ODER-Verknüpfung der entsprechenden Daten durchzuführen,
um den verschlüsselten Ausgabedatenstrom mt zu erhalten.
Hierbei ist anzumerken, dass das durch den One-Time-Pad-Generator
OTPG erzeugte One-Time-Pad ein temporärer Schlüssel ist, der vorzugsweise
synchron zu der maskierten Verarbeitung der verschlüsselten Eingangsdaten in
der ersten Zweigverarbeitungseinheit verarbeitet wird. Dies bedeutet, dass vorzugsweise
zu jedem Eingangsdatum ein One-Time-Pad-"Datum" zugeordnet ist, derart, dass eine
Entschlüsselung der maskiert verarbeiteten Eingangsdaten möglich wäre.
M den erfindungsgemäßen Vorteil jedoch nutzen zu können, wird keine
Entschlüsselung der verschlüsselten Eingangsdaten durchgeführt, so
dass vorzugsweise keine Klartext-Daten in dem System offen liegen (außer natürlich
bei einer direkten Ausgabe der Klartext-Daten zu einem autorisierten Benutzer).
Einen analogen Aufbau kann auch die zweite Datenverschlüsselungsvorrichtung
AES haben, wie sie im rechten Teil der 1 dargestellt
ist. Hierbei sind die entsprechenden Elemente durch entsprechende Bezugszeichen
unter Hinzufügung eines Apostrophs gekennzeichnet worden.
Sollen nun in der ersten Datenverschlüsselungsvorrichtung CPU
Daten bearbeitet werden, die in verschlüsselter Form von der zweiten Datenverschlüsselungsvorrichtung
AES ausgegeben werden, so kann zunächst der verschlüsselte Eingangsdatenstrom
MT über den zweiten Bus 204 empfangen und in die Datenbereitstellungseinrichtung
102 eingespeichert werden. Hierbei ist anzumerken, dass ein entsprechender
Entschlüsselungsschlüssel TM bekannt sein sollte, der dann
durch die Schlüsselbereitstellungseinheit 104 bereitgestellt (und
beispielsweise in einem Speicher gespeichert) wird. Hierbei ist anzumerken, dass
der empfangene Datenstrom auch durch eine Stromchiffre codiert
sein kann, wobei dann eine zur Entschlüsselung erforderliche Stromchiffre auch
durch die Schlüsselbereitstellungseinheit geliefert werden kann.
Entgegen den bekannten Ansätzen wird nunmehr jedoch keine Entschlüsselung
der bereitgestellten Daten durchgeführt (wodurch ein Klartext resultieren würde),
sondern es wird vielmehr eine parallele Verarbeitung sowohl der bereitgestellten
Daten des verschlüsselten Eingangsdatenstroms als auch des Entschlüsselungsschlüssel
durchgeführt. Dies erfolgt einerseits in der ersten Zweigbearbeitungseinheit
106, in der auf die Daten des verschlüsselten Eingangsstromes die
erste Operation 108 angewendet wird. Entsprechend wird in der zweiten Datenbearbeitungseinheit
110 die zweite Operation 112 auf den Entschlüsselungsschlüssel
TM angewendet. Hierbei kann die erste oder zweite Operation
108 bzw. 112 auch eine Mehrzahl von Teiloperationen umfassen,
so dass unter dem Anwenden der ersten oder zweiten Operation 108,
112 auch das Ausführen von Rechenschritten eines Algorithmus auf die
jeweiligen Daten verstanden werden kann. Vorzugsweise sollten sich jedoch die erste
und zweite Operation entsprechen, so dass beispielsweise die gleichen Rechenschritte
sowohl auf die Daten des verschlüsselten Eingangsdatenstromes und den Verschlüsselungsschlüssel
angewendet werden, damit eine parallele (insbesondere eine voneinander unabhängige
getrennte) Bearbeitung der jeweiligen Daten durchgeführt werden kann, um entsprechende
Zweigdaten zu erhalten.
Liegen dann die ersten Zweigdaten mr und die zweiten Zweigdaten
rm vor, können diese Zweigdaten in dem Verschlüssler
114 unter Verwendung eines Ausgabeverschlüsselungsschlüssel tm
zu einem verschlüsselten Ausgabedatenstrom mt verschlüsselt
werden. Hierbei tritt nun die besondere Wirkung des erfindungsgemäßen
Ansatzes hervor, indem nunmehr nicht ein Klartext m erstellt zu werden braucht (der
beispielsweise durch eine entsprechende Verknüpfung der zweiten Zweigdaten
rm mit den ersten Zweigdaten mr resultieren würde), sondern
dass nunmehr zugleich auch der Ausgabeverschlüsselungsschlüssel tm
berücksichtigt wird und somit gleich der verschlüsselte Ausgabedatenstrom
ohne die Berechnung von Klartextdaten m ermittelt werden kann.
Hierbei ist anzumerken, dass auch der Ausgabeverschlüsselungsschlüssel
tm ein One-Time-Pad sein kann, der beispielsweise auch von der Schlüsselbereitstellungseinheit
104 generiert werden kann. Ferner muss auch der Ausgabeverschlüsselungsschlüssel
tm nicht dem Entschlüsselungsschlüssel Tm entsprechen
sondern kann neben einer Datensequenz (z.B. eine Bitsequenz) einer vorbestimmten
Länge auch eine Stromchiffre unter Verwendung eines rückgekoppelten Schieberegisters
mit einer vorbestimmten Initialwertsetzung sein. Gleiches gilt auch für das
Bereitstellen des Verschlüsselungsschlüssels TM, der ebenfalls
ein Codewort einer vorbestimmten Bitlänge oder eine Stromchiffre aus einem
rückgekoppelten Schieberegister mit vorbestimmter Initialwertsetzung taktsynchron
sein kann, wobei dies lediglich zwei Möglichkeiten ohne Beschränkung der
Allgemeinheit für die Schlüsselbereitstellungseinheit sind.
Ferner sind darum vorzugsweise die erste und zweite Operation
108 und 112 derart auf die Daten des verschlüsselten Eingangsdatenstromes
bzw. den Entschlüsselungsschlüssel anzuwenden, dass sich bei Kombination
der ersten Zweigdaten mr mit den zweiten Zweigdaten rm ein
Klartext ergeben würde, der sich auch bei Anwendung einer vorbestimmten dritten
Operation auf einen Klartext M ergeben würde, wobei sich der Klartext M aus
einer Kombination des Entschlüsselungsschlüssels TM auf die
Daten des (verschlüsselten) Eingangsdatenstromes MT ergeben würde.
Hieraus resultiert, dass die erste Operation 108 und die zweite Operation
112 derart auszulegen sind, dass sie parallel ausführbare Teiloperationen
der dritten Operation sind, die dem maskierten Rechnen innerhalb der Datenverschlüsselungsvorrichtung
bei direkter Klartexterzeugung M ergeben würde.
Die Ausführung des Verschlüsselers 114 kann jedoch
auch alternativ zu einer EXOR-Verknüpfung erfolgen, beispielsweise durch ein
symmetrisches oder asymmetrisches Verschlüsseln, wobei dann der Ausgabeverschlüsselungsschlüssel
tm ein symmetrischer Schlüssel wäre beziehungsweise ein öffentlicher
(bzw. privater) Schlüssel ist, je nach dem, ob öffentlich signiert und
privat verifiziert oder privat signiert und öffentlich verifiziert werden soll.
Auf analoge Weise können die von der ersten Datenverschlüsselungsvorrichtung
CPU über den ersten Bus 202 ausgegebenen Daten in einer zweiten Datenverschlüsselungsvorrichtung
AES empfangen und in einem Datenbereitstellungsspeicher 102' gespeichert
werden. Entsprechend bilden somit die Daten des verschlüsselten Ausgabedatenstroms
mt der ersten Datenverschlüsselungsvorrichtung CPU die Daten des
verschlüsselten Eingangsdatenstroms der zweiten Datenverschlüsselungsvorrichtung
AES. Analog umfasst die zweite Datenverschlüsselungsvorrichtung AES wiederum
eine Schlüsselbereitstellungseinheit 104' zum Bereitstellen eine dem
Verschlüsselungsschlüssel tm entsprechenden Entschlüsselungsschlüssels
tm, wobei die Schlüsselbereitstellungseinheit 104' der
zweiten Datenverschlüsselungsvorrichtung AES wiederum ein One-Time-Pad-Generator
OTPG sein kann. Analog zur ersten Datenverschlüsselungsvorrichtung CPU umfasst
auch die zweite Datenverschlüsselungsvorrichtung AES eine erste Zweigverarbeitungseinheit
106', die ausgebildet ist, um eine erste Operation 108' auf die
Daten des verschlüsselten Eingangsdatenstromes mt anzuwenden, um
erste Zweigdaten MR zu erhalten. Ferner umfasst auch die zweiten Datenverschlüsselungsvorrichtung
AES eine zweite Zweigdatenbearbeitungseinheit 110', die ausgebildet ist,
um eine zweite Operation 112' auf den Entschlüsselungsschlüssel
tm anzuwenden, um zweite Zweigdaten RM erhalten. Letztlich
umfasst die zweite Datenverschlüsselungsvorrichtung AES noch einen Verschlüssler
114', der ausgewählt ist, um einen verschlüsselten Ausgabedatenstrom
MT aus den ersten Zweigdaten MR und den zweiten Zweigdaten
RM unter Verwendung eines Ausgabeverschlüsselungsschlüssels
TM zu erstellen. Der Ausgabeverschlüsselungsschlüssel TM
der zweiten Datenverschlüsselungsvorrichtung kann dabei wieder von einer Schlüsselbereitstellungseinheit
104' bereitgestellt werden, und kann beispielsweise wiederum ein One-Time-Pad
sein.
Hierbei ist anzumerken, dass gemäß dem in 1
dargestellten Ausführungsbeispiel die Schlüsselbereitstellungseinheit
104 der ersten Datenverschlüsselungsvorrichtung und die Schlüsselbereitstellungseinheit
104' der zweiten Datenverschlüsselungsvorrichtung jeweils ein One-Time-Pad-Generator
sein kann. In diesem Fall können die One-Time-Pads zum Verschlüsseln und
Entschlüsseln identisch sein, d. h. der Ausgabeverschlüsselungsschlüssel
TM der zweiten Datenverschlüsselungsvorrichtung kann gleich dem
Entschlüsselungsschlüssel der ersten Datenverschlüsselungsvorrichtung
CPU sein. Alternativ kann, wie oben ausgeführt, jedoch auch eine entsprechende
symmetrische oder asymmetrische Verschlüsselung verwendet werden. Analoges
gilt auch für den Ausgabeverschlüsselungsschlüssel tm
der ersten Datenverschlüsselungsvorrichtung sowie dem Entschlüsselungsschlüssel
tm der zweiten Datenverschlüsselungsvorrichtung AES. Hierdurch ist
es nun möglich, die Verschlüsselung auf der Basis von beispielsweise einer
Initialwertersetzung eines Schieberegisters, das als Schlüsselbereitstellungseinheit
104 bzw. 104' dient, durchzuführen wodurch dann ein numerisch
bzw. hardwaremäßig einfach zu realisierender Verschlüsselungsalgorithmus
implementierbar ist. Hierbei ist ferner anzumerken, dass auch bei der zweiten Datenverschlüsselungsvorrichtung
AES kein Klartext weder im Sendezweig (d. h. keine Kombination des Entschlüsselungsschlüssels
tm mit den Daten des verschlüsselten Eingangsstroms mt
erfolgt, um den Klartext m zu erhalten) noch im Sendezweig auftritt, beispielsweise
durch die Verknüpfung der ersten Zweigdaten MR mit den zweiten Zweigdaten
RM, um den Klartext M zu erhalten. Dies bedeutet, dass wiederum die durch
den Klartext entstehenden Probleme vermieden werden und zusätzlich eine Umverschlüsselung
nicht notwendig ist.
Ferner ist anzumerken, dass, insbesondere bei der Verwendung von linearen
ersten bzw. zweiten Operationen, eine Vereinfachung beim Pipelining möglich
ist, da in diesem Fall eine zeitlich zueinander passende Bereitstellung des Entschlüsselungsschlüssel
bzw. eines Teils (Segmente) eines Verschlüsselungsschlüssels zu entsprechenden
Daten des verschlüsselten Eingangsdatenstroms jeweils der ersten bzw. zweiten
Operation unterzogen werden können, ohne dass vorausgehende bzw. nachfolgende
Operationsschritte das Ergebnis verfälschen bzw. eine Berechnung unter Verwendung
von verschiedenen One-Time-Pads bzw. verschiedene Entschlüsselungsschlüsseln
ermöglicht.
Die in dem in 1 dargestellten Blockschaltbild
gezeigten Einheiten „CPU" und „RES" stehen jedoch nur stellvertretend
für eine Mehrzahl von verschiedenen Datenverarbeitungseinheiten. Diese Datenverarbeitungseinheiten
können ein Mikroprozessor, ein Koprozessor, eine weitere CPU, ein Kryptographieprozessor
(z.B. für symmetrische Algorithmen wie AES oder DES oder asymmetrische Algorithmen
wie RSA, Elliptische Kurven Kryptographie etc.) oder andere Rechenwerke umfassen.
Auch kann als weitere Verallgemeinerung das erfindungsgemäße
Konzept auch auf die Kommunikation zwischen mehreren Kommunikationspartnern angewendet
werden. Beispielsweise funktioniert das Konzept genauso für mehr als zwei Kommunikationspartner
A, B, C (wenn z.B. in 1 der Partner A die Einheit CPU
und der Partner B die Einheit AES ist), wobei dann A mit und weiterhin A mit C (beispielsweise
einer weiteren AES-Einheit) verbunden sein kann, wobei dann die Einheit A der Master
sein kann. Somit ist die in 1 dargestellte Konfiguration
lediglich eine Form der Zusammenschaltung der einzelnen Einheiten, wobei eine Zusammenschaltung
mit mehreren Einheiten auch in Form eines Bus-Systems ausgebildet sein kann, das
Daten zwischen den mehr als zwei angeschlossen Einheiten verschlüsselt transferiert.
Auch kann ein Verschlüsselungsstrom extern der in 1
dargestellten Datenverarbeitungseinheiten CPU und AES generiert werden und dann
zwei solchen Einheiten über eine gemeinsame Signalleitung zugeführt werden.
Hierbei müsste dann keine Synchronisation der One-Time-Pad-Generatoren erfolgen,
da bereits durch den synchronisierten Empfang des Schlüsselstromes eine solche
Synchronisation sichergestellt ist. Die maskierte Verarbeitung verschlüsselten
Eingangsdaten wird durch eine solche externe Zuführung eines Schlüsselstromes,
aus dem ein Verschlüsselungsschlüssel und ein entsprechender Entschlüsselungsschüssel generiert
wird, jedoch nicht beeinträchtigt.
Abhängig von den Gegebenheiten kann das erfindungsgemäße
Verfahren in Hardware oder in Software implementiert werden. Die Implementierung
kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit
elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren
Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt
wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt
mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur
Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt
auf einem Rechner abläuft. Mit anderen Worten ausgedrückt, kann die Erfindung
somit als ein Computerprogramm mit einem Programmcode zur Durchführung des
Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.
102,102'
Datenbereitstellungseinrichtung
104,104'
Schlüsselbereitstellungseinheit
106,106'
erste Zweigbearbeitungseinheit
108,108'
erste Operation
110,110'
zweite Zweigdatenbearbeitungseinheit
112,112'
zweite Operation
114,114'
Verschlüssler
202
erster Bus
204
zweiter Bus
206
Dateneingang
208
Verknüpfungselement
210,212,214
Verschlüssler bzw. Entschlüssler
TM, tm
Verschlüsselungsschlüssel, Entschlüsselungsschlüssel bzw.
Ausgabeverschlüsselungsschlüssel
Busverschlüsselungsvorrichtung (CPU, AES) eines ersten zweier Kommunikationspartner,
mit folgenden Merkmalen:
einer Datenbereitstellungseinrichtung (102, 102') zum Bereitstellen
eines mit einem Verschlüsselungsschlüssel (TM, tm) verschlüsselten Eingangsdatums (MT,
mt) von einem zweiten der zwei Kommunikationspartner;
einer Datenverarbeitungseinheit (106, 106') zum maskierten Verarbeiten
des verschlüsselten Eingangsdatums (MT, mt) unter Verwendung
eines Entschlüsselungsschlüssels (TM, tm) als temporärem
Schlüssel, um ein mit einem Ausgabeschlüssel (tm, TM)
verschlüsseltes Ausgabedatum (mt, MT) für den zweiten
Kommunikationspartner zu erhalten, derart, dass das verschlüsselte Ausgabedatum
(mt, MT) einem mit dem Ausgabeschlüssel (tm,
TM) verschlüsselten Ergebnis einer vorbestimmten Operation an dem
mit dem Entschlüsselungsschlüssel (TM, tm) entschlüsselten
verschlüsselten Eingangsdatum (MT, mt) entspricht; und
einer Schlüsselstromerzeugungseinheit (104, 104') zum Erzeugen
eines Schlüsselstromes auf eine vorbestimmte deterministische Weise und Liefern
des erzeugten Schlüsselstromes an die Datenverarbeitungseinheit (106,
106') oder einer Einrichtung zum Empfangen eines Schlüsselstromes
synchronisiert zu dem zweiten Kommunikationspartner über eine gemeinsame Signalleitung
und Liefern des empfangenen Schlüsselstromes an die Datenverarbeitungseinheit
(106, 106'), wobei die Datenverarbeitungseinheit ausgebildet ist,
um aus dem Schlüsselstrom den Entschlüsselungsschlüssel sowie den
Ausgabeschlüssel zu erhalten.Busverschlüsselungsvorrichtung (CPU, RES) gemäß Anspruch
1, bei der die Datenverarbeitungseinheit (106, 106') ausgebildet
ist, derart, dass der Ausgabeschlüssel auf deterministische Weise aus dem Entschlüsselungsschlüssel
(TM, tm) herleitbar ist.Busverschlüsselungsvorrichtung (CPU, AES) gemäß Anspruch
1 oder 2, bei der die Datenverarbeitungseinheit (106, 106') ausgebildet
ist, um eine erste Operation (108, 108') auf die Daten des verschlüsselten
Eingabedatums (Mt, mt) anzuwenden, um erste Zweigdaten (mr,
MR) zu erhalten,
wobei die Datenverarbeitungsvorrichtung (CPU, AES) ferner eine Zweigdatenverarbeitungseinheit
(110, 110') aufweist, die ausgebildet ist, um
eine zweite Operation (112, 112') auf den Entschlüsselungsschlüssel
(TM, tm) anzuwenden, um zweite Zweigdaten (rm,
RM) zu erhalten
und
wobei die Datenverarbeitungsvorrichtung (CPU, AES) einen Verschlüssler (114,
114') aufweist, der ausgebildet ist, um einen verschlüsselten Ausgabedatenstrom
(mt, MT) aus den ersten Zweigdaten (mr, MR)
und den zweiten Zweigdaten (rm, RM) unter Verwendung eines
Ausgabeschlüssels (tm, TM) zu erstellen.Busverschlüsselungsvorrichtung (CPU, AES) gemäß einem
der Ansprüche 1 bis 3, bei der die Schlüsselstromerzeugungseinheit (104,
104') einen Schlüsselgenerator zum Erzeugen des Entschlüsselungsschlüssels
(TM, tm) umfasst.Busverschlüsselungsvorrichtung (CPU, AES) gemäß Anspruch
4, bei der der Schlüsselgenerator ein One-Time-Pad-Generator ist.Busverschlüsselungsvorrichtung (CPU, AES) gemäß einem
der Ansprüche 3 bis 5, bei der die erste Zweigdatenbearbeitungseinheit (106,
106') und die zweite Zweigdatenbearbeitungseinheit (110,
110') ausgebildet sind, um als erste Operation (108) und als zweite
Operation (112) Operationsschritte auszuführen, die Operationsschritten
einer dritten Operation entsprechen, die angewendet würde, um aus ersten Klartextdaten
(M) zweite Klartextdaten (m) zu erzeugen, wobei die ersten Klartextdaten (M) denjenigen
Daten entsprechen würde, die aus einem Entschlüsseln der Daten (MT)
des verschlüsselten Eingangsdatenstroms mit dem Entschlüsselungsschlüssel
(TM) entsprechen und die zweiten Klartextdaten (m) eine Kombination der
ersten Zweigdaten (mr) mit den zweiten Zweigdaten (rm) entsprechen
würde.Busverschlüsselungsvorrichtung (CPU, AES) gemäß einem
der Ansprüche 3 bis 6, wobei die erste Zweigdatenbearbeitungseinheit (106)
und die zweite Zweigdatenbearbeitungseinheit (110) ausgebildet sind, um
als erste Operation (108) und als zweite Operation (112) Operationsschritte
mit gleicher Operationsvorschrift auszuführen.Busverschlüsselungsvorrichtung (CPU, AES) gemäß einem
der vorhergehenden Ansprüche, die ferner folgendes Merkmal aufweist:
eine Zwischenergebnisbereitstellungseinheit, die ausgebildet ist, um als Zwischenergebnis
einen Klartext (m) auszugeben, der aus einer Kombination einer Version der Daten
des verschlüsselten Eingangsdatums und einer Version des Entschlüsselungsschlüssels
resultiert.Busverschlüsselungsvorrichtung (CPU, AES) gemäß einem
der Ansprüche 3 bis 8, bei der die erste Zweigdatenbearbeitungseinheit (106)
ausgebildet ist, um eine erste Teiloperation auf ein erstes Datensegment des verschlüsselten
Eingangsdatenstroms anzuwenden und eine zweite Teiloperation auf ein zweites Datensegment
der Daten des verschlüsselten Eingangsdatenstroms anzuwenden, und wobei den
Daten des ersten Segments des verschlüsselten Eingangsdatenstroms ein erster
Verschlüsselungsschlüssel zugewiesen ist und den Daten des zweiten Datensegments
des verschlüsselten Eingangsdatenstroms ein zweiter Verschlüsselungsschlüssel
zugewiesen ist.Busverschlüsselungssystem mit einem ersten und zweiten Kommunikationspartner,
wobei der erste Kommunikationspartner eine Busverschlüsselungsvorrichtung gemäß
einem der Ansprüche 1 bis 9 aufweist und der zweite Kommunikationspartner folgende
Merkmale aufweist:
eine Datenbereitstellungseinrichtung (102, 102') zum Bereitstellen
des mit dem Ausgabeschlüssel (tm) verschlüsselten Ausgabedatums
(mt) der ersten Datenverarbeitungseinheit (CPU) als ein verschlüsseltes
Eingangsdatum (MT, mt) von dem ersten Kommunikationspartner;
und
eine Datenverarbeitungseinheit (106, 106') zum maskierten Verarbeiten
des verschlüsselten Eingangsdatums (MT, mt) von dem ersten
Kommunikationspartner unter Verwendung des Ausgabeschlüssels (TM,
tm) des ersten Kommunikationspartners als temporärem Schlüssel,
um ein mit dem Verschlüsselungsschlüssel (tm, TM)
verschlüsseltes Ausgabedatum (mt, MT) als das verschlüsselte
Eingangsdatum für den ersten Kommunikationspartner zu erhalten, derart, dass
das mit dem Verschlüsselungsschlüssel (tm, TM) verschlüsselte
Ausgabedatum (mt, MT) einem mit dem Verschlüsselungsschlüssel
(tm, TM) verschlüsselten Ergebnis einer vorbestimmten
Operation an dem mit dem Ausgabeschlüssel (TM, tm) entschlüsselten verschlüsselten Eingangsdatum
(MT, mt) von dem ersten Kommunikationspartner entspricht;
und
eine zu der Schlüsselstromerzeugungseinheit des ersten Kommunikationspartners
synchronisierte Schlüsselstromerzeugungseinheit (104, 104')
zum Erzeugen eines Schlüsselstromes auf die vorbestimmte deterministische Weise
und Liefern des erzeugten Schlüsselstromes an die Datenverarbeitungseinheit
(106, 106') oder eine Einrichtung zum Empfangen des Schlüsselstroms
synchronisiert zum dem ersten Kommunikationspartners über
eine gemeinsame Signalleitung.Verfahren zur Durchführung einer Busverschlüsselung an einem
ersten zweier Kommunikationspartner, mit folgenden Schritten:
Bereitstellen eines mit einem Verschlüsselungsschlüssel (TM,
tm) verschlüsselten Eingangsdatums (MT, mt)
von einem zweiten der zwei Kommunikationspartner;
Verarbeiten des verschlüsselten Eingangsdatums (MT, mt)
unter Verwendung des Entschlüsselungsschlüssels (TM, tm)
als temporärem Schlüssel, um ein mit einem Ausgabeschlüssel (tm,
TM) verschlüsseltes Ausgabedatum (mt, MT)
für den zweiten Kommunikationspartner zu erhalten, derart, dass das verschlüsselte
Ausgabedatum (mt, MT) einem mit dem Ausgabeschlüssel
(tm, TM) verschlüsselten Ergebnis einer vorbestimmten
Operation an dem mit dem Entschlüsselungsschlüssel (TM, tm)
entschlüsselten verschlüsselten Eingangsdatum (MT, mt)
entspricht; und Erzeugen eines Schlüsselstromes auf eine vorbestimmte deterministische
Weise und Liefern des erzeugten Schlüsselstromes an die Datenverarbeitungseinheit
oder Empfangen eines Schlüsselstromes synchronisiert zu dem zweiten Kommunikationspartner
über eine gemeinsame Signalleitung und Liefern des empfangenen Schlüsselstromes
an die Datenverarbeitungseinheit (106, 106'), wobei die Datenverarbeitungseinheit
ausgebildet ist, um aus dem Schlüsselstrom den Entschlüsselungsschlüssel
sowie den Ausgabeschlüssel zu erhalten.Computerprogramm mit Programmcode zur Durchführung des Verfahrens
nach Anspruch 11, wenn das Computerprogramm auf einem Computer abläuft.