DE60112130T2 - Vorrichtung zur datenverschlüsselung unter verwendung einer schlüsselmatrix - Google Patents

Vorrichtung zur datenverschlüsselung unter verwendung einer schlüsselmatrix Download PDF

Info

Publication number
DE60112130T2
DE60112130T2 DE60112130T DE60112130T DE60112130T2 DE 60112130 T2 DE60112130 T2 DE 60112130T2 DE 60112130 T DE60112130 T DE 60112130T DE 60112130 T DE60112130 T DE 60112130T DE 60112130 T2 DE60112130 T2 DE 60112130T2
Authority
DE
Germany
Prior art keywords
key
alias
character
characters
offset value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60112130T
Other languages
English (en)
Other versions
DE60112130D1 (de
Inventor
M. Kevin HENSON
Myron Eric SMITH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Durward D Dupre Plano Tex Us
Original Assignee
ASIER TECHNOLOGY CORP PLANO
Asier Tech Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ASIER TECHNOLOGY CORP PLANO, Asier Tech Corp filed Critical ASIER TECHNOLOGY CORP PLANO
Application granted granted Critical
Publication of DE60112130D1 publication Critical patent/DE60112130D1/de
Publication of DE60112130T2 publication Critical patent/DE60112130T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • G09C1/02Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system by using a ciphering code in chart form
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Description

  • 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;
  • 3A3C 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:
    Figure 00160001
    die Richtung wird angegeben durch:
  • Figure 00160002
  • 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 < q1, y < q2, z < q3}, dabei sind q1, q2 und q3 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:
    Figure 00210001
    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.

