PatentDe  


Dokumentenidentifikation DE69833947T2 07.09.2006
EP-Veröffentlichungsnummer 0001000482
Titel SPEICHERZELLENANORDNUNG ZUR ERZEUGUNG EINER GEHEIMEN NICHT DAUERHAFTEN SPEICHERUNG
Anmelder Intel Corporation, Santa Clara, Calif., US
Erfinder MALISZEWSKI, L., Richard, Forest Grove, OR 97116, US
Vertreter Patentanwälte Hauck, Graalfs, Wehnert, Döring, Siemons, Schildberg, 80339 München
DE-Aktenzeichen 69833947
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 09.07.1998
EP-Aktenzeichen 989379599
WO-Anmeldetag 09.07.1998
PCT-Aktenzeichen PCT/US98/14713
WO-Veröffentlichungsnummer 1999008416
WO-Veröffentlichungsdatum 18.02.1999
EP-Offenlegungsdatum 17.05.2000
EP date of grant 22.03.2006
Veröffentlichungstag im Patentblatt 07.09.2006
IPC-Hauptklasse H04L 9/00(2006.01)A, F, I, 20051017, B, H, EP
IPC-Nebenklasse G06F 12/14(2006.01)A, L, I, 20051017, B, H, EP   G11C 7/10(2006.01)A, L, I, 20051017, B, H, EP   

Beschreibung[de]
Gebiet der Technik

Die vorliegende Erfindung betrifft das Speichern geheimer Daten und im Besonderen das Speichern geheimer Daten unter Verwendung eines Mutationszyklus einer Zellenanordnung.

Beschreibung des Stands der Technik

Die meisten Computeranwendungen versuchen nicht gewollt geheime Daten während der Ausführung zu schützen. Vielmehr speichern sie geheime Werte, so dass diese im Speicher jederzeit klar lesbar sind, wodurch die Daten für jede Vorgehensweise anfällig werden, die einen Zugriff auf den entsprechenden Speicher erlangen kann. Zum Beispiel kann ein aktives Programm eine Festplatte durchsuchen, wobei es nach einem bestimmten Gegenstand sucht, der ein Geheimnis bzw. einen Geheimcode beherbergt bzw. aufweist. Sobald das Geheimnis bzw. der Geheimcode oder das Programm, welches das Geheimnis in sich birgt, gefunden worden ist, kann das Geheimnis bzw. der Geheimcode oder das Programm analysiert und/oder zerstört werden. Das Geheimnis und das Programm können über ein Modem zur Fernanalyse von der Festplatte entfernt oder von dieser kopiert werden.

Höher entwickelte Anwendungen weisen Geheimnisse bzw. geheime Daten auf, die im Speicher nur während der Zeiten klar oder im „Klartext" lesbar sind, wenn sie tatsächlich eingesetzt werden. Während der restlichen Zeit werden die geheimen Daten in einer bestimmten verschlüsselten Form gespeichert. Dies ist mit dem Problem verbunden, dass ein weiteres Geheimnis bzw. ein weiterer Geheimcode eingesetzt werden muss, um die gespeicherten Geheimcodes zu entschlüsseln. Dieser schützende Geheimcode muss danach geschützt werden, damit wiederum die Werte sicher sind. Das Entschlüsseln verschiedener Geheimcodes kann sich zeitaufwändig gestalten. Zum Beispiel können die verschlüsselten Geheimcodes auf Festplatten gespeichert werden, der Zugriff auf welche Zeit in Anspruch nimmt.

In Computers & Security, Oktober 1993, Seiten 565 bis 584 werden die Komprimierung und Verschlüsselung offenbart und das Beispiel für ein XOR-Glied dargestellt, das verwendet werden kann, um eine zufällige bzw. wahlfreie Befehlsgruppe zu erzeugen, die durch Ausführung einer anderen XOR-Funktion wiederhergestellt werden kann.

WO97/48203, eingereicht am 13. Juni 1996 und veröffentlicht am 18. Dezember 1997, mit dem Titel „Tamper Resistant Method and Apparatus", von Aucsmith et al, beschreibt ein gegen Missbräuche sicheres Verfahren, bei dem Zellen eine exklusive ODER-Funktion durchlaufen, wobei andere Zellen Mutationen erzeugen. Das Ausführungsmuster für dieses Verfahren kann den schützenden Geheimcode darstellen. Wenn jedoch Bits verändert werden, mutieren die Zellen nicht ordnungsgemäß.

Somit werden ein Verfahren und eine Vorrichtung benötigt, um geheime Daten sicher derart zu speichern, dass die geheimen Daten schnell gespeichert und abgerufen werden können.

Zusammenfassung der Erfindung

Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 1.

Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein computerlesbares Medium gemäß dem gegenständlichen Anspruch 11.

Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung ein System gemäß dem gegenständlichen Anspruch 15.

Bevorzugte Merkmale der Erfindung sind in den beigefügten Ansprüchen definiert.

Kurze Beschreibung der Zeichnungen

Die vorliegende Erfindung wird in Bezug auf die nachstehende genaue Beschreibung und aus den beigefügten Zeichnungen der Ausführungsbeispiele der Erfindung umfassender verständlich, wobei die vorliegende Erfindung jedoch nicht auf die besonderen beschriebenen Ausführungsbeispiele beschränkt ist, die vielmehr lediglich der Erläuterung und dem besseren Verständnis dienen. In den Zeichnungen zeigen:

1 eine Blockdiagrammdarstellung eines Computersystems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;

2 eine in einem Ausführungsbeispiel der vorliegenden Erfindung verwendete Zellenanordnung;

3 eine Tabelle der Paarbildungen und Zellen im Klartext in verschiedenen Phasen eines vereinfachten Mutationszyklus eines Ausführungsbeispiels gemäß der vorliegenden Erfindung;

4A ein Register und dessen Inhalte, das in Verbindung mit einem Ausführungsbeispiel der vorliegenden Erfindung eingesetzt wird;

4B die Zellenanordnung aus 2 und Inhalte von Speicherbereichen darin während einer bestimmten Phase der Ausführung;

5 eine Blockdiagrammdarstellung eines DVD-Players, der eine Zellenanordnung gemäß der vorliegenden Erfindung einsetzt;

6 eine Blockdiagrammdarstellung eines Computersystems, das eine Zellenanordnung gemäß der vorliegenden Erfindung einsetzt, um geheime Daten so lange zu speichern, bis diese benötigt werden;

