-
TECHNISCHES
GEBIET DER ERFINDUNG
-
Die
Erfindung bezieht sich allgemein auf das Gebiet der Informationsverarbeitung
und insbesondere auf ein Verfahren und ein System zur Verschlüsselung
und Entschlüsselung
von Daten.
-
AUSGANGSSITUATION
DER ERFINDUNG
-
Die
Sicherheit von Informationen stellt eine Herausforderung für Unternehmen
und andere Organisationen dar, die Informationen übertragen
und speichern. Die Datenverschlüsselung
wird in der Absicht vorgenommen, Daten in eine Form zu überführen, die
nur von autorisierten Nutzern gelesen werden kann. In einem Verschlüsselungsverfahren
werden durch eine Zahl repräsentierte
Daten verschlüsselt,
indem die Zahl mit einer großen
Primzahl multipliziert wird, um ein Produkt zu erhalten. Um die
Daten zu entschlüsseln,
muss das Produkt durch die ursprüngliche
Primzahl geteilt werden, die nur autorisierten Nutzern bekannt ist.
Ohne Kenntnis dieser Primzahl wird für die Zerlegung in Faktoren
zur Bestimmung der Primärzahl
eine große
Menge an Rechenkapazität
und -zeit aufgewendet.
-
Unter
Verwendung von Primzahlen verschlüsselte Daten können jedoch
von einem unerwünschten, nicht
autorisierten Nutzer, dem genügend
Rechenkapazität
und -zeit zur Verfügung
steht, leicht entschlüsselt werden.
Darüber
hinaus wird durch das Verschlüsseln
und Entschlüsseln
von Daten unter Verwendung großer Primzahlen
die Datenübertragungsgeschwindigkeit
derart herabgesetzt, dass diese Verschlüsselungsverfahren für Echtzeitverschlüsselung
von Audio- und Videodaten nicht einsetzbar sind. In der Kryptographie
gibt es typischerweise einen Kompromiss zwischen Verarbeitungsgeschwindigkeit
und dem Grad der Datensicherheit.
-
Ein
weiteres, in der Patentschrift
US
5,245,658 von Bush et al. beschriebenes Verschlüsselungsverfahren
verschlüsselt
Daten, indem zunächst
ein Wertebereich von Zeichen ausgewählt wird, wobei jedes Zeichen
mit einer Koordinate assoziiert ist. Die Zeichen werden unter Verwendung
der Koordinaten der Zeichen verschlüsselt. Der Wertebereich kann
während
der Verschlüsselung
der Zeichen umgeschaltet werden.
-
Nicht
autorisierte Nutzer können
jedoch letztendlich Daten entschlüsseln, die mit Hilfe eines
wertebereichbasierten Verschlüsselungsverfahrens
verschlüsselt
wurden, indem sie die verschlüsselten
Daten einer statistischen Analyse unterziehen. Koordinaten, die
in den verschlüsselten
Daten häufig
auftreten, können
mit Zeichen assoziiert werden, die häufig in der Sprache der entschlüsselten
Zeichen auftreten. Wenn eine ausreichende Menge von verschlüsselten
Daten analysiert wird, können
die Daten entschlüsselt
werden. Daraus folgt, dass das Verschlüsseln von Daten mit einem hohen
Grad an Sicherheit und hoher Verarbeitungsgeschwindigkeit eine Herausforderung
darstellt.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung erreicht technische Vorzüge als ein multidimensionales
Verschlüsselungssystem
und Verschlüsselungsverfahren,
unter Verwendung relativer Vektor-Offsetwerte, die in polyalphabetischen
Alias-Substitutionen
und einem mehrstufig verschachtelten hierarchischen Schlüsselblock
verborgen sind. Mit Hilfe der analytischen Geometrie wird mit dieser
Erfindung eine herausragende Verschlüsselungssicherheit und Verarbeitungsgeschwindigkeit
erzielt.
-
In
einem Ausführungsbeispiel
der vorliegenden Erfindung wird ein Verfahren zur Datenverschlüsselung
offenbart. Klarzeichen werden empfangen und es wird auf einen Schlüsselblock
zugegriffen, der Schlüsselzeichen
enthält,
die mit den Klarzeichen korrespondieren. Das folgende Verfahren
wird für
die nachfolgenden Klarzeichen wiederholt, um diese zu verschlüsseln: Auffinden
eines aktuellen Schlüsselzeichens,
das mit einem aktuellen Klarzeichen korrespondiert, Auffinden eines
nächsten
Schlüsselzeichens,
das mit einem nächsten
Klarzeichen korrespondiert und Bestimmen eines Offsetwertes zwischen
dem aktuellen Schlüsselzeichen
und dem nächsten
Schlüsselzeichen.
Ein Aliasname wird verwendet, um die Bedeutung des Offsetwertes
zu verbergen.
-
In
einem Ausführungsbeispiel
der vorliegenden Erfindung wird ein System zur Datenverschlüsselung offenbart,
das einen Eingang aufweist, der Klarzeichen empfängt. Ein Speicher speichert
einen Schlüsselblock,
der aus Schlüsselzeichen
besteht, die mit Klarzeichen korrespondieren. Ein Prozessor wiederholt
die folgenden Schritte für
nach folgende Klarzeichen: Auffinden eines aktuellen Schlüsselzeichens,
das mit einem aktuellen Klarzeichen korrespondiert und Auffinden
eines nächsten
Schlüsselzeichens,
das mit einem nächsten
Klarzeichen korrespondiert. Ein Offsetmodul wiederholt die folgenden
Schritte für
jedes Klarzeichen, um die Klarzeichen zu verschlüsseln: Bestimmen eines Offsetwertes
zwischen dem aktuellen Schlüsselzeichen und
dem nächsten
Schlüsselzeichen
und Verbergen der Bedeutung des Offsetwertes mit einem Aliasnamen aus
einem Satz von Aliasnamen. Ein Ausgang sendet die verschlüsselten
Klarzeichen.
-
In
einem Ausführungsbeispiel
der vorliegenden Erfindung wird ein Verfahren zur Datenentschlüsselung
offenbart. Verschlüsselte
Daten, die mit Klarzeichen assoziiert sind, werden empfangen. Die
verschlüsselten
Daten enthalten Aliasnamen. Es wird auf eine Aliasnamen-Rücknahmetabelle
zugegriffen, um die Aliasnamen in Offsetwerte zu konvertieren. Es
wird auf einen Schlüsselblock
zugegriffen, der eine Vielzahl von Schlüsselzeichen enthält, die
mit den Klarzeichen korrespondieren. Die folgenden Schritte werden
für jeden Aliasnamen
wiederholt, um die verschlüsselten
Daten zu entschlüsseln:
Bestimmen eines Offsetwertes aus einem Aliasnamen, Auffinden eines
aktuellen Schlüsselzeichens,
Auffinden eines nächsten
Schlüsselzeichens, das
mit dem Offset korrespondiert, der auf das aktuelle Schlüsselzeichen
angewandt wurde, und Bestimmen eines Klarzeichens, das mit dem nächsten Schlüsselzeichen
korrespondiert.
-
In
einem Ausführungsbeispiel
der vorliegenden Erfindung wird ein System zur Datenentschlüsselung offenbart.
Ein Eingang empfängt
verschlüsselte
Daten, die mit Klarzeichen assoziiert sind. Die verschlüsselten Daten
enthalten Aliasnamen. Ein Speicher speichert einen Schlüsselblock,
der Schlüsselzeichen
enthält,
die mit den Klarzeichen korrespondieren. Ein Prozessor wiederholt
die folgenden Schritte für
jeden Aliasnamen, um die verschlüsselten
Daten zu entschlüsseln:
Bestimmen eines Offsetwertes aus einem Aliasnamen, Auffinden eines
aktuellen Schlüsselzeichens,
Auffinden eines nächsten
Schlüsselzeichens,
das mit dem Offset korrespondiert, der auf das aktuelle Schlüsselzeichen
angewandt wurde, und Bestimmen eines Klarzeichens, das mit dem nächsten Schlüsselzeichen
korrespondiert. Ein Ausgang sendet die entschlüsselten Daten.
-
Ausführungsbeispiele
der vorliegenden Erfindung haben zahlreiche technische Vorzüge. Ein
technischer Vorzug eines Ausführungsbeispiels
besteht darin, dass relative Offsetwerte zwischen Schlüsselzeichen, die
mit Klarzeichen korrespondieren, verwendet werden, um eine Nachricht
zu verschlüsseln.
Die Verwendung relativer Offsetwerte hat zur Folge, dass die Verschlüsselung
einer Nachricht jedes mal zu einem anderen Ergebnis führt, wenn
die Nachricht verschlüsselt
wird, auf diese Art und Weise wird die Sicherheit ohne nennenswerten
Einsatz von Rechenkapazität
oder -zeit erhöht.
Ein weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass für
die Verschlüsselung
jeder Nachricht ein anderes Start-Schlüsselzeichen verwendet werden
kann. Die Änderung
des Start-Schlüsselzeichens
führt selbst
dann zu unterschiedlich verschlüsselten
Zeichen, wenn die selbe Nachricht mehrere Male verschlüsselt wird.
-
Ein
weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass ein Schlüsselblock
einen Anfangsblock für
die Verschlüsselung
der Kopfzeile einer Nachricht und einen separaten Zugriffsblock
für die
Verschlüsselung
des Hauptteils einer Nachricht umfasst. Demgemäss kann, falls ein nicht autorisierter
Nutzer lediglich den Anfangsblock einer Nachricht entschlüsselt, der
nicht autorisierte Nutzer unter Verwendung dieser entschlüsselten
Information den Hauptteil der Nachricht nicht entschlüsseln.
-
Ein
weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass Aliastabellen verwendet werden können. Aliasnamen, die sich
in Tabellen befinden, werden verwendet, um die Bedeutung von Offsetwerten
zu verschleiern. Viele Aliasnamen können mit einem gegebenen Offsetwert
assoziiert sein, so dass er polyalphabetisch ist.
-
Ein
weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass eine Vielzahl von Aliastabellen erzeugt werden kann, so dass
eine Permutation von Aliastabellen stattfinden kann, in Übereinstimmung
mit einem zufallsabhängigen
und dynamischen Plan. Durch permutieren der Aliastabellen nach einem unbekannten
Plan ist das Sammeln von Daten mit dem Ziel einer Analyse der Häufigkeit
des Auftretens von mit Aliasnamen versehenen Offsetwerten nutzlos.
-
Ein
weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass ein Schlüsselblock Zugriffsblöcke aufweisen
kann, die einen selektiven und sogar hierarchischen Zugriff auf
verschlüsselte
Daten erlauben. Zugriffsblöcke
können
Untermengen oder andere Zugriffsblöcke enthalten, und können sich
mit anderen Zugriffsblöcken überschneiden.
Ein weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass Daten vor dem Verschlüsseln
komprimiert werden können,
um den Text noch weiter zu verschleiern. Demgemäss bieten Ausführungsbeispiele
der vorliegenden Erfindung weiter eine sichere Datenverschlüsselung
ohne den nennenswerten Einsatz von Rechenkapazität oder Rechenzeit.
-
Andere
technische Vorzüge
sind für
den Fachmann im Lichte der nachfolgenden Figuren, Beschreibungen
und Ansprüche
sofort ersichtlich.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Für ein umfassenderes
Verständnis
der vorliegenden Erfindung und ihrer weiteren Merkmale und Vorzüge wird
nun auf die nachfolgende Beschreibung anhand der beigefügten Figuren
bezug genommen, auf denen folgendes dargestellt ist:
-
1 stellt
ein Ausführungsbeispiel
eines Systems zum Verschlüsseln
und Entschlüsseln
von Daten gemäß der vorliegenden
Erfindung dar;
-
2 stellt
ein Ausführungsbeispiel
eines Schlüsselblocks
dar, der zusammen mit dem System gemäß 1 verwendet
werden kann;
-
3A–3C stellen
ein Ausführungsbeispiel
von Aliastabellen, Aliasnamen-Rücknahmetabellen und
Start-Aliastabellen
dar, die zusammen mit dem System gemäß 1 verwendet
werden können;
-
4 ist
ein Flußdiagram
eines Ausführungsbeispiels
eines Verfahrens zum Verschlüsseln
von Daten, gemäß der vorliegenden
Erfindung;
-
5 ist
ein Flußdiagram
eines Ausführungsbeispiels
eines erfindungsgemäßen Verfahrens
zum Entschlüsseln
von Daten, gemäß der vorliegenden
Erfindung; und
-
6 ist
ein Flußdiagram
eines Ausführungsbeispiels
eines Verfahrens zur Erzeugung einer Schlüsselmatrix, gemäß der vorliegenden
Erfindung.
-
AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE UND BESTE ART ZUM
AUSFÜHREN
DER ERFINDUNG
-
Die
Ausführungsbeispiele
der vorliegenden Erfindung sowie deren Vorzüge sind am besten anhand der 1 bis 6 zu
verstehen, wobei gleiche Bezugszeichen für gleiche und ähnliche
Teile der verschiedenen Zeichnungen verwendet werden.
-
1 stellt
ein bevorzugtes Ausführungsbeispiel
des Systems anschaulich dar, das als System 100 für die Verschlüsselung
und Entschlüsselung
von Daten gemäß der vorliegenden
Erfindung dargestellt ist. System 100 verschlüsselt eine
Folge von Klarzeichen durch Auffinden der Klarzeichen innerhalb
eines Blocks von Schlüsselzeichen,
der einen Schlüsselblock 120 einer
Schlüsselmatrix 121 enthält, Bestimmen
der relativen Offsetwerte zwischen den Schlüsselzeichen, und anschließendes Assoziieren
eines Aliasnamens mit jedem Offsetparameter.
-
In
dem dargestellten Ausführungsbeispiel
umfassen die Klarzeichen den Zeichensatz des „American Standard Code for
Information Interchange" (ASCII-Zeichensatz),
der Zeichen enthält,
die von Achtbit-Bytes repräsentiert
werden. Während
aus Gründen
der Kürze
und der Klarheit die verschlüsselten
Daten als Klartext beschrieben werden, der durch ASCII-Zeichen dargestellt
ist, liegt es auch im Rahmen der vorliegenden Erfindung, dass die
Zeichen eines Klartextes aus alternativen Datenbytes aufgebaut sein
können,
zum Beispiel EBCDIC, ANSI, UNICODE oder ISO10646, für die Repräsentation
von Audio- und Videodaten, zum Beispiel von Audio-/Videodatenströmen, Volltextformat
(rich text), Anwendungsprogrammen oder anderen geeigneten Daten,
und eine Beschränkung
auf Klartext darf daraus nicht abgeleitet werden. Der zur Zeit übliche Standard
für elektronische
Daten ist das Achtbit-Byte. Das System 100 verschlüsselt und
entschlüsselt
beliebige in elektronischer Form vorliegende Daten, unabhängig vom
Datentyp.
-
System 100 umfasst
ein Verschlüsselungssteuermodul 114,
das auf ein (I/O)-Modul 108 (Eingabe/Ausgabe modul 108),
anspricht, einen Prozessor 110, ein Offsetmodul 130,
ein Aliasmodul 140 und ein Kompressionsmodul 150.
Die funktionellen Abläufe
des Systems 100 können
mit Hilfe einer beliebigen Kombination aus Software und/oder Hardware
und von einer beliebigen Anzahl, Kombination oder Anordnung von Prozessoren
oder Modulen ausgeführt
werden. Das Verschlüsselungssteuermodul 114 umfasst
einen Prozessor 110, der das Verfahren der Verschlüsselung
einer Folge von Klarzeichen, p1...pm, in verschlüsselte Zeichen, c1...cq, steuert, die alternativ auch Datenworte
sein können.
Der Prozessor 110 steuert auch das Verfahren der Entschlüsselung
von verschlüsselten
Zeichen, c1...cq,
in Klarzeichen, p1...pm.
Der Prozessor 110 kann einen digitalen Signalprozessor
oder einen numerischen Prozessor beinhalten. Das Eingabe/Ausgabe-Modul 108 empfängt und
sendet Klarzeichen, p1...pm und
verschlüsselte
Zeichen, c1...cq.
-
Das
System 100 enthält
außerdem
eine Schlüsselmatrix 121,
die in einem Speicher 112 gespeichert sein kann. Die Schlüsselmatrix 121,
die von einem Schlüsselzeichengenerator 160 erzeugt
werden kann, kann eine oder mehrere der folgenden Untermengen enthalten:
Schlüsselblöcke 120,
Zugriffsblöcke 122,
Anfangsblöcke 126,
Suchtabellen 129, Aliastabellen 124, Aliasnamen-Rücknahmetabellen 125,
Anfangskennsatz-Aliastabellen 170, Start-Aliastabellen 172 Füllseltabellen 174 und
Permutationstabellen 128. Die Zugriffsblöcke, so
wie sie auf 122a, 122b, 122c, 122d und 122e dargestellt
sind, sind nach dem Zufallsprinzip belegte, n-dimensionale Matrizen.
Die einzelnen Elemente des Schlüsselblocks 120 werden
als Schlüsselzeichen
bezeichnet. Schlüsselblock 120 wird
genauer im Zusammenhang mit 2 beschrieben.
-
Auf 2 ist
ein Ausführungsbeispiel
eines Schlüsselblocks 120 dargestellt,
der im System 100 gemäß 1 eingesetzt
werden kann. Der Schlüsselblock 120 wird
durch eine nach dem Zufallsprinzip belegte n-dimensionale Struktur
(n = 3) repräsentiert,
die eine Vielzahl von Schlüsselzeichen
ki enthält,
die mit Klarzeichen pi korrespondieren.
Jedes Klarzeichen pi korrespondiert mit
mindestens einem Schlüsselzeichen
ki. Jedes Schlüsselzeichen ist an einem Ort
des Schlüsselblocks 120 lokalisiert,
der durch eine Koordinate (x,y,z) repräsentiert wird, wobei die Koordinate
n Variablen hat, in der vorliegenden Darstellung ist n gleich 3.
Die Schlüsselzeichen
können
zum Beispiel ASCII-Zeichen oder jeden anderen geeigneten Datentyp
enthalten. Der Schlüsselblock 120 kann
auf jede geeignete Art und Weise geladen oder gesichert werden.
Auf diese Art und Weise kann zum Beispiel der Schlüsselblock 120 im
Speicher 112 auf einem austauschbaren physischen Datenträger, zum
Beispiel einer CD-ROM, einer Diskette (Floppy disk), einer Festplatte,
einer Flash-Speicherkarte oder einem anderen Medium platziert werden.
-
In
einem Ausführungsbeispiel
ist das Schlüsselzeichen
ki mit seinem korrespondierenden Klarzeichen pi identisch; zum Beispiel korrespondieren
die Schlüsselzeichen „t", „h" und „e" mit den Klarzeichen „t", „h" beziehungsweise „e" der Zeichenfolge „the". Es ist jedoch nicht
erforderlich, dass das Schlüsselzeichen
ki mit seinem korrespondierenden Klarzeichen
pi identisch ist. Zusätzlich korrespondiert eine
Vielzahl von Schlüsselzeichen
ki des Schlüsselblocks 120 mit
einem einzigen Klarzeichen pi. So korrespondiert
zum Beispiel eine Vielzahl von Schlüsselzeichen „t", wie sie auf 210a, 210b und 210c dargestellt
sind, mit dem Klarzeichen "t".
-
Ein
Offsetwert beschreibt eine funktionelle Beziehung zwischen den Koordinaten
zweier Schlüsselzeichen.
So können
zum Beispiel für
die Koordinaten (x1,y1,z1) und (x2,y2,z2) zweier Schlüsselzeichen
die Funktionen fx(x1,x2)
= fx, fy(y1,y2)
= fy und fz(z1,z2)
= fz verwendet werden, um einen Offsetwert zu beschreiben, der durch
die geordnete Menge <fx,fy,fz> ausgedrückt wird.
Die Funktion fx(x1,x2)
kann so aufgebaut sein, dass bei gegebenen Eingangsgrößen x1 und x2 eine eindeutige
Ausgangsgröße fx bestimmt werden kann. Somit kann bei gegebener
Eingangsgröße x1 und gegebener Ausgangsgröße fx die
Eingangsgröße x2 bestimmt werden. Die Funktionen fy(y1,y2) und fz(z1,z2) können in ähnlicher
Art Weise aufgebaut sein.
-
In
einem Ausführungsbeispiel
beschreibt der Offsetwert die relative dimensionale Verschiebung
zwischen zwei Schlüsselzeichen.
Ein Offsetwert kann als Verschiebungsvektor ausgedrückt werden,
der durch eine geordnete Menge <x,y,z> von Offsetparametern
x, y und z repräsentiert wird,
wobei jeder Offsetparameter eine Verschiebung entlang einer Koordinatenachse
repräsentiert.
So ist zum Beispiel der Offsetparameter in x-Richtung vom Schlüsselzeichen „%" 208 an
der Koordinate (0,0,0) zum Schlüsselzeichen „t" 210a, gleich
+4, der Offsetparameter in y-Richtung
ist gleich +1, und der Offsetparameter in z-Richtung ist gleich
0, das heißt, der
Offsetwert ist <4,1,0>.
-
In
einem Ausführungsbeispiel
kann der Verschiebungsvektor das Ergebnis einer Modulo-Arithmetik sein,
die auf eine Dimensionsachse angewandt wurde und mit Hilfe des Prozessors 110 ausgeführt wird.
So geht man zum Beispiel bei einem Fortschreiten in positiver Richtung,
wenn die Bereichsgrenze der x-Werte in der xy-Ebene überschritten
ist, weiter voran zur (x1 + x2)
Modulo-Dimensionsgrenze. Zum Beispiel führt, ausgehend vom Zeichen „v" 216 an
der Koordinate (3,1,3), eine Verschiebung von +3 Einheiten in x-Richtung
zum Überschreiten
der positiven Bereichsgrenze der x-Werte, einem Eintreten in die
negative Bereichsgrenze der x-Werte in der xy-Ebene bei x = 0, und
endet am Zeichen „w" 218 (3+3)
Modulo 5 = 1 an der Koordinate (1,1,3). Dies bezeichnet man als
zyklische Adressierung (wrapping around) um eine Achse. Falls die
Bereichsgrenze an der y-Seite der XY-Ebene überschritten wird, dann schreitet
man weiter voran zur (y1 + y2)
Modulo-Dimensionsgrenze.
So führt
zum Beispiel, ausgehend vom Zeichen „w" 218 an der Koordinate (1,1,3)
eine Verschiebung um +4 Einheiten in y-Richtung zum Überschreiten
der positiven Bereichsgrenze der y-Werte, einem Eintreten in die
negative Bereichsgrenze der y-Werte der xy-Ebene bei y = 0 und endet
bei (1+4) Modulo 5 = 0 an der Koordinate (1,0,3), am Zeichen „a" 224. Wenn
die Bereichsgrenze der z-Werte der yz-Ebene überschritten ist, dann schreitet
man weiter voran zur (z1 + z2)
Modulo-Dimensionsgrenze. So führt
zum Beispiel, ausgehend vom Zeichen „a" 224 an der Koordinate (1,0,3)
eine Verschiebung um +3 Einheiten in z-Richtung zum Überschreiten
der positiven Bereichsgrenze der z-Werte, einem Eintreten in die
negative Bereichsgrenze der z-Werte in der yz-Ebene bei z = 0 und
endet bei (3+3) Modulo 5 = 1 an der Koordinate (1,0,1), die mit
dem Zeichen „7" 226 korrespondiert.
Somit ergibt sich, ausgehend vom Zeichen „v" 216 an der Koordinate (3,1,3), durch
eine Verschiebung von <3,4,3> eine Bewegung zur
Koordinate (1,0,1), die mit dem Zeichen „7" 226 korrespondiert.
-
In
einem bevorzugten Ausführungsbeispiel
kann der Verschiebungsvektor das Resultat der Anzahl der Einheiten
von einer Koordinate zur nächsten
sein, ausgeführt
mit Hilfe des Prozessors 110. So muss sich zum Beispiel
bei einer Bewegung in positiver Richtung, wenn die Bereichsgrenze
der x-Werte in der xy-Ebene überschritten
wird, der Algorithmus um einen Schritt nach oben in y-Richtung bewegen
und dann weiter zur (x1 + x2)
Modulo-Dimensionsgrenze
voranschreiten. So gelangt man zum Beispiel, ausgehend vom Zeichen „v" 216 an
der Koordinate (3,1,3) bei einer Verschiebung um +3 Einheiten in
x-Richtung zum Überschreiten
der positiven Bereichs grenze der x-Werte, geht einen Schritt in
y-Richtung nach oben, auf y = 2, erreicht die negative Bereichsgrenze
der x-Werte in der xy-Ebene bei x = 0 und endet bei (3 + 3) Modulo
5 = 1 an der Koordinate (1,2,3), die mit dem Zeichen „2" 232 korrespondiert.
Dies entspricht einem Abstand von drei Einheiten. Wenn die Bereichsgrenze
an der y-Seite der xy-Ebene überschritten
wird, muss der Algorithmus den Wert 1 in z-Richtung addieren und
weiter zur (y1 + y2)
Modulo-Dimensionsgrenze voranschreiten. So führt zum Beispiel, ausgehend
vom Zeichen „2" 232 an
der Koordinate (1,2,3) eine Verschiebung um +3 Einheiten in y-Richtung zum Überschreiten
der positiven Bereichsgrenze der y-Werte, geht einen Schritt weiter
nach oben, in z-Richtung bis zum Wert z = 4, tritt in die negative
Bereichsgrenze der y-Werte in der xy-Ebene bei y = 0 ein und endet bei
(2 + 3) Modulo 5 = 0 an der Koordinate (1,0,4), die mit dem Zeichen „k" 234 korrespondiert.
Dies entspricht einem Abstand von fünfzehn Einheiten. Wenn die
Bereichsgrenze an der z-Seite der yz-Ebene überschritten wird, dann schreitet
der Algorithmus voran zur (z1 + z2) Modulo-Dimensionsgrenze. So führt zum
Beispiel, ausgehend vom Zeichen „k" 234 an der Koordinate (1,0,4)
eine Verschiebung um +2 Einheiten in z-Richtung zum Überschreiten
der positiven Bereichsgrenze der z-Werte, erreicht die negative
Bereichsgrenze der z-Werte in der yz-Ebene bei z = 0 und endet bei
(4 + 2) Modulo 5 = 1 an der Koordinate (1,0,1), die mit dem Zeichen „7" 226 korrespondiert.
Dies entspricht einem Abstand von 50 Einheiten. Somit ergibt sich,
ausgehend vom Zeichen „v" 216 an
der Koordinate (3,1,3), durch eine Verschiebung von <3,3,2> eine Bewegung zur
Koordinate (1,0,1), die mit dem Zeichen „7" 226 korrespondiert, oder in
der Form von Einheiten angegeben sind es 68 Einheiten von der Koordinate
(3,1,3) zur Koordinate (1,0,1). Der Offsetwert ist gleich <3,3,2> = (x·1) + (y·5) + (z·25) =
68 Einheiten.
-
Der
Verschiebungsvektor kann auch durch Richtung und Größe angegeben
werden. So kann zum Beispiel der Offsetwert vom Klarzeichen „%"
208 an
der Koordinate (0,0,0) zum Klarzeichen „t"
210a ausgedrückt werden
als eine Verschiebung der Größe:
die Richtung wird angegeben
durch:
-
-
Obwohl
der Schlüsselblock 120 eine
mit einem kartesischen Koordinatensystem bezeichnete euklidische
Geometrie aufweist, kann der Schlüsselblock 120 jede
geeignete Geometrie aufweisen, die von einem geeigneten Koordinatensystem
repräsentiert
wird. So kann der Schlüsselblock 120 zum
Beispiel eine sphärische
Geometrie aufweisen, die von sphärischen
Koordinaten repräsentiert
wird. Obwohl drei Dimensionen (n = 3) verwendet werden, um den Schlüsselblock 120 anschaulich
darzustellen, ist es zulässig,
dass der Schlüsselblock 120 jede
geeignete Anzahl von Dimensionen aufweist, zum Beispiel eine, zwei,
fünf oder
mehr. Allgemein lässt
sich feststellen, dass die Sicherheit der Verschlüsselung
erhöht
wird, wenn eine größere Anzahl
an Dimensionen „n" verwendet wird.
-
Zusätzlich gilt,
obwohl jede Dimension des Schlüsselblocks 120 mit
einer Länge
von fünf
Einheiten dargestellt ist, dass jede Dimension des Schlüsselblocks 120 eine
Länge einer
beliebigen Anzahl von Einheiten haben darf, zum Beispiel 15 oder
20 Einheiten oder mehr. Eine Vergrößerung der Anzahl der Einheiten vergrößert typischerweise
die Schwierigkeit einer Entschlüsselung
der verschlüsselten
Nachricht, wodurch das Verschlüsselungssystem
sicherer gemacht wird.
-
Es
ist von Vorteil, ganze Zahlen als Bezeichner der Koordinaten zu
verwenden, obwohl dies nicht erforderlich ist, wodurch die elektronische
Datenverarbeitung effizienter wird. Alle geeigneten Bezeichner können verwendet
werden. So können
zum Beispiel reelle Zahlen als Bezeichner für die Koordinaten verwendet werden.
Darüber
hinaus kann der Schlüsselblock 120,
obwohl er als Würfel
dargestellt ist, jede geeignete Gestalt aufweisen, zum Beispiel
kann er kugelförmig,
zylindrisch oder dodekaedrisch sein. Darüber hinaus kann die Schlüsselmatrix 121,
obwohl sie im dargestellten Beispiel einen Schlüsselblock 120 aufweist,
aus einer beliebigen Anzahl von Schlüsselblöcken 120 oder deren
Teilen bestehen.
-
Es
wird nun erneut bezug auf 1 genommen,
wo der Schlüsselblock 120 Zugriffsblöcke 122 aufweist,
die Untermengen des Schlüsselblocks 120 darstellen.
Die Zugriffsblöcke 122 werden
verwendet, um Bereiche des Schlüsselblocks 120 zu
definieren, für
die ein Nutzer das Recht auf Zugriff haben darf oder nicht. Ein
Nutzer, der Zugriffsrechte nur für
einen spezifischen Zugriffsblock 122 hat, kann nur Zeichen
verschlüsseln und
entschlüsseln,
die mit diesem Zugriffsblock 122 assoziiert sind. So hat
zum Beispiel ein Nutzer mit Zugriffsrechten für den Zugriffsblock 122a keine
Zugriffsrechte auf verschlüsselte
Daten, die mit dem Zugriffsblock 122c assoziiert sind.
-
Die
Zugriffsblöcke 122 können sich überschneiden,
um eine geometrische Einheit zu bilden, damit ein selektiver Zugriff
für Nutzer
bereitgestellt wird. Ein Volumen, das im Überschneidungsbereich der Zugriffsblöcke 122c und 122d liegt,
wird als eine Gesamtverknüpfung
bezeichnet, wie dies auf Fig. 122e dargestellt ist. So
hat zum Beispiel ein Nutzer mit Zugriffsrechten für den Zugriffsblock 122c das
Zugriffsrecht auf verschlüsselte
Daten, die mit der Gesamtverknüpfung 122e des
Zugriffs blocks 122d assoziiert sind, und ein Nutzer mit Zugriffsrechten
für den
Zugriffsblock 122d hat das Zugriffsrecht auf verschlüsselte Daten,
die mit der Gesamtverknüpfung 122e des
Zugriffsblocks 122c assoziiert sind.
-
Die
Zugriffsblöcke 122 können auch
hierarchisch organisiert sein. So hat zum Beispiel ein Nutzer mit Zugriffsrechten
für den
Zugriffsblock 122a kein Zugriffsrecht auf verschlüsselte Daten,
die mit dem Zugriffsblock 122b assoziiert sind, einem Nutzer
mit Zugriffsrechten für
den Zugriffsblock 122b können jedoch auch Zugriffsrechte
auf verschlüsselte
Daten zuerkannt sein, die mit dem Zugriffsblock 122a assoziiert
sind. Demgemäss
ist es möglich,
dass es das System 100 einem Nutzer erlaubt, Daten zu verschlüsseln, die
von anderen Nutzern des Systems 100 nicht entschlüsselt werden
können,
und es kann selektive oder hierarchische Sicherheitsstufen für eine Vielzahl
von Nutzern des Systems 100 bereitstellen. Hierarchische
Zugriffsblöcke bilden
eine Reihe oder Folge von Schlüsselblöcken, die
mit jedem darin enthaltenen Mitglied, Element oder jeder Gruppe
verschachtelt sind, oder enthalten die nächste derart, dass in der Rangfolge
untergeordnete Schlüsselzeichen
in der Hierarchie zunehmend geringeren Zugriff auf Daten haben,
als in der Rangfolge übergeordnete
Zugriffsblöcke.
Zum Beispiel hat ein Nutzer, wenn in einem Zugriffsblock (b), in
dem ein kleinerer Zugriffsblock (a) enthalten ist, wenn der Nutzer
Zugriff auf den größeren Zugriffsblock
(b) hat, auch Zugriff auf den kleineren Zugriffsblock (a). Ein Nutzer
mit Zugriff auf den kleineren Zugriffsblock (a) hat jedoch keinen
Zugriff auf den größeren Zugriffsblock
(b).
-
Andere
Teile des Schlüsselblocks 120 können für spezielle
Verarbeitungsoperationen bestimmt sein. Die Bestimmung und das Beschränken von
Teilen des Schlüsselblocks 120 für spezielle
Verarbeitungsoperationen erlaubt es dem System 100, einen
einzigen Schlüsselblock 120 für eine Vielzahl
von Einsatzfällen
zu verwenden. So wird zum Beispiel ein separater Anfangskennsatz 126 verwendet,
um nur den Nachrichtenkopf zu verschlüsseln und zu entschlüsseln. Durch
Verschlüsseln
des Hauptteils einer Nachricht unter Verwendung der Zugriffsblöcke 122 und
des Anfangskennsatzes 126, getrennt von den Zugriffsblöcken 122,
kann das System 100 eine zusätzliche Sicherheitsschicht
bereitstellen. Nachrichtenköpfe
können
Daten enthalten, die in vielen Nachrichten wiederholt werden, wodurch
ein nicht autorisierter Nutzer die Nachrichten leichter entschlüsseln könnte. Es
ist von Vorteil, dass, falls ein nicht autorisierter Nutzer Daten
entschlüsselt,
die unter Verwendung des Anfangskennsatzes 126 verschlüsselt wurden,
dieser Nutzer die im Nachrichtenkopf enthaltenen Informationen nach
wie vor nicht verwenden kann, um den Hauptteil der Nachricht zu
entschlüsseln,
wodurch die Sicherheit des Hauptteils der Nachricht aufrechterhalten
bleibt.
-
Die
Zugriffsblöcke
122 und
der Anfangskennsatz
126 lassen sich mit Hilfe einer Koordinatendarstellung
definieren, zum Beispiel:
{(x,y,z):x < q
1, y < q
2,
z < q
3},
dabei sind q
1, q
2 und
q
3 Koordinatenwerte für die x-, y- und z-Koordinaten.
Obwohl die Zugriffsblöcke
122 und
der Anfangskennsatz
126 als Rechecke oder Würfel dargestellt
sind, können
die Zugriffsblöcke
122 und
der Anfangskennsatz
126 jede geeignete Gestalt haben und
auf jede geeignete Art und Weise definiert werden, so wie dies bei
Verwendung einer Koordinatenfunktion der Fall ist. So können zum
Beispiel die Zugriffsblöcke
122 oder
der Anfangskennsatz
126 eine kugelförmige Gestalt annehmen und
wie folgt definiert werden:
dabei ist r eine Konstante.
-
Zusätzlich kann
der Schlüsselzeichengenerator 160 auch
Zugriffsblöcke 122 und
den Anfangskennsatz 126 nach dem Zufallsprinzip ohne Wissen
eines Nutzers definieren. So kann zum Beispiel, wenn die Vorgabe
existiert, dass die Zugriffsblöcke 122 vierseitig
sein und eine Länge
der Seiten von fünfzehn
bis neunzehn Zeichen aufweisen müssen,
der Schlüsselzeichengenerator 160 nach
dem Zufallsprinzip die vierseitige Form und Größe wählen, um Zugriffsblöcke 122 zu
erzeugen.
-
Es
können
Suchtabellen 129 verwendet werden, um Schlüsselzeichen
mit ihren korrespondierenden Koordinaten zu assoziieren. So kann
zum Beispiel eine Suchtabelle 129 das Schlüsselzeichen „t" 210a mit
der Koordinate (4,1,0) assoziieren. Der Prozessor 110 kann
Suchtabellen 129 nutzen, um durch Verschlüsselung die
Koordinaten eines Schlüsselzeichens
zu bestimmen. Zum Beispiel kann, wenn der Prozessor 110 das
Klarzeichen „t" verschlüsselt, der
Prozessor 110 eine Suchtabelle 129 verwenden,
um zu bestimmen, dass eine Koordinate eines Schlüsselzeichens für „t" 210a gleich
(4,1,0) ist. Die Verwendung der Suchtabellen 129 kann die
Geschwindigkeit erhöhen,
mit welcher der Prozessor 110 die Verschlüsselung
durchführt.
-
Die
Anzahl der Reihen in der Suchtabelle 129 ergibt sich aus
der Gesamtzahl der üblichen
Schlüsselzeichen.
So treten im Schlüsselblock 120 zum
Beispiel drei mal die Schlüsselzeichen „t" 210a, 210b und 210c auf,
die an den Koordinaten (4,1,0), (1,2,1), beziehungsweise (2,0,4)
lokalisiert sind. So kann Reihe 1 der Suchtabelle 129 das
Schlüsselzeichen „t" 210a mit
der Koordinate (4,1,0), Reihe 2 der Suchtabelle 129 das Schlüsselzeichen „t" 210b mit
der Koordinate (1,2,1) und Reihe 3 der Suchtabelle 129 das
Schlüsselzeichen „t" 210c mit
der Koordinate (2,0,4) assoziieren.
-
Die
Suchtabellen 129 können
die ASCII-Zahl des Schlüsselzeichens
verwenden, um die Koordinate eines Schlüsselzeichens zu speichern.
So kann zum Beispiel in der Suchtabelle 129 die Koordinate
für das Zeichen „t" als „116", der ASCII-Zahl
für „t", an Position 116
der Tabelle gespeichert werden. Die Anwendung von Suchtabellen kann
genutzt werden, um aus bestimmten Gründen den Prozess der Reservierung
von Bereichen des Schlüsselblocks 120 zu
vereinfachen. So können
zum Beispiel einige Reihen der Suchtabellen für den Anfangskennsatz reserviert
werden, während
andere für
den Hauptteil der Nachricht reserviert werden.
-
Aliastabellen 124,
die noch genauer im Zusammenhang mit 3 beschrieben
werden, werden vom Aliasmodul 140 verwendet, um einen Aliasnamen
ai mit einem Offsetwert Offi zu
assoziieren. Jede Aliastabelle 124 ordnet einer Gruppe
von Aliasnamen {a0, a1,
...,ak} einen Offsetwert Offi zu.
Das Aliasmodul 140 wählt
nach dem Zufallsprinzip einen Aliasnamen ai aus
der Gruppe, um ihn mit einem Offsetwert Offi zu
assoziieren. Unterschiedliche Aliastabellen 124 können für unterschiedliche
Operationen verwendet werden, um die Sicherheit zu verbessern. So
kann zum Beispiel die Anfangskennsatz-Aliastabelle 170 verwendet
werden, um den Anfangskennsatz einer Nachricht zu verschlüsseln und
die Start-Aliastabelle 172 kann verwendet werden, um das
Start-Schlüsselzeichen
einer Nachricht zu verschlüsseln.
Das Aliasmodul 140 kann korrespondierende Aliasnamen-Rücknahmetabellen 125 verwenden,
die genauer im Zusammenhang mit 3 beschrieben
werden, um einen Offsetwert Offi mit einem
Aliasnamen ai zu assoziieren. Jede Aliasnamen-Rücknahmetabelle 125 bringt
einen Aliasnamen ai mit seinem korrespondierenden
Offsetwert Offi in Übereinstimmung.
-
Untermengenmodule 120, 122, 124, 125, 126, 128,129, 170, 172, 174 der
Schlüsselmatrix 121 können permutiert
werden, wodurch die Sicherheit der verschlüsselten Daten erhöht werden
kann. So können
zum Beispiel die Aliastabellen 124a, 124b und 124c permutiert
werden. Eine Permutationstabelle 128 enthält Permutationsbefehle
zum Permutieren der Aliastabellen 124a, 124b und 124c.
Zum Beispiel einen Befehl zum Wechseln der Aliastabellen 124a und 124b,
ohne die Aliastabelle 124c zu verändern. Diese Permutationsbefehle
können
in die verschlüsselten
Daten eingefügt
werden, um die Entschlüsselung
der verschlüsselten
Daten zu steuern. Aliasnamen-Rücknahmetabellen 125,
Anfangskennsatz-Aliastabellen 170, Start-Aliastabellen 172 und
Suchtabellen können
ebenfalls permutiert werden.
-
Das
Offsetmodul 130 bestimmt die relativen Offsetwerte zwischen
aufeinanderfolgenden Schlüsselzeichen
ki und ki + 1. Der
Offsetwert kann als Versatz von Koordinaten beschrieben werden.
So ist zum Beispiel unter Bezugnahme auf 2 der Offsetwert
vom Schlüsselzeichen „%" 208 an
der Koordinate (0,0,0) zum Schlüsselzeichen „t" 210a gleich
+4 in x-Richtung, +1 in y-Richtung und 0 in z-Richtung, das heißt, der
Offset ist <4,1,0>. Der Offsetwert zwischen
dem Schlüsselzeichen „t" 210a und
dem Schlüsselzeichen „h" 212 ist <–3,3,1> und der Offsetwert vom Schlüsselzeichen „h" zum Schlüsselzeichen „e" 214 ist <2,0,1>. Die resultierenden
Offsetwerte sind <4,1,0>, <–3,3,1> und <2,0,1>.
-
Das
Aliasmodul 140 assoziiert reaktionsschnell einen Aliasnamen
mit jedem bestimmten Offsetwert. So kann das Aliasmodul 140 zum
Beispiel einen Aliasnamen ai assoziieren,
indem es eine Aliasnamenkomponente jedem Offsetparameter des Offsetwertes <4,1,0> zuordnet, unter Verwendung
der Aliastabellen 124, wie dies im Zusammenhang mit 3A beschrieben
wurde.
-
3A stellt
drei Aliastabellen 124 dar, wobei jede Aliastabelle 124 von
dem Prozessor 110 verwendet wird, um Aliasnamen einem Offsetparameter
des Offsetwertes zuzuordnen. Die Aliastabelle 124a definiert
Aliasnamen für
die x-Koordinate des Offsetwertes. Die Gruppe {G,a, ...,3} wird
als Aliasnamen definiert, die mit dem Offsetparameter „4" 310a assoziiert
werden können,
und das Aliasmodul 140 wählt aus der Gruppe ein beliebiges
Mitglied aus. Zum Beispiel den Aliasnamen „G", um diesen mit dem Offsetparameter „4" zu assoziieren.
Das Aliasmodul kann den Aliasnamen nach dem Zufallsprinzip aus der
zugeordneten Gruppe auswählen.
In ähnlicher
Art und Weise verwendet das Aliasmodul 140 die korrespondierenden
Aliastabellen 124b und 124c, um den Aliasnamen „s" mit dem Offsetparameter „1,"310b, beziehungsweise
den Zeichen-Aliasnamen „4" mit dem Offsetparameter „0" 310c zu
assoziieren, damit die y- und z-Offsetparameter den Aliasnamen „Gs4" für den Offset <4,1,0> ergeben.
-
Zusätzlich kann
eine Vielzahl von Aliastabellen für einen Offsetparameter definiert
werden. So können zum
Beispiel drei oder mehr Aliastabellen für die x-Parameter (x-alias0, x-alias1, x-alias2) definiert werden. In ähnlicher Art und Weise können drei
oder mehr Aliastabellen für
die y-Parameter (y-alias0, y-alias1, y-alias2) definiert
werden. In ähnlicher
Art und Weise können
drei oder mehr Aliastabellen für
die z-Parameter (z-alias0, z-alias1, z-alias2) definiert
werden. Ein Zyklus kann festgelegt werden, um zu bestimmen, welche
Aliastabellen für
jeden Offsetwert zu verwenden sind. Dieser sequentielle Zyklus kann
x-alias0, y-alias0,
z-alias0 für den ersten Offsetwert verwenden.
Zum Beispiel, verwende x-alias0, y-alias0, z-alias1 für den zweiten
Offsetwert, verwende x-alias0, y-alias0, z-alias2, und
so weiter. Die Zykluslänge
kann mit Hilfe einer Zufallsvariablen bestimmt werden, die den Prozessor 110 instruiert,
mit dem Zyklus von vorn zu beginnen. Diese Variable kann mit einem Aliasnamen
versehen und zwischen den Zyklen in die verschlüsselte Nachricht eingefügt werden.
Das Aliasmodul 140 kann einen Aliasnamen mit einem Start-Schlüsselzeichen
assoziieren, auf im wesentlichen ähnliche Art und Weise, unter
Verwendung von Start-Aliastabellen 172,
wie dies im Zusammenhang mit 3B beschrieben
wurde.
-
3B stellt
Start-Aliastabellen 172 dar, die ein Start-Schlüsselzeichen
mit einem Aliasnamen assoziieren. Jede Start-Aliastabelle 172 assoziiert
einen Aliasnamen mit jeder Koordinate eines Start-Schlüsselzeichens.
So assoziiert zum Beispiel für
das Start-Schlüsselzeichen "%" 208 an der Koordinate (0,0,0)
auf 2, die Start-Aliastabelle 172a den Aliasnamen „L" 320a mit
dem Koordinatenwert „0", die Start-Aliastabelle 172b assoziiert
den Aliasnamen „8" 320b mit
dem Koordinatenwert „0" und die Start-Aliastabelle 172c assoziiert
den Aliasnamen „R" 320c mit
dem Koordinatenwert „0", was einen Aliasnamen „L8R", für das Start-Schlüsselzeichen "%", Nutzer, n = 3, in diesem Beispiel,
ergibt.
-
Die
Aliastabellen 124 und 172 können beim Verschlüsseln permutiert
werden. So können
zum Beispiel die Aliastabellen 124a und 124b so
permutiert werden, dass die Aliastabelle 124b die Aliasnamen
für die
x-Koordinate des Offsetwertes und die Aliastabelle 124a die
Aliasnamen für
die y-Koordinate definiert. Alternativ können die Offsetparameter auch
permutiert werden, nachdem das Aliasmodul 140 die Aliasnamen
dem Offsetwert zugeordnet hat.
-
Das
Aliasmodul 140 verwendet Aliasnamen-Rücknahmetabellen 125,
wie sie im Zusammenhang mit 3C beschrieben
wurden, um beim Entschlüsseln
einen korrespondierenden Offsetwert aus einem Aliasnamen zu bestimmen. 3C stellt
Aliasnamen-Rücknahmetabellen 125 dar.
Aliasnamen-Rücknahmetabellen 125 werden
verwendet, um einen Offsetwert aus einem Aliasnamen zu bestimmen,
zum Beispiel den Aliasnamen „Gs4", der unter Verwendung
der Tabellen 124a, 124b und 124c verschlüsselt wurde.
Eine Aliasnamen-Rücknahmetabelle
ist eine Matrix, welche die nicht mit Aliasnamen versehenen Parameter
des korrespondierenden Offsetwertes enthält. Die Anzahl der Aliasnamen-Rücknahmetabellen
kann gleich der Anzahl der Aliastabellen sein. So assoziiert zum
Beispiel die Aliasnamen-Rücknahmetabelle 125a den
Offsetparameter „4" mit dem Aliasnamen „G", die Aliasnamen-Rücknahmetabelle 125b assoziiert
den Offsetparameter „1" mit dem Aliasnamen „s" und die Aliasnamen-Rücknahmetabelle 125c assoziiert
den Offsetpa rameter „0" mit dem Aliasnamen „4", um den Aliasnamen „Gs4" in den Offsetwert <4,1,0> zu übersetzen.
Die Anzahl der Aliasnamen-Rücknahmetabellen 125 kann
gleich der Anzahl der Aliastabellen 124 sein. Die Aliasnamen-Rücknahmetabellen 125 können die
ASCII-Zahl des Offsetwertes nutzen, um den Offsetparameter zu speichern. So
kann zum Beispiel die Aliasnamen-Rücknahmetabelle 125a den
Offsetwert 4 unter Verwenddung der ASCII-Zahl „71" für „G" auf Position 71
der Aliastabelle speichern.
-
Alternativ
kann das Aliasmodul 140 einen Aliasnamen ai dem
Offsetwert <4,1,0> als Ganzes zuordnen,
indem zum Beispiel der Schlüsselblock 120 gemäß 2 verwendet
wird. Ein Start-Schlüsselzeichen „*"215 an der
Stelle (0,2,2) wird ausgewählt.
Der Offsetwert <4,1,0> vom Start-Schlüsselzeichen „*" 215 führt zum
Zeichen „p" 238 an
der Stelle (4,3,2) welche dem Offsetwert <4,1,0> zugeordnet
ist.
-
Eine
Füllseltabelle 174 kann
verwendet werden; diese enthält
Informationen, um die Menge der Füllsel (Füllzeichen) zu bestimmen, die
in einer verschlüsselten
Nachricht enthalten sind. Wenn eine verschlüsselte Nachricht Füllsel enthält, ruft
der Prozessor die Größe der Füllsel aus
einer Füllseltabelle 174 ab,
um den Anfang der verschlüsselten
Daten zu ermitteln.
-
Ein
Kompressionsmodul 150 kann verwendet werden, um die Klarzeichen
vor dem Verschlüsseln
zu komprimieren. Zusätzlich
kann das Kompressionsmodul 150 entschlüsselte Daten dekomprimieren.
Das Kompressionsmodul 150 kann ein Standard-Komprimierprogramm
verwenden, wie zum Beispiel PKZIP und kann das Verschlüsseln beschleunigen.
-
Zusammengefaßt läßt sich
sagen, dass das System 100 Zeichen verschlüsselt, indem
die Zeichen im Schlüsselblock 120 aufgesucht
werden, ein Offsetwert zwischen den Zeichen bestimmt und jedem Offsetwert ein
Aliasname zugeordnet wird. Die Schlüsselmatrix 121 kann
eine oder mehrere der folgenden Untermengen enthalten: Schlüsselblöcke 120,
Zugriffsblöcke 122,
Anfangskennsätze 126,
Suchtabellen 129, Aliastabellen 124, Aliasnamen-Rücknahmetabellen 125,
Anfangskennsatz-Aliastabellen 170, Start-Aliastabellen 172,
Füllseltabellen 174 und
Permutationstabellen 128, die verwendet werden, um Zugriffsrechte
für die
Verwendung verschlüsselter
Daten und die Durchführung
anderer Operationen des Systems 100 zu definieren. Die
Entschlüsselung
wird unter Verwendung der selben Prinzipien im umgekehrten Verfahren
durchgeführt.
-
VERSCHLÜSSELUNGSVERFAHREN
-
4 ist
ein Flußdiagram
eines Ausführungsbeispiels
eines erfindungsgemäßen Verfahrens
zum Verschlüsseln
von Daten, unter Verwendung von System 100 gemäß 1.
Das Verfahren beginnt bei Schritt 410, in welchem die Schlüsselmatrix 121 durch
das Verschlüsselungssteuermodul 114 unter
Verwendung eines Schlüsselzeichengenerators 160 in
den Speicher 112 geladen wird.
-
Eine
Folge von Klarzeichen p1...pm,
zum Beispiel die Zeichenfolge „the", die verschlüsselt werden
soll, wird vom Prozessor 110 über das Eingabe/Ausgabe-Modul 108 im Schritt 412 empfangen.
In einem Ausführungsbeispiel
komprimiert das Kompressionsmodul 150 die Klarzeichen im
Schritt 413.
-
Ein
Start-Schlüsselzeichen
ki = k0 des Schlüsselblocks 120 wird
nach dem Zufallsprinzip durch den Prozessor 110 im Schritt 414 ausgewählt. Zum
Beispiel wird das Schlüsselzeichen "%" 208 an der Koordinate (0,0,0)
als Start-Schlüsselzeichen
k0 ausgewählt, und die Auswahl kann nach
dem Zufallsprinzip erfolgen.
-
Im
Schritt 415 ordnet der Prozessor 110 dem Start-Schlüsselzeichen
k0 einen Aliasnamen zu, unter Verwendung
der Start-Aliastabelle 172. Zum Beispiel wird der Aliasname „L8R" dem Start-Schlüsselzeichen "%" 208 zugeordnet.
-
Im
Schritt 416 wird ein nachfolgendes Schlüsselzeichen ki +
1 = k1 im Schlüsselblock 120 aufgefunden durch
den Prozessor 110, durch Auswählen eines Schlüsselzeichens
k1, das mit dem Klarzeichen pi +
1 = p1 korrespondiert. So korrespondieren
zum Beispiel die Schlüsselzeichen "t" 210a, 210b und 210c,
die sich an den Koordinaten (4,1,0), (1,2,1) beziehungsweise (2,0,4)
befinden, mit dem Klarzeichen „t". Das Schlüsselzeichen „t", das sich bei (4,1,0) 210a befindet,
wird nach dem Zufallsprinzip aus den drei Schlüsselzeichen „t"s 210a, 210b und 210c ausgewählt; es
ist jedoch zulässig,
jedes Schlüsselzeichen
ki + 1, das mit dem Klarzeichen pi + 1 korrespondiert, auf jede geeignete
Weise auszuwählen.
-
Der
Offsetwert zwischen dem aktuellen Schlüsselzeichen ki =
k0 und dem nächsten Schlüsselzeichen ki +
1 = k1, wird im Schritt 418 mit
Hilfe des Offsetmoduls 130 bestimmt. So ist zum Beispiel
der Offsetwert zwischen dem Start-Schlüsselzeichen "%" 208 an der Koordinate (0,0,0)
und dem nächsten
Schlüsselzeichen „t" 210a an
der Koordinate (4,1,0) gleich <4,1,0>.
-
Anschließend wird
ein Aliasname ai = a1 mit
diesem Offsetwert assoziiert, und zwar durch das Aliasmodul 140,
im Schritt 420. Der Aliasname kann nach dem Zufallsprinzip
aus einer Gruppe vordefinierter Aliasnamen ausgewählt werden,
die mit diesem assoziierten Offsetwert korrespondieren. Das Aliasmodul 140 kann einen
Aliasnamen mit dem Offsetwert assoziieren, indem es eine Aliasnamenkomponente
jedem Offsetwert zuordnet, unter Verwendung der Aliastabellen 124 nach 3, zum Beispiel den Aliasnamen „G"310a für den Offsetparameter
4, den Aliasnamen „s"310b für den Offsetparameter „1" und den Aliasnamen „4"310c für den Offsetparameter „0", was zu einem Aliasnamen „Gs4" für den Offsetwert <4,1,0> führt.
-
Der
Aliasname wird im Speicher 112 im Schritt 422 gespeichert.
-
Falls
im Schritt 424 ein nächstes
Klarzeichen pi + 1 = p2 existiert,
zum Beispiel das Klarzeichen „h", geht das Verfahren
zum Schritt 426 über,
um zu bestimmen, ob eine Permutation ausgeführt werden soll. Die Untermengenmodule 120, 122, 124, 125, 126, 128, 129, 170, 172, 174 der Schlüsselmatrix 121 können permutiert
werden. So können
zum Beispiel die Aliastabellen 124a, 124b und 124c so
permutiert werden, dass die Aliastabelle 124a Aliasnamen
für die
y-Koordinate, die Aliastabelle 124b Aliasnamen für die x-Koordinate und
die Aliastabelle 124c Aliasnamen für die z-Koordinate definiert,
wobei in diesem Beispiel n = 3 ist. Mehrere Aliastabellen 124 für einen
speziellen Offsetparameter können
ebenfalls permutiert werden. Auch die Zeichen an einem Ausgang können permutiert
werden. Eine Vielzahl von Schlüsselblöcken 120 kann
ebenfalls permutiert werden. So kann zum Beispiel der Offsetwert
eine Verschiebung von einem Schlüsselblock 120 zu
einem anderen Schlüsselblock 120 sein.
-
Falls
eine Permutation durchgeführt
werden soll, geht das Verfahren weiter zu Schritt 428,
um die Permutation durchzuführen.
Ein Permutationsbefehl aus der Permutationstabelle 128,
der die Permutation beschreibt, kann in den verschlüsselten
Text eingebettet werden. Nach Ausführen der Permutation kehrt
das Verfahren zu Schritt 416 zurück. Falls eine Permutation
nicht ausgeführt
werden soll, kehrt das Verfahren zu Schritt 416 zurück.
-
Im
weiteren Verlauf wird beim Verschlüsseln des Klarzeichens „h", der Zeichenfolge „the", im Schritt 416 ein
nächstes
Schlüsselzeichen
ki + 1 = k2, das
mit dem Klarzeichen pi + 1 korrespondiert,
im Schlüsselblock 120 lokalisiert.
Das Schlüsselzeichen „h" 212, an
der Koordinate (1,4,1), das mit dem Klarzeichen „h" korrespondiert, wird durch den Prozessor 110 ausgewählt. Der
Offsetwert zwischen dem aktuellen Schlüsselzeichen ki und
dem nächsten
Schlüsselzeichen
ki + 1 wird im Schritt 418 mit
Hilfe des Offsetmoduls 130 bestimmt. Der Offsetwert zwischen
dem aktuellen Schlüsselzeichen „t" an der Koordinate
(4,1,0) und dem nächsten
Schlüsselzeichen „h" an der Koordinate
(1,4,1) ist <–3,3,1>. Ein Aliasname wird
mit diesem Offsetwert im Schritt 420 assoziiert. Das Aliasmodul 140 assoziiert
den Aliasnamen „b" mit dem Offsetparameter „–3", den Aliasnamen „8" mit dem Offsetparameter „3" und den Aliasnamen „T" mit dem Offsetparameter „1", unter Verwendung
der Aliastabellen 124a, 124b, beziehungsweise 124c,
woraus sich der Aliasname „b8T" für den Offsetwert <–3,3,1> ergibt. Der ausgewählte Aliasname wird im Schritt 422 gespeichert.
-
Falls
im Schritt 424 ein nächstes
Klarzeichen pi + 1 = p2 existiert,
zum Beispiel das Klarzeichen „e" der Zeichenfolge „the", geht das Verfahren
zum Schritt 426 über,
um zu bestimmen, ob die Aliastabellen 124, 170 oder 172 permutiert
werden sollen. Falls eine Permutation durchgeführt werden soll, geht das Verfahren
weiter zu Schritt 428, um die Permutation durchzuführen. Ein
Permutationsbefehl aus der Permutationstabelle 128, der
die Permutation beschreibt, kann in den verschlüsselten Text eingebettet werden.
Nach Ausführen
der Permutation kehrt das Verfahren zu Schritt 416 zurück. Falls
eine Permutation nicht ausgeführt
werden soll, kehrt das Verfahren zu Schritt 416 zurück.
-
Im
weiteren Verlauf wird beim Verschlüsseln des Klarzeichens „e" der Zeichenfolge „the", im Schritt 416 ein
nächstes
Schlüsselzeichen
ki + 1 = k3, das
mit dem Klarzeichen pi + 1 korrespondiert,
im Schlüsselblock 120 lokalisiert.
Das Schlüsselzeichen „e" 214 an
der Koordinate (3,4,2), die mit dem Klarzeichen „e" korrespondiert, wird durch den Prozessor 110 ausgewählt. Der
Offsetwert zwischen dem aktuellen Schlüsselzeichen ki und
dem nächsten
Schlüsselzeichen
ki + 1 wird im Schritt 418 bestimmt.
Der Offsetwert zwischen dem aktuellen Schlüsselzeichen „h" an der Koordinate
(1,4,1) und dem nächsten
Schlüsselzeichen „e" an der Koordinate
(3,4,2) ist der Offsetwert <2,0,1>. Ein Aliasname wird
mit diesem Offsetwert im Schritt 420 assoziiert. Das Aliasmodul 140 assoziiert
den Aliasnamen „?Ak" mit dem Offsetwert <2,0,1> unter Verwendung der
Aliastabellen 124a, 124b, beziehungsweise 124c.
Der ausgewählte
Aliasname wird im Schritt 422 gespeichert.
-
Falls
im Schritt 424 kein nächstes
Klarzeichen pi + 1 = p2 existiert,
wie es in diesem Beispiel der Fall ist, geht das Verfahren weiter
zu Schritt 430, wo ein vorher festgelegtes Zeichen, zum
Beispiel „Null", eingefügt wird,
um das Ende der verschlüsselten
Daten zu signalisieren, und die Ergebnisse werden über das
Eingabe/Ausgabe-Modul 108 ausgegeben. Die resultierende
Ausgabe „L8RGs4b8T?Ak" stellt die verschlüsselte Form
der Eingabe „the" dar.
-
Füllsel, zum
Beispiel nach dem Zufallsprinzip ausgewählte Zeichen, können vor,
zwischen und nach den ver schlüsselten
Daten eingefügt
werden, um den Anfang des verschlüsselten Textes zu verbergen.
Die Größe der Füllsel, zum
Beispiel die Anzahl der nach dem Zufallsprinzip ausgewählten Zeichen,
kann in der Füllseltabelle 174 gespeichert
werden. Das Einfügen
von Füllseln
kann die Sicherheit der verschlüsselten
Daten erhöhen,
weil der Anfang der verschlüsselten
Daten bestimmt werden muss, um die verschlüsselten Daten zu entschlüsseln.
-
Nach
Ausgabe der Ergebnisse bricht das Verfahren ab. Die Schritte des
Verfahrens zum Verschlüsseln
von Daten können
in einer anderen Reihenfolge abgearbeitet werden. So kann das Verfahren
zum Beispiel einen Aliasnamen ausgeben, sobald es beendet ist.
-
ENTSCHLÜSSELUNGSVERFAHREN
-
5 ist
ein Flussdiagram eines Ausführungsbeispiels
eines erfindungsgemäßen Verfahrens
zum Entschlüsseln
von Daten, die mit Hilfe des in 4 beschriebenen
Verfahrens unter Verwendung des Systems 100 gemäß 1 verschlüsselt wurden.
Das Verfahren beginnt bei Schritt 510, wo die Schlüsselmatrix 121 in den
Speicher 112 geladen wird. Im Schritt 512 empfängt das
Verschlüsselungssteuermodul 114 eine
Nachricht, die verschlüsselte
Daten enthält, über das
Eingabe/Ausgabe-Modul 108.
In dem gezeigten Beispiel liegt am Eingang „L8RGs4b8T?Ak", die verschlüsselte Form
der Eingabe „the" aus dem auf 4 dargestellten Beispiel.
Am Eingang liegen die Aliasnamen „L8R", „Gs4", „b8T" und „?Ak", welche die Start-Schlüsselkoordinate
und die Offsetwerte der Schlüsselzeichen „t", „h" beziehungsweise „e" repräsentieren.
-
Der
Prozessor 110 bestimmt das Start-Schlüsselzeichen k0,
zum Beispiel „%" 208 an
der Koordinate (0,0,0), im Schritt 514. Falls die Nachricht
Füllsel
enthält,
holt Prozessor 110 die Größe der Füllsel aus der Füllseltabelle 174 zurück, um das
Start-Schlüsselzeichen
zu bestimmen, das am Anfang der verschlüsselten Daten angeordnet ist.
Der Prozessor 110 verwendet die Start-Aliastabelle 172, um den Aliasnamen „L8R" in die Koordinate
(0,0,0) zu übersetzen.
Alternativ kann das Start-Schlüsselzeichen
k0 unter Verwendung anderer Verschlüsselungsverfahren
verschlüsselt
und entschlüsselt
werden.
-
Im
Schritt 516 wird ein Offsetwert aus dem Aliasnamen bestimmt.
Das Aliasmodul 140 verwendet die Aliasnamen-Rücknahmetabellen 125a, 125b beziehungsweise 125c,
um den Aliasnamen „Gs4" in den Offsetwert <4,1,0> zu übersetzen.
-
Im
Schritt 518 wird aus diesem Offsetwert ein Klarzeichen
bestimmt. Das Offsetmodul 130 verwendet das Start-Schlüsselzeichen „%" 208 an
der Koordinate (0,0,0) und den Offsetwert <4,1,0> des
Schlüsselblocks 120,
um das Klarzeichen "t" 210a zu
bestimmen. Das Offsetmodul 130 legt den Offsetwert <4,1,0> an das Start-Schlüsselzeichen „%" 208 an
der Koordinate (0,0,0) an, um die Koordinate (4,1,0) zu erreichen,
damit das erste Klarzeichen „t" 210a bestimmt
wird. Das Klarzeichen wird im Schritt 520 im Speicher 112 gespeichert.
-
Im
Schritt 522 bestimmt der Prozessor 110, ob ein nächster Aliasname
vorhanden ist. Falls ein nächster
Aliasname vorhanden ist, geht das Verfahren weiter zu Schritt 524,
um zu bestimmen, ob eine Permutation durchgeführt werden muss. Die verschlüsselten
Daten können
einen Permutationsbefehl enthalten, der die Permutation beschreibt.
Falls eine Permutation durchgeführt
werden muss, geht das Verfahren weiter zu Schritt 526,
um die Permutation durchzuführen.
Der Prozessor 110 kann die Permutationstabelle 128 verwenden,
um zu bestimmen, wie die Permutation durchzuführen ist. Nach Durchführen der
Permutation geht das Verfahren zurück zu Schritt 516.
Falls keine Permutation durchgeführt
werden muss, geht das Verfahren zurück zu Schritt 516.
-
Im
Schritt 516 wird der Offsetwert aus dem nächsten Aliasnamen
bestimmt. Das Aliasmodul 140 verwendet die Aliasnamen-Rücknahmetabellen 125a, 125b beziehungsweise 125c,
um den Aliasnamen „b8T" in den Offsetwert <–3,3,1> zu übersetzen.
Im Schritt 518 wird das nächste Klarzeichen aus dem Offsetwert
bestimmt. Das Offsetmodul 130 bestimmt aus dem vorhergehenden
Schlüsselzeichen „t" an der Stelle (4,1,0)
und aus dem Offsetwert <–3,3,1> das Klarzeichen „h". Das Offsetmodul 130 legt
den Offsetwert <–3,3,1> an das vorhergehende
Schlüsselzeichen „t" bei der Koordinate
(4,1,0) an, um die Koordinate (1,4,1) zu erreichen, damit das nächste Klarzeichen „h" bestimmt wird. Das
Klarzeichen wird im Schritt 520 gespeichert.
-
Im
Schritt 522 bestimmt das Verfahren, ob ein nächster Aliasname
vorhanden ist. Falls ein nächster Aliasname
vorhanden ist, geht das Verfahren weiter zu Schritt 524,
um zu bestimmen, ob eine Permutation durchgeführt werden muß. Die verschlüsselten
Daten können
einen Permutationsbefehl enthalten, der die Permutation beschreibt.
Falls eine Permutation durchgeführt
werden muss, geht das Verfahren weiter zu Schritt 526,
um die Permutation durchzuführen.
Der Prozessor 110 kann die Permutationstabelle 128 verwenden,
um zu bestimmen, wie die Permutation durchzuführen ist. Nach Durchführen der
Permutation geht das Verfahren zurück zu Schritt 516.
Falls eine Permutation nicht durchgeführt werden muss, kehrt das
Verfahren zu Schritt 516 zurück.
-
Im
Schritt 516 wird der Offsetwert aus dem nächsten Aliasnamen
bestimmt. Das Aliasmodul 140 verwendet die Aliasnamen-Rücknahmetabellen 125a, 125b beziehungsweise 125c,
um den Aliasnamen „?Ak" in den Offsetwert <2,0,1> zu übersetzen.
Im Schritt 518 wird das nächste Klarzeichen aus dem Offsetwert
bestimmt. Das Offsetmodul 130 bestimmt aus dem vorhergehenden
Schlüsselzeichen „h" an der Stelle (1,4,1) und
aus dem Offsetwert <2,0,1> das Klarzeichen „e". Das Offsetmodul 130 legt
den Offsetwert <2,0,1> an das vorhergehende
Schlüsselzeichen „h" bei der Koordinate
(1,4,1) an, um die Koordinate (3,4,2) zu erreichen, damit das nächste Klarzeichen „e" bestimmt wird. Das
Klarzeichen wird im Schritt 520 gespeichert.
-
Falls
im Schritt 522 kein nächster
Aliasname vorhanden ist, geht das Verfahren zum Schritt 528 weiter, um
die entschlüsselten
Zeichen auszugeben. In einem Ausführungsbeispiel dekomprimiert
das Dekompressionsmodul 150 die verschlüsselten Daten im Schritt 528,
falls die Daten beim Verschlüsseln
komprimiert wurden. Die entschlüsselte
Klarzeichenfolge „the" wird über das
Eingabe/Ausgabe-Modul 108 ausgegeben.
Nach Ausgabe der Klarzeichen bricht das Verfahren ab.
-
Die
einzelnen Verfahrensschritte können
in einer anderen Reihenfolge abgearbeitet werden. So können zum
Beispiel die Klarzeichen ausgegeben werden, sobald sie aus dem Offsetwert
bestimmt wurden.
-
VERFAHREN
ZUM ERZEUGEN DER SCHLÜSSELMATRIX
-
6 ist
ein Flussdiagram zur Darstellung eines Ausführungsbeispiels eines Verfahrens
zum Erzeugen einer Schlüsselmatrix 121 gemäß 1.
Obwohl die Schlüsselmatrix 121 jede
geeignete Konfiguration aufweisen darf, enthält die dargestellte Schlüsselmatrix 121 einen
Schlüsselblock 120 nach 2,
Aliastabellen 124 nach 3A, Start-Aliastabellen 172 nach 3B und
Aliasnamen-Rücknahmetabellen 138 nach 3C.
-
Das
Verfahren beginnt bei Schritt 608, wo ein Prozessor des
Schlüsselzeichengenerators 160 Schlüsselzeichenparameter
vom Prozessor 110 empfängt.
Schlüsselzeichenparameter
können
Informationen enthalten, welche die Größe und die Dimensionen des
Schlüsselblocks 120 und
der Zugriffsblöcke 122 beschreiben und
ob die Schlüsselmatrix 121 hierarchisch
aufgebaut sein muss, oder nicht. Prozessor 110 kann die
Schlüsselzeichenparameter
als Eingabe von einem Nutzer empfangen oder Prozessor 110 kann
die Schlüsselzeichenparameter
als Antwort auf eine Nutzereingabe generieren.
-
Das
Verfahren wird mit Schritt 610 fortgesetzt, in dem der
Schlüsselzeichengenerator 160 eine
Entscheidung fällt,
ob der Schlüssel
hierarchisch sein muss, oder nicht. Wenn entschieden wird, dass
die Schlüsselmatrix
hierarchisch sein muss, geht das Verfahren weiter zu Schritt 614,
in dem der Schlüsselzeichengenerator 160 bestimmt,
welche Zugriffsblöcke
für die
Schlüsselmatrix
erforderlich sind.
-
Nachdem
die Zugriffsblöcke
bestimmt wurden, geht das Verfahren weiter zu Schritt 616,
in dem der Schlüsselzeichengenerator 160 die
Größe und die
Dimensionen der individuellen Zugriffsblöcke definiert. So könnte zum
Beispiel unter erneuter Bezugnahme auf 1, Schlüsselmatrix 121,
der Zugriffsblock 122a eine Größe von 16 Einheiten mal 16
Einheiten mal 16 Einheiten haben, und der Zugriffsblock 122b könnte eine
Größe von 24
Einheiten mal 24 Einheiten mal 24 Einheiten aufweisen, wodurch er
zu einer Obermenge des Zugriffsblockes 122a würde. Nachdem
alle Zugriffsblöcke
im Schritt 614 erzeugt wurden, geht das Verfahren weiter
zu Schritt 618.
-
Falls
im Schritt 610 festgelegt wird, dass der Schlüsselblock
nicht hierarchisch sein soll, geht das Verfahren weiter zu Schritt 612,
in dem die Größen und
Dimensionen der Schlüsselblöcke bestimmt
werden. So könnte
zum Beispiel ein Zugriffsblock 16 Einheiten mal 16 Einheiten
mal 16 Einheiten groß sein
oder eine Größe haben,
die durch den Nutzer bestimmt wird.
-
Im
Schritt 618 wird der zuvor in den Schritten 616 oder 612 bestimmte
Schlüsselblock
nach dem Zufallsprinzip durch den Schlüsselzeichengenerator 160 mit
einer Vielzahl der im 256ger ASCII-Zeichensatz auftretenden Zeichen
belegt.
-
Im
Schritt 620 belegt der Schlüsselzeichengenerator 160 nach
dem Zufallsprinzip die Aliastabellen in Abhängigkeit von der Anzahl der
Dimensionen der Zugriffsblöcke.
Der Schlüsselzeichengenerator 160 erzeugt mindestens
eine Gruppe von Aliastabellen für
jede Dimension n des Schlüsselblocks.
So würde
zum Beispiel ein dreidimensionaler Schlüsselblock (x,y,z) drei, oder
ein Vielfaches von drei Aliastabellen aufweisen. Auf 3A sind
x-, y- und z-Aliastabellen bei 124a, 124b und 124c dargestellt.
Die Aliastabellen enthalten Spalten für alle 41 möglichen Offsetwerte, zum Beispiel
von –20
bis +20, und Reihen, die unterschiedliche Aliasgruppen „a0, a1, a2..." definieren. Auf 3A, 124a,
könnte
ein Offsetwert –3
in x-Richtung durch „b", „!", oder „6" repräsentiert
werden, abhängig
davon, welche Reihe ausgewählt
wird. Die Reihen innerhalb einer Aliastabelle können sequentiell oder nach
dem Zufallsprinzip ausgewählt
werden. Jedes Zeichen tritt in einer Aliastabelle nur einmal auf.
So hat zum Beispiel in einem Schlüsselblock, der 21 Einheiten
an einer Seite aufweist, der größte Offsetwert,
der erforderlich ist, um den Schlüsselblock zu durchqueren, 20
Einheiten in positiver Richtung und 20 Einheiten in negativer Richtung.
Um zu bestimmen, wie viele Reihen die Tabelle enthalten kann, wird
die Zahl 256 verwendet, die der maximalen Länge eines
ASCII-Zeichensatzes entspricht, und durch sämtliche möglichen Offsetwerte geteilt,
in diesem Beispiel sind dies 41. Das Ergebnis, das hier sechs beträgt, ergibt
die Anzahl der Reihen, die in der Tabelle enthalten sein können. Somit
wäre es
möglich,
jeden möglichen Offsetwert
auf sechs unterschiedliche Arten zu repräsentieren, ohne ein Zeichen
mehrmals zu verwenden. Im vorliegenden Beispiel verwenden die y-
und die z-Aliastabellen die selben Zeichen wie die x-Tabelle, aber
im Allgemeinen stehen sie für
unterschiedliche Offsetwerte, weil sie nach dem Zufallsprinzip belegt
wurden, wie dies weiter oben beschrieben wurde.
-
Im
Schritt 622, so wie im Schritt 620, belegt der
Schlüsselzeichengenerator 160 nach
dem Zufallsprinzip die Start-Aliastabelle, in Abhängigkeit
von der Anzahl der Dimensionen des Zugriffsblocks. Das Verfahren erzeugt
mindestens eine Gruppe von Start-Aliastabellen für jede Dimension im Schlüsselblock.
Wegen der begrenzten Anwendungshäufigkeit
ist es zulässig,
dass die Start-Aliastabellen,
wie sie auf 3B, 172a, 172b, 172c dargestellt
sind, nur eine Reihe und nur eine Möglichkeit für die Verkörperung eines gegebenen Offsetwertes
aufweisen. Die Start-Aliastabellen können jedoch zusätzliche
Reihen aufweisen, wenn der Nutzer dies wünscht.
-
Im
Schritt 624, sowie im Schritt 620, belegt das
Verfahren nach dem Zufallsprinzip die Anfangskennsatz-Aliastabellen 170,
in Abhängigkeit
von der Anzahl der Dimensionen des Zugriffsblocks. Das Verfahren
erzeugt mindestens eine Gruppe von Anfangskennsatz-Aliastabellen
für jede
Dimension im Schlüsselblock.
Auf Grund der begrenzten Anwendungshäufigkeit ist es zulässig, dass
die Anfangskennsatz-Aliastabelle nur einige Reihen und nur einige
Möglichkeiten
für die
Verkörperung
eines gegebenen Offsetwertes aufweist.
-
Im
Schritt 626 wird, falls eine Permutation der Aliastabellen
oder der Schlüsselblöcke oder
der Ausgangswerte gewünscht
wird, eine Entscheidung getroffen. Falls eine Permutation gewünscht wird,
geht das Verfahren zu Schritt 628 weiter, in welchem der
Permutationszyklus und die beeinflussten Tabellen bestimmt werden.
-
Ein
Permutationsverfahren ergibt sich aus dem Tausch der x-, y- und
z-Aliastabellen 124. So könnte zum Beispiel x zu y werden,
y zu z werden und z zu x werden. Ein weiteres Permutationsverfahren
könnte
eine Neuordnung der Reihenfolge der Ausgangswerte in der Art und
Weise sein, wie dies weiter oben für die Aliastabellen 124 beschrieben
wurde, so das sich durch kombinieren der beiden eine Gesamtanzahl
von 36 Permutationen ergibt. Ein weiteres Permutationsverfahren
ergibt sich, indem man Offsetwerte aus zwei oder mehreren Schlüsselblöcken erhält. Eine
beliebige oder alle dieser Permutationen können auf der Basis von einem Zyklus
stattfinden, der in der Permutationstabelle enthalten ist. Dieser
Zyklus könnte
zum Beispiel die Aliastabellen nach jedem 100sten Zeichen, die Schlüsselblöcke nach
jedem 150sten Zeichen und die Reihenfolge der Ausgangswerte nach
jedem 175sten Zeichen austauschen. Die Länge dieser Zyklen könnte nach
dem Zufallsprinzip festgelegt und aufgezeichnet werden, jedes mal,
wenn ein neuer Schlüssel
generiert wird, um die Sicherheit zu verbessern. Alternativ ist
es zulässig,
die Länge
der Zyklen konstant zu halten oder innerhalb einer jeden verschlüsselten
Nachricht zu variieren, oder in einem Zyklus innerhalb einer Nachricht.
Nachdem das Permutationsverfahren etabliert ist, geht das Verfahren
weiter zu Schritt 630. Falls eine Permutation nicht erwünscht ist,
geht das Verfahren weiter zu Schritt 630.
-
Im
Schritt 630 wird, falls das Einfügen von Füllseln gewünscht wird, eine Entscheidung
getroffen. Falls das Einfügen
von Füllseln
gewünscht
wird, geht das Verfahren weiter zu Schritt 623, in welchem
für die
Füllseltabelle 174 festgelegt
wird, dass sie Füllsel
enthalten soll und an welchen Stellen die Füllsel eingefügt werden.
Füllsel
können
vor einer Nachricht, in den Hauptteil einer Nachricht oder nach
einer Nachricht eingefügt werden.
In der Füllseltabelle
ist festgelegt, wie viele Füllsel
platziert werden, und an welchen Stellen. So könnte zum Beispiel eine Füllseltabelle
das Ver schlüsselungssteuermodul
veranlassen, 100, nach dem Zufallsprinzip ausgewählte Zeichen vor dem Startzeichen
anzuordnen und dann ein nach dem Zufallsprinzip ausgewähltes Zeichen
als jeweils 100stes Zeichen innerhalb der Nachricht. Abwechselnd
könnte
eine Permutationstabelle das Verschlüsselungssteuermodul veranlassen,
50 nach dem Zufallsprinzip ausgewählte Zeichen am Textanfang
und ein nach dem Zufallsprinzip ausgewähltes Zeichen später im Text
anzuordnen. Die Position des nach dem Zufallsprinzip ausgewählten Zeichens
ist definiert als der ASCII-Wert des vorhergehenden Füllzeichens. Die
Position des nachfolgenden Füllzeichens
könnte
durch den ASCII-Wert des vorhergehenden Füllzeichens bestimmt werden.
Die Füllzeichen
können
nach dem Zufallsprinzip ausgewählt
sein, oder sie können
dazu dienen, anzuzeigen, dass ein Wechsel des Permutationstyps oder
der Zykluslänge
auftreten sollte. Das zu verwendende Verfahren ist in der Füllseltabelle
aufgezeichnet.
-
Wenn
das Verfahren vollständig
abgeschlossen ist, geht das Verfahren weiter zu Schritt 634.
Falls das Einfügen
von Füllseln
nicht erwünscht
ist, geht das Verfahren zu Schritt 634.
-
Im
Schritt 634 wird der fertiggestellte Schlüssel gespeichert.
Nach der Speicherung ist das Verfahren beendet.
-
Ausführungsbeispiele
der vorliegenden Erfindung können
zahlreiche technische Vorzüge
bieten. Ein technischer Vorzug eines Ausführungsbeispiels liegt darin,
dass relative Offsetwerte zwischen Schlüsselzeichen, die mit Klarzeichen
korrespondieren, verwendet werden, um eine Nachricht zu verschlüsseln. Durch
Verwendung relativer Offsetwerte ergibt die Verschlüsselung
einer Nachricht, jedes mal, wenn die Nachricht verschlüsselt wird,
ein anderes Ausgangssignal, wodurch die Sicherheit verbessert wird,
ohne nennenswerten Einsatz von Rechenkapazität oder Rechenzeit. Ein weiterer
technischer Vorzug eines Ausführungsbeispiels besteht
darin, dass ein anderes Start-Schlüsselzeichen
verwendet werden kann, um jede Nachricht zu verschlüsseln. Der
Wechsel des Start-Schlüsselzeichens
führt zu
unterschiedlich verschlüsselten
Zeichen, selbst dann, wenn die selbe Nachricht mehrere Male verschlüsselt wird.
-
Ein
weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass ein Schlüsselblock
einen Anfangskennsatz hat, um den Kopf einer Nachricht zu verschlüsseln und
einen getrennten Textblock, um den Hauptteil einer Nachricht zu
verschlüsseln.
Daraus folgt, falls ein nicht autorisierter Nutzer nur den Kopf einer
Nachricht entschlüsselt,
dass der nicht autorisierte Nutzer unter Verwendung dieser Information
den Hauptteil der Nachricht nicht entschlüsseln kann.
-
Ein
weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass Aliastabellen verwendet werden können. Aliasnamen werden verwendet,
um die Bedeutung von Offsetwerten unklar zu machen und sie sind
in Tabellen resident. Zahlreiche Aliasnamen können verwendet werden, um einen
Aliasnamen mit einem gegebenen Offsetwert zu assoziieren, so dass
sie poly-alphabetisch sind.
-
Ein
weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass eine Vielzahl von Aliastabellen erzeugt werden kann, so dass
eine Permutation von Aliastabellen stattfinden kann, in Überelinstimmung
mit einem zufallsbedingten und dynamischen Plan. Durch permutieren
der Aliastabellen nach einem unbekannten Plan ist das Sammeln von
Daten für
eine Analyse der Häufigkeit
des Auftretens von mit Aliasnamen versehenen Offsetwerten nutzlos.
-
Ein
weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass ein Schlüsselblock Zugriffsblöcke haben
kann, die nur einen selektiven oder sogar hierarchischen Zugriff
auf die verschlüsselten Daten
erlauben. Die Zugriffsblöcke
können
Untermengen anderer Zugriffsblöcke
enthalten und können
sich mit anderen Zugriffsblöcken überschneiden.
Ein weiterer technischer Vorzug eines Ausführungsbeispiels besteht darin,
dass Daten vor dem Verschlüsseln
komprimiert werden können,
um den Text noch weiter zu verschleiern. Demgemäss ermöglichen Ausführungsbeispiele
der vorliegenden Erfindung weiterhin eine sichere Datenverschlüsselung
ohne einen nennenswerten Einsatz von Rechenkapazität oder Rechenzeit.
-
Obwohl
ein Ausführungsbeispiel
der vorliegenden Erfindung und deren Vorzüge im Einzelnen beschrieben
wurden, kann der Fachmann zahlreiche verschiedenartige Änderungen,
Zusätze
und Auslassungen vornehmen, ohne den Geltungsbereich der vorliegenden
Erfindung zu verlassen, wie er in den anhängenden Ansprüchen definiert
wird. So kann zum Beispiel die vorliegende Erfindung in Hardware,
Software oder einer Kombination daraus ausgeführt werden. Darüber hinaus
ist es möglich,
die Dimensionen der Blöcke
zu variieren und Aliasnamen und Permutationen zu verwenden.
-
Obwohl
bekannte Lösungsansätze bereits
Verbesserungen gegenüber
vorherigen Lösungsansätzen gebracht
haben, nehmen die Herausforderungen bei der Verschlüsselung
digitaler Daten mit der Nachfrage nach einer größeren Anzahl und nach besseren
Verfahren, die eine höhere
Effektivität
aufweisen, ständig
zu. Daraus ist die Notwendigkeit erwachsen, ein neues Verfahren
und ein neues System zur Verschlüsselung
von Daten zu entwickeln.