Claims (170)

  1. System zur Datenverschlüsselung, wobei das System umfaßt: einen Eingang, der in der Lage ist, eine Vielzahl von Klarzeichen zu empfangen; gekennzeichnet durch einen Speicher (112), der in der Lage ist, einen Schlüsselblock (120) zu speichern, der aus einer Vielzahl von Schlüsselzeichen besteht, wobei jedes Klarzeichen mit einem Schlüsselzeichen aus der Vielzahl der Schlüsselzeichen korrespondiert; einen Prozessor (110), der mit dem Speicher und dem Eingang verbunden ist und der in der Lage ist, die folgenden Schritte für nachfolgende Klarzeichen aus der Vielzahl der Klarzeichen zu wiederholen, um die Klarzeichen zu verschlüsseln: 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 (130), das mit dem Prozessor (110) verbunden ist, und das in der Lage ist, die folgenden Schritte für nachfolgende Klarzeichen aus der Vielzahl der Klarzeichen zu wiederholen, um die Klarzeichen zu verschlüsseln: Bestimmen eines Offsetwertes zwischen dem aktuellen Schlüsselzeichen und dem nächsten Schlüsselzeichen; und einen Ausgang, der mit dem Offsetmodul verbunden ist und der in der Lage ist, verschlüsselte Zeichen zu liefern.
  2. System nach Anspruch 1, wobei mit jedem einzelnen Schlüsselzeichen Variablen assoziiert sind, welche die Position des Schlüsselzeichens innerhalb eines Koordinatenraumes des Schlüsselblocks bezeichnen.
  3. System nach Anspruch 2, wobei der Offsetwert eine Differenz zwischen der Koordinate des aktuellen Schlüsselzeichens und der Koordinate des nächsten Schlüsselzeichens ist.
  4. System nach Anspruch 2, wobei die Schlüsselzeichen in mindestens n Dimensionen repräsentiert sind.
  5. System nach Anspruch 4, wobei jedes der Schlüsselzeichen eine Variable für jede Dimension der Koordinate hat.
  6. System nach Anspruch 5, wobei die Variable in Übereinstimmung mit einer Permutationsanweisung neu geordnet wird.
  7. System nach Anspruch 1, wobei der Prozessor in der Lage ist, eines der Schlüsselzeichen als ein Start-Schlüsselzeichen auszuwählen.
  8. System nach Anspruch 7, wobei der Prozessor in der Lage ist, eines der Schlüsselzeichen nach dem Zufallsprinzip als das Start-Schlüsselzeichen auszuwählen.
  9. System nach Anspruch 1, wobei der Prozessor in der Lage ist, ein vorgegebenes Zeichen einzufügen, um ein Ende der Daten zu bezeichnen, wenn keine weiteren Klarzeichen existieren.
  10. System nach Anspruch 1, wobei der Offsetwert vom ganzzahligen Datentyp ist.
  11. System nach Anspruch 1, wobei die Schlüsselzeichen mit geometrischen Koordinaten assoziiert sind, und der Offsetwert als ein Offsetwert geometrischer Koordinaten dargestellt ist.
  12. System nach Anspruch 1, wobei der Offsetwert eine Richtung und einen Abstand umfaßt.
  13. System nach Anspruch 1, wobei der Offsetwert eine geometrische Koordinatendifferenz umfaßt.
  14. System nach Anspruch 1, wobei mindestens zwei der Schlüsselzeichen mit einem der Klarzeichen korrespondieren.
  15. System nach Anspruch 2, wobei der Prozessor in der Lage ist, die Koordinaten eines jeden Schlüsselzeichens in einer Suchtabelle abzubilden, die aus Elementen besteht.
  16. System nach Anspruch 2, wobei der Prozessor in der Lage ist, die Koordinaten eines jeden Schlüsselzeichens in Matrizen abzubilden.
  17. System nach Anspruch 15 oder Anspruch 16, wobei jedes Schlüsselzeichen direkt in einem Element in der Suchtabelle beziehungsweise einem Element in einer der Matrizen abgebildet wird.
  18. System nach Anspruch 15 oder Anspruch 16, wobei die Suchtabelle beziehungsweise jede Matrix eine Länge hat, die durch die Anzahl der eindeutigen Elemente innerhalb des Schlüsselblocks bestimmt wird, und die Anzahl der Reihen der Suchtabelle beziehungsweise die Anzahl der Matrizen durch die Anzahl der gemeinsamen Elemente in dem Schlüsselblock bestimmt wird.
  19. System nach Anspruch 15 oder Anspruch 16, wobei der Schlüsselblock Dimensionen aufweist, und wobei jedes Element der Suchtabelle beziehungsweise der Matrizen eine Variable für jede Dimension des Schlüsselblocks belegt.
  20. System nach Anspruch 15 oder Anspruch 16, wobei die Anzahl der Elemente des Schlüsselblocks beziehungsweise die entsprechende Matrixlänge gleich 256 ist.
  21. System nach Anspruch 1, wobei der Prozessor in der Lage ist, mit dem Offsetwert einen Aliasnamen zu assoziieren.
  22. System nach Anspruch 21, wobei ein Start-Aliasname mit einem Start-Schlüsselzeichen assoziiert ist.
  23. System nach Anspruch 22, wobei die nachfolgenden Aliasnamen Offsetwerte relativ zum vorhergehenden Schlüsselzeichen repräsentieren.
  24. System nach Anspruch 21, wobei die Aliasnamen mindestens n Variablen aufweisen.
  25. System nach Anspruch 24, wobei jeder der Aliasnamen mit einem Offsetwert korrespondiert.
  26. System nach Anspruch 1, wobei der Prozessor in der Lage ist, einen Aliasnamen mit einem Parameter des Offsetwertes zu assoziieren.
  27. System nach Anspruch 1, wobei der Prozessor in der Lage ist: einen Satz von Aliasnamen zu definieren, die mit dem Offsetwert korrespondieren; und einen Aliasnamen aus dem Satz von Aliasnamen mit dem Offsetwert zu assoziieren.
  28. System nach Anspruch 27, wobei der Prozessor in der Lage ist, nach dem Zufallsprinzip einen der Aliasnamen aus dem Satz von Aliasnamen auszuwählen, um einen Parameter des Offsetwertes zu repräsentieren.
  29. System nach Anspruch 1, weiter enthaltend eine Aliastabelle, die einen Aliasnamen mit dem Offsetwert assoziiert.
  30. System nach Anspruch 29, wobei der Schlüsselblock n-dimensional ist, wobei der Prozessor in der Lage ist, einen oder mehrere Aliastabellen für jede Dimension des Schlüsselblocks zu definieren.
  31. System nach Anspruch 30, wobei der Prozessor in der Lage ist, eine Vielzahl von Aliastabellen für jede Dimension zu definieren.
  32. System nach Anspruch 31, wobei der Prozessor in der Lage ist, die Aliastabellen innerhalb eines Satzes von Dimensionen zu permutieren.
  33. System nach Anspruch 21, wobei ein Aliasmodul in der Lage ist, die Aliasnamen zu permutieren.
  34. System nach Anspruch 33, wobei sich die Aliasnamen in einer Aliastabelle befinden, wobei der Prozessor in der Lage ist, die Aliastabellen zu permutieren.
  35. System nach Anspruch 7, wobei der Prozessor in der Lage ist, eine Start-Aliastabelle für das Start-Schlüsselzeichen zu reservieren.
  36. System nach Anspruch 1, wobei der Schlüsselblock eine Vielzahl von Blöcken enthält.
  37. System nach Anspruch 1, wobei der Schlüsselblock eine Vielzahl von Zugriffsblöcken enthält.
  38. System nach Anspruch 1, wobei eine Vielzahl von Schlüsselblöcken existiert.
  39. System nach Anspruch 38, wobei der Prozessor in der Lage ist, die Schlüsselblöcke zu permutieren.
  40. System nach Anspruch 1, wobei der Schlüsselblock Vielfachzugriffsblöcke enthält, um multihierarchische Tauglichkeit zu gewährleisten.
  41. System nach Anspruch 40, wobei: auf den ersten Zugriffsblock durch einen ersten Anwender zugegriffen werden kann; und auf den zweiten Zugriffsblock durch einen zweiten Anwender zugegriffen werden kann, der mit dem ersten Anwender nicht identisch ist.
  42. System nach Anspruch 40, wobei der erste Zugriffsblock den zweiten Zugriffsblock enthält.
  43. System nach Anspruch 42, wobei ein Anwender Zugriffsrechte für einen beliebigen hierarchischen Zugriffsblock hat, der sich innerhalb des größeren hierarchischen Zugriffsblocks des Anwenders befindet.
  44. System nach Anspruch 42, wobei ein Anwender keine Zugriffsrechte auf einen beliebigen Zugriffsblock hat, der ein Container für den Zugriffsblock ist, auf den der Anwender Zugriffsrechte hat.
  45. System nach Anspruch 40, wobei ein Teil des ersten Zugriffsblocks einen Teil des zweiten Zugriffsblocks umfasst.
  46. System nach Anspruch 1, wobei der Schlüsselblock einen Anfangsblock umfasst.
  47. System nach Anspruch 1, wobei der Schlüsselblock eine Achse mit zyklischer Adressierung (wrapping around) des Schlüsselblocks hat.
  48. System nach Anspruch 1, wobei die Daten einen Anfangskennsatz und einen Datenhauptteil aufweisen, wobei der Prozessor in der Lage ist, den Anfangskennsatz mit einem ersten Satz von Schlüsselzeichen zu verschlüsseln und den Datenhauptteil mit einem zweiten Satz von Schlüsselzeichen zu verschlüsseln, wobei der erste Satz anders geordnet ist, als der zweite Satz von Schlüsselzeichen.
  49. System nach Anspruch 1, wobei der Prozessor in der Lage ist, vor, während oder nach den verschlüsselten Klarzeichen Füllsel einzufügen.
  50. System nach Anspruch 7, wobei das Startzeichen eine Variable bezeichnet, die bestimmt, wann Füllsel eingefügt werden.
  51. System nach Anspruch 1, wobei der Prozessor in der Lage ist, die Klarzeichen vor den Verschlüsselungsschritten von Anspruch 1 zu komprimieren.
  52. Verfahren zur Datenverschlüsselung, wobei das Verfahren umfasst: Empfangen einer Vielzahl von Klarzeichen, gekennzeichnet durch: Zugreifen auf einen Schlüsselblock, der eine Vielzahl von Schlüsselzeichen enthält, wobei jedes Klarzeichen mit einem Schlüsselzeichen aus der Vielzahl der Schlüsselzeichen korrespondiert; und Wiederholen des Nachfolgenden, für nachfolgende Klarzeichen aus der Vielzahl der Klarzeichen, um die Klarzeichen 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 aktuellem Schlüsselzeichen und dem nächsten Schlüsselzeichen.
  53. Verfahren nach Anspruch 52, wobei jedem der Schlüsselzeichen Variablen zugeordnet sind, welche die Position des Schlüsselzeichens innerhalb eines Koordinatenraums des Schlüsselblocks bezeichnen.
  54. Verfahren nach Anspruch 53, wobei der Offsetwert eine Differenz zwischen der Koordinate des aktuellen Schlüsselzeichens und der Koordinate des nächsten Schlüsselzeichens ist.
  55. Verfahren nach Anspruch 53, wobei die Schlüsselzeichen in mindestens n Dimensionen repräsentiert sind.
  56. Verfahren nach Anspruch 55, wobei jedes der Schlüsselzeichen eine Variable für jede Dimension der Koordinate aufweist.
  57. Verfahren nach Anspruch 56, wobei die Variable in Übereinstimmung mit einer Permutationsanweisung neu geordnet wird.
  58. Verfahren nach Anspruch 52, weiter umfassend den Schritt des Auswählens eines Schlüsselzeichens als Start-Schlüsselzeichen.
  59. Verfahren nach Anspruch 58, weiter umfassend den Schritt des Auswählens eines Schlüsselzeichens nach dem Zufallsprinzip, als das Start-Schlüsselzeichen.
  60. Verfahren nach Anspruch 52, weiter umfassend den Schritt des Einfügens eines vorgegebenen Zeichens, um ein Ende der Daten zu bezeichnen, wenn keine weiteren Klarzeichen existieren.
  61. Verfahren nach Anspruch 52, wobei der Offsetwert vom ganzzahligen Datentyp ist.
  62. Verfahren nach Anspruch 52, wobei die Schlüsselzeichen mit geometrischen Koordinaten assoziiert sind und der Offsetwert als ein Offsetwert geometrischer Koordinaten dargestellt ist.
  63. Verfahren nach Anspruch 52, wobei der Offsetwert eine Richtung und einen Abstand umfasst.
  64. Verfahren nach Anspruch 52, wobei der Offsetwert eine Differenz geometrischer Koordinaten umfasst.
  65. Verfahren nach Anspruch 52, wobei mindestens zwei der Schlüsselzeichen mit einem der Klarzeichen korrespondieren.
  66. Verfahren nach Anspruch 53, weiter umfassend den Schritt des Abbildens der Koordinaten eines jeden Schlüsselzeichens in einer Suchtabelle, die sich aus Elementen zusammensetzt.
  67. Verfahren nach Anspruch 53, weiter enthaltend den Schritt des Abbildens der Koordinaten eines jeden Schlüsselzeichens in Matrizen.
  68. Verfahren nach Anspruch 66 oder Anspruch 67, wobei jedes Schlüsselzeichen direkt in einem Element der Suchtabelle beziehungsweise einem Element in einer der Matrizen abgebildet ist.
  69. Verfahren nach Anspruch 66 oder Anspruch 67, wobei die Suchtabelle beziehungsweise jede Matrix eine Länge hat, die durch die Anzahl der eindeutigen Elemente innerhalb des Schlüsselblocks bestimmt wird, und die Anzahl der Reihen in der Suchtabelle beziehungsweise die Anzahl der Matrizen durch die Anzahl der gemeinsamen Elemente in dem Schlüsselblock bestimmt wird.
  70. Verfahren nach Anspruch 66 oder Anspruch 67, wobei der Schlüsselblock Dimensionen hat, und wobei jedes Element der Suchtabelle beziehungsweise der Matrizen eine Variable für jede Dimension des Schlüsselblocks belegt.
  71. Verfahren nach Anspruch 66 oder Anspruch 67, wobei die Anzahl der Elemente der Schlüsseltabelle, beziehungsweise die Matrixlänge gleich 256 ist.
  72. Verfahren nach Anspruch 52, weiter umfassend den Schritt des Zuordnens eines Aliasnamens zum Offsetwert.
  73. Verfahren nach Anspruch 72, wobei ein Start-Aliasname mit einem Start-Schlüsselzeichen assoziiert ist.
  74. Verfahren nach Anspruch 73, wobei die folgenden Aliasnamen Offsetwerte relativ zum vorhergehenden Schlüsselzeichen repräsentieren.
  75. Verfahren nach Anspruch 72, wobei die Aliasnamen mindestens n Variable haben.
  76. Verfahren nach Anspruch 75, wobei jeder der Aliasnamen mit einem Offsetwert korrespondiert.
  77. Verfahren nach Anspruch 52, weiter enthaltend den Schritt des Zuordnens eines Aliasnamens zu einem Parameter des Offsetwertes.
  78. Verfahren nach Anspruch 52, weiter umfassend folgende Schritte: Definieren eines Satzes von Aliasnamen, die mit dem Offsetwert korrespondieren; und Assoziieren eines Aliasnamens aus dem Satz von Aliasnamen mit dem Offsetwert.
  79. Verfahren nach Anspruch 78, weiter umfassend den Schritt des Auswählens eines Aliasnamens nach dem Zufallsprinzip, aus dem Satz von Aliasnamen, um einen Parameter des Offsetwertes zu repräsentieren.
  80. Verfahren nach Anspruch 52, weiter umfassend den Schritt des Verwendens einer Aliastabelle, die einen Aliasnamen mit dem Offsetwert assoziiert.
  81. Verfahren nach Anspruch 80, wobei der Schlüsselblock n Dimensionen hat, weiter umfassend den Schritt des Definierens einer Aliastabelle für jede Dimension des Schlüsselblocks.
  82. Verfahren nach Anspruch 81, weiter umfassend den Schritt des Definierens einer Vielzahl von Aliastabellen für jede Dimension.
  83. Verfahren nach Anspruch 82, weiter umfassend den Schritt des Permutierens der Aliastabellen innerhalb des Satzes von Dimensionen.
  84. Verfahren nach Anspruch 73, weiter umfassend den Schritt des Permutierens der Aliasnamen.
  85. Verfahren nach Anspruch 84, wobei die Aliasnamen sich in einer Aliastabelle befinden, weiter umfassend den Schritt des Permutierens der Aliastabelle.
  86. Verfahren nach Anspruch 58, weiter umfassend den Schritt des Reservierens einer Start-Aliastabelle für das Start-Schlüsselzeichen.
  87. Verfahren nach Anspruch 52, wobei der Schlüsselblock aus einer Vielzahl von Blöcken besteht.
  88. Verfahren nach Anspruch 52, wobei der Schlüsselblock aus einer Vielzahl von Zugriffsblöcken besteht.
  89. Verfahren nach Anspruch 52, wobei eine Vielzahl von Schlüsselblöcken existiert.
  90. Verfahren nach Anspruch 89, weiter umfassend den Schritt des Permutierens der Schlüsselblöcke.
  91. Verfahren nach Anspruch 52, wobei der Schlüsselblock Blöcke mit Vielfachzugriff nutzt, um multihierarchische Tauglichkeit zu gewährleisten.
  92. Verfahren nach Anspruch 91 wobei: auf den ersten Zugriffsblock durch einen ersten Anwender zugegriffen werden kann; und auf den zweiten Zugriffsblock durch einen zweiten Anwender zugegriffen werden kann, der mit dem ersten Nutzer nicht identisch ist.
  93. Verfahren nach Anspruch 91, wobei der erste Zugriffsblock den zweiten Zugriffsblock einschließt.
  94. Verfahren nach Anspruch 93, wobei ein Anwender Zugriffsrechte für einen beliebigen hierarchischen Zugriffsblock hat, der sich innerhalb des größeren hierarchischen Zugriffsblocks des Anwenders befindet.
  95. Verfahren nach Anspruch 93, wobei ein Anwender keine Zugriffsrechte für einen beliebigen Zugriffsblock hat, der ein Container für den Zugriffsblock ist, für den der Anwender Zugriffsrechte hat.
  96. Verfahren nach Anspruch 91, wobei ein Teil des ersten Zugriffsblocks einen Teil des zweiten Zugriffsblocks einschließt.
  97. Verfahren nach Anspruch 52, wobei der Schlüsselblock einen Anfangsblock einschließt.
  98. Verfahren nach Anspruch 52, wobei der Schlüsselblock eine Achse mit zyklischer Adressierung (wrapping around) des Schlüsselblocks hat.
  99. Verfahren nach Anspruch 52, wobei die Daten einen Anfangskennsatz und einen Datenhauptteil aufweisen, wobei das Verfahren weiter den Schritt des Verschlüsselns des Anfangskennsatzes mit einem ersten Satz von Schlüsselzeichen und des Verschlüsselns des Datenhauptteils mit einem zweiten Satz von Schlüsselzeichen umfasst, wobei der erste Satz anders geordnet ist, als der zweite Satz von Schlüsselzeichen.
  100. Verfahren nach Anspruch 52, weiter umfassend den Schritt des Einfügens von Füllseln, vor, während oder nach den verschlüsselten Klarzeichen.
  101. Verfahren nach Anspruch 58, wobei eine Variable bestimmt, wann das Einfügen stattfindet.
  102. Verfahren nach Anspruch 52, weiter umfassend den Schritt des Komprimierens der Klarzeichen vor den Verschlüsselungsschritten von Anspruch 1.
  103. System zur Datenentschlüsselung, gekennzeichnet durch einen Eingang, der in der Lage ist, verschlüsselte Daten zu empfangen, die mit einer Vielzahl von Klarzeichen assoziiert sind, wobei die verschlüsselten Daten eine Vielzahl von Offsetwerten umfassen; einen Speicher (112), der in der Lage ist, einen Schlüsselblock (120) zu speichern, der eine Vielzahl von Schlüsselzeichen umfasst, wobei jedes Klarzeichen mit einem Schlüsselzeichen aus der Vielzahl der Schlüsselzeichen korrespondiert; einen Prozessor (110), der in der Lage ist, die folgenden Schritte für einen nachfolgenden Offsetwert aus der Vielzahl der Offsetwerte zu wiederholen, um die verschlüsselten Daten zu entschlüsseln: Auffinden eines aktuellen Schlüsselzeichens; Auffinden eines nächsten Schlüsselzeichens, das mit dem Offsetwert korrespondiert, der auf das aktuelle Schlüsselzeichen angewandt wurde; und Bestimmen eines Klarzeichens, das mit den nächsten Schlüsselzeichen korrespondiert.
  104. System nach Anspruch 103, wobei jedem der Schlüsselzeichen Variablen zugeordnet sind, welche die Position des Schlüsselzeichens innerhalb eines Koordinatenraums des Schlüsselblocks belegen.
  105. System nach Anspruch 103, wobei jedes Schlüsselzeichen eine assoziierte Koordinate hat, wobei der Offsetwert gleich der Differenz zwischen der Koordinate des aktuellen Schlüsselzeichens und der Koordinate des nächsten Schlüsselzeichens ist.
  106. System nach Anspruch 103, wobei die Schlüsselzeichen in mindestens n Dimensionen repräsentiert sind.
  107. System nach Anspruch 106, wobei jedes der Schlüsselzeichen für jede Dimension eine Variable aufweist.
  108. System nach Anspruch 103, wobei der Prozessor in der Lage ist, ein vorgegebenes Zeichen einzufügen, um ein Ende der Daten zu bezeichnen, wenn keine weiteren Klarzeichen existieren.
  109. System nach Anspruch 103, wobei mindestens zwei Schlüsselzeichen mit einem der Klarzeichen korrespondieren.
  110. System nach Anspruch 103, wobei die Schlüsselzeichen mit geometrischen Koordinaten assoziiert sind und der Offsetwert als ein geometrischer Offsetwert repräsentiert wird.
  111. System nach Anspruch 103, wobei der Prozessor in der Lage ist, ein Schlüsselzeichen als ein Start-Schlüsselzeichen zu bestimmen.
  112. System nach Anspruch 103, wobei der Offsetwert vom ganzzahligen Datentyp ist.
  113. System nach Anspruch 103, wobei die Daten einen Anfangskennsatz und einen Datenhauptteil aufweisen, wobei der Prozessor in der Lage ist, den Anfangskennsatz mit einem ersten Satz von Schlüsselzeichen zu entschlüsseln und den Datenhauptteil mit einem zweiten Satz von Schlüsselzeichen zu entschlüsseln, der sich vom ersten Satz von Schlüsselzeichen unterscheidet, wobei speziell dieser erste Satz anders geordnet ist, als der zweite Satz von Schlüsselzeichen.
  114. System nach Anspruch 103, wobei ein Aliasname mit dem Offsetwert assoziiert ist.
  115. System nach Anspruch 114, wobei die Schlüsselmatrix eine Aliasnamen-Rücknahmetabelle umfasst, die so angepasst ist, dass sie den Offsetwert im Aliasnamen identifizieren kann.
  116. System nach Anspruch 114, wobei der Schlüsselblock n-dimensional ist, wobei der Prozessor in der Lage ist, eine Aliasnamen-Rücknahmetabelle für jede Dimension des Schlüsselblocks zu definieren.
  117. System nach Anspruch 116, wobei der Prozessor in der Lage ist, eine Vielzahl von Aliasnamen-Rücknahmetabellen für jede Dimension zu definieren.
  118. System nach Anspruch 117, wobei der Prozessor in der Lage ist, die Aliasnamen-Rücknahmetabellen innerhalb eines Satzes von Dimensionen zu permutieren.
  119. System nach Anspruch 114, wobei die Koordinaten eines Schlüsselzeichens als der Offsetwert in Bezug auf die Koordinate des vorhergehenden Schlüsselzeichens repräsentiert sind.
  120. System nach Anspruch 114, wobei der Offsetwert als eine Funktion von einem mit Aliasnamen versehenen geometrischen Offsetwert mit Bezug auf einen anderen mit Aliasnamen versehenen geometrischen Offsetwert repräsentiert sind.
  121. System nach Anspruch 114, wobei die Aliasnamen in mindestens n Dimensionen repräsentiert sind.
  122. System nach Anspruch 121, wobei jeder der Aliasnamen eine Variable für jede Dimension hat.
  123. System nach Anspruch 122, wobei eine dimensionsbehaftete Ausgabe in Übereinstimmung mit einer Permutationstabelle neu geordnet ist.
  124. System nach Anspruch 115, wobei der Prozessor in der Lage ist, die Aliasnamen-Rücknahmetabelle zu permutieren.
  125. System nach Anspruch 124, wobei der Prozessor in der Lage ist, einen Aliasparameter in einen Offsetparameter zu konvertieren, unter Verwendung einer Aliasnamen-Rücknahmetabelle mit Elementen.
  126. System nach Anspruch 124, wobei jedes Element der Aliasnamen-Rücknahmetabelle von einem nicht mit Aliasnamen versehenen Offsetwert belegt wird.
  127. System nach Anspruch 114, wobei die verschlüsselten Daten mit einer Aliastabelle assoziiert sind, wobei die Anzahl der Aliasnamen-Rücknahmetabellen mit der Anzahl der Aliastabellen übereinstimmt.
  128. System nach Anspruch 114, wobei die verschlüsselten Daten mit einer Aliastabelle assoziiert sind, wobei die Länge der Aliasnamen-Rücknahmetabelle gleich dem Schlüsselzeichen mit dem größten Bit-Ausdruck in der Aliastabelle ist.
  129. System nach Anspruch 114, wobei Start-Aliasnamen-Rücknahmetabellen für ein Start-Schlüsselzeichen reserviert sind.
  130. System nach Anspruch 114, wobei der Prozessor in der Lage ist, die Aliasnamen-Rücknahmetabellen zu permutieren.
  131. System nach Anspruch 114, wobei sich die Offsetwerte in einer Aliasnamen-Rücknahmetabelle befinden, wobei der Prozessor in der Lage ist, die Aliasnamen-Rücknahmetabellen zu permutieren.
  132. System nach Anspruch 103, wobei der Schlüsselblock eine Vielzahl von Zugriffsblöcken umfasst.
  133. System nach Anspruch 103, wobei eine Vielzahl von Schlüsselblöcken existiert.
  134. System nach Anspruch 103, wobei der Prozessor in der Lage ist, eine Vielzahl von Schlüsselblöcken zu permutieren.
  135. System nach Anspruch 103, wobei der Schlüsselblock eine Achse mit zyklischer Adressierung (wrap around) des Schlüsselblocks hat.
  136. System nach Anspruch 103, wobei der Prozessor in der Lage ist, die entschlüsselten Daten zu dekomprimieren.
  137. Verfahren zur Datenentschlüsselung, wobei das Verfahren durch folgende Schritte gekennzeichnet ist: Empfangen verschlüsselter Daten, die mit einer Vielzahl von Klarzeichen assoziiert sind, wobei die verschlüsselten Daten eine Vielzahl von Offsetwerten enthalten; Zugreifen auf einen Schlüsselblock (120), der eine Vielzahl von Schlüsselzeichen enthält, wobei jedes Klarzeichen mit einem Schlüsselzeichen aus der Vielzahl der Schlüsselzeichen korrespondiert; Wiederholen der folgenden Schritte für einen nachfolgenden Offsetwert aus der Vielzahl der Offsetwerte, um die verschlüsselten Daten zu entschlüsseln: Auffinden eines aktuellen Schlüsselzeichens; Auffinden eines folgenden Schlüsselzeichens, das mit dem Offsetwert korrespondiert, der auf das aktuelle Schlüsselzeichen angewandt wurde; und Bestimmen eines Klarzeichens, das mit dem folgenden Schlüsselzeichen korrespondiert.
  138. Verfahren nach Anspruch 137, wobei jedem der Schlüsselzeichen Variablen zugeordnet sind, welche die Position des Schlüsselzeichens innerhalb eines Koordinatenraums des Schlüsselblocks belegen.
  139. Verfahren nach Anspruch 137, wobei jedes Schlüsselzeichen eine assoziierte Koordinate hat, wobei der Offsetwert gleich der Differenz zwischen der Koordinate des aktuellen Schlüsselzeichens und der Koordinate des folgenden Schlüsselzeichens ist.
  140. Verfahren nach Anspruch 137, wobei die Schlüsselzeichen in mindestens n Dimensionen repräsentiert sind.
  141. Verfahren nach Anspruch 140, wobei jedes der Schlüsselzeichen eine Variable für jede Dimension hat.
  142. Verfahren nach Anspruch 137, weiter umfassend den Schritt des Einfügens eines vorher bestimmten Zeichens, um ein Ende der Daten zu bezeichnen, wenn keine weiteren Klarzeichen existieren.
  143. Verfahren nach Anspruch 137, wobei mindestens zwei Schlüsselzeichen mit einem der Klarzeichen übereinstimmen.
  144. Verfahren nach Anspruch 137, wobei die Schlüsselzeichen mit geometrischen Koordinaten assoziiert sind und der Offsetwert als ein geometrischer Offsetwert repräsentiert ist.
  145. Verfahren nach Anspruch 137, weiter umfassend Festlegen eines Schlüsselzeichens als ein Start-Schlüsselzeichen.
  146. Verfahren nach Anspruch 137, wobei der Offsetwert vom ganzzahligen Datentyp ist.
  147. Verfahren nach Anspruch 137, wobei die Daten einen Anfangskennsatz und einen Datenhauptteil aufweisen, umfassend den Schritt des Entschlüsselns des Anfangskennsatzes mit einem ersten Satz von Schlüsselzeichen und des Entschlüsseln des Datenhauptteils mit einem zweiten Satz von Schlüsselzeichen, der sich vom ersten Satz von Schlüsselzeichen unterscheidet, wobei speziell dieser erste Satz anders geordnet ist, als der zweite Satz von Schlüsselzeichen.
  148. Verfahren nach Anspruch 137, wobei ein Aliasname mit einem Offsetwert assoziiert ist.
  149. Verfahren nach Anspruch 148, weiter umfassend den Schritt des Bestimmens eines jeden Offsetwertes aus dem entsprechenden Aliasnamen.
  150. Verfahren nach Anspruch 148, wobei der Schlüsselblock n Dimensionen hat, weiter umfassend den Schritt des Definierens einer Aliasnamen-Rücknahmetabelle für jede Dimension des Schlüsselblocks.
  151. Verfahren nach Anspruch 150, weiter umfassend den Schritt des Definierens einer Vielzahl von Aliasnamen-Rücknahmetabellen für jede Dimension.
  152. Verfahren nach Anspruch 151, weiter umfassend den Schritt des Permutierens der Aliasnamen-Rücknahmetabellen innerhalb eines Dimensionssatzes.
  153. Verfahren nach Anspruch 148, wobei die Koordinaten eines Schlüsselzeichens als der Offsetwert zu der Koordinate des vorhergehenden Schlüsselzeichens repräsentiert sind.
  154. Verfahren nach Anspruch 148, wobei der Offsetwert als eine Funktion einer mit Aliasnamen versehenen geometrischen Koordinate in Bezug auf eine andere, mit Aliasnamen versehene geometrische Koordinate repräsentiert ist.
  155. Verfahren nach Anspruch 148, wobei die Aliasnamen n Variablen haben.
  156. Verfahren nach Anspruch 155, wobei jeder der Aliasnamen eine Variable für jede Dimension hat.
  157. Verfahren nach Anspruch 156, wobei eine dimensionsbehaftete Ausgabe in Übereinstimmung mit einer Permutationstabelle neu geordnet ist.
  158. Verfahren nach Anspruch 149, weiter umfassend den Schritt des Permutierens der Aliasnamen-Rücknahmetabelle.
  159. Verfahren nach Anspruch 158, weiter umfassend den Schritt des Konvertierens eines Aliasparameters in einen Offsetparameter, unter Verwendung einer Aliasnamen-Rücknahmetabelle mit Elementen.
  160. Verfahren nach Anspruch 158, wobei jedes Element der Aliasnamen-Rücknahmetabelle mit einem nicht mit Aliasnamen versehenen Offsetwert belegt ist.
  161. Verfahren nach Anspruch 148, wobei die verschlüsselten Daten mit einer Aliastabelle assoziiert sind, wobei die Anzahl der Aliasnamen-Rücknahmetabellen mit der Anzahl der Aliastabellen übereinstimmt.
  162. Verfahren nach Anspruch 148, wobei die verschlüsselten Daten mit einer Aliastabelle assoziiert sind, wobei die Länge der Aliasnamen-Rücknahmetabelle gleich dem Schlüsselzeichen mit dem größten Bit-Ausdruck in der Aliastabelle ist.
  163. Verfahren nach Anspruch 148, wobei Start-Aliasnamen-Rücknahmetabellen für ein Start-Schlüsselzeichen reserviert sind.
  164. Verfahren nach Anspruch 148, weiter umfassend den Schritt des Permutierens der Aliasnamen-Rücknahmetabellen.
  165. Verfahren nach Anspruch 148, wobei die Offsetwerte in Aliasnamen-Rücknahmetabellen enthalten sind, weiter umfassend den Schritt des Permutierens der Aliasnamen-Rücknahmetabellen.
  166. Verfahren nach Anspruch 137, wobei der Schlüsselblock eine Vielzahl von Zugriffsblöcken umfasst.
  167. Verfahren nach Anspruch 137, wobei eine Vielzahl von Schlüsselblöcken existiert.
  168. Verfahren nach Anspruch 137, weiter umfassend das Permutieren einer Vielzahl von Schlüsselblöcken.
  169. Verfahren nach Anspruch 137, wobei der Schlüsselblock eine Achse mit zyklischer Adressierung (wrap around) des Schlüsselblocks hat.
  170. Verfahren nach Anspruch 137, weiter umfassend das Dekomprimieren der entschlüsselten Daten.
