Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR ENCODING ELECTRICAL DATA
Document Type and Number:
WIPO Patent Application WO/2005/046117
Kind Code:
A1
Abstract:
The invention relates to a method for encoding a quantity of electronic data quantity to be sent from an emitter device to a receiver device. Said method can be implemented at a low cost and ensures a temporally efficient encoding of electronic data, meeting the required safety standards. The encoding is based on codes of a variable length, fitting a prefix property.

Inventors:
ROCHA LUIS (DE)
Application Number:
PCT/DE2004/001865
Publication Date:
May 19, 2005
Filing Date:
August 20, 2004
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
EUROPA UNI VIADRINA FRANFURT O (DE)
ROCHA LUIS (DE)
International Classes:
H03M7/40; H04L9/00; (IPC1-7): H04L9/00; H03M7/40
Other References:
FRAENKEL A S; KLEIN S T: "Complexity Aspects of Guessing Prefix Codes", ALGORITHMICA, vol. 12, no. 4/5, November 1994 (1994-11-01), pages 1 - 10, XP002309024, Retrieved from the Internet [retrieved on 20041203]
SILVA O P ET AL: "Introduction to chaos-based communications and signal processing<1>", 2000 IEEE AEROSPACE CONFERENCE. PROCEEDINGS, vol. 11, 1 February 2000 (2000-02-01), BIG SKY, MT, USA, pages 279 - 299, XP010518483, ISBN: 0-7803-5846-5
GUNTHER C G: "Universal algorithm for homophonic coding", ADVANCES IN CRYPTOLOGY. EUROCRYPT' 88, 27 May 1988 (1988-05-27), DAVOS, SWITZERLAND, pages 405 - 414, XP002954713, ISBN: 3-540-50251-3
Attorney, Agent or Firm:
Bittner, Thomas (Hollerallee 32, Bremen, DE)
Download PDF:
Claims:
Ansprüche
1. Verfahren zum Verschlüsseln einer von einer Sendeeinrichtung an eine Empfangsein richtung abzugebenden Menge V elektronischer Daten (V= {v1, .., vq}, q # 1), die mittels Elementen einer elektronischen AlphabetDatenmenge W (W= {wl,..., wn}, n 2 1) gebil det ist, mit Hilfe eines von einem Rechner umfaßten Verarbeitungsmoduls und unter Verwendung einer Menge D (D = {z1, ..., zµ}, 2 zip < n32) mit Codierelementen zj (j = 1, ..., µ), wobei n = µ + kc (µ 1) mit k EN und wobei das Verfahren die folgenden Schritte umfaßt : Einlesen der elektronischen AlphabetDatenmenge W durch das Verarbeitungsmodul aus einem Speichermodul ; unter Berücksichtigung von Schlüsselelementen eines elektronischen Schlüssels, die Koordinaten xi eines Vektors x° bilden, mit wobei 0<xs<1 i=1, 2,. .., k Ausführen einer Abbildung #: Rk+1 # R+ der Elemente w ; (i = 1,..., n) der elektroni schen AlphabetDatenmenge W mit Hilfe einer nicht umkehrbaren, reellen Funktion (p gemäß x#+k+1 = (p (#, x#+k,..., x#+1), mit v > 0 zum iterativen Bilden von Folgeelementen xv einer Folge X = {xy, v > k} mit Hilfe des Verarbeitungsmoduls, wobei X in einem von k abhängigen Intervall liegt, so daß die Folge X chaotisch ist und jedem Element w ; ein Folgeelement xv E X zuge ordnet wird ; Sortieren der Folgeelemente xv der Größe nach, wobei ein größtes Folgeelement ein erstes Folgeelement einer sortierten Folge X' = {x'#}, # > k bildet; Bilden von Matrixelementen ap,m mit p = 1, ..., kc+2 und m = 1, ..., nf einer Matrix A = (ap,m), wobei die Matrixelemente ap, m mittels eines oder mehreren Codierelementen zj gebildet werden, so daß KandidatenCodeelemente gebildet werden, die einer Präfix codeEigenschaft genügen ; Auswählen jeweils wenigstens eines Codeelementes in jeder Zeile p mit 2 zu p < kc + 1 der Matrix A aus den KandidatenCodeelementen ; Zuordnen jedes ausgewählten Codeelementes zu je einem der Elemente w ; der elek tronischen AlphabetDatenmenge W ; und Verschlüsseln der abzugebenden Menge V von elektronischen Daten mit dem Verar beitungsmodul gemäß der vorher getroffenen Zuordnung zwischen den ausgewählten Codeelementen und den Elementen w ; der elektronischen AlphabetDatenmenge W.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß vor dem Ausführen der Abbildung (p Rk+l 4 + der Elemente w ; der elektronischen AlphabetDatemnenge W eine Anzahl der Schlüsselelemente abgefragt und eine Nutzereingabe zum Festlegen der Anzahl der Schlüsselelemente automatisch erfaßt wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß in Abhängigkeit von u eine verschachtelte Verschlüsselung ausgeführt wird, indem die abzugebende Menge V elektronischer Daten eine verschlüsselte Datenmenge ist.
4. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die abzugebende Menge V komprimiert wird.
5. Verwendung des Verfahrens nach einem der Ansprüche 1 bis 4 zum Verschlüsseln einer elektronischen Datei.
6. Verwendung des Verfahrens nach einem der Ansprüche 1 bis 4 zur verschlüsselten Da tenarchivierung.
7. Verwendung des Verfahrens nach einem der Ansprüche 1 bis 4 zum Verschlüsseln einer elektronischen Datei mit einem Mobilfunktelefon.
Description:
VERFAHREN ZUM VERSCHLÜSSELN VON ELEKTRISCHEN DATEN Die Erfindung liegt auf dem Gebiet der Verschlüsselung elektronischer Daten, insbesondere mit Hilfe von Codiertechniken, die Code variabler Länge nutzen (VLC-"Variable Length Code").

Stand der Technik Elemente elektronischer Datenmengen werden verschlüsselt, um einen unberechtigten Zugriff auf die Daten zu verhindern. Aus dem Stand der Technik sind unterschiedliche kryptographi- sche Verfahren bekannt, die in Verbindung mit elektronischen Daten üblicherweise mit Hilfe von sogenannten Kryptochips umgesetzt werden. Die Kryptochips sind in der Lage, die zum Verschlüsseln/Entschlüsseln der elektronischen Daten notwendigen Operationen auszuführen.

Zu diesem Zweck werden sie dem gewünschten Verfahren entsprechend mit zugehöriger An- wendungssoftware ausgestattet. Darüber hinaus können mit Hilfe unterschiedlicher Hard- ware-Gestaltungen verschiedene Kryptochip-Module hergestellt werden. Beispielsweise ist aus dem Dokument DE 199 63 042 A1 eine Vorrichtung zum Verschlüsseln bzw. Entschlüs- seln von elektronischen Daten bekannt.

Eine bekannte Form der Codiertechniken, die zum Verschlüsseln elektronischen Datenmen- gen genutzt werden, ist die Codiertechnik der variablen Codelänge, nämlich die VLC-Codier- teclmik. VL-Codes zeichnen sich dadurch aus, daß nicht alle Codewörter eines Codes dieselbe Länge haben, sondern daß die Codewörter eines Codes unterschiedliche Länge haben und daß der Code jedes zu codierenden Elementes eindeutig ist und niemals von links nach rechts in dem Code eines anderen zu codierenden Elementes größerer Länge enthalten ist. Ein Code- wort wird aus einer Menge von Codierelementen gebildet, so daß mit Hilfe der Codierele- mente ein zu einem jeweiligen Element eines zu codierenden Alphabets gehöriges Codewort geschaffen ist. Die Menge aller Codewörter für sämtliche Elemente des zu codierenden Al- phabets bildet den zugehörigen Code.

Das Verschlüsseln/Entschlüsseln elektronischer Daten ist bei verschiedensten Anwendungen von Bedeutung, in denen elektronische Daten beispielsweise über eine Kommunikationslei- tung zwischen einem Sendemodul und einem Empfangsmodul zu übertragen sind. Die Über- tragung der elektronischen Daten kann hierbei beispielsweise auch das Ablegen oder Ausle-

sen elektronischer Daten in bzw. aus einem Speicher betreffen. Aber auch in Verbindung mit beliebigen Anwendungen der Telekommunikation, beispielsweise bei Mobilfunktelefonen oder dergleichen, besteht häufig der Bedarf, elektronische Daten vor dem unberechtigten Zu- griff zu schützen. So ist aus der Druckschrift DE 199 58 599 Al ein Verfahren zum Ver- schlüsseln einer numerischen Information und ein Sendemodul bekannt.

Aus dem Stand der Technik sind Codierverfahren mit variabler Wortlänge bekannt, bei- spielsweise der Huffman-Code, bei dem es sich um ein VLC-Verfahren handelt. Eine seiner wesentlichen Eigenschaften lautet : Elemente eines zu codierenden Alphabets, die sehr oft vorkommen, besitzen eine kleinere Codelänge, als Elemente des zu codierenden Alphabets, die nicht sehr oft vorkommen. Außerdem haben solche Verfahren eine außerordentliche Ei- genschaft : Der Code eines codierten Elementes ist niemals enthalten am Anfang eines Codes eines anderen codierten Elementes größerer Länge. Deshalb heißt ein solcher Code : Präfix- Code. Die Folge ist, daß ein solcher Code eine eindeutige Decodierung gestattet, ohne die zu decodierende Elementemehge in Blöcke fester Länge aufteilen zu müssen. Die Präfix- Eigenschaft bedeutet des weiteren, daß der Code jedes Elementes des zu codierenden Alpha- bets eindeutig ist und niemals von links nach rechts im Code eines anderen Elementes des zu codierenden Alphabets größerer Länge enthalten ist. Dies ermöglicht eine eindeutige Deco- dierung und verhindert die Manipulation der verschlüsselten Nachricht.

Bekannte Verschlüsselungsverfahren, ob mit oder ohne Präfix-Eigenschaft, erfordern häufig einen sehr großen Rechenaufwand bei der Verschlüsselung der in elektronischer Form vorlie- genden Daten, was einerseits zum Bedarf einer erheblichen Rechenkapazität führt, um das Verschlüsseln/Entschlüsseln in einem vertretbaren Zeitrahmen zu halten. Andernfalls kommt es zu längeren Rechenprozessen, die von Nutzern dann häufig nicht akzeptiert werden.

Ausgabe der Erfindung Aufgabe der Erfindung ist es, ein verbessertes Verfahren zum Verschlüsseln einer elektroni- schen Datenmenge anzugeben, bei dem das Verschlüsseln/Entschlüsseln unter Erhaltung ei- nes ausreichenden Sicherheitsstandards mit möglichst geringer Rechenleistung ausführbar ist, so daß es insbesondere für die Nutzung in üblichen Computereinrichtungen geeignet ist, bei- spielsweise Laptops oder Personalcomputern.

Diese Aufgabe wird erfindungsgemäß durch ein Verfahren nach dem unabhängigen Anspruch 1 gelöst.

Die Erfindung hat gegenüber dem Stand der Technik den Vorteil, daß ein auch anspruchsvol- len Sicherheitsanforderungen genügende Verfahren zur Verfügung gestellt wird, was ande- rerseits mit Hilfe der in einem normalen Personalcomputer üblicherweise zur Verfügung ste- henden Rechenleistung eine sclmelle Verschlüsselung von elektronischen Daten gewährlei- stet. Trotz des hohen Sicherheitsdrahts des Verfahrens wird der verschlüsselte Text in sehr kurzen Zeiten erzeugt. Auf diese Weise ist das Verfahren beispielsweise für eine Verwendung im Zusammenhang mit dem täglichen Austausch elektronischer Nachrichten ("Email") geeig- net. Das Verfahren kann mit Hilfe eines geringen programmtechnischen Aufwands als An- wendungssoftware implementiert werden, wobei es in Standard-Programme integriert werden kann.

Ein weiterer Vorteil des Verfahrens besteht darin, daß das erfindungsgemäße Verfahren ein Verschlüsselungsverfahren ist, bei dem eine Präfix-Eigenschaft erhalten bleibt, so daß eine eindeutige Verschlüsselung ermöglicht ist, die die Manipulation des verschlüsselten Textes verhindert.

Das Verfahren kann je nach gewünschtem Grad der Sicherheit bei einer zweckmäßigen Fort- bildung der Erfindung optimiert werden, indem eine Anzahl der Schlüsselelemente des für die Verschlüsselung verwendeten Schlüssels abgefragt und eine Nutzereingabe zum Festlegen der Anzahl der Schlüsselelemente automatisch erfaßt wird. Auf diese Weise ist dem Nutzer des Verschlüsselungsverfahrens eine Möglichkeit an die Hand gegeben, den gewünschten Grad der Sicherheit frei zu wählen.

Zur weiteren Optimierung der Sicherheit des Verschlüsselns gegen den unberechtigten Zu- griff auf die zu verschlüsselnden elektronischen Daten ist bei einer zweckmäßigen Ausfüh- rungsform der Erfindung dadurch erreicht, daß eine verschachtelte Verschlüsselung ausge- führt wird, indem die abzugebende Menge elektronischer Daten eine verschlüsselte Daten- menge ist. Dieses bedeutet, daß das Verschlüsselungsverfahren mehrfach ausgeführt wird, so daß bei der zweiten Anwendung die Ausgangsmenge elektronischer Daten bereits eine ver- schlüsselte Datenmenge ist.

Die Erfindung wird im folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf eine Zeichnung näher erläutert. Hierbei zeigen :

Figur 1 eine schematische Darstellung einer Vorrichtung zum Ausführen eines Verfahrens zum Verschlüsseln/Entschlüsseln einer elektronischen Da- tenmenge ; und Figuren 2A bis 2F Darstellungen einer Matrix im Verlauf eines Verschlüsselungsverfahrens.

Im folgenden wird das Verfahren zum Verschlüsseln/Entschlüsseln bzw. Codieren/Deco- dieren einer Menge V elektronischer Daten (V= {vl,..., vq}, q 1) beschrieben. Das Verfah- ren wird mit Hilfe einer Vorrichtung ausgeführt, die in Figur l schematisch dargestellt ist. Die Menge V elektronischer Daten ist in einer Speichereinrichtung 1 gespeichert und wird zum Verschlüsseln/Entschlüsseln von einem Verarbeitungsmodul 2 aus der Speichereinrichtung l geladen. Bei dem Verarbeitungsmodul 2 kann es sich beispielsweise um einen üblichem Mi- kroprozessor handeln, der mit Hilfe geeigneter Software und/oder digitaler Hardwaretechnik ausgestattet ist, um das im folgenden beschriebene Verfahren zum Verschlüsseln/Entschlüs- seln bzw. Codieren/Decodieren auszuführen. Das Verarbeitungsmodul 2 kann Teil eines Per- sonalcomputers oder eines anderen Geräts sein, welches über Mittel zur Verarbeitung elektro- nischer Daten verfügt, beispielsweise ein Mobilfunktelefon oder dergleichen.

Verschlüsselte/entschlüsselte Daten können von dem Verarbeitungsmodul 2 dann abgegeben werden, beispielsweise über eine Ausgabeeinrichtung 3 an ein anderes Gerät 4 und/oder an die Speichereinrichtung l. Die Abgabe an das andere Gerät 4 betrifft beispielsweise die Übermittlung einer verschlüsselten elektronischen Nachricht, die dann in dem anderen Gerät 4 automatisch entschlüsselt wird. Es kann ergänzend oder alternativ auch eine direkte Über- tragung der verschlüsselten/entschlüsselten Daten zwischen dem Verarbeitungsmodul und einem anderen Datenverarbeitungsgerät 5 vorgesehen sein.

Die Daten V= {vl,..., vq} sind mittels Elementen einer elektronischen Alphabet-Datenmenge W (W= {wl,..., w"}, n 2 1) gebildet unter Verwendung einer Menge D (D= {z1,..., zµ}, p > 2) mit Codierelementen Zj (j = l,..., Il), wobei n = p + kc (µ - 1) mit kEN. Wenn letzteres nicht der Fall ist, dann wird eine Zahl nf mit nf 2 n gesucht, so daß die Gleichung tatsächlich mit einer natürlichen Zahl kc stattfindet, d. h. nif = 1l + kc (, u-1). Eine solche Zahl nf mit der zuge- hörigen Zahl kc kann immer ohne Schwierigkeiten gefunden werden.

Bei den Elementen der Alphabet-Datenmenge W kann es sich beispielsweise um die ASCII- Elemente handeln. Mit Hilfe der ASCII-Elemente kann eine Nachrichten verfaßt werden, die

dann zu codieren ist. Als Codierelementen zj kommen dann beispielsweise die Zahlen 0 und 1 in Frage (Binärcode), die miteinander kombiniert werden, um für jedes ASCII-Element ein zugehöriges Codewort zu bilden. Die Aneinanderreihung der Codewörter für die in der zu codierenden Nachricht enthaltenen ASCII-Elemente bildet dann eine codierte Nachricht, wel- che elektronisch weiter verarbeitet werden kann, beispielsweise an einen Empfänger gesendet oder gespeichert werden kann.

Im folgenden wird die Bildung von Matrixelementen ap, m mit p = 1,..., kc+2 und m = 1,..., nf einer Matrix A = (ap, m) beschrieben, wobei die Matrixelemente ap, m mittels eines oder mehreren Codierelementen Zj gebildet werden, so daß Kandidaten-Codeelemente gebil- det werden, die einer Präfixcode-Eigenschaft genügen. Es sei # : Rk+1 # R+ eine beliebige, streng positive, beschränkte, reelle Funktion. Wenn ein Vektor x° mit

wobei <BR> <BR> <BR> k 2 1<BR> <BR> 2SIl<n-32 0 < xi < 1, i = 1, ..., k, vorgegeben ist, wird iteraktiv die Folge {x#, # > k} gemäß x#+k+1 = #(#, x#+k,..., x#+1), # # 0 erzeugt. Dies bedeutet v Folgen-Nr. Iteration xk + 1 #(#, xk,..., x1) xk + 2 #(#; xk + 1,.., x2)

und somit wird jedem Symbol v der ASCII-Tabelle k + v, d. h.

# # k + #, v=1,..., 255 Eine solche Iteration ist k + 1 stufig, denn sie braucht k + 1 Anfangswerte, um beginnen zu können. Jede neue Zahl x, der Folge X = {xv, # # k} wird gewonnen, indem die Funktion (p immer mit von k + 1 Argumenten gefüttert wird. Die Folgen {x#, # # k} haben die folgenden Eigenschaften : (i) Sie sind mit wenig Aufwand zu erzeugen.

(ii) Jeder Anfangsvektor x° erzeugt eine bestimmte Folge von Zahlen {x, d. h. um die gan- ze Folge zu beherrschen genügt den Vektor x° zu kennen.

(iii) Die Kenntnis von k + 1 Elementen der Folge erlaubt die nächsten Elemente zu erzeugen, gibt aber keine Auskunft über die vorherigen Elemente. Es handelt sich um eine Einweg- Funktion.

Da die Folge {xv, # # k} schnell divergieren kann, wird ein Parameter , eingeführt, welcher zwei Aufgaben zu erfüllen hat : (i) Es wird verhindert, daß die Folge {x} schnell gegen einen Fixpunkt konvergiert. Ab einer bestimmten Grenze bis zu einer anderen, empirisch bestimmbaren Grenze, die von k abhängen, ein ergodisches Verhalten der Folge erzwungen.

(ii) Es ist der Anfangswert einer kleinen zufälligen Wahl von den Anfangselementen des Codealphabets, denn das Codealphabet besitzt ja u Symbole, die beliebig gewählt werden können. Jeder Schlüssel erzeugt einen persönlichen Code, d. h. der Code wird mit be- stimmten Symbolen erzeugt. Benutzt man als Schlüsselteil immer die gleichen Zahlen X und t sowie nur diese Zahlen, wobei die anderen Zahlen des Vektors x° beliebig zwi- schen Null und Eins gewählt werden können, dann werden Codes mit den gleichen Code-

symbolen erzeugt. Selbstverständlich sind nur die Codesymbole gleich, nicht aber die Codewörter.

Es wird bevorzugt, die Zahl X als einen Parameter so zu wählen, daß die Folge {xi} sich chaotisch verhält, d. h. daß sie nicht zu einem Fixpunkt konvergiert.

Danach wird den Zahlen {Xy} jeweils ein bestimmte ASCII-Elelment, nämlich ein bestimmtes Zeichen des ASCII-Codes, zugeordnet. Die Zahlen werden der Größe nach sortiert und in der letzten Zeile der Matrix A gespeichert, d. h. (akc+2,j). Für alle Elemente der Zeile von i = n + 1 bis nf wird akc+2,i = 0 gesetzt. Es gilt : Nun ist die Markierung auszuführen. Die Matrix A sieht wie folgt aus : Zeilen-Nr. Anzahl der zulässigen Elemente Also gilt kc + 2 nf =µ + kc(µ - 1) kc + 1 nf - (µ - 1) =µ + (kc - 1)( # # 3 µ + (µ + (- 1) zut

Danach werden die folgenden Schritte ausgeführt : (a) Sei i=kc und nf = µ + i(µ - 1) # = nf - (µ - 1) (b) Die letzten 11 Elemente der Zeile i + 2 werden addiert : Man setzt: ai+2,# = s. Die Elemente dieser Zeile sind bis zu der Position # noch einmal zu sortieren.

(c) Für alle j = 1, ..., ii setze ai+1,j = ai+2,j d. h. alle Elemente der oberen Zeile, die sortiert worden sind, werden in die untere Zeile der Matrix A kopiert. Es gilt dann ai+1,1 #...# S #...# ai+1,# (d) Die neue Position der Zahl s wird in einem Vektor b (i) gespeichert.

(e) Es sei i = i-1, und Rückkehr zu (a).

Es folgt das Wiederholen der Schritten (a) - (e) bis die Zeile 2 der Matrix A erreicht ist, d. h. bis i = l ist. Dann erhält man in dem Vektor b (i), i = l,..., kc, alle Positionen der Summe, und somit ist die Bildung der Matrix A abgeschlossen. Es ergibt sich, daß für i = 1,..., kc die ver- langte Bedingung 1 # b(i) # µ + (i - 1)(µ - 1) erfüllt ist.

Bei der Bildung der Matrix A gilt somit: Zeile 2 a2,j 1 # j # µ Zeile 3 a3,j 1 # j # µ + (11-1) Zeile s as,j 1 # j # µ + (s-2) (u-1) Zeile kc + 1 akc+1,j 1 # j # µ + (kc-l) (µ - 1) =nf- (µ - 1) Im folgenden ist die Matrix A nun zu markieren. Hierbei gilt : In jeder Zeile wird nur eine zulässige Zelle ausgewählt, und nur aus dieser Zelle dürfen"Kinder in die nächste Zeile schlüpfen". Mutter und Kind werden in den J. letzten zulässigen Zelle der übernächsten Zeile plaziert. Vermehrungsregel : Jede markierte Zelle der Matrix A hat J. Kinder und belegt die nächste Generation die 11 letzten zulässigen Zellen, die restlichen Zellen springen ohne Ver- änderungen auch mit. Zum Beispiel sei n = 7 und g = 3 und D = {a, b, c}. Dann gilt 7 = 3 + 2-2, also ist kc = 2. Die Matrix A in der ersten und zweiten Generation sieht dann wie folgt aus : A B C D E F G 4 3. 0 0 2 a b c # # # # 1 * # # # # # # 1 2 3 4 5 6 7

Die nächste Population ist dann : A B C D E F G 4 3 a co ba bb bc 0 0 2 a be c 0 0 0 0 1 0 0 0 0 0 0 1 2 3 4 5 6 7 Nach der letzten Vermehrung wird erhalten : A B C D E F G 4 a ba bb bc ca cb cc 3 a c# ba bb bc # # 2 a b# c # # # # 1 * # # # # # # 1 2 3 4 5 6 7

Somit liegt der Code zum Einsatz in der Zeile 4 zum Codieren vor. Ist die Markierung der Matrix A bekannt, kann der Code mit Präfix-Eigenschaft erzeugt werden. Es ergibt sich, daß die Anzahl von verschiedenen Markierungen für n # 50 sehr groß ist. Im Fall der ASCII- Zeichen wird mit n = 255 codiert.

Die Verfahrensschritte des Verfahrens zum Codieren/Decodieren werden in den folgenden Zusammenfassungen noch einmal aufgezählt.

Verfahren zum Codieren Die Länge der Schlüssel hängt von k ab und sei vorab festgelegt.

(1) Auswählen von zu so daß 2 zip < n-32 gilt.

(2) Wählen einer Iterationsfunktion # : Rk + 1 # R.

(3) Bestimmen des Bereichs für den Parameter ,.

(4) Erzeugen von n Elementen der Folge xv + k + 1 = # (#; x# + k, ... x# + 1), # # 0 und 1 pas- send.

(5) Sortieren der Zahlen {x# + k, 1 # # # n der Größe nach.

(6) Bestimmen von kc und der entsprechenden Zahl nf, so daß gilt nf = µ + kc (µ - 1).

(7) An den Stellen i = n + 1 bis nf setzen x ; = 0.

(8) Bestimmen der Markierung der Matrix A. Bestimmen der Werte des Vektors b (i) mit 1 zig i < kc, wobei lb (i) # µ + (i - 1)(µ - 1) i = 1, ..., kc (9) Erzeugen des Vektors Code (v), mit v = 1,..., n, wobei sich in Code (v) sich der Code des Zeichens v befindet, dem die Zahl xv+k der Iteration zugeordnet worden ist.

Verfahren zum Decodieren Es wird davon ausgegangen, daß folgende Information zur Verfügung steht : Seien W = {Wl,..., Wn} ein Alphabet, D = {z1, ..., zµ} das zugehörige Codealphabet mit Codierele- menten und der Vektor der Schlüssel. Es ist ein codierter Text zu decodieren, der aus Elementen von D zusammenge- setzt ist. Die Iterationsfunktion #: Rk + 1 # R sowie das Parameter X sind bekannt, d. h. genau so wie bei der Verschlüsselung. Das Decodieren wird dann in dem Ausführungsbeispiel mit den folgenden Schritten ausgeführt : (1) Erzeugen von n Elementen der Folge x# + k +1 = #(#, x# + k,..., x# + 1), # # 0 und # pas- send.'

(2) Sortieren der Zahlen {xv+k, 1 < v # n} der Größe nach.

(3) Bestimmen von kc und der entsprechenden Zahl nf, so daß gilt : nf = µ + kc (µ - 1).

(4) An den Stellen i = n + 1 bis nf. Setzen x ; = 0.

(5) Bestimmen der Markierung der Matrix A. Bestimmen der Werte des Vektors b (i) mit 1 # i # kc, wobei lb (i) + (i-l) (-l), i=l,..., kc (6) Erzeugen des Vektors Code (v) mit v = l,..., n, wobei sich in Code (v) der Code des Zei- chens v befindet, dem die Zahl xv + k der Iteration zugeordnet worden ist.

Der Vektor Code (v) wird als eine Art Katalog benutzt. Es wird begonnen, den codierten Text von Anfang an Zeichen für Zeichen zu lesen, und jedes Mal wird verglichen, ob schon die gelesenen Zeichen zusammen ein codiertes Wort des Vektors Code (v) darstellen. Ist das der Fall, wird decodiert. Danach beginnt man wieder Zeichen für Zeichen weiter zu lesen und zu vergleichen. Dies ist nur möglich dank der Präfix-Eigenschaft des erzeugten Codes. Das gan- ze Verfahren kann sehr schnell ausgeführt werden. Es sind keine Vielzahl von Operationen notwendig, wie dies bei asymmetrischen Verfahren der Fall ist.

Im folgenden wird unter Bezugnahme auf Figuren 2A bis 2F das beschriebene Verfahren weiter erläutert. Eine zu codierende Alphabet-Menge W umfasse die Buchstabenmenge {R, O, M, A}. Die Menge D umfaßt als frei wählbare Codierelemente zwei Symbole, d. h. D = to, 1}.

Es werden die Elemente der Matrix A = (ap, m) betrachtet, wobei die Zellen bzw. Elemente der Matrix A, die mit dem Zeichen"0"gekennzeichnet sind, ohne Bedeutung und unberücksich- tigt bleiben, d. h. sie werden weder belegt noch gebraucht. Die mit dem Zeichen"."gekenn- zeichneten Zellen der Matrix A zeigen die Markierungen der Matrix A an.

In der zweiten Zeile ist die Zelle ä2i und in der dritten Zeile die Zelle ä3i markiert. Nur die Elemente einer markierten Zelle können sich vermehren. Bei dem Belegen der Matrix A sol- len in dem Ausführungsbeispiel während des zeilenweisen Belegens die folgenden Vermeh- rungsregeln gelten :

- Alle Symbole, die in einer markierten Zelle der Matrix A landen, sind als eine Mutter zu betrachten.

- Jede Mutter hat so viele Kinder wie Symbole in der zweiten Zeile der Matrix existieren.

- Mutter plus Kind kommen jeweils in die nächste Generation, d. h. die aufwärts folgende nächste Zeile und belegen darüber die zwei letzten Zellen, jeweils so : Mutter plus erstes Kind und in der nächsten Zelle Mutter plus zweites Kind.

- Die Symbole in den Zellen ohne Markierung gehen ohne Änderungen weiter zu der näch- sten Generation, d. h. die nächste Zeile.

Bei dem Ausführungsbeispiel ergibt sich die Ausgangsposition (Zeile 2) gemäß Figur 2A. Die erste Mutter ist in der Zelle a21, sie bekommt zwei Kinder und geht in die nächste Generation als 00 und 01. Die zweite Generation (Zeile 3) ergibt sich dann gemäß Figur 2B. In-dieser Generation ist die zweite Mutter in der Zelle a3i, sie bekommt zwei Kinder und geht in die nächste Generation (Zeile 4) als 10 und 11, so daß sich eine Matrixbelegung gemäß Figur 2C ergibt. Die gesuchten Codewörter für die zu codierenden Buchstaben {R, O, M, A} ergeben sich dann aus Zeile 4.

Soll dann zum Beispiel das Wort AMOR codiert werden, ergibt sich als Code : 11100100.

Wäre die Markierung der Matrix anders gewählt wurden, wie es beispielhaft in Figur 2D ge- zeigt ist, dann ergibt sich die Belegung der Matrix A bei dem Ausführungsbeispiel unter Be- rücksichtigung der obigen Regeln gemäß den Figuren 2E und 2F. Soll der Text"AMOR MORA ROMÅ"codiert werden, ergibt sich in diesem Fall : AMOR =001000011 MORA = 000011001 ROMA = 101000001 Das führt dann zu dem codierten Text : 001000011000011001101000001. Die Decodierung erfolgt von links nach rechts und aufgrund der Präfix-Eigenschaft des Codes problemlos.

Datenkomprimierung Ein weiterer Vorteil des Verfahrens besteht darin, daß eine verschlüsselte Datenkomprimie- rung ausgeführt werden kann, wenn : 1. Die Menge D ist eine beliebige Untermenge der Menge {l, 2,. .., 9} und umfaßt min- destens zwei Elemente.

2. Es liegt eine verschlüsselte Datei vor, die mit D wie Punkt 1. und mit dem oben vorge- stellten Verfahren erzeugt worden ist.

Aufgrund der Präfix-Eigenschaft ist so eine Kodierung eindeutig und kann mit Symbolen einer erweiterten ASCII-Tabelle dargestellt werden. In einer erweiterten ASCII-Tabelle ist jedes Symbol mit zwei Byte, d. h. 21\16 Bits dargestellt, was bedeutet, daß die Tabelle 65536 Symbole enthält.

Bei der Datenkomprimierung sind die folgenden Schritte auszuführen : 1. Bestimmen von z* = max{z1,..,zµ}, 2 # µ # 9, zj # {1,...,9}.

2. Basis des numerischen Darstellung ist dann b = z* + 1.

3. Wählen von G* = 215-1 4. Von links nach rechts ließt man die Symbole z der verschlüsselten Nachricht : a. Setzen von j=0 und s = zj#bj. b. Wenn s < G*, dann lesen des nächsten Symbols und Setzen von : l. j = j + 1 2. s = s+ zjbj c. Wenn s > G*, Speichern des Symbols, das in der erweiterten ASCII- Tabelle liegt.

Weil von einer kleinerer ASCII-Tabelle zu einer größeren gewechselt wird, entsteht am Ende eine verschlüsselte Datei, die kleiner als die ursprüngliche Datei ist.

Datezidekoniprimieruii Die Dekodierung erfolgt analog :

1. Es liegt eine verschlüsselte Nachricht vor, die mit der erweiterten ASCII-Tabelle dar- gestellt worden ist und mit dem oben vorgestellten Verfahren verschlüsselt wurde.

2. Der Schlüssel des Verfahrens ist bekannt. Somit liegt Information über die Menge D vor, die als Codealphabet benutzt wurde.

Die dekomprimierte Datei wird dann wie folgt gewonnen : 3. Lesen jedes Symbols und Bestimmen seiner numerischen Darstellung in der erweiter- ten ASCII-Tabelle.

4. Jede Zahl, die in 3. gewonnen wird, wird in der numerischen Darstellung nach Basis b gemäß 2. dargestellt.

5. Nach dem Schritt 4. liegt dann eine verschlüsselte Datei vor.

6. Benutzen des oben dargestellten Verfahrens.

Das hier vorgestellte Verfahren wurde in der Programmiersprache Visual Basic mit der EXCEL-Oberfläche implementiert. Wegen der Einfachheit des Verfahrens kann es selbstver- ständlich in einer beliebigen Programmiersprache implementiert werden.

Die in der vorstehenden Beschreibung, den Ansprüchen und der Zeichnung offenbarten Merkmale der Erfindung können sowohl einzeln als auch in beliebiger Kombination für die Verwirklichung der Erfindung in ihren verschiedenen Ausführungsformen von Bedeutung sein.