DE102008006759A1 - Prozessor-Anordnungen, Prozessor, Verfahren zum Betreiben einer Prozessor-Anordnung - Google Patents

Prozessor-Anordnungen, Prozessor, Verfahren zum Betreiben einer Prozessor-Anordnung Download PDF

Info

Publication number
DE102008006759A1
DE102008006759A1 DE102008006759A DE102008006759A DE102008006759A1 DE 102008006759 A1 DE102008006759 A1 DE 102008006759A1 DE 102008006759 A DE102008006759 A DE 102008006759A DE 102008006759 A DE102008006759 A DE 102008006759A DE 102008006759 A1 DE102008006759 A1 DE 102008006759A1
Authority
DE
Germany
Prior art keywords
processor
memory
secret key
arrangement according
cryptographic
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.)
Granted
Application number
DE102008006759A
Other languages
English (en)
Other versions
DE102008006759B4 (de
Inventor
Eckhard Delfs
David Jennings
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 Deutschland GmbH
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102008006759A1 publication Critical patent/DE102008006759A1/de
Application granted granted Critical
Publication of DE102008006759B4 publication Critical patent/DE102008006759B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft allgemein Prozessor-Anordnungen, einen Prozessor und ein Verfahren zum Betreiben einer Prozessor-Anordnung.

Description

  • Die Erfindung betrifft eine Prozessor-Anordnung, einen Prozessor, eine Kommunikationsvorrichtung und ein Verfahren zum Betreiben einer Prozessor-Anordnung.
  • Die vorliegende Erfindung betrifft allgemein Prozessor-Anordnungen, einen Prozessor und ein Verfahren zum Betreiben einer Prozessor-Anordnung.
  • Es ist wünschenswert, dass ein System bereitgestellt wird, das eine Mehrzahl von Prozessoren und einen Speicher aufweist, der von der Mehrzahl von Prozessoren gemeinsam genutzt wird.
  • Gemäß einer Ausführungsform der Erfindung kann eine Prozessor-Anordnung vorgesehen sein, aufweisend: einen ersten Prozessor, einen zweiten Prozessor, mindestens einen Speicher, der von dem ersten Prozessor und dem zweiten Prozessor gemeinsam genutzt wird, wobei der zweite Prozessor aufweist:
    eine Speicher-Schnittstelle, die Zugriff auf den mindestens einen Speicher bereitstellt, eine Prozessor-Kommunikations-Schnittstelle, die einen Speicher-Zugriffsdienst für den ersten Prozessor bereitstellt, wobei der erste Prozessor aufweist: eine Prozessor-Kommunikations-Schnittstelle, die den Speicher-Zugriffsdienst von dem zweiten Prozessor verwendet, wobei der erste Prozessor und der zweite Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwenden.
  • Gemäß einem Ausführungsbeispiel der Erfindung kann vorgesehen sein, dass der erste Prozessor ein programmierbarer Prozessor ist.
  • Ferner kann vorgesehen sein, dass der erste Prozessor ein vertrauenswürdiger Prozessor ist.
  • Der erste Prozessor kann ein Kommunikations-Prozessor sein.
  • Gemäß einem weiteren Ausführungsbeispiel kann der erste Prozessor eine Modem-Steuerungseinheit sein.
  • Es kann vorgesehen sein, dass die Prozessor-Anordnung ferner einen dem ersten Prozessor zugeordneten ersten geheimen Schlüssel des ersten Prozessors aufweist.
  • Es kann vorgesehen sein, dass der erste geheime Schlüssel des ersten Prozessors unveränderbar ist.
  • Ferner kann vorgesehen sein, dass der zweite Prozessor ein programmierbarer Prozessor ist.
  • Gemäß einem Ausführungsbeispiel der Erfindung kann der zweite Prozessor in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar sein.
  • Der zweite Prozessor kann ein Applikations-Prozessor sein.
  • Die Prozessor-Anordnung kann einen dem zweiten Prozessor zugeordneten zweiten geheimen Schlüssel des zweiten Prozessors aufweisen.
  • Gemäß einem Ausführungsbeispiel der Erfindung kann der zweite geheime Schlüssel des zweiten Prozessors unveränderbar sein.
  • Gemäß einem weiteren Ausführungsbeispiel kann vorgesehen sein, dass der erste geheime Schlüssel des ersten Prozessors und der zweite geheime Schlüssel des zweiten Prozessors der gleiche gemeinsam genutzte geheime Schlüssel sind.
  • Des Weiteren kann der mindestens eine Speicher mindestens einen flüchtigen Speicher aufweisen.
  • Es kann vorgesehen sein, dass der mindestens eine flüchtige Speicher mindestens einen Vielfachzugriffsspeicher aufweist.
  • Gemäß einem Ausführungsbeispiel weist der mindestens eine Speicher mindestens einen nichtflüchtigen Speicher auf.
  • Ferner kann vorgesehen sein, dass der mindestens eine nichtflüchtige Speicher mindestens einen Flash-Speicher aufweist.
  • Gemäß einem weiteren Ausführungsbeispiel verwendet der erste Prozessor einen Authentifizierungs-Mechanismus, so dass er sich gegenüber dem zweiten Prozessor in einem Speicher-Zugriffsdienst authentifiziert.
  • Gemäß noch einem weiteren Ausführungsbeispiel verwendet der erste Prozessor den gemeinsamen geheimen Schlüssel während der Authentifizierung.
  • Der zweite Prozessor, der in dem vertrauenswürdigen Modus betrieben wird, kann über die Speicher-Schnittstelle Zugriff auf den Speicher haben.
  • Es kann vorgesehen sein, dass der Speicher einen ersten Speicherbereich und einen zweiten Speicherbereich aufweist, wobei der erste Speicherbereich durch den ersten Prozessor oder den zweiten Prozessor zu speichernde Daten speichert, wobei der zweite Speicherbereich von dem mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwendete kryptographische Daten speichert.
  • Ferner kann vorgesehen sein, dass der zweite Speicherbereich digitale Signaturen der zu speichernden Daten speichert.
  • Gemäß einem Ausführungsbeispiel weist der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen auf, die besteht aus: Authentifizierung, Verschlüsselung, digitale Signatur, kryptographische Hash-Wert-Generierung.
  • Gemäß einem weiteren Ausführungsbeispiel kann vorgesehen sein, dass der erste Prozessor und der zweite Prozessor in ein gemeinsames Prozessor-Package integriert sind.
  • Ferner können der erste Prozessor und der zweite Prozessor monolithisch in ein Substrat integriert sein.
  • Gemäß einer Ausführungsform der Erfindung kann ein Prozessor, vorgesehen sein, aufweisend: eine Speicher-Schnittstelle, die Zugriff auf mindestens einen Speicher bereitstellt, eine Prozessor-Kommunikations-Schnittstelle, die für einen anderen Prozessor einen Speicher-Zugriffsdienst bereitstellt, wobei der Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst zum Authentifizieren des anderen Prozessors verwendet.
  • Es kann vorgesehen sein, dass der Prozessor ein programmierbarer Prozessor ist.
  • Ferner kann vorgesehen sein, dass der Prozessor in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar ist.
  • Der Prozessor kann ein Applikations-Prozessor sein.
  • Der Prozessor kann ferner einen dem Prozessor zugeordneten geheimen Schlüssel des Prozessors aufweisen.
  • Es kann vorgesehen sein, dass der zweite geheime Schlüssel des zweiten Prozessors unveränderbar ist.
  • Gemäß einem Ausführungsbeispiel der Erfindung kann vorgesehen sein, dass der Prozessor, der in dem vertrauenswürdigen Modus betrieben wird, über die Speicher-Schnittstelle Zugriff auf den Speicher hat.
  • Der Prozessor kann eine Speicher-Steuerungseinheit sein.
  • Ferner kann vorgesehen sein, dass die Speicher-Steuerungseinheit zusammen mit einem Speicher monolithisch in das gleiche Substrat integriert ist.
  • Gemäß einer Ausführungsform der Erfindung kann eine Prozessor-Anordnung vorgesehen sein, aufweisend: einen vertrauenswürdigen ersten Prozessor, einen dem ersten Prozessor zugeordneten ersten geheimen Schlüssel des ersten Prozessors, einen zweiten Prozessor, der in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar ist, einen dem zweiten Prozessor zugeordneten zweiten geheimen Schlüssel des zweiten Prozessors, mindestens einen Speicher, der von dem ersten Prozessor und dem zweiten Prozessor gemeinsam genutzt wird, wobei der zweite Prozessor aufweist: eine Speicher-Schnittstelle, die Zugriff auf den mindestens einen Speicher bereitstellt, eine Prozessor-Kommunikations-Schnittstelle, die einen Speicher-Zugriffsdienst für den ersten Prozessor bereitstellt, wobei der erste Prozessor aufweist: eine Prozessor-Kommunikations-Schnittstelle, die den Speicher-Zugriffsdienst von dem zweiten Prozessor verwendet, wobei der erste Prozessor und der zweite Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwenden, wobei der erste Prozessor den ersten geheimen Schlüssel des ersten Prozessors verwendet und der zweite Prozessor den zweiten geheimen Schlüssel des zweiten Prozessors verwendet, wenn er in dem vertrauenswürdigen Modus betrieben wird.
  • Gemäß einem Ausführungsbeispiel kann vorgesehen sein, dass der erste Prozessor ein Kommunikations-Prozessor ist.
  • Gemäß einem weiteren Ausführungsbeispiel kann der erste Prozessor eine Modem-Steuerungseinheit sein.
  • Es kann vorgesehen sein, dass der erste geheime Schlüssel des ersten Prozessors unveränderbar ist.
  • Ferner kann vorgesehen sein, dass der zweite Prozessor ein Applikations-Prozessor ist.
  • Der zweite geheime Schlüssel des zweiten Prozessors kann unveränderbar sein.
  • Der erste geheime Schlüssel des ersten Prozessors und der zweite geheime Schlüssel des zweiten Prozessors können der gleiche gemeinsam genutzte geheime Schlüssel sein.
  • Es kann vorgesehen sein, dass der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen aufweist, die besteht aus: Authentifizierung, Verschlüsselung, digitale Signatur, kryptographische Hash-Wert-Generierung.
  • Gemäß einer Ausführungsform der Erfindung kann eine Kommunikationsvorrichtung vorgesehen sein, aufweisend: eine Prozessor-Anordnung, wobei die Prozessor-Anordnung aufweist: einen ersten Prozessor, einen zweiten Prozessor, mindestens einen von dem ersten Prozessor und dem zweiten Prozessor gemeinsam genutzten Speicher, wobei der zweite Prozessor aufweist: eine Speicher-Schnittstelle, die Zugriff auf den mindestens einen Speicher bereitstellt, eine Prozessor-Kommunikations-Schnittstelle, die einen Speicher-Zugriffsdienst für den ersten Prozessor bereitstellt, wobei der erste Prozessor aufweist: eine Prozessor-Kommunikations-Schnittstelle, die den Speicher-Zugriffsdienst von dem zweiten Prozessor verwendet, wobei der erste Prozessor und der zweite Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwenden.
  • Gemäß einer weiteren Ausführungsform der Erfindung kann ein Verfahren zum Betreiben einer Prozessor-Anordnung vorgesehen sein, wobei das Verfahren aufweist: Generieren einer ersten Anfrage für einen Speicher-Zugriffsdienst zum Zugreifen auf einen Speicher, der von einem ersten Prozessor und einem zweiten Prozessor gemeinsam genutzt wird, Übermitteln der ersten Anfrage von dem ersten Prozessor an den zweiten Prozessor, wobei der zweite Prozessor die erste Anfrage mittels mindestens eines kryptographischen Mechanismus ausführt, Generieren einer zweiten Anfrage für den Speicher-Zugriffsdienst zum Zugreifen auf den Speicher gemäß der ersten Anfrage, Übermitteln der zweiten Anfrage von dem zweiten Prozessor an den Speicher, und Ausführen der zweiten Anfrage durch den Speicher.
  • Gemäß einem Ausführungsbeispiel kann der erste Prozessor einen ersten geheimen Schlüssel des ersten Prozessors verwenden, der dem ersten Prozessor beim Generieren der ersten Anfrage zugeordnet wird.
  • Gemäß einem weiteren Ausführungsbeispiel kann der zweite Prozessor einen zweiten geheimen Schlüssel des zweiten Prozessors verwenden, der dem zweiten Prozessor beim Ausführen der ersten Anfrage zugeordnet wird, wobei der erste geheime Schlüssel des ersten Prozessors und der zweite geheime Schlüssel des zweiten Prozessors der gleiche gemeinsam genutzte geheime Schlüssel sind.
  • Es kann vorgesehen sein, dass der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen aufweist, die besteht aus: Authentifizierung, Verschlüsselung, digitale Signatur, kryptographische Hash-Wert-Generierung.
  • In den Zeichnungen beziehen sich gleiche Bezugszeichen im Allgemeinen auf die gleichen Teile durch die verschiedenen Ansichten. Die Zeichnungen sind nicht zwangsläufig maßstabsgetreu, stattdessen liegt der Schwerpunkt im Allgemeinen darauf, die Prinzipien der Erfindung zu veranschaulichen. In der folgenden Beschreibung sind verschiedene Ausführungsformen der Erfindung unter Bezugnahme auf die folgenden Figuren beschrieben.
  • Es zeigen
  • 1 eine Prozessor-Anordnung gemäß einer Ausführungsform der Erfindung;
  • 2 eine Prozessor-Anordnung gemäß einer weiteren Ausführungsform der Erfindung;
  • 3 ein Ablaufdiagramm, das ein Verfahren zum Betreiben einer Prozessor-Anordnung gemäß einer Ausführungsform der Erfindung darstellt;
  • 4 eine Prozessor-Anordnung gemäß einer weiteren Ausführungsform der Erfindung;
  • 5A und 5B ein Nachrichten-Flussdiagramm gemäß einer Ausführungsform der Erfindung; und
  • 6A und 6B ein weiteres Nachrichten-Flussdiagramm gemäß einer Ausführungsform der Erfindung.
  • Gemäß einer beispielgebenden Ausführungsform der Erfindung wird ein System bereitgestellt, in welchem zwei Komponenten, (im Folgenden auch als Prozessoren bezeichnet), die Prozessor-Einheiten aufweisen, gemeinsam einen externen Speicher nutzen. Der Speicher wird gemeinsam genutzt, damit die Komponentenzahl und somit die Kosten des sich ergebenden Systems reduziert werden. Eine Lösung wird gewünscht, die diese kostensparende Lösung ermöglicht, ohne dass die von dem System bereitgestellte Gesamtsicherheit verringert wird.
  • Wie an späterer Stelle im Einzelnen erläutert wird, ist das System in einer Ausführungsform der Erfindung Teil einer Mobilfunktelefon-Plattform. Eine Komponente der Mobilfunktelefon-Plattform, der Applikations-Prozessor, ist direkt mit dem externen Speicher verbunden. In einer Ausführungsform der Erfindung gibt es zwei zu berücksichtigende Arten von Speichern. Diese sind ein flüchtiger Speicher (zum Beispiel ein dynamischer Vielfachzugriffsspeicher [Dynamic Random Access Memory (DRAN)]) und ein nichtflüchtiger Speicher. In einer Ausführungsform der Erfindung ist die zweite Komponente eine Modem-Steuerungseinheit, und diese greift über den Applikations-Prozessor auf den Speicher zu.
  • Im Zusammenhang mit dieser Beschreibung kann unter einem "flüchtigen Speicher" ein Speicher verstanden werden, der Daten speichert, wobei die Daten aktualisiert werden, während eine Stromversorgungsspannung des Speichersystems wirkt, mit anderen Worten in einem Zustand des Speichersystems, in welchem es mit Stromversorgungsspannung versorgt wird. Im Gegensatz dazu ist unter einem "nichtflüchtigen Speicher" ein Speicher zu verstehen, der Daten speichert, wobei die gespeicherten Daten nicht aktualisiert werden, während die Stromversorgungsspannung des Speichersystems wirkt.
  • Ein "nichtflüchtiger Speicher" im Zusammenhang mit dieser Beschreibung weist jedoch einen Speicher auf, dessen gespeicherte Daten nach einer Unterbrechung der externen Stromversorgung aktualisiert werden können. Beispielsweise können die gespeicherten Daten während eines Boot-Prozesses des Speichersystems aktualisiert werden, nachdem das Speichersystem abgeschaltet war oder zum Energiesparen in einen Energie-Deaktivierungs-Modus überführt wurde, in welchem zumindest einige oder die meisten der Speichersystem-Komponenten deaktiviert sind. Ferner können die gespeicherten Daten in regelmäßigen zeitlichen Abständen aktualisiert werden, jedoch nicht, wie bei einem "flüchtigen Speicher" alle paar Pikosekunden oder Nanosekunden oder Millisekunden, sondern eher in einem Bereich von Stunden, Tagen, Wochen oder Monaten.
  • Was die Sicherheit betrifft, wird der auf der Modem-Steuerungseinheit laufende Computerprogramm-Code üblicherweise als sicher und Teil eines geschlossenen Systems betrachtet. Der Applikations-Prozessor führt üblicherweise ein komplexes Betriebssystem (englisch: Operating System, OS) sowie möglicherweise nicht vertrauenswürdige Anwendungen aus, die vom Endbenutzer heruntergeladen wurden. In einer Ausführungsform der Erfindung weist der Applikations-Prozessor üblicherweise einen sicheren Modus auf, der ein sicherer Hardware-Thread sein kann, von einer Betriebssystem-(OS)-Virtualisierung unterstützt werden könnte oder sogar einen zweiten Prozessor zum Durchführen sicherer Arbeitsprozesse unterstützen könnte.
  • Die oben genannten zwei Arten von Speichern werden im Allgemeinen unterschiedlich gehandhabt. Der Zugriff auf den flüchtigen Speicher (zum Beispiel DRAM) wird durch den sicheren Teil des Applikations-Prozessors eingerichtet, so dass nicht sichere Anwendungen, die auf dem Applikations-Prozessor laufen, keinen Zugriff auf den von der Modem-Steuerungseinheit verwendeten DRAM-Speicher haben. Die Modem-Steuerungseinheit hat normalerweise über den Applikations-Prozessor direkten Zugriff auf die DRAN-Schnittstelle.
  • Die Modem-Steuerungseinheit kann mit dem Applikations-Prozessor über einen gemeinsam genutzten Speicherbereich kommunizieren, aber die Zugriffsrechte in diesem Bereich differenzieren nicht zwischen der sicheren Maschine und der nicht sicheren Maschine des Applikations-Prozessors.
  • Nichtflüchtiger-Speicher-Schreibzugriffe sind komplexer in der Handhabung, und dies trifft insbesondere auf einen NAND- Flash-Speicher zu. Die Dateisysteme sind bei einem NAND-Flash-Speicher ebenfalls komplexer als bei einer direkten DRAN-Nutzung. Aus diesem Grund werden Schreibzugriffe im Allgemeinen von dem Applikations-Prozessor als ein Dienst für die Modem-Steuerungseinheit durchgeführt.
  • In einer Ausführungsform der Erfindung wird der nichtflüchtige Speicher (zum Beispiel ein nichtflüchtiger Vielfachzugriffsspeicher [englisch: Non-Volatile Random Access Memory, NVRAM] wie zum Beispiel ein Flash-Speicher, zum Beispiel ein Floating-Gate-Speicher [Floating Gate Memory] oder ein Ladungsfänger-Speicher [Charge Trapping Memory]) in einen oder mehrere sichere Abschnitte und einen oder mehrere nicht sichere Abschnitte aufgeteilt.
  • Wenn die Modem-Steuerungseinheit einen sicheren Schreibvorgang durchführen möchte, dann kommuniziert sie mit dem Applikations-Prozessor, muss jedoch sicher sein, dass sie mit der sicheren Maschine des Applikations-Prozessors (zum Beispiel mit dem in einem sicheren Modus arbeitenden Applikations-Prozessor) kommuniziert, so dass sie sicher sein kann, dass ihr sicherer Schreibzugriff wirklich durchgeführt wird, oder sie benötigt den Beweis, dass der Schreibvorgang tatsächlich durchgeführt wurde.
  • Um dies zu erreichen, wurden herkömmlicherweise die folgenden Ansätze angewendet:
    • i) Ignorieren von Sicherheitsfragen.
    • ii) Anbringen von extra Speicherkomponenten an die Modem-Steuerungseinheit, wodurch die Kosten des Systems steigen.
    • iii) Verlagern aller Sicherheitsmerkmale auf den Applikations-Prozessor. Dies ist jedoch nicht immer möglich, da manchmal die Sicherheitsmerkmale in die Modem-Steuerungseinheits-System-Software eingebettet sind, und dies ist der sicherste Platz zum Erzielen des oben beschriebenen Effekts.
  • In einer Ausführungsform der Erfindung wird der oben genannte Effekt durch Hinzufügen einer minimalen Anzahl von Sicherheitsmerkmalen zu der Modem-Steuerungseinheit erzielt (im Allgemeinen einem ersten Prozessor, der ein programmierbarer Prozessor (zum Beispiel ein programmierbarer Mikroprozessor), zum Beispiel ein vertrauenswürdiger Prozessor sein kann), so dass ein sicherer Kanal zwischen derselben und dem sicheren Teil des Applikations-Prozessors eingerichtet werden kann (im Allgemeinen eines zweiten Prozessors, der ein programmierbarer Prozessor sein kann (zum Beispiel ein programmierbarer Mikroprozessor), und der in einem sicheren Modus (zum Beispiel den sicheren Teil darstellend) und in einem nicht sicheren Modus betrieben werden kann).
  • 1 zeigt eine Prozessor-Anordnung 100 gemäß einer Ausführungsform der Erfindung. Gemäß einer Ausführungsform der Erfindung können die Prozessor-Anordnung 100 und die in alternativen Ausführungsformen der Erfindung beschriebenen Prozessor-Anordnungen Teil einer Mobil-Kommunikations-Vorrichtungs-Plattform, zum Beispiel Teil einer Mobiltelefon-Plattform sein.
  • Die Prozessor-Anordnung 100 kann einen ersten Prozessor 102, einen zweiten Prozessor 104 und mindestens einen Speicher 106 (flüchtig und/oder nichtflüchtig), der von dem ersten Prozessor 102 und dem zweiten Prozessor 104 gemeinsam genutzt wird, aufweisen.
  • In einer Ausführungsform der Erfindung weist der erste Prozessor 102 eine Prozessor-Kommunikations-Schnittstelle 108 auf, die den Speicher-Zugriffsdienst von dem zweiten Prozessor 104 nutzt. Ferner weist der erste Prozessor 102 in einer Ausführungsform de Erfindung eine Kryptographie-Einheit 110 auf, die einen oder mehrere kryptographische Mechanismen zum Beispiel im Zusammenhang mit einem Speicher-Zugriffsdienst bereitstellt. Der eine oder die mehreren kryptographischen Mechanismen werden an späterer Stelle ausführlicher beschrieben. Die Kryptographie-Einheit 110 und die Prozessor-Kommunikations-Schnittstelle 108 sind über eine prozessorinterne Verbindung 112 miteinander verbunden.
  • In einer Ausführungsform der Erfindung kann unter einem Speicher-Zugriffsdienst ein Schreibzugriffsdienst verstanden werden, der zum Schreiben eines Datenelements oder einer Mehrzahl von Datenelementen auf den Speicher 106 einen Schreibzugriff bereitstellt, oder aber ein Lese-Zugriffsdienst, der zum Lesen eines Datenelements oder einer Mehrzahl von Datenelementen aus dem Speicher 106 einen Lesezugriff bereitstellt.
  • In einer Ausführungsform der Erfindung weist der zweite Prozessor 104 eine Prozessor-Kommunikations-Schnittstelle 114 auf, die dem ersten Prozessor 102 einen Speicher-Zugriffsdienst bereitstellt. Der zweite Prozessor 104 weist ferner eine Speicher-Schnittstelle 116 auf, die Zugriff auf den mindestens einen Speicher 106 bereitstellt. Ferner weist der zweite Prozessor 104 eine Kryptographie-Einheit 118 auf, die einen oder mehrere kryptographische Mechanismen, zum Beispiel im Zusammenhang mit einem Speicher-Zugriffsdienst bereitstellt. Der eine oder die mehreren kryptographischen Mechanismen werden später im Einzelnen beschrieben. Die Kryptographie-Einheit 118, die Kommunikations-Schnittstelle 114 und die Speicher-Schnittstelle 116 sind über eine prozessorinterne Verbindung 120 miteinander verbunden.
  • Im Zusammenhang mit einem Speicher-Zugriffsdienst verwenden der erste Prozessor 102 und/oder der zweite Prozessor 104 mindestens einen kryptographischen Mechanismus, der zum Beispiel mittels der Kryptographie-Einheiten 110, 118 bereitgestellt wird.
  • Der erste Prozessor 102 und der zweite Prozessor 104 sind über ihre jeweiligen Prozessor-Kommunikations-Schnittstellen 108, 114 und eine Prozessor-Prozessor-Verbindung 122 miteinander verbunden.
  • In einer Ausführungsform der Erfindung weist der Speicher 106 einen Speicherbereich 124, zum Beispiel ein Speicher-Array auf, der eine Mehrzahl von (zum Beispiel Tausende oder Millionen) Speicherzellen aufweist, zum Beispiel flüchtige Speicherzellen oder nichtflüchtige Speicherzellen. Ferner weist der Speicher 106 auf: eine (nicht dargestellte) Speicher-Steuerungseinheit zum Steuern von Speicher-Zugriffsvorgängen (zum Beispiel einem Schreibvorgang zum Schreiben von einem Datenelement oder einer Mehrzahl von Datenelementen in die Speicherzellen des Speicherbereichs 124 oder einem Lesevorgang zum Lesen von einem Datenelement oder einer Mehrzahl von Datenelementen aus den Speicherzellen des Speicherbereichs 124), und eine Speicher-Schnittstelle 126 (die mit dem Speicherbereich 124 über eine speicherinterne Verbindung 128 verbunden ist), die dem zweiten Prozessor 104 eine speicherexterne Daten-/Steuerungs-Input/Output-Schnittstelle bereitstellt.
  • Der Speicher 106 und der zweite Prozessor 106 sind über ihre jeweiligen Speicher-Schnittstellen 116, 126 und eine Speicher-Prozessor-Verbindung 130 miteinander verbunden.
  • Wie an späterer Stelle noch im Einzelnen erläutert wird, wird der Speicherzugriff (zum Beispiel der Lese-Zugriff oder der Schreib-Zugriff) von dem ersten Prozessor 102 (mindestens auch) über den zweiten Prozessor 104 durchgeführt.
  • 2 zeigt eine Prozessor-Anordnung 200 gemäß einer anderen Ausführungsform der Erfindung. Da die Elemente in der Prozessor-Anordnung 200 gemäß der in 2 gezeigten Ausführungsform ähnlich sind im Vergleich zu den jeweiligen Elementen der Prozessor-Anordnung 100 gemäß der in 1 gezeigten Ausführungsform, werden sie mit den gleichen Bezugszeichen versehen und nicht noch einmal im Einzelnen erläutert.
  • Die Prozessor-Anordnung 200 weist auf: einen ersten Prozessor 202 (in dieser Ausführungsform der Erfindung zum Beispiel ein vertrauenswürdiger Prozessor, wie zum Beispiel eine Modem-Steuerungseinheit), einen zweiten Prozessor 204 (in dieser Ausführungsform der Erfindung ein Prozessor, der in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar ist), und einen Speicher 206.
  • Der erste Prozessor 202 weist die Prozessor-Kommunikations-Schnittstelle 103 und die Kryptographie-Einheit 110 auf, die einen oder mehrere kryptographische Mechanismen bereitstellt, zum Beispiel im Zusammenhang mit einem Speicher-Zugriffsdienst. Ferner weist der erste Prozessor 202 einen ersten geheimen Schlüssel 208 des ersten Prozessors auf, der dem ersten Prozessor 202 zugeordnet ist. Die Kryptographie-Einheit 110 und die Prozessor-Kommunikations-Schnittstelle 108 sind über die prozessorinterne Verbindung 112 miteinander verbunden.
  • In einer Ausführungsform der Erfindung weist der zweite Prozessor 204 die Prozessor-Kommunikations-Schnittstelle 114, die Speicher-Schnittstelle 116, die Zugriff auf den mindestens einen Speicher 106 bereitstellt, und die Kryptographie-Einheit 118 auf, die einen oder mehrere kryptographische Mechanismen zum Beispiel im Zusammenhang mit einem Speicher-Zugriffsdienst bereitstellt. Ferner weist der zweite Prozessor 204 einen zweiten geheimen Schlüssel 210 des zweiten Prozessors auf, der dem zweiten Prozessor 204 zugeordnet ist. Der zweite Prozessor 204 ist eingerichtet zum Betrieb in einem vertrauenswürdigen Modus (in 2 mittels einer vertrauenswürdigen Maschine 212 symbolisiert) oder in einem nicht vertrauenswürdigen Modus (symbolisiert in 2 mittels einer nicht vertrauenswürdigen Maschine 214). Der zweite Prozessor 204 kann eingerichtet sein zum Bereitstellen eines aufgeteilten Hochfahrens (Split-Boot), während dessen (zum Beispiel kryptographisch unterstützt) entschieden werden kann, ob dieser auf eine kryptographisch sichere Weise (dann zum Beispiel in einem vertrauenswürdigen Modus betreibbar) oder auf eine kryptographisch unsichere Weise (dann zum Beispiel in einem nicht vertrauenswürdigen Modus betreibbar) booten soll. Die Kryptographie-Einheit 118, die Prozessor-Kommunikations-Schnittstelle 114 und die Speicher-Schnittstelle 116 sind über eine prozessorinterne Verbindung 120 miteinander verbunden.
  • Der mindestens eine Speicher 206 wird von dem ersten Prozessor 202 und dem zweiten Prozessor 204 gemeinsam genutzt und weist den Speicherbereich 124 und die Speicher-Schnittstelle 126 auf, die über die speicherinterne Verbindung 128 miteinander verbunden sind. Der Speicher 206 und der zweite Prozessor 204 sind über ihre jeweiligen Speicher-Schnittstellen 116, 126 und die Speicher-Prozessor-Verbindung 130 miteinander verbunden.
  • 3 zeigt ein Ablaufdiagramm 300, das ein Verfahren zum Betreiben einer Prozessor-Anordnung gemäß einer Ausführungsform der Erfindung darstellt.
  • In 302 wird eine erste Anfrage für einen Speicher-Zugriffsdienst zum Zugreifen auf einen Speicher generiert, der von einem ersten Prozessor und einem zweiten Prozessor gemeinsam genutzt wird.
  • In 304 wird die erste Anfrage von dem ersten Prozessor an den zweiten Prozessor übertragen.
  • Des Weiteren führt der zweite Prozessor in 306 die erste Anfrage mittels mindestens eines kryptographischen Mechanismus aus.
  • In 308 wird eine zweite Anfrage für den Speicher-Zugriffsdienst zum Zugreifen auf den Speicher gemäß der ersten Anfrage zum Beispiel durch den zweiten Prozessor generiert.
  • In 310 wird die zweite Anfrage von dem zweiten Prozessor an den Speicher übertragen.
  • In 312 wird die zweite Anfrage von dem Speicher ausgeführt. In dem Fall, dass die Anfrage für einen Speicher-Zugriffsdienst eine Schreib-Anfrage ist, kann (können) das (die) in die Speicherzellen des Speichers zu schreibende(n) Daten-Element(e) in der ersten Anfrage (und entsprechend in der zweiten Anfrage), oder in einer oder einer Mehrzahl von getrennten Schreibzugriffs-Nachrichten enthalten sein, und wird (werden) an den Speicher übertragen, um darin gespeichert zu werden. In dem Fall, dass die Anfrage für einen Speicher-Zugriffsdienst eine Lese-Anfrage ist, kann (können) das (die) aus den Speicherzellen des Speichers zu lesende(n) Daten-Element(e) in einer ersten Antwort-Nachricht enthalten sein, die von dem Speicher an den zweiten Prozessor übertragen wird (und entsprechend in einer zweiten Antwort-Nachricht, die von dem zweiten Prozessor an den ersten Prozessor übertragen wird).
  • 4 zeigt eine Prozessor-Anordnung 400 gemäß einer weiteren Ausführungsform der Erfindung. Es wird angemerkt, dass die besonderen Implementierungen der weiter unten beschriebenen Ausführungsform(en) sich analog auf besondere Ausführungsformen der oben beschriebenen Prozessor-Anordnung 100, 200 beziehen.
  • Die Prozessor-Anordnung 400 weist einen ersten Prozessor 402, zum Beispiel eine Modem-Steuerungseinheit, einen zweiten Prozessor 404, zum Beispiel einen Applikations-Prozessor, einen flüchtigen Speicher 406 (zum Beispiel einen flüchtigen Vielfachzugriffsspeicher (flüchtiger RAM)) und einen nichtflüchtigen Speicher 408 (zum Beispiel einen nichtflüchtigen Vielfachzugriffsspeicher [NVRAM, Non-Volatile Random Access Memory) auf.
  • Der erste Prozessor 402 weist eine Kryptographie-Einheit 410 mit einem Zufallszahlengenerator 412 und einem ersten geheimen Schlüssel 414 des ersten Prozessors auf. Somit wird in einer Ausführungsform der Erfindung ein geheimer Schlüssel (zum Beispiel der erste geheime Schlüssel des ersten Prozessors 414) zu dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) hinzugefügt. In einer Ausführungsform der Erfindung weist der erste Prozessor optional ferner eine Zentraleinheit (Central Processing Unit, CPU) und einen oder eine Mehrzahl von prozessorinternen Speichern auf.
  • Der zweite Prozessor 404 führt ein Betriebssystem (OS), wie zum Beispiel ein Windows-Betriebssystem oder ein Unixbasiertes Betriebssystem oder jegliche andere Art von Betriebssystem (zum Beispiel ein monolithisches Betriebssystem oder ein Mikrokern-Betriebssystem) sowie möglicherweise auch nicht-vertrauenswürdige Anwendungen aus (und hat dieses/diese somit installiert), die von dem Endbenutzer heruntergeladen wurden. In dieser Ausführungsform der Erfindung weist der Applikations-Prozessor im Allgemeinen einen sicheren Modus auf, der ein sicherer Hardware-Teilprozess sein kann, durch Betriebssystem-(OS)-Virtualisierung unterstützt werden könnte oder sogar einen zweiten Prozessor zum Ausführen sicherer Vorgänge unterstützen könnte.
  • Der zweite Prozessor 404 weist auf: eine erste Zugriffs-Steuer-Einheit 416 (einschließlich einer ersten Speicher-Schnittstelle (symbolisiert mittels eines ersten Pfeils 418)), die einen Speicher-Zugriffsdienst (Schreibzugriff und/oder Lese-Zugriff) in Bezug auf einen Speicherzugriff auf den flüchtigen Speicher 406 bereitstellt, und eine zweite Zugriffs-Steuer-Einheit 420 (einschließlich einer zweiten Speicher-Schnittstelle (symbolisiert mittels eines zweiten Pfeils 422)), die einen Speicher-Zugriffsdienst (Schreibzugriff und/oder Lese-Zugriff) in Bezug auf einen Speicherzugriff auf den nichtflüchtigen Speicher 408 bereitstellt.
  • In einer Ausführungsform der Erfindung weist der zweite Prozessor 404 auf: eine sichere Prozess-Einheit 424 (zum Beispiel eine sichere Maschine), die den Betrieb des zweiten Prozessors 404 in einem sicheren (zum Beispiel vertrauenswürdigen) Betriebsmodus darstellt, und eine nicht sichere Prozess-Einheit 426 (zum Beispiel eine nicht sichere Maschine), die den Betrieb des zweiten Prozessors 404 in einem nicht sicheren (zum Beispiel nicht vertrauenswürdigen) Betriebsmodus darstellt. Die sichere Prozess-Einheit 424 und die nicht sichere Prozess-Einheit 426 können separate konfigurierbare Hardware-Einheiten sein. In einer anderen Ausführungsform der Erfindung jedoch sind die sichere Prozess-Einheit 424 und die nicht sichere Prozess-Einheit 426 funktionale Einheiten, die von einem oder einer Mehrzahl von entsprechenden Computer-Programm-Elementen implementiert werden, die die jeweilige gewünschte Funktionalität bereitstellen. In dieser Ausführungsform der Erfindung werden die sichere Prozess-Einheit 424 und die nicht sichere Prozess-Einheit 426 mittels der zentralen Verarbeitungseinheit (CPU) (nicht dargestellt) des zweiten Prozessors 404 implementiert.
  • Die sichere Prozess-Einheit 424 weist eine Kryptographie-Einheit 428 auf, die einen Zufallszahlengenerator 430 und einen zweiten geheimen Schlüssel 432 des zweiten Prozessors aufweist. Somit wird in einer Ausführungsform der Erfindung ein geheimer Schlüssel (zum Beispiel der zweite geheime Schlüssel des zweiten Prozessors 432) zu dem zweiten Prozessor 404 (zum Beispiel dem Applikations-Prozessor) hinzugefügt.
  • Anschaulich enthält der sichere Prozess auf dem Applikations-Prozessor in einer Ausführungsform der Erfindung somit auch einen geheimen Schlüssel.
  • In einer Ausführungsform der Erfindung sind der erste Prozessor 402 und der zweite Prozessor 404 mittels einer Zwischen-Prozessor-Kommunikations-Verbindung 434 miteinander verbunden.
  • In einer Ausführungsform der Erfindung werden diese beiden Schlüssel (zum Beispiel der erste geheime Schlüssel des ersten Prozessors 414 und der zweite geheime Schlüssel des zweiten Prozessors 432) während des Herstellungsprozesses eines Mobilfunktelefons (in alternativen Ausführungsformen der Erfindung von jeder Art von Kommunikationsvorrichtung, wie zum Beispiel einem persönlichen digitalen Assistenten (PDA, Personal Digital Assistant), einem Laptop, und so weiter) geschrieben, und können später nicht geändert werden. In einer alternativen Ausführungsform der Erfindung können die beiden Schlüssel (zum Beispiel der erste geheime Schlüssel des ersten Prozessors 414 und der zweite geheime Schlüssel des zweiten Prozessors 432) mittels jedes geeigneten und herkömmlichen Schlüssel-Generierungs-Protokolls erzeugt werden.
  • Diese kryptographischen Schlüssel könnten gleich sein, wobei sie in diesem Fall als ein gemeinsamer symmetrischer Schlüssel für vertrauliche Kommunikation zwischen dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) und dem zweiten Prozessor 404 (zum Beispiel dem Applikations-Prozessor) verwendet werden könnten. Sie könnten auch unterschiedlich sein, aber jeder Prozessor 402, 404 könnte seinen eigenen kryptographischen Schlüssel zum vertraulichen Speichern eines gemeinsamen geteilten Schlüssels in einem nichtflüchtigen Vielfachzugriffsspeicher verwenden. In einer Ausführungsform der Erfindung wird dieser gemeinsame kryptographische Schlüssel während des Herstellungsprozesses der Prozessor-Anordnung (zum Beispiel eines Mobiltelefons) erzeugt und gespeichert.
  • Abhängig von dem gewünschten einen oder der Mehrzahl von kryptographischen Mechanismen während der Bereitstellung eines Speicher-Zugriffsdienstes (der eine oder eine Mehrzahl von Speicherzugriffsvorgängen enthalten könnte), sind die kryptographischen Einheiten 410, 428 eingerichtet zum Bereitstellen von mindestens einem kryptographischen Mechanismus einer Gruppe von kryptographischen Mechanismen, die besteht aus:
    • • Authentifizierung,
    • • Verschlüsselung,
    • • digitale Signatur,
    • • kryptographische Hash-Wert-Generierung, und so weiter.
  • Im Allgemeinen können die Kryptographie-Einheiten 410, 428 eingerichtet sein zum Bereitstellen von symmetrischen kryptographischen Algorithmen mittels gemeinsamer (eines gemeinsamen) geheimer (geheimen) Schlüssel(s) und/oder von asymmetrischen kryptographischen Algorithmen (zum Beispiel mittels eines oder einer Mehrzahl von kryptographischen Schlüsselpaaren, wobei jedes kryptographische Schlüsselpaar einen geheimen Schlüssel und einen öffentlichen Schlüssel aufweist).
  • Wenn Vertraulichkeit ein wichtiger Belang ist, und die zu speichernde Information zu dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) gehört, dann kann der Schreibzugriff von dem nicht sicheren Prozess des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) durchgeführt werden. In diesem Fall kann der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) für einen sicheren Lesevorgang und einen sicheren Schreibvorgang einen kryptographischen Schlüssel verwenden, den der zweite Prozessor 404 (zum Beispiel der Applikations-Prozessor) nicht kennt.
  • Wenn die betreffenden Daten von der sicheren Maschine des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) weiter verarbeitet werden sollen, dann ist ein gemeinsamer Schlüssel erforderlich. Wenn der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) die Bestätigung benötigt, dass ein bestimmtes Datenstück von dem sicheren Prozess des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) empfangen wurde, dann kann dies gemäß einer Ausführungsform der Erfindung auf die folgende Weise gelöst werden:
    Zunächst wird eine Ausführungsform beschrieben, in welcher keine Vertraulichkeit erforderlich ist (siehe Nachrichten-Flussdiagramm 500 in 5A und 5B).
  • Der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) stellt die Anfrage, einige sichere Daten in den zweiten Prozessor 404 (zum Beispiel den Applikations-Prozessor) zu schreiben. Zu diesem Zweck erzeugt der erste Prozessor 402 (zum Beispiel der Applikations-Prozessor) in 502 eine erste Anfrage-Nachricht 504 und überträgt diese an den zweiten Prozessor 404.
  • Nach dem Erhalt der ersten Anfrage-Nachricht 504 erzeugt der zweite Prozessor 404 (zum Beispiel der Applikations-Prozessor) in 506 einen ersten Zufallswert (RAND1) (zum Beispiel mittels des Zufallszahlengenerators 430) und sendet den ersten Zufallswert (RAND1) in einer ersten Zufallszahlen-Nachricht 508, die den ersten Zufallswert (RAND1) enthält, an den ersten Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) zurück.
  • Nach dem Erhalt der ersten Zufallszahlen-Nachricht 508 ermittelt der erste Prozessor 402 den ersten Zufallswert (RAND1) und speichert ihn in einem prozessorinternen Speicher.
  • In 510 wird von dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) zum Erzeugen (mit anderen Worten zum Generieren) einer Nachricht M eine Nachrichten-Information (m) mit dem ersten Zufallswert (RAND1) verknüpft, und anschließend wird in 512 von dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) eine Hash-Nachrichten-Authentifizierungs-Code-(HMAC)-Signatur (HMACsig) der Nachricht M generiert. Der gemeinsame Schlüssel Ksh (zum Beispiel der erste geheime Schlüssel des ersten Prozessors 414) wird beim Erzeugen der HMACsig verwendet. In einer Ausführungsform der Erfindung können der MD2-Algorithmus oder der MD5-Algorithmus (der dann durch die Kryptographie-Einheit 410 des ersten Prozessors 402 bereitgestellt wird) zum Generieren der HMACsig (auch als die erste HMAC-Signatur HMACsig1 bezeichnet) der Nachricht M verwendet werden. In einer alternativen Ausführungsform der Erfindung kann jeder andere Hash-Nachrichten-Authentifizierungs-Code-(HMAC)-Signatur-Algorithmus verwendet werden.
  • Die Nachricht M ist somit eine Verknüpfung der Nachrichten-Information (m) und des ersten Zufallswertes (RAND1): M = m|RAND1.
  • Die Hash-Nachrichten-Authentifizierungs-Code-(HMAC)-Signatur wird gebildet gemäß: HMACsig1 = HMAC(Ksh, M).
  • Die Nachricht M und die Hash-Nachrichten-Authentifizierungs-Code-(HMAC)-Signatur HMACsig1 werden von dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) in einer ersten Daten-Nachricht 541 an den zweiten Prozessor 404 (zum Beispiel den Applikations-Prozessor) gesendet.
  • Da die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) im Besitz des gemeinsamen Schlüssels ist, kann sie die empfangene erste Daten-Nachricht 514 authentifizieren, was sie in 516 durchführt, nachdem die erste Daten-Nachricht 514 empfangen wurde.
  • Der erste Zufallswert RAND1 wird zum Verhindern von Angriffen mit Aufzeichnungswiederholung (Replay-Attacks) verwendet, die das erneute Senden einer alten Nachricht erlauben würden (Replay-Angriff).
  • Wie in 5B dargestellt, bestätigt die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) in 518 den Empfang der ersten Daten-Nachricht 514 und damit der in einem der Speicher 406, 408 zu speichernden Nachrichten-Information (m), zum Beispiel durch Erzeugen (mit anderen Worten durch Generieren) einer weiteren HMAC-Signatur der empfangenen ersten HMAC-Signatur HMACsig1 (im Folgenden auch als die zweite HMAC-Signatur HMACsig2 bezeichnet), mittels des gemeinsamen geheimen Schlüssels Ksh (zum Beispiel des zweiten geheimen Schlüssel des zweiten Prozessors s 432): HMACsig2 = HMAC(Ksh, HMACsig1).
  • Die zweite HMAC-Signatur HMACsig2 wird dann in einer Bestätigungsnachricht 520 an den ersten Prozessor 402 gesendet.
  • Nach Erhalt der Bestätigungsnachricht 520, kann sie dann von dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) authentifiziert werden, der dann die Bestätigung hat, dass die Nachrichten-Information (m) von der sicheren Prozess-Einheit 424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) empfangen wurde.
  • Des Weiteren erzeugt die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) in 524 eine zweite Daten-Nachricht N 526, die die Nachrichten-Information (m) enthält, und überträgt sie an den jeweiligen Speicher (zum Beispiel den flüchtigen Speicher 406 oder den nichtflüchtigen Speicher 408), in welchem die Nachrichten-Information (m) gespeichert werden soll.
  • Nach Erhalt der zweiten Daten-Nachricht N 526 ermittelt der Speicher 406, 408 in 528 die Nachrichten-Information (m) und speichert sie.
  • In einer Ausführungsform, in welcher Vertraulichkeit erforderlich ist, kann der Wert m (zum Beispiel die Nachrichten-Information (m)) auch mit dem gemeinsamen geheimen Schlüssel Ksh (zum Beispiel dem ersten geheimen Schlüssel 414 des ersten Prozessors) verschlüsselt werden.
  • In dieser Ausführungsform der Erfindung speichert die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) nun den Wert m (zum Beispiel die Nachrichten-Information (m)) sicher.
  • 6A und 6B zeigen ein Nachrichten-Flussdiagramm 600, das eine beispielgebende Ausführungsform der Erfindung darstellt, in welcher ein Beweis bereitgestellt wird, dass der Schreibzugriffsdienst vollständig bereitgestellt wurde, mit anderen Worten, dass der Schreibvorgang erfolgt ist.
  • Der einfachste Fall wäre der, dass der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) absolutes Vertrauen zu der sicheren Prozess-Einheit 424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) hat. In diesem Fall nimmt der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) den Empfang der HMACsig2 auch als Beweis, dass die Nachrichten-Information (m) in den gewünschten Speicher 406, 408 geschrieben wurde (die Information, wo die Nachrichten-Information (m) gespeichert werden soll, kann dem zweiten Prozessor 404 in der ersten Nachricht M 514 oder in einer separaten Nachricht (nicht dargestellt) übermittelt werden). In diesem Fall könnte der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) den sicheren Flash-Bereich über die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) auslesen.
  • In einer weiteren Ausführungsform der Erfindung, die in 6 dargestellt ist, ist das Protokoll erweitert, so dass der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) den Beweis erhält, dass der Schreibvorgang tatsächlich stattgefunden hat.
  • Wieder wird ein Protokoll bereitgestellt, das es dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) erlaubt, sicher zu sein, dass er mit der sicheren Prozess-Einheit 424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) kommuniziert, und es sollte für einen externen Angreifer oder unsichere Software (die zum Beispiel installiert ist) auf dem zweiten Prozessor 404 (zum Beispiel dem Applikations-Prozessor) nicht möglich sein, die Antwort über einen Replay-Angriff zu fälschen.
  • Ein Protokoll gemäß einer Ausführungsform der Erfindung ist wie folgt. Es wird jedoch angemerkt, dass jede andere Art von Protokoll zum Bereitstellen des Beweises, dass der Schreibvorgang tatsächlich stattgefunden hat, in einer alternativen Ausführungsform der Erfindung verwendet werden kann.
  • Nach dem Schreibvorgang stellt der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) die Anfrage des Lesens eines sicheren Wertes (m), und erzeugt in 602 einen zweiten Zufallswert RAND2 (zum Beispiel mittels des Zufallszahlengenerators 412 des ersten Prozessors 402). In 604 erzeugt der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) eine Schreib-Beweis-Anfragen-Nachricht 606 (die die Anfrage enthält, den sicheren Wert (m) und den zweiten Zufallswert RAND2 zu lesen), und sendet diese an den zweiten Prozessor 404 (zum Beispiel den Applikations-Prozessor).
  • Nach dem Empfang der Schreib-Beweis-Anfragen-Nachricht 606 liest die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors (zum Beispiel des Applikations-Prozessors) den Wert (m) aus dem Speicher 406, 408. Dies erfolgt insofern, dass in 608 die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors (zum Beispiel des Applikations-Prozessors) eine Lese-Anfrage-Nachricht 610 erzeugt (die die Adresse des zu lesenden sicheren Werts (m) enthält), und die Lese-Anfrage-Nachricht 610 an den jeweiligen Speicher 406, 408 überträgt.
  • Nach dem Erhalt der Lese-Anfrage-Nachricht 610 liest der Speicher 406, 408 in 612 den angeforderten sicheren Wert (m) aus dem Speicherbereich, und erzeugt in 614 eine Lese-Antwort-Nachricht 616, die den Lese-Sicherheits-Wert (m) enthält. Der Speicher 406, 408 überträgt dann die Lese-Antwort-Nachricht 616 an die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors).
  • Nach dem Erhalt der Lese-Antwort-Nachricht 616 ermittelt die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) den sicheren Wert (m) aus der Lese-Antwort-Nachricht 616 und verknüpft diesen mit dem zweiten Zufallswert RAND2, wodurch in 618 eine Lese-Beweis-Antwort-Nachricht A erzeugt wird: A = m|RAND2.
  • In 620 erzeugt dann die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) einen dritten Signatur-Wert HMACsig3 über die Schreib-Beweis-Antwort-Nachricht A: HMACsig3 = HMAC(Ksh, A).
  • Das Protokoll kann auf eine der folgenden Arten vollendet werden:
    Gemäß einer Ausführungsform der Erfindung erzeugt die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors), wie in 6B dargestellt, in 622 eine Schreib-Beweis-Nachricht 624 (die den sicheren Wert (m) und den dritten Signatur-Wert HMAC3sig enthält), und übermittelt diese an den ersten Prozessor (zum Beispiel die Modem-Steuerungseinheit). Somit gibt der zweite Prozessor 404 anschaulich den sicheren Wert (m) und den dritten Signatur-Wert HMACsig3 an den ersten Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) aus. Der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) verwendet den empfangenen ausgegebenen dritten Signatur-Wert HMACsig3 zum Verifizieren (in 626), dass er mit der sicheren Prozess-Einheit 424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) kommuniziert, sowie zum Prüfen, dass bei der Kommunikation keine Verfälschung stattgefunden hat.
  • In einer alternativen Ausführungsform der Erfindung (nicht in den Figuren dargestellt) gibt die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) den dritten Signatur-Wert HMACsig3 aus. Der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) liest den sicheren Wert (m) selbst direkt aus dem Speicher 406, 408. Der dritte Signatur-Wert HMACsig3 kann zum Prüfen der Korrektheit des sicheren Wertes (m) im Speicher 406, 408 verwendet werden.
  • In noch einer weiteren Ausführungsform der Erfindung (nicht in den Figuren dargestellt) liest der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) den sicheren Wert (m) und den dritten Signatur-Wert HMACsig3 (der in diesem Fall von dem zweiten Prozessor 404 im Speicher 406, 408 gespeichert würde) direkt selbst aus dem Speicher 406, 408.
  • Die Verwendung des dritten Signatur-Wertes HMACsig3 (der mittels des zweiten Zufallswertes RAND2 erzeugt werden kann), beweist in allen Optionen beweist, dass der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) tatsächlich mit der sicheren Prozess-Einheit 424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) kommuniziert, und dass der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) nicht mit einem Replay-Angriff getäuscht wird.
  • Ein Effekt der beiden soeben beschriebenen alternativen Ausführungsformen ist, dass der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) weniger Vertrauen darin setzen muss, ob die sichere Maschine des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) tatsächlich die Daten auf den Speicher (zum Beispiel den Flash) geschrieben hat. Wenn die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) in der in 6 dargestellten Ausführungsform keinen direkten Zugriff auf den Speicher (zum Beispiel den Flash) hat, dann könnte die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) dahingehend getäuscht werden, dass sie glaubt, dass die nicht sichere Software den Zugriff auf den Speicher (zum Beispiel den Flash-Speicher) durchgeführt hat (Man-In-The-Middle-Angriff).
  • Manche Applikations-Prozessoren können einen umfassenden DRAN-Zugriffs-Schutz aufweisen, wobei es separate Speicherbereiche für die Kommunikation zwischen dem ersten Prozessor 402 (zum Beispiel der Modem-Steuerungseinheit) und der sicheren Prozess-Einheit 424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) gibt.
  • Die beschriebenen Verfahren sind ferner nützlich zum Verhindern von physikalischen Angriffen, wobei Schreibzugriffe auf einer Zwischen-Komponenten-Ebene verhindert werden.
  • Wenn der nichtflüchtige Speicher 408 ein Flash-Speicher und im Besonderen ein NAND-Flash-Speicher ist, dann sollte die Lese-Anfrage verursachen, dass der zweite Prozessor 404 (zum Beispiel der Applikations-Prozessor) ein Lesen aus dem NAND-Flash-Speicher erzwingt, und dass eine "Aktualisierung" der Daten in dem flüchtigen Speicher, zum Beispiel dem DRAM oder SRAM erzwungen wird, der ebenfalls in dem NAND-Flash-Speicher vorgesehen ist, wenn der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) keinen direkten Zugriff auf den NAND-Flash-Speicher hat. Wenn ein NOR-Flash-Speicher als nichtflüchtiger Speicher 408 verwendet wird, dann kann der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) fähig sein, direkt aus dem NOR-Flash zu lesen (zum Beispiel über die zweite Prozessor-Komponente 404 (zum Beispiel den Applikations-Prozessor).
  • Wenn die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) direkten Zugriff auf den Flash-Speicher hat, dann kann die nicht sichere Prozess-Einheit 426 (zum Beispiel die nicht sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) die DRAM-(oder zum Beispiel SRAM)-Aktualisierung nicht vortäuschen, da sie diese Daten wahrscheinlich nur durch Lesen des Flash-Speichers aufweisen kann. Dies beweist dann, dass der Schreibvorgang auf den Flash-Speicher stattgefunden hat. Eine Gefahr kann weiterhin bestehen. Dies wäre der Fall, wenn die nicht sichere Software im zweiten Prozessor 404 (zum Beispiel dem Applikations-Prozessor) dann die Werte in dem DRAN-Speicher (oder zum Beispiel SRAM-Speicher) mit einem vorherigen gültigen Wert überschreibt. Dies kann mit einem geeigneten Flash-Verwaltungs-System verhindert werden.
  • Ferner ist es in einer anderen Ausführungsform der Erfindung vorgesehen, dass die nicht sichere Prozess-Einheit 426 (zum Beispiel die nicht sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) nicht direkt in den DRAN-Bereich (oder zum Beispiel SRAM-Bereich) des ersten Prozessors (zum Beispiel der Modem-Steuerungseinheit) schreibt, sondern in einen Referenz-Bereich. Dies wird weiter unten im Einzelnen erläutert.
  • Im Folgenden werden die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) und die Flash-Speicher-Verwaltung gemäß einer Ausführungsform der Erfindung genauer beschrieben.
  • Um sicherzustellen, dass ein Schreibvorgang durch die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) stattfindet, benötigt die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) direkten Zugriff auf den Flash-Speicher. Dies kann einige Nachteile mit sich bringen. Flash-Datei-Systeme sind im Allgemeinen ziemlich komplex, und eine sichere Maschine sollte so einfach wie möglich sein. Eine Ausführungsform der Erfindung sieht beides vor, nämlich einen direkten Zugriff auf den Flash-Speicher und eine relativ einfache sichere Maschine des zweiten Prozessors 404.
  • In einer Ausführungsform der Erfindung ist der sichere Flash-Speicher 408 in zwei Teile gespalten.
  • Ein erster Teil weist die tatsächlichen zu speichernden Daten auf. Diese wären in der bisherigen Beschreibung zum Beispiel die Nachrichten-Daten (m).
  • Ein zweiter Teil weist die Signaturen der Nachrichten-Daten (m) auf. Diese wären zum Beispiel der erste Signatur-Wert HMACSig1 und eine Zufallszahl RANDx, die zum Berechnen des ersten Signatur-Werts HMACSig1 verwendet wird.
  • Die nicht sichere Software ist für den ersten Teil des sicheren Flash-Speichers 408 zuständig. Der zweite Teil ist ein sehr kleines einfaches Flash-System, und wird zum Beispiel von der sicheren Prozess-Einheit 424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) verwaltet. Schreib-Steuerung über den zweiten Teil des sicheren Flash-Speichers 408 reicht in dieser Ausführungsform der Erfindung zum Sicherstellen der Integrität und Authentizität von in dem ersten Teil des Flash-Speichers 408 gespeicherten Daten aus. Wenn die sichere Prozess-Einheit 424 (zum Beispiel die sichere Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors) auch Lese-Zugriff auf die Spiegelung dieser Werte in dem DRAM des Flash-Speichers 408 hat, dann kann das Überschreiben des Spiegels dieser Werte durch eine nicht sichere Software auch erfasst werden. Der erste Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) könnte auch zu jeder Zeit anfordern, dass Werte nach Integrität geprüft werden.
  • Ein weiteres Verfahren einer alternativen Ausführungsform der Erfindung wäre für den ersten Prozessor 402 (zum Beispiel die Modem-Steuerungseinheit) das Schreiben der Nachrichten-Daten (m) in den DRAM (oder zum Beispiel SRAM) 406, und das Auffordern der sicheren Prozess-Einheit 424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors 404 (zum Beispiel des Applikations-Prozessors), diese in den Flash-Speicherzellen des Flash-Speichers 408 zu speichern. Der DRAM (oder zum Beispiel SRAM) 406 benötigt dann keine Aktualisierung, und es wäre lediglich notwendig zu beweisen, dass der HMAC-Wert in den Flash-Speicherzellen des Flash-Speichers 408 gespeichert wurde. Wenn die Nachrichten-Information (m) nicht in den Flash-Speicherzellen des Flash-Speichers 408 gespeichert wurde, wird sie später (zumindest nach dem nächsten Rücksetzen) ermittelt, da der HMAC-Wert sicher gespeichert wurde.
  • Einige andere System-Konfigurationen, wo die Grundprinzipien der oben erläuterten Ausführungsformen verwendet werden, sind ebenfalls möglich, und einige von diesen werden im Folgenden im Einzelnen erläutert.
  • Bei einer Einzel-Chip-Lösung, wo der zweite Prozessor (zum Beispiel ein Applikations-Prozessor) und ein erster Prozessor (zum Beispiel eine Kommunikations-Steuerungseinheit, wie zum Beispiel eine Modem-Steuerungseinheit) Speicher gemeinsam nutzen, ist es möglich, dass der erste Prozessor (zum Beispiel die Modem-Steuerungseinheit) einen größeren Grad an Vertrauen genießt, aber dass die zweite Steuerungseinheit (zum Beispiel der Applikations-Prozessor) das Flash-Datei-System steuert. In diesem Fall könnte der erste Prozessor (zum Beispiel die Modem-Steuerungseinheit) als die sichere Maschine betrachtet werden, und einen ausschließlichen Schreibzugriff auf einen Bereich eines Flash-Speichers erhalten, wo er die Hash-(HMAC)-Werte von durch die zweite Steuerungseinheit (zum Beispiel den Applikations-Prozessor) in dem Haupt-Flash-Speicher-Bereich gespeicherten Daten speichern kann.
  • Ein weiteres Beispiel für die Grundkonzepte von Ausführungsformen der Erfindung ist wie folgt.
  • Eine sichere Maschine wird in eine Flash-Speicher-Komponente eingebaut. Die Hash-Werte (und wenn erforderlich die Zufallszahlen) werden von der sicheren Maschine in der Flash-Speicher-Komponente berechnet. Diese Implementierung einer Ausführungsform der Erfindung stellt sicher, dass Replay- Angriffe auf einer Zwischen-Chip-Ebene zwischen Prozessor und Speicher nicht möglich sind, und führt in manchen Fällen zu einfacheren Systemen. In einer Ausführungsform der Erfindung konnte für den ersten Prozessor (zum Beispiel die Modem-Steuerungseinheit) sichergestellt werden, dass er direkt mit der sicheren Maschine in dem Speicher kommunizierte. Der einzige bleibende mögliche Angriff in dieser Ausführungsform ist ein Dienstverweigerungs-Angriff (englisch Denial of Service) wobei ein externer Angreifer den Schreibvorgang physikalisch verhindert, dies wird jedoch mit dieser Lösung zumindest immer erfasst werden.
  • In einer Ausführungsform der Erfindung nutzen zwei Komponenten ein gemeinsam vereinheitlichtes Speichersystem, und eine der Komponenten (zum Beispiel eine erste Komponente A) greift über die andere Komponente (zum Beispiel eine zweite Komponente B) auf den Speicher zu. In einer Ausführungsform der Erfindung weist die zweite Komponente (zum Beispiel B) ferner eine sichere Maschine und eine nicht sichere Maschine auf.
  • Die erste Komponente (zum Beispiel Komponente A) und die zweite Komponente (zum Beispiel Komponente B) weisen jeweils einen nichtflüchtigen kryptographischen Schlüssel auf, der entweder gemeinsam genutzt wird, oder zum jeweiligen Schützen eines gemeinsamen Schlüssels (Ksh) verwendet wird.
  • Jeder Authentifizierungs-Austausch wird genutzt, damit die sichere Maschine der zweiten Komponente (zum Beispiel Komponente B) ein sicheres Speichern von Daten in dem nichtflüchtigen Vielfachzugriffspeicher (RAM) für die erste Komponente (zum Beispiel Komponente A) durchführt. In einer Ausführungsform der Erfindung benötigt die erste Komponente (zum Beispiel Komponente A) hauptsächlich, dass die Daten, die sie zum Schreiben schickt, wie angefordert in einer unveränderten Form gespeichert werden.
  • In Ausführungsform der Erfindung basiert der Austausch auf der Verwendung des gemeinsamen geheimen Schlüssels (zum Beispiel Ksh) und zweier Zufallszahlengeneratoren.
  • In einer Ausführungsform der Erfindung wird das Protokoll verwendet, so dass die erste Komponente (zum Beispiel Komponente A) den Beweis hat, dass sie mit der sicheren Maschine der zweiten Komponente (zum Beispiel Komponente B) kommuniziert, wenn sie einige in dem gemeinsamen Speicher zu speichernde Daten aussendet.
  • In einer Ausführungsform der Erfindung ist das Protokoll erweitert, so dass auch die zweite Komponente (zum Beispiel Komponente B) der ersten Komponente (zum Beispiel Komponente A) beweisen kann, dass sie tatsächlich einen Schreibvorgang durchgeführt hat.
  • In einer Ausführungsform der Erfindung wird auch das Aufspalten des Flash-Datei-Systems in Betracht gezogen, so dass die sichere Maschine der zweiten Komponente (zum Beispiel Komponente B) lediglich die Referenz-(HMAC)-werte speichern muss. Dadurch wird das Ausführen der Software in der sicheren Maschine der zweiten Komponente (zum Beispiel Komponente B) leichter und somit sicherer.
  • In einer Ausführungsform der Erfindung sind die Ausführungsformen zu einer Zwei-Prozessoren-Einzelne-Komponente-Lösung ausgeweitet, wobei ein Prozessor sicherer ist als der andere Prozessor, jedoch der weniger sichere Prozessor für das Flash-Datei-System zuständig ist. In diesem Fall hat der sicherere Prozessor auch Zugriff auf einen kleinen Teil des Flash-Speichers zum Speichern des Referenz-(HMAC)-Daten-Sicherungs-Zeitpunktes.
  • Bei einer weiteren Ausführungsform der Erfindung soll der Authentifizieruns-Vorgang zwischen einer Komponente und einem Speicher stattfinden, so dass eine physikalische Intervention zwischen Lesevorgang und Schreibvorgang auf den Speicher ausgeschlossen wird.
  • In einer Ausführungsform der Erfindung sind der erste Prozessor und der zweite Prozessor in einem gemeinsamen Prozessor-Paket innerhalb der Prozessor-Anordnung integriert.
  • In einer Ausführungsform der Erfindung sind der erste Prozessor und der zweite Prozessor monolithisch in ein Substrat innerhalb der Prozessor-Anordnung integriert.
  • In einer Ausführungsform der Erfindung ist eine Kommunikationsvorrichtung, wie zum Beispiel eine Mobilfunk-Kommunikations-vorrichtung, wie zum Beispiel ein Mobiltelefon vorgesehen, die eine Prozessor-Anordnung gemäß einer der oben beschriebenen Ausführungsformen aufweist.
  • Während die Erfindung insbesondere unter Bezugnahme auf besondere Ausführungsformen gezeigt und beschrieben wurde, sollte der Fachmann erkennen, dass zahlreiche Änderungen in Form und Einzelheiten durchgeführt werden können, ohne dadurch den Gedanken und den Schutzbereich der Erfindung zu verlassen, wie er durch die beigefügten Ansprüche definiert ist. Der Schutzbereich der Erfindung wird somit durch die angehängten Ansprüche beschrieben, und jegliche Änderungen, die die Bedeutung und den Entsprechungsbereich der Ansprüche betreffen, sind aus diesem Grund mit enthalten.

Claims (47)

  1. Prozessor-Anordnung, aufweisend: • einen ersten Prozessor, • einen zweiten Prozessor, • mindestens einen Speicher, der von dem ersten Prozessor und dem zweiten Prozessor gemeinsam genutzt wird, • wobei der zweite Prozessor aufweist: • eine Speicher-Schnittstelle, die Zugriff auf den mindestens einen Speicher bereitstellt, • eine Prozessor-Kommunikations-Schnittstelle, die einen Speicher-Zugriffsdienst für den ersten Prozessor bereitstellt, • wobei der erste Prozessor aufweist: • eine Prozessor-Kommunikations-Schnittstelle, die den Speicher-Zugriffsdienst von dem zweiten Prozessor verwendet, • wobei der erste Prozessor und der zweite Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwenden.
  2. Prozessor-Anordnung gemäß Anspruch 1, wobei der erste Prozessor ein programmierbarer Prozessor ist.
  3. Prozessor-Anordnung gemäß Anspruch 1 oder 2, wobei der erste Prozessor ein vertrauenswürdiger Prozessor ist.
  4. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 3, wobei der erste Prozessor ein Kommunikations-Prozessor ist.
  5. Prozessor-Anordnung gemäß Anspruch 4, wobei der erste Prozessor eine Modem-Steuerungseinheit ist.
  6. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 5, ferner aufweisend: einen dem ersten Prozessor zugeordneten ersten geheimen Schlüssel des ersten Prozessors.
  7. Prozessor-Anordnung gemäß Anspruch 6, wobei der erste geheime Schlüssel des ersten Prozessors unveränderbar ist.
  8. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 7, wobei der zweite Prozessor ein programmierbarer Prozessor ist.
  9. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 8, wobei der zweite Prozessor in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar ist.
  10. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 9, wobei der zweite Prozessor ein Applikations-Prozessor ist.
  11. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 10, ferner aufweisend: einen dem zweiten Prozessor zugeordneten zweiten geheimen Schlüssel des zweiten Prozessors.
  12. Prozessor-Anordnung gemäß Anspruch 11, wobei der zweite geheime Schlüssel des zweiten Prozessors unveränderbar ist.
  13. Prozessor-Anordnung gemäß den Ansprüchen 6 und 11, wobei der erste geheime Schlüssel des ersten Prozessors und der zweite geheime Schlüssel des zweiten Prozessors der gleiche gemeinsam genutzte geheime Schlüssel sind.
  14. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 13, wobei der mindestens eine Speicher mindestens einen flüchtigen Speicher aufweist.
  15. Prozessor-Anordnung gemäß Anspruch 14, wobei der mindestens eine flüchtige Speicher mindestens einen Vielfachzugriffsspeicher aufweist.
  16. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 15, wobei der mindestens eine Speicher mindestens einen nichtflüchtigen Speicher aufweist.
  17. Prozessor-Anordnung gemäß Anspruch 16, wobei der mindestens eine nichtflüchtige Speicher mindestens einen Flash-Speicher aufweist.
  18. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 17, wobei der erste Prozessor einen Authentifizierungs-Mechanismus verwendet, so dass er sich gegenüber dem zweiten Prozessor in einem Speicher-Zugriffsdienst authentifiziert.
  19. Prozessor-Anordnung gemäß Anspruch 13 und 18, wobei der erste Prozessor den gemeinsamen geheimen Schlüssel während der Authentifizierung verwendet.
  20. Prozessor-Anordnung gemäß einem der Ansprüche 9 bis 19, wobei der zweite Prozessor, der in dem vertrauenswürdigen Modus betrieben wird, über die Speicher-Schnittstelle Zugriff auf den Speicher hat.
  21. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 20, wobei der Speicher einen ersten Speicherbereich und einen zweiten Speicherbereich aufweist, wobei der erste Speicherbereich durch den ersten Prozessor oder den zweiten Prozessor zu speichernde Daten speichert, wobei der zweite Speicherbereich von dem mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwendete kryptographische Daten speichert.
  22. Prozessor-Anordnung gemäß Anspruch 21, wobei der zweite Speicherbereich digitale Signaturen der zu speichernden Daten speichert.
  23. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 22, wobei der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen aufweist, die aufweisen: • Authentifizierung, • Verschlüsselung • digitale Signatur, • kryptographische Hash-Wert-Generierung.
  24. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 23, wobei der erste Prozessor und der zweite Prozessor in ein gemeinsames Prozessor-Package integriert sind.
  25. Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 24, wobei der erste Prozessor und der zweite Prozessor monolithisch in ein Substrat integriert sind.
  26. Prozessor, aufweisend: • eine Speicher-Schnittstelle, die Zugriff auf mindestens einen Speicher bereitstellt, • eine Prozessor-Kommunikations-Schnittstelle, die für einen anderen Prozessor einen Speicher-Zugriffsdienst bereitstellt, • wobei der Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst zum Authentifizieren des anderen Prozessors verwendet.
  27. Prozessor gemäß Anspruch 26, wobei der Prozessor ein programmierbarer Prozessor ist.
  28. Prozessor-Anordnung gemäß Anspruch 26 oder 27, wobei der Prozessor in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar ist.
  29. Prozessor gemäß einem der Ansprüche 26 bis 28, wobei der Prozessor ein Applikations-Prozessor ist.
  30. Prozessor gemäß einem der Ansprüche 26 bis 29, ferner aufweisend: einen dem Prozessor zugeordneten geheimen Schlüssel des Prozessors.
  31. Prozessor gemäß Anspruch 30, wobei der zweite geheime Schlüssel des zweiten Prozessors unveränderbar ist.
  32. Prozessor gemäß einem der Ansprüche 28 bis 31, wobei der Prozessor, der in dem vertrauenswürdigen Modus betrieben wird, über die Speicher-Schnittstelle Zugriff auf den Speicher hat.
  33. Prozessor gemäß einem der Ansprüche 26 bis 32, wobei der Prozessor eine Speicher-Steuerungseinheit ist.
  34. Prozessor gemäß Anspruch 33, wobei die Speicher-Steuerungseinheit zusammen mit einem Speicher monolithisch in das gleiche Substrat integriert ist.
  35. Prozessor-Anordnung, aufweisend: • einen vertrauenswürdigen ersten Prozessor, • einen dem ersten Prozessor zugeordneten ersten geheimen Schlüssel des ersten Prozessors, • einen zweiten Prozessor, der in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar ist, • einen dem zweiten Prozessor zugeordneten zweiten geheimen Schlüssel des zweiten Prozessors • mindestens einen Speicher, der von dem ersten Prozessor und dem zweiten Prozessor gemeinsam genutzt wird, • wobei der zweite Prozessor aufweist: • eine Speicher-Schnittstelle, die Zugriff auf den mindestens einen Speicher bereitstellt, • eine Prozessor-Kommunikations-Schnittstelle, die einen Speicher-Zugriffsdienst für den ersten Prozessor bereitstellt, • wobei der erste Prozessor aufweist: • eine Prozessor-Kommunikations-Schnittstelle, die den Speicher-Zugriffsdienst von dem zweiten Prozessor verwendet, • wobei der erste Prozessor und der zweite Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwenden, wobei der erste Prozessor den ersten geheimen Schlüssel des ersten Prozessors verwendet und der zweite Prozessor den zweiten geheimen Schlüssel des zweiten Prozessors verwendet, wenn er in dem vertrauenswürdigen Modus betrieben wird.
  36. Prozessor-Anordnung gemäß Anspruch 35, wobei der erste Prozessor ein Kommunikations-Prozessor ist.
  37. Prozessor-Anordnung gemäß Anspruch 36, wobei der erste Prozessor eine Modem-Steuerungseinheit ist.
  38. Prozessor-Anordnung gemäß einem der Ansprüche 35 bis 37, wobei der erste geheime Schlüssel des ersten Prozessors unveränderbar ist.
  39. Prozessor-Anordnung gemäß einem der Ansprüche 35 bis 28, wobei der zweite Prozessor ein Applikations-Prozessor ist.
  40. Prozessor-Anordnung gemäß einem der Ansprüche 35 bis 39, wobei der zweite geheime Schlüssel des zweiten Prozessors unveränderbar ist.
  41. Prozessor-Anordnung gemäß einem der Ansprüche 35 bis 40, wobei der erste geheime Schlüssel des ersten Prozessors und der zweite geheime Schlüssel des zweiten Prozessors der gleiche gemeinsam genutzte geheime Schlüssel sind.
  42. Prozessor-Anordnung gemäß einem der Ansprüche 35 bis 41, wobei der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen aufweist, die aufweisen: • Authentifizierung, • Verschlüsselung, • digitale Signatur, • kryptographische Hash-Wert-Generierung.
  43. Kommunikationsvorrichtung, aufweisend: eine Prozessor-Anordnung, wobei die Prozessor-Anordnung aufweist: • einen ersten Prozessor, • einen zweiten Prozessor, • mindestens einen von dem ersten Prozessor und dem zweiten Prozessor gemeinsam genutzten Speicher, • wobei der zweite Prozessor aufweist: • eine Speicher-Schnittstelle, die Zugriff auf den mindestens einen Speicher bereitstellt, • eine Prozessor-Kommunikations-Schnittstelle, die einen Speicher-Zugriffsdienst für den ersten Prozessor bereitstellt, • wobei der erste Prozessor aufweist: • eine Prozessor-Kommunikations-Schnittstelle, die den Speicher-Zugriffsdienst von dem zweiten Prozessor verwendet, • wobei der erste Prozessor und der zweite Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwenden.
  44. Verfahren zum Betreiben einer Prozessor-Anordnung, wobei das Verfahren aufweist: • Generieren einer ersten Anfrage für einen Speicher-Zugriffsdienst zum Zugreifen auf einen Speicher, der von einem ersten Prozessor und einem zweiten Prozessor gemeinsam genutzt wird, • Übermitteln der ersten Anfrage von dem ersten Prozessor an den zweiten Prozessor, • wobei der zweite Prozessor die erste Anfrage mittels mindestens eines kryptographischen Mechanismus ausführt, • Generieren einer zweiten Anfrage für den Speicher-Zugriffsdienst zum Zugreifen auf den Speicher gemäß der ersten Anfrage, • Übermitteln der zweiten Anfrage von dem zweiten Prozessor an den Speicher, und • Ausführen der zweiten Anfrage durch den Speicher.
  45. Verfahren gemäß Anspruch 44, wobei der erste Prozessor einen ersten geheimen Schlüssel des ersten Prozessors verwendet, der dem ersten Prozessor beim Generieren der ersten Anfrage zugeordnet wird.
  46. Verfahren gemäß Anspruch 44 oder 45, wobei der zweite Prozessor einen zweiten geheimen Schlüssel des zweiten Prozessors verwendet, der dem zweiten Prozessor beim Ausführen der ersten Anfrage zugeordnet wird, wobei der erste geheime Schlüssel des ersten Prozessors und der zweite geheime Schlüssel des zweiten Prozessors der gleiche gemeinsam genutzte geheime Schlüssel sind.
  47. Verfahren gemäß einem der Ansprüche 44 bis 46, wobei der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen aufweist, die aufweisen: • Authentifizierung, • Verschlüsselung, • digitale Signatur, • kryptographische Hash-Wert-Generierung.
DE102008006759.8A 2007-02-05 2008-01-30 Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit Expired - Fee Related DE102008006759B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/671,141 US8296581B2 (en) 2007-02-05 2007-02-05 Secure processor arrangement having shared memory
US11/671,141 2007-02-05

Publications (2)

Publication Number Publication Date
DE102008006759A1 true DE102008006759A1 (de) 2008-08-07
DE102008006759B4 DE102008006759B4 (de) 2017-05-18

Family

ID=39587540

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008006759.8A Expired - Fee Related DE102008006759B4 (de) 2007-02-05 2008-01-30 Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit

Country Status (2)

Country Link
US (1) US8296581B2 (de)
DE (1) DE102008006759B4 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108692B1 (en) 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US8332660B2 (en) * 2008-01-02 2012-12-11 Arm Limited Providing secure services to a non-secure application
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
US9282106B2 (en) 2009-02-20 2016-03-08 Comcast Cable Communications, Llc Authenticated communication between security devices
US20100228926A1 (en) * 2009-03-09 2010-09-09 Cypress Semiconductor Corporation Multi-port memory devices and methods
US9489326B1 (en) 2009-03-09 2016-11-08 Cypress Semiconductor Corporation Multi-port integrated circuit devices and methods
US8356184B1 (en) 2009-06-25 2013-01-15 Western Digital Technologies, Inc. Data storage device comprising a secure processor for maintaining plaintext access to an LBA table
JP5699756B2 (ja) * 2011-03-31 2015-04-15 富士通株式会社 情報処理装置及び情報処理装置制御方法
EP4040717B1 (de) * 2011-12-15 2024-01-31 INTEL Corporation Verfahren und vorrichtung für sichere kommunikation über ein netzwerk mit einer hardware-sicherheits-engine
US9305142B1 (en) 2011-12-19 2016-04-05 Western Digital Technologies, Inc. Buffer memory protection unit
JP6017287B2 (ja) * 2012-12-06 2016-10-26 富士通株式会社 制御方法および情報処理装置
KR102011137B1 (ko) 2012-12-07 2019-08-14 삼성전자주식회사 데이터 처리 장치와 회로
US9092647B2 (en) 2013-03-07 2015-07-28 Freescale Semiconductor, Inc. Programmable direct memory access channels
FR3010598B1 (fr) * 2013-09-06 2017-01-13 Sagem Defense Securite Procede de gestion de coherence de caches
US9489317B2 (en) * 2014-09-26 2016-11-08 Apple Inc. Method for fast access to a shared memory
US10234917B2 (en) * 2016-06-03 2019-03-19 Hewlett Packard Enterprise Development Lp Sequential resets of redundant subsystems with random delays
DE102019127354A1 (de) * 2019-10-10 2021-04-15 Infineon Technologies Ag Erstellen einer Signatur

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6934389B2 (en) * 2001-03-02 2005-08-23 Ati International Srl Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus
US6986006B2 (en) * 2002-04-17 2006-01-10 Microsoft Corporation Page granular curtained memory via mapping control
US7290080B2 (en) * 2002-06-27 2007-10-30 Nazomi Communications Inc. Application processors and memory architecture for wireless applications
GB2406403B (en) * 2003-09-26 2006-06-07 Advanced Risc Mach Ltd Data processing apparatus and method for merging secure and non-secure data into an output data stream
US7623894B2 (en) * 2003-10-09 2009-11-24 Freescale Semiconductor, Inc. Cellular modem processing
US20050132186A1 (en) * 2003-12-11 2005-06-16 Khan Moinul H. Method and apparatus for a trust processor
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
US7594124B2 (en) * 2004-06-09 2009-09-22 Intel Corporation Cross validation of data using multiple subsystems
US6987961B1 (en) * 2004-06-28 2006-01-17 Neomagic Corp. Ethernet emulation using a shared mailbox between two processors in a feature phone
US20060288209A1 (en) * 2005-06-20 2006-12-21 Vogler Dean H Method and apparatus for secure inter-processor communications
US20070077915A1 (en) * 2005-09-30 2007-04-05 Black Greg R Method and apparatus for module authentication
KR101275752B1 (ko) * 2005-12-06 2013-06-17 삼성전자주식회사 메모리 시스템 및 그것의 부팅 방법

