DE112019007421T5 - Speichergerät mit sicherer testmoduseingabe - Google Patents

Speichergerät mit sicherer testmoduseingabe Download PDF

Info

Publication number
DE112019007421T5
DE112019007421T5 DE112019007421.0T DE112019007421T DE112019007421T5 DE 112019007421 T5 DE112019007421 T5 DE 112019007421T5 DE 112019007421 T DE112019007421 T DE 112019007421T DE 112019007421 T5 DE112019007421 T5 DE 112019007421T5
Authority
DE
Germany
Prior art keywords
signature
storage device
data
register
cryptographic algorithm
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.)
Pending
Application number
DE112019007421.0T
Other languages
English (en)
Inventor
Alberto Troia
Antonino Mondello
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE112019007421T5 publication Critical patent/DE112019007421T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/006Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/46Test trigger logic
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/48Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Abstract

Die vorliegende Offenbarung betrifft eine Speichervorrichtung, umfassend:
- ein Array von Speicherzellen; und
- eine Zugriffsverwaltungsarchitektur, die einen sicheren Zugriff auf einen Testmodus des Arrays von Speicherzellen bereitstellt, wobei die Zugriffsverwaltungsarchitektur umfasst:
- eine Registergruppe, die Daten umfasst, die das Speichergerät identifizieren;
einen kryptographischen Algorithmus, der eine interne Signatur berechnet, mit einem Mechanismus zum Sicherstellen der Datenaktualität;
- einen nichtflüchtigen Speicherbereich, der spezifische Daten speichert, die von dem kryptographischen Algorithmus zum Berechnen der internen Signatur verwendet werden;
einen Vergleichsblock zum Vergleichen der berechneten internen Signatur mit einer vom Benutzer bereitgestellten Signatur, um ein Freigabesignal zu erzeugen, das den Zugriff auf einen Testmodus des Arrays von Speicherzellen ermöglicht.
Die Offenbarung betrifft auch eine System-on-Chip(SoC)-Komponente, die eine Speichervorrichtung umfasst, sowie ein Verfahren zum Verwalten des Zugriffs auf ein Speicherarray in einen Testmodus.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung bezieht sich auf Speichervorrichtungen und insbesondere auf eine Speichervorrichtung mit einem sicheren Testmoduseingang.
  • STAND DER TECHNIK
  • Mehrere Anwendungen würden den Zugriff auf ein Flash-Speicher-Array in einem Testmodus während des Herstellungs-Testprozesses erfordern, aber auch während der Lebensdauer einer Komponente, die ein solches Flash-Speicher-Array enthält.
  • Normalerweise kann ein Testmodus des Flash-Speicherarrays reservierte Operationen enthalten, die nur der Lieferant der Komponente verwenden möchte.
  • Es ist wünschenswert, die mit dem Testmoduszugriff verbundenen Probleme zu lösen, indem die Speichervorrichtung mit einem fein abgestimmten Zugriffsalgorithmus ausgestattet wird, der nützlich sein könnte, um den Satz erlaubter Operationen für jeden Benutzer zu steuern, der in den Testmodus eintritt, um so mit unterschiedlichen Berechtigungsebenen und verschiedenen zugänglichen Testmodi umzugehen.
  • Figurenliste
    • 1A zeigt ein Blockdiagramm eines Flash-Speicherarrays, das mit einer Zugriffsverwaltungsarchitektur gemäß einer Ausführungsform der vorliegenden Offenbarung versehen ist;
    • 1B zeigt ein Blockdiagramm der Zugriffsverwaltungsarchitektur des Flash-Speicherarrays von 1A gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 1C zeigt ein Blockdiagramm der Zugriffsverwaltungsarchitektur des Flash-Speicher-Arrays aus 1A gemäß einer anderen Ausführungsform der vorliegenden Offenbarung;
    • 2A zeigt ein Blockdiagramm eines Flash-Speicher-Arrays, das mit einer Zugriffsmanagement-Architektur gemäß einer alternativen Ausführungsform der vorliegenden Offenbarung ausgestattet ist;
    • 2B zeigt ein Blockdiagramm der Zugriffsverwaltungsarchitektur des Flash-Speicher-Arrays aus 2A gemäß einer alternativen Ausführungsform der vorliegenden Offenbarung;
    • 2C zeigt ein Blockdiagramm der Zugriffsverwaltungsarchitektur des Flash-Speicher-Arrays von 2A gemäß einer anderen alternativen Ausführungsform der vorliegenden Offenbarung.
  • DETAILLIERTE BESCHREIBUNG
  • Unter Bezugnahme auf diese Figuren wird hierin eine Speichervorrichtung offenbart, die ein Array von Speicherzellen umfasst, insbesondere ein Flash-Speicherarray, das mit einer Zugriffsverwaltungsarchitektur versehen ist.
  • Wie im Folgenden detailliert beschrieben wird, kann gemäß dem bekannten JTAG-Protokoll, das zusätzliche Register verwendet werde, um die Komponentenfunktionalitäten zu ergänzen und zu erweitern, d.h. wie im Fall des IEEE 1532-Standards, ein Flash-Speicherarray zusätzliche Hardware und Algorithmen implementieren um sicherzustellen, dass nur der richtige Benutzer mit entsprechender Berechtigung auf bestimmte Testmodi und/oder interne Updates zugreifen kann, insbesondere durch ein sogenanntes Flash Array Micro Sequencer Firmware-Update.
  • Insbesondere zielt das vorgeschlagene Flash-Speicherarray, das mit einer Zugriffsverwaltungsarchitektur versehen ist, die einen kryptographischen Algorithmus verwendet, darauf ab, dass verschiedene Testmodi korrekt nur für autorisierte Zugriffe realisiert werden können.
  • Kryptografische Primitive werden als eine gute Option gewählt, um die Berechtigung zum Zugriff auf das Flash-Speicherarray in einem Testmodus, nämlich in einem werkseitig reservierten Testmodus, zu lösen.
  • Ein beispielhaftes Speichergerät umfasst:
    • - ein Array von Speicherzellen; und
    • - eine Zugriffsverwaltungsarchitektur, die einen sicheren Zugriff auf einen Testmodus des Arrays von Speicherzellen bereitstellt,
    wobei die Zugriffsverwaltungsarchitektur umfasst:
    • - eine Registergruppe, die Daten umfasst, die das Speichergerät identifizieren;
    • - einen kryptographischen Algorithmus, der eine interne Signatur berechnet, mit einem Mechanismus zum Sicherstellen der Datenaktualität;
    • - einen nichtflüchtigen Speicherbereich, der spezifische Daten speichert, die von dem kryptographischen Algorithmus zum Berechnen der internen Signatur verwendet werden; einen Vergleichsblock zum Vergleichen der berechneten internen Signatur mit einer vom Benutzer bereitgestellten Signatur, um ein Freigabesignal zu erzeugen, das den Zugriff auf einen Testmodus des Arrays von Speicherzellen ermöglicht.
  • In einer Ausführungsform kann der kryptografische Algorithmus eine Secure HASH-Funktion oder eine MAC-Funktion verwenden.
  • Darüber hinaus kann die Speichervorrichtung ferner ein Register zum Speichern der intern berechneten Signatur und ein Register umfassen, auf das von außerhalb des Speicherarrays zugegriffen wird, wobei ein Benutzer in der Lage ist, eine zuvor bereitgestellte Signatur zu speichern, beispielsweise ein Datenregister des JTAG-Protokolls.
  • Eine andere beispielhafte Speichervorrichtung umfasst einen weiteren nichtflüchtigen Speicherbereich, der kundenspezifische Daten speichert, die von dem kryptografischen Algorithmus zum Berechnen der internen Signatur verwendet werden, um den Zugriff auf das Speicherarray in mehr als einem Testmodus zu autorisieren, und einen Entscheidungsmultiplexer, der die spezifischen Daten empfängt, und die kundenspezifischen Daten und stellt sie dem kryptographischen Algorithmus auf Basis eines Befehlssignals zur Verfügung.
  • Die vorliegende Offenbarung betrifft auch ein Verfahren zum Verwalten des Zugriffs auf ein Speicherarray in einen Testmodus, umfassend die Schritte:
    • - Bereitstellen von Daten, die das Speichergerät identifizieren, zusammen mit spezifischen Daten für einen kryptographischen Algorithmus;
    • - Berechnen einer internen Signatur;
    • - Überprüfung der Aktualität der Daten;
    • - Aufforderung an einen Benutzer, eine zuvor bereitgestellte Signatur einzufügen;
    • - Vergleichen der intern berechneten Signatur mit der vom Benutzer bereitgestellten Signatur;
    • - Erlaubnis für Zugriff auf das Speicherarray in einem Testmodus bei übereinstimmenden Signaturen.
  • Das Verfahren kann ferner einen Schritt zum weiteren Speichern von kundenspezifischen Daten und einen Schritt zum Auswählen der spezifischen Daten oder der kundenspezifischen Daten umfassen, um auf verschiedene Testmodi zuzugreifen
  • Die Offenbarung betrifft ferner eine System-on-Chip (SoC)-Komponente, die eine Speichervorrichtung umfasst, die wiederum Folgendes beinhaltet:
    • - ein Array von Speicherzellen; und
    • - eine Zugriffsverwaltungsarchitektur, die einen sicheren Zugriff auf einen Testmodus des Arrays von Speicherzellen bereitstellt,
    wobei die Zugriffsverwaltungsarchitektur umfasst:
    • - eine Registergruppe, die Daten umfasst, die das Speichergerät identifizieren; einen kryptographischen Algorithmus, der eine interne Signatur berechnet, mit einem Mechanismus zum Sicherstellen der Datenaktualität;
    • - einen nichtflüchtigen Speicherbereich, der spezifische Daten speichert, die von dem kryptographischen Algorithmus zum Berechnen der internen Signatur verwendet werden; einen Vergleichsblock zum Vergleichen der berechneten internen Signatur mit einer vom Benutzer bereitgestellten Signatur, um ein Freigabesignal zu erzeugen, das den Zugriff auf einen Testmodus des Arrays von Speicherzellen ermöglicht.
  • Speichervorrichtungen sind mit sogenannten Testpads versehen, die verwendet werden, um eine externe Testmaschine zu kontaktieren. Die Testpads können Input-, Output- oder Input/Output-Pads sein und sind über langsame Pfade mittels geeigneter Puffer mit einem Speicherarray verbunden. Darüber hinaus sind entsprechende ESD-Netzwerke mit den Testpads verbunden, die ESDs ausgesetzt sind, und zwar hauptsächlich aufgrund der Verbindung mit der Testmaschine. Der Verbindung der Prüfmaschine mit den Prüfpads sollte eine Zugangs-Authentifizierung zum Eintritt in einen korrekten Prüfmodus folgen.
  • 1A ist ein Blockdiagramm eines beispielhaften Flash-Speicherarrays 100, das mit einem Zugriffsverwaltungsalgorithmus versehen ist, der einen sicheren Zugriff oder Eintritt in einen Testmodus des Flash-Speicherarrays 100 ermöglicht.
  • Das Flash-Speicherarray 100 umfasst eine Zugriffsverwaltungsarchitektur 110 mit flüchtigen und nichtflüchtigen Registern sowie Logik- und Berechnungsmitteln, die innerhalb des Flash-Speicherarrays 100 funktionell gruppiert sind, wobei eine solche Zugriffsverwaltungsarchitektur 110 einen externen Befehl von einem Benutzer empfängt und bereitstellt und aktiviert Signal, das einen bestimmten Testmodus autorisiert, insbesondere gebunden an die Benutzerzugriffsberechtigungsebene, wie in der folgenden Beschreibung weiter verdeutlicht wird.
  • Die Zugriffsverwaltungsarchitektur 110 umfasst eine Registergruppe 120, die wiederum ein erstes Register 121 für die nichtflüchtigen Komponentenvariablen JTAG NON VOL des JTAG-Protokolls, ein zweites Register 122 für die flüchtigen Komponentenvariablen JTAG VOL des JTAG-Protokolls und ein optionales Register 123 für Zufallsdaten durch einen Controller unter Verwendung eines spezifischen JTAG-Befehls, auch als JTAG Data - Freshness bezeichnet. Insbesondere umfassen die Register der Registergruppe 120 Daten, die Speichervorrichtung einschließlich des Flash-Speicherarrays 100 identifizieren.
  • Tatsächlich enthalten Flash-Speicherarrays, wie die meisten nichtflüchtigen Geräte, für Fabrikzwecke, d.h. zur Identifizierung, einige nichtflüchtige Daten, um den Chip zu identifizieren. Normalerweise sind diese Daten der Zeitpunkt des Tests, die Positionierung des Chips im Wafer, die Wafernummer und andere spezifische Daten. Diese Daten stellen eine sehr ergiebige Quelle für Zufallsdaten dar, da sie von Würfel zu Würfel variieren. Geeigneterweise werden solche Daten verwendet, um eine interne Signatur zu berechnen, wie in der folgenden Beschreibung erläutert wird.
  • Die Zugriffsverwaltungsarchitektur 110 umfasst somit ferner eine kryptografische Gruppe 130, die wiederum einen kryptografischen Algorithmus 131 beinhaltet, sowie einen nichtflüchtigen Speicherbereich 132, der spezifische Daten speichert, die von dem kryptografischen Algorithmus 131 verwendet werden sollen. Wie unten erläutert wird, können die spezifischen Daten ein Geheimschlüssel oder Geheimdaten auf der Grundlage der verwendeten kryptographischen Funktion sein.
  • Der kryptographische Algorithmus 131 umfasst einen Mechanismus zum Sicherstellen der Datenfrische, um einen Wiederholungsangriff zu vermeiden, beispielsweise einen monotonen Zähler oder einen Zeitstempel, um nur einige zu nennen.
  • Der kryptografische Algorithmus 131 kann eine kryptografische HASH-Funktion verwenden.
  • Eine HASH-Funktion ist eine Funktion, die verwendet wird, um Daten beliebiger Größe in Daten einer festen Größe abzubilden, wobei Rückgabewerte als HASH-Werte bezeichnet werden. Insbesondere liefert eine HASH-Funktion ausgehend von einem Ausgangsdatum oder einer Nachricht variabler Länge immer einen auch als Digest bezeichneten Ergebniswert fester Länge. Darüber hinaus sind HASH-Funktionen in der Regel nicht umkehrbar, sodass ein Originaldaten- oder Wert nicht allein durch den HASH-Wert abgerufen werden kann.
  • Insbesondere kann der kryptografische Algorithmus 131 einen sicheren Hash-Algorithmus oder SHA verwenden.
  • Gemäß einer Ausführungsform wird der SHA-256 verwendet, der HASH-Werte mit einer Größe von 32 Bytes unabhängig von der Länge eines Eingangsdatenstroms bereitstellt und von seiner Konzeption bis jetzt keine Kollision gezeigt hat.
  • Geeigneterweise kann die kryptografische HASH-Funktion die speziellen Daten verwenden, bei denen es sich um die im nichtflüchtigen Speicherbereich 132 gespeicherten Geheimdaten und den Inhalt der Register der Registergruppe 120 handelt, um eine interne Signatur gemäß der folgenden Formel zu berechnen: Intern berechnete Signaturen = Hash ( JTAG NON VOL | JTAG VOL | Secret Data | JTAG data freshness )
    Figure DE112019007421T5_0001
    wobei das Symbol | die Verkettung von zwei Nachrichten anzeigt.
  • Es sollte angemerkt werden, dass die geheimen Daten für das Funktionieren des HASH-Algorithmus nicht wesentlich sind.
  • Beispielsweise kann eine SHA-256-Funktion ausgehend von Nachrichten mit einer Länge von bis zu mehreren zehn Terabit diese in Digests mit einer festen Länge komprimieren, insbesondere mit einer Länge von nur 32 Byte.
  • Alternativ verwendet der kryptografische Algorithmus 131 gemäß einer anderen Ausführungsform eine MAC-Funktion.
  • Eine MAC-Funktion ist eine Einwegfunktion von zwei Variablen, die in der Lage ist, eine Nachricht beliebiger Länge in einer Shot-Nachricht von Dutzenden von Bytes zu komprimieren, indem die spezifischen Daten verwendet werden, die ein Geheimschlüssel sind, wobei Nachricht und Geheimschlüssel die beiden Variablen der MAC-Funktion sind.
  • Insbesondere kann der kryptografische Algorithmus 131 eine Hash-MAC-Funktion oder HMAC verwenden.
  • Die kryptografische MAC-Funktion kann die spezifischen Daten, bei denen es sich um den im nichtflüchtigen Speicherbereich 132 gespeicherten Geheimschlüssel handelt, und den Inhalt eines oder mehrerer Register der Registergruppe 120 verwenden, um eine interne Signatur nach der folgenden Formel zu berechnen: Intern berechnete Signaturen = MAC ( Secret Key , JTAG NON VOL | JTAG VOL | JTAG Data Freshness )
    Figure DE112019007421T5_0002
    wobei das Symbol | die Verkettung von zwei Nachrichten anzeigt .
  • Es sollte angemerkt werden, dass der geheime Schlüssel in diesem Fall für das Funktionieren des MAC-Algorithmus wesentlich ist, da ein solcher geheimer Schlüssel 32 Byte lang ist.
  • Auch in diesem Fall ist eine HMAC-SHA-256-Funktion in der Lage, ausgehend von Nachrichten mit einer Länge von bis zu mehreren zehn Terabit diese in Digests einer festen Länge zu komprimieren, insbesondere mit einer Länge von nur 32 Byte, benötigt jedoch einen geheimen Schlüssel von 32 Byte Länge.
  • Mit anderen Worten, obwohl MAC- und HASH-Funktionen ähnlich erscheinen, unterscheiden sie sich in Bezug auf die zu implementierenden Ressourcen, die Rechenzeit und den Grad der gebotenen Sicherheit. Insbesondere sind viele HASH-Funktionen anfällig für den Längenerweiterungsangriff, MAC-Funktionen nicht. Die Wahl der kryptografischen Funktionen könnte gemäß der endgültigen Anwendung des Flash-Speicherarrays 100 erfolgen.
  • Der kryptographische Algorithmus 131 verwendet eine symmetrische Kryptographie. Insbesondere kann dieser kryptographische Algorithmus 131 verwendet werden, um sicherzustellen, dass eine Speichervorrichtung einschließlich des Flash-Speicherarrays 100 und ein System auf einem Chip oder SoC auf einzigartige Weise gekoppelt sind.
  • Ein SoC ist bekanntlich eine integrierte Halbleiterschaltung, die alle Komponenten eines Computers oder anderer elektronischer Systeme integriert. Diese Komponenten umfassen typischerweise eine zentrale Verarbeitungseinheit (CPU), Eingangs-/Ausgangsports und sekundäre Speicherkomponenten sowie ein Speicherarray, alle auf einem einzigen Halbleitersubstrat.
  • In diesem Fall kann Data Freshness schließlich vom SoC gesendet werden, um das Öffnen des Factory-Modus einzigartig zu machen. Der SoC kann auch durch eine Testmaschine ersetzt werden, falls dem Unternehmen eine Feld-RMA zur Verfügung gestellt wird
  • Der kryptographische Algorithmus 131 kann in Hardware/Software implementiert sein. Insbesondere weist ein in Hardware implementierter Algorithmus eine hohe Geschwindigkeit auf und die entsprechende Schaltung kann auch für andere kryptographische Zwecke verwendet werden. Alternativ zeigt ein softwareimplementierter Algorithmus eine niedrige Geschwindigkeit, erfordert jedoch keine Waferfläche und könnte für eine Testmodus-Authentifizierung gemäß der vorliegenden Offenbarung ausreichend sein.
  • Die intern berechnete Signatur wird in einem spezifischen Register eines Signaturspeicherbereichs 140 der Zugriffsverwaltungsarchitektur 110 gespeichert.
  • Insbesondere umfasst der Signaturspeicherbereich 140 ein flüchtiges Register 141, auf das von außerhalb des Flash-Speicherarrays 100 zugegriffen wird, wobei ein Benutzer in der Lage ist, eine zuvor bereitgestellte Signatur zu speichern, um den Zugriff des Benutzers auf das Flash-Speicherarray 100 in einer bestimmten (benutzerabhängig) Testmodus. Das flüchtige Register 141 ist ein Datenregister des JTAG-Protokolls, auch als Testsignatur bezeichnet.
  • Der Signaturspeicherbereich 140 umfasst ein weiteres flüchtiges Register 142, in dem die intern durch den kryptographischen Algorithmus 131 berechnete Signatur gespeichert wird.
  • Geeigneterweise wird die vom Benutzer bereitgestellte Signatur, wie sie im flüchtigen Register 141 gespeichert ist, mit der Signatur verglichen, die intern durch den kryptographischen Algorithmus 131 berechnet und im weiteren flüchtigen Register 142 gespeichert wird, wobei nur der Zugriff auf den Testmodus des Flash-Speicherarrays 100 erlaubt ist bei Korrespondenz zwischen diesen Unterschriften.
  • Die Funktionsweise der Zugriffsverwaltungsarchitektur 110 ist in 1B gezeigt. Wie in dieser Figur gezeigt, werden die Daten aus der Registergruppe 120 mit den spezifischen Daten, in diesem Fall den geheimen Daten, die im nichtflüchtigen Speicherbereich 132 gespeichert sind, aggregiert, wie unter Verwendung eines Summierknotens S1 dargestellt, und an die kryptographischer Algorithmus 131, der eine SHA-256-Funktion ist, um die interne Signatur zu berechnen, die in dem weiteren flüchtigen Register 142 des Signaturspeicherbereichs 140 gespeichert werden soll.
  • Eine alternative Ausführungsform ist in 1C gezeigt, wobei der kryptographische Algorithmus 131 eine HMAC-SHA256-Funktion ist. Gemäß dieser alternativen Ausführungsform werden die Daten aus der Registergruppe 120 und der geheime Schlüssel, die im nichtflüchtigen Speicherbereich 132 gespeichert sind, direkt an den kryptographischen Algorithmus 131 gesendet, der eine HMAC-SHA256-Funktion ist, um die zu speichernde interne Signatur zu berechnen im weiteren flüchtigen Register 142 des Signaturspeicherbereichs 140.
  • Der kryptografische Algorithmus 131 umfasst außerdem einen Mechanismus, der die Aktualität der Daten sicherstellt, um Wiederholungsangriffe zu verhindern, z. B. einen monotonen Zähler oder einen Zeitstempel, um nur einige zu nennen.
  • Die intern berechnete Signatur wird dann mit der von einem Benutzer durch einen externen Befehl bereitgestellten Testsignatur verglichen und im flüchtigen Register 141 gespeichert, wobei der Vergleich in einem Vergleichsblock 150 durchgeführt wird, der ein Testfreigabesignal liefert.
  • Der Vergleichsblock 150 kann eine elektronische Schaltung, ein Mikroprozessor oder ein Mikrocontroller und/oder ein Teil einer elektronischen Vorrichtung oder eines Mikroprozessors/Mikrocontrollers sein; sie können auch Computeranweisungen sein, die auf einem computerlesbaren Medium gespeichert sind und von einem Controller oder einem Computer ausgeführt werden können.
  • Die Register 121, 122 oder 123 der Registergruppe 120 sowie die Register 141 und 142 des Signaturspeicherbereichs 140 können elektronische Schaltungen, Speicherzellen oder Speicherabschnitte sein; sie können auch Computeranweisungen sein, die auf einem computerlesbaren Medium gespeichert sind und von einem Controller oder einem Computer ausgeführt werden können.
  • Insbesondere wird die Zugriffsverwaltungsarchitektur 110 nur nach einem ersten Einschalten des Flash-Speicherarrays 100 verwendet, nämlich nach einem Werksproduktionstest, wobei die spezifischen Daten, die ein geheimer Schlüssel/geheime Daten sind, bereitgestellt und in den nichtflüchtigen Speicherbereich 132 gespeichert werden. Geeigneterweise kann ein nichtflüchtiges internes Flag gesetzt werden und auf den kryptographischen Algorithmus 131 kann in einem Testmodus zugegriffen werden, wodurch eine Anforderung für einen externen Befehl ausgelöst wird, der ein Feld für eine vom Benutzer bereitgestellte Signatur zur Authentifizierung enthält.
  • Unter Berücksichtigung eines Soc mit dem Flash-Speicherarray 100 sowie mindestens einem externen Controller, der ein JTAG-Register lesen kann, würde ein Zugriffsverwaltungsalgorithmus unter Verwendung der Zugriffsverwaltungsarchitektur 110 die folgenden Schritte umfassen:
    • • der externe Controller geht zu ShiftIR, um das zweite Register 122 für die flüchtigen Komponentenvariablen JTAG VOL des JTAG-Protokolls zu lesen, um einen JTAG-Lesebefehl zu lesen, geht dann zu RUN/TEST/IDLE und geht zu ShiftDR, um den Inhalt davon zu lesen zweites Register 122, was dann dem Flash-Speicherarray 100 ermöglicht, die interne Signatur zu berechnen und sie in dem weiteren flüchtigen Register 142 zu speichern;
    • • bewegt sich der SoC zu ShiftIR, um einen Test_Signature_Command zu laden, was es einem Benutzer ermöglicht, eine zuvor bereitgestellte Signatur einzufügen, bewegt sich dann zu ShiftDR, um diese Signatur zu laden und sie im flüchtigen Register 141 zu speichern, und geht zu RUN/TEST/IDLE; und
    • • das Flash-Speicherarray 100 vergleicht die Inhalte des flüchtigen Registers 141 und des weiteren flüchtigen Registers 142, d.h. die vom Benutzer bereitgestellte Signatur mit der intern berechneten Signatur, um einen Testmodus-Eintrag für den SoC zu ermöglichen.
  • Optional wechselt der externe Controller zu ShiftIR, um das optionale Register 123 für Zufallsdaten oder JTAG Data - Freshness zu schreiben, wechselt zu ShiftDR, um einen Zufallswert bereitzustellen, wechselt zu RUN/TEST/IDLE, bevor er dem Flash-Speicherarray 100 erlaubt, die interne Signatur zu berechnen und in dem weiteren flüchtigen Register 142 zu speichern.
  • In diesem Fall könnte der Testmodus eine hohe Testmodusebene sein, wie etwa ein Werkstestmodus, der insbesondere einen vollständigen Zugriff auf das Flash-Speicherarray 100 ermöglicht. Alternativ könnte mit einer gewissen Einschränkung des Zugriffs auf das Flash-Speicherarray 100 eine andere Testmodusebene zugelassen werden.
  • Die vorliegende Offenbarung betrifft auch ein Verfahren zum Verwalten des Zugriffs auf ein Flash-Speicherarray in einen Testmodus, das durch das Flash-Speicherarray 100 implementiert wird, das die Zugriffsverwaltungsarchitektur 110 umfasst.
  • Das Verfahren umfasst die folgenden Schritte:
    • - Bereitstellen von Daten, die in einem oder mehreren Registern der Registergruppe 120 des Flash-Speicherarrays 100 gespeichert sind, zusammen mit spezifischen Daten, die ein geheimer Schlüssel/geheime Daten sind, die in dem nichtflüchtigen Speicherbereich 132 gespeichert sind, an einen kryptografischen Algorithmus 131;
    • - Berechnen einer internen Signatur;
    • - Überprüfung der Aktualität der Daten;
    • - Aufforderung an einen Benutzer, eine zuvor bereitgestellte Signatur einzufügen;
    • - Vergleichen der intern berechneten Signatur mit der vom Benutzer bereitgestellten Signatur;
    • - Erlaubnis für Zugriff auf das Speicherarray in einem Testmodus bei übereinstimmenden Signaturen.
  • Insbesondere können die bereitgestellten Daten im ersten Register 121 für die nichtflüchtigen Komponentenvariablen JTAG NON VOL des JTAG-Protokolls und/oder im zweiten Register 122 für die flüchtigen Komponentenvariablen JTAG VOL des JTAG-Protokolls und ggf das optionale Register 123 für Zufallsdaten durch einen Controller unter Verwendung eines spezifischen JTAG-Befehls, JTAG Data - Freshness.
  • Der kryptografische Algorithmus 131 kann einen Mechanismus zur Sicherstellung der Datenaktualität umfassen, um Wiederholungsangriffe zu verhindern, z. B. einen monotonen Zähler oder einen Zeitstempel, um nur einige zu nennen.
  • Darüber hinaus kann der kryptographische Algorithmus 131 eine MAC- und HASH-Funktion sein, nämlich ein SHA-256 oder ein HMAC.
  • Außerdem kann der Vergleichsschritt ein Testfreigabesignal bereitstellen.
  • Das Flash-Speicherarray könnte mit einem Zugriffsverwaltungsalgorithmus versehen sein, der den Zugriff auf verschiedene Testmodusebenen unterstützt.
  • Diese alternative Ausführungsform ist in 2A gezeigt, wobei das Flash-Speicherarray global mit 200 bezeichnet ist.
  • Ähnlich wie bei der in 1A gezeigten Ausführungsform umfasst das Flash-Speicherarray 200 eine Zugriffsverwaltungsarchitektur 210, die wiederum Folgendes beinhaltet:
    • - eine Registergruppe 220 bestehend aus einem ersten Register 221 für die nichtflüchtigen Komponentenvariablen JTAG NON VOL des JTAG-Protokolls, einem zweiten Register 222 für die flüchtigen Komponentenvariablen JTAG VOL des JTAG-Protokolls und einem optionalen Register 223 für Zufallsdaten by ein Controller, der einen spezifischen JTAG-Befehl verwendet, JTAG Data - Freshness;
    • - eine kryptografische Gruppe 230, die einen kryptografischen Algorithmus 131 umfasst, sowie einen nichtflüchtigen Speicherbereich 232, der spezifische Daten speichert, die ein geheimer Schlüssel oder geheime Daten sind, die von dem kryptografischen Algorithmus 231 zu verwenden sind; und
    • - einen Signaturspeicherbereich 240, der ein flüchtiges Register 241 umfasst, auf das von außerhalb des Flash-Speicherarrays 100 zugegriffen wird, in dem ein Benutzer eine zuvor bereitgestellte Signatur speichern kann, und ein weiteres flüchtiges Register 242, wobei die Signatur, die intern durch den kryptografischen Algorithmus 231 berechnet wird, gespeichert wird.
  • Der kryptografische Algorithmus 131 kann einen Mechanismus umfassen, um die Aktualität der Daten sicherzustellen, um einen Wiederholungsangriff zu vermeiden. In diesem Fall kann das optionale Register 223 einen monotonen Zählerwert, einen Zeitstempelwert oder beliebige andere Daten enthalten, die einen Frische-(d.h. Anti-Wiedergabe-)Mechanismus implementieren können.
  • Auch in diesem Fall kann der kryptographische Algorithmus 231 eine SHA-Funktion verwenden, insbesondere einen Secure Hash Algorithm, oder SHA, nämlich die SHA-256-Funktion, oder eine MAC-Funktion, insbesondere Hash-MAC-Funktion oder HMAC, nämlich die HMAC-SHA256-Funktion.
  • Geeigneterweise umfasst die Zugriffsverwaltungsarchitektur 210 gemäß dieser alternativen Ausführungsform einen weiteren nichtflüchtigen Speicherbereich 233, der kundenspezifische Daten speichert, die ein geheimer Kundenschlüssel sind, oder geheime Kundendaten, die von dem kryptografischen Algorithmus 231 in Kombination mit den spezifischen Daten verwendet werden, wobei ein geheimer Schlüssel oder geheime Daten im nichtflüchtigen Speicherbereich 232 gespeichert sind. Die Zugriffsverwaltungsarchitektur 210 umfasst somit einen nichtflüchtigen Speicherblock 235, der den nichtflüchtigen Speicherbereich 232 und den weiteren nichtflüchtigen Speicherbereich 233 umfasst.
  • Insbesondere können die kundenspezifischen Daten, die ein geheimer Kundenschlüssel sind, oder die geheimen Kundendaten, die in dem weiteren nichtflüchtigen Speicherbereich 233 gespeichert sind, verwendet werden, um den Zugriff auf das Flash-Speicherarray 200 in einem Testmodus mit unterschiedlichen Kapazitäten in Bezug auf die Testmodus, auf den dank der spezifischen Daten zugegriffen wird, die ein geheimer Schlüssel oder geheime Daten sind, die im nichtflüchtigen Speicherbereich 232 gespeichert sind.
  • Der für Kunden zulässige Testmodus wird vom Hersteller des Flash-Speicherarrays 200 während der sogenannten Feldfehlerunterstützung festgelegt, normalerweise eine reduzierte Reihe von Testmodi in Bezug auf einen vollständigen Zugriff, die normalerweise dem Hersteller selbst vorbehalten ist.
  • Im Allgemeinen können mehrere kundenspezifische Daten, die geheime Kundenschlüssel oder geheime Kundendaten sind, in dem weiteren nichtflüchtigen Speicherbereich 233 gespeichert werden, um unterschiedliche Zugriffsebenen auf das Flash-Speicherarray 200 in unterschiedlichen Testmodusfolgen zu autorisieren. Beispielsweise können jedem Kunden andere spezifische Daten als geheimer Schlüssel oder geheime Daten zugewiesen werden.
  • Die Funktionsweise der Zugriffsverwaltungsarchitektur 210 ist in 2B gezeigt, wobei der kryptografische Algorithmus 231 eine SHA-256-Funktion ist. Wie in dieser Figur gezeigt, umfasst die Zugriffsverwaltungsarchitektur 210 einen Entscheidungsmultiplexer 234, der die spezifischen Daten empfängt, die geheime Daten sind, die im nichtflüchtigen Speicherbereich 232 gespeichert sind, und die kundenspezifischen Daten, die geheime Kundendaten sind, die im nichtflüchtigen Speicher gespeichert sind Block 235 und Bereitstellen eines davon auf der Grundlage eines Befehlssignals Test_sel, wobei Test_sel = 0 der Auswahl der spezifischen Daten entspricht, die geheimen Daten sind, d.h. eines ersten Testmodus, und Test_sel = 1 der Auswahl der kundenspezifischen Daten entspricht, die sind Customer Secret Data, d.h. ein zweiter Testmodus.
  • Gemäß einer Ausführungsform wird das Befehlssignal Test_sel von einem Benutzer durch einen externen Befehl bereitgestellt.
  • Alternativ kann das Befehlssignal Test_sel durch die Speicherarchitektur 100 selbstbestimmt sein, wenn die empfangene Signatur mit einer der Signaturen übereinstimmt, wie sie unter Verwendung eines der geheimen Schlüssel/Geheimdatenfelder berechnet wurden, die in der Speicherarchitektur 100 selbst gespeichert sind.
  • Die ausgewählten spezifischen Daten, die geheime Daten sind, werden zu den Daten aus der Registergruppe 220 aggregiert, wie unter Verwendung eines Summierknotens S2 veranschaulicht, und an den kryptografischen Algorithmus 231 gesendet, der eine SHA-256-Funktion ist, um die zu speichernde interne Signatur zu berechnen im weiteren flüchtigen Register 242 des Signaturspeicherbereichs 240.
  • Eine alternative Ausführungsform ist in 2C gezeigt, wobei der kryptographische Algorithmus 231 eine HMAC-SHA256-Funktion ist. Gemäß dieser alternativen Ausführungsform werden die Daten von der Registergruppe 220 und die ausgewählten spezifischen Daten, die ein geheimer Schlüssel sind, direkt an den kryptographischen Algorithmus 231 gesendet, der eine HMAC-SHA256-Funktion ist, um die interne Signatur zu berechnen, die in dem weiteren flüchtigen Register 242 des Signaturspeicherbereichs 240 gespeichert werden soll.
  • Eine solche intern berechnete Signatur wird dann mit der von einem Benutzer durch einen externen Befehl bereitgestellten Testsignatur verglichen und im flüchtigen Register 241 gespeichert, wobei der Vergleich in einem Vergleichsblock 250 durchgeführt wird, der ein Testfreigabesignal entsprechend dem durch das Befehlssignal Test_sel ausgewählten Testmodus liefert.
  • Auch das Flash-Speicherarray 200 gemäß dieser alternativen Ausführungsform implementiert das oben angegebene Verfahren zum Verwalten des Zugriffs in einen Testmodus desselben.
  • In diesem Fall umfasst das Verfahren ferner einen Schritt zum Auswählen der spezifischen Daten, die ein geheimer Schlüssel/geheime Daten sind, die in dem nichtflüchtigen Speicherbereich 232 gespeichert sind, oder der kundenspezifischen Daten, die ein geheimer Kundenschlüssel/geheime Kundendaten sind, die in dem nichtflüchtigen Speicher gespeichert sind Block 235 und Bereitstellen der ausgewählten Daten an den kryptographischen Algorithmus 231, wodurch der Zugriff auf mehr als einen Testmodus ermöglicht wird.
  • Zusammenfassend stellt die vorliegende Offenbarung ein Flash-Speicherarray bereit, das eine Zugriffsverwaltungsarchitektur umfasst, um den Zugriff auf das Speicherarray nur zugelassenen Benutzern in einem entsprechenden Testmodus zu autorisieren.
  • Darüber hinaus ist die Zugriffsverwaltungsarchitektur in der Lage, in verschiedenen Testmodus-Suiten unterschiedliche Zugriffsebenen auf das Flash-Speicher-Array zu autorisieren, nämlich für jeden Kunden unterschiedlich.
  • Der verwendete kryptographische Algorithmus verwendet Daten, die das Gerät mit dem Flash-Speicher-Array identifizieren können, insbesondere flüchtige und nichtflüchtige Komponentenvariablen JTAG VOL des JTAG-Protokolls, sowie Zufallsdaten von einem Controller unter Verwendung eines spezifischen JTAG-Befehls. Diese Daten sind äußerst nützlich, da sie zufällige Daten sind, die von Würfel zu Würfel variieren.
  • Geeigneterweise kann der kryptografische Algorithmus kryptografische HASH- oder MAC-Funktionen verwenden, die in der Lage sind, Daten beliebiger Größe auf nicht umkehrbare Weise in Daten einer festen Größe abzubilden. Die Wahl der kryptographischen Funktionen könnte entsprechend der endgültigen Anwendung des Flash-Speicherarrays erfolgen und kann in Hardware/Software implementiert werden.
  • In der vorangehenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen verwiesen, die einen Teil des Dokuments bilden und in denen zur Veranschaulichung spezifische Beispiele dargestellt sind. In den Zeichnungen beschreiben gleiche Bezugszeichen in den verschiedenen Ansichten im Wesentlichen ähnliche Komponenten. Es können auch andere Beispiele verwendet werden, und es können strukturelle, logische und/oder elektrische Änderungen vorgenommen werden, ohne den Rahmen der vorliegenden Offenbarung zu sprengen.
  • Gleichartige Elemente oder Komponenten in verschiedenen Figuren können durch die Verwendung gleicher Ziffern identifiziert werden. Es versteht sich, dass Elemente, die in den verschiedenen Ausführungsformen in dieser Schrift gezeigt sind, hinzugefügt, ausgetauscht und/oder weggelassen werden können, um eine Anzahl zusätzlicher Ausführungsformen der vorliegenden Offenbarung bereitzustellen. Darüber hinaus dienen die Proportionen und der relative Maßstab der in den Figuren dargestellten Elemente der Veranschaulichung der Ausführungsformen der vorliegenden Offenbarung und sind nicht als einschränkend zu verstehen.
  • Die Begriffe „ein“, „eine“ oder „eine Anzahl von“ können sich auf eines oder mehrere dieser Dinge beziehen. Eine „Mehrzahl“ von etwas das zwei oder mehr bedeutet. Wie hierin verwendet, kann der Begriff „gekoppelt“ elektrisch gekoppelt, direkt gekoppelt und/oder direkt verbunden ohne dazwischenliegende Elemente (zB durch direkten physischen Kontakt) oder indirekt gekoppelt und/oder verbunden mit dazwischenliegenden Elementen umfassen. Der Begriff gekoppelt kann ferner zwei oder mehr Elemente umfassen, die zusammenwirken oder miteinander interagieren (z. B. wie in einer Ursache-Wirkungs-Beziehung).
  • Obwohl hier spezifische Beispiele illustriert und beschrieben wurden, wird der Fachmann erkennen, dass die gezeigten spezifischen Ausführungsformen durch eine Anordnung ersetzt werden können, mit der die gleichen Ergebnisse erzielt werden. Diese Offenbarung soll Anpassungen oder Variationen einer oder mehrerer Ausführungsformen der vorliegenden Offenbarung abdecken. Es versteht sich, dass die obige Beschreibung veranschaulichend und nicht einschränkend gemacht wurde. Der Anwendungsbereich eines oder mehrerer Beispiele der vorliegenden Offenbarung sollte unter Bezugnahme auf die beigefügten Ansprüche bestimmt werden, zusammen mit dem gesamten Bereich der Äquivalente, zu denen diese Ansprüche berechtigt sind.