DE60112130T 2001-02-02 2001-05-15 Vorrichtung zur datenverschlüsselung unter verwendung einer schlüsselmatrix Expired - Lifetime DE60112130T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US26640001P 2001-02-02 2001-02-02
US266400P 2001-02-02
PCT/US2001/040737 WO2002063592A2 (en) 2001-02-02 2001-05-15 Data encryption system using key matrix

Publications (2)

Publication Number Publication Date
DE60112130D1 DE60112130D1 (de) 2005-08-25
DE60112130T2 true DE60112130T2 (de) 2006-06-08

Family

ID=23014417

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60112130T Expired - Lifetime DE60112130T2 (de) 2001-02-02 2001-05-15 Vorrichtung zur datenverschlüsselung unter verwendung einer schlüsselmatrix

Country Status (7)

Country Link
US (5) US6996234B2 (de)
EP (1) EP1410558B1 (de)
AT (1) ATE300134T1 (de)
AU (1) AU2001259860B2 (de)
CA (1) CA2437500C (de)
DE (1) DE60112130T2 (de)
WO (1) WO2002063592A2 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418098B1 (en) * 2000-11-27 2008-08-26 Protegrity Corporation Data type preserving encryption
US6996234B2 (en) * 2001-02-02 2006-02-07 Asier Technology Corporation Data decryption methodology
US7016493B2 (en) * 2001-03-01 2006-03-21 Asier Technology Corporation Key matrix system
GB2373074B (en) * 2001-03-10 2004-10-13 Ibm A method and apparatus for storage of security keys and certificates
DE60130902T2 (de) * 2001-11-23 2008-07-17 Protegrity Research & Development Verfahren zum Erkennen des Eindringens in ein Datenbanksystem
US20030149876A1 (en) * 2002-02-01 2003-08-07 Secure Choice Llc Method and system for performing perfectly secure key exchange and authenticated messaging
US7826466B2 (en) 2002-06-26 2010-11-02 Atheros Communications, Inc. Communication buffer scheme optimized for VoIP, QoS and data networking over a power line
US8149703B2 (en) 2002-06-26 2012-04-03 Qualcomm Atheros, Inc. Powerline network bridging congestion control
WO2004034632A1 (en) * 2002-10-10 2004-04-22 Asier Technology Corporation Method and system for data encryption and decryption
US20040148356A1 (en) * 2002-11-04 2004-07-29 Bishop James William System and method for private messaging
US7383586B2 (en) 2003-01-17 2008-06-03 Microsoft Corporation File system operation and digital rights management (DRM)
US8213601B2 (en) * 2003-02-07 2012-07-03 Patrick Zuili Font level encryption method and apparatus
US8666065B2 (en) * 2003-02-07 2014-03-04 Britesmart Llc Real-time data encryption
US8064474B2 (en) * 2003-03-20 2011-11-22 Qualcomm Atheros, Inc. Method and apparatus for selecting a responder to enable reliable multicast
US7281187B2 (en) * 2003-11-20 2007-10-09 Intellon Corporation Using error checking bits to communicated an address or other bits
US7684568B2 (en) * 2003-11-24 2010-03-23 Intellon Corporation Encrypting data in a communication network
US8090857B2 (en) 2003-11-24 2012-01-03 Qualcomm Atheros, Inc. Medium access control layer that encapsulates data from a plurality of received data units into a plurality of independently transmittable blocks
US7660327B2 (en) 2004-02-03 2010-02-09 Atheros Communications, Inc. Temporary priority promotion for network communications in which access to a shared medium depends on a priority level
EP1577791B1 (de) * 2004-03-16 2011-11-02 Microdasys Inc. Inhaltsüberwachung für XML
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
EP1790115A1 (de) * 2004-09-14 2007-05-30 P. Prahlad Singanamala Verfahren und system zur rechnerischen transformation
US7509431B2 (en) * 2004-11-17 2009-03-24 Cisco Technology, Inc. Performing message and transformation adapter functions in a network element on behalf of an application
US7664879B2 (en) 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7496750B2 (en) 2004-12-07 2009-02-24 Cisco Technology, Inc. Performing security functions on a message payload in a network element
US7725934B2 (en) * 2004-12-07 2010-05-25 Cisco Technology, Inc. Network and application attack protection based on application layer message inspection
US7606267B2 (en) * 2004-12-10 2009-10-20 Cisco Technology, Inc. Reducing the sizes of application layer messages in a network element
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7551567B2 (en) * 2005-01-05 2009-06-23 Cisco Technology, Inc. Interpreting an application message at a network element using sampling and heuristics
US20060155862A1 (en) * 2005-01-06 2006-07-13 Hari Kathi Data traffic load balancing based on application layer messages
US7698416B2 (en) * 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
US7725715B2 (en) * 2005-02-24 2010-05-25 Access Business Group International Llc System and method for three-phase data encryption
US7602911B2 (en) * 2005-03-14 2009-10-13 Microsoft Corporation Method and system for enhancing cryptography-based security
US9787471B1 (en) * 2005-06-02 2017-10-10 Robert T. Jenkins and Virginia T. Jenkins Data enciphering or deciphering using a hierarchical assignment system
US7953826B2 (en) 2005-07-14 2011-05-31 Cisco Technology, Inc. Provisioning and redundancy for RFID middleware servers
US8175190B2 (en) 2005-07-27 2012-05-08 Qualcomm Atheros, Inc. Managing spectra of modulated signals in a communication network
US7345585B2 (en) 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
US7853018B2 (en) * 2005-11-10 2010-12-14 Atallah Mikhail J Method and apparatus for hiding a private key
US8698603B2 (en) 2005-11-15 2014-04-15 Cisco Technology, Inc. Methods and systems for automatic device provisioning in an RFID network using IP multicast
US8769311B2 (en) 2006-05-31 2014-07-01 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
US8626726B2 (en) 2006-05-31 2014-01-07 International Business Machines Corporation Method and system for transformation of logical data objects for storage
US7792301B2 (en) * 2006-06-29 2010-09-07 Microsoft Corporation Access control and encryption in multi-user systems
US8396221B2 (en) 2006-12-21 2013-03-12 Oracle International Corporation Secure broadcasting and multicasting
US9059838B2 (en) * 2007-03-30 2015-06-16 Verizon Patent And Licensing Inc. Encryption algorithm with randomized buffer
US20090103726A1 (en) * 2007-10-18 2009-04-23 Nabeel Ahmed Dual-mode variable key length cryptography system
US8225106B2 (en) 2008-04-02 2012-07-17 Protegrity Corporation Differential encryption utilizing trust modes
CN101661546B (zh) * 2008-08-28 2012-12-19 深圳富泰宏精密工业有限公司 在手持行动电子装置中进行文件加密的系统及方法
US8364984B2 (en) 2009-03-13 2013-01-29 Microsoft Corporation Portable secure data files
US9684710B2 (en) * 2009-05-28 2017-06-20 Microsoft Technology Licensing, Llc Extending random number summation as an order-preserving encryption scheme
US8958554B2 (en) * 2009-11-30 2015-02-17 Red Hat, Inc. Unicode-compatible stream cipher
US9058497B2 (en) 2010-12-23 2015-06-16 Microsoft Technology Licensing, Llc Cryptographic key management
US20130254553A1 (en) * 2012-03-24 2013-09-26 Paul L. Greene Digital data authentication and security system
US9673983B2 (en) 2012-09-14 2017-06-06 Qualcomm Incorporated Apparatus and method for protecting message data
WO2014135989A2 (en) 2013-03-06 2014-09-12 Assa Abloy Ab Localized pin management with reader verification and no disclosure
US10360821B2 (en) 2014-02-03 2019-07-23 AT Communications Co., Ltd. Sentence recognition device, sentence recognition method, and recording medium
RU2600100C2 (ru) * 2014-07-29 2016-10-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Амурский государственный университет" Способ шифрования информации
KR101689165B1 (ko) * 2015-03-12 2016-12-23 권오헌 이미지를 이용한 암호화 장치 및 방법
US9692598B2 (en) * 2015-08-07 2017-06-27 Terry L. Davis Multi-use long string authentication keys
US10277561B2 (en) 2016-07-22 2019-04-30 International Business Machines Corporation Database management system shared ledger support
CN111241606B (zh) * 2020-01-21 2021-03-23 北京连山科技股份有限公司 一种一拖三的移动存储设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809327A (en) * 1986-09-02 1989-02-28 Unisys Corporation Encrtption of messages employing unique control words and randomly chosen encryption keys
GB9015799D0 (en) * 1990-07-18 1991-06-12 Plessey Telecomm A data communication system
US5245658A (en) * 1992-01-06 1993-09-14 George Bush Domain-based encryption
US5438622A (en) * 1994-01-21 1995-08-01 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence
DE69532434T2 (de) * 1994-10-27 2004-11-11 Mitsubishi Corp. Gerät für Dateiurheberrechte-Verwaltungssystem
US5799090A (en) * 1995-09-25 1998-08-25 Angert; Joseph C. pad encryption method and software
US5991403A (en) * 1996-12-23 1999-11-23 Intel Corporation Recoverable cryptographic transformation on YUV data suitable for compressions
US6885747B1 (en) * 1997-02-13 2005-04-26 Tec.Sec, Inc. Cryptographic key split combiner
US6373948B1 (en) * 1997-08-15 2002-04-16 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using program identifiers
US7095852B2 (en) * 1998-02-13 2006-08-22 Tecsec, Inc. Cryptographic key split binder for use with tagged data elements
US6118873A (en) * 1998-04-24 2000-09-12 International Business Machines Corporation System for encrypting broadcast programs in the presence of compromised receiver devices
US6363480B1 (en) * 1999-09-14 2002-03-26 Sun Microsystems, Inc. Ephemeral decryptability
US6891951B2 (en) * 2000-01-21 2005-05-10 Victor Company Of Japan, Ltd. Cryptosystem-related method and apparatus
JP2001211153A (ja) * 2000-01-25 2001-08-03 Murata Mach Ltd 秘密鍵生成方法
US6922472B2 (en) * 2000-05-05 2005-07-26 Teleputers, Llc Method and system for performing permutations using permutation instructions based on butterfly networks
FR2814009B1 (fr) 2000-09-14 2003-01-31 Jean Roland Riviere Procede et dispositif de transformation de donnees a caractere convolutif et decalages variables, et systemes les mettant en oeuvre
US6996234B2 (en) * 2001-02-02 2006-02-07 Asier Technology Corporation Data decryption methodology
US7016493B2 (en) 2001-03-01 2006-03-21 Asier Technology Corporation Key matrix system

