DE60305781T2 - Verschlüsselung des Inhalts eines ausserhalb eines Prozessors angeordneten Speichers - Google Patents

Verschlüsselung des Inhalts eines ausserhalb eines Prozessors angeordneten Speichers Download PDF

Info

Publication number
DE60305781T2
DE60305781T2 DE60305781T DE60305781T DE60305781T2 DE 60305781 T2 DE60305781 T2 DE 60305781T2 DE 60305781 T DE60305781 T DE 60305781T DE 60305781 T DE60305781 T DE 60305781T DE 60305781 T2 DE60305781 T2 DE 60305781T2
Authority
DE
Germany
Prior art keywords
block
memory
key
encryption
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60305781T
Other languages
English (en)
Other versions
DE60305781D1 (de
Inventor
Stephen Courcambeck
Claude Anguille
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Application granted granted Critical
Publication of DE60305781D1 publication Critical patent/DE60305781D1/de
Publication of DE60305781T2 publication Critical patent/DE60305781T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf ein Chiffrieren oder Verschlüsseln von Daten, Programmen oder allgemeiner von Binärcodes zur Speicherung in einem oder mehreren Speichern, die außerhalb eines integrierten Prozessors liegen, der für die Auswertung dieser Codes zuständig ist.
  • Ein Anwendungsbeispiel der vorliegenden Erfindung ist die Verschlüsselung von Ziel-Programmen („target programs"), die von einer Vorrichtung (Computer, Video- oder Audiodatenleser, einer mit einem Mikroprozessor zur Ausführung eines herunterladbaren Programms versehenen Vorrichtung, etc.) heruntergeladen werden, in der diese Programme zu speichern sind. Für den Download kann beispielsweise das Internet verwendet werden. Genauer gesagt bezieht sich die vorliegende Erfindung auf die Programme oder Daten, bei denen ein verwertbarer Zugriff durch einen nichtautorisierten Benutzer verhindert werden soll.
  • Im folgenden wird Bezug auf „Daten" genommen, um irgendeine Form von Binärcode zu bezeichnen, egal ob es sich um Routinen oder durch diese Routinen verarbeitete Daten handelt.
  • 1 zeigt teilweise und sehr schematisch die Struktur eines Systems mit einem Mikroprozessor und einem externen Speicher, auf das die vorliegende Erfindung zutrifft. Es ist ein sogenannter sicherer Bereich 1 definiert, innerhalb dessen eine CPU angeordnet ist, die über einen oder mehrere Busse 3 mit einem Speicher 4 (EXT MEM) in Verbindung steht, der außerhalb des sicheren Bereichs 1 liegt. Der Bereich 1 wird beispielsweise durch den integrierten Mikroprozessor oder genauer gesagt durch einen oder mehrere datenverarbeitende integrierte Schaltkreise gebildet, die einen sicheren Bereich definieren, innerhalb dessen aller Wahrscheinlichkeit nach keine Raubkopien der verarbeiteten Daten angefertigt werden können. In der Praxis ist dieser sichere Bereich 1 meistens aus einem einzigen integrierten Schaltungschip gebildet, und der externe Speicher 4 ist ein anderer Chip.
  • Die Verschlüsselung, auf die diese Erfindung zutrifft, gilt für jegliche Art von Daten, die auf dem Bus bzw. den Bussen 3 zwischen dem Speicher 4 und der CPU 2 oder allgemeiner gesagt dem Bereich 1 übertragen werden. Diese Verschlüsselung besteht darin, die gespeicherten Daten mittels eines Schlüssels, der dem integrierten Prozessor bekannt ist, zu codieren. Im allgemeinen wird dieser Verschlüsselungsschlüssel dem Prozessor durch einen asymmetrischen Verschlüsselungsvorgang von dem entfernten System, welches das Programm bereitstellt, übermittelt, so daß der Prozessor diesen in einem geschützten internen Bereich spei chert und sowohl zum Entschlüsseln des heruntergeladenen Programms als auch zum Verschlüsseln der Daten in dem externen Speicher verwendet.
  • Ein Beispiel einer Lösung zum Verschlüsseln eines Speichers, der außerhalb eines auf einem einzigen Chip integrierten Mikroprozessors liegt, ist in dem US-Patent US-A-5,825,878 beschrieben. Die in diesem Dokument vorgeschlagene Lösung besteht darin, die Direktzugriffsspeichersteuerung mit dem Mikroprozessorkern sowie einem internen Speicher und einer logischen Verschlüsselungs-/Entschlüsselungsschaltung zu integrieren.
  • Andere Lösungen für Verschlüsselungsprogramme in einem außerhalb eines Mikroprozessors liegenden Speichers sind beispielsweise in den US-Patenten US-A-5,982,887 und US-A-6,061,449 beschrieben.
  • In allen Fällen ist das verschlüsselte Programm in dem externen Speicher unabhängig von dem Chip, der den Ausführungsmikroprozessor bildet.
  • Ein erster Nachteil besteht darin, daß der Verschlüsselungsschlüssel des Programms, das in dem außerhalb des Mikroprozessors liegenden Speicher gespeichert ist, nicht dem Chip zugehörig ist, der die Daten verschlüsselt. Falls einer der Schlüssel raubkopiert wird, kann er daher wieder verwendet werden, um einen beliebigen externen Speicher zu entschlüsseln, da alle Chips dieselbe An von Verschlüsselung verwenden.
  • Ein zweiter Nachteil ist mit dem verwendeten Verschlüsselungsverfahren verbunden. Im allgemeinen werden blockweise Verschlüsselungen durch Algorithmen des Typs DES oder AES gemäß einer sogenannten ECB-Technik (Electronic Code Book-Technik) verwendet. Die Blockgröße hängt von dem verwendeten Verschlüsselungsalgorithmus ab. Bei einer ECB-Technik werden zwei identische Blöcke auf die gleiche Weise verschlüsselt. Ein Schwachpunkt besteht dann in möglichen Angriffen mittels einer sogenannten Wörterbuchmethode, bei der die Redundanz von identisch verschlüsselten Nachrichten eine Identifizierung der unverschlüsselten Nachricht ermöglichen kann. Im Gegensatz zu der ECB-Technik ist eine andere Blockverschlüsselungstechnik bekannt, bei der der verschlüsselte Code von den vorhergehenden Blöcken abhängt. Diese Technik (CBC = Cypher Block Chaining) erfordert einen stets identischen sequentiellen Zugriff auf den Speicher, was sie für die Verschlüsselung eines Programms ungeeignet macht, für das willkürliche Direktzugriffe in dem externen Speicher erwünscht sind.
  • Allgemeiner gesagt stellt sich ein besonderes Problem, wenn im Gegensatz zu einem sequentiellen Betrieb ein Direktzugriff auf den externen Speicher erwünscht ist. In solch einem Fall müssen die Schreibverschlüsselung in dem Speicher und die Leseentschlüsselung in diesem Speicher kontinuierlich und sequentiell in derselben Reihenfolge von dem Prozessor, der sie auswertet, durchgeführt werden. Aufgrund eines solchen Direktzugriffs und den Anforderungen an eine kontinuierliche Verschlüsselung sind herkömmliche Lösungen nicht geeignet, die Daten eines externen Speichers effizient blockweise zu verschlüsseln.
  • Ziel der vorliegenden Erfindung ist es, eine neuartige Technik anzugeben, mit der ein Datensatz mittels eines integrierten Schaltkreises verschlüsselt werden kann, der in einem Speicher außerhalb dieses Schaltkreises gespeichert werden soll.
  • Genauer gesagt ist es Ziel der vorliegenden Erfindung, eine Verschlüsselungslösung anzugeben, die es gestattet, die Verschlüsselung gemäß dem IC-Chip zu individualisieren, mit dem der externe Speicher assoziiert ist.
  • Außerdem ist es Ziel der vorliegenden Erfindung, eine Verschlüsselung anzugeben, die mit dem Herunterladen von Anwendungen kompatibel ist, die mittels sogenannter Systeme mit öffentlichem und privatem Schlüssel verschlüsselt wurden.
  • Es ist ferner Ziel der vorliegenden Erfindung, eine Verschlüsselung anzugeben, die gegen Angriffe mittels der sogenannten Wörterbuchmethode unempfindlich ist.
  • Um diese und andere Aufgaben zu lösen, sieht die vorliegende Erfindung ein Verfahren zur Verschlüsselung eines Datensatzes zur Speicherung in einem Speicher mittels eines integrierten Prozessors vor, wobei das Verfahren die folgenden Schritte kontinuierlich an einem Datenfluß ausführt:
    Aufteilen des Datenflusses in Blöcke vorbestimmter Größe, und, für jeden Block:
    Erzeugen eines Verschlüsselungsschlüssels mittels eines Pseudo-Zufallsgenerators, der einen kontinuierlichen Verschlüsselungsalgorithmus abhängig von einem Schlüssel ausführt, der spezifisch für einen integrierten Schaltkreis und einen Initialisierungsvektor ist, der sich für jeden Block ändert;
    kontinuierliches Kombinieren des Datenblocks und des entsprechenden Schlüssels; und
    Speichern eines jeden verschlüsselten Blocks und desjenigen Initialisierungsvektors, der zum Verschlüsseln desselben gedient hat, in dem Speicher.
  • Gemäß einer Ausführung der vorliegenden Erfindung ist die Kombination eine XOR-Kombination.
  • Gemäß einer Ausführung der vorliegenden Erfindung entspricht die Größe des Verschlüsselungsschlüssels der Blockgröße.
  • Gemäß einer Ausführung der vorliegenden Erfindung wird der Schlüssel, der spezifisch für den integrierten Prozessor ist, von dem Prozessor erzeugt.
  • Gemäß einer Ausführung der vorliegenden Erfindung wird das Verfahren auf das Verschlüsseln eines Zielprogramms angewendet, welches zur nachfolgenden Ausführung in dem Speicher zu speichern ist.
  • Die vorliegende Erfindung sieht ebenfalls ein Verfahren zur Entschlüsselung von Datenblöcken vor, die in einem Speicher gespeichert sind, wobei das Verfahren aus dem Ausführen der folgenden Schritte besteht:
    Lesen eines jeden Blocks und eines zugehörigen Initialisierungsvektors aus dem Speicher; und
    Anwenden, eines kontinuierlichen Entschlüsselungsalgorithmus für einen jeden Block, unter Verwendung des Initialisierungsvektors, der mit dem entsprechenden Block assoziiert ist, um einen Entschlüsselungsschlüssel zu erzeugen.
  • Gemäß einer Ausführung der vorliegenden Erfindung werden die entschlüsselten Datenblöcke in einem Cache-Speicher gespeichert, der in dem Prozessor integriert ist.
  • Gemäß einer Ausführung der vorliegenden Erfindung werden die blockweise verschlüsselten Daten und die zugehörigen Initialisierungsvektoren vor dem Entschlüsseln in einem Cache-Speicher gespeichert, der in dem Prozessor integriert ist.
  • Gemäß einer Ausführung der vorliegenden Erfindung ist der Speicher extern bezüglich des integrierten Schaltkreises.
  • Die vorliegende Erfindung sieht ferner einen Prozessor zum Auswerten der in einem externen Speicher gespeicherten Daten vor.
  • Die vorstehend genannten Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden detailliert in der folgenden, nicht einschränkenden Beschreibung spezifischer Ausführungen mit Bezug auf die beigefügten Zeichnungen erörtert, in denen:
  • 1 die vorher beschrieben wurde, teilweise und sehr schematisch einen integrierten Schaltkreis zeigt, der mit einem externen Speicher der Art verbunden ist, auf die sich die vorliegende Erfindung bezieht;
  • 2 ein vereinfachtes Diagramm eines Verschlüsselungsgenerators ist, wie er gemäß der vorliegenden Erfindung verwendet wird;
  • 3 ein Blockdiagramm einer Ausführung des Verfahrens der vorliegenden Erfindung in einer Verschlüsselungsphase zeigt;
  • 4 ein Blockdiagramm einer Ausführung des Verfahrens der vorliegenden Erfindung in einer Entschlüsselungsphase zeigt;
  • 5 teilweise und schematisch einen integrierten Mikroprozessor zeigt, der mit einem externen Speicher gemäß einer ersten Ausführung der vorliegenden Erfindung verbunden ist; und
  • 6 teilweise und schematisch einen integrierten Mikroprozessor zeigt, der mit einem externen Speicher gemäß einer zweiten Ausführung der vorliegenden Erfindung verbunden ist.
  • Gleiche Elemente sind in den unterschiedlichen Zeichnungen mit denselben Bezugszeichen bezeichnet. Der Klarheit halber sind nur die Verfahrensschritte und Elemente in den Zeichnungen gezeigt und im folgenden beschrieben, die für das Verständnis der vorliegenden Erfindung relevant sind. Insbesondere sind keine Komponenten des integrierten Prozessors beschrieben, da die vorliegende Erfindung bekannte Komponenten für ihre Ausführung verwendet.
  • Es ist ein Merkmal der vorliegenden Erfindung, Daten (Programme, Daten, Binärcodes jeglicher Art), die in einem mit einem integrierten Mikroprozessor verbundenen externen Speicher gespeichert werden sollen, mittels eines sogenannten internen Schlüssels zu verschlüsseln, der für den Mikroprozessor spezifisch ist und sich von dem möglichen Verschlüsselungsschlüssel unterscheidet, der von dem Provider oder über die Daten übermittelt wird. Dieser interne Schlüssel kann durch Gruppen von Daten (durch Programme) individualisiert werden. Wenn somit gemäß der vorliegenden Erfindung ein Programm heruntergeladen wird, das in dem mit dem integrierten Prozessor verbundenen externen Speicher gespeichert werden soll, dann verwendet die Verschlüsselung nicht den Schlüssel, welcher der Anwendung (oder dem Programm) zugeordnet ist, sondern vielmehr einen internen Schlüssel, der dem Mikroprozessorchip zugeordnet ist. Dies ermöglicht, daß die externen Speicher von den integrierten Prozes soren, mit denen sie verbunden sind, abhängig gemacht werden können, was einen Vorteil hinsichtlich der Sicherheit gegen Raubkopien von Daten durch unbefugte Benutzer darstellt.
  • Es ist ein weiteres Merkmal der vorliegenden Erfindung, eine kontinuierliche Verschlüsselung und Entschlüsselung bei Übertragungen zwischen dem integrierten Mikroprozessor und dem externen Speicher anzugeben. Gemäß der vorliegenden Erfindung wird diese kontinuierliche Verschlüsselung dadurch erzielt, daß gespeicherte Daten in Blöcke aufgeteilt werden. Die vorliegende Erfindung sieht ferner vor, daß die Verschlüsselung einen Initialisierungsvektor für jeden Block verwendet, wobei dieser Vektor eine Funktion des verarbeiteten Blocks ist. Somit werden Probleme vermieden, die mit kontinuierlichen Verschlüsselungen verbunden sind, die herkömmlicherweise in Verbindung mit Direktzugriffen auf einen Speicher ungeeignet sind.
  • Mit anderen Worten sieht die vorliegende Erfindung eine blockweise kontinuierliche Verschlüsselung unter Verwendung eines Initialisierungsvektors vor, um einen Strom von Codeblöcken (Codons) zu erhalten, die entsprechende Blockverschlüsselungsschlüssel bilden.
  • 2 ist eine schematische Ansicht einer kontinuierlichen Verschlüsselung mittels Initialisierungsvektoren mit Hilfe eines Verschlüsselungsgenerators (Kryptosystem). Eine derartige Verschlüsselung basiert auf der Verwendung eines Pseudo-Zufallsgenerators 10 (PRGEN), der einen Schlüssel Cb zum Verschlüsseln eines Datenblocks Bd mittels eines XOR-Gatters 11 liefert. Das Gatter 11 liefert das verschlüsselte Ergebnis, das heißt einen Block Bc, der mittels des Schlüssels Cb verschlüsselt wurde. Der von dem Generator 10 bereitgestellte Schlüssel Cb basiert auf einem internen Schlüssel K, der gemäß der vorliegenden Erfindung einem Schlüssel entspricht, der dem Mikroprozessor zugehört, und auf einem Initialisierungsvektor IV, wobei diese beiden Werte von einem Algorithmus zur Erzeugung von Pseudo-Zufallszahlen ausgewertet werden. K, IV sind Binärwörter, deren jeweilige Größe von der erwünschten Sicherheit hinsichtlich einer möglichen Anzahl von Kombinationen abhängt. Der Schlüssel Cb ist ein Binärwort, dessen Größe gemäß der vorliegenden Erfindung und wie im folgenden ersichtlich von der Größe der zu verschlüsselnden Blöcke abhängt. Der Generator 10 ist insofern ein Pseudo-Zufallsgenerator, als er für einen gegebenen Schlüssel K stets den gleichen Schlüssel Cb für denselben Initialisierungsvektor IV bereitstellt. Gemäß der vorliegenden Erfindung ist der Initialisierungsvektor IV eine Funktion des verschlüsselten Blocks Bd, wie es im folgenden beschrieben wird.
  • Das Diagramm von 2 gibt wie allgemein bekannt eine kontinuierliche Verschlüsselung an, das heißt eine Verschlüsselung, bei der die Eingangsnachricht des XOR-Gatters 11 Bit für Bit durch den Schlüssel verschlüsselt wird, der kontinuierlich von dem Generator 10 bereitge stellt wird. Als nächstes wird Bezug auf einen sogenannten Codongenerator genommen. Derartige Codons bilden den Verschlüsselungsschlüssel Cb der vorliegenden Erfindung.
  • Kontinuierliche Verschlüsselungsalgorithmen sind beispielsweise in „Cryptographie Appliquée" von Bruce SCHNEIER, zweite Ausgabe, veröffentlicht von Wiley 1997, Seite 209 bis 226, beschrieben.
  • Der Pseudo-Zufallsgenerator 10 bildet das Basiselement kontinuierlicher Verschlüsselungsalgorithmen. Der Algorithmus kann beispielsweise aus den bekannten Algorithmen mit den Bezeichnungen RC4, SEAL, WAKE ausgewählt oder allgemeiner ein beliebiger kontinuierlicher Verschlüsselungsalgorithmus sein, der die Pseudo-Zufallserzeugung des Schlüssels oder Codons Cb basierend auf K und IV beeinflussen kann. Gemäß der vorliegenden Erfindung wird diese kontinuierliche Verschlüsselung jedoch blockweise durchgeführt, wobei jeder Block einen anderen Initialisierungsvektor hat. Der Anfangswert des Generators 10 ändert sich für jeden Block, da er aus einer Kombination von K und IV gebildet ist.
  • 3 veranschaulicht eine Ausführung einer kontinuierlichen Verschlüsselung von Blöcken fester Größe eines Programms (Block 20, CRYPT APPLI), das von einem Anwendungsprovider beispielweise durch einen DES-Algorithmus verschlüsselt ist. Um die vorliegende Erfindung zu implementieren, wird das Programm zuerst entschlüsselt (Block 21, DES-1). Wenn das Programm einmal entschlüsselt ist, wird es gemäß der vorliegenden Erfindung in Blöcke (Block 22, BLOCKS) aufgeteilt, um einen Strom von Blöcken Bd zu erhalten, die vor dem Speichern in einem außerhalb des Mikroprozessors liegenden Speicher 23 verschlüsselt werden sollen.
  • Die gemäß der vorliegenden Erfindung durchgeführte Verschlüsselung folgt dem Schema von 2 dahingehend, daß sie einen Pseudo-Zufallsgenerator 10 (PRGEN) verwendet, der für jeden Block einen Verschlüsselungsschlüssel Cb aus einem internen Schlüssel K, der dem Mikroprozessor zugehört, und aus einem Initialisierungsvektor IV bereitstellt. Die Initialisierungsvektoren IV werden vorzugsweise von einem Zufallsgenerator (Block 24, IVGEN) erzeugt, der mit dem Mikroprozessor verbunden ist und für jeden Block eine Sequenz beliebiger Bits bereitstellt. Dadurch wird ermöglicht, daß ein nachfolgender Direktzugriff auf einen beliebigen, in dem Speicher 23 gespeicherten Block beibehalten wird.
  • Die Größe (Anzahl an Bits) der erzeugten Schlüssel Cb ist gemäß der vorliegenden Erfindung gleich der Blockgröße, um eine kontinuierliche Verschlüsselung der Blöcke zu ermöglichen.
  • Gemäß der vorliegenden Erfindung wird der von dem Generator 24 erzeugte Initialisierungsvektor zur gleichen Zeit in dem Speicher 23 gespeichert wie der verschlüsselte Block Bc (CRYPT BLOCK), der von dem Gatter 11 stammt. Beispielsweise werden die aufeinanderfolgenden Bits des Initialisierungsvektors IV an den Anfang des Speicherworts gestellt, das den Block Bc speichert. Es kann eine beliebige andere Konfiguration vorgesehen sein, wobei es wichtig ist, jeden in dem externen Speicher gespeicherten, verschlüsselten Block mit einem Initialisierungsvektor zu verknüpfen, der diesem zugehört.
  • Die Tatsache, daß der Initialisierungsvektor unverschlüsselt in dem externen Speicher gespeichert wird, stellt kein Hindernis im Sinne der vorliegenden Erfindung dar. Die Kenntnis dieses Initialisierungsvektors ermöglicht in der Tat keine Entschlüsselung dieses Blocks. Der Schlüssel K, der dem Mikroprozessor zugehört, der diesen Block verschlüsselt hat, sowie der Codeblockerzeugungsalgorithmus, der bei jedem Prozessor unterschiedlich sein kann, müssen bekannt sein. Ein Vorteil der vorliegenden Erfindung besteht darin, daß, während die Verschlüsselung von dem sie ausführenden Mikroprozessor abhängig gemacht ist, ihre Implementierung für den Datenprovider transparent ist. Die intern ausgeführte Verschlüsselung ist unabhängig von der Verschlüsselung, die von dem Datenprovider ausgeführt wird.
  • 4 zeigt eine Ausführung einer Entschlüsselung, die gemäß der vorliegenden Erfindung von einem Mikroprozessor ausgeführt wird, der die verschlüsselten Daten in dem externen Speicher 23 auswertet. Gemäß der vorliegenden Erfindung verwendet die Entschlüsselung denselben Pseudo-Zufallsgenerator 10 für die Schlüssel Cb und dasselbe XOR-Gatter 11. Diesmal verwendet der Pseudo-Zufallsgenerator als Anfangswerte für die Erzeugung der Schlüssel Cb den Schlüssel K, der dem integrierten Prozessor zugehört, und den Initialisierungsvektor IV, der aus dem Speicher 23 gelesen wird und mit dem aktuellen, zu entschlüsselnden Block verknüpft ist. Die XOR-Kombination des Blocks Bc mit dem Schlüssel Cb liefert den entschlüsselten Datenblock Bd, der in einem Cache-Speicher (CACHE MEM) des Mikroprozessors gespeichert wird. Obwohl dies nicht in Bezug auf 3 dargestellt ist, wird dieser Cache-Speicher beim Verschlüsseln auch zur temporären Speicherung der zu verschlüsselnden, aufgeteilten Blöcke verwendet. Die Länge eines Blocks ist vorzugsweise gleich der Länge einer Zeile des Cache-Speichers.
  • 5 ist eine schematische Teilansicht eines integrierten Mikroprozessors 30, der mit einem externen Speicher 23 gemäß einer ersten Ausführung der vorliegenden Erfindung verbunden ist. Die Ausführung von 5 integriert die Elemente, die für die Implementierung des Verschlüsselungs-/Entschlüsselungsverfahrens erforderlich sind, wie es in 3 und 4 gezeigt ist. Der Mikroprozessor 30 umfaßt somit einen Generator 31 (KGEN) für einen Schlüssel K, der dem Schaltkreis zugehört. Sobald dieser Schlüssel erzeugt wurde, wird er in einem nichtflüchtigen Speicher 32 (NVM) gespeichert. Der Generator 31 ist beispielsweise ein Zufallsgenerator oder ein Schaltkreis, der ein Binärwort auswertet, das von einem Netzwerk physikalischer Parameter des Chips stammt, der den Mikroprozessor 30 integriert. Im letzte ren Fall kann der Schlüssel K jedesmal erzeugt werden, wenn er benötigt wird. Alternativ wird der Schlüssel K extern erzeugt und in dem Speicher 32 gespeichert. Eine Erzeugung innerhalb des Mikroprozessors wird jedoch aus Gründen der Sicherheit gegen mögliche Raubkopien bevorzugt. Der Schaltkreis 30 integriert ferner den Generator 24 (IVGEN) des Initialisierungsvektors IV sowie einen Cache-Speicher 33 (CACHE).
  • Die in 5 gezeigte Ausführung gilt für einen Mikroprozessor, der in der Lage ist, Programme (oder allgemeiner beliebige digitale Daten) von einer externen Quelle zu empfangen. Beispielsweise sendet ein Provider (PROV) die Codes eines Programms (CRYPT APPLI), das mit einem geheimen Schlüssel Kapp verschlüsselt wurde, in einen Speicher (beispielsweise ein RAM) 34', wobei der Schlüssel Kapp beispielsweise durch einen asymmetrischen Algorithmus basierend auf einem öffentlichen Schlüssel, der von dem Provider RROV gesendet wird, oder durch den Mikroprozessor gemäß dem Schlüssel verschlüsselt wird, mit dem der Schlüssel Kapp codiert wird. Bei dem gezeigten Beispiel empfängt der Chip den Schlüssel Kapp, der mit seinem öffentlichen Schlüssel (als Kpub 30, Block 34 bezeichnet) verschlüsselt wurde. Um die Entschlüsselung des Programms zu ermöglichen, umfaßt der Prozessor 30 (in Software oder verdrahtet) einen asymmetrischen Decoder 36 (ASYM-DEC), der einen privaten Schlüssel Kpriv (alternativ einen öffentlichen Schlüssel, der von dem Provider PROV bereitgestellt wird) ausnutzt, der in einem Speicherelement 35 des Prozessors 30 gespeichert ist. Der Decoder 36 entschlüsselt den Schlüssel Kapp auf herkömmliche Weise. Dieser Verschlüsselungsschlüssel des Programms wird dann von einem symmetrischen Entschlüsselungsblock 37 (SYM-DEC) zur Decodierung der aus dem Speicher 34 gelesenen verschlüsselten Anwendung verwendet. Bis zu diesem Zeitpunkt führt der Prozessor 30 herkömmliche Schritte zur Entschlüsselung eines Programms durch, das von einem Algorithmus mit öffentlichem und privatem Schlüssel verschlüsselt wurde.
  • Gemäß der vorliegenden Erfindung umfaßt der Schaltkreis 30 (verdrahtet oder nicht) eine Einheit 38 (CRYPT-DECRYPT) zur kontinuierlichen Blockverschlüsselung/-Entschlüsselung und implementiert dadurch das in 3 und 4 gezeigte Verfahren. Obwohl dies nicht in 5 gezeigt ist, enthält die Einheit 38 somit einen Pseudo-Zufallsgenerator 10 und ein XOR-Gatter 11.
  • In 5 ist der Betrieb des Schaltkreises 30 bei der Verschlüsselung einer heruntergeladenen Anwendung durch Pfeile mit durchgezogenen Linien und der Betrieb bei der Entschlüsselung des in dem Speicher 23 gespeicherten Programms (hier Ziel) durch Pfeile mit gepunkteten Linien gezeigt.
  • Somit nutzt die Einheit 38 den von dem Generator 31 erzeugten Schlüssel K bei der Programmverschlüsselung und die aufeinanderfolgenden, von dem Generator 24 bereitgestellten Initialisierungsvektoren aus. Für die Entschlüsselung werden jedoch der in dem nichtflüchtigen Speicher 32 gespeicherte Schlüssel K und die aufeinanderfolgenden Initialisierungsvektoren IVi verwendet, die mit in dem Speicher 23 gespeicherten Datenblöcken DATAi assoziiert sind. Bei der Verschlüsselung (CRYPT) werden die von der Einheit 38 aufgeteilten Datenblöcke in dem Speicher 23 gespeichert. Bei der Entschlüsselung (DECRYPT) werden diese (durch einen Direktzugriff) ausgelesenen Blöcke zur Ausführung in einem Cache-Speicher 33 gespeichert, sobald sie entschlüsselt wurden.
  • Die Blockgröße ist vorzugsweise an das heruntergeladene Programm angepaßt, so daß jeder Block, während er weiterhin mit der Größe des Cache-Speichers 33 kompatibel ist, einer oder mehreren vollständigen Anweisungen entspricht.
  • Es ist ein Vorteil der vorliegenden Erfindung, daß die verschlüsselten Daten durch einen einzigen Schlüssel verschlüsselt werden, der den integrierten Schaltkreis identifiziert, der diese verarbeitet. Den Schlüssel zu kennen, ermöglicht folglich keine Verwendung durch Raubkopierer, da er keine Entschlüsselung derselben Daten ermöglicht, wenn diese in einem externen Speicher gespeichert sind, der mit einem anderen integrierten Mikroprozessor verbunden ist.
  • Es ist ein weiterer Vorteil der vorliegenden Erfindung, daß es, da der integrierte Mikroprozessor selbst seine eigenen Schlüssel zum Speichern von Daten in dem externen Speicher erzeugt, möglich ist, jedesmal einen neuen Schlüssel zu erzeugen, wenn diese Daten verwendet werden. Beispielsweise werden in dem Fall eines Programms, wenn dieses ausgeführt wird, die Blöcke, die von dem Cache-Speicher zu dem externen Speicher umgeschrieben werden, mit neuen Schlüsseln verschlüsselt. Diese neuen Schlüssel (Codons) erhält man durch Ändern des Schlüssels K und/oder der Blockinitialisierungsvektoren. Ein Vorteil einer solchen Alternative ist es, daß die Verschlüsselungsschlüssel sich jedesmal ändern, wenn ein Programm ausgeführt wird, was das mögliche Raubkopieren noch schwieriger macht.
  • Ein Vorteil der Verwendung eines kontinuierlichen Verschlüsselungsalgorithmus besteht darin, daß diese An von Algorithmus viel schneller ist als Blockverschlüsselungsalgorithmen des Typs AES oder DES. Für eine Verschlüsselung oder Entschlüsselung sind eine XOR-Operation sowie eine Stimulation (Starten des Pseudo-Zufallsgenerators) ausreichend.
  • Bei der in 5 gezeigten Ausführung werden die aufwendigsten Operationen (hinsichtlich der Dauer) bei der Programminstallation zur verschlüsselten Speicherung in dem Speicher 23 durchgeführt. Im Vergleich zu der Zeit jedoch, die von den Maschinenressourcen zur Entschlüsselung des Programms benötigt wird, das von außen (PROV) empfangen wurde, ist die durch die vorliegende Erfindung hinzugefügte Verschlüsselung vernachlässigbar. Bei den darauffolgenden Operationen läuft die Verschlüsselung der vorliegenden Erfindung wesentlich schneller ab als durch die Aufrechterhaltung einer DES-Verschlüsselung.
  • Es ist jedoch festzustellen, daß die vorliegende Erfindung auch für die Verschlüsselung eines nicht verschlüsselten, heruntergeladenen Programms anwendbar ist, das heißt die asymmetrischen und symmetrischen Decodierelemente 36 und 37 von 5 werden weggelassen.
  • Gemäß einer Alternative kann dem verschlüsselten Block DATAi und dem Initialisierungsvektor IV ein Integritätssteuerwert in dem Speicher 23 zugeordnet sein.
  • 6 zeigt eine zweite Ausführung eines integrierten Prozessors 40, der die vorliegende Erfindung implementiert. Gemäß dieser Ausführung wird die Verschlüsselung/Entschlüsselung an dem Eingang des eigentlichen Prozessors ausgeführt, das heißt an dem Eingang seiner Arithmetik- und Logikeinheit 44. Ziel ist es, den Inhalt des Cache-Speichers zu verschlüsseln. Diese Aufgabe scheint in Widerspruch zu der Funktion eines solchen Speichers zu stehen, die darin besteht, die Verarbeitung eines Programms bezüglich der Lesezugriffserfordernisse eines externen Speichers zu beschleunigen. Durch die Implementierung der vorliegenden Erfindung jedoch ist eine Verschlüsselung weiterhin möglich, da sie in kontinuierlichem Betrieb und mittels eines einfachen XOR-Gatters durchgeführt wird, was die Programmausführung oder die Datenverarbeitung nur geringfügig verlangsamt.
  • Bei der Ausführung von 6 wird wie in 5 von dem Laden oder der Initialisierung eines Programms, das selbst mittels eines symmetrischen Algorithmus verschlüsselt wurde, ausgegangen. 6 zeigt Blöcke 36 (ASYM-DEC), 37 (SYM-DEC), die den Anwendungsschlüssel Kapp, der durch den öffentlichen Schlüssel des Chips 40 (als Kpub 40, Block 34 bezeichnet) verschlüsselt wurde, bzw. das verschlüsselte Programm CRYPT APPLI (Block 34') empfangen. Bei dem gezeigten Beispiel empfängt der asymmetrische Entschlüsselungsblock 36 ferner den privaten Schlüssel Kpriv von dem Block 35.
  • Wie in 5 sind auch der Generator 31 (KGEN) für den Schlüssel K, der Generator 24 (IVGEN) für die Initialisierungsvektoren IV und der nichtflüchtige Speicher 32 (NVM) für die Speicherung des Schlüssels K gezeigt. In 6 ist der Pseudo-Zufallsgenerator 10 in Form eines Verschlüsselungselements 41 (CIPH) gezeigt, das einen Initialisierungsvektor IV als Eingangssignal, der in einem Register 42 gespeichert ist, und den Schlüssel K empfängt, der in einem Register 43 gespeichert ist, und den Code Cb an das Gatter 11 ausgibt. Gemäß dieser Ausführung befindet sich das Gatter 11 zwischen dem Cache-Speicher 33 und der Arithmetik- und Logikeinheit 44 des Prozessors. Tatsächlich ist eine einzige, zusätzliche Cache-Speicherzeile 45 (SCACHE) an dem Eingang der Arithmetik- und Logikeinheit 44 vorgesehen. Die Zeile wird von dem Ausgang des Gatters 11 gespeist. In 6 ist der Cache- Speicher 33 detailliert in Form einer Cache-Steuerung 331 (CACHE CTRL) dargestellt, die über tatsächliche Cache-Speicherzeilen 332 versorgt wird. Gemäß dieser Ausführung werden die in den Leitungen 332 des Cache-Speichers gespeicherten Daten verschlüsselt und entsprechen somit, wie in 5, den Blöcken, die in dem externen Speicher 23 gespeichert sind, der die Daten oder das Programm (BLOC CRYPT APPLI) enthält, die bzw. das mittels des Schlüssels K und der Vektoren IV verschlüsselt wurden bzw. wurde. Daher befinden sich der Initialisierungsvektor IVi und die Daten DATAi jedes Blocks in den Leitungen des Cache-Speichers 332.
  • Der Betrieb der in 6 gezeigten Ausführung kann von dem vorher mit Bezug auf 5 beschriebenen Betrieb abgeleitet werden. Es sollte nur beachtet werden, daß der Strom, der von Block 37 stammt, bei einer Verschlüsselung in Blöcke aufgeteilt wird, die von dem Gatter 11 verschlüsselt werden sollen, und die Cache-Speichersteuerung durchquert, ohne in den Zeilen 332 gespeichert zu werden, sondern direkt zu dem Speicher 23 gerichtet wird.
  • An der vorliegenden Erfindung können natürlich Veränderungen, Modifizierungen und Verbesserungen vorgenommen werden, die dem Fachmann ohne weiteres ersichtlich sind. Insbesondere kann die vorliegende Erfindung mit einem beliebigen, herkömmlichen, kontinuierlichen Verschlüsselungsalgorithmus implementiert sein, der den Pseudo-Zufallsgenerator des Schlüssels K und der Vektoren IV beeinflußt. Aufgrund der obigen funktionsbezogenen Angaben liegt die praktische Implementierung der vorliegenden Erfindung ferner im Rahmen der Fähigkeiten eines Fachmanns. In dieser Hinsicht ist zu berücksichtigen, daß gemäß einer Ausführung der vorliegenden Erfindung die unterschiedlichen Verschlüsselungs- und Entschlüsselungstools (selbst diese, die nur einmal bei der Speicherung der von außen eingehenden Daten verwendet werden) in einer verdrahteten Logik gebildet sind. Eine Implementierung in Software ist jedoch weiterhin möglich. Ferner können andere Kombinationsfunktionen als XOR vorgesehen sein, wobei XOR aufgrund seiner Einfachheit (und somit seiner Schnelligkeit) jedoch eine bevorzugte Wahl ist.

Claims (10)

  1. Verfahren zur Verschlüsselung eines Datensatzes zur Speicherung in einem Speicher (23), mittels eines integrierten Prozessors (30, 40), dadurch gekennzeichnet, daß es die folgenden Schritte kontinuierlich an einem Datenfluß ausführt: Aufteilen des Datenflusses in Blöcke vorbestimmter Größe, und, für jeden Block: Erzeugen eines Verschlüsselungsschlüssels (Cb) mittels eines Pseudo-Zufallsgenerators (10), welcher einen kontinuierlichen Verschlüsselungsalgorithmus abhängig von einem Schlüssel (K) ausführt, der einem integrierten Schaltkreis und einem Anfangsvektor (IV) zugehört, der sich für jeden Block ändert; kontinuierliches Kombinieren des Datenblocks und des entsprechenden Schlüssels (Cb); und Speichern jedes verschlüsselten Blocks und desjenigen Initialisierungsvektors, der zum Verschlüsseln desselben gedient hat, in dem Speicher (23).
  2. Verfahren nach Anspruch 1, wobei die Kombination eine XOR-Kombination ist.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Größe des Verschlüsselungsschlüssels (Cb) der Blockgröße entspricht.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der Schlüssel (K), welcher dem integrierten Prozessor (30, 40) zugehört, von diesem erzeugt ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei dieses auf das Verschlüsseln eines Zielprogrammes angewendet wird, welches zur nachfolgenden Ausführung in dem Speicher (23) zu speichern ist.
  6. Verfahren zur Entschlüsselung von Datenblöcken, die in einem Speicher (23) gespeichert sind, mittels eines integrierten Prozessors, dadurch gekennzeichnet, daß dieses aus dem Ausführen der folgenden Schritten besteht: Lesen jedes Blocks und zugehörigen Initialisierungsvektors aus dem Speicher (23), wobei sich der Vektor mit jedem Block ändert; und Anwenden, für jeden Block, eines kontinuierlichen Entschlüsselungsalgorithmus als Funktion eines Schlüssels (K), der dem integrierten Schaltkreis zugehört, und Verwenden des Initialisierungsvektors, der mit dem entsprechenden Block verknüpft ist, um einen Entschlüsselungsschlüssel (Cb) zu erzeugen.
  7. Verfahren nach Anspruch 6, wobei die entschlüsselten Datenblöcke in einem Cache-Speicher (33) gespeichert sind, der in dem Prozessor (30) integriert ist.
  8. Verfahren nach Anspruch 6, wobei die blockweise verschlüsselten Daten und die zugehörigen Initialisierungsvektoren vor dem Entschlüsseln in einem Cache-Speicher (332) gespeichert sind, der in dem Prozessor (40) integriert ist.
  9. Verfahren nach einem der Ansprüche 6 bis 8, wobei der Speicher (23) extern zu dem integrierten Schaltkreis vorgesehen ist.
  10. Prozessor (30, 40) zum Auswerten der gespeicherten Daten in einem externen Speicher (23), dadurch gekennzeichnet, daß dieser Mittel zum Ausführen des Verfahrens zur Verschlüsselung nach einem der Ansprüche 1 bis 5 und zum Ausführen des Verfahrens zur Entschlüsselung nach einem der Ansprüche 6 bis 9 umfaßt.
DE60305781T 2002-04-19 2003-04-17 Verschlüsselung des Inhalts eines ausserhalb eines Prozessors angeordneten Speichers Expired - Lifetime DE60305781T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0204918 2002-04-19
FR0204918A FR2838894A1 (fr) 2002-04-19 2002-04-19 Chiffrement du contenu d'une memoire externe a un processeur

Publications (2)

Publication Number Publication Date
DE60305781D1 DE60305781D1 (de) 2006-07-20
DE60305781T2 true DE60305781T2 (de) 2007-05-16

Family

ID=28459925

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60305781T Expired - Lifetime DE60305781T2 (de) 2002-04-19 2003-04-17 Verschlüsselung des Inhalts eines ausserhalb eines Prozessors angeordneten Speichers

Country Status (4)

Country Link
US (1) US7333613B2 (de)
EP (1) EP1355446B1 (de)
DE (1) DE60305781T2 (de)
FR (1) FR2838894A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013204530B4 (de) * 2012-03-29 2016-03-10 International Business Machines Corporation Einrichtung und Verfahren zum Verschlüsseln von Daten

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1617586B1 (de) * 2004-07-06 2008-09-03 Proton World International N.V. Stromverschlüsselung des Inhalts eines Speichers, welcher ausserhalb eines Prozessors angeordnet ist
EP1615369A1 (de) * 2004-07-06 2006-01-11 Proton World International N.V. Blockverschlüsselung des Inhalts eines ausserhalb eines Prozessors angeordneten Speichers
JP2006191509A (ja) * 2005-01-07 2006-07-20 N-Crypt Inc 通信システム、通信方法
JP2006191508A (ja) * 2005-01-07 2006-07-20 N-Crypt Inc 通信システム、通信方法
JP2008530663A (ja) * 2005-02-11 2008-08-07 ユニバーサル データ プロテクション コーポレーション マイクロプロセッサのデータセキュリティの方法およびシステム
US8990582B2 (en) * 2010-05-27 2015-03-24 Cisco Technology, Inc. Virtual machine memory compartmentalization in multi-core architectures
US8756434B2 (en) * 2011-04-08 2014-06-17 Apple Inc. System and method for executing an encrypted binary from a memory pool
KR20190075363A (ko) * 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈
US11429751B2 (en) 2019-07-01 2022-08-30 Rajant Corporation Method and apparatus for encrypting and decrypting data on an integrated circuit

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4322576A (en) * 1979-12-28 1982-03-30 Racal-Milgo, Inc. Message format for secure communication over data links
JPS63287882A (ja) * 1987-05-20 1988-11-24 株式会社日立製作所 暗号装置
NL9301784A (nl) * 1993-10-14 1995-05-01 Irdeto Bv Systeem voor het versleutelen en ontsleutelen van digitale informatie.
US5438622A (en) * 1994-01-21 1995-08-01 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence
JPH08305558A (ja) * 1995-04-27 1996-11-22 Casio Comput Co Ltd 暗号化プログラム演算装置
US5825878A (en) * 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013204530B4 (de) * 2012-03-29 2016-03-10 International Business Machines Corporation Einrichtung und Verfahren zum Verschlüsseln von Daten

Also Published As

Publication number Publication date
EP1355446A1 (de) 2003-10-22
US7333613B2 (en) 2008-02-19
EP1355446B1 (de) 2006-06-07
US20030198344A1 (en) 2003-10-23
DE60305781D1 (de) 2006-07-20
FR2838894A1 (fr) 2003-10-24

Similar Documents

Publication Publication Date Title
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
EP1249010B1 (de) Mikroprozessoranordnung mit verschlüsselung
DE69824792T2 (de) Kommunikationssystem mit Verschlüsselung zum Erzeugen von Kennwörtern auf der Basis von Anfangsinformationen auf beiden Kommunikationsseiten
DE60314055T2 (de) Verschlüsselung und Entschlüsselung in einem Schaltkreis, bei der eine nichtlineare Transformation wie die SUBBYTE-Operation maskiert wird
DE60001927T2 (de) Verfahren und vorrichtung zum schutz von konfigurationsdateneigentum für programmierbare logische vorrichtungen
EP1777913B1 (de) Verfahren zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen eines Datenstroms
DE102012209249B4 (de) Sicherheitsvorrichtung und Host-Vorrichtung zum Austausch gescrambelter Verschlüsselungsdaten
DE69635868T2 (de) Verfahren und vorrichtung zum kryptographisch gesteuerten betrieb eines zusatzgeräts
EP1133849B1 (de) Verfahren und vorrichtung zum erzeugen eines verschlüsselten nutzdatenstroms und verfahren und vorrichtung zum entschlüsseln eines verschlüsselten nutzdatenstroms
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
WO2013083375A1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
EP0012974B1 (de) Verfahren zur Chiffrierung von Datenblöcken einer vorgegebenen Länge
DE10319435A1 (de) Verfahren zur Verarbeitung von Daten
DE102013213316A1 (de) Zufallsbitstromgenerator mit verbesserter rückwärts gerichteter Gemeinhaltung
DE60305781T2 (de) Verschlüsselung des Inhalts eines ausserhalb eines Prozessors angeordneten Speichers
DE102008010789B4 (de) Verfahren zur zugriffs- und kommunikationsbezogenen Zufallsver- und Entschlüsselung von Daten
US20090327712A1 (en) System and method for variable encryption
DE102013213354A1 (de) Zufallsbitstromgenerator mit garantierter mindestperiode
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
DE60116195T2 (de) Vorrichtung und Verfahren zur Verschleierung von Eingangsparametern
EP1022659B1 (de) Schaltungsanordnung zur elektonischen Datenverarbeitung
EP2678772B1 (de) Verschlüsseltes rechnen
EP1683029B1 (de) Verfahren zur speicherung von daten in einem wahlzugriffspeicher und verschlüsselungs- und entschlüsselungsvorrichtung
AT511842A4 (de) Verfahren zum schreiben und lesen von daten
EP3174239B1 (de) Verschlüsselungsverfahren und pseudo-zufallszahlengenerator

Legal Events

Date Code Title Description
8364 No opposition during term of opposition