7A eine Draufsicht einer Disk, wie etwa einer CD-ROM; und

7B ein Computersystem, das als ein Server oder als ein Benutzer einer Zellenanordnung gemäß der vorliegenden Erfindung eingesetzt wird.

Genaue Beschreibung bevorzugter Ausführungsbeispiele

In Bezug auf die Abbildung aus 1 weist ein Computersystem 10 einen Prozessor 14 und einen Speicher 16 auf. Bei dem Speicher 16 kann es sich um einen Direktzugriffsspeicher (RAM), eine Festplatte und/oder ein anderes Format handeln. Der Prozessor 14 kommuniziert mit dem Speicher 16 über den Bus und zugeordnete Logik 20. Das Computersystem 10 ist nicht auf eine bestimmte Art von Computersystem beschränkt. Zum Beispiel kann es sich bei dem Computersystem 10 um ein System handeln, bei dem es sich bei dem Prozessor 14 um einen Pentium® II Prozessor, hergestellt von der Intel Corporation, handelt. Die erforderlichen Einzelheiten für die Implementierung von Speicher, Bus und zugeordneter Logik sowie Prozessoren sind allgemein bekannt und werden hierin nicht näher beschrieben. Das Computersystem 10 weist zahlreiche andere, allgemein bekannte Komponenten bzw. Bauteile auf, die weder veranschaulicht noch beschrieben werden, da dies für das Verständnis der vorliegenden Erfindung nicht erforderlich ist und die Erfindung verschleiern kann.

In der Patentschrift bezieht sich die Aussage „ein Ausführungsbeispiel" auf ein Ausführungsbeispiel der Erfindung. Hiermit wird festgestellt, dass die speziellen Komponenten oder Merkmale, die in Bezug auf das jeweilige Ausführungsbeispiel erwähnt werden, auch in anderen Ausführungsbeispielen der Erfindung vorhanden sein können. Ferner müssen nicht alle der erwähnten verschiedenen Komponentenoder Merkmale in dem gleichen Ausführungsbeispiel der vorliegenden Erfindung vorhanden sein. Die verschiedenen Komponenten oder Merkmale können in verschiedenen Ausführungsbeispielen kombiniert und aufeinander abgestimmt werden.

Der Speicher 16 weist das bzw. die Register 24 und die Zellenanordnung 26 auf. Zu jedem beliebigen Zeitpunkt können Code, Daten und andere binäre Werte von der Zellenanordnung 26 zwischen dem Prozessor-Cache, dem Cache außerhalb des Prozessors (z.B. L2-Cache), dem Hauptspeicher, einer Festplatte und/oder weiteren Speichern verteilt bzw. ausgetauscht werden. Der Begriff „Zellenanordnung" ist so auszulegen, dass er im weiteren Sine eine binäre Struktur aufweist, welche mehrere Zellen aufweist, ohne dabei auf eine bestimmte Ausführung beschränkt zu sein. Zum Beispiel kann sich die Zellenanordnung 26 an zusammenhängenden Speicherplätzen in dem Speicher 16 befinden oder auf nicht zusammenhängende Speicherplätze verteilt sein.

In Bezug auf die Abbildung aus 2 weist die Zellenanordnung mehrere Zellen auf. Zur besseren Veranschaulichung und Erläuterung weist die Zellenanordnung 26 nur acht Zellen au: die Zellen 0, 1, ..., 7 (gemeinsam die Zellen 0 bis 7). In der Praxis kann die Zellenanordnung 26 wesentlich mehr Zellen aufweisen. Die Zellenanordnung 26 mutiert oder durchläuft auf andere Art und Weise verschiedene Phasen. Die Mutation durch verschiedene Phasen ist ein Beispiel für einen Mutationszyklus oder Phasenzyklus.

In einem Ausführungsbeispiel erfolgen die Mutationen, da der Prozessor 14 exklusive ODER-Operationen (XOR) zwischen den Zellen durchläuft. In einem Ausführungsbeispiel befindet sich die Hälfte der Zellen (z.B. die Zellen 0 bis 3) in einem ersten Abschnitt der Zellenanordnung 26, während sich die andere Hälfte der Zellen (z.B. die Zellen 4 bis 7) in einem zweiten Abschnitt der Zellenanordnung 26 befindet.

In einem Ausführungsbeispiel wird eine XOR-Operation an jeder der Zellen des ersten Abschnitts der Zellenanordnung 26 mit einem Partner der Zellen des zweiten Abschnitts ausgeführt. In einem Ausführungsbeispiel ist damit gemeint, dass eine Zelle mit einer anderen Zelle eine XOR-Operation ausführt, dass die Bits der einen Zelle durch eine XOR-Operation mit entsprechenden Bits der anderen Zelle geführt werden. Zum Beispiel wird eine XOR-Operation des Bits 0 der Zelle 0 mit dem Bit 0 der Zelle 4 ausgeführt; für das Bit 1 der Zelle 0 wird eine XOR-Operation mit dem Bit 1 der Zelle 4 ausgeführt und so weiter, so dass für das Bit n der Zelle 0 eine XOR-Funktion mit dem Bit n von Zelle 4 ausgeführt wird. In anderen Ausführungsbeispielen kann eine andere Anordnung von Bits (z.B. nicht inkrementierend oder aufeinander folgend) eingesetzt werden. In bestimmten Ausführungsbeispielen wird nicht für alle Bits in jeder Zelle oder Phase eine XOR-Operation ausgeführt. In der XOR-Funktion gilt 0 XOR 0 = 0, 0 XOR 1 = 1, 1 XOR 0 = 1 und 1 XOR 1 = 0. Diesbezüglich stellen Code, Daten und andere binäre Werte lediglich 1er und 0er dar und sind für XOR-Operationen geeignet.

Mindestens eine Zelle weist mindestens einen bestimmten Klartext in jeder Phase auf, aus dem der Prozessor 14 (oder eine andere Schaltkreisanordnung) Befehle erhalten kann, so dass die Zellenanordnung 26 zumindest mutieren oder anderweitig in die nächste Phase übergehen kann. Klartext ist Teil des ursprünglichen Programms (in Phase 0) oder durch den Kompilierer bzw. Compiler erzeugter Mutationen dessen, die ausgeführt werden können. Andere Zellen können etwas aussehen, was einem ausführbaren Code gleicht, und wobei in der Tat Abschnitte der Zellen ausführbar sein können, wobei die Zellen jedoch nicht ausgeführt werden. Vielmehr können die mutierten binären Bits, die als Code, Daten oder sonstige binäre Werte ihren Ursprung haben, wahlfrei bzw. zufällig eine bestimmte Bedeutung aufweisen. Dies ist wünschenswert, da dies das Verständnis der Zellenanordnung 26 für einen Angreifer zusätzlich erschwert.