Also Published As

Publication number Publication date
CA2437500C (en) 2006-02-21
EP1410558B1 (de) 2005-07-20
US6950518B2 (en) 2005-09-27
US7016497B2 (en) 2006-03-21
ATE300134T1 (de) 2005-08-15
US20020131591A1 (en) 2002-09-19
US6996234B2 (en) 2006-02-07
DE60112130D1 (de) 2005-08-25
US20020136403A1 (en) 2002-09-26
US20020141573A1 (en) 2002-10-03
US20020141574A1 (en) 2002-10-03
EP1410558A2 (de) 2004-04-21
AU2001259860B2 (en) 2007-02-15
US7003108B2 (en) 2006-02-21
WO2002063592A2 (en) 2002-08-15
US20020131590A1 (en) 2002-09-19
CA2437500A1 (en) 2002-08-15
WO2002063592A3 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
DE60112130T2 (de) Vorrichtung zur datenverschlüsselung unter verwendung einer schlüsselmatrix
DE2231849C3 (de) Verschlüsselungsverfahren zur Erhöhung der Entschlüsselungsfestigkeit von blockweise zu verschlüsselnden Binärdaten und Anordnung zur Durchführung des Verfahrens
DE69634880T2 (de) Verfahren und gerät zum kontrollierten zugriff zu verschlüsselten datenakten in einem computersystem
DE10319435B4 (de) Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion
DE19782169C2 (de) Kryptographisch geschütztes Seitenwechsel-Subsystem
DE112006001221T5 (de) Pseudozufallszahlenerzeugungssystem, Verschlüsselungssystem und Entschlüsselungssystem
DE112017006020T5 (de) Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE19633466A1 (de) Nachinitialisierung von Chipkarten
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
DE60224603T2 (de) Auf einem graphisch implementierten Algorithmus basierendes Verfahren zur Erzeugung und Filtrierung von Datensequenzen für kryptographische Anwendungen
DE102008010794B3 (de) Verfahren zur unmanipulierbaren, abhörsicheren und nicht hackbaren P2P-Kommunikation in Mehrteilnehmernetze
EP3127272B1 (de) Verschlüsselungsverfahren und pseudo-zufallszahlengenerator
DE19811593C1 (de) Matrixgesteuerte Hashfunktion
DE10351022B4 (de) Verfahren zum Verschlüsseln einer von einer Sendeeinrichtung an eine Empfangseinrichtung abzugebenden Menge elektronischer Daten
DE102018113772A1 (de) Verschlüsselungsverfahren
EP0173647A2 (de) Chiffrier/Dechiffrierverfahren
DE10162991A1 (de) Verfahren zum rechnergestützten Ver- und Entschlüsseln von Daten
DE60033654T2 (de) Verfahren zur sicherung von softwareanwendungen mit hilfe einer einheit zur verarbeitung und speicherung geheimer daten und system dafür
EP0406457A1 (de) Verfahren zum Verschlüsseln und Entschlüsseln von Daten
DE3837843C2 (de) Verfahren zur Datenkomprimierung und -dekomprimierung
EP0972259A1 (de) Verfahren zur reduzierung des speicherbedarfs und aufbau einer datenbank
EP2835931A1 (de) Verfahren zur Verschlüsselung von Zeichenketten
DE3615255C2 (de)
DE102017109260A1 (de) Verfahren zum Generieren eines Schlüssels mit perfekter Sicherheit
DE19630354A1 (de) Verschlüsselung zur Datenübertragung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: DURWARD D. DUPRE, PLANO, TEX., US