-
Diese
Erfindung betrifft Verfahren zum Verschlüsseln und Entschlüsseln von
Daten, zum Beispiel für
die Verwendung beim Senden vertraulicher Information über nicht
geschützte
Datenverbindungen oder das Internet, und eine Vorrichtung zum Verschlüsseln und
Entschlüsseln
von Daten. Gegenstand der Erfindung ist ferner ein Verfahren zur
Fertigung eines Computersystems oder einer Software zur Implementierung
der Verschlüsselungs/Entschlüsselungstechnik.
-
Es
sind viele Verfahren zum Verschlüsseln von
Daten bekannt. Einfach ausgedrückt,
bedingen die meisten dieser Verfahren die Anwendung einer Verschlüsselung
und eines „Schlüssels" zur Originalnachricht,
um eine verschlüsselte
Nachricht zu erzeugen, die ohne Kenntnis der Verschlüsselung
und des Schlüssels,
die dazugehören,
nicht entschlüsselt werden
kann. Solche Verfahren können
durchbrochen werden, wenn derselbe Schlüssel benutzt wird, um eine
große
Anzahl von Nachrichten zu verschlüsseln, da in der verschlüsselten
Nachricht ein Bitmuster zum Vorschein kommen kann, welches ermöglicht,
den Schlüssel
zu identifizieren.
-
Eine
Art und Weise zur Vermeidung dieses Problems besteht darin, eine „One-Time-Pad"- bzw. eine Einmalverschlüsselungstechnik
zu benutzen. Dies führt
dazu, dass jeder Schlüssel
nur einmal benutzt wird, damit keine Bitmuster in den verschlüsselten
Nachrichten erscheinen. Das heißt
natürlich, dass
sowohl der Absender als auch der Empfänger der verschlüsselten
Nachricht eine große
Anzahl verschiedener Schlüssel
haben müssen,
und dass jeder wissen muss, welcher Schlüssel jedes Mal benutzt werden
muss. Die Implementierung einer solchen Technik weist folglich offenkundig
praktische Schwierigkeiten auf, und außerdem bestehen Sicherheitsauswirkungen
hinsichtlich der für
beide Partner bestehenden Notwendigkeit, eine hohe Anzahl verschiedener
Schlüssel
zu tragen, die gestohlen oder zum Beispiel durch Erpressung oder
Bestechung erhalten werden können.
-
Um
diese Probleme zu vermeiden, wurde vorgeschlagen, anstatt, dass
ein Empfänger
ein „Schlüsselbuch" verschiedener Schlüssel bewahrt, einen
neuen Schlüssel
zur Entschlüsselung
der Nachricht des Empfängers
zu übertragen,
wann auch immer eine Nachricht gesendet wird. Dieses Verfahren weist
wiederum die Problemstellung auf, dass die Schüsselnachricht abgefangen werden
könnte,
wodurch eine unbefugte Person in die Lage versetzt wird, die vertrauliche
Nachricht zu entschlüsseln.
-
Abdeckband
enthalten sind, teilen. Die Zufallsdaten von dem Abdeckband werden
der Klartextnachricht zugefügt,
um eine Schlüsseltextfolge
zu bilden.
-
Aufgabe
der vorliegenden Erfindung ist es, mindestens einige der oben erwähnten Probleme und
Nachteile zu entschärfen.
-
Gemäß der vorliegenden
Erfindung wird ein Verfahren zum Verschlüsseln von Daten bereitgestellt,
wobei eine Zufallsvariable in Binärzeichenform erzeugt wird,
ein erstes Set von Daten, welches eine Klartextnachricht in Binärzeichenform
darstellt, mit der Zufallsvariablen kombiniert wird, um ein zweites Datenset
in Binärzeichenform
zu erzeugen, wobei die Datenbits, welche die Zufallsvariable darstellen, in
das zweite Datenset entsprechend einem ersten vorbestimmten Set
von Regeln eingefügt
werden, und die Reihenfolge der Datenbits in dem zweiten Datenset
entsprechend einem zweiten vorbestimmten Set von Regeln abgeändert wird,
wobei ein drittes Datenset zum Senden als eine Schlüsseltextnachricht
erzeugt wird, wobei das dritte Datenset in verschlüsselter
Form die Daten enthält,
welche sowohl die Klartextnachricht als auch den Schlüssel darstellen.
-
Die
Reihenfolge, in welcher die Schritte des Verschlüsselungsablaufs durchgeführt werden, braucht
nicht unbedingt die Reihenfolge, in welcher diese Schritte oben
erwähnt
sind, zu sein. Zum Beispiel können
die Datenbits, welche die Zufallsvariable darstellen, entweder bevor
oder nachdem die Reihenfolge der Datenbits in dem zweiten Datenset
abgeändert
wurde, in das zweite Datenset eingefügt werden. Vorausgesetzt, dass
der Entschlüsselungsablauf
eine Umkehrung des Verschlüsselungsablaufs ist,
wird die Nachricht nach wie vor korrekt entschlüsselt.
-
Da
die Verschlüsselungstechnik
keinen vorbestimmten Schlüssel
benutzt und stattdessen Zufallsvariablen verwendet, um die Volltextnachricht
zu verschlüsseln,
ist es für
eine unbefugte Person äußerst schwierig,
die Nachricht zu entschlüsseln,
zum Beispiel, indem sie nach Bitmustern in den verschlüsselten
Nachrichten sucht. Weil ferner die Zufallsvariablen, die zum Entschlüsseln der
Nachricht erforderlich sind, eher innerhalb des Schlüsseltexts
verborgen sind, als dass sie getrennt gesendet werden, besteht keine
Gefahr, dass sie abgefangen und zum Entschlüsseln der Nachricht benutzt
werden. Nur der beabsichtigte Empfänger der Nachricht kann die
Zufallsvariablen leicht wiederherstellen, weil die Datenbits, welche
diese Variablen darstellen, innerhalb des Schlüsseltexts an Stellen verborgen
sind, die nur unter Bezugsnahme auf die internen Regeln des Verschlüsselungs/Entschlüsselungsablaufs
bestimmt werden können.
Da jedoch jede Version der Verschlüsselungssoftware einmalig ist
und die internen Regeln zum Lokalisieren und Rekonstruiren der Zufallsvariablen
nicht leicht zugänglich
sind, ist das Verfahren hochgeschützt.
-
Weil
sich ferner die Computersoftware verbreiten lässt, ohne dass eine Geheimhaltung
erforderlich ist, kann eine neue Version der Software mit neuen
internen Regeln ohne Umstände
zur Verfügung
gestellt werden. Daher, selbst wenn eine unbefugte Person eine Kopie
der Entschlüsselungssoftware
unberechtigterweise erhalten kann, lässt sich ein Vertraulichkeitsverlust
einfach durch das Wechseln auf einer neue Softwareversion vermeiden.
Da sich neue Versionen der Software sehr schnell und leicht verbreiten
lassen, zum Beispiel durch Übertragung über das
Internet, kann die Software häufig
gewechselt werden, beispielsweise jeden Tag.
-
Der
erste Satz von Daten lässt
sich mit der Zufallsvariablen mit Hilfe der EXKLUSIV-ODER-Verknüpfung (XOR)
kombinieren. Die EXKLUSIV-ODER-Verknüpfung, so wie hierin benutzt,
entspricht der Beschreibung des User's Guide (1992) von Borland Turbo C++TM, V.III, Seite 425 („Bitavise operators, bitwise
XOR").
-
Vorteilhafterweise
umfasst die Zufallsvariable mehrere Zufallszahlen, und diese sind
mit dem ersten Set von Daten entsprechend einem dritten vorbestimmten
Set von Regeln kombiniert. Die Zufallszahlen können mittels der EXKLUSIV-ODER-Verknüpfung mit
dem ersten Set von Daten ein oder mehrere Male kombiniert werden,
wobei die Reihenfolge der Zufallszahlen jedes Mal verändert wird.
-
Das
erste Set von Daten, die Zufallszahlen und das modifizierte Datenset
können
alle die Form von 8-Bit-Wörtern
aufweisen.
-
Vorteilhafterweise
ist das zweite Datenset in 5-Bit-Wörter geteilt, welche durch
das Einschließen der
Daten, welche die Zufallszahlen darstellen, zu 7-Bit-Wörtern erweitert
sind und danach erneut in 8-Bit-Wörter geteilt werden.
-
Vorteilhafterweise
ist die Klartextnachricht in Gruppen von zehn Zeichen verschlüsselt, welche
in dem ersten Datenset als zehn 8-Bit-Wörter dargestellt sind, und
mit vier 8-Bit-Zufallszahlen
kombiniert werden, um ein drittes Datenset von vierzehn 8-Bit-Wörtern zu erzeugen. Vorzugsweise
wird eine Klartextnachricht von zehn Zeichen während Verschlüsselung
in eine Schlüsseltextnachricht
von vierzehn Zeichen umgewandelt.
-
Wahlweise
kann die Klartextnachricht vor Verschlüsselung komprimiert werden,
was eine kürzere
Schlüsseltextnachricht
als die Volltextnachricht ergeben kann.
-
Ein
Messageheader kann der Klartextnachricht hinzugefügt und gemeinsam
mit der Klartextnachricht verschlüsselt werden. Der Messageheader kann
Daten enthalten, welche den beabsichtigten Empfänger der Klartextnachricht
und/oder den Absender der Klartextnachricht identifizieren. Die
Identität
des Absenders kann verifiziert werden, bevor Daten, welche den Absender
identifizieren, in den Messageheader eingeschlossen werden.
-
Die
vorliegende Erfindung stellt ferner ein Verfahren zum Entschlüsseln von
Daten bereit, die unter Verwendung eines wie oben beschriebenen Verfahrens
verschlüsselt
worden sind, in dem die Datenbits, welche die Zufallsvariable darstellen,
entsprechend einem ersten vorbestimmten Set komplementärer Regeln
aus dem dritten Datenset extrahiert werden, die Zufallsvariable,
welche den Schlüssel darstellt,
aus den extrahierten Datenbits wiederhergestellt wird, die Reihenfolge
der Daten in dem dritten Datenset entsprechend einem zweiten vorbestimmten
Set komplementärer
Regeln abgeändert
wird, um das zweite Datenset zu rekonstruieren, und das zweite Datenset
mit der Zufallsvariablen kombiniert wird, welche den Schlüssel darstellt,
um das erste Set digitaler Daten, welche die Klartextnachricht darstellen, zu
rekonstruieren.
-
Vorteilerhafterweise
wird der Messageheader vor der Klartextnachricht entschlüsselt. Vorzugsweise
werden die Daten, welche den beabsichtigten Empfänger der Klartextnachricht
identifizieren, extrahiert, die Identität des tatsächlichen Empfängers verifiziert
und die Klartextnachricht nur entschlüsselt, wenn der tatsächliche
Empfänger
der beabsichtigte Empfänger
ist.
-
Ferner
stellt die vorliegende Erfindung noch ein weiteres Verfahren zum
Verschlüsseln
und Entschlüsseln
von Daten bereit, wobei das Verfahren ein Verschlüsselungsverfahren
und ein Entschlüsselungsverfahren
wie oben beschrieben umfasst.
-
Ferner
stellt die vorliegende Erfindung noch ein weiteres Verfahren zum
Senden von Daten bereit, wobei das wie oben beschriebene Verfahren
Verschlüsselungs-
und Entschlüsselungsdaten
umfasst und das Senden der verschlüsselten Daten von einem Absender
zu einem Empfänger.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird eine Vorrichtung
zum Verschlüsseln
von Daten bereitgestellt, wobei die Vorrichtung Eingabemittel zum
Empfangen eines ersten Sets von Daten, welche eine Klartextnachricht
in Binärzeichenform
darstellen, enthält,
Generatormittel zum Erzeugen einer Zufallsvariablen zur Verwendung
als ein Schlüssel
in Binärzeichenform,
Prozessormittel zum Kombinieren des ersten Sets von Daten mit der
Zufallsvariablen, um ein zweites Datenset in Binärzeichenform zu erzeugen, zum
Einfügen
der Datenbits, welche die Zufallsvariable darstellen, in das zweite
Datenset, entsprechend einem ersten vorbestimmten Set von Regeln,
und zum Abändern der
Reihenfolge der Datenbits in dem zweiten Datenset, entsprechend
einem zweiten vorbestimmten Set von Regeln, wobei ein drittes Datenset
erzeugt wird, welches eine Schlüsseltextnachricht
darstellt, wobei das dritte Datenset in verschlüsselter Form die Daten beinhaltet,
welche sowohl die Klartextnachricht als auch den Schlüssel darstellen,
und Ausgabemittel zum Senden der Schlüsseltextnachricht.
-
Die
Vorrichtung kann die Form eines dedizierten Elektronikprozessors
oder eines Computers, der zur Bedienung gemäß der Erfindung programmiert
ist, annehmen.
-
Das
Prozessormittel kann Mittel zum Hinzufügen eines verschlüsselten
Messageheaders enthalten, welcher Daten beinhaltet, die den beabsichtigten
Empfänger
der Nachricht identifizieren. Der Messageheader kann auch Daten
enthalten, die den Absender der Vortextnachricht identifizieren,
und die Identität
des Absenders kann verifiziert werden, bevor Daten, welche den Absender
identifizieren, in den Messageheader eingeschlossen werden.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird eine Vorrichtung
zum Entschlüsseln
von Daten, welche unter Verwendung der oben beschriebenen Vorrichtung
verschlüsselt
worden sind, bereitgestellt, wobei die Vorrichtung Eingabemittel
zum Empfangen der Schlüsseltextnachricht enthält, Prozessormittel
zum Extrahieren von Datenbits, welche die Zufallsvariable darstellen,
aus der Schlüsseltextnachricht,
entsprechend einem ersten vorbestimmten Set komplementärer Regeln,
zum Abändern
der Reihenfolge der Daten in der Schlüsseltextnachricht, entsprechend
einem zweiten vorbestimmten Set komplementärer Regeln, zum Wiederherstellen
der Zufallsvariablen, welche den Schlüssel darstellt, aus den extrahierten
Datenbits, und zum Kombinieren der Daten in der Schlüsseltextnachricht mit
der Zufallsvariablen, welche den Schlüssel darstellt, um die Klartextnachricht
zu rekonstruieren, und Ausgabemittel für die Klartextnachricht.
-
Vorteilhafterweise
enthält
das Prozessormittel Mittel zum Extrahieren der Daten aus dem verschlüsselten
Messageheader, welche den beabsichtigten Empfänger der Nachricht identifizieren,
die Identität
des tatsächlichen
Empfängers
verifizieren und Identität
des tatsächlichen
Empfängers
mit der des beabsichtigten Empfängers
vergleichen, wobei das Prozessormittel eingerichtet ist, die Schlüsseltextnachricht
nur zu entschlüsseln,
wenn der tatsächliche
Empfänger
der beabsichtigte Empfänger
ist.
-
Obwohl
nicht zum Rahmen der vorliegenden Erfindung gehörend, beschreibt diese Anwendung auch
ein Verfahren zur Fertigung von Mitteln zur Implementierung eines
wie oben beschriebenen Verschlüsselungs-
und Entschlüsselungsverfahrens, wobei
das Verfahren die Schritte des Extrahierens komplementärer Sets
von vorbestimmten Regeln aus einer Datenbank aufweist, welche diese
Regeln in Algorithmen zum Verschlüsseln und Entschlüsseln der Daten
einbinden und diese Algorithmen in Mitteln zur Implementierung der
Verschlüsselungs-
und Entschlüsselungsverfahrens
aufzeichnen.
-
Vorteilhafterweise
wird die Datenbank, nachdem die komplementären Sets von vorbestimmten Regeln
aus der Datenbank extrahiert worden sind, gekennzeichnet, um zu
verhindern, dass diese Regeln wieder benutzt werden.
-
Vorteilhafterweise
werden die Schritte des Extrahierens der komplementären Setz
von vorbestimmten Regeln aus der Datenbank und welche diese Regeln
in die Algorithmen zum Verschlüsseln
und Entschlüsseln
der Daten einbinden, automatisch durchgeführt und ohne dass irgendeine
Aufzeichnung der vorbestimmten Regeln, die in die Mittel zur Implementierung
der Verschlüsselungs-
und Entschlüsselungsverfahren
eingebunden werden, gemacht wird.
-
Eine
Ausführungsform
der Erfindung wird nun als Beispiel mit Bezug auf die begleitenden Zeichnungen
beschrieben. Es zeigen:
-
1 ein
Beispiel einer Nachricht in verschlüsselten und entschlüsselten
Stati;
-
2 ein Beispiel des Verschlüsselungsablaufs;
-
3 ein Beispiel des Entschlüsselungsablaufs;
-
4 ein
Ablaufdiagramm, das die Verwendung einer modifizierten Verschlüsselungstechnik durch
eine Lizenzgruppe darstellt, und
-
5 ein
Ablaufdiagramm, das ein Verfahren zur Fertigung von Computersoftware
zur Implementierung des Verschlüsselungs/Entschlüsselungsablaufs
darstellt.
-
Die
vorliegende Erfindung verwendet eine Verschlüsselungstechnik, die als „probabilistische Verschlüsselung" bekannt ist. Bei
dieser Technik, die in Applied Cryptography, zweite Ausgabe von
Bruce Schneler auf den Seiten 552–554 beschrieben ist (John
Wiley & Sons,
Inc., 1996), ISBN 0471117099, ist der Verschlüsselungsalgorithmus derart
bezeichnet, dass ein besonderer Volltext ebenso wahrscheinlich eine
große
Anzahl verschiedener Schlüsseltexte
ergeben kann, die alle denselben Volltext erzeugen werden, wenn
die Nachricht entschlüsselt
ist. Dadurch wird es für
eine unbefugte Person äußerst schwierig,
die Nachricht abzufangen, um irgendetwas über einen der Volltexte des
Verschlüsselungsalgorithmus
zu erfahren.
-
1 ist
ein Beispiel dazu, wie eine Volltextnachricht verwandelt werden
kann, während
sie verschlüsselt
und entschlüsselt
wird. In diesem Beispiel besteht die Volltextnachricht aus zehn
Zeichen 1A–1J.
Bei der Verschlüsselung
wird daraus eine Nachricht, die aus vierzehn ASCII-Textzeichen 2A–2N besteht.
Die Schlüsseltextnachricht
kann durch herkömmliche
Mittel wie ein Modem, das an eine Datenleitung oder eine Telefonleitung
angeschlossen ist, vom Absender zum Empfänger gesendet werden.
-
Die
Schlüsseltextnachricht
wird durch den Empfänger
empfangen und entschlüsselt,
woraufhin sie zur Originalnachricht von zehn Volltextzeichen 3A–3J zurückkehrt.
-
Der
Verschlüsselungsablauf,
der zum Beispiel mittels eines Computerprogramms oder mittels dedizierter
Hardware implementiert werden kann, ist näher in 2 dargestellt.
Die Verschlüsselungsarbeitsschritte
sind wie folgt:
- (1) Die Computersoftware erzeugt
vier Pseudozufallszahlen 5A-5D. Verfahren zur Erzeugung von Pseudozufallszahlen
sind bekannt und werden daher nicht näher beschrieben. Als Beispiel
können
die Zahlen jedoch durch Extrahieren von vier Zahlen aus der Computersystemzeit
im Augenblick der Erzeugung erzeugt werden. Die vier Pseudozufallszahlen
5A–5D,
die Werte zwischen 0 und 255 aufweisen, werden in 8-Bit-Digitalwörter 6A–6D umgewandelt.
- (2) Die Verschlüsselung
nimmt ein Set von zehn Zeichen 1A–1J aus der Volltextnachricht
(in diesem Fall die Buchstaben a, b, c.. j).
- (3) Jedes der zehn Volltextzeichen 1A-1J wird entsprechend seines
ASCII-Werts 7A–7J
in ein 8-Bit-Wort umgewandelt, damit zehn 8-Bit-Wörter 8A-8J
erzeugt werden.
- (4) Jedes der 8-Bit-Wörter
8A–8J
ist mittels der EXKLUSIV-ODER-Verknüpfung mit einem der 8-Bit-Wörter 6A–6D kombiniert,
die aus den Zufallszahlen 5A–5D
abgeleitet sind. Dies erzeugt ein neues Set von zehn 8-Bit-Wörtern 9A–9J.
-
Die
Reihenfolge, in welcher die 8-Bit-Wörter 8A–8J, welche die Volltextzeichen
darstellen, mit den 8-Bit-Wörtern
6A–6D,
welche die Zufallszahlen darstellen, kombiniert werden, wird durch
die internen Regeln des Verschlüsselungsalgorithmus
bestimmt, welche für
jede Version der Verschlüsselungssoftware
einmalig sind. In dem in 3 gezeigten
Beispiel sind die 8-Bit-Wörter,
welche die Zufallszahlen 6A–6D
und die Volltextzeichen 8A–8J
darstellen, in folgender Reihenfolge kombiniert.
- 1.
Zeichen 8A mit der 1. Zufallszahl 6A
- 2. Zeichen 8B mit der 2. Zufallszahl 6B
- 3. Zeichen 8C mit der 3. Zufallszahl 6C
- 4. Zeichen 8D mit der 4. Zufallszahl 6D
- 5. Zeichen 8E mit der 1. Zufallszahl 6A
- 6. Zeichen 8F mit der 2. Zufallszahl 6B
- 7. Zeichen 8G mit der 3. Zufallszahl 6C
- 8. Zeichen 8H mit der 4. Zufallszahl 6D
- 9. Zeichen 81 mit der 1. Zufallszahl 6A
- 10. Zeichen 8J mit der 2. Zufallszahl 6B
-
Dies
ist ein sehr einfaches Beispiel. Die Zufallszahlen können selbstverständlich mit
den Volltextzeichen in jeder Reihenfolge kombiniert werden, und
es gibt insgesamt 410 verschiedene Arten und Weisen, in welchen
diese Elemente kombiniert werden können, wobei die benutzte besondere
Kombination durch die internen Regeln des Verschlüsselungsalgorithmus
bestimmt wird.
- (5) Wahlweise wird Schritt (4)
ein oder mehrere Male wiederholt, indem er jedes Mal ein anderes Set
von internen Regeln benutzt, um irgendwelche Bitmuster, die sich
aus dem Algorithmus ergeben, zu entfernen. Im veranschaulichten
Beispiel wird der Schritt einmal wiederholt, wobei die zehn 8-Bit-Wörter 9A–9J mit
den 8-Bit-Wörtern 10A–10J kombiniert
werden, welche die Zufallszahlen 6A–6D in folgender Reihenfolge
darstellen:
1. Zeichen 9A mit der 2. Zufallszahl 6B
2.
Zeichen 9B mit der 3. Zufallszahl 6C
3. Zeichen 9C mit der
4. Zufallszahl 6D
4. Zeichen 9D mit der 1. Zufallszahl 6A
5.
Zeichen 9E mit der 2. Zufallszahl 6B
und so weiter.
-
Dies
erzeugt ein neues Set von zehn 8-Bit-Wörtern 11A–11J.
- (6)
Die zehn 8-Bit-Wörter
11A–11J
sind in sechzehn 5-Bit-Gruppen 12A–12P aufgeteilt.
- (7) Jede der 5-Bit-Gruppen 12A–12F wird durch Hinzufügen von
2 Datenbits erweitert, um sechzehn 7-Bit-Gruppen 13A–13P zu
erstellen.
- (8) Die Datenbits innerhalb jeder der 7-Bit-Gruppen 13A–13P werden
zu neuen Positionen entsprechend einer Ordnungsfolge, die durch
die internen Regeln 14 des Verschlüsselungsalgorithmus bestimmt
wird, bewegt. Dadurch wird ein neues Set von sechzehn 7-Bit-Gruppen
15A–15F erstellt.
-
In
dem in 2 gezeigten Beispiel, wird
das erste Datenbit zur Position 3, das zweite zur Position 5,
das dritte zur Position 4, das vierte zur Position 7 und
das fünfte
zur Position 6 bewegt, und diese Umordnungsfolge wurde
auf jeder der sechzehn 7-Bit-Gruppen
15A–15P
angewandt. Es ist selbstverständlich
möglich,
eine andere Umordnungsfolge für jede
der sechzehn 7-Bit-Gruppen zu benutzen.
-
Die
in Schritt (8) verwendete Ordnungsfolge ist für jede Version der Verschlüsselungssoftware einmalig.
Insgesamt sind 1856 verschiedne Folgen für jede der sechzehn 7-Bit-Gruppen
15A–15P
möglich,
weshalb die Nummer der einzelnen Regeln 185616 ist.
- (9) Die zwei „leeren" Datenbits in jeder der sechzehn 7-Bit-Gruppen
15A–15F
sind mit zwei der Datenbits aus den vier 8-Bit-Wörtern 6A–6D, welche die Zufallszahlen
5A–5D
darstellen, gefüllt, wodurch
sechzehn 7-Bit-Gruppen 16A–5D
erzeugt werden. Auf diese Weise sind alle zweiunddreißig Bits
der vier 8-Bit-Wörter
6A–6D
angeordnet.
-
Die
Reihenfolge, in welcher die zweiunddreißig Datenbits der vier 8-Bit-Wörter 6A–6D in die
Freiräume
in der 7-Bit-Gruppe 16A–16F überführt werden,
wird durch die internen Regeln des Verschlüsselungsalgorithmus bestimmt.
In dem in 2 gezeigten Beispiel, ist
die Reihenfolge dieser Bits unverändert gelassen. Dies ist ein
sehr einfaches Beispiel. Es gibt etwa 2,63 x 1032 Permutationen
der Folge zur Überführung der
Datenbits, und in der Praxis wird eine einmalige Überführungsfolge
in jeder Version der Verschlüsselungssoftware
benutzt.
- (10) Die sechzehn 7-Bit-Gruppen werden
wieder in vierzehn 8-Bit-Wörter
17A–17N
geteilt.
- (11) Diese vierzehn 8-Bit-Wörter
werden in die Schlüsseltextzeichen
2A–2N
entsprechend ihrer ASCII-Werte umgewandelt.
-
Die
Schlüsseltextnachricht
wird dann zu dem Empfänger überführt, zum
Beispiel mittels eines Modems und einer Telefonleitung. Die Schlüsseltextnachricht
enthält
in verschlüsselter
Form sowohl die Volltextnachricht von zehn Zeichen als auch die
vier Pseudozufallszahlen 5A–5D,
die von der Entschlüsselungssoftware
zur Entschlüsselung
der Nachricht benötigt
werden. Die Verschlüsselungstechnik
vermeidet daher die Notwendigkeit, einen Verschlüsselungsschüssel getrennt zum Empfänger zu
senden, damit jedes Abfangrisiko der Verbindung vermieden wird.
-
Ohne
Kenntnis der Zufallsnummern ist es äußerst schwierig die Nachricht
zu entschlüsseln, und
da die Datenbits, welche die Zufallszahlen darstellen, nicht wieder
abgerufen werden können,
ohne die Stelle dieser Bits zu kennen, lässt sich die Schlüsseltextnachricht
nicht ohne die korrekte Version des Entschlüsselungsalgorithmus entschlüsseln. Da
jedes Paar von Verschlüsselungs-
und Entschlüsselungsprogrammen
einmalig ist, ist die Verschlüsselungstechnik äußerst sicher.
-
Der
Entschlüsselungsablauf
ist im Wesentlichen die Umkehrung des Verschlüsselungsablaufs und ist in 3 dargestellt. Die Hauptschritte des Ablaufs
sind wie folgt:
- (1) Die ersten vierzehn Schlüsseltextzeichen 2A–2N werden
in vierzehn 8-Bit-Wörter
20A–20N entsprechend
ihrer ASCII-Werte abgewandelt.
- (2) Diese Bits werden wieder in sechzehn 7-Bit-Gruppen 21A–21P angelegt.
- (3) Die zweiunddreißig
Bits, welche die Zufallszahlen 5A–5D darstellen, werden aus
den 7-Bit-Gruppen 21A–21B
entsprechend der internen Regeln des Entschlüsselungsalgorithmus extrahiert,
welche die entsprechenden internen Regeln des beim obigen Schritt
(9) beschriebenen Verschlüsselungsalgorithmus
widerspiegeln. Diese zweiunddreißig Bits 22 werden dann in
den vier 8-Bit-Wörtern
6A–6D,
welche die vier Zufallszahlen 5A–5D darstellen, wiederhergestellt.
- (4) Die Reihenfolge der fünf
Bits, die in jeder 7-Bit-Gruppe 21A–21P verbleiben wird entsprechend
der internen Regeln des Entschlüsselungsalgorithmus
(welche wieder die entsprechenden internen Regeln des bei obigem
Schritt (8) beschriebenen Verschlüsselungsalgorithmus widerspiegeln)
verändert,
wobei sie sechzehn 5-Bit-Gruppen
23A–23P
erzeugen, welche dann in sechzehn benachbarten 5-Bit-Gruppen 24A–24P hergestellt
werden.
- (5) Die sechzehn 5-Bit-Gruppen 24A–24P werden wieder geteilt,
um zehn 8-Bit-Wörter
25A–25J
zu erzeugen.
- (6) Diese 8-Bit-Wörter
werden mittels der EXKLUSIV-ODER-Verknüpfung mit den 8-Bit-Wörtern 6A–6D, welche
die Zufallszahlen 5A–5D
darstellen, entsprechend der geeigneten internen Regeln kombiniert,
auf diese Art Schritt (5) des Verschlüsselungsablaufs umkehrend und
zehn 8-Bit-Wörter
25A–26J
erzeugend.
- (7) Schritt (6) wird wieder entsprechend der geeigneten internen
Regeln wiederholt, auf diese Art Schritt (4) des Verschlüsselungsablaufs
umkehrend und zehn 8-Bit-Wörter
27A–27J
erzeugend.
- (8) Diese 8-Bit-Wörter
27A–27J
werden wieder in die Volltextzeichen 3A–3J entsprechend ihrer ASCII-Werte
verwandelt.
-
Es
ist zu beachten, dass zur korrekten Entschlüsselung der verschlüsselten
Nachricht durch den Entschlüsselungsalgorithmus
die Verschlüsselungs-
und Entschlüsselungsalgorithmen
komplementäre
Sets von internen Regeln zum Umordnen der Datenbits in den sechzehn
7-Bit-Gruppen 13A–13P
und 23A–23P
(jeweils die Schritte (8) und (4) der Verschlüsselungs- und Entschlüsselungsabläufe) und
zum Einfügen
und Extrahieren der Datenbits, welche die Zufallszahlen in oder
aus den sechzehn 7-Bit-Gruppen 16A–16P und 21A–21P darstellen
(jeweils die Schritte (9) und (3) der Verschlüsselungs- und Entschlüsselungsabläufe), enthalten
müssen.
Die Software zur Implementierung des Verschlüsselungs- und Entschlüsselungsablaufs
wird daher als ein übereinstimmendes
Paar von Verschlüsselungs-
und Entschlüsselungsprogrammen, welche
komplementäre
und einmalige Sets von internen Regeln enthalten, gefertigt.
-
Die
obige Beschreibung betrifft eine Situation, wo Nachrichten zwischen
zwei Personen, die ein übereinstimmendes
Paar von Verschlüsselungs-
und Entschlüsselungsprogrammen
mit identischen internen Kryptovariablen haben, ausgetauscht werden. Die
Erfindung kann jedoch auch für
die Verwendung durch Personengemeinschaften angepasst werden, wo
einige Nachrichten zum Lesen durch alle Mitglieder der Gemeinschaft
bestimmt sind (aber nicht durch Personen außerhalb der Gemeinschaft) und andere
Nachrichten zum Lesen durch spezifische, aber nicht andere Mitglieder
der Gemeinschaft, bestimmt sind.
-
Zu
diesem Zweck werden Messageheader und Lizenzblocks verwendet, so
wie es nun unter Bezugnahme auf 4 beschrieben
wird, welche ein Beispiel veranschaulicht, wo die Gemeinschaft aus vier
Mitgliedern 30, die A B C und D genannt werden, besteht,
die in der Lage sind, sich gegenseitig E-Mail-Nachrichten über einen
zentralen Dienstleister 31 zu senden. Die vier Mitglieder
A B C und D haben alle identische Kopien des Verschlüsselungs/Entschlüsselungsschlüssels 32 und
sind somit in der Lage, Volltextnachrichten zu verschlüsseln und verschlüsselte Nachrichten,
die durch andere Mitglieder der Gemeinschaft gesendet werden, zu
entschlüsseln.
Diese Nachrichten können
durch Personen außerhalb
der Gemeinschaft, welche nicht denselben Verschlüsselungs/Entschlüsselungsschlüssel haben,
selbstverständlich
nicht entschlüsselt
werden.
-
Es
mag sein, dass Mitglieder der Gemeinschaft Nachrichten senden möchten, die
nur durch bestimmte Mitglieder der Gemeinschaft und nicht durch
andere übertragen
werden können.
A möchte zum
Beispiel eine Nachricht, die von B, aber nicht von C oder D gelesen
werden kann, senden. Zu diesem Zweck ist jeder Benutzer A B C und
D mit einem Lizenzblock 33 versehen (durch einen getrennten Partner),
der Daten enthält,
welche die Lizenzen identifizieren, aber keine Information wie Regeln
oder Schlüssel
zum Verschlüsselungs/Entschlüsselungsablauf
enthält.
Diese Lizenzblocks sind einmalig, wobei der Lizenzblock A nur für As Verwendung
bestimmt ist, wobei der Lizenzblock B nur für Bs Verwendung bestimmt ist,
und so weiter.
-
Jeder
Lizenzblock 33 ist mittels der Version des Verschlüsselungs/Entschlüsselungsschlüssel 32,
den sich A B C und D teilen, verschlüsselt. Er kann jedoch nicht
in Volltext umgewandelt werden und nur durch eine Anwendung 34 benutzt
und entschlüsselt
werden (d.h. ein Computerprogramm oder eine Hardwarevorrichtung),
die jedem Benutzer 30 zugeordnet ist. Die Anwendung 34 ist
selber durch ein Passwort 35 oder irgendeine andere Sicherheitsvorrichtung
geschützt
(zum Beispiel eine Chipkarte oder eine mechanische Verriegelung),
die für
den Benutzer 30 einmalig ist. Der Benutzer 30 kann
infolgedessen den Zugriff auf die Anwendung 34 nur durch Eingabe
des korrekten Passworts erlangen. Das Passwort kann zum Beispiel
in verschlüsselter
Form innerhalb des Lizenzblocks 33 enthalten sein.
-
Wenn
A eine geschützte
Nachricht an B sendet, bestimmt die Anwendung 34 die Identitäten des Absenders
(in diesem Fall A), und den beabsichtigten Empfänger (in diesem Fall B) sowie
der Inhalt der Nachricht, der eine E-Mail-Nachricht und/oder ein beigefügtes Set
von Dateien sein kann, und erstellt einen „Messageheader", der die Identitäten des
Absenders A und des beabsichtigen Empfängers B enthält. Der
Messageheader ist als Bestandteil der vollständigen Nachricht verschlüsselt und
wird von Blöcken
verschlüsselter
Information, die aus der Volltextnachricht erstellt wurde, gefolgt.
-
Um
die verschlüsselte
Nachricht zu entschlüsseln,
muss sich B zuerst selber bei der Anwendung 34 durch Eingabe
seines/ihres Passworts identifizieren. Nachdem er/sie sich identifiziert
hat, entschlüsselt
die Anwendung 34 den Messageheader, um festzustellen, für wen die
Nachricht bestimmt ist. In diesem Fall, da die Nachricht für B bestimmt
ist, nimmt die Anwendung 34 dann das Entschlüsseln der
Nachricht vor.
-
Falls
eine Nachricht für
mehrere Mitglieder der Gemeinschaft bestimmt ist (aber nicht für alle davon),
können
Einzelheiten von allen beabsichtigten Empfängern im Messageheader enthalten
sein. Fall die Identität
des Empfängers
mit einem der beabsichtigten Empfänger, die im Messageheader
identifiziert sind, übereinstimmt,
entschlüsselt
die Anwendung die Nachricht.
-
Eine
andere Person, die Bs Passwort nicht kennt, wäre nicht in der Lage, die Nachricht
mittels Bs Anwendung 34 zu entschlüsseln, da die misslungene Eingabe
des korrekten Passworts den Zugriff auf die Anwendung sperren würde.
-
Hätte ein
anderes Mitglied der Gemeinschaft, zum Beispiel C, versucht, die
Nachricht mittels seiner Anwendung 34 zu entschlüsseln, würde die
Anwendung aus dem Messageheader bestimmen, dass die Nachricht nicht
für C bestimmt
war und würde daher
nicht die Nachricht entschlüsseln.
Die Vertraulichkeit der Nachricht wäre folglich gewährleistet.
-
Es
sind etliche Veränderungen
des Verschlüsselungs/Entschlüsselungsprogramms
möglich,
von denen einige nun beschrieben werden. Um die Integrität der Nachricht
zu gewährleisten
(d.h., um zu gewährleisten,
dass zwischen Senden und Empfangen keine Änderungen durch einen dritten
Partner vorgenommen worden sind), kann eine Einweg-Hash-Funktion,
englisch als „one-way-hash" (OWH) bezeichnet,
in die Nachricht eingebunden werden. Verfahren zur Bereitstellung
von OWH sind bekannt und werden zum Beispiel in Applied Cryptography
(oben) beschrieben.
-
Die
OWH wird für
den Header erzeugt und in den Header eingebunden. Andere OWHs werden
für die
Blöcke
von Volltext erzeugt und in die Blöcke von Schlüsseltext
eingebunden. Eine weitere OWH wird für die gesamte Nachricht erzeugt
und in den Schlussblock des Schlüsseltexts
eingebunden.
-
Die
Anwendung, welche die Nachricht empfängt und entschlüsselt, erzeugt
dieses OWH-Werte erneut aus der Nachricht und vergleicht die Werte
mit jenen, die durch die sendende Anwendung erzeugt wurden. Wenn
die Werte verschieden sind, deutet dies an, dass die Nachricht abgeändert wurde.
-
Um
Authentifizierung zu bieten (d.h. dem Empfänger die Identität des Absenders
zu beweisen), kann der Messageheader eine „Signatur"-Anzeige einbinden, die auf „richtig" oder „falsch" gesetzt sein kann.
Wenn der Absender die Nachricht „authentifizieren" möchte, identifiziert
er sich selbst an der sendenden Anwendung durch Eingabe seines Passworts.
Die Anwendung überprüft dieses
Passwort in Abhängigkeit
vom verschlüsselten
Passwort, das im Lizenzblock enthalten ist und setzt, wenn sie übereinstimmen,
die Signatur-Anzeige im Messageheader auf „richtig" und nimmt das Verschlüsseln der Nachricht
gemäß obiger
Beschreibung vor.
-
Beim
Empfang der Nachricht durch B identifiziert die empfangende Anwendung
die Signatur-Anzeige als „richtig" und benachrichtigt
den Empfänger, dass
die Nachricht authentifiziert ist.
-
Um
Unleugbarkeit zu bieten (d.h. zu verhüten, dass der Absender später die
von ihm gesendete Nachricht abstreitet), kann der Beweis der Identität des Absenders
und des Datums und der Uhrzeit der Sendung bereitgestellt werden.
Die Anwendung des Absenders bestimmt die Identifizierung des Absenders
und das Datum und die Uhrzeit der Erstellung der Nachricht und bindet
diese Information in verschlüsselter
Form im Messageheader ein. Beim Empfang durch den beabsichtigten
Empfänger
wird diese Information verfügbar
gemacht und stellt den Beweis bereit, dass der Absender die Nachricht
am angegebenen Datum und zur angegebenen Uhrzeit gesendet hat.
-
Der
Ablauf zur Fertigung der Software ist als Ablaufdiagramm in 5 dargestellt.
Der Fertigungsablauf findet unter drei verschiedenen Sicherheitsstufen
statt, eine „normale" Sicherheitsstufe 40, eine „sehr sichere" Stufe 41 und
eine „äußerst sichere" Stufe 42.
Das Fertigungswerk der Software kann physisch und elektronisch in
getrennte Bereiche geteilt sein, um diese verschiedenen Sicherheitsstufen zu
schaffen.
-
Die
Abläufe,
die auf der „normalen" Sicherheitsstufe 40 stattfinden,
sind der Auftragseingang 43, die Warenlieferung 44 und
die Aufzeichnungsführung,
für welche
eine Datenbank 45 von externen Seriennummern geführt wird.
-
Die
Abläufe,
die auf der „sehr
sicheren" Stufe 41 stattfinden,
enthalten die Verarbeitung von Anweisungen zur auftragsbezogenen
Fertigung (Manufacture-to-Order), ein Set von Verschlüsselungs-
und Entschlüsselungssoftware 46 und
die Lagerung 47 der gefertigten Software in einem Warenlager
vor der Lieferung zum Kunden.
-
Die
Abläufe,
welche auf der „äußerst sicheren" Stufe 42 stattfinden,
enthalten die Fertigung und die Verpackung/Etikettierung des Produkts.
Insbesondere enthalten diese Abläufe
die Zuordnung zu den Verschlüsselungs/Entschlüsselungsalgorithmen der
einmaligen Regeln zur Umordnung der Datenbits und zum Einfügen/Extrahieren
der Zufallszahlen (Schritte (8) und (9) des Verschlüsselungsablaufs und
der Schritte (3) und (4) des Entschlüsselungsablaufs. Diese Regeln
werden durch ein Set von internen Zahlen bestimmt, das in die Computersoftware eingeschrieben
wird, und dieses Set von internen Zahlen wird auf einer Zufallsbasis
aus einer Datenbank 48 extrahiert.
-
Der
Fertigungsablauf ist wie folgt. Beim Eingang eines Auftrags im Auftragseingangsbereich 43 wird
ein Befehl zur auftragsbezogenen Fertigung 46 erzeugt,
der veranlasst, das eine externe Seriennummer aus der Datenbank
externer Nummern 45 gelesen wird und zum äußerst sicheren
Abschnitt 42 gesendet wird. Die externe Seriennummer oder
Seriennummern werden zugeordnet 48 und mit den Bezugsnummern 49 des
Auftrags verknüpft.
Für jede externe
Bezugsnummer 50 wird ein Set interner Nummern zufällig aus
der Datenbank 48 gewählt
und der Computersoftware zugewiesen 51. Gleichzeitig wird
das ausgewählte
Set von internen Nummern in der Datenbank 48 als „benutzt" 52 gekennzeichnet, damit
verhütet
wird, dass das Set von internen Nummern einer anderen Version der
Computersoftware zugeordnet wird. Die Verschlüsselungs/Entschlüsselungssoftware
des Computers wird dann mittels der ausgewählten internen Nummern gefertigt 53,
wodurch ein einmaliges Produkt geschaffen wird, das aus einem komplementären Paar
von Verschlüsselungs- und Entschlüsselungsalgorithmen
besteht. Anschließend
wird das Produkt verpackt 54 und mit der externen Seriennummer
etikettiert 55. Letztendlich wird das Produkt 47 in
einem Warenlager gelagert und eventuell dem Käufer geliefert 44.
-
Es
ist zu beachten, dass das Set von internen Nummern, die der Verschlüsselungs/Entschlüsselungssoftware
zugewiesen sind, zufällig
aus der Datenbank 48 gewählt wird und dass jene internen Nummern
in die Verschlüsselungs/Entschlüsselungsprogramme
in einem „verdeckten" Fertigungsablauf
bei einer äußerst hohen
Sicherheitsstufe eingeschrieben werden. Während die Datenbank gekennzeichnet
ist, um zu verhüten,
dass ein Set von internen Nummern mehr als einmal benutzt wird,
wird außerdem
keine Aufzeichnung davon gemacht, welches Set von internen einer
besonderen Version der Software zugewiesen wurde. Infolgedessen
ist es unmöglich,
zu unterscheiden, welches Set von internen Nummern bei der Fertigung
von einer besonderen Version der Software benutzt wurde, sei es
durch Prüfen
der Firmenaufzeichnungen, durch „Abhören" des Fertigungsablaufs oder zum Beispiel
durch Beamtenbestechung oder Erpressung eines Angestellten der Herstellungsfirma.
Der Fertigungsablauf ist infolgedessen äußert sicher.
-
Sobald
die Software gefertigt worden ist, kann sie, zum Beispiel durch
Senden über
einen Datenlink, an den Kunden geliefert werden.
-
Dies
bietet den Vorteil, dass ein Benutzer der Software auf eine neue
Version des Verschlüsselungsalgorithmus
auf regelmäßiger Basis,
zum Beispiel täglich,
wechseln kann.
-
Es
sind verschiedene Abwandlungen der Technik möglich. Zum Beispiel, um die
Länge der
verschlüsselten
Nachricht zu reduzieren, wobei der Volltext vor der Verschlüsselung
komprimiert werden kann. Von den vielen bekannten Datenkomprimierungstechniken
kann eine in die Verschlüsselungs/Entschlüsselungsoftware
eingebunden werden.
-
Der
Verschlüsselungs/Entschlüsselungsablauf
kann auch durch Hardware implementiert werden, die zum Beispiel
in ein Modem oder sonstige Datenübertragungsvorrichtung
eingebunden werden kann. Der Verschlüsselungs/Entschlüsselungsablauf kann
dann vollkommen unsichtbar und nahtlos für die Benutzer des Ablaufs
sein.
-
Die
Verschlüsselungsabläufe können auch abgewandelt
werden, um eine größere oder
kleinere Zahl von Zufallszahlen 5A–5D und/oder größere oder kleinere
Blöcke
von Volltext und/oder größere oder kleinere
Sets von Bits, die zum Beispiel Sets von 8 Bits, 16 Bits oder 256
Bits (usw.) sein können,
zu benutzen. Es kann zum Beispiel ein 40-Zeichenblock von Volltext mit 16 Zufallszahlen
kombiniert werden, um einen 56- Zeichenschlüsseltext
zu erzeugen oder mit 32 Zufallszahlen, um einen 72-Zeichenschlüsseltext
zu erzeugen. Alternativ kann ein 320-Bitblock von Volltext mit sechzehn
8-Bit-Zufallszahlen kombiniert werden, um einen 448-Bitblock von
Schlüsseltext
zu erzeugen.