In der Abbildung aus 2 weisen die Zellen 0, 1, ..., 7 in der Zellenanordnung 26 die entsprechenden Speicherbereiche SR0, SR1 ... SR7 auf. Einige oder alle der Speicherbereiche speichern Daten aus dem bzw. den Register(n) 24 aus 1. Die geheimen Daten aus dem bzw. den Register(n) 24 befinden sich in mutierter Form in den meisten oder allen Phasen, außer einer Phase. Die Maßnahme der Mutation der Daten ist eine Form der Verschlüsselung, und die Rückführung der Daten in eine nicht mutierte Form ist eine Form der Entschlüsselung.

Die Zellenanordnung wird gegen Missbräuche sicher gestaltet, indem der Code und andere binäre Werte so angeordnet werden, dass wenn sich ein Bit auf andere Weise als durch XOR-Mutation oder Speicherung in einem Speicherbereich SR0 bis SR7 in der entsprechenden Phase verändert, so wird der Inhalt der Zellenanordnung 26 korrumpiert. Abhängig von Faktoren, wie etwa davon, welche Bits verändert werden, in welcher Phase und Zelle sie verändert werden, und der Anzahl der Zellen und Phasen, kann die Zellenanordnung 26 die Ausführung vollständig einstellen oder einfach nur nicht mehr die richtigen geheimen Daten zurückgeben. Abhängig von Faktoren, wie etwa dem Code, der Anzahl der Zellen, der Anzahl der Phasen und davon, welche Bits einer XOR-Operation unterzogen werden, und in welcher Phase sie der XOR-Operation unterzogen werden, ist es möglich, dass ein Bit oder mehrere Bits außerhalb des Speicherbereichs gegeben sein, die verändert werden können, ohne es zu verhindern, dass die Zellenanordnung 26 die richtigen geheimen Daten zurückgibt. In Verbindung mit einer großen Anzahl von Phasen und gut geschriebenem Code ist die diesbezügliche Gefahr bzw. Wahrscheinlichkeit jedoch sehr gering. Wenn derartige Bits existieren würden, wäre jedoch deren Anzahl so klein, dass sie für einen Angreifer, der angeblich nicht von deren Position bzw. Anordnung weiß, daraus kaum Nutzen ziehen könnte.

Die Zellen sind auf keine bestimmte Größe beschränkt. Allerdings sind sie mindestens so groß, dass sie einen bestimmten Code und einen der Speicherbereiche speichern bzw. Platz dafür bieten können. In einem Ausführungsbeispiel weisen alle Zellen die gleiche Größe auf, und alle Speicherbereiche weisen ebenfalls die gleiche Größe auf. Die Zellen können auch bestimmte andere Bits als den Code oder die Daten speichern, die nicht ausgeführt werden. Ein Zweck für diese Bits ist es, den Inhalt und die Funktionsweise der Zellen weiter zu verschleiern. Die Länge des in den Zellen gespeicherten Codes variiert abhängig von der jeweiligen Implementierung. Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist die Zellenanordnung 26 zum Beispiel ein Teil einer dynamischen Zinkbibliothek (DLL als englische Abkürzung von Dynamic Link Library). Bei einem Aufruf durch eine Aufruffunktion 22 speichert die Zellenanordnung 26 einfach geheime Daten in dem bzw. den Register(n) 24 oder ruft diese daraus ab und verläuft die verschiedenen Phasen, um die Daten zu verschlüsseln oder zu entschlüsseln. In anderen Ausführungsbeispielen kann die Zellenanordnung auch andere Funktionen erfüllen.

Die Speicherbereiche SR0 bis SR7 können jeweils verschiedene Größen aufweisen (z.B. ein Byte oder zwei Bytes pro Bereich). Die Speicherbereiche SR0 bis SR7 können an jeder beliebigen Position innerhalb der Zellen angeordnet sein. Zum Beispiel können die Speicherbereiche 8, 32 oder 64 Byte oder eine andere Anzahl von Bytes (z.B. so dass sie am Ende der Zellen platziert werden) von dem Anfang der Zellen beginnen.

In einem Ausführungsbeispiel werden geheime Daten aus dem bzw. den Register(n) 24 während der Speicher-/Abrufphase in der Zellenanordnung 26 gespeichert und aus dieser abgerufen: Wenn die Anzahl der Einheiten (z.B. Bytes) der geheimen Daten niedriger ist als die Anzahl der Speicherplätze, so weist nicht jeder Speicherplatz eine geheime Dateneinheit (z.B. ein Byte) oder Mutationen dessen in jeder Phase auf. Abhängig von dem Code, der Anzahl der Phasen und der Anzahl der Speicherplätze können bestimmte Speicherpositionen bzw.

Speicherplätze gegeben sein, die keine geheimen Daten oder eine Mutation dieser während einer der Phasen speichern.

Eine Aufruffunktion 22, die in dem Speicher 16 gespeichert ist, ruft die Zellenanordnung 26 auf. In einem Ausführungsbeispiel umfasst die Aufruffunktion 26 die folgenden Argumente, die nicht unbedingt diese Reihenfolge bzw. Anordnung aufweisen müssen: (1) geheime Daten, (2) einen Versatz, (3) Länge, (4) Speichern/Abrufen und (5) eine Phasenidentifikationsnummer (PIN) (die in die vorgesehene Speicher-/Abrufphase abgebildet werden kann). Die geheimen Daten stellen die Daten in dem bzw. den Register(n) 24 dar, die in der Zellenanordnung 26 gespeichert werden sollen. In einem Ausführungsbeispiel entspricht der Versatz dem Versatz in einer Ausgangszelle, welche die Speicherbereichsposition bezeichnet, an der die PIN gespeichert werden soll. Der Code in der Ausgangszelle kann den Speicherbereich bezeichnen, der einen ersten Abschnitt (Byte 0) der geheimen Daten speichert und so weiter. Die Länge entspricht der Länge der geheimen Daten und möglicherweise der PIN (z.B. die Gesamtanzahl der Bytes oder Wörter), die gespeichert oder abgerufen werden sollen. Das Speichern/Abrufen kann ein einzelnes Bit umfassen. Zum Beispiel kann eine logische 1 einen Speichervorgang bezeichnen, der es bewirkt, dass geheime Daten aus dem bzw. den Register(n) 24 während der Phase 0 in die Zellenanordnung 26 geschrieben werden, und eine logische 0 kann eine Abrufvorgang bezeichnen, der es bewirkt, dass in der Zellenanordnung 26 gespeicherte geheime Daten aus der Zellenanordnung 26 in das bzw. die Register 24 oder das bzw. die Register 28 geschrieben werden.