Also Published As

Publication number Publication date
US20080189500A1 (en) 2008-08-07
DE102008006759B4 (de) 2017-05-18
US8296581B2 (en) 2012-10-23

Similar Documents

Publication Publication Date Title
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE69725833T2 (de) Gesicherte zweiteilige Benutzer-Authentifizierung in einem Rechnernetz
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE10254621B4 (de) Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE60200323T2 (de) Verfahren zum Schutz der Integrität von Programmen
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
DE112011105752T5 (de) Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE102008021567A1 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
EP2981926A1 (de) Datenspeichervorrichtung zum geschützten datenaustausch zwischen verschiedenen sicherheitszonen
EP3259698A1 (de) Autonom bootendes system mit einem sicherheitsmodul
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE102007030622A1 (de) Verfahren und Anwendung zum Verknüpfen zwischen Systemen auf der Grundlage von Hardware-Sicherheits-Einheiten
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
DE102011077218A1 (de) Zugriff auf in einer Cloud gespeicherte Daten
DE112006001933T5 (de) Stillegen eines Prozessorbusagenten
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
DE102009054128A1 (de) Verfahren und Vorrichtung zum Zugriff auf Dateien eines sicheren Fileservers
DE102008050631A1 (de) Datenverarbeitungssystem
DE10146361A1 (de) Vorrichtung und Verfahren zur Etablierung einer Sicherheitspolitik in einem verteilten System
DE102018217431A1 (de) Sicherer Schlüsseltausch auf einem Gerät, insbesondere einem eingebetteten Gerät
DE102018213616A1 (de) Kryptografiemodul und Betriebsverfahren hierfür

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: INTEL MOBILE COMMUNICATIONS GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

Effective date: 20130207

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

Effective date: 20130207

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER, DE

Effective date: 20130207

Representative=s name: VIERING, JENTSCHURA & PARTNER PATENT- UND RECH, DE

Effective date: 20130207

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

Effective date: 20130207

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 102008064880

Country of ref document: DE

R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee