DE69833947T2 - Speicherzellenanordnung zur erzeugung einer geheimen nicht dauerhaften speicherung - Google Patents

Speicherzellenanordnung zur erzeugung einer geheimen nicht dauerhaften speicherung Download PDF

Info

Publication number
DE69833947T2
DE69833947T2 DE69833947T DE69833947T DE69833947T2 DE 69833947 T2 DE69833947 T2 DE 69833947T2 DE 69833947 T DE69833947 T DE 69833947T DE 69833947 T DE69833947 T DE 69833947T DE 69833947 T2 DE69833947 T2 DE 69833947T2
Authority
DE
Germany
Prior art keywords
phase
cell
data
pin
memory
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 - Fee Related
Application number
DE69833947T
Other languages
English (en)
Other versions
DE69833947D1 (de
Inventor
L. Richard Forest Grove MALISZEWSKI
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE69833947D1 publication Critical patent/DE69833947D1/de
Application granted granted Critical
Publication of DE69833947T2 publication Critical patent/DE69833947T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • 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.

Claims (20)

  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.
DE69833947T 1997-08-06 1998-07-09 Speicherzellenanordnung zur erzeugung einer geheimen nicht dauerhaften speicherung Expired - Fee Related DE69833947T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US906693 1997-08-06
US08/906,693 US6049609A (en) 1997-08-06 1997-08-06 Cell array providing non-persistent secret storage through a mutation cycle
PCT/US1998/014713 WO1999008416A1 (en) 1997-08-06 1998-07-09 Cell array providing non-persistent secret storage through a mutation cycle

Publications (2)

Publication Number Publication Date
DE69833947D1 DE69833947D1 (de) 2006-05-11
DE69833947T2 true DE69833947T2 (de) 2006-09-07

Family

ID=25422824

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69833947T Expired - Fee Related DE69833947T2 (de) 1997-08-06 1998-07-09 Speicherzellenanordnung zur erzeugung einer geheimen nicht dauerhaften speicherung

Country Status (6)

Country Link
US (1) US6049609A (de)
EP (1) EP1000482B1 (de)
AU (1) AU8658598A (de)
DE (1) DE69833947T2 (de)
TW (1) TW405073B (de)
WO (1) WO1999008416A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175925B1 (en) * 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6205550B1 (en) 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US7000119B1 (en) 2000-04-20 2006-02-14 Realnetworks, Inc. Instruction/data protection employing derived obscuring instruction/data
US6757699B2 (en) 2000-10-06 2004-06-29 Franciscan University Of Steubenville Method and system for fragmenting and reconstituting data

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4120030A (en) * 1977-03-11 1978-10-10 Kearney & Trecker Corporation Computer software security system
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
US4319079A (en) * 1979-09-13 1982-03-09 Best Robert M Crypto microprocessor using block cipher
US4306289A (en) * 1980-02-04 1981-12-15 Western Electric Company, Inc. Digital computer having code conversion apparatus for an encrypted program
US4926480A (en) * 1983-08-22 1990-05-15 David Chaum Card-computer moderated systems
US4847902A (en) * 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
US5224160A (en) * 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
EP0281058B1 (de) * 1987-03-04 1993-02-03 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenaustauschsystem
US5347579A (en) * 1989-07-05 1994-09-13 Blandford Robert R Personal computer diary
US5265164A (en) * 1991-10-31 1993-11-23 International Business Machines Corporation Cryptographic facility environment backup/restore and replication in a public key cryptosystem
US5469507A (en) * 1994-03-01 1995-11-21 International Business Machines Corporation Secure communication and computation in an insecure environment
US5535276A (en) * 1994-11-09 1996-07-09 Bell Atlantic Network Services, Inc. Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography
WO1997004394A1 (en) * 1995-07-14 1997-02-06 Christopher Nathan Drake Computer software authentication, protection, and security system
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US5696822A (en) * 1995-09-28 1997-12-09 Symantec Corporation Polymorphic virus detection module
US5892899A (en) * 1996-06-13 1999-04-06 Intel Corporation Tamper resistant methods and apparatus

Also Published As

Publication number Publication date
TW405073B (en) 2000-09-11
US6049609A (en) 2000-04-11
WO1999008416A8 (en) 1999-06-17
DE69833947D1 (de) 2006-05-11
EP1000482B1 (de) 2006-03-22
AU8658598A (en) 1999-03-01
WO1999008416A1 (en) 1999-02-18
EP1000482A1 (de) 2000-05-17
EP1000482A4 (de) 2001-11-14

Similar Documents

Publication Publication Date Title
DE19782169C2 (de) Kryptographisch geschütztes Seitenwechsel-Subsystem
DE69735103T2 (de) Manipulationssicheres Verfahren und Vorrichtung
DE2810168A1 (de) Verfahren zum sichern eines computerprogramms gegenueber entnahme bzw. wiedergabe durch einen benutzer sowie vorrichtung zur durchfuehrung des verfahrens
DE102009041176B9 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
DE69634880T2 (de) Verfahren und gerät zum kontrollierten zugriff zu verschlüsselten datenakten in einem computersystem
DE60001927T2 (de) Verfahren und vorrichtung zum schutz von konfigurationsdateneigentum für programmierbare logische vorrichtungen
DE60123672T2 (de) Computersystemschutz
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE60128290T2 (de) Vorrichtung zur Dateienverwaltung
DE60314782T2 (de) Vorrichtung zum Generieren eines verschlüsselten Programms
DE60127310T2 (de) Vorrichtung zum schutz digitaler daten
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
WO2017129184A1 (de) Verfahren zur mehrschichtig geschützten sicherung von daten insbesondere anmeldedaten und passwörtern
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
WO2004097734A2 (de) Verfahren zur verarbeitung von daten
DE10393807T5 (de) Verfahren zum Schutz von Software von Debugger-Angriffen
EP0965076A1 (de) Elektronische datenverarbeitungseinrichtung und -system
DE60116195T2 (de) Vorrichtung und Verfahren zur Verschleierung von Eingangsparametern
DE69833947T2 (de) Speicherzellenanordnung zur erzeugung einer geheimen nicht dauerhaften speicherung
EP0280035B1 (de) Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme
EP1439446A1 (de) Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion
DE102008010792B4 (de) Verfahren für den unmanipulierbaren und abhörsicheren Datei- und Ordnerzugriff
EP3798873B1 (de) Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
US20050080827A1 (en) Data security through dissembly of data elements or connections between elements
DE10056792A1 (de) Verschlüsselungs-/Entschlüsselungsspeicher und Verfahren zum Speichern und Auslesen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806

8339 Ceased/non-payment of the annual fee