Die PIN bezeichnet die Speicher-/Abrufphase entweder direkt oder indirekt durch Abbildung. In einem Ausführungsbeispiel weist die Zellenanordnung 26 viele mögliche Speicher-/Abrufphasen auf. Die PIN kann zum Beispiel 8 Bits darstellen, was bis zu 256 Objekte bezeichnet. Wenn die Anzahl der Speicher-/Abrufphasen kleiner ist als die Anzahl der möglichen PIN-Kombinationen, so wird die PIN in der Speicher-/Abrufphase abgebildet (z.B. durch logische UND-Verknüpfung der Bits mit einer Zahl.). Das Verhältnis zwischen der PIN und der Speicher-/Abrufphase kann durch Abbildung verwürfelt werden, um die Funktionsweise der Zellenanordnung 26 weiter zu verschleiern. Ein Benutzer kann die PIN auswählen, oder sie kann zum Beispiel zufällig bzw. wahlfrei für den Benutzer ausgewählt werden. Der hierin beschriebene Begriff „zufällig" bzw. „wahlfrei" deckt ohne weitere Ausführungen echte Zufallszahlen und Pseudozufallszahlen ab.

Die Abbildung aus 3 zeigt ein veranschaulichendes Beispiel der Funktionsweise der Zellenanordnung 26. Hiermit wird ausdrücklich festgestellt, dass das Beispiel aus 3 jedoch nur der Veranschaulichung allgemeiner Informationen in Bezug auf die vorliegende Erfindung dient und nicht unbedingt vollständig mathematisch korrekt ist. Eine kommerzielle Implementierung der Erfindung kann viel mehr weitere Zellen und viel mehr weitere Phasen aufweisen, um es für einen Angreifer schwieriger zu gestalten, entweder die genauen geheimen Daten ausfindig zu machen oder einen Gruppenangriff auf den Mutationszyklus vorzunehmen. Die Zellenanordnung 26 kann verschiedene Paarbildungen aufweisen. Hinsichtlich dieser Hinweise erfolgt die folgende Beschreibung der Abbildung aus 3.

Die Zellenanordnung 26 weist einen ersten bzw. Ausgangszustand oder eine: erste bzw. Ausgangsphase auf, auch als die Phase 0 bezeichnet. Wenn sich die Zellenanordnung 26 nicht im Einsatz befindet, so ist die Phase 0 eine Ruhephase. Während sich die Zellenanordnung 26 in der Phase 0 befindet, weist nur die Zelle 0 Klartext auf. Das heißt, die Zelle 0 weist Code auf, der durch den Prozessor 14 ausgeführt wird. Die Zellen 1 bis 7 werden nicht in Phase 0 ausgeführt, wobei sie jedoch Inhalte aufweisen können, die wie Klartext erscheinen. (Der Klartext in Phase 0 kann sich auch in einer anderen Zelle als der Zelle 0 befinden.) In der Zelle 0 können sich bestimmte Bits (möglicherweise sinnfreie binäre Werte) an Speicherplätzen außerhalb des Speicherbereichs SR0 befinden, die nicht ausgeführt werden. Es ist wünschenswert, jedoch nicht erforderlich, dass ein so großer Teil der Zellenanordnung 26 wie möglich das Erscheinungsbild von Klartext aufweist, um die Funktionsweise der Zellenanordnung 26 zu verschleiern.

Die Aufruffunktion 22 ruft die Zellenanordnung 26 mit einer Speicheranforderung auf, um geheime Daten aus dem bzw. den Register(n) 24 in die Zellenanordnung 26 zu schreiben. Einige oder alle Argumente der Aufruffunktion 22 können in dem bzw. den Register(n) 24 gespeichert werden. Diese Argumente können in dem Speicher 16 bleiben, bis sie benötigt werden, oder sie können zu dem Zeitpunkt des Aufrufs bis sie benötigt werden in Registern oder in einem Stapel von Prozessoren 14 platziert werden. Die PIN lautet zum Beispiel „202". Durch ein Abbildungssystem wird die PIN „202" in die Phase Nummer 3 abgebildet.

Als Reaktion auf den Funktionsaufruf bewirkt der Code in der Zelle 0 XOR-Paarbildungen bestimmter in 3 aufgeführter Zellen, was bewirkt, dass die Zellenanordnung 26 von Phase 0 in Phase 1 mutiert. Die Speicherbereiche SR0 bis SR7 der Zellen werden XOR-Operationen mit anderen der Speicherbereiche SR0 bis SR7 gemäß den Paarbildungen der Zellen unterzogen.

Gemäß der Aufstellung aus 3 erfolgt zum Beispiel eine XOR-Operation der Zelle 0 mit Zelle 4. Somit wird SR0 einer XOR-Operation mit SR4 unterzogen, da sich SR0 innerhalb der Zelle 0 und SR4 innerhalb der Zelle 4 befindet. Gemäß einem Ausführungsbeispiel wird das Bit 0 von SR0 einer XOR-Operation mit Bit 0 aus SR4 unterzogen, wobei Bit 1 aus SR0 einer XOR-Operation mit Bit 1 aus SR4 unterzogen wird und so weiter. (Jedoch kann eine andere Anordnung von XOR-Operations-Bits eingesetzt werden.) In einem Ausführungsbeispiel werden für die Speicherbereiche nur XOR-Operationen mit anderen Speicherbereichen ausgeführt. Am Ende der Mutation befindet sich die Zellenanordnung 26 in der Phase 1, und nur die Zelle 5 befindet sich im Klartext.

Der Code in der Zelle 5 bewirkt XOR-Paarbildungen bestimmter in der Abbildung aus 3 aufgeführter Zellen, was bewirkt, dass die Zellenanordnung aus Phase 1 in Phase 2 mutiert. Am Ende der Mutation befinden sich nur die Zellen 2 und 7 im Klartext, was bedeutet, dass abhängig von einer bestimmten Bedingung oder einem bestimmten Umstand entweder die Zelle 2 oder die Zelle 7 ausgeführt werden kann. Aus zwei Gründen kann es mehr als eine Zelle im Klartext befinden. Erstens kann mehr als eine Zelle im Klartext einem Angreifer das Vorhaben schwieriger gestalten. Zweitens kann eine Verzweigung vorgesehen sein, so dass abhängig von einem bestimmten Wert mehr als eine Zelle möglich sind.