Claims (26)

  1. Speichervorrichtung, umfassend: - ein Array von Speicherzellen; und - eine Zugriffsverwaltungsarchitektur, die einen sicheren Zugriff auf einen Testmodus des Arrays von Speicherzellen bereitstellt, wobei die Zugriffsverwaltungsarchitektur umfasst: - eine Registergruppe, die Daten umfasst, die das Speichergerät identifizieren; einen kryptographischen Algorithmus, der eine interne Signatur berechnet, mit einem Mechanismus zum Sicherstellen der Datenaktualität; - einen nichtflüchtigen Speicherbereich, der spezifische Daten speichert, die von dem kryptographischen Algorithmus zum Berechnen der internen Signatur verwendet werden; einen Vergleichsblock zum Vergleichen der berechneten internen Signatur mit einer vom Benutzer bereitgestellten Signatur, um ein Freigabesignal zu erzeugen, das den Zugriff auf einen Testmodus des Arrays von Speicherzellen ermöglicht.
  2. Speichervorrichtung nach Anspruch 1, wobei der kryptographische Algorithmus eine sichere HASH-Funktion verwendet.
  3. Speichervorrichtung nach Anspruch 1, wobei der kryptographische Algorithmus eine MAC-Funktion verwendet.
  4. Speichervorrichtung nach Anspruch 3, wobei die im nichtflüchtigen Speicherbereich gespeicherten spezifischen Daten ein geheimer Schlüssel der MAC-Funktion sind.
  5. Speichervorrichtung nach Anspruch 1, ferner umfassend ein Register zum Speichern der intern berechneten Signatur.
  6. Speichervorrichtung nach Anspruch 1, die ferner ein Register umfasst, auf das von außerhalb des Speicherarrays zugegriffen wird, wobei ein Benutzer in der Lage ist, eine zuvor bereitgestellte Signatur zu speichern.
  7. Speichervorrichtung nach Anspruch 6, wobei das Register, das die vom Benutzer bereitgestellte Signatur speichert, ein Datenregister des JTAG-Protokolls ist.
  8. Speichervorrichtung nach Anspruch 1, wobei die Registergruppe ein erstes Register für nichtflüchtige Komponentenvariablen des JTAG-Protokolls und ein zweites Register für flüchtige Komponentenvariablen des JTAG-Protokolls umfasst.
  9. Speichervorrichtung nach Anspruch 8, wobei die Registergruppe ferner ein Register für Zufallsdaten durch einen Controller umfasst, der einen spezifischen JTAG-Befehl verwendet.
  10. Speichervorrichtung nach Anspruch 1, wobei der kryptografische Algorithmus in Hardware implementiert ist.
  11. Die Speichervorrichtung nach Anspruch 1, wobei der kryptographische Algorithmus in Software implementiert ist.
  12. Speichervorrichtung nach Anspruch 1, die einen weiteren nichtflüchtigen Speicherbereich umfasst, in dem kundenspezifische Daten gespeichert sind, die von dem kryptografischen Algorithmus zur Berechnung der internen Signatur verwendet werden, um den Zugriff auf das Speicherfeld in mehr als einem Testmodus zu autorisieren.
  13. Speichervorrichtung nach Anspruch 12, ferner umfassend einen Entscheidungsmultiplexer, der die spezifischen Daten und die kundenspezifischen Daten empfängt und auf der Grundlage eines Befehlssignals eines davon an den kryptographischen Algorithmus liefert.
  14. Verfahren zum Verwalten des Zugriffs auf ein Speicherarray in einen Testmodus, umfassend die Schritte: - Bereitstellen von Daten, die das Speichergerät identifizieren, zusammen mit spezifischen Daten für einen kryptographischen Algorithmus; - Berechnen einer internen Signatur; - Überprüfung der Aktualität der Daten; - Aufforderung an einen Benutzer, eine zuvor bereitgestellte Signatur einzufügen; - Vergleichen der intern berechneten Signatur mit der vom Benutzer bereitgestellten Signatur; - Erlaubnis für Zugriff auf das Speicherarray in einem Testmodus bei übereinstimmenden Signaturen.
  15. Verfahren nach Anspruch 14, ferner umfassend einen Schritt des Speicherns der Daten, die Speichervorrichtung identifizieren, in einem Register des JTAG-Protokolls.
  16. Verfahren nach Anspruch 14, wobei der kryptographische Algorithmus eine sichere HASH-Funktion verwendet.
  17. Verfahren nach Anspruch 14, wobei der kryptographische Algorithmus eine MAC-Funktion verwendet.
  18. Verfahren nach Anspruch 14, das ferner einen Schritt des Speicherns der spezifischen Daten in einem Register des Speicherarrays umfasst.
  19. Verfahren nach Anspruch 14, wobei der Vergleichsschritt ein Testfreigabesignal bereitstellt.
  20. Verfahren nach Anspruch 14, das ferner einen Schritt zur weiteren Speicherung kundenspezifischer Daten und einen Schritt zur Auswahl der spezifischen Daten oder der kundenspezifischen Daten für den Zugriff auf verschiedene Prüfmodi umfasst.
  21. Eine System-on-Chip (SoC)-Komponente, die wiederum eine Speichervorrichtung umfasst, umfassend: - ein Array von Speicherzellen; und - eine Zugriffsverwaltungsarchitektur, die einen sicheren Zugriff auf einen Testmodus des Arrays von Speicherzellen bereitstellt, wobei die Zugriffsverwaltungsarchitektur umfasst: - eine Registergruppe, die Daten umfasst, die das Speichergerät identifizieren; einen kryptographischen Algorithmus, der eine interne Signatur berechnet, mit einem Mechanismus zum Sicherstellen der Datenaktualität; - einen nichtflüchtigen Speicherbereich, der spezifische Daten speichert, die von dem kryptographischen Algorithmus zum Berechnen der internen Signatur verwendet werden; einen Vergleichsblock zum Vergleichen der berechneten internen Signatur mit einer vom Benutzer bereitgestellten Signatur, um ein Freigabesignal zu erzeugen, das den Zugriff auf einen Testmodus des Arrays von Speicherzellen ermöglicht.
  22. SoC-Komponente nach Anspruch 21, wobei die Speichervorrichtung ferner ein Register zum Speichern der intern berechneten Signatur umfasst.
  23. SoC-Komponente nach Anspruch 21, wobei die Speichervorrichtung ferner ein Register umfasst, auf das von außerhalb des Speicherarrays zugegriffen wird und in dem ein Benutzer eine zuvor bereitgestellte Signatur speichern kann.
  24. SoC-Komponente nach Anspruch 23, wobei das Register, das die vom Benutzer bereitgestellte Signatur speichert, ein Datenregister des JTAG-Protokolls der Speichervorrichtung ist.
  25. SoC-Komponente nach Anspruch 21, wobei die Speichervorrichtung einen weiteren nicht flüchtigen Speicherbereich umfasst, in dem kundenspezifische Daten gespeichert sind, die von dem kryptografischen Algorithmus zur Berechnung der internen Signatur verwendet werden, um den Zugriff auf das Speicherfeld in mehr als einem Testmodus zu autorisieren.
  26. SoC-Komponente nach Anspruch 25, wobei die Speichervorrichtung ferner einen Entscheidungsmultiplexer umfasst, der die spezifischen Daten und die kundenspezifischen Daten empfängt und einen von ihnen auf der Grundlage eines Befehlssignals an den kryptografischen Algorithmus liefert.
DE112019007421.0T 2019-05-31 2019-05-31 Speichergerät mit sicherer testmoduseingabe Pending DE112019007421T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/000481 WO2020240237A1 (en) 2019-05-31 2019-05-31 Memory device having a secure test mode entry

Publications (1)

Publication Number Publication Date
DE112019007421T5 true DE112019007421T5 (de) 2022-02-24

Family

ID=67002059

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019007421.0T Pending DE112019007421T5 (de) 2019-05-31 2019-05-31 Speichergerät mit sicherer testmoduseingabe

Country Status (4)

Country Link
US (2) US11392300B2 (de)
CN (1) CN113906421A (de)
DE (1) DE112019007421T5 (de)
WO (1) WO2020240237A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200387627A1 (en) * 2019-06-04 2020-12-10 Digital Asset Holdings, LLC Multi-user database system and method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11294582B2 (en) * 2020-09-08 2022-04-05 Micron Technology, Inc. Customer-specific activation of functionality in a semiconductor device
FR3118268B1 (fr) * 2020-12-23 2024-01-12 St Microelectronics Sa Mémoire sécurisée

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO20050152D0 (no) * 2005-01-11 2005-01-11 Dnb Nor Bank Asa Fremgangsmate ved frembringelse av sikkerhetskode og programmbar anordning for denne
US9767319B2 (en) 2007-04-17 2017-09-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus of secure authentication for system on chip (SoC)
EP2251813A1 (de) 2009-05-13 2010-11-17 Nagravision S.A. Verfahren zur Authentifizierung des Zugangs auf einen gesicherten Chip in einer Testvorrichtung
US8120377B2 (en) * 2009-06-26 2012-02-21 Apple Inc. Integrated circuit having secure access to test modes
US8386867B2 (en) * 2009-07-02 2013-02-26 Silicon Image, Inc. Computer memory test structure
US8938625B2 (en) * 2011-06-29 2015-01-20 Sonic Ip, Inc. Systems and methods for securing cryptographic data using timestamps
TWI546692B (zh) * 2011-10-27 2016-08-21 電子戰協會公司 包括與已知電路板資訊有關之電路測試及驗證等特徵的裝置鑑別之系統及方法
US9853974B2 (en) * 2014-01-27 2017-12-26 Cryptography Research, Inc. Implementing access control by system-on-chip
US10193694B1 (en) * 2015-10-26 2019-01-29 Marvell International Ltd. Method and apparatus for securely configuring parameters of a system-on-a-chip (SOC)
WO2017132136A1 (en) * 2016-01-26 2017-08-03 Google Inc. Secure connections for low-power devices
US20190007212A1 (en) 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200387627A1 (en) * 2019-06-04 2020-12-10 Digital Asset Holdings, LLC Multi-user database system and method

