-
Die
vorliegende Erfindung betrifft im Allgemeinen das Chiffrieren oder
Verschlüsseln
von Daten, die dazu bestimmt sind, in einem oder mehreren Prozessoren
verwendet zu werden, wenn diese Daten in einem Speicher außerhalb
der Prozessoren gespeichert werden sollen.
-
Sie
findet insbesondere Anwendungen in den elektronischen Geräten, die
eine Architektur mit mehreren symmetrischen Prozessoren und externem
geteiltem Speicher haben (oder SMP-Architektur aus dem Englischen „Symetric
Multi-Processor"). Genauer
genommen betrifft die vorliegende Erfindung die Anwendungen, bei
welchen man verhindern will, dass ein nicht zugelassener Benutzer
nutzbar auf Daten zugreift, und bei welchen die Daten zumindest
zum Teil über
mehr als einen Schaltkreis zugänglich
sein müssen.
-
Es
wird hier auf den Begriff „Daten" Bezug genommen,
um gleichermaßen
jeden beliebigen binären
Code zu bezeichnen, ob es sich um ausführbare Programme oder um binäre Daten
handelt, die von diesen Programmen verarbeitet werden. Ferner wird auf
den Begriff „Schaltkreis" Bezug genommen,
um gleichermaßen
jede beliebige funktionale Einheit eines elektronischen Geräts zu bezeichnen,
die mit anderen Funktionseinheiten über einen oder mehrere Kommunikationsbusse
verbunden ist, ob es sich nun um einen Prozessor, einen Peripheriegerätcontroller (zum
Beispiel einen Festplattencontroller), eine Netzkarte usw. handelt.
-
1 veranschaulicht
schematisch die SMP-Architektur eines elektronischen Geräts, für das die
vorliegende Erfindung gilt. Mehrere Prozessoren 2 (CPU)
sind mit einem externen Speicher 4 (EXT MEM), über einen
oder mehrere Busse 3 gekoppelt. Man kann eine Zone 1,
abgesicherte Zone definieren, innerhalb welcher sich einer oder
mehrere Prozessoren 2 befinden, und in deren Innerem man
annimmt, dass auf die verarbeiteten Daten nicht unrechtmäßig zugegriffen
werden soll. In der Praxis umfasst die abgesicherte Zone 1 meistens
einen oder mehrere Chips für
integrierte Schaltkreise, die jeweiligen Prozessoren entsprechen,
wobei der Speicher 4 ein weiterer Chip ist, der nicht zu
der abgesicherten Zone gehört.
Ferner können
weitere Schaltkreise 5, wie ein Festplattencontroller (DSK
CTRL) oder eine Netzkarte (NET CARD) mit den Prozessoren 2 über Busse 3 verbunden
werden.
-
Das
Verschlüsseln,
an das die vorliegende Erfindung angewandt wird, betrifft insbesondere
das von Daten, die über
den oder die Busse 3 zwischen dem Speicher 4 und
dem oder den Prozessoren 2 der Zone 1 laufen.
In der Fachsprache spricht man von Verschlüsseln des Speichers oder auch
von Verschlüsseln
des Busses. Dieses Verschlüsseln
besteht darin, die in dem Speicher 4 gespeicherten Daten
mit Hilfe eines Busverschlüsselungsschlüssels, der
den betreffenden Prozessoren bekannt ist, in dem Speicher 4 zu
verschlüsseln.
-
Lösungsbeispiele
für das
Verschlüsseln
eines externen Speichers mit einem Mikroprozessor sind in den amerikanischen
Patenten 5 825 878, 5 982 887 und 6 061 449 beschrieben.
-
Diese
Lösungen
sind nicht für
den Fall der Systeme mit SMP-Architektur
geeignet, insofern als man den gleichen Busverschlüsselungsschlüssel zum
Verschlüsseln
und Entschlüsseln
der Daten verwenden muss, während
jeder Prozessor einen eigenen Busverschlüsselungsschlüssel verwendet.
Es müssen
nämlich
Maßnahmen
getroffen werden, um es einem anderen Prozessor der abgesicherten
Zone zu erlauben, verschlüsselte
Daten, die in dem externen Speicher gespeichert sind, der mit einem
anderen Prozessor der abgesicherten Zone geteilt wird, zu entschlüsseln, um
sie zu verwenden. Diese Maßnahmen
müssen
jedoch mit dem Geheimschlüsselcharakter
der Busverschlüsselungsschlüssel kompatibel sein.
-
Eine
weitere Auflage ist mit der verwendeten Verschlüsselungsmethode verbunden.
Beim früheren
Stand der Technik verwendet man allgemein Verschlüsselungen
in Blöcken
mit Algorithmen des Typs DES („Data
Encryption System")
oder AES („Advanced
Encryption System"),
gemäß einem
Modus mit elektronischem Codierungsheft, ECB („Electronic Code Book") genannt, oder einem
Modus durch Verketten von Blöcken,
CBC-Modus („Cipher-Block Chaining") genannt. Die Größe eines
Blocks hängt von
dem verwendeten Verschlüsselungsalgorithmus ab.
Im ECB-Modus werden zwei identische Blöcke gleich verschlüsselt. Angriffe
sind daher durch die so genannte „Wörterbuchtechnik" insofern möglich, als die
Redundanz auf identische Weise verschlüsselter Mitteilungen die Identifikation
der Mitteilungen in Klarschrift erlauben kann. Dem entgegen wird
beim CBC-Modus jeder Block in Abhängigkeit von den vorhergehenden
Blöcken
verschlüsselt.
Dieser Modus ist robuster. Er erfordert nichtsdestotrotz einen sequenziellen
Zugriff auf den Speicher, was ihn mit dem Verschlüsseln von
Daten, auf welche man willkürlich in
dem externen Speicher zugreifen können will, unvereinbar macht.
-
Die
vorliegende Erfindung zielt darauf ab, in dem Kontext eines elektronischen
Geräts
mit SMP-Architektur eine neue Verschlüsselungstechnik durch einen
Prozessor für
Daten vorzuschlagen, die in einem diesem Prozessor externen Speicher
zu speichern sind, wenn diese Daten von mehr als einem Prozessor
nutzbar sein müssen.
-
Dazu
sieht ein erster Aspekt der Erfindung ein Verschlüsselungsverfahren
in einem Schaltkreis eines elektronischen Geräts von Daten vor, die in einem
Speicher zu speichern sind, der außerhalb des Schaltkreises ist,
das die Schritte umfasst, die in Folgendem bestehen:
- – Auswählen eines
geheimen Schlüssels
ausgehend von einer Liste Geheimschlüssel, die jeweils in einer
Einheit von Registern des Schaltkreises gespeichert sind, wobei
jeder mit einem Schlüsselidentifikator
verbunden ist, wobei mindestens einer der Schlüssel ein Schlüssel ist,
der mit mindestens einem anderen Schaltkreis des elektronischen
Geräts
geteilt wird,
- – Unterteilen
der Daten in einen Strom von Datenwörtern mit festgelegter Größe
und
schließlich
für jedes
Datenwort
- – Erzeugen
einer pseudozufälligen
Zahl mit festgelegter Größe mittels
eines Pseudozufallsgenerators, der einen Algorithmus zum Erzeugen
in Abhängigkeit
von dem geheimen Schlüssel
und einem Initialisierungsvektor, der bei jedem Datenwort den Wert
wechselt, umsetzt,
- – Kombinieren
des Datenworts und der entsprechenden Pseudozufallszahl, um ein
verschlüsseltes
Datenwort zu erzeugen, dann
- – Speichern
jedes verschlüsselten
Datenworts im externen Speicher verbunden mit dem Initialisierungsvektor
und dem Schlüsselidentifikator
verbunden mit dem geheimen Schlüssel,
der dazu gedient hat, ihn zu verschlüsseln.
-
Ein
zweiter Aspekt der Erfindung sieht ein Entschlüsselungsverfahren in einem
Schaltkreis eines elektronischen Geräts von Daten vor, die in Form von
verschlüsselten
Datenwörtern
in einem Speicher außerhalb
des Schaltkreises gespeichert sind, die Schritte umfassend, die
in Folgendem bestehen:
- – aus dem externen Speicher
Lesen eines verschlüsselten
Datenworts und eines Identifikators eines geheimen Schlüssels, die
jeweils mit dem Datenwort verbunden sind,
- – Auswählen eines
geheimen Schlüsseln
ausgehend von einer Liste geheimer Schlüssel, die jeweils in einer
Einheit von Registern des Schaltkreises gespeichert sind, und von
welchen mindestens einer ein Schlüssel ist, der mit mindestens
einem anderen Schaltkreis des elektronischen Geräts geteilt wird, und ferner
ausgehend von dem Identifikator,
und kontinuierlich für jedes
verschlüsselte
Datenwort
- – Erzeugen
einer Pseudozufallszahl mit festgelegter Größe mittels eines Pseudozufallsgenerators, der
einen Algorithmus zum Erzeugen in Abhängigkeit von dem geheimen Schlüssel und
dem Initialisierungsvektor umsetzt, und
- – Kombinieren
des Datenworts und der entsprechenden Pseudozufallszahl, um ein
entschlüsseltes
Datenwort zu erzeugen.
-
Ein
dritter Aspekt der Erfindung betrifft eine Vorrichtung zum Umsetzen
eines Verschlüsselungsverfahrens
gemäß dem ersten
Aspekt, umfassend:
- – eine Einheit von Registern,
die die geheimen Schlüssel
speichern, von welchen mindestens einer ein mit einem anderen Schaltkreis
des elektronischen Geräts
geteilter Schlüssel
ist, wobei jeder mit einem Schlüsselidentifikator
verbunden ist,
- – eine
Einheit zum Auswählen
von geheimen Schlüsseln,
die einen geheimen Schlüssel
ausgehend von der Liste der Schlüssel,
die in der Registereinheit gespeichert sind, auswählen kann,
- – eine
Segmentierungseinheit, die die Daten so aufteilen kann, dass ein
Strom von Datenwörtern mit
festgelegter Größe gebildet
wird,
- – einen
Generator von Initialisierungsvektoren, der einen Strom von Initialisierungsvektoren
erzeugen kann, der den Wert bei jedem Datenwort wechselt,
- – einen
Generator für
Pseudozufallszahlen, der einen Erzeugungsalgorithmus umsetzt, der
für jedes
Datenwort in Abhängigkeit
von dem geheimen Schlüssel
und einem bestimmten der Initialisierungsvektoren eine Pseudozufallszahl
mit bestimmter Größe erzeugen
kann,
- – eine
Kombinationseinheit, die das Datenwort und die entsprechende Pseudozufallszahl
kontinuierlich kombinieren kann, um ein verschlüsseltes Datenwort zu erzeugen,
und
- – Mittel
zum Speichern in dem externen Speicher jedes verschlüsselten
Datenworts verbunden mit dem festgelegten Initialisierungsvektor
und dem Schlüsselidentifikator,
der mit dem geheimen Schlüssel
verbunden ist, der dazu gedient hat, ihn zu verschlüsseln.
-
Ferner
schlägt
die Erfindung gemäß einem vierten
Aspekt eine Vorrichtung zum Umsetzen eines Entschlüsselungsverfahrens
gemäß dem zweiten Aspekt
vor. Diese Vorrichtung umfasst:
- – eine Einheit
von Registern, die jeweilige Schlüssel speichern, von welchen
mindestens einer ein geteilter Schlüssel ist, wobei jeder mit einem Schlüsselidentifikator
verbunden ist,
- – Lesemittel
zum Lesen in dem externen Speicher eines Datenworts sowie eines
Initialisierungsvektors und eines Identifikators eines jeweiligen
mit dem Datenwort verbundenen geheimen Schlüssels,
- – Auswahlmittel
zum Auswählen
für jedes
Datenwort eines geheimen Schlüssels
ausgehend von einer Liste von Schlüsseln, die in den Registern gespeichert
sind und ausgehend ferner von dem Schlüsselidentifikator,
- – einen
Generator für
Pseudozufallszahlen, der einen Erzeugungsalgorithmus umsetzt, der
für jedes
Datenwort in Abhängigkeit
von dem geheimen Schlüssel
und dem Initialisierungsvektor eine Pseudozufallszahl mit bestimmter
Größe erzeugen
kann, und
- – eine
Kombinationseinheit, die das Datenwort und die entsprechende Pseudozufallszahl
so kombinieren kann, dass das verschlüsselte Datenwort entschlüsselt wird.
-
Ein
fünfter
Aspekt der Erfindung betrifft einen Schaltkreis, der eine Verschlüsselungs-/Entschlüsselungseinheit
enthält,
die eine Verschlüsselungsvorrichtung
gemäß dem dritten
Aspekt und eine Entschlüsselungsvorrichtung
gemäß dem vierten
Aspekt bildet. Die Einheit von Registern, der Erzeuger von Pseudozufallszahlen
und die Kombinationseinheit gehören
daher gemeinsam zu zwei Vorrichtungen.
-
Gemäß einem
sechsten und letzten Aspekt schlägt
die Erfindung auch ein elektronisches Gerät vor, das mindestens zwei
Schaltkreise gemäß dem fünften Aspekt
aufweist, indem mindestens einer der geheimen Schlüssel von
den Schaltkreisen so geteilt wird, dass ein gesichertes Untersystem
gebildet wird.
-
Die
Schlüssel
werden in dem Sinn geteilt genannt, dass andere Schaltkreise des
elektronischen Geräts
sie kennen, zum Beispiel die Schaltkreise, die zu der abgesicherten
Zone gehören,
das heißt
zu dem abgesicherten Untersystem. Die Erfindung bietet daher eine
Lösung,
die es erlaubt, das Verschlüsseln
gemäß dem Prozessor,
der es durchführt,
zu individualisieren, und dabei sicherzustellen, dass alle Prozessoren,
die die Genehmigung zum Gebrauch der in dem externen Speicher gespeicherten
Daten besitzen, sie entschlüsseln
können.
-
Das
erfindungsgemäße Verschlüsseln gehört zu dem
Typ eines kontinuierlichen Verschlüsselns („Stream Cipher"), das einfacher
und daher schneller ist als ein Verschlüsseln in Blöcken. Ein kontinuierliches
Verschlüsseln
ist ferner für „Wörterbuchangriffe" unempfindlich, denn
das gleiche Datenwort wird bei jedem Verschlüsseln in ein anderes Datenwort
verschlüsselt.
-
Ferner
ist das erfindungsgemäße Verschlüsseln mit
einem zufälligen
Zugriff auf den externen Speicher kompatibel.
-
Weitere
Merkmale und Vorteile der Erfindung ergeben sich noch bei der Lektüre der folgenden
Beschreibung. Diese dient rein der Veranschaulichung und muss unter
Bezugnahme auf die anliegenden Zeichnungen gelesen werden, in welchen:
-
1 ein
Schema eines elektronischen Geräts
ist, an das die verschiedenen Aspekte der Erfindung angewandt werden
können,
-
2 ein
Wirkbild eines Beispiels für
einen Schaltkreis ist, der an einen externen Speicher gekoppelt
ist, gemäß einer
Ausführungsform
eines erfindungsgemäßen Schaltkreises.
-
Auf
den Zeichnungen sind gleiche Elemente mit den gleichen Bezugszeichen
in den verschiedenen Figuren bezeichnet. Zur Klarheit wurden nur
die Schritte des Verfahrens und die Elemente dargestellt und anschließend beschrieben,
die für
das Verstehen der Erfindung erforderlich sind. Insbesondere wurden nicht
alle Elemente eines Schaltkreises detailliert, denn die Erfindung
nutzt zu ihrer Umsetzung bekannte Bauteile.
-
Ein
Merkmal der vorliegenden Erfindung besteht darin, Daten (Programme,
beliebige binäre
Daten), die in einem externen Speicher zu speichern sind, den sich
mehrere Schaltkreise eines elektronischen Geräts teilen, zu verschlüsseln. Die
Daten werden mittels eines geheimen Schlüssels verschlüsselt, der
dem Schaltkreis eigen ist, der das Verschlüsseln durchführt, der
anders sein kann als der geheime Schlüssel, der von anderen Schaltkreisen für ein vergleichbares
Verschlüsseln
verwendet wird.
-
Um
den Gebrauch der verschlüsselten
Daten durch mehr als einen Schaltkreis zu erlauben, werden zumindest
bestimmte der geheimen Schlüssel,
die von einem Schaltkreis verwendet werden können, mit einem oder mehreren
Schaltkreisen geteilt, das heißt,
dass sie diesen Schaltkreisen bekannt und gleichzeitig gegenüber dem
Rest des Systems geheim sind.
-
Ein
geteilter Schlüssel
definiert ein Untersystem von Schaltkreisen, die gemeinsame Daten
verwenden können,
die in dem externen Speicher gespeichert sind. Typisch kann dieses
Untersystem einer abgesicherten Zone wie der entsprechen, die eingangs
zum Schema der 1 präsentiert wurde.
-
Außerdem werden
die Daten in dem externen Speicher verbunden mit einem Identifikator
des Geheimschlüssels,
der dazu gedient hat, sie zu verschlüsseln, gespeichert. Dieser
Identifikator erlaubt es den zugelassenen Schaltkreisen, den Geheimschlüssel zu
bestimmen, der für
das Entschlüsseln der
Daten zu verwenden ist. Dieser Identifikator kann einem Index in
einer Einheit interner Register entsprechen, in welchen die Geheimschlüssel, die
von dem Schaltkreis unterstützt werden,
jeweils gespeichert sind. Es ist daher nicht der Geheimschlüssel selbst,
der mit den durch ihn verschlüsselten
Daten gespeichert wird, sondern der Identifikator dieses Geheimschlüssels. Die
Offenbarung des Identifikators durch Speichern in dem externen Speicher
bewirkt keine Schwäche
der Verschlüsselung,
denn nur die zugelassenen Schaltkreise können den Geheimschlüssel kennen,
der ausgehend von diesem Identifikator zu verwenden ist.
-
Ein
weiteres Merkmal der vorliegenden Erfindung besteht darin, dass
ein Verschlüsseln
und ein Entschlüsseln
kontinuierlich bei Datentransfers zwischen einem Schaltkreis und
dem externen Speicher vorgesehen sind. Diese kontinuierliche Verschlüsseln wird
ausgehend von einem Aufteilen der Daten in Wörter mit festgelegter Größe erzielt,
die danach in verschlüsselter
Form in dem externen Speicher gespeichert werden. Man sieht ferner
vor, dass das Verschlüsseln
die Kombination eines Datenworts mit einer Pseudozufallszahl verwendet,
die ausgehend von dem Geheimschlüssel
und von einem Initialisierungsvektor erzeugt wird.
-
Vorteilhafterweise
wechselt der Initialisierungsvektor den Wert für jedes Wort, vorzugsweise zufällig, um
die Sicherheit des Verschlüsselns
zu verstärken.
Der Initialisierungsvektor, der zum Verschlüsseln eines Datenworts gedient
hat, wird vorteilhafterweise in dem externen Speicher verbunden
mit dem verschlüsselten
Datenwort gespeichert, ebenso wie der Identifikator des Geheimschlüssels, wie
oben angegeben. Man entledigt sich so der Probleme in Zusammenhang
mit dem kontinuierlichen Verschlüsseln,
die herkömmlich
mit direkten Zufallszugriffen zu einem Speicher nicht vereinbar
sind.
-
Das
Schema der 2 zeigt die wesentlichen Mittel
einer Ausführungsform
eines Schaltkreises, der für
die Umsetzung des Verschlüsselungsverfahrens
geeignet ist (veranschaulicht durch die Pfeile in vollen Strichen),
und für
das Umsetzen des Entschlüsselungsverfahrens
(veranschaulicht durch die gestrichpunkteten Pfeile).
-
Der
Schaltkreis ist hier ein Prozessor 2 (CPU), der einen Prozessorkern 44 (CORE)
enthält, Cache-Speicher 33 und 34 (CACHE),
eine Einheit 31 (KSEL) zur Auswahl des Verschlüsselungsschlüssels (K)
und eine Einheit 38 (BEU) zum Verschlüsseln/Entschlüsseln.
-
Die
Einheit 38 umfasst eine Einheit 22 (SEGM) zum
Segmentieren der Daten, eine Einheit 32 (KREG) von Geheimschlüsselregistern,
einen ersten Pseudozufallsgenerator 24 (IVGEN), einen Cache-Speicher 25 (IVCACHE),
ein Verschlüsselungsschlüsselregister 12 und
ein Initialisierungsvektorregister 13, einen zweiten Pseudozufallsgenerator 10 (PRNG)
und schließlich
eine Kombinationseinheit 11.
-
Die
Segmentierungseinheit 22 hat die Aufgabe, die zu verschlüsselnden
Daten (DATA), die sie von dem Prozessorkern 44 erhält, in Datenwörter (W) mit
festgelegter Größe zu teilen.
Ein Datenwort kann daher ein einziges Bit umfassen. Vorzugsweise
ist die Größe eines
Worts jedoch gleich einem Byte, das heißt, dass ein Wort 8 Bits enthält.
-
Jedes
Register der Einheit 32 kann nicht flüchtig einen Geheimschlüssel (K)
speichern, mit dem ein Geheimschlüsselidentifikator (KID) verbunden
ist. Ein Teil oder die ganzen Geheimschlüssel können dem Prozessor über einen
abgesicherten Kanal geliefert werden, zum Beispiel bei der Herstellung
des Systems. Zumindest bestimmte der Geheimschlüssel können umgekehrt intern gemäß einem
Ad-Hoc-Schlüssel erzeugt
werden, dessen Beschreibung nicht in die vorliegende Darlegung fällt. Bei
einem aufgrund seiner Einfachheit bevorzugten Beispiel ist der Identifikator
ein Index, wie zum Beispiel eine Registernummer, die es erlaubt,
auf den entsprechenden Geheimschlüssel in der Liste der von dem
Prozessor unterstützten
Geheimschlüssel, die
in der Einheit 32 gespeichert sind, zuzugreifen.
-
Der
Zufallsgenerator 24 kann Initialisierungsvektoren im Rhythmus
von einem Initialisierungsvektor pro zu verschlüsselndem Datenwort gemäß einem
beliebigen Pseudozufallsalgorithmus erzeugen.
-
Der
Cache-Speicher 25 kann Paare speichern, die jeweils aus
einem Initialisierungsvektor und einem Geheimschlüsselidentifikator,
die mit einem Datenwort verbunden sind, gebildet sind.
-
Das
Register 12 kann einen Verschlüsselungsschlüssel speichern,
nämlich
einen der Geheimschlüssel,
die in der Registereinheit 32 gespeichert sind. Dieses
Register wird hier zur Klarheit der Darlegung angegeben, es kann
jedoch weggelassen werden, wenn man geeignete Mittel zum Verwalten der
Einheit von Registern 32 vorsieht.
-
Das
Initialisierungsvektorregister 13 hat die Aufgabe, den
Initialisierungsvektor zu speichern, der kontinuierlich von dem
Pseudozufallsgenerator 24 erzeugt wird. Vorzugsweise ist
die Größe der Initialisierungsvektoren
gleich der Größe der zu
verschlüsselnden
Datenwörter.
-
Die
Aufgabe des Pseudozufallsgenerators 10 besteht darin, kontinuierlich
einen Strom von Pseudozufallszahlen (PN) zu jeweils einer bestimmten
Anzahl pro zu verschlüsselndem
Datenwort zu erzeugen. Jede Pseudozufallszahl wird ausgehend von dem
Verschlüsselungsschlüssel erzeugt,
der in dem Register 12 gespeichert ist, und ausgehend von
dem Initialisierungsvektor, der in dem Register 13 gespeichert
ist, wobei dieser Letztere bei jedem Datenwort den Wert wechselt.
-
Bei
einem Beispiel ist die Kombinationseinheit ein ODER-Exklusiv-Gatter (XOR).
Der Pseudozufallsgenerator 10 und das XOR-Gatter bilden
ein Cryptosystem, das dem Fachmann als solches gut bekannt ist.
Die verschlüsselten
Datenwörter,
die es am Ausgang liefert, haben die gleiche Größe wie die Datenwörter (vor
dem Verschlüsseln),
die am Eingang empfangen werden. Ein solches Cryptosystem weist
den Vorteil auf, dass es einen einfachen und daher schnellen Verschlüsselungsalgorithmus
präsentiert
und dessen Beständigkeit
gegenüber
Sicherheitsangriffen von den internen Details des Pseudozufallsgenerators 10 festgelegt
wird. Je zufälliger
die von Letzterem erzeugte Zahl PN ist, desto besser ist die Sicherheit
des Verschlüsselungsalgorithmus.
Ein weiterer Vorteil eines Verschlüsselungsalgorithmus über XOR-Gatter
besteht darin, dass das Entschlüsseln
in der gleichen Weise erfolgt wie das Verschlüsseln, was die materielle Konzeption
des Cryptosystems vereinfacht.
-
Das
Funktionieren des Schaltkreises im Verschlüsselungsmodus wird unten unter
Berücksichtigung
der Pfeile in vollen Strichen, die in 2 dargestellt
sind, erklärt.
-
Der
Verschlüsselungsmodus
wird typisch von dem Prozessorkern des Prozessors 44 aktiviert, wenn
Daten DATA, die in dem Cache-Speicher 34 gespeichert sind
oder durch ihn laufen, in den externen Speicher 23 geschrieben
und dazu über
den Kommunikationsbus 3 laufen müssen.
-
Der
Prozessorkern 44 steuert die Auswahleinheit 31 so,
dass einer der Geheimschlüssel
ausgewählt
wird, die in der Registereinheit 32 gespeichert sind. Bei
einem Beispiel wählt
die Einheit 31 einen Geheimschlüsselidentifikator KIDi aus,
der mit einem bestimmten Geheimschlüssel verbunden ist. Dieser
Identifikator KIDi wird von der Einheit 31 zu der Verschlüsselungseinheit 38 geliefert.
-
In
der Verschlüsselungseinheit 38 wird
der Schlüssel
Ki, der mit dem Identifikator KIDi verbunden ist, aus der Registereinheit 32 mit
Hilfe des Identifikators KIDi gelesen, der zum Beispiel als Index
in dem Durchlaufen der Registereinheit 32 verwendet wird.
Der Schlüssel
Ki wird dann in dem Register 12 gespeichert.
-
Ferner
steuert der Prozessorkern 44 den Cache-Speicher 34 derart,
dass die Daten DATA zu der Verschlüsselungseinheit 38 geliefert
werden und insbesondere an den Eingang der Segmentierungseinheit 22.
Letztere liefert einen Strom binärer
Wörter Wi,
die jeweils einem Segment des Datenstroms DATA entsprechen. Parallel
dazu erzeugt der Pseudozufallsgenerator 24 einen Strom
von Initialisierungsvektoren IVi im Rhythmus der Lieferung der Datenwörter Wi
durch die Einheit 32, wobei diese Initialisierungsvektoren
den Wert bei jedem der Wörter
Wi wechseln. Mit anderen Worten ist jedes Datenwort Wi mit einem
Initialisierungsvektor IVi verbunden, dessen Wert anders ist als
der des mit dem vorhergehenden Wort in dem Strom von Datenwörtern verbundenen
Initialisierungsvektors. Die Initialisierungsvektoren IVi, die kontinuierlich
erzeugt werden, werden jeweils in dem Register 13 gespeichert.
-
Für jedes
Datenwort Wi werden daher die folgenden Operationen kontinuierlich
durchgeführt.
-
Einerseits
erzeugt der Pseudozufallsgenerator 10 eine Pseudozufallszahl
PNi in Abhängigkeit von
dem Geheimschlüssel
Ki, der in dem Register 12 gespeichert ist, und von dem
Initialisierungsvektor IVi, der in dem Register 13 gespeichert
ist. Jedes Mal wird die Zahl PNi auf einen zweiten Eingang des XOR-Gatters 11 geliefert.
-
Andererseits
werden das Datenwort Wi und die entsprechende Pseudozufallszahl
PNi von dem XOR-Gatter 11 kombiniert, so dass ein verschlüsseltes
Datenwort Ci erzeugt wird.
-
Die
Verschlüsselungseinheit 38 speichert dann
das Wort Ci in dem externen Speicher 23 sowie und verbunden
mit ihm den Initialisierungsvektor IVi, und den Geheimschlüsselidentifikator
KIDi, die zu seinem Verschlüsseln
gedient haben. Zu diesem Schreiben laufen das verschlüsselte Datenwort
CI, der Initialisierungsvektor IVi und der Geheimschlüsselidentifikator
KIDi über
den Kommunikationsbus 3. Das ist jedoch keine Sicherheitsschwäche des
Verschlüsselungsverfahrens
insofern, als das Wort Ci verschlüsselt ist, wobei der Initialisierungsvektor
IVi allein nicht reicht, um das Entschlüsseln durchzuführen und
wobei der Identifikator KIDi keine Bedeutung für einen anderen Schaltkreis
hat, der nicht über
den mit diesem Identifikator verbundenen Geheimschlüssel verfügt.
-
Das
Funktionieren des Schaltkreises im Entschlüsselungsmodus wird nun unter
Bezugnahme auf die gestrichpunkteten Pfeile erklärt, die in 2 dargestellt
sind.
-
Unter
der Steuerung des Prozessorkerns 44 werden verschlüsselte Datenwörter aus
dem externen Speicher 23 an bestimmten Adressen gelesen. Jedes
Wort Cj, das so gelesen wird, wird auf den ersten Eingang des XOR-Gatters 11 geliefert.
Für jedes Wort
Cj werden ferner der Initialisierungsvektor IVj und der Geheimschlüsselidentifikator
KIDj, die mit diesem Wort verbunden sind, ebenfalls aus dem externen
Speicher 23 gelesen.
-
Ausgehend
von dem Identifikator KIDj wählt die
Entschlüsselungseinheit 38 den
Geheimschlüssel
Kj aus, der mit diesem Identifikator verbunden ist, indem sie in
der Liste der Geheimschlüssel,
die in der Einheit von Registern 32 gespeichert sind, sucht.
Der so ausgewählte
Schlüssel
Kj wird in das Register 12 gespeichert. Parallel dazu wird
der Vektor IVj in das Register 13 gespeichert.
-
Eigentlich
laufen der Vektor IVj und der Identifikator KIDj über den
Cache-Speicher 25. Diese Cache-Speicherung erlaubt es,
die Leistungen der Entschlüsselungseinheit
hinsichtlich der Entschlüsselungsgeschwindigkeit
zu verbessern. Der Pseudozufallsgenerator 10 erzeugt dabei
eine Pseudozufallszahl PNj ausgehend von dem Schlüssel Kj,
der in dem Register 12 gespeichert ist, und ausgehend von dem
Vektor IVj, der in dem Register 13 gespeichert ist. Die
Zahl PNj wird auf den zweiten Eingang des XOR-Gatters 11 geliefert.
-
Das
XOR-Gatter 11 kombiniert das verschlüsselte Datenwort Cj und die
Pseudozufallszahl PNj und liefert am Ausgang ein Datenwort Wj, das dem
entschlüsselten
Wort Cj entspricht.
-
Das
entschlüsselte
Datenwort Wj wird dann an den Prozessorkern 44 über den
Cache-Speicher 33 geliefert.
-
Natürlich kann
die vorliegende Erfindung verschiedenen Varianten und Modifikationen,
die der Fachmann erkennt, unterzogen werden. Insbesondere kann die
Erfindung mit jedem beliebigen bekannten Algorithmus zum kontinuierlichen
Verschlüsseln umgesetzt
werden, was den Pseudozufallsgenerator 10 ausgehend von
dem Geheimschlüssel
und Initialisierungsvektoren konditioniert. Ferner wird davon ausgegangen,
dass die praktische Herstellung der Erfindung dem Fachmann ausgehend
von den oben gegebenen funktionalen Angaben zugänglich ist. In dieser Hinsicht
ist zu bemerken, dass gemäß einer hier
beschriebenen Ausführungsform
der Erfindung die verschiedenen Verschlüsselungs- und Entschlüsselungswerkzeuge
von materiellen Ressourcen des Prozessors hergestellt werden. Eine
Umsetzung durch Softwareressourcen kann natürlich in Betracht gezogen werden.
-
Ferner
beschränkt
sich die Erfindung in keiner Weise auf eine Anwendung in einem Prozessor. Ganz
im Gegenteil kann eine Verschlüsselungs-/Entschlüsselungseinheit
wie die Einheit 38, die weiter oben beschrieben wurde,
in anderen Schaltkreisen eines elektronischen Geräts, wie
zum Beispiel in 1 dargestellt vorgesehen werden,
insbesondere in dem Controller der Festplatte oder in der Netzkarte.
-
Zu
bemerken ist auch, dass sämtliche
in dem externen Speicher gespeicherten Daten nicht zwingend zu verschlüsseln sind.
In diesem Hinblick kann man vorsehen, dass ein Schlüsselidentifikator,
der den Wert Null hat, dem Fehlen von Verschlüsselung des entsprechenden
Datenworts entspricht, das heißt,
dass das Datenwort in Klarschrift in den externen Speicher gespeichert
wird.