Der Code in der Zelle 2 oder in der Zelle 7 bewirkt eine Mutation der Zellenanordnung 26 aus Phase 2 in Phase 3. Am Ende der Mutation befindet sich nur die Zelle 6 im Klartext. Wie dies bereits festgestellt worden ist, weist die PIN in Kombination mit dem Code in der Zellenanordnung 26 den Prozessor 14 anweist, geheime Daten des bzw. der Register 24 in bestimmte Bereiche der Speicherbereiche SR0 bis SR07 zu schreiben. In dem Beispiel entspricht der Versatz 36 Bytes, und die Länge ist gleich 4 Bytes. Gemäß einem Ausführungsbeispiel wird die PIN in Speicherbereichen gemeinsam mit Bytes geheimer Daten gespeichert, und die PIN ist das erste der 4 Bytes. Somit existieren drei verbleibende Bytes geheimer Daten. In Bezug auf die Abbildung aus 4A kann bzw. können das bzw. die Register 24 die Argumente für die Aufruffunktion aufweisen (wobei jedoch auch eine andere Speicheranordnung ausgewählt werden kann). In der Abbildung aus 4A entspricht die PIN einem Byte, und die Bytes B0, B1 und B2 sind 3 Bytes geheimer Daten.

Die Abbildung aus 4B veranschaulicht den Inhalt der Zellenanordnung 26 in Phase 3 nach dem die Aufruffunktion die PIN und die geheimen Datenbytes B0, B1 und B2 in die Speicherbereiche SA0, SR1, SR4 und SR5 der Zellenanordnung 26 schreibt. In einem Ausführungsbeispiel werden ein Teil der PIN und das Byte B0 in den ersten Bereich der Zellenanordnung 26 (d.h. die Zellen 0 bis 3) geschrieben, und die Bytes B1 und B2 werden in den zweiten Bereich der Zellenanordnung 26 (d.h. die Zellen 4 bis 7) geschrieben, wie dies in der Abbildung aus 4B dargestellt ist. Ferner sind die Zellenpaarungen so gegeben, dass die PIN und die Bytes der geheimen Daten während dem ersten Übergang in die nächste Phase mutiert werden, wie in dem Beispiel aus den Abbildungen der 3B und 4B.

Als Reaktion auf die XOR-Operationen des in 3 aufgeführten Paars, mutiert die Zellenanordnung 26 von Phase 3 in Phase 4. In ähnlicher Weise mutiert die Zellenanordnung 26 von Phase 4 in Phase 5 und von Phase 5 zurück in Phase 0, bei der es sich um die Ruhephase handelt. In ähnlicher Weise mutieren die PIN und die geheimen Datentbytes B1, B2 und B3 von Phase 3 zu Phase 4 und ferner von Phase 4 zu Phase 5 und weiter von Phase 5 zu Phase 0. Die Zellenanordnung 26 verbleibt in ihrer Ruhephase (Phase 0), bis sie wieder aufgerufen wird. Die Mutationen verschlüsseln die PIN und geheime Daten. (Wenn die PIN und die geheimen Daten bereits in verschlüsselter Form in dem bzw. den Register(n) 24 vorhanden sind, werden sie durch die Mutationen weiter verschlüsselt.) Die Aufruffunktion 22 ruft die Zellenanordnung 26 auf, um die geheimen Daten abzurufen. Zum Entschlüsseln der PIN und der geheimen Daten mutiert die Zellenanordnung 26 von Phase 0 in Phase 1, von Phase 1 in Phase 2 und von Phase 2 in Phase 3. In jeder Phase werden die Speicherbereiche mit anderen Speicherbereichen gemäß den in 3 aufgeführten Paarungen mutiert. In Phase 3 weisen die Speicherbereiche SR0, SR1, SR4 und SR5 die ursprüngliche IN und geheimen Datenbytes B1, B2 bzw. B3 auf. Die Aufruffunktion 22 stellt die PIN aus dem bzw. den Register(n) 24 oder anderweitig bereit, während sich die Zellenanordnung 26 in Phase 0 oder einer Phase mit verhältnismäßig niedriger Nummer befindet. In einem Ausführungsbeispiel wird die PIN durch den Code der Zellenanordnung 26 beginnend in Zelle 0 von Phase 0 verwendet. Die durch die Aufruffunktion 22 präsentierte PIN wird in Phase 3 mit der PIN in SR0 verglichen. Wenn eine Übereinstimmung gegeben ist, werden die Inhalte aus SR1, SR4 und SR5 in ein externes Register (z.B. das bzw. die Register 24 oder das bzw. die Register 28) geschrieben. Wenn keine Übereinstimmung gegeben ist, lässt die Zellenanordnung 26 das Lesen der Inhalte SR1, SR4 und SR5 nicht zu. Ferner wechselt die Zellenanordnung 26 in einem Ausführungsbeispiel in einen Selbstzerstörungsmodus, da angenommen wird, dass jemand versucht bzw. versucht hat, die Zellenanordnung 26 zu missbrauchen. Der Selbstzerstörungsmodus kann das Verändern bestimmter Bits umfassen, die es bewirken, dass der Code und/oder die geheimen Daten korrumpiert oder nicht mehr ausführbar werden. Die Zellenanordnung 26 kann zwei Gelegenheiten zulassen, um die richtige PIN zu erhalten, bevor die Selbstzerstörung vorgenommen wird. Die Selbstzerstörung ist eine Form des Schutzes vor Missbrauch.

An Stelle des Abrufens von Daten kann die Aufruffunktion 22 die Zellenanordnung 26 aufrufen, neue geheime Daten in die Zellenanordnung 26 zu schreiben. Während dem Speichervorgang in den Speicherbereichen können die Bits, die nicht mit der PIN oder geheimen Daten überschrieben werden, in dem jeweiligen logischen Zustand verbleiben bzw. belassen werden, in dem sie sich befunden haben. Alternativ können zum Beispiel Zufallszahlen oder ausschließlich Nullen oder Einsen an diese Plätze der Speicherbereiche geschrieben werden.