Also Published As

Publication number Publication date
CN113906421A (zh) 2022-01-07
US20220374155A1 (en) 2022-11-24
WO2020240237A1 (en) 2020-12-03
US11392300B2 (en) 2022-07-19
US20210334017A1 (en) 2021-10-28
US11650740B2 (en) 2023-05-16

Similar Documents

Publication Publication Date Title
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE102013114953B4 (de) System-on-Chip mit eingebettetem Sicherheitsmodul
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE112019007421T5 (de) Speichergerät mit sicherer testmoduseingabe
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
DE102006046456A1 (de) Schaltkreis-Anordnung, Verfahren zum Hochfahren einer Schaltkreis-Anordnung, Verfahren zum Betreiben einer Schaltkreis-Anordnung und Computerprogrammprodukte
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
DE102018114266A1 (de) Nichtflüchtige speichervorrichtung mit sicherem lesen
DE102014208855A1 (de) Verfahren zum Durchführen einer Kommunikation zwischen Steuergeräten
DE102014208838A1 (de) Verfahren zum Betreiben eines Steuergeräts
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
DE102020121075A1 (de) Einrichtung und Verfahren zur Authentifizierung von Software
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers
DE60100363T2 (de) Sequenznummerierungsmechanismus zur sicherung der ausführungsordnungs-integrietät von untereinander abhängigen smart-card anwendungen
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
EP2911080A1 (de) Verfahren und Vorrichtung zum sicheren Initialisieren eines Computers
DE102018213616A1 (de) Kryptografiemodul und Betriebsverfahren hierfür
DE102008050631A1 (de) Datenverarbeitungssystem
DE602004011965T2 (de) Verfahren und schaltung zum identifizieren und/oder verifizieren von hardware und/oder software eines geräts und eines mit dem gerät arbeitenden datenträgers
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
DE102022129538A1 (de) Datenintegritätsvalidierung von externem speicher
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed