DE112006004173T5 - Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung - Google Patents

Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung Download PDF

Info

Publication number
DE112006004173T5
DE112006004173T5 DE112006004173T DE112006004173T DE112006004173T5 DE 112006004173 T5 DE112006004173 T5 DE 112006004173T5 DE 112006004173 T DE112006004173 T DE 112006004173T DE 112006004173 T DE112006004173 T DE 112006004173T DE 112006004173 T5 DE112006004173 T5 DE 112006004173T5
Authority
DE
Germany
Prior art keywords
memory
data
unit
decryption
electronic device
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.)
Withdrawn
Application number
DE112006004173T
Other languages
English (en)
Inventor
Michael Chambers
Paul Renshaw
Michael Kiessling
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.)
Agere Systems LLC
Original Assignee
Agere Systems LLC
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 Agere Systems LLC filed Critical Agere Systems LLC
Publication of DE112006004173T5 publication Critical patent/DE112006004173T5/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module

Abstract

Integrierte Halbleiterspeichereinheit (14) mit einem programmierbaren Speicher (24), einem Datenschreibpfad (30) zum Schreiben von Daten in den Speicher (24) und einem Datenlesepfad (38) zum Auslesen von Daten aus dem Speicher (24), bei der:
der Speicher (24) zumindest ein geschütztes Speicherfeld (42) beinhaltet,
der Datenschreibpfad (30) eine Entschlüsselungseinheit (32) beinhaltet, die dazu eingerichtet ist, verschlüsselte Daten (ED) zu erhalten, die verschlüsselten Daten (ED) zu entschlüsseln und sich ergebende Klartext-Daten (PD) in das mindestens eine geschützte Speicherfeld (42) zu schreiben,
der Datenlesepfad (38) dazu eingerichtet ist, die in dem geschützten Speicherfeld (42) gespeicherten Klartext-Daten (PD) auszulesen,
wobei das mindestens eine geschützte Speicherfeld (42) nur beschreibbar ist, indem die in das mindestens eine geschützte Speicherfeld (42) einzuschreibenden Daten in verschlüsselter Form an den Datenschreibpfad (30) angelegt werden,
ferner umfassend einen Entschlüsselungsschlüssel-Speicher (34), der einen geheimen Schlüssel (K) enthält, wobei der Entschlüsselungsschlüssel-Speicher (34) dazu eingerichtet ist, nur durch die...

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein das Gebiet des Schutzes der Integrität von programmierten elektronischen Geräten. Insbesondere betrifft die vorliegende Erfindung das Gebiet des Schutzes eines programmierbaren Speichers gegen unberechtigte Veränderung seines Inhalts.
  • HINTERGRUND DER ERFINDUNG
  • Programmierte elektronische Geräte haben allgemeine Verbreitung gefunden. Die meisten solchen Geräte enthalten einen programmierbaren Speicher wie beispielsweise einen Flash-Speicher oder EEPROM-Speicher. Es ist allgemein wünschenswert, zumindest in gewissem Maße für die Sicherheit der Integrität des Inhalts des programmierbaren Speichers zu sorgen. Dieser Inhalt kann Programmcode zur Ausführung durch das programmierte elektronische Gerät und/oder andere Informationen, wie beispielsweise Identifizierungsdaten, Konfigurationsdaten und Benutzerdaten umfassen.
  • Jede unberechtigte Veränderung des Inhalts des programmierbaren Speichers kann unerwünschte oder sogar möglicherweise verheerende Folgen haben. Wenn beispielsweise das programmierte elektronische Gerät ein Kraftfahrzeug-Steuersystem ist, kann jede Verfälschung der in dem Gerät gespeicherten Software sehr gefährlich sein. Wenn, als ein weiteres Beispiel, das programmierte elektronische Gerät eine Wiedergabefunktion für Medien bereitstellt, kann eine unberechtigte Veränderung der Software Einstellungen zur digitalen Rechteverwaltung (digital rights management) oder andere Beschränkungen umgehen. Als weiteres Beispiel kann jede Möglichkeit, eine Seriennummer oder eine ähnliche identifizierende Information, die in einem Mobilgerät gespeichert ist – beispielsweise die IMEI eines Mobiltelefons – zu missbräuchlichen Zwecken verwendet werden.
  • Es ist zumindest auf dem Gebiet der Mobiltelefone bekannt, eine Integritätsprüfung auszuführen, wenn das Gerät hochgefahren wird. Diese Integritätsprüfung kann Programmcode und/oder andere kritische Informationen abdecken. Die Integritätsprüfung umfasst das Berechnen einer Signatur der zu überprüfenden Daten und das Vergleichen der berechneten Signatur mit einer in dem Gerät gespeicherten Signatur. Die Signaturberechnung wird unter Verwendung eines kryptographischen Verfahrens ausgeführt, das sicherstellt, dass die Daten nicht verändert werden können, ohne dabei die berechnete Signatur zu verändern. Eine Anzahl geeigneter Verfahren wie beispielsweise die RSA-, DSA- und HMAC-Verfahren sind im Stand der Technik gut bekannt. Die internationale Patentanmeldung PCT/EP 2006/009690 von Agere Systems Inc., eingereicht am 6. Oktober 2006, beschreibt weitere Einzelheiten eines Verfahrens zur Integritätsüberprüfung beim Hochfahren.
  • Wenn nur beim Hochfahren des Geräts eine Integritätsprüfung ausgeführt wird, ist dies kein wirksames Mittel gegen unberechtigte Veränderungen, die nach der Integritätsprüfung erfolgen. Diese Schwierigkeit könnte überwunden werden, indem die Integritätsprüfung während des Betriebs des Geräts periodisch ausgeführt wird. Solche regelmäßigen Integritätsprüfungen sind jedoch in Architekturen, die keinen nicht-maskierbaren Unterbrechungsaufruf (non-maskable interrupt) bereitstellen, schwierig zu implementieren. Ferner würde eine periodische Integritätsprüfung eine erhebliche Prozessorbelastung hervorrufen und die Leistungsaufnahme des Geräts erhöhen. Dies ist besonders bei Mobilgeräten ein Problem, weil solche Geräte begrenzte Prozessorressourcen und eine begrenzte Batteriekapazität aufweisen. Ein weiteres Problem in Verbindung mit allen Arten von Integritätsprüfungen ist, dass der Software, die die Integritätsprüfung implementiert, vertraut werden muss, und dass diese Software in einem nicht-veränderbaren Speicher wie beispielsweise einem ROM gespeichert sein muss.
  • AUFGABEN UND ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, eine Technik zum Schutz der Integrität von programmierten elektronischen Geräten bereitzustellen. Es ist eine weitere Aufgabe der Erfindung, eine Technik zum Verhindern von Angriffen bereitzustellen, bei denen unberechtigte Daten – wobei die Daten Programmcode und/oder andere Informationen sind – in einem programmierbaren Speicher eines Geräts gespeichert werden.
  • Die vorliegende Erfindung ist durch die unabhängigen Ansprüche definiert. Die abhängigen Ansprüche betreffen optionale Merkmale einiger Ausgestaltungen der Erfindung.
  • Die vorliegende Erfindung beruht auf der Grundidee, einen Datenschreibpfad eines programmierbaren Speichers mit einer Entschlüsselungseinheit auszustatten. Zumindest ein geschütztes Speicherfeld – und in einigen Ausführungsformen der gesamte programmierbare Speicher – ist nur über diese Entschlüsselungseinheit programmierbar. Mit anderen Worten müssen, um Daten in das geschützte Speicherfeld zu schreiben, die Daten verschlüsselt werden, bevor sie an den Datenschreibpfad angelegt werden. Die Entschlüsselungseinheit entschlüsselt dann die verschlüsselten Daten und liefert die entschlüsselten Daten an das geschützte Speicherfeld, wo die Daten in entschlüsselter Form, d. h. als Klartext-Daten, gespeichert werden. Natürlich muss die Verschlüsselung zu der von der Entschlüsselungseinheit ausgeführten Entschlüsselung passen, wenn die gewünschten Klartext-Daten in das Speicherfeld eingeschrieben werden sollen.
  • Die vorliegende Erfindung stellt sicher, dass nur dann eine brauchbare Veränderung des Inhalts des mindestens einen geschützten Speicherfeldes möglich ist, wenn eine geeignet verschlüsselte Fassung der Klartext-Daten, die in den Speicher geschrieben werden sollen, verfügbar ist. Ein Angreifer, der keinen Zugriff auf die erforderlichen Informationen zum Herstellen dieser verschlüsselten Fassung hat, kann den Speicherinhalt nicht auf sinnvolle Weise verändern. Es könnte für den Angreifer immer noch möglich sein, Daten in den Speicher zu schreiben, aber diese Daten – die das Ergebnis des in dem Datenschreibpfad ausgeführten Entschlüsselungsvorgangs sind – werden im Wesentlichen zufällige Informationen sein und können leicht erkannt werden. Beispielsweise werden diese Daten kein ausführbarer Programmcode sein. Nur eine autorisierte Stelle, die Zugriff auf den geheimen Schlüssel und andere beim Entschlüsselungsvorgang verwendete Informationen hat, kann die erforderliche verschlüsselte Fassung der Daten erzeugen.
  • In dem vorliegenden Dokument umfasst der Begriff ”Daten” alle Informationen, die in dem programmierbaren Speicher gespeichert werden. Beispielsweise können solche Daten Programmcodes zur Ausführung durch eine Zentraleinheit (CPU) oder andere in dem programmierbaren Speicher gespeicherte Informationen sein.
  • In manchen Ausführungsformen der Erfindung besteht für den Datenlesevorgang keinerlei Leistungseinbuße, weil in dem Speicher die Klartext-Daten gespeichert sind und auf diese leicht zugegriffen werden kann. In diesen Ausführungsformen ist der Datenlesepfad frei von jedweden kryptographischen Verarbeitungselementen.
  • Das Schreiben von Daten in den Speicher bedingt eine Entschlüsselung und erfordert deshalb gewisse Verarbeitungszeit. In manchen Ausführungsformen wird diese Verarbeitung jedoch nebenläufig mit dem Schreibvorgang in den physischen Speicher ausgeführt. Je nach der verwendeten Speichertechnologie kann die Geschwindigkeit des Schreibvorgangs in den physischen Speicher tatsächlich in manchen Ausgestaltungen der limitierende Faktor sein. Ferner wird, wenn die Erfindung zum Beschreiben von Blöcken aufeinanderfolgender Speicherzellen verwendet wird – wie beispielsweise, wenn eine Software-Aktualisierung ausgeführt wird –, in manchen Ausführungsformen für eine effiziente Entschlüsselung gesorgt, indem ein Block-Verarbeitungsmodus verwendet wird.
  • In manchen Ausführungsformen werden die Entschlüsselung – und die entsprechende Verschlüsselung, wenn die verschlüsselten Daten erzeugt werden – durch ein symmetrisches Verfahren mit einem geheimen Schlüssel ausgeführt. Dieser geheime Schlüssel kann in einem reservierten Speicher für den Entschlüsselungsschlüssel gespeichert werden, der nur von der Entschlüsselungseinheit gelesen werden kann. Es versteht sich, dass diejenige Stelle, die die verschlüsselten Daten erzeugt – wie beispielsweise eine externe Datenquelle – auch Zugriff auf den geheimen Schlüssel haben muss. Beispielsweise kann in manchen Ausgestaltungen der Erfindung der geheime Schlüssel auch in einer externen Datenbank gespeichert sein.
  • Das elektronische Gerät gemäß Ausführungsformen der vorliegenden Erfindung kann ein Mobilgerät und/oder ein Kommunikationsgerät und/oder ein eingebettetes Gerät und/oder ein Authentifizierungsgerät sein. Beispiele eines Authentifizierungsgeräts sind ein SIM (subscriber identity module = Teilnehmerkennungsmodul) oder eine RFID-Marke oder ein RFID-Gerät.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Merkmale, Aufgabe und Vorteile der Erfindung ergeben sich aus einem Studium der folgenden ausführlichen Beschreibung in Verbindung mit den beigefügten Zeichnungen, in denen:
  • 1 ein schematisches Blockschaltbild eines Geräts nach einem ersten Ausführungsbeispiel der vorliegenden Erfindung ist, mit einem programmierbaren Speicher und einer externen Datenquelle,
  • 2 ein Sequenzdiagramm ist, das einen Speicherschreibzugriff und einen Speicherlesezugriff in dem Gerät von 1 zeigt, und
  • 3 ein schematisches Blockschaltbild wie in 1 gemäß einem zweiten Ausführungsbeispiel der Erfindung ist.
  • AUSFÜHRLICHE BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN DER ERFINDUNG
  • 1 zeigt ein Beispiel eines Geräts 10 mit einer Steuereinheit 12 und einer Speichereinheit 14. Bei dem vorliegenden Ausführungsbeispiel ist das Gerät 10 ein Mobiltelefon, die Steuereinheit 12 ist eine integrierte Basisband-Schaltung, und die Speichereinheit 14 ist eine integrierte Flash-Speicher-Schaltung. Die vorliegende Erfindung ist jedoch nicht auf das Gebiet der Mobiltelefone beschränkt. Die Erfindung ist für alle Arten programmierter elektronischer Geräte anwendbar, die einen gewissen Grad von Schutz gegen die Ausführung unberechtigter Software und/oder gegen eine unberechtigte Veränderung von darin gespeicherten Daten bieten sollen. Solche Geräte umfassen, ohne Einschränkung, mobile Kommunikationsgeräte, Medienwiedergabegeräte, eingebettete Systeme, Geräte zur Verwendung in Kraftfahrzeugen und zur medizinischen Verwendung, externe Speichergeräte, Authentifizierungsgeräte und so weiter. Je nach seiner Art kann das Gerät 10 weitere Bestandteile wie beispielsweise eine Stromversorgung, Ein- und Ausgabeelemente, eine Hochfrequenzeinheit und so weiter aufweisen. Diese weiteren Bestandteile sind in 1 nicht gezeigt.
  • Die Steuereinheit 12 umfasst eine CPU (central processing unit = zentrale Verarbeitungseinheit) 16, die über einen internen Speicherzugriffspfad 20 mit einer Speicherschnittstelle 18 verbunden ist. Die Steuereinheit 12 umfasst allgemein eine Anzahl weiterer integrierter Bestandteile, die in 1 nicht gezeigt sind. Beispielsweise können diese weiteren Bestandteile einen integrierten Speicher, einen digitalen Signalprozessor und so weiter enthalten.
  • Die Speichereinheit 14 des Geräts 10 umfasst eine interne Speichersteuerung 22 und einen programmierbaren Speicher 24. Bei dem vorliegenden Ausführungsbeispiel ist der programmierbare Speicher 24 ein Flash-Speicher mit einer großen Anzahl von Flash-Speicherzellen, die in einer Mehrzahl von Sektoren angeordnet sind. Es versteht sich jedoch, dass der programmierbare Speicher 24 auch in einer anderen Technologie ausgestaltet sein kann, wie beispielsweise als EEPROM oder FRAM. Der programmierbare Speicher 24 ist in vielen Ausführungsbeispielen ein nicht-flüchtiger Speicher, aber die Erfindung ist nicht auf nicht-flüchtige Speicher beschränkt.
  • Die Steuereinheit 12 und die Speichereinheit 14 sind über einen Adressbus 26 und einen Datenbus 28 verbunden. Genauer verlaufen der Adressbus 26 und der Datenbus 28 zwischen der Speicherschnittstelle 18 der Steuereinheit 12 und der internen Speichersteuerung 22 der Speichereinheit 14. Der Adressbus 26 und der Datenbus 28 umfassen Adress- und Datenleitungen sowie Steuerleitungen zum Steuern des Datenaustauschs zwischen der Steuereinheit 12 und der Speichereinheit 14. Die interne Speichersteuerung 22 dekodiert Speicheradressen, die über den Adressbus 26 eintreffen, und steuert alle Vorgänge in der Speichereinheit 14. Diese Vorgänge werden unten ausführlich beschrieben.
  • Der programmierbare Speicher 24 wird über den Datenschreibpfad 30 programmiert; letzterer verläuft von der internen Speichersteuerung 22 zum programmierbaren Speicher 24. Der Datenschreibpfad 30 umfasst eine Entschlüsselungseinheit 32, einen Speicher 34 für einen Entschlüsselungsschlüssel und einen Speicher 36 für einen Initialisierungsvektor. Die Entschlüsselungseinheit 32 erhält verschlüsselte Daten ED von der internen Speichersteuerung 22, entschlüsselt die Daten, um Klartext-Daten PD – d. h., entschlüsselte Daten – zu erhalten, und liefert die Klartext-Daten PD an den programmierbaren Speicher 24, damit sie dort gespeichert werden.
  • Der Speicher 34 für den Entschlüsselungsschlüssel und der Speicher 36 für den Initialisierungsvektor enthalten einen Entschlüsselungsschlüssel K und einen Initialisierungsvektor IV, die bei dem Entschlüsselungsvorgang verwendet werden. Bei dem vorliegend beschriebenen Ausführungsbeispiel sind die Speicher 34, 36 als ein einziges Mal programmierbare Speicher (OTP-Speicher = one time programmable memories) implementiert, die nur von der Entschlüsselungseinheit 32 ausgelesen werden können. Der Entschlüsselungsschlüssel K und der Initialisierungsvektor IV werden zum Zeitpunkt der Herstellung des Geräts 10 in diese Speicher 34, 36 einprogrammiert. Es versteht sich, dass andere Speicherkonfigurationen möglich sind, wenn nur der Entschlüsselungsschlüssel K und der Initialisierungsvektor IV von einem Angreifer nicht geändert werden können und sie, außer von der Entschlüsselungseinheit 32, nicht ausgelesen werden können. Beispielsweise können die Speicher 34, 36 als ein Abschnitt des programmierbaren Speichers 24 oder als ein Abschnitt im RAM-Speicher, der beim Hochfahren des Geräts 10, gesteuert von einer ROM-basierten Startroutine, initialisiert wird, implementiert werden. Bei solchen Ausführungsbeispielen müssen geeignete Vorkehrungen getroffen werden, um sicherzustellen, dass nur die ROM-basierte Startroutine in die Speicher 34, 36 schreiben kann.
  • Die Entschlüsselungseinheit 32 führt den Entschlüsselungsvorgang gemäß irgendeinem Verfahren aus einer Anzahl kryptographischer Verfahren aus, die als solche im Stand der Technik bekannt sind. In vielen Ausführungsbeispielen wird ein symmetrisches Block-Ver-/Entschlüsselungsverfahren verwendet, aber die Erfindung ist nicht auf symmetrische Verfahren oder auf Block-Ver-/Entschlüsselungsverfahren beschränkt. Beispiele geeigneter Verfahren sind die gut bekannten AES-, IDEA-, DES- und 3DES-Verfahren. Diese Verfahren werden vorzugsweise in einer Block-Betriebsweise wie beispielsweise der ECB-Block-Betriebsweise oder der CBC-Block-Betriebsweise für DES verwendet. Es versteht sich, dass bei einem symmetrischen Verfahren kein Unterschied zwischen den Verschlüsselungs- und den Entschlüsselungsschritten besteht. Dennoch wird im vorliegenden Dokument der Begriff ”Entschlüsselung” verwendet, um deutlich zu machen, dass die Entschlüsselungseinheit 32 die verschlüsselten Daten ED erhält und die Klartext-Daten PD an den programmierbaren Speicher 24 ausgibt.
  • In vielen Ausführungsbeispielen der vorliegenden Erfindung werden die verschlüsselten Daten ED während oder im Zusammenhang mit dem Vorgang des Einschreibens der sich ergebenden Klartext-Daten PD in den programmierbaren Speicher 24 entschlüsselt. Das Schreiben von Daten in einen Flash-Speicher oder einen anderen nicht-flüchtigen Speicher ist wegen physischer Einschränkungen relativ langsam. Daher braucht, wenn die Entschlüsselung und der Schreibvorgang nebenläufig ausgeführt werden, die Entschlüsselung in vielen Ausführungsbeispielen keinerlei zusätzliche Zeit, über die Zeit hinaus, die auf jeden Fall für den Vorgang des Einschreibens der Daten in den Speicher benötigt wird. Auch wenn in vielen Ausführungsbeispielen die Zeiteigenschaften des Entschlüsselungsvorgangs unkritisch sind, gibt es auch Ausführungsbeispiele, bei denen ein geeigneter Puffer – z. B. eine FIFO-Schlange – in der internen Speichersteuerung 22 und/oder dem Datenschreibpfad 30 vorgesehen sind, um eventuelle Zeitbeschränkungen zu entkoppeln.
  • In vielen Ausführungsbeispielen wird die Erfindung zum Aktualisieren von Software verwendet, die in dem programmierbaren Speicher 24 gespeichert ist. Dies beinhaltet einen sequenziellen Schreibvorgang in aufeinanderfolgende Speicherzellen des programmierbaren Speichers 24. Die entsprechende Entschlüsselung in der Entschlüsselungseinheit 32 verursacht wenig zusätzlichen Aufwand, insbesondere wenn eines der oben genannten Block-Betriebsverfahren verwendet wird.
  • Die Daten werden über den Datenlesepfad 38, der den programmierbaren Speicher 24 mit der internen Speichersteuerung 22 verbindet, aus dem programmierbaren Speicher 24 ausgelesen. In dem vorliegenden Ausführungsbeispiel enthält der Datenlesepfad 38 keinerlei kryptographische Elemente und gibt daher alle Daten – beispielsweise die Klartext-Daten PD – so aus, wie sie in dem programmierbaren Speicher 24 gespeichert sind. Weil keine komplexen Datenmanipulationsschritte stattfinden, werden die Zeiteigenschaften des Lesevorgangs nur durch den programmierbaren Speicher 24 bestimmt. Mit anderen Worten erzielt das vorliegende Ausführungsbeispiel den gewünschten Manipulationsschutz ohne irgendeine Leistungseinbuße bei Speicher-Lesevorgängen. Dies trifft sowohl für sequentielle Lesevorgänge als auch für Lesevorgänge mit wahlfreiem Zugriff zu.
  • Die interne Speichersteuerung 22 ist ferner dazu eingerichtet, Teile des programmierbaren Speichers 24 durch das Anlegen geeigneter Signale an eine Löschsignalleitung 40 zu löschen. Die Löschfunktion wird verwendet, um einen Datenschreibvorgang auf eine bei Flash-Speichern übliche Weise vorzubereiten.
  • 1 zeigt ein geschütztes Speicherfeld 42 des programmierbaren Speichers 24, in das die Klartext-Daten PD eingeschrieben werden. In manchen Ausführungsbeispielen der Erfindung werden nur Teile des programmierbaren Speichers 24 gegen unberechtigte Veränderung geschützt, während andere Teile – außerhalb des geschützten Speicherfeldes 42 – ohne jeden Schutz beschreibbar sind. Beispielsweise können Schreibvorgänge in Speicherzellen außerhalb des geschützten Speicherfeldes 42 die Entschlüsselungseinheit 32 innerhalb des Datenschreibpfades 30 umgehen, oder sie können einen zusätzlichen, direkten Schreibpfad (nicht gezeigt) verwenden. In anderen Ausführungsbeispielen der Erfindung bestehen jedoch keine ungeschützten Speicherbereiche, so dass das geschützte Speicherfeld 42 den gesamten programmierbaren Speicher 24 umfasst.
  • Manche Ausführungsbeispiele der Erfindung können mehr als ein geschütztes Speicherfeld 42 innerhalb des programmierbaren Speichers 24 aufweisen. Die Größe und die Anordnung des einen oder der mehreren geschützten Speicherfelder 42 können fest vorgegeben oder einstellbar sein. Beispielsweise kann in manchen Ausführungsbeispielen die Speichereinheit 14 ein Register (nicht gezeigt) enthalten, das diejenigen Bereiche – z. B. Sektoren oder Sektorgruppen – des programmierbaren Speichers 24 bestimmt, die in dem einen oder den mehreren geschützten Speicherfeldern 42 enthalten oder davon ausgenommen sein sollen. Dieses Register kann beispielsweise als ein nur ein einziges Mal pro grammierbarer Speicher (OTP-Speicher) ausgebildet sein, und es kann zum Zeitpunkt der Herstellung des Geräts 10 programmiert werden.
  • Die Möglichkeit, bestimmte Bereiche des programmierbaren Speichers 24 aus dem Schutzverfahren der vorliegenden Erfindung auszunehmen, ist bei Ausführungsbeispielen nützlich oder notwendig, in denen beispielsweise die Speichereinheit 14 irgendeine Art eines Flash-Dateisystems (FFS = Flash file system) zum Speichern von persistenten Daten enthält. In derartigen Ausführungsbeispielen muss es der Steuereinheit 12 und/oder der internen Speichersteuerung 22 möglich sein, Verwaltungsdaten des Dateisystems in den programmierbaren Speicher 24 einzuschreiben. Weil jedoch in vielen Ausführungsbeispielen die Steuereinheit 12 und/oder die interne Speichersteuerung 22 nicht auf den Schlüssel K zugreifen kann und daher die Verwaltungsdaten nicht verschlüsseln kann, muss es einen nicht-geschützten Abschnitt des programmierbaren Speichers 24 geben, in den die Verwaltungsdaten frei eingeschrieben werden können.
  • Insgesamt können das eine oder die mehreren geschützten Speicherfelder 42 des programmierbaren Speichers 24 nur dann in sinnvoller Weise verändert werden, wenn eine verschlüsselte Fassung der Daten, die in den programmierbaren Speicher 24 eingeschrieben werden sollen, verfügbar ist. Zum Erzeugen dieser verschlüsselten Fassung müssen das kryptographische Verfahren, der Schlüssel K und der Initialisierungsvektor IV bekannt sein. Weil in dem vorliegend beschriebenen Ausführungsbeispiel ein symmetrisches Ver-/Entschlüsselungsverfahren verwendet wird, werden der gleiche Schlüssel K und Initialisierungsvektor IV sowohl für die Verschlüsselung als auch für die spätere Entschlüsselung verwendet. Mit anderen Worten müssen der Schlüssel K und der Initialisierungsvektor IV, die in den Speichern 34, 36 enthalten sind, auch beim Erzeugen der verschlüsselten Daten ED verfügbar sein.
  • Es sind Ausführungsbeispiele möglich, bei denen die Steuereinheit 12 oder ein anderer Bestandteil des Geräts 10 auf den Schlüssel K und den Initialisierungs vektor IV zuzugreifen vermag. Bei derartigen Ausführungsbeispielen wäre es möglich, geeignet verschlüsselte Daten ED innerhalb des Geräts 10 zu erzeugen. Bei solchen Ausführungsbeispielen könnte jedoch die Sicherheit, wenn das Gerät 10 manipuliert wird oder wenn missbräuchliche Software von dem Gerät 10 ausgeführt wird, weniger als optimal sein. Demzufolge gibt es in vielen anderen Ausführungsbeispielen keinerlei Vorkehrungen innerhalb des Geräts 10, um Daten, die in den programmierbaren Speicher 24 eingeschrieben werden sollen, zu verschlüsseln. Bei derartigen Ausführungsbeispielen muss das Gerät 10 die verschlüsselten Daten ED von einer externen Datenquelle 44 erhalten, beispielsweise von einem externen Dienstanbieter oder einem Betreiber eines Mobilnetzes oder einem autorisierten Servicecenter.
  • 1 zeigt ein Beispiel der externen Datenquelle 44, die die verschlüsselten Daten ED über einen Kommunikationspfad 46 an das Gerät 10 sendet. Der Kommunikationspfad 46 kann ein Kanal zur drahtlosen Kommunikation oder eine drahtgebundene Datenübertragungsverbindung sein. Die externe Datenquelle 44 umfasst eine Verschlüsselungseinheit 48, die ein kryptographisches Verfahren implementiert, das dem der Entschlüsselungseinheit 32 entspricht. Die Verschlüsselungseinheit 48 erhält die zu verschlüsselnden Klartext-Daten PD von einem Dateisystem 50, und sie erhält den Schlüssel K und den Initialisierungsvektor IV von einer Datenbank 52.
  • Beispielsweise kann die Datenbank 52 für jedes Gerät 10, das jemals hergestellt worden ist, einen individuellen Datensatz enthalten, wobei jeder Datensatz den Schlüssel K und den Initialisierungsvektor IV des Geräts 10 sowie andere Verwaltungsinformationen enthält. Die Seriennummer des Geräts 10 und andere geeignete Identifizierungsdaten können als Index zum Zugriff auf diese Informationen dienen. In anderen Ausführungsbeispielen kann die Datenbank 52 weniger Datensätze enthalten, wie z. B. nur einen einzigen Datensatz für jede Fertigungsreihe oder sogar nur einen einzigen Datensatz für jeden Typ des Geräts 10. Das Bestehen einer breiten Spanne von Schlüsseln K stellt sicher, dass Softwareaktualisierungen den verschiedenen Geräten 10 korrekt zugeordnet werden und steigert auch die Gesamtsicherheit des Schutzverfahrens, falls einer der Schlüssel K kompromittiert wird. Die Erfindung umfasst jedoch auch Ausführungsbeispiele, bei denen nur ein einziger Schlüssel K und/oder ein einziger Initialisierungsvektor IV verwendet werden. Bei derartigen Ausführungsbeispielen ist keine Datenbank 52 erforderlich.
  • Der Schlüssel K muss geheim gehalten werden, um sicherzustellen, dass ein unberechtigter Angreifer keine passend verschlüsselte Fassung irgendwelcher nicht-autorisierter Daten zur Speicherung in dem geschützten Speicherfeld 42 erzeugen kann. Das vorliegend beschriebene Ausführungsbeispiel ist in dieser Hinsicht besonders gut geschützt, weil der Schlüssel K weder Teil irgendeiner Software des Geräts 10, die durch einen Angreifer überwacht oder analysiert werden könnte, ist, noch eine solche Software 10 auf den Schlüssel K zugreifen kann. Insbesondere ist der Speicher 34 für den Entschlüsselungsschlüssel nur mit der Entschlüsselungseinheit 32 verbunden und kann weder von der Steuereinheit 12 noch von irgendeiner anderen Einheit des Geräts 10 ausgelesen werden.
  • Um den Schlüssel K geheim zu halten, sollte das von der Entschlüsselungseinheit 32 verwendete Entschlüsselungsverfahren die Eigenschaft haben, dass auch dann keine nützlichen Informationen über den Schlüssel K erhalten werden können, wenn mehrere Entschlüsselungsvorgänge beobachtet werden, d. h., Paare von verschlüsselten Daten ED und entsprechenden Klartext-Daten DP bekannt sind. Die oben erwähnten Ver-/Entschlüsselungsverfahren und andere bekannte Ver-/Entschlüsselungsverfahren sind in dieser Hinsicht geeignet.
  • Bei einigen Ausführungsbeispielen verwendet die Entschlüsselungseinheit 32 einen abgeleiteten Schlüssel DK statt des in dem Speicher 34 für den Entschlüsselungsschlüssel enthaltenen Schlüssels K. Der abgeleitete Schlüssel DK kann von dem gespeicherten Schlüssel K durch irgendein Verfahren erhalten werden, und bei diesem Vorgang können weitere Informationen in den abgeleiteten Schlüssel DK aufgenommen werden. Beispielsweise kann der abgeleitete Schlüssel DK erhalten werden, indem eine kryptographische Hash-Funktion CH auf den gespeicherten Schlüssel K und eine Adresse ADR des Speicherschreibvorgangs wie folgt angewendet wird: DK = CH(K, ADR)
  • Es versteht sich, dass der gleiche abgeleitete Schlüssel DK auch verwendet werden muss, wenn die verschlüsselten Daten ED erzeugt werden.
  • Die Verwendung eines abgeleiteten Schlüssels DK, wie beispielsweise dem oben beschriebenen, steigert die Sicherheit des Verfahrens gegen Manipulationen weiter, weil für Speicherschreibvorgänge an jede Adresse ein unterschiedlicher Schlüssel verwendet wird. Auch wenn es einem Angreifer gelingt, einen der abgeleiteten Schlüssel DK auszuspähen, ist dieser für spätere Schreibvorgänge an andere Speicheradressen nutzlos.
  • In einigen Ausführungsbeispielen werden nicht nur der Schlüssel K, sondern auch der Initialisierungsvektor IV geheim gehalten. Dies ist jedoch in kryptographischer Hinsicht nicht unbedingt erforderlich, und demgemäß gibt es auch Ausführungsbeispiele, bei denen der Initialisierungsvektor IV kein geheimer Wert ist. Beispielsweise wird in manchen Ausführungsbeispielen eine eindeutige Seriennummer des Geräts 10 als Initialisierungsvektor IV verwendet.
  • Im Allgemeinen gibt es mehrere mögliche Arten zur Individualisierung des Initialisierungsvektors IV, und in unterschiedlichen Ausführungsbeispielen der Erfindung kann jede dieser Arten verwenden werden. Beispielsweise kann der Initialisierungsvektor IV die einzelnen Geräte 10 individuell kennzeichnen – wie in dem im vorherigen Absatz angeführtem Beispiel –, oder er kann die einzelnen Benutzer individuell kennzeichnen, oder er kann die einzelnen Schreibvorgänge individuell kennzeichnen. In manchen Ausführungsbeispielen kann der Initialisierungsvektor IV von einer Adresse des Speicherschreibvorgangs, beispielsweise der Startsektoradresse, abhängen oder identisch mit der Adresse sein.
  • 2 zeigt eine beispielhafte Ablaufsequenz, die die Schritte des Einschreibens von Daten in den programmierbaren Speicher 24 und des Auslesens von Daten aus dem programmierbaren Speicher 24 umfasst.
  • Wenn die in dem programmierbaren Speicher 24 gespeicherten Daten – beispielsweise Anwendungssoftware – aktualisiert werden sollen, führt die externe Datenquelle 44 einen Schritt 54 des Erzeugens der verschlüsselten Daten ED aus, wobei die neuen Klartext-Daten PD und geeignete Werte für den Entschlüsselungsschlüssel K und den Initialisierungsvektor IV verwenden werden, wie oben beschrieben.
  • In Schritt 56 werden die entschlüsselten Daten ED über den Kommunikationspfad 46 an das Gerät 10 – genauer, an seine Steuereinheit 12 – übertragen. 2 zeigt ein Beispiel eines Befehls AKTUALISIERE (ADR, ED), der das Gerät 10 dazu anweist, einen Aktualisierungsvorgang auszuführen, und der die Aktualisierungs-Startadresse ADR und die verschlüsselten Daten ED enthält. In Schritt 58 leitet die Steuereinheit 12 diese Informationen mit einem Schreibbefehl SCHREIBE (ADR, ED) an die Speichereinheit 14 – genauer, an die interne Speichersteuerung 22 – weiter.
  • In Reaktion auf den Eingang des Schreibbefehls SCHREIBE (ADR, ED) führt die interne Speichersteuerung 22 die zur Programmierung des programmierbaren Speichers 24 erforderlichen Schritte aus. Zunächst werden in Schritt 60 einer oder mehrere Sektoren des programmierbaren Speichers 24 gelöscht. Dann werden in Schritt 62 die einzuprogrammierenden verschlüsselten Daten ED durch die Entschlüsselungseinheit 32 im Datenschreibpfad 30 geleitet, so dass die tatsächlichen Klartext-Daten PD in das geschützte Speicherfeld 42 geschrieben werden. Die Schritte 60 und 62 können so oft wie erforderlich wiederholt werden, wenn weitere Daten in den programmierbaren Speicher 24 eingeschrieben werden sollen; diese Möglichkeit ist in 2 durch einen gestrichelten Pfeil 64 gezeigt.
  • Nach der Beendigung des Aktualisierungsvorgangs enthält das geschützte Speicherfeld 42 die Klartext-Daten PD. Diese Daten können nun in üblicher Weise ausgelesen werden. Beispielsweise kann ein Speicherlesebefehl LESE (ADR) in Schritt 66 von der Steuereinheit 12 ausgegeben werden. Die interne Speichersteuerung 22 führt in Schritt 68 einen entsprechenden Speicherlesevorgang aus. In Schritt 70 gibt der programmierbare Speicher 24 die Klartext-Daten PD über den Datenlesepfad 38 an die interne Speichersteuerung 22 aus. Schließlich leitet die interne Speichersteuerung 22 die Klartext-Daten PD in Schritt 72 an die Steuereinheit 12 weiter. Beispielsweise können die Klartext-Daten PD Anwendungsprogrammcode sein, der von der CPU 16 der Steuereinheit 12 ausgeführt wird.
  • Bei dem Ausführungsbeispiel gemäß 1 sind alle Elemente der Speichereinheit 14 in einem einzigen Halbleiterchip oder einem einzigen Halbleiterbauteil integriert. Insbesondere sind die Entschlüsselungseinheit 32, der programmierbare Speicher 24 und die Leitungen, durch die die Klartext-Daten PD in den Speicher 24 einprogrammiert werden, alle in diesem Halbleiterchip oder Halbleiterbauteil enthalten. Diese Konfiguration sorgt für besonders guten Schutz gegen körperliche Angriffe, bei denen versucht wird, die Entschlüsselungseinheit 32 dadurch zu umgehen, dass Datenschreibleitungen direkt an den programmierbaren Speicher 24 angeschlossen werden.
  • 3 zeigt eine Ausführungsalternative, bei der die Entschlüsselungseinheit 32 und die zugeordneten Elemente des Datenschreibpfades 30 in der Steuereinheit 12 integriert sind. Ferner sind die Speicherschnittstelle 18 und die interne Speichersteuerung 22 des Ausführungsbeispiels gemäß 1 bei dem Ausführungsbeispiel gemäß 3 in eine kombinierte Speichersteuerung 74 integriert. Ein Vorteil des Ausführungsbeispiels gemäß 3 ist, dass die Speichereinheit 14 eine übliche Speichervorrichtung wie beispielsweise ein Flash-Speicherchip sein kann. Ferner kann die Steuereinheit 12 so ausgeführt sein, dass die CPU 16 und die Entschlüsselungseinheit 32 gemeinsame Elemente wie beispielsweise arith metische oder logische Verarbeitungseinheiten gemeinsam nutzen. Bei dem Ausführungsbeispiel gemäß 3 sollte dafür gesorgt werden, dass ein Angreifer keine Datenschreibleitungen physisch unmittelbar an die Speichereinheit 14 anschließen kann.
  • Insgesamt schützt die vorliegende Erfindung die in dem geschützten Speicherfeld 42 des programmierbaren Speichers 24 enthaltenen Daten gegen unberechtigte Veränderung. Wenn die geschützten Daten Software umfassen, die auf dem Gerät 10 ausgeführt werden soll, dann kann diese Software ohne irgendeine Integritätsüberprüfung als vertrauenswürdig angesehen werden. Es versteht sich, dass geeignete Vorkehrungen gegen mögliche Angriffe getroffen werden sollten, die ein physisches Entfernen – beispielsweise ein Entlöten – oder einen Austausch der Speichereinheit 14 beinhalten.
  • Die in der obigen Beschreibung von Ausführungsbeispielen enthaltenen Einzelheiten sollen nicht als Einschränkungen des Bereichs der Erfindung angesehen werden, sondern vielmehr als beispielhafte Veranschaulichungen einiger Ausführungsbeispiele. Demgemäß soll der Bereich der Erfindung nicht durch die veranschaulichten Ausführungsbeispiele bestimmt werden, sondern durch die angehängten Ansprüche und ihre rechtlichen Äquivalente.
  • ZUSAMMENFASSUNG
  • Eine Vorrichtung enthält einen programmierbaren Speicher (24), einen Datenschreibpfad (30) zum Einschreiben von Daten in den Speicher (24) und einen Datenlesepfad (38) zum Lesen von Daten aus dem Speicher (24). Der Speicher (24) weist zumindest ein geschütztes Speicherfeld (42) auf. Der Datenschreibpfad (30) enthält eine Entschlüsselungseinheit (32), die dazu eingerichtet ist, verschlüsselte Daten (ED) zu empfangen, die verschlüsselten Daten (ED) zu entschlüsseln und die sich ergebenden Klartext-Daten (PD) in das mindestens eine geschützte Speicherfeld (42) einzuschreiben. Der Datenlesepfad (38) ist dazu eingerichtet, die in dem geschützten Speicherfeld (42) gespeicherten Klartext-Daten (PD) auszulesen. Das mindestens eine geschützte Speicherfeld (42) ist nur beschreibbar, indem die in das mindestens eine geschützte Speicherfeld (42) einzuschreibenden Daten in verschlüsselter Form an den Datenschreibpfad (30) angelegt werden. Die Erfindung umfasst ferner ein elektronisches Gerät (10), eine externe Datenquelle (44), ein Verfahren zum Zugriff auf den programmierbaren Speicher (24), und ein Verfahren zum Bereitstellen einer Aktualisierung an ein elektronisches Gerät (10). Die Erfindung liefert eine Technik zum Schutz der Integrität des elektronischen Geräts (10), indem Angriffe verhindert werden, bei denen unberechtigte Daten – wobei die Daten Programmcode und/oder andere Informationen sind – in dem programmierbaren Speicher (24) gespeichert werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • - EP 2006/009690 [0004]

Claims (19)

  1. Integrierte Halbleiterspeichereinheit (14) mit einem programmierbaren Speicher (24), einem Datenschreibpfad (30) zum Schreiben von Daten in den Speicher (24) und einem Datenlesepfad (38) zum Auslesen von Daten aus dem Speicher (24), bei der: der Speicher (24) zumindest ein geschütztes Speicherfeld (42) beinhaltet, der Datenschreibpfad (30) eine Entschlüsselungseinheit (32) beinhaltet, die dazu eingerichtet ist, verschlüsselte Daten (ED) zu erhalten, die verschlüsselten Daten (ED) zu entschlüsseln und sich ergebende Klartext-Daten (PD) in das mindestens eine geschützte Speicherfeld (42) zu schreiben, der Datenlesepfad (38) dazu eingerichtet ist, die in dem geschützten Speicherfeld (42) gespeicherten Klartext-Daten (PD) auszulesen, wobei das mindestens eine geschützte Speicherfeld (42) nur beschreibbar ist, indem die in das mindestens eine geschützte Speicherfeld (42) einzuschreibenden Daten in verschlüsselter Form an den Datenschreibpfad (30) angelegt werden, ferner umfassend einen Entschlüsselungsschlüssel-Speicher (34), der einen geheimen Schlüssel (K) enthält, wobei der Entschlüsselungsschlüssel-Speicher (34) dazu eingerichtet ist, nur durch die Entschlüsselungseinheit (32) lesbar zu sein.
  2. Integrierte Halbleiterspeichereinheit (14) nach Anspruch 1, bei der der Datenlesepfad (38) frei von irgendwelchen kryptographischen Verarbeitungselementen ist.
  3. Integrierte Halbleiterspeichereinheit (14) nach Anspruch 1 oder Anspruch 2, bei der die Entschlüsselungseinheit (32) dazu eingerichtet ist, bei dem Entschlüsselungsvorgang den geheimen Schlüssel (K) oder einen abgeleiteten Schlüssel (DK), der Informationen aus dem geheimen Schlüssel (K) enthält, zu verwenden.
  4. Integrierte Halbleiterspeichereinheit (14) nach einem der Ansprüche 1 bis 3, bei der die Entschlüsselungseinheit (32) dazu eingerichtet ist, ein symmetrisches Block-Entschlüsselungsverfahren zu verwenden, um die Klartext-Daten (PD) aus den verschlüsselten Daten (ED) zu erhalten.
  5. Integrierte Halbleiterspeichereinheit (14) nach Anspruch 4, bei der die Entschlüsselungseinheit (32) dazu eingerichtet ist, bei dem Entschlüsselungsverfahren einen individualisierten Initialisierungsvektor (IV) zu verwenden.
  6. Integrierte Halbleiterspeichereinheit (14) nach einem der Ansprüche 1 bis 5, bei der der programmierbare Speicher (24) ein Flash-Speicher ist.
  7. Integrierte Halbleiterspeichereinheit (14) nach einem der Ansprüche 1 bis 6, bei der das zumindest eine geschützte Speicherfeld (42) ein einziges geschütztes Speicherfeld (42) ist, das den gesamten programmierbaren Speicher (24) einnimmt.
  8. Integrierte Halbleiterspeichereinheit (14) nach einem der Ansprüche 1 bis 7, die ferner eine interne Speichersteuerung (22) enthält.
  9. Elektronisches Gerät (10) mit einem programmierbaren Speicher (24), einem Datenschreibpfad (30) zum Schreiben von Daten in den Speicher (24) und einem Datenlesepfad (38) zum Auslesen von Daten aus dem Speicher (24), wobei der Speicher (24) zumindest ein geschütztes Speicherfeld (42) beinhaltet, der Datenschreibpfad (30) eine Entschlüsselungseinheit (32) beinhaltet, die dazu eingerichtet ist, verschlüsselte Daten (ED) zu erhalten, die verschlüsselten Daten (ED) zu entschlüsseln und sich ergebende Klartext-Daten (PD) in das mindestens eine geschützte Speicherfeld (42) zu schreiben, der Datenlesepfad (38) dazu eingerichtet ist, die in dem geschützten Speicherfeld (42) gespeicherten Klartext-Daten (PD) auszulesen, das mindestens eine geschützte Speicherfeld (42) nur beschreibbar ist, indem die in das mindestens eine geschützte Speicherfeld (42) einzuschreibenden Daten in verschlüsselter Form an den Datenschreibpfad (30) angelegt werden, das elektronische Gerät (10) eine Steuereinheit (12) und eine Speichereinheit (14) enthält, wobei die Speichereinheit (14) den programmierbaren Speicher (24) enthält, die Steuereinheit (12) eine CPU (16), die Entschlüsselungseinheit (32) und einen Entschlüsselungsschlüssel-Speicher (34) mit einem geheimen Schlüssel (K) enthält, und der Entschlüsselungsschlüssel-Speicher (34) dazu eingerichtet ist, nur durch die Entschlüsselungseinheit (32) lesbar zu sein.
  10. Elektronisches Gerät (10) nach Anspruch 9, bei dem das mindestens eine geschützte Speicherfeld (42) der Speichereinheit (14) Programmcode zur Ausführung durch die CPU (16) enthält.
  11. Elektronisches Gerät (10) nach Anspruch 9 oder Anspruch 10, bei dem das Gerät (10) ein mobiles Kommunikationsgerät, ein Medienwiedergabegerät, ein eingebettetes System, ein Gerät zur Nutzung in Kraftfahrzeugen, ein Authentifizierungsgerät oder ein Gerät zur medizinischen Verwendung ist.
  12. Elektronisches Gerät (10) nach einem der Ansprüche 9 bis 11, bei dem der Datenlesepfad (38) frei von irgendwelchen kryptographischen Verarbeitungselementen ist.
  13. Elektronisches Gerät (10) nach einem der Ansprüche 9 bis 12, bei dem die Entschlüsselungseinheit (32) dazu eingerichtet ist, bei dem Entschlüsselungsvorgang den geheimen Schlüssel (K) oder einen abgeleiteten Schlüssel (DK), der Informationen aus dem geheimen Schlüssel (K) enthält, zu verwenden.
  14. Elektronisches Gerät (10) nach einem der Ansprüche 9 bis 13, bei dem die Entschlüsselungseinheit (32) dazu eingerichtet ist, ein symmetrisches Block-Entschlüsselungsverfahren zu verwenden, um die Klartext-Daten (PD) aus den verschlüsselten Daten (ED) zu erhalten.
  15. Elektronisches Gerät (10) nach Anspruch 14, bei der die Entschlüsselungseinheit (32) dazu eingerichtet ist, bei dem Entschlüsselungsverfahren einen individualisierten Initialisierungsvektor (IV) zu verwenden.
  16. Elektronisches Gerät (10) nach einem der Ansprüche 9 bis 15, bei dem der programmierbare Speicher (24) ein Flash-Speicher ist.
  17. Elektronisches Gerät (10) nach einem der Ansprüche 9 bis 16, bei dem das zumindest eine geschützte Speicherfeld (42) ein einziges geschütztes Speicherfeld (42) ist, das den gesamten programmierbaren Speicher (24) einnimmt.
  18. Externe Datenquelle (44) mit einer Verschlüsselungseinheit (48), wobei die externe Datenquelle (44) dazu eingerichtet ist, verschlüsselte Daten (ED) zur Verarbeitung durch die integrierte Halbleiterspeichereinheit (14) nach einem der Ansprüche 1 bis 8 oder durch das elektronische Gerät (10) nach einem der Ansprüche 9 bis 17 bereitzustellen.
  19. Verfahren zum Bereitstellen einer Aktualisierung an eine integrierte Halbleiterspeichereinheit (14) nach einem der Ansprüche 1 bis 8 oder an ein elektronisches Gerät (10) nach einem der Ansprüche 9 bis 17, wobei das Verfahren umfasst: Erzeugen (54) von verschlüsselten Daten (ED) auf Grundlage von Klartext-Daten (PD), die in die integrierte Halbleiterspeichereinheit (14) oder das elektronische Gerät (10) eingeschrieben werden sollen, und Bereitstellen der verschlüsselten Daten (ED) an die integrierte Halbleiterspeichereinheit (14) oder das elektronische Gerät (10) zur Entschlüsselung und zur Speicherung in der integrierten Halbleiterspeichereinheit (14) oder dem elektronischen Gerät (10).