Verschiedene Versionen der Zellenanordnung 26 können erzeugt werden, wobei verschiedene mögliche Phasen gegeben sind, aus denen die PIN ausgewählt werden kann. Die verschiedenen Versionen können auch andere Unterschiede aufweisen, einschließlich unterschiedlicher Anzahlen von Phasen und Zellen, unterschiedlicher Größen von Zellen und Speicherbereichen, einer anderen Anordnung vom Durchleiten von Argumenten und sonstiger Merkmale. Ein Anbieter der erfindungsgemäßen Software kann verschiedene Versionen an unterschiedliche Kunden verkaufen. Ein OEM (englische Abkürzung von Original Equipment Manufacturer) kann verschiedene Versionen erhalten und verschiedene Versionen auf verschiedenen Vorrichtungen installieren. Das Vorhandensein verschiedener Versionen macht es zusätzlich schwieriger, die Operationen der Zellenanordnung 26 zu ermitteln.

Die Zellenanordnung 26 kann so gestaltet werden, dass sie ein Fehler nicht behebendes Selbstzerstörungsmerkmal aufweist, das aktiviert wird, wenn die Zellenanordnung 26 feststellt, dass bestimmte Flaggen bzw. Flags in dem Prozessor 14 gesetzt worden sind. Zum Beispiel weisen Pentium® Prozessoren der Intel Corporation Flaggen auf, die gesetzt werden, wenn ein Fehlersuchprogramm bzw. Debugger versucht, Unterbrechungspunkte einen Einzelschritt durch das Programm festzulegen. Der Code der Zellenanordnung 26 kann Merkmale aufweisen, welche die Zellenanordnung 26 in den Selbstzerstörungsmodus versetzen, wenn detektiert wird, dass sich bestimmte Bits verändern, wobei aber auch eine reine natürliche Zerstörung durch XOR-Operationen mit dem falschen Code erfolgen kann. Die gegen Missbräuche sichere Beschaffenheit der Zellenanordnung 26 macht sie auch widerstandsfähig gegen die Fehlersuche, Protokollieren oder statische Analyse.

Eine Technik zur Bestimmung des Inhalts der Zellenanordnung 26 in Phase 0 lautet wie folgt. Eine Matrix P weist alle Klartextzellen auf, die in jeder Phase eingesetzt werden. So genannte Don't Care-Abschnitte, wie etwa Speicherbereiche weisen Zufallszahlen oder alle 1er oder 0er auf. Die Matrix P ist eine N × 1 Matrix, wobei N die Anzahl der Zellen mit Klartext entspricht. Es kann nützlich sein, dass N ein Vielfaches von zwei ist. Zusätzliche Zellen von Zufallszahlen oder ausschließlich 0er oder 1er können hinzugefügt werden, um N auf ein Vielfaches von zwei zu bringen. Eine Matrix M ist eine Matrix der Partnerbildung, die Informationen über die zeitliche (Phase) und räumliche (Zellen) Platzierung aufweist. Eine Matrix I ist die erste Phase bzw. Ausgangsphase (Phase 0) der Zellenanordnung 26. Hiermit wird festgestellt, dass P = M I, wobei * für eine Matrixmultiplikation steht. Somit gilt I = M–1 * P. M kann zum Beispiel durch Pivots und Eliminationen der allgemein bekannten Gauss-Jordon-Technik invertiert werden.

In Bezug auf die Abbildung aus 5 kann die vorliegende Erfindung in Verbindung mit einem DVD-Player 60 auf Softwarebasis eingesetzt werden, der ein Plattenlaufwerk 64 aufweist, um geheime Daten (wie zum Beispiel die Werte von Verschlüsselungsschlüsseln) in Verbindung mit einem Prozessor 14 und Speicher 16 und visuellen und Audio-Vorrichtungen 68 vorübergehend zu speichern. Die PIN kann wahlfrei bzw. auf Zufallsbasis mit jedem Speichervorgang geheimer Daten in der Zellenanordnung 26 ausgewählt werden. Dies macht es schwieriger, die bei der DVD-Decodierung enthaltenen geheimen Daten zu ermitteln.

In Bezug auf die Abbildung aus 6 kann die vorliegende Erfindung in Verbindung mit einem elektronischen Handelssystem 80 eingesetzt werden, das eine Eingabevorrichtung 84 wie etwa eine Tastatur und einen Prozessor 14 und einen Speicher 16 aufweist, um Passwörter oder andere geheime Daten entweder temporär, mittelfristig oder dauerhaft zu speichern. Bei bestimmten Implementierungen gehen die Inhalte der Zellenanordnung 26 verloren, wenn der beherrschende Prozess unterbrochen wird. Bei anderen Implementierungen wird die Zellenanordnung 26 auf einem Plattenspeicher gespeichert. Eine langfristige Speicherung, im Besonderen auf einem Plattenspeicher, kann die Zellenanordnung 26 für einen Angriff verwundbarer machen. Das Passwort oder die sonstigen geheimen Daten können auf Leitern 88 zur Verfügung gestellt bzw. bereitgestellt werden. Die gleichen geheimen Daten können mehrfach aus der Zellenanordnung 26 abgerufen werden. Die PIN kann durch den Benutzer oder durch ein anderes Mittel (z.B. zufällig bzw. wahlfrei) ausgewählt werden.

In Bezug auf die Abbildungen der 7A und 7B kann die Zellenanordnung 26 oder Code, der die Zellenanordnung 26 erzeugt, und oder die Aufruffunktion 22, in computerlesbarer Form gespeichert werden. Zum Beispiel veranschaulicht die Abbildung aus 7A eine Disk 90, die eine CD ROM (englische Abkürzung von Compact Disk Read Only Memory), eine, DVD, ein Festplattenlaufwerk (wie etwa in einem PC oder einem Server) oder einen anderen Plattenspeicher darstellen kann. Eine CD ROM oder ein anderer Plattenspeicher kann zu verschiedenen Händlern oder Endkäufern verschickt oder transportiert werden. Verschiedene CD ROMs können verschiedene Versionen der Zellenanordnung 26 oder Programme aufweisen, welche die Zellenanordnung 26 bilden.

In Bezug auf die Abbildung aus 7B weist ein Computersystem 92 ein Diskettenlaufwerk 94, einen Prozessor 14, einen Speicher 16 und ein Modem 98 auf. Das Computersystem 92 kann ein System darstellen, das die Zellenanordnung 26 oder Code, der die Zellenanordnung 26 bildet, von dem Modem 98 zu einem anderen Computer überträgt. Zum Beispiel fungiert das Computersystem 92 als Server, der den Code zum Beispiel über das Internet bzw. World Wide Web oder über E-Mail überträgt. Die Zellenanordnung 26 oder der Code, der die Zellenanordnung 26 erzeugt, kann sich in dem RAM des Speichers 16 befinden, von wo aus er an einen entfernten Standort bereitgestellt wird. Verschiedene Versionen bzw. Ausführungen der Zellenanordnung 26 können zu unterschiedlichen Zeitpunkten bereitgestellt werden. Alternativ kann das Computersystem 92 einen Computer darstellen, der Disks 90 über das Plattenlaufwerk 94 abspielt, so dass die geheimen Daten in der Zellenanordnung 26 gespeichert werden. Das Computersystem 92 kann auch einen Computer darstellen, der eine Zellenanordnung ausführt oder eine Zellenanordnung aus Code empfängt, der von einer entfernten Quelle über Modem 98 empfangen worden ist.

Die vorliegende Erfindung ist nicht auf die vorstehend genannten Ausführungsbeispiele beschränkt, wobei sie vielmehr in einer Vielzahl von Ausführungen implementiert werden kann, die für den Fachmach auf dem Gebiet verständlich sind, der von der vorliegenden Offenbarung profitiert. Zusätzlich zu den bereits vorstehend im Text beschriebenen Variationen können zum Beispiel die folgenden Merkmale in verschiedene Ausführungsbeispiele integriert werden.

Zwar ist der Code in dem vorstehend beschriebenen Ausführungsbeispiel zwar innerhalb der Zellenanordnung unabhängig, wobei es sich in einem alternativen Ausführungsbeispiel jedoch um einen Code handeln kann, der bei der Ausführung der Zellenanordnung eingesetzt wird, die ohne Mutation bleibt sowie außerhalb der Zellenanordnung. Einige der Zellen können verschiedene Größen aufweisen, wobei einige der Speicherbereiche ebenfalls unterschiedliche Größen aufweisen können, und wobei nicht alle Zellen oder alle Teile der Zellen in jeder Phase einer XOR-Operation unterzogen werden müssen, wobei dabei jedoch die Schwankungen die Komplexität des Codes in gewisser Weise erhöhen könnten. Es ist nicht erforderlich, dass das Speichern und Abrufen der geheimen Daten in der gleichen Phase erfolgen. Ferner können geheime Daten über mehrere Phasen gespeichert und abgerufen werden. Zum Beispiel kann in jeder Phase der Mehrzahl von Phasen ein Byte der geheimen Daten gespeichert werden. Zum Beispiel kann in jeder Phase einer Mehrzahl von Phasen ein Byte der geheimen Daten abgerufen werden.

Die Ergebnisse der XOR-Operationen können durch die XOR-Operationen weiter verschleiert und verschlüsselt werden, wie zum Beispiel 32-Bit-Abschnitte der Ergebnisse mit zyklischen Konstanten.

Die Speicher-/Abrufphase entspricht vorzugsweise mehreren Phasen ab Phase 0 (an beiden Enden des Mutationszyklus).

Zwar werden in dem vorstehend veranschaulichten Ausführungsbeispiel Zellen aus einem ersten Abschnitt (Zellen 0 bis 3) der Zellenanordnung 26 nur mit Zellen aus einem zweiten Abschnitt (Zellen 4 bis 7) der Zellenanordnung einer XOR-Operation unterzogen, wobei in verschiedenen Ausführungsbeispielen jede der Zellen mit jeder anderen Zelle einer XOR-Operation ausgesetzt werden kann.

Ein Vorteil der vorliegenden Erfindung gegenüber anderen Techniken ist die Geschwindigkeit, mit der geheime Daten gespeichert und abgerufen werden können. Ein weiterer Vorteil ist die missbrauchsichere Beschaffenheit der Zellenanordnung, in welcher die geheimen Daten verschlüsselt und entschlüsselt werden. Die Erfindung ist in vielen Ausführungsbeispielen leicht, da in zahlreichen Ausführungsbeispielen verhältnismäßig wenig Speicherkapazität benötigt wird.

Aufgrund der Beschaffenheit der XOR-Operationen kann die Anzahl der Phasen insgesamt ein Vielfaches von sechs darstellen. Die Anzahl der Zellen in einem kommerziellen Ausführungsbeispiel kann im dreistelligen oder vierstelligen Bereich liegen. Mit anderen Worten gibt es keine angemessene Grenze in Bezug auf die Anzahl der Bits in den geheimen Daten.

Ein Mittelpunkt des Verschlüsselungs-/Entschlüsselungs-Mutationszyklus tritt nicht unbedingt in der Ruhephase ein (Phase 0).

Nicht erforderlich sind er Einsatz einer PIN, Länge, eines Versatzes und des Speicherns/Abrufens in der Aufruffunktion. Diese Parameter können in die Zellenanordnung integriert und/oder teilweise unter Verwendung verschiedener Aufruffunktionen erreicht werden. Die Aufruffunktion kann zusätzliche Argumente aufweisen, die hierin nicht beschrieben sind. Der Speicherprozess kann durch eine andere Funktion aufgerufen werden als der Abrufprozess. Die Zellenanordnung muss nicht durch eine Funktion aufgerufen werden.

Der Begriff „als Reaktion" und verwandte Begriffe bedeuten, dass ein Signal oder ein Ereignis in gewisser Weise durch ein anderes Signal oder Ereignis beeinflusst wird, jedoch nicht unbedingt vollständig oder unmittelbar.

Die folgenden Ansprüche definieren den Umfang der vorliegenden Erfindung.


Anspruch[de]
  1. Verfahren zum Speichern und Abrufen von Daten, wobei das Verfahren folgendes umfasst:

    das Ausführen von Mutationen einer Zellenanordnung (26) in einem Mutationszyklus, bis eine Speicherphase erreicht wird;

    das Speichern der Daten in Speicherbereichen (SR0–SR7) der Zellenanordnung (26) in der Speicherphase, indem eine Phasenidentifikationsnummer (PIN) an die Zellenanordnung (26) bereitgestellt wird, und wobei die PIN verwendet wird, um die Speicherphase zu bestimmen, wobei mehr als eine Speicherphase möglich sind;

    das Mutieren der Zellenanordnung (26) durch zusätzliche Phasen, in denen die in der Zellenanordnung (26) während der Speicherphase gespeicherten Daten durch Mutationen durch die zusätzlichen Phasen verschlüsselt werden; und

    das Fortführen der Mutationen als Folge auf eine Abrufanforderung, bis eine Abrufphase erreicht wird und die Daten entschlüsselt werden.
  2. Verfahren nach Anspruch 1, wobei der Mutationszyklus eine Ruhephase aufweist, in welcher die Daten verschlüsselt sind.
  3. Verfahren nach Anspruch 1, wobei die Speicherphase und die Abrufphase die gleiche Phase des Mutationszyklus darstellen.
  4. Verfahren nach Anspruch 1, wobei es sich bei der Zellenanordnung (26) um eine gegen Missbräuche sichere binäre Struktur handelt.
  5. Verfahren nach Anspruch 1, wobei die Mutation durch XOR-Operationen der Zellen innerhalb der Zellenanordnung (26) auftritt.
  6. Verfahren nach Anspruch 1, wobei es sich bei der PIN, die während der Speicherphase in der Zellenanordnung (26) gespeichert wird, um eine erste PIN handelt, und wobei eine zweite PIN als Teil einer Abrufanforderung empfangen wird, und wobei die ersten und zweiten PINs während einer Abrufphase verglichen werden.
  7. Verfahren nach Anspruch 6, wobei bei einer Übereinstimmung der ersten und zweiten PINs die Zellenanordnung (26) den Abruf der Daten ermöglicht.
  8. Verfahren nach Anspruch 6, wobei bei einer fehlenden Übereinstimmung der ersten und zweiten PINs ein Abruf der Daten durch die Zellenanordnung (26) nicht zugelassen wird.
  9. Verfahren nach Anspruch 1, wobei bei einer fehlenden Übereinstimmung der ersten und zweiten PINs ein Abruf der Daten durch die Zellenanordnung (26) nicht zugelassen wird, und wobei die Zellenanordnung (26) in einen Selbstzerstörungsmodus eintritt.
  10. Verfahren nach Anspruch 1, wobei zusätzliche Speicherphasen vorhanden sind, und wobei zusätzliche Daten in den zusätzlichen Speicherphasen gespeichert werden.
  11. Computerlesbares Medium mit darauf enthaltenen Anweisungen, die bei einer Ausführung bewirken, dass ein Computersystem (10) Handlungen ausführt, folgendes umfassend:

    das Bereitstellen einer Phasenidentifikationsnummer (PIN) an eine Zellenanordnung (26);

    das Ausführen von Mutationen der Zellenanordnung (26) in einem Mutationszyklus, bis eine Speicherphase erreicht wird, wobei die Zellenanordnung (26) die PIN verwendet, um die Speicherphase zu bestimmen, in der die Daten gespeichert werden, wobei mehr als eine Speicherphase möglich sind;

    das Speichern der Daten in einem Speicherbereich (SRi) der Zellenanordnung (26) in der Speicherphase;

    das Mutieren von Daten in einem Speicherbereich (SRi) der Zellenanordnung (26) in der Speicherphase;

    das Mutieren der Zellenanordnung (26) über zusätzliche Phasen, in denen Daten, die während der Speicherphase in der Zellenanordnung (26) gespeichert werden, durch Mutationen über die zusätzlichen Phasen verschlüsselt werden; und

    das Fortführen der Mutationen als Reaktion auf eine Abrufanforderung, bis eine Abrufphase erreicht wird und die Daten entschlüsselt werden.
  12. Medium nach Anspruch 11, wobei die Speicherphase und die Abrufphase die gleiche Phase des Mutationszyklus darstellen.
  13. Medium nach Anspruch 11, wobei der PIN während der Speicherphase in der Zellenanordnung (26) gespeichert wird und es sich um einen ersten PIN handelt, und wobei ein zweiter PIN als Teil einer Abrufanforderung empfangen wird, und wobei die ersten und zweiten PINs während einer Abrufphase verglichen werden.
  14. Medium nach Anspruch 1, wobei es sich bei dem Medium um eine CD-ROM (90) handelt.
  15. System zum Speichern und Abrufen von Daten, wobei das System folgendes umfasst:

    einen Speicher (16), der eine Zellenanordnung (26) mit Speicherbereichen (SR0–SR7) aufweist;

    einen Prozessor (14), der Mutationen der Zellenanordnung (26) in einem Mutationszyklus ausführen kann, bis eine Speicherphase erreicht wird, wobei er Daten in mehreren Speicherbereichen (SR0–SR7) der Zellenanordnung (26) während der Speicherphase speichert, wobei eine Phasenidentifikationsnummer (PIN) dazu verwendet wird, die Speicherphase zu bestimmen, in der die Daten gespeichert werden, wobei mehr Phasen als eine Speicherphase möglich sind, und wobei er die Zellenanordnung (26) in zusätzliche Phasen mutiert, wobei die Daten, die in der Speicherphase in der Zellenanordnung (26) gespeichert werden, durch die Mutation in den zusätzlichen Phasen verschlüsselt werden.
  16. System nach Anspruch 15, wobei der Speicher (16) und der Prozessor (14) in einem DVD-Player enthalten sind.
  17. System nach Anspruch 15, wobei der Speicher (16) und der Prozessor (14) in einem Personalcomputer enthalten sind.
  18. System nach Anspruch 15, wobei der Prozessor ferner die Daten bestimmt, die in einer ersten Phase in der Zellenanordnung (26) gespeichert werden, durch:

    (i) das Erzeugen einer Matrix P von in einem Mutationszyklus zu verwendenden Klartextzellen in dem Speicher, wobei die Matrix P Don't Care-Abschnitte zur Verwendung als Speicherbereiche aufweist;

    (ii) das Empfangen zu verschlüsselnder und in den Don't Care-Abschnitten zu verarbeitender Daten;

    (iii) das Erzeugen einer Matrix M der Partnerbildung in dem Speicher, wobei die Matrix Informationen über die Phase und Zellenplatzierung aufweist;

    (iv) das Invertieren der Matrix M, so dass eine invertierte Matrix M–1 erzeugt wird; und

    (v) das Bestimmen einer anfänglichen Phase I der Zellenanordnung durch eine Matrixmultiplikation I = M–1 * P.
  19. System nach Anspruch 18, wobei zumindest ein Teil der Don't Care-Abschnitte der Matrix P einen gleichen Versatz von den Anfängen der Klartextzellen aufweist.
  20. Computerprogramm mit einer Computerprogrammcodeeinrichtung, die alle Operationen aus Anspruch 1 ausführen kann, wenn das Programm auf einem Computer ausgeführt wird.
Es folgen 6 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com