-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft symmetrische Kryptographie und im
Speziellen Telekommunikationssysteme, die symmetrische Kryptographie verwenden.
-
Hintergrund der Erfindung
-
Das
Verschlüsseln
von Daten, die über
Netzwerke versendet werden, sollte typischerweise verhindern, dass
identische Klartextblöcke,
die mehrere Male versendet werden, in den gleichen Chiffretextblock
transformiert werden. Diese Voraussetzung sollte es sehr kompliziert
oder unmöglich
für den nicht
autorisierten Kryptonanalysten gestalten, verschlüsselte Chiffretexte
abzuhören,
die sich beispielsweise auf Internet-Browsing-Nachrichten beziehen,
wo die gleichen Web-Seiten durch den selben Anwender immer wieder
angefordert werden.
-
In 1 ist
ein bekanntes Einzel-Schlüssel-Kryptosystem
gezeigt, in dem ein Sender S eine Klartextnachricht P zu einem Empfänger R versendet.
Der Klartextnachrichtenblock P wird gemäß einem Chiffre, was in diesem
Fall der Exklusiv-ODER-Funktion (XOR) ist, mit einem Schlüssel bearbeitet,
der aus einer Zufallsbitsequenz RS besteht, so dass ein Chiffretextblock
C erzeugt wird. Der Chiffretextblock C wird in Punkt A über ein
Medium M übertragen
und wird im Punkt B empfangen. Beispielsweise entspricht A einem
Funküberträger, M entspricht
der Luft, und B entspricht dem Funkempfänger. Nach Empfang im Punkt
B wird der Chiffretextnachrichtenblock C in einer Exklusiv-ODER-Funktion
mit dem gleichen Zufallssequenz-RS-Schlüssel bearbeitet, der auch für die Verschlüsselung
verwendet wurde, so dass der originale Klartextblock P wiederhergestellt
wird.
-
Für eine Sequenz
von zu übertragenden Klartexten,
so wie Pakete in einem Paketdatennetzwerk, ist anzumerken, dass
der Empfänger
wissen muss, welche Reihenfolgenummer der Chiffretextnachricht R
empfängt,
um die entsprechende Zufallsbitsequenz zu verwenden.
-
Eine
Tabelle von Zufallssequenzen, die sowohl dem Empfänger als
auch dem Sender bekannt sind, kann verwendet werden als Schlüssel für symmetrische
Verschlüsselung
und Entschlüsselung. Solch
eine Tabelle könnte
die in 2 gezeigte Form aufweisen oder könnte viel
größer sein.
-
Ein
Pseudo-Zufallszahlenerzeuger (PRNG, Englisch: pseudo random number
generator) kann auch verwendet werden zum Erzeugen von geeigneten
Schlüsseln.
Ein PRNG ist eine unechte Zufallseinrichtung, die dem Uneingeweihten
als ein echter Zufallszahlenerzeuger erscheint (TRNG, Englisch: truly
random number generator). Normaler Weise kann ein PRNG annähernd TRNG-Ausgabe
für eine begrenzte
Periode erreichen, und ziemlich häufig wird sich die Ausgabe
selbst in Zyklen wiederholen. Ein längerer Zyklus bedeutet im Allgemeinen
einen besseren PRNG.
-
Das
Erreichen von echter Zufälligkeit
für eine inhärent deterministische
Maschine ist ein schwieriges Problem. Eine Lösung, die insgesamt nur auf Software
basiert, kann eine „fast
Zufalls" oder „Zufallsähnliches" Verhalten erreichen.
In der Natur wird allgegenwärtige
Hintergrundstrahlung und daher Atomzerfall als eine der wenigen
echten Quellen von Zufälligkeit
betrachtet. In der Computerwissenschaft wird ein sorgfältig ausgelegter
Josephson-Anschluss als ein echter Zufallsrauscherzeuger, TRNG (Englisch:
true random noise generator) betrachtet.
-
Typischer
Weise kann der PRNG ohne Parameter aufgerufen werden. Einige PRNG
benötigen eine
Spezifizierung der benötigten
Zufalls-Bits, um einen „Zufalls-„Wert zu
erzeugen. Jeder identische anschließende Aufruf wird unterschiedliche
Werte erzeugen.
-
Um
zu verhindern, dass ein PRNG den gleichen Pseudo-Zufallsdatenstrom
bei jedem Neustart ausgibt, unterstützen die meisten PRNG-Einrichtungen
die Idee von „Seeding" (Deutsch: „Impfen") oder Initialisieren
mit einem Zufallszahlenkeim. Typischer Weise werden die meisten
PRNG den gleichen Datenstrom erzeugen, wenn diese mit exakt dem
gleichen Keim wieder geimpft werden.
-
Im
Allgemeinen ist ein PRNG kein PRNG, wenn sowohl die aktuelle PRNG-Einrichtung
als auch der Keim für
den Beobachter bekannt sind. Der Beobachter kann einfach die nächsten (n
+ 1) PRNG Ausgaben vorhersagen durch Impfen des PRNG mit dem Anfangskeim
und Iterieren des PRNG n + 1 Mal.
-
Es
gibt PRNG-Konstruktionen, die die „n" Zählung
als ein Parameter verwenden können
und eine Pseudozufallsfolge in Reaktion auf einen einzelnen Lauf
erzeugen. Die Datenverschlüsselungsstandardfunktion
DES_encrypt(seed|count), wobei "|" eine Verknüpfung bzw.
Verkettung bezeichnet, ist ein Beispiel.
-
Durch
Bloßlegen
entweder des Algorithmus oder des Keims wird der PRNG geschwächt. Es
ist jedoch anzumerken, dass eine starke PRNG-Konstruktion mit einem
großen
internen Zustand immer noch schwer vorherzusagen ist, solange der
Anfangskeim für
den Beobachter unbekannt ist. Es ist auch anzumerken, dass es sehr
schwer sein kann, die Iterationszählung vor einem außen stehenden Beobachter
zu schützen.
Das Umsortieren von Konstruktionen, wo lediglich jede n-te PRNG-Ausgabe tatsächlich von
dem PRNG ausgegeben wird, kann wiederum als ein neuer PRNG betrachtet
werden, der wieder dem gleichen Problem von Iterationszählung gegenübersteht.
-
PRNG-Konstruktion
ist eine Wissenschaft an sich, und eine große Zahl dieser ist leicht in
der Literatur verfügbar.
Um einige wenige zu nennen: RC2, RC4, die meisten Chiffren von OFB-(Ausgaberückkoppelung,
Englisch: OutputFeedback) Modus, MT19937B, allgemeine Konstruktionen
mit HMAC-Kombinationen mit sicheren Hash-Algorithmen, so wie SHA-1,
MD5 und RIPEMD.
-
Wenn
ein PRNG bestimmte Kriterien hinsichtlich der Vorhersagbarkeit erfüllt, kann
dieses als ein kryptographisch sicherer PRNG bezeichnet werden.
RC2 und RC4 wurden für
diesen Zweck konstruiert. Ein großer Forschungsaufwand wurde
in die Untersuchung von verschiedenen von diesen Algorithmen hinsichtlich
der Zykluslänge
gesteckt. Für
den Fall von Hash-Einrichtungen ist ein Problem, mit dem sich zu
beschäftigen
war, wie viele Ausgabe-Bits erhalten werden können, ohne den internen Entropie-Fundus
des PRNG zu gefährden,
ohne Entropieerneuerung.
-
Eine
echte Einmal-Passwort OTP (Englisch: One-Time Password) kryptographische
Konstruktion ist vielleicht die einzige kryptographische Konstruktion,
gegen die keine Angriffe bekannt oder tatsächlich verfügbar sind. OTP-Kryptographie
basiert auf der Verwendung einer Tabelle, so wie in 2 gezeigt, von
vorbestimmten Schlüsseln,
die lediglich einmal verwendet werden und anschließend sowohl
von dem Anwender als auch dem Server verworfen werden.
-
Neben
Verschlüsselung
werden auch Einmal-Passwörter
OTP's (one-time
passwords) auch allgemein bei der Authentifizierung verwendet, wo anstelle
der Präsentation
eines bestimmten Passworts bei jeder Anmeldung der Anwender den
nächsten
Eintrag in die Tabelle der Passwörter
eingibt.
-
Ein
Nachteil liegt in der Distribution der vorbestimmten Tabellen.
-
Ein
anderes potentielles Problem für
OTP basierte Systeme ist der Mangel an Synchronisation zwischen
dem Client und dem Server. Beispielsweise versucht der Client sich über eine
schlechte Verbindung zu authentifizieren, und der Server empfängt ein
(entstelltes) schlechtes Passwort. Der Server muss den Zugriff verweigern
und die Anmeldungsanfrage ignorieren. Inzwischen ist das nächste Passwort
des Clients vom Eintrag n + 1, wohingegen der Server noch immer
bei n verweilt. Folglich muss der Server mehrere Passwörter ausprobieren,
normaler Weise bis hinauf zu n + x, wobei x als ein Synchronisierungsfenster
betrachtet werden kann. Solange weniger als x falsche Authentifizierungen
seit der letzten Authentifizierung stattgefunden haben, kann die
aktuelle Authentifizierung erfolgreich sein, wenn das Passwort korrekt
ist.
-
Die
vordefinierten Listen von Einmal-Passwörtern müssen nicht notwendigerweise
Listen sein. In allgemeineren Begriffen könnten die Listen vordefinierte <Wert, Iteration> Tupel sein.
-
Dies
bringt uns zu den PRNG's
zurück. Wenn
sich auf einen Anfangskeim geeinigt wurde, kann ein Satz von neuen
Passwörtern
als ein Ergebnis des PRNG-Prozesses oder Ausgabe betrachtet werden.
-
Zweifaches
Verschlüsseln
des gleichen Klartextes unter Verwendung des gleichen Chiffre und Schlüssels werden
zwei gleiche Chiffretexte C und C' erzeugen. Um dies zu vermeiden, wird
häufig
ein Initialisierungsvektor (IV) verwendet. Der Initialisierungsvektor
wird zufällig
für jeden
Klartext ausgewählt
und wird in Klartext zu dem Empfänger
gesendet. Für
Datenstromchiffren (z. B. RC4) ist der Initialisierungsvektor häufig mit
dem geheimen Schlüssel verknüpft:
C
= encrypt(P, key|IV)
P = decrypt (C, key|IV)
-
Für Blockchiffren
(z. B. DES) ist es gebräuchlicher,
einen Aufbau zu haben, der wie folgt ist:
P' = P xor IV, C' = encrypt(P', key)
P' = decrypt(C', key), P = P' xor IV
-
In
beiden Fällen
wird der Initialisierungsvektor in Klartext zu dem Empfänger mit
jeder verschlüsselten
Nachricht gesendet.
-
In
den 3, 4 und 7 wurde
die Auffassung bzw. die Erkenntnis der Erfinder des zuletzt beschriebenen
Verschlüsselungsverfahrens
gezeigt.
-
Eine
Sequenz von Klartextblöcken
P wird von einem Sender S ausgegeben, der sich mit einem Empfänger R auf
einen 40-Bit Schlüssel
oder Passwort Pswd1 geeinigt hat. Die Klartextblöcke P werden mit einer Exklusiv-OR-Funktion
mit verschiedenen OTP's
bearbeitet, die mit RC4stream#1, RC4stream#2 ... RC4stream#n bezeichnet
sind.
-
In
Analogie mit 1 sind eine Senderseite S und
eine Empfängerseite
R bereitgestellt, und es wird eine Übertragung durch ein Telekommunikationssystem
(nicht dargestellt) über
ein Medium M zwischen Punkten A und B bereitgestellt.
-
Nun
wird Bezug genommen auf die 3 und 4.
Auf der Senderseite S erzeugt ein PRNG einen Identifizierungsvektor,
der eine 24-Bitantwort erzeugt. Als nächstes wird ein zweites 64-Bitpasswort
Pswd2 von dem Initialisierungsvektor zusammengesetzt, der von dem
PRNG erzeugt wird, und das Pswd1 durch Anordnen der zwei Bitsequenzen hintereinander.
Der resultierende Schlüssel
Pswd2 wird in eine RC4 Funktion eingegeben, die anschließend das
Einmal-Passwort erzeugt, nämlich
eine Bitsequenz, die mit RC4stream#(1–n) bezeichnet wird, die in
die XOR-Funktion eingegeben wird, die oben erwähnt wurde. Dadurch wird der
Chiffretext C erzeugt und ist für
die Übertragung
bereit.
-
Der
Chiffretext C, der eine Ordnungszahl aufweist, die einer gegebenen
Klartext-Ordnungszahl entspricht, und der Initialisierungsvektor
der entsprechenden Ordnungszahl, der für die Erzeugung des RC4stream
verwendet wird, sind in dem selben Datenpaket bei der Übertragung
beigefügt.
-
In 7 ist
das Zeitdiagramm betreffend des oberen Verschlüsselungsverfahrens gezeigt.
Auf der Senderseite S wird ein Anfangspaket P1 und ein Anfangsinitialisierungsvektor
IV1 anfänglich
zur Zeit t0 ausgegeben.
-
Das
zweite Passwort Pswd2 wird erzeugt durch die Zusammensetzung von
Pswd1 und des Zufallsinitialisierungsvektors und wird in die RC4-Funktion
eingegeben. Von t1 an wird der RC4stream (RCstream#1) durch den
RC4-Erzeuger auf der Senderseite S RC4 erzeugt. Bei t2 erzeugt die XOR-Funktion
auf der Senderseite S XOR den Chiffretext C1, so dass ein Datenpaket,
das aus Chiffretext und Initialisierungsvektor besteht, die entsprechenden
Ordnungsnummern bzw. Reihenfolgezahlen aufweisen, übertragen
wird.
-
Mit
Bezug auf 3 wird anschließend der gleiche
Prozess auf der Empfängerseite
R wie auf der Empfängerseite
S durchgeführt:
Der Initialisierungsvektor wird von dem übertragenen Paket wiederhergestellt.
Der Empfänger
gibt das Pswd1 von geeigneter Ordnungsnummer aus, beispielsweise entsprechend
der Paketnummer. Anschließend
wird ein RC4stream, der identisch ist zu dem RC4stream auf der sendenden
Seite der gleichen Ordnungsnummer, in den XOR-Operator eingegeben.
-
Folglich
kann sobald der übertragene
Initialisierungsvektor empfangen wird, der entsprechende RC4stream
erzeugt werden. In 7 wird gezeigt, dass die Erzeugung
des RC4stream#1 auf der Empfängerseite
bei t3 beginnt und XOR-bearbeitet wird mit dem Chiffretext C1. Schließlich wird
bei t4 der Klartext P1 von dem Operator R XOR ausgegeben.
-
Dieser
Prozess wird iteriert mit Klartextblöcken P2 bis Pn unter Verwendung
von lediglich einem einzelnen Passwort Pswd1, das dem Sender und
dem Empfänger
bekannt ist, und durch Verwenden von unterschiedlichen Einmal-Passwörtern durch
pseudo zufällig
erzeugte Initialisierungsvektoren IV1 bis IVn.
-
Das
Dokument
WO 01/48594 aus
dem Stand der Technik zeigt ein lineares Rückkopplungsverschieberegister,
das für
einen Pseudozufallszahlengenerator in einem Datenstromchiffre-Verschlüsselungssystem
verwendet wird. Der Pseudozufallszahlenerzeuger benötigt einen
Initialisierungsvektor und einen privaten Schlüssel sowohl auf der sendenden als
auch auf der empfangenden Seite. Das lineare Rückkopplungsverschieberegister
zielt auf die Reduzierung der Anzahl von Instruktionen ab, die benötigt werden
zum Erzeugen von Pseudozufallssequenzen.
-
WO 01/50676 zeigt ein ähnliches
System.
-
Das
Dokument
US 6249582 aus
dem Stand der Technik zeigt eine Vorrichtung und ein Verfahren zum
Reduzieren des Overheads eines Blockchiffres und enthält die Verkürzung der
Länge eines
Initialisierungsvektors. Chiffreblockverkettung verhindert, dass
sich die Zykluslänge
des Blockchiffres sich reduziert.
-
Zusammenfassung der Erfindung
-
Es
ist ein primäres
Ziel der vorliegenden Erfindung, die Overhead-Information auf einem
Kommunikationskanal zu reduzieren, während eine hohe Verschlüsselungssicherheit
erreicht wird.
-
Dieses
Ziel wurde durch den in Anspruch 1 definierten Gegenstand erreicht.
-
Es
ist ein primäres
Ziel der vorliegenden Erfindung, dass gängige Niveau von Bearbeitungsleistung
effizienter zu nutzen, die verfügbar
ist zum Chiffrieren bzw. Verschlüsseln
oder Dechiffrieren bzw. Entschlüsseln
von Nachrichten.
-
Dieses
Ziel wurde durch den durch Anspruch 2 definierten Gegenstand erreicht.
-
Es
ist ein weiteres Ziel der vorliegenden Erfindung, die Verschlüsselungssicherheit
zu erhöhen.
-
Dieses
Ziel wurde durch den in Anspruch 3 definierten Gegenstand erreicht.
-
Es
ist ein weiteres Ziel der vorliegenden Erfindung, die Verschlüsselungssicherheit
weiter zu erhöhen.
-
Dieses
Ziel wurde durch den in Anspruch 4 definierten Gegenstand erreicht.
-
Weitere
Vorteile werden aus der detaillierten folgenden Beschreibung der
Erfindung ersichtlich.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt
ein bekanntes symmetrisches Verschlüsselungsmodell.
-
2 zeigt
einen exemplarischen Auszug einer Einmal-Passwort-Tabelle.
-
3 zeigt
ein anderes bekanntes Verschlüsselungsmodell.
-
4 zeigt
Operationen und Bit-Formate für das
bekannte Modell aus 3.
-
5 zeigt
die Interpretation der Anwender eines möglichen Zeitdiagramms bezüglich des
in 3 und 4 gezeigten Modells.
-
6 zeigt
ein bevorzugtes Verschlüsselungsmodell
gemäß der Erfindung.
-
7 zeigt
Operationen und Bit-Formate für das
Modell aus 6.
-
8 zeigt
ein Zeitdiagramm bezüglich
der bevorzugten Ausführungsform
der Erfindung, wie diese in 6 und 7 gezeigt
ist.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsformen
der Erfindung
-
In
den 5, 6 und 8 ist eine
exemplarische Ausführungsform
der vorliegenden Erfindung gezeigt.
-
Anfangs
wird ein Anfangs-Pswd1 zwischen einem Sender und einem Empfänger während des/der
Sitzungsaufbaus/-Authentifizierung verhandelt. Es versteht sich,
dass die Rollen des Senders und des Empfängers sich über die Zeit hin verändern können, so
dass eine bidirektionale Kommunikationssitzung durchgeführt wird.
Jedoch wird aus Gründen
der Einfachheit im Folgenden beschrieben, wie eine Kommunikation
durchgeführt
wird von einer Partei, die als Sender bezeichnet wird, zu einer
anderen Partei, die als Empfänger
bezeichnet wird. Der Sender und der Empfänger könnten auf Kommunikationseinheiten,
z. B. mobile Endgeräte,
Bezug nehmen.
-
Wie
im Stand der Technik wird eine Sequenz von Klartexten P durch den
Sender S ausgegeben, der sich mit dem Empfänger R auf ein Passwort Pswd1
geeinigt hat. Die Klartexte P werden mit einer Exklusiv-OR-Funktion
mit verschiedenen Schlüsseln bearbeitet,
die als RCstream#1, RCstream#2 ... RC'stream#n bezeichnet sind. Das erste
Passwort kann beispielsweise eine Länge von 64 Bit oder irgendeine
andere Länge
aufweisen.
-
Im
Genaueren wird ein erstes Passwort Pswd1 in einen Zufallssequenzerzeuger
RC eingegeben, so wie RC2 oder RC4, und ein erster Zufalls-Bit-Sequenzstring
RCstream wird, wie in 6 gezeigt, erzeugt. Der RC-Erzeuger
könnte
geeignet ausgewählt
werden, so dass der RCstream eine unendliche Länge aufweist. Dieser Zufalls-Bit-Sequenzstring
wird partitioniert, so dass ein Satz von n Initialisierungsvektoren
IV1–IVn
definiert ist.
-
Wie
in den 5 und 6 gezeigt, werden die n Identifizierungsvektoren
IVI–IVn
individuell bearbeitet gemäß dem zweiten
Zufallssequenzerzeuger RC' gemäß der Funktion
RC'(IV), so dass
ein Satz von n Zufalls-Bit-Stringsequenzen RC'stream#1–RC'stream#n erscheint. Wieder könnten Zufallssequenzerzeuger
RC2 oder RC4 vorteilhaft verwendet werden, jedoch sind andere Erzeuger optional.
-
Es
ist vorgesehen, dass als eine Alternative zu der in den 5 und 6 gezeigten
Ausführungsform
ein einzelner Zufalls-Bit-Sequenzerzeuger RC verwendet werden kann,
wodurch die resultierende Bit-Sequenz in n Schlüssel partitioniert wird.
-
Die
Letzteren n Streams bzw. Datenströme werden tabellenförmig mit
Pa1–Pan
Einträgen
in einem Paketpuffer gespeichert. Dadurch wird eine Liste von n
unterschiedlichen Einmal-Schlüsseln
erreicht.
-
Auf
der Empfangsseite werden die gleichen Operationen wie auf der Senderseite
ausgeführt,
so dass eine identische Liste von Einmal-Schlüsseln auf beiden Seiten erreicht
wird.
-
Daher
wird Chiffrieren für
einen Klartext P mit einer gegebenen Ordnungsnummer unter Verwendung
der bekannten XOR-Funktion mit einem gegebenen Schlüssel RC'stream mit einer
entsprechenden Ordnungsnummer erreicht, so dass ein Chiffretext
C der entsprechenden Ordnungsnummer erreicht wird.
-
Das
Dechiffrieren wird für
einen Chiffretext C mit einer gegeben Ordnungsnummer unter Verwendung
der bekannten XOR-Funktion mit dem gleichen Schlüssel RC'stream erreicht bzw. durchgeführt mit der
gleichen entsprechenden Ordnungsnummer wie die bei der Dechiffrierung
verwendete.
-
Da
in vielen bekannten Übertragungssystemen,
im Besonderen in Paketdatensystemen, übertragene Pakete oder Rahmen
eine Sitzungssequenznummer enthalten, kann die Folgennummer des Verschlüsselungsverfahren
einfach mit der Folgennummer assoziiert werden, die für die Übertragungssitzung
verwendet wird.
-
Daher
gibt es kein Erfordernis für
Synchronisierung während
der Kommunikationssitzung. Auch wenn Pakete nicht in aufeinanderfolgender
Reihenfolge empfangen werden, können
diese gemäß der vorbestimmten
Liste von Einmal-Schlüsseln Pa1–Pan dechiffriert
werden.
-
Vorteilhafterweise
wird die Liste von Einmal-Schlüsseln
RC'stream#1, RC'stream#2 ... RC'stream#n in dem Array
Pa1, Pa2, Pan sowohl auf der Senderseite als auch auf der Empfängerseite
berechnet, wodurch Übertragungssitzungsfolgennummern
1–n den
Arrayfolgenummern Pa1, Pa2, Pan zugewiesen werden. Ein gegebener
Klartext wird gemäß der gegeben
Reihenfolge wiederhergestellt, ein gegebener Chiffretext C wird
in einer gegebenen Kommunikationssitzung empfangen durch Erhalten eines
entsprechend berechneten Einmal-Schlüssels RC'stream#1, RC'stream#2 ... RC'stream#n mit der zugewiesenen Übertragungssitzungsfolgennummer des
Arrays auf der Empfängerseite.
-
Vorteilhafterweise
kann die Paketpufferliste berechnet werden, bevor eine Kommunikationssitzung
gestartet wird, jedoch kann die Erzeugung der Liste auch intermittierend
mit der Übertragung
der Pakete erzeugt werden, so wie in dem Zeitdiagramm aus 8 gezeigt.
Sobald der Puffer eine geeignete Größe zum Handhaben bzw. Bearbeiten
des eingehenden Chiffretextes erreicht hat, kann die Berechnung
von zusätzlichen
Einmal-Schlüsseln
ausgeführt werden,
wenn Prozessorleistung verfügbar
ist.
-
In 8 ist
das Zeitdiagramm bezüglich
des oberen Verschlüsselungsverfahrens
gezeigt. Auf der Senderseite S werden ein Anfangspaket P und ein Anfangsinitialisierungsvektor
anfänglich
zur Zeit t0 ausgegeben.
-
Anschließend werden
neue Klartextpakete ausgegeben und neue Initialisierungsvektoren
werden gemäß der RC-Funktion
erzeugt.
-
Sobald
der erste Initialisierungsvektor ausgegeben ist, können die
Berechnung der Liste von Einmal-Schlüsseln und das anschließende Speichern
in dem Paketdatenpuffer beginnen. Wie in 8 gezeigt,
werden von der Zeit t1 an entsprechende Einmal-Schlüssel RC'stream#1, RC'stream#2, RC'stream#3 berechnet
und in dem Paketarray bei Reihenfolgennummern Pa1, Pa2 und Pa3 gespeichert.
-
Das
Selbe gilt für
die Empfängerseite,
wobei hier der Initialisierungsvektor und die Einmal-Schlüssel anfänglich berechnet
werden, direkt nachdem der Kommunikationsprozess initiiert ist.
-
Daher
ist eine Anzahl von Einmal-Schlüsseln RC'stream#1, RC'stream#2, RC'stream#3 an der Senderseite
und der Empfängerseite
bei einer frühen Phase
der Kommunikationssitzung geläufig.
Diese Einmal-Schlüssel
sind bereit für
die Verwendung unabhängig
von der Reihenfolge, die tatsächlichen
Pakete können übertragen
werden, und daher unabhängig
von dem Verlauf der Kommunikationssitzung.
-
Bei
t2 wird der Chiffretext C1 ausgegeben, und anschließend wird
bei t3 der Klartext P1 wiederhergestellt. Obwohl es vorteilhaft
ist, Einmal-Schlüssel
sowohl auf der Senderseite als auch auf der Empfängerseite zu berechnen und
zu speichern, wäre
es in Abhängigkeit
der verfügbaren
Bearbeitungsleistung, die in der Kommunikationseinheit auf der Empfängerseite
und der Senderseite verfügbar
sind, möglich,
dass Array lediglich auf einer Seite zu berechnen.
-
Es
erscheint, dass durch Verwenden eines OTP-(Einmal-Passwort/dynamisches Passwort) Schemas
mit dem Anfangs-Pswd1, das während des/der
Sitzungsaufbaus/-Authentifizierung verhandelt wurde, ein sich verändernder
Initialisierungsvektor verwendet werden kann, ohne anfänglich diesen über das
Netzwerk zu synchronisieren. Da Initialisierungsvektoren nicht über den
Kommunikationskanal als Overhead gesendet werden, kann darüber hinaus die
Kapazität
des Kommunikationskanals dem Inhalt gewidmet werden, während eine
Sicherheit auf einem hohen Niveau erreicht wird.
-
Die
Erfindung ist sowohl auf Datenstromchiffreverfahren als auch auf
Blockchiffreverfahren anwendbar.
-
Um
effizient mit Paketverlusten umzugehen, kann jedes Paket optional
mit einer Sequenznummer modulo der Fenstergröße ausgestattet werden (4 Bits
geben Unterstützung
für 15
Verlustpakete), oder eine bereits existierende Sequenznummer (wenn Protokollcharakteristiken
bekannt sind) kann wieder verwendet werden zum Einsparen von Bandbreite.
-
Da
die Initialisierungsvektoren und die Einmal-Schlüssel vor der Paketankunft vorberechnet werden
können,
ist es auch möglich,
die Datenstromchiffre-Bitdatenströme vorzuberechnen. Folglich
können
die potentiell zu schwer zu berechnenden Zufallsbitsequenz-Bitstreams
berechnet werden in einem Modus mit niedriger Priorität, bevor
die Daten angekommen sind. Wenn die Daten angekommen sind, gibt
es lediglich das Erfordernis, die Daten mit der XOR-Funktion mit
dem gespeicherten Bit-Datenstrom zu bearbeiten, um den Klartext
wieder zu erlangen. Optional kann die Sequenzfolge nach Konsistenz überprüft werden,
um mögliche
Paketverluste zu detektieren.
-
Das
obere Verfahren ermöglicht
ein effizientes und sicheres Senden von verschlüsselten Paketen speziell über bandbreitenlimitierte
Kommunikationsverbindungen, da keine explizite Übertragung von Initialisierungsvektoren
stattfindet.
-
Das
spezifische Ausnutzen der Möglichkeit der
Vorberechnung von Initialisierungsvektoren (Schlüsseln) macht es möglich, einen
hohen Durchsatz bei begrenzten bzw. limitierten Vorrichtungen zu erreichen.
-
Normale
Datenstrom-Chiffreverschlüsselung benötigt oft
eine häufige Änderung
von Schlüsseln, um
bekannte Klartextattacken zu vermeiden. Gemäß der Erfindung können Schlüssel für jedes
Paket verändert
werden, wodurch die Sicherheit verbessert wird.
-
Die
Zufalls-Bitsequenzerzeuger RC und RC' könnten
auf dem HMAC-SHA-1 im Ausgaberückkoppelmodus
oder irgendeinem Blockchiffre in OFB basieren, so wie DES oder jedem
anderen Aufbau, der geeignet ist, als ein PRNG verwendet zu werden.