DE112006004173T 2006-12-15 2006-12-15 Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung Withdrawn DE112006004173T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2006/012128 WO2008071222A1 (en) 2006-12-15 2006-12-15 Protecting a programmable memory against unauthorized modification

Publications (1)

Publication Number Publication Date
DE112006004173T5 true DE112006004173T5 (de) 2009-11-12

Family

ID=38283344

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006004173T Withdrawn DE112006004173T5 (de) 2006-12-15 2006-12-15 Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung

Country Status (3)

Country Link
US (1) US20100077230A1 (de)
DE (1) DE112006004173T5 (de)
WO (1) WO2008071222A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012208836A1 (de) * 2012-05-25 2013-11-28 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Erzeugung kryptographisch geschützter redundanter Datenpakete

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8284939B2 (en) * 2007-10-01 2012-10-09 Neology, Inc. Systems and methods for preventing transmitted cryptographic parameters from compromising privacy
US8826037B2 (en) * 2008-03-13 2014-09-02 Cyberlink Corp. Method for decrypting an encrypted instruction and system thereof
JP5139465B2 (ja) * 2010-03-31 2013-02-06 株式会社東芝 メモリチップ、情報記憶システム、読み出し装置
WO2012090351A1 (en) * 2010-12-27 2012-07-05 Nec Corporation Mapping server, network system, packet forwarding method and program
KR101975027B1 (ko) 2012-05-04 2019-05-03 삼성전자주식회사 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들
US9411600B2 (en) * 2013-12-08 2016-08-09 Intel Corporation Instructions and logic to provide memory access key protection functionality
EP3127273B1 (de) * 2014-03-31 2020-10-14 Irdeto B.V. Kryptografischer chip und zugehörige verfahren

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008040377A1 (en) 2006-10-06 2008-04-10 Agere Systems Inc. Protecting secret information in a programmed electronic device

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US6118870A (en) * 1996-10-09 2000-09-12 Lsi Logic Corp. Microprocessor having instruction set extensions for decryption and multimedia applications
US6282657B1 (en) * 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US6311270B1 (en) * 1998-09-14 2001-10-30 International Business Machines Corporation Method and apparatus for securing communication utilizing a security processor
US6408387B1 (en) * 1999-01-22 2002-06-18 Intel Corporation Preventing unauthorized updates to a non-volatile memory
DE19933263A1 (de) * 1999-07-15 2001-01-25 Siemens Ag Vorrichtung mit einem Speicher zur Speicherung von Daten und Verfahren zum Einschreiben von Daten in einen Speicher
US6643751B2 (en) * 2000-03-20 2003-11-04 Texas Instruments Incorporated System and method for limited access to system memory
US20020136410A1 (en) * 2001-03-26 2002-09-26 Sun Microsystems, Inc. Method and apparatus for extinguishing ephemeral keys
US7111292B2 (en) * 2001-09-10 2006-09-19 Texas Instruments Incorporated Apparatus and method for secure program upgrade
US7065651B2 (en) * 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
US8467534B2 (en) * 2003-04-16 2013-06-18 Broadcom Corporation Method and system for secure access and processing of an encryption/decryption key
US7472285B2 (en) * 2003-06-25 2008-12-30 Intel Corporation Apparatus and method for memory encryption with reduced decryption latency
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
EP1668818A2 (de) * 2003-10-03 2006-06-14 Matsushita Electric Industrial Co., Ltd. Informationsübertragungssystem, verschlüsselungsvorrichtung unt entschlüsselungsvorrichtung unter verwendung einer elliptischen kurve
US7694151B1 (en) * 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
CA2537299C (en) * 2004-02-05 2011-03-22 Research In Motion Limited On-chip storage, creation, and manipulation of an encryption key
US20080189557A1 (en) * 2005-01-19 2008-08-07 Stmicroelectronics S.R.I. Method and architecture for restricting access to a memory device
US20070011429A1 (en) * 2005-07-07 2007-01-11 Vasudevan Sangili Virtual memory key generation
US20070180271A1 (en) * 2006-02-02 2007-08-02 Ibm Corporation Apparatus and method for providing key security in a secure processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008040377A1 (en) 2006-10-06 2008-04-10 Agere Systems Inc. Protecting secret information in a programmed electronic device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012208836A1 (de) * 2012-05-25 2013-11-28 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Erzeugung kryptographisch geschützter redundanter Datenpakete

Also Published As

Publication number Publication date
US20100077230A1 (en) 2010-03-25
WO2008071222A1 (en) 2008-06-19

Similar Documents

Publication Publication Date Title
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE10196006B4 (de) Erzeugen einer Schlüsselhierarchie zur Verwendung in einer isolierten Ausführungsumgebung
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102009013332B4 (de) Verfahren und Vorrichtung zum Erzeugen eines kryptografischen Schlüssels
DE112006004173T5 (de) Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung
DE19782169C2 (de) Kryptographisch geschütztes Seitenwechsel-Subsystem
WO2017129184A1 (de) Verfahren zur mehrschichtig geschützten sicherung von daten insbesondere anmeldedaten und passwörtern
EP2727277B1 (de) System zur sicheren übertragung von daten und verfahren
DE19839847A1 (de) Speichern von Datenobjekten im Speicher einer Chipkarte
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE112009004491T5 (de) System und Verfahren zum sicheren Speichern von Daten in einem elektronischen Gerät
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
DE10200288A1 (de) Eine Vorrichtung zur Ausführung von Anwendungen, die sichere Transaktionen und/oder Zugangskontrolle zu werthaltigen Inhalten und/oder Dienstleistungen umfassen, und Verfahren zum Schutz einer solchen Vorrichtung
WO2011054639A1 (de) Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
DE102006055830A1 (de) Verfahren zum Schutz eines Steuergeräts vor Manipulation
WO2003001348A2 (de) Steuereinheit
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
EP1661069B1 (de) Prozessorschaltung und verfahren zum zuordnen eines logikchips zu einem speicherchip
DE10142351A1 (de) Initialisieren einer Chipkarte
DE602004002294T2 (de) Verfahren zum schutz eines telekommunikationsendgeräts des mobiltelephontyps
EP3407242A1 (de) Personalisieren eines halbleiterelements
DE112021000149T5 (de) Verschlüsselung einer datenspeicherungsvorrichtung
EP3244331A1 (de) Verfahren zum lesen von attributen aus einem id-token
DE60216106T2 (de) Geschützte lesung von rechnerbefehlen in einem datenverarbeitungssystem
DE102018115758A1 (de) Sicherheit von Java-Card-Schlüsselobjekten

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination

Effective date: 20131217