DE102021117264A1 - System, Vorrichtung und Verfahren zum Schreiben von Daten in einen geschützten Bereich - Google Patents

System, Vorrichtung und Verfahren zum Schreiben von Daten in einen geschützten Bereich Download PDF

Info

Publication number
DE102021117264A1
DE102021117264A1 DE102021117264.0A DE102021117264A DE102021117264A1 DE 102021117264 A1 DE102021117264 A1 DE 102021117264A1 DE 102021117264 A DE102021117264 A DE 102021117264A DE 102021117264 A1 DE102021117264 A1 DE 102021117264A1
Authority
DE
Germany
Prior art keywords
host
write
authentication code
message authentication
req
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
DE102021117264.0A
Other languages
English (en)
Inventor
Hyunsook Hong
Jisoo Kim
YongSuk Lee
Younsung CHU
Hyungsup KIM
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020200176602A external-priority patent/KR20220010408A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102021117264A1 publication Critical patent/DE102021117264A1/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Abstract

Ein Verfahren zum Schreiben von Daten in einen geschützten Bereich (142) als Reaktion auf eine Anforderung von einem Host (200) weist auf: Empfangen einer ersten Schreibanforderung (REQ), welche einen ersten Hostnachrichten-Authentifizierungscode und eine erste Zufallszahl aufweist, von dem Host (200), Verifizieren der ersten Schreibanforderung (REQ) basierend auf einer Schreibzählung, der ersten Zufallszahl und dem ersten Hostnachrichten-Authentifizierungscode, Aktualisieren der Schreibzählung basierend auf einem Ergebnis des Verifizierens der ersten Schreibanforderung (REQ), Erzeugen eines ersten Vorrichtungsnachrichten-Authentifizierungscodes basierend auf der aktualisierten Schreibzählung und der ersten Zufallszahl und Bereitstellen einer ersten Antwort (RES), welche den ersten Vorrichtungsnachrichten-Authentifizierungscode und ein Ergebnis des Verifizierens der ersten Schreibanforderung (REQ) aufweist, an den Host (200).

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung ist basiert auf und beansprucht unter 35 U. S. C. § 119 die Priorität der koreanischen Patentanmeldung Nummer 10-2020-0089165 , welche am 17. Juli 2020 eingereicht wurde, und der koreanischen Patentanmeldung Nummer 10-2020-0176602 , welche am 16. Dezember 2020 beim koreanischen Amt für geistiges Eigentum eingereicht wurde, deren Offenbarungen durch Verweis hierin in ihrer Gesamtheit miteingebunden sind.
  • HINTERGRUND
  • 1. Gebiet
  • Ausführungsformen beziehen sich auf eine Speichereinrichtung und genauer auf ein System, eine Vorrichtung und ein Verfahren zum Schreiben von Daten in einen geschützten Bereich.
  • 2. Beschreibung des Standes der Technik
  • Speichereinrichtungen, welche Daten speichern, können in verschiedenen Anwendungen verwendet werden. Speichereinrichtungen, welche Speichervorrichtungen aufweisen, welche durch Halbleiterprozesse hergestellt sind, wurden in weitem Maße verwendet.
  • KURZFASSUNG
  • Ausführungsformen sind auf ein Verfahren zum Schreiben von Daten in einen geschützten Bereich als Reaktion auf eine Anforderung von einem Host gerichtet, wobei das Verfahren Folgendes aufweist: ein Empfangen einer ersten Schreibanforderung, welche einen ersten Hostnachrichten-Authentifizierungscode und eine erste Zufallszahl aufweist, von dem Host; ein Vergleichen der ersten Schreibanforderung basierend auf einer Schreibzählung, der ersten Zufallszahl und dem ersten Hostnachrichten-Authentifizierungscode; ein Aktualisieren der Schreibzählung basierend auf einem Ergebnis des Verifizierens der ersten Schreibanforderung; ein Erzeugen eines ersten Vorrichtungsnachrichten-Authentifizierungscodes basierend auf der aktualisierten Schreibzählung und der ersten Zufallszahl; und ein Bereitstellen einer ersten Antwort, welche den ersten Vorrichtungsnachrichten-Authentifizierungscode und ein Ergebnis des Verifizierens der ersten Schreibanforderung aufweist, an den Host.
  • Ausführungsformen sind ebenso auf eine Speichereinrichtung gerichtet, welche konfiguriert ist, um mit einem Host zu kommunizieren, wobei die Speichereinrichtung Folgendes aufweist: einen Speicher, welcher einen geschützten Bereich aufweist; und einen Controller, welcher konfiguriert ist, um eine erste Schreibanforderung, welche einen ersten Hostnachrichten-Authentifizierungscode, eine erste Schreibzählung und eine erste Zufallszahl enthält, von dem Host zu empfangen, um die erste Schreibanforderung basierend auf einer Schreibzählung, der ersten Zufallszahl und dem ersten Hostnachrichten-Authentifizierungscode zu verifizieren, und um Daten, welche in der ersten Schreibanforderung enthalten sind, in den geschützten Bereich zu schreiben, wenn das Verifizieren der ersten Schreibanforderung erfolgreich ist.
  • Ausführungsformen sind ebenso auf ein Verfahren zum Schreiben von Daten zu einer Speichereinrichtung gerichtet, welche einen geschützten Bereich aufweist, wobei das Verfahren Folgendes aufweist: ein Erzeugen eines ersten Hostnachrichten-Authentifizierungscodes basierend auf einer Schreibzählung und einer ersten Zufallszahl; ein Bereitstellen einer ersten Schreibanforderung, welche den ersten Hostnachrichten-Authentifizierungscode und die erste Zufallszahl aufweist, an die Speichereinrichtung; ein Empfangen einer ersten Antwort, welche einen ersten Vorrichtungsnachrichten-Authentifizierungscode aufweist, von der Speichereinrichtung; ein Verifizieren der ersten Antwort basierend auf einem Inkrementwert von der Schreibzählung, der ersten Zufallszahl und dem ersten Vorrichtungsnachrichten-Authentifizierungscode; und ein Aktualisieren der Schreibzählung basierend auf einem Ergebnis des Verifizierens der ersten Antwort.
  • Figurenliste
  • Merkmale werden für Fachleute durch ein detailliertes Beschreiben von beispielhaften Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen offensichtlich werden, in welchen:
    • 1 ein Blockschaltbild eines Systems gemäß einer beispielhaften Ausführungsform ist;
    • 2 ein Diagramm eines Nachrichtendatenframe gemäß einer beispielhaften Ausführungsform ist;
    • 3A und 3B Nachrichtendiagramme sind, welche Beispiele von Angriffen veranschaulichen;
    • 4 ein Nachrichtendiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform ist;
    • 5 ein Flussdiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform ist;
    • 6 ein Flussdiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform ist;
    • 7 ein Flussdiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform ist;
    • 8 ein Flussdiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform ist;
    • 9 ein Nachrichtendiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform ist;
    • 10A und 10B Nachrichtendiagramme von Verfahren zum Schreiben von Daten in einen geschützten Bereich gemäß beispielhaften Ausführungsformen sind;
    • 11 ein Blockschaltbild eines Systems 1000 ist, auf welches eine Speichereinrichtung gemäß einer beispielhaften Ausführungsform angewandt wird;
    • 12 ein Blockschaltbild eines UFS-Systems 2000 gemäß einer beispielhaften Ausführungsform ist;
    • 13A bis 13C Diagramme zum Beschreiben eines Formfaktors einer UFS-Karte sind;
    • 14 ein Blockschaltbild eines NVM-Speichers 2220a gemäß einer beispielhaften Ausführungsform ist;
    • 15 ein Blockschaltbild eines NVM-Speichers 2220b gemäß einer beispielhaften Ausführungsform ist;
    • 16 ein Blockschaltbild der Speichervorrichtung 2226 der 15 ist;
    • 17 ein Diagramm zum Beschreiben einer 3D V-NAND-Struktur, welche auf eine UFS-Vorrichtung anwendbar ist, gemäß einer beispielhaften Ausführungsform ist; und
    • 18 eine Querschnittsansicht einer BVNAND-Struktur, welche auf eine UFS-Vorrichtung anwendbar ist, gemäß einer beispielhaften Ausführungsform ist.
  • DETAILLIERTE BECHREIBUNG
  • 1 ist ein Blockschaltbild eines Systems 10 gemäß einer beispielhaften Ausführungsform. Das System 10 kann eine Speichereinrichtung 100 und einen Host 200 aufweisen, welche miteinander kommunizieren. Das System 10 kann aufweisen oder enthalten sein in ein/einem stationäres/stationären System wie beispielsweise einem Desktopcomputer, einer Workstation, einem Server, einem Fernseher oder einer Videospielekonsole; oder einem tragbaren System wie beispielsweise einem Laptopcomputer, einem Tablet-Personal-Computer (PC), einem Mobiltelefon, einem E-Buch oder einer tragbaren Vorrichtung. In einer beispielhaften Ausführungsform kann auf das System 10 als ein Speichersystem Bezug genommen werden.
  • Der Host 200 kann sich auf eine Vorrichtung beziehen, welche mit der Speichereinrichtung 100 kommuniziert, und es kann auf ihn auch als eine Hostvorrichtung Bezug genommen werden. Der Host 200 kann wenigstens eine programmierbare Vorrichtung wie beispielsweise eine zentrale Verarbeitungseinheit (CPU), einen digitalen Signalprozessor (DSP), eine Grafikverarbeitungseinheit (GPU) oder eine Neuralnetzwerk-Verarbeitungseinheit (NPU) aufweisen; eine rekonfigurierbare Vorrichtung wie beispielsweise ein Field Programmable Gate Array (FPGA); oder eine Vorrichtung wie beispielsweise einen Intellectual Property (IP)-Kern, welcher eine feststehende Funktion vorsieht. Der Host 200 kann einen Hostcontroller aufweisen, welcher Operationen, welche hierin untenstehend unter Bezugnahme auf die Zeichnungen beschrieben sind, durchführt. Der Hostcontroller kann wenigstens eine programmierbare Vorrichtung aufweisen, welche konfiguriert ist, um Software auszuführen, wenigstens eine rekonfigurierbare Vorrichtung und/oder wenigstens eine Vorrichtung, welche eine feststehende Funktion vorsieht.
  • Der Host 200 kann mit der Speichereinrichtung 100 basierend auf einer Schnittstelle kommunizieren. Beispielsweise kann der Host 200 mit der Speichereinrichtung 100 basierend auf einer Serial Advanced Technology Attachment (SATA)-Schnittstelle, einer Small Computer Small Interface (SCSI), einer Peripheral Component Interconnect Express (PCIe)-Schnittstelle, einem Universal Serial Bus (USB), einer Universal Flash Storage (UFS)-Schnittstelle oder einer eingebetteten Multimediakarten (eMMC)-Schnittstelle kommunizieren. Bezug nehmend auf 1 kann der Host 200 eine Anforderung REQ zu der Speichereinrichtung 100 senden und eine Antwort RES von der Speichereinrichtung 100 basierend auf einer Schnittstelle empfangen.
  • Der Host 200 kann einen Zufallszahlengenerator 220 aufweisen und kann der Speichervorrichtung 100 eine Antwort RES, welche eine Zufallszahl aufweist, welche durch den Zufallszahlengenerator 220 erzeugt ist, bereitstellen. Demnach kann die Anforderung REQ einen eindeutigen Wert (beispielsweise eine Nonce 24 der 2) aufweisen, und der Host 200 kann eine Antwort RES, welche der Anforderung REQ entspricht, basierend auf dem eindeutigen Wert, welcher in der Anforderung REQ enthalten ist, verifizieren. Die Speichereinrichtung 100 kann den eindeutigen Wert aus der Anforderung REQ extrahieren und kann die Anforderung REQ verifizieren oder die Antwort RES basierend auf dem extrahierten eindeutigen Wert erzeugen.
  • Die Speichereinrichtung 100 kann ein Speicher sein, welcher einen Speicher 140 zum Speichern von Daten aufweist. Beispielsweise kann die Speichereinrichtung 100 eine eingebettete Vorrichtung aufweisen, welche einen eingebetteten UFS (eUFS) oder eine eMMC unterstützt, oder sie kann abnehmbar mit dem Host 200 verbunden sein, wie eine Flashspeicherkarte, eine Compact Flash (CF)-Karte, eine Secure Digital (SD)-Karte, eine Micro-SD-Karte, eine Mini-SD-Karte, eine Extreme Digital (xD)-Karte oder ein Speicherstick. Bezug auf 1 kann die Speichereinrichtung 100 einen Controller 120 und den Speicher 140 aufweisen.
  • Der Speicher 140 kann eine Struktur zum Speichern von Daten haben und es kann auf ihn Bezug genommen werden als eine Speichervorrichtung. Der Speicher 140 kann einen nichtflüchtigen Speicher, wie beispielsweise Flashspeicher oder einen resistiven Direktzugriffsspeicher (RRAM) aufweisen. Die Speichereinrichtung 100 kann einen Puffer aufweisen, welcher einen flüchtigen Speicher aufweist, wie beispielsweise einen dynamischen RAM (DRAM). Die Speichereinrichtung 100 kann einen pufferlosen oder einen DRAM-losen Speicher aufweisen, welcher einen Abschnitt des Speichers 140 als einen Puffer verwendet. Bezug nehmend auf 1 kann der Speicher 140 einen geschützten Bereich 142 aufweisen. Der geschützte Bereich 142 kann durch den Controller 120 verwaltet werden, welcher untenstehend beschrieben ist.
  • Der Controller 120 kann den Speicher 140 steuern und es kann auf ihn Bezug genommen werden als ein Speichercontroller. Bezug nehmend auf 1 kann der Controller 120 die Anforderung REQ von dem Host 200 empfangen, den Speicher 140 basierend auf der Anforderung REQ steuern und die Antwort RES, welche der Anforderung REQ entspricht, dem Host 200 bereitstellen. Beispielsweise kann, wenn der Host 200 ein Datenschreiben durch die Anforderung REQ anfordert, der Controller 120 Daten zu dem Speicher 140 basierend auf einer Adresse schreiben, welche in der Anforderung REQ enthalten ist, und die Antwort RES, welche eine Vollendung des Datenschreibens anzeigt, an den Host 200 bereitstellen. Wenn der Host 200 ein Datenlesen durch die Anforderung REQ anfordert, kann der Controller 120 Daten von dem Speicher 140 basierend auf einer Adresse, welche in der Anforderung REQ enthalten ist, lesen und die Antwort RES, welche die Daten aufweist, an den Host 200 bereitstellen.
  • Der Controller 120 kann den geschützten Bereich 142 als einen Abschnitt des Speichers 140 definieren. Der geschützte Bereich 142 kann einem Relay Protected Memory Block (RPMB) entsprechen, welcher in UFS definiert ist. Der Controller 120 kann nur authentifizierten Zugriff in den geschützten Bereich 142 zulassen, und demnach kann der Host 200 Daten, welche vorgesehen sind, sicher beziehungsweise geschützt zu sein, das heißt sichere beziehungsweise geschützte Daten in dem geschützten Bereich 142 speichern und kann die sicheren Daten aus dem geschützten Bereich 142 lesen. Die Speichereinrichtung 100 und der Host 200 können einen Authentifizierungsschlüssel im Voraus miteinander teilen und die Anforderung REQ und/oder die Antwort RES durch ein Verwenden des Authentifizierungsschlüssels authentifizieren. Beispielsweise kann unter Bezugnahme auf 1 der Controller 120 einen Vorrichtungsschlüssel KEYD verwenden und der Vorrichtungsschlüssel KEYD kann in einem Raum gespeichert werden, auf welchen nur durch den Controller 120 zugegriffen werden kann, beispielsweise in einem Abschnitt des geschützten Bereichs 142. Ähnlich kann der Host 200 einen Hostschlüssel KEYH verwenden, und der Hostschlüssel KEYH kann in einem Raum gespeichert werden, auf welchen nur durch den Host 200 (oder den Hostcontroller) zugegriffen werden kann. Hierin kann auf Operationen, welche durch den Controller 120 durchgeführt werden, einfach als durch die Speichereinrichtung 100 durchgeführt Bezug genommen werden.
  • Der Vorrichtungsschlüssel KEYD und der Hostschlüssel KEYH können jeweils für die Speichervorrichtung 100 und den Host 200 vorgehalten werden. Der Vorrichtungsschlüssel KEYD und der Hostschlüssel KEY können jeweils während der Herstellung der Speichereinrichtung 100 und während der Herstellung des Host 200 vorgehalten werden. Der Vorrichtungsschlüssel KEYD kann für die Speichereinrichtung 100 durch die Anforderung REQ des Host 200 vorgehalten werden. Der Vorrichtungsschlüssel KEYD, welcher vorgehalten wurde, kann nicht erneut geschrieben und gelesen werden. In einer beispielhaften Ausführungsform kann der Vorrichtungsschlüssel KEYD identisch zu dem Hostschlüssel KEYH sein.
  • Der Controller 120 kann ein Register 122 aufweisen. Das Register 122 kann eine Schreibzählung (oder einen Schreibzähler) aufweisen. Der Controller 120 kann eine Schreiboperation zählen, welche auf dem geschützten Bereich 142 als Reaktion auf eine Schreibanforderung zu dem geschützten Bereich 142 durchgeführt wird. Der Host 200 kann die Anforderung REQ (das heißt eine Schreibzähl-Leseanforderung), eine gegenwärtige Schreibzählung zu lesen, an die Speichereinrichtung 100 bereitstellen, und der Controller 120 kann die Schreibzählung, welche in dem Register 122 gespeichert ist, lesen und die Antwort RES, welche die Schreibzählung aufweist, an den Host 200 bereitstellen. Der Host 200 kann die Anforderung REQ, Daten zu schreiben, das heißt eine Schreibanforderung, an die Speichereinrichtung 100 bereitstellen, und die Anforderung REQ kann eine Schreibzählung aufweisen. Wenn die Schreibzählung, welche in der Anforderung REQ enthalten ist, unterschiedlich von einer gegenwärtigen Schreibzählung ist, das heißt der Schreibzählung, welche in dem Register 122 gespeichert ist, kann der Controller 120 einen Fehlschlag der Verifizierung der Anforderung REQ bestimmen. Hierin kann auf eine Schreibzählung, welche durch den Host 200 verwaltet wird, Bezug genommen werden als eine Hostschreibzählung, und auf eine Schreibzählung, welche durch die Speichereinrichtung 100 verwaltet wird, das heißt den Controller 120, kann Bezug genommen werden als eine Vorrichtungsschreibzählung.
  • Auch wenn die Speichereinrichtung 100 und der Host 200 Zugriff auf den geschützten Bereich 142 durch ein Verwenden der Schreibzählung, des Vorrichtungsschlüssels KEYD und des Hostschlüssels KEYH authentifizieren, können verschiedene Angriffe auf dem System 10 in einem Versuch getätigt werden, Daten, welche in dem geschützten Bereich 142 gespeichert sind, zu erlangen und/oder zu ändern, oder um einen Fehler im Zugriff auf den geschützten Bereich 142 einzufügen. Beispielsweise kann, wie unter Bezugnahme auf die 3A und 3B untenstehend beschrieben ist, ein Angriff getätigt werden, um einen Fehler im Zugriff zum Schreiben von Daten in den geschützten Bereich 142 einzufügen. Dieser Angriff kann einen ernsthaften Fehler in dem System 10 verursachen. Wie untenstehend beschrieben ist, kann der Host 200 eine Anforderung REQ zum Schreiben von Daten basierend auf der Zufallszahl, welche durch den Zufallszahlengenerator 220 erzeugt wird, erzeugen. Die Speichereinrichtung 100 kann die Anforderung REQ basierend auf der Zufallszahl, welche in der Anforderung REQ enthalten ist, verifizieren, und kann eine Antwort RES, welche der Anforderung REQ entspricht, an den Host 200bereitstellen. Der Host 200 kann identifizieren, ob die Operation, welche durch die Anforderung REQ angefordert ist, das heißt eine Schreiboperation, erfolgreich vollendet ist, und zwar durch ein Verifizieren der Antwort RES basierend auf der Zufallszahl, welche verwendet wird, um die Anforderung REQ zu erzeugen. Demnach kann ein Man-in-the-Middle (MITM-) Angriff effektiv durch die Speichereinrichtung 100 und den Host 200 erfasst werden, eine Fehlereinfügung durch den MITM-Angriff kann verhindert werden und die Sicherheit des geschützten Bereiches 142 kann verbessert werden. Zusätzlich kann eine Änderung in einer Schnittstelle zwischen der Speichereinrichtung 100 und dem Host 200 nicht notwendig sein oder minimiert werden, und demnach kann die Sicherheit des geschützten Bereiches 142 weiterhin effizient und leicht verbessert werden.
  • 2 ist ein Diagramm eines Nachrichtendatenframe beziehungsweise Nachrichtendatenrahmens 20 gemäß einer beispielhaften Ausführungsform. In der vorliegenden beispielhaften Ausführungsform bezieht sich der Nachrichtendatenframe 20 der 2 auf einen RPMB-Nachrichtendatenframe von UFS. Die Anforderung REQ und die Antwort RES für einen Zugriff auf den geschützten Bereich 142 in 1 können den Nachrichtendatenframe 20 gemeinsam haben. Bezug nehmend auf 2 kann der Nachrichtendatenframe 20 eine Mehrzahl von Feldern 21 bis 29 aufweisen. 2 wird nun mit einer zusätzlichen Bezugnahme auf 1 beschrieben werden.
  • Bezug nehmend auf 2 kann der Nachrichtendatenframe 20 512 Byte in der Länge sein. Ein Füllbytefeld (Stuff Bytes Field) 21, welches den Start des Nachrichtendatenframe 20 anzeigt und 196 Byte in der Länge ist, kann an der Vorderseite des Nachrichtendatenframe 20 sein. Der Nachrichtendatenframe 20 kann nacheinander folgend ein Nachrichten-Authentifizierungscode (MAC)-Feld 22, ein Datenfeld 23, ein Nonce-Feld 24, ein Schreibzählfeld (oder ein Schreibzählerfeld) 25, ein Adressfeld 26, ein Blockzählfeld 27, ein Ergebnisfeld 28 und ein Nachrichtentypfeld 29 folgend dem Stuff Byte Field beziehungsweise Füllbytefeld 21 aufweisen. Wie untenstehend beschrieben ist, können das Datenfeld 23, das Nonce-Feld 24, dass Schreibzählfeld 25, das Adressfeld 26, das Blockzählfeld 27, das Ergebnisfeld 28 und das Nachrichtentypfeld 29 zusammen mit einem Authentifizierungsschlüssel verwendet werden, um das Nachrichten-Authentifizierungscodefeld 22 zu erzeugen, und es kann auf sie gemeinsam Bezug genommen werden als eine Nachricht MSG. Auf jedes der Anforderung REQ und der Antwort RES kann Bezug genommen werden als einen Nachrichten-Authentifizierungscode MAC und die Nachricht MSG aufweisend. Hierin werden das Nonce-Feld 24 und das Schreibzählfeld 25 aus inmitten der Felder, welche in der Nachricht MSG enthalten sind, hauptsächlich veranschaulicht und beschrieben werden, und Veranschaulichungen und Beschreibungen der anderen Felder der Nachricht MSG können ausgelassen werden.
  • Das Nachrichten-Authentifizierungscodefeld 22 kann 32 Byte in der Länge sein und kann in jedem der Anforderung REQ und der Antwort RES enthalten sein. Das Nachrichten-Authentifizierungscodefeld 22 kann einen Wert haben, welcher verwendet wird, um den Nachrichtendatenframe 20, das heißt die Anforderung REQ und die Antwort RES zu verifizieren. Beispielsweise kann der Host 200 den Nachrichten-Authentifizierungscode MAC erzeugen (auf welchen Bezug genommen werden kann als einen Hostnachrichten-Authentifizierungscode), um in der Anforderung REQ enthalten zu sein, basierend auf der Nachricht MSG (auf welche hierin Bezug genommen werden kann als eine Hostnachricht), um in der Anforderung REQ und dem Hostschlüssel KEYH enthalten zu sein. Die Speichereinrichtung 100 kann den Nachrichten-Authentifizierungscode MAC (das heißt den Hostnachrichten-Authentifizierungscode), welcher in der Anforderung REQ enthalten ist, basierend auf der Nachricht MSG (das heißt der Hostnachricht), welche in der Anforderung REQ enthalten ist, und dem Nachrichtenschlüssel KEYD verifizieren. Ähnlich kann die Speichereinrichtung 100 den Nachrichten-Authentifizierungscode MAC erzeugen (auf welchen hierin Bezug genommen werden kann als ein Vorrichtungsnachrichten-Authentifizierungscode), um in der Antwort RES enthalten zu sein, basierend auf der Nachricht MSG (auf welche hierin Bezug genommen werden kann als eine Vorrichtungsnachricht), um in der Antwort RES und dem Vorrichtungsschlüssel KEYD enthalten zu sein. Der Host 200 kann den Nachrichten-Authentifizierungscode MAC (das heißt den Vorrichtungsnachrichten-Authentifizierungscode) verifizieren, welcher in der Antwort RES enthalten ist, basierend auf der Nachricht MSG (das heißt der Vorrichtungsnachricht), welche in der Antwort RES und dem Hostschlüssel KEYH enthalten ist. Das Nachrichten-Authentifizierungscodefeld 22 kann verwendet werden, um einen Authentifizierungsschlüssele, welcher eine 32-Byte-Länge hat, in einer Authentifizierungsschlüssel-Programmieranforderung (Nachrichtentyp = 0001h) zu senden.
  • Der Nachrichten-Authentifizierungscode MAC kann aus einem Authentifizierungsschlüssel und der Nachricht MSG basierend auf einer Hash-Funktion erzeugt werden, und es kann auf ihn Bezug genommen werden als ein Hash-Nachrichten-Authentifizierungscode (HMAC). Jedes der Speichereinrichtung 100 und des Host 200 kann den Nachrichten-Authentifizierungscode MAC aus einem Authentifizierungsschlüssel und einer Konkatenation (beispielsweise Bytes [228:511]) der Felder der Nachricht MSG basierend auf einer Hash-Funktion wie beispielsweise einem Message-Digest-Algorithmus 5(MD5), einem Secure Hash Algorithmus 1 (SHA-1), oder SHA-256 erzeugen und kann eine Hash-Maschine, welche die Hash-Funktion implementiert, aufweisen.
  • Das Datenfeld 23 kann 256 Byte in der Länge sein und kann in jedem der Anforderung REQ und der Antwort RES enthalten sein. Beispielsweise kann das Datenfeld 23, welches in der Anforderung REQ enthalten ist, Daten entsprechen, welche zu der Speichereinrichtung 100 zu schreiben sind, und das Datenfeld 23, welches in der Antwort RES enthalten ist, kann Daten entsprechen, welche von der Speichereinrichtung 100 gelesen werden. Das Nonce-Feld 24 kann eine 16 Byte Länge haben, kann in jedem der Anforderung REQ und der Antwort RES enthalten sein und kann eine Zufallszahl aufweisen, welche durch den Host 200 erzeugt wird. Das Schreibzählfeld 25 kann eine 4 Byte Länge haben, kann in jedem der Anforderung REQ und der Antwort RES enthalten sein, und kann einen Wert aufweisen, welcher von einem Zählen von Schreiboperationen auf dem geschützten Bereich 142 resultiert. Das Nonce-Feld 24 und das Schreibzählfeld 25 können zusammen mit dem Nachrichten-Authentifizierungscodefeld 22 verwendet werden, um den Nachrichtendatenframe 20 zu verifizieren.
  • Das Adressfeld 26 kann eine 2 Byte Länge haben, kann in jedem der Anforderung REQ und der Antwort RES enthalten sein und kann einen Wert aufweisen, welcher einen Abschnitt des geschützten Bereiches 142 anzeigt, zu welchem das Datenfeld 23 geschrieben wird, oder von welchem das Datenfeld 23 gelesen wird. Das Blockzählfeld 27 kann eine 2 Byte Länge haben, kann in jedem der Anforderung REQ und der Antwort RES enthalten sein, und kann die Anzahl von 256-Byte logischen Blöcken aufweisen, welche angefordert werden, um gelesen oder programmiert zu werden. Das Ergebnisfeld 28 kann eine 2 Byte Länge haben, kann in der Antwort RES enthalten sein und kann einen Wert aufweisen, welcher ein Ergebnis einer Operation anzeigt.
  • Das Nachrichtentypfeld 29 kann eine 2 Byte Länge haben und kann in jedem der Anforderung REQ und der Antwort RES enthalten sein. Auf das Nachrichtentypfeld 29, welches in der Anforderung REQ enthalten ist, kann Bezug genommen werden als ein Anforderungsnachrichtentyp und es kann einen Wert haben, welcher eine Anforderung definiert. Beispielsweise kann der Anforderungsnachrichtentyp einen Wert aufweisen, welcher eines einer Authentifizierungsschlüssel-Programmieranforderung, einer Schreibzählung-Leseanforderung, einer authentifizierten Daten-Schreibanforderung, einer authentifizierten Daten-Leseanforderung, einer Ergebnis-Leseanforderung, einer sicheren Schreibschutz-Konfigurationsblock-Schreibanforderung und einer sicheren Schreibschutz-Konfigurationsblock-Leseanforderung anzeigt. Ein Antwortnachrichtentyp kann einen Wert aufweisen, welcher eines einer Authentifizierungsschlüssel-Programmierantwort, einer Schreibzähl-Leseantwort, einer authentifizierten Datenschreibantwort, einer authentifizierten Datenleseantwort, einer sicheren Schreibschutz-Konfigurationsblock-Schreibantwort und einer sicheren Schreibschutz-Konfigurationsblock-Leseantwort anzeigt.
  • 3A und 3B sind Nachrichtendiagramme, welche Beispiele von MITM-Angriffen veranschaulichen. Ein Angreifer 32a kann, Bezug nehmend auf 3A, zwischen einem Host 31a und einer Speichereinrichtung 33a sein. Ein Angreifer 32b kann, Bezug nehmend auf 3B, zwischen einem Host 31b und einer Speichereinrichtung 33b sein. Es wird in den 3A und 3B angenommen, dass Anforderungen Schreibanforderungen hinsichtlich eines geschützten Bereiches sind, und dass eine Antwort als Reaktion auf eine Schreibanforderung ohne eine separate Anforderung (beispielsweise eine Ergebnis-Leseanforderung) erzeugt wird. Hierin nachstehend werden redundante Beschreibungen ausgelassen werden.
  • Bezug nehmend auf 3A kann der Host 31a wenigstens einen Prozessor aufweisen, welcher Software, welche ein Betriebssystem (OS) und Anwendungen, welche auf dem OS ausgeführt werden, ausführt. Das OS kann einen Vorrichtungstreiber aufweisen, welcher eine Schnittstelle mit der Speichervorrichtung 33a für eine Anwendung vorsieht. Der Angreifer 32a kann in der Form von Software in dem Vorrichtungstreiber sein oder zwischen dem Vorrichtungstreiber und der Speichereinrichtung 33a und kann einen Relay-Angriff wie obenstehend beschrieben initiieren.
  • In Operation S30a kann der Host 31a eine erste Schreibanforderung REQ1 ausgeben, und der Angreifer 32a kann die erste Schreibanforderung REQ1 empfangen. Wie unter Bezugnahme auf 2 beschrieben ist, kann die erste Schreibanforderung REQ1 eine Mehrzahl von Feldern aufweisen, und ein Nachrichtentypfeld aus inmitten der Mehrzahl von Feldern kann einen Wert haben (beispielsweise 0003h), welcher einer Schreibanforderung entspricht. In Operation S31a kann der Angreifer 32a die erste Schreibanforderung REQ1 speichern, welche durch den Host 31a in Operation S30a vorgesehen wurde, und kann die erste Schreibanforderung REQ1 für die Speichereinrichtung 33a in Operation S36a vorsehen, welche untenstehend beschrieben ist.
  • In Operation S32a kann der Angreifer 32a eine zweite Schreibanforderung REQ2 an die Speichereinrichtung 33a bereitstellen. Der Angreifer 32a kann die zweite Schreibanforderung REQ2, welche von der ersten Schreibanforderung REQ1 unterschiedlich ist, erzeugen, um eine Antwort zu erhalten, welche einen Fehlschlag der Verifizierung der Schreibanforderung anzeigt, das heißt eine erste Antwort RES1 in Operation S34a, und kann die zweite Schreibanforderung REQ2 an die Speichereinrichtung 33a bereitstellen. Beispielsweise kann der Angreifer 32a die zweite Schreibanforderung REQ2 durch ein Ändern wenigstens eines Feldes, welches in der ersten Schreibanforderung REQ1 enthalten ist, beispielsweise dem Nachrichten-Authentifizierungscode MAC und/oder dem Datenfeld, erzeugen.
  • In Operation S33a kann die Speichereinrichtung 33a einen Fehlschlag der Verifizierung der zweiten Schreibanforderung REQ2 bestimmen. Beispielsweise kann die Speichereinrichtung 33a einen Nachrichtenverifizierungscode, welcher basierend auf dem Vorrichtungsschlüssel KEYD und wenigstens einem Feld, welches in der zweiten Schreibanforderung REQ2 enthalten ist, mit dem Nachrichten-Authentifizierungscode MAC, welcher in der zweiten Schreibanforderung REQ2 enthalten ist, vergleichen und kann identifizieren, dass die zweite Schreibanforderung REQ2 keine authentifizierte Anforderung ist aufgrund der Diskrepanz zwischen dem Nachrichten-Verifizierungscode und dem Nachrichten-Authentifizierungscode MAC.
  • In Operation S34a kann die Speichereinrichtung 33a eine erste Antwort RES1, welche den Fehlschlag der Verifizierung der zweiten Schreibanforderung REQ2 anzeigt, ausgeben, und der Angreifer 32a kann die erste Antwort RES1 erhalten. In Operation S35a kann der Angreifer 32a die erste Antwort RES1, welche von der Speichereinrichtung 33a in Operation S34a bereitgestellt wird, speichern, und die erste Antwort RES1 an den Host 31a in Operation S39a, welche untenstehend beschrieben ist, bereitstellen.
  • In Operation S36a kann der Angreifer 32a die erste Schreibanforderung REQ1 an die Speichereinrichtung 33a bereitstellen. Der Angreifer 32a kann die erste Schreibanforderung REQ1, welche in Operation S31a gespeichert wurde, ohne Änderungen an die Speichereinrichtung 33a bereitstellen.
  • In Operation S37a kann die Speichereinrichtung 33a einen Erfolg der Verifizierung der ersten Schreibanforderung REQ1 bestimmen. Da die erste Schreibanforderung REQ1, welche von dem Angreifer 32a in Operation S36a vorgesehen ist, identisch zu der ist, welche durch den Host 31a in Operation S30a ausgegeben wird, kann die Speichereinrichtung 33a die erste Schreibanforderung REQ1 als eine authentifizierte Anforderung identifizieren. Demnach können Daten, welche in der ersten Schreibanforderung REQ1 enthalten sind, normal zu der Speichereinrichtung 33a geschrieben werden.
  • In Operation S38a kann die Speichereinrichtung 33a eine zweite Antwort RES2 ausgeben, welche den Erfolg der Verifizierung der ersten Schreibanforderung REQ1 anzeigt, und der Angreifer 32a kann die zweite Antwort RES2 von der Speichereinrichtung 33a empfangen. In Operation S39a kann der Angreifer 32a die erste Antwort RES1 an den Host 31a bereitstellen. Der Angreifer 32a kann die erste Antwort RES1, welche den Fehlschlag der Verifizierung der zweiten Schreibanforderung REQ2 anzeigt und in Operation S35a gespeichert wurde, anstelle der zweiten Antwort RES2, welche den Erfolg der Verifizierung der ersten Schreibanforderung REQ1 anzeigt, an den Host 31a bereitstellen. Demnach kann der Host 31a identifizieren, dass eine Schreiboperation, welche durch die erste Schreibanfrage REQ1 angefordert wurde, welche in Operation S30a ausgegeben wird, fehlgeschlagen ist, und die Speichereinrichtung 33a kann die Daten, welche durch die erste Schreibanforderung REQ1 angefordert wurden, um geschrieben zu werden, normal speichern. Demnach kann der Host 31a einen Zustand identifizieren, welcher unterschiedlich von dem realen Zustand der Speichereinrichtung 33a ist, aufgrund des Angreifers 32a, und ein Fehler kann in einem System, welches den Host 31a und die Speichereinrichtung 33a aufweist, auftreten.
  • Bezug nehmend auf 3B kann in Operation S30b der Host 31b die erste Schreibanforderung REQ1 ausgeben, und der Angreifer 32b kann die erste Schreibanforderung REQ1 empfangen. In Operation S31b kann der Angreifer 32b die erste Schreibanforderung REQ1 speichern. Der Angreifer 32b kann die erste Schreibanforderung REQ1, welche von dem Host 31b in Operation S30b bereitgestellt wird, speichern, und die erste Schreibanforderung REQ1 an die Speichervorrichtung 33b in Operation S33b, welche untenstehend beschrieben ist, bereitstellen. Bezug nehmend auf 3B kann der Angreifer 32b keine Schreibanforderung an die Speichereinrichtung 33b nach dem Speichern der ersten Schreibanforderung REQ1 bereitstellen.
  • In Operation S32b kann der Host 31b die zweite Schreibanforderung REQ2 ausgeben, und der Angreifer 32b kann die zweite Schreibanforderung REQ2 empfangen. Beispielsweise kann der Host 31b die zweite Schreibanforderung REQ2 ausgeben, welche zweite Daten aufweist, welche unterschiedlich von ersten Daten sind, welche in der ersten Schreibanforderung REQ1 enthalten sind.
  • In Operation S33b kann der Angreifer 32b die erste Schreibanforderung REQ1 an die Speichereinrichtung 33b bereitstellen. Der Angreifer 32b kann die erste Schreibanforderung REQ1, welche in Operation S31b gespeichert wurde, ohne Änderungen an die Speichereinrichtung 33b bereitstellen, anstelle der zweiten Schreibanforderung REQ2, welche in Operation S32b empfangen wird, um die zweiten Daten zu schreiben.
  • In Operation S34b kann die Speichereinrichtung 33b einen Erfolg der Verifizierung der ersten Schreibanforderung REQ1 bestimmen. Da die erste Schreibanforderung REQ1, welche von dem Angreifer 32b in Operation S33b vorgesehen ist, identisch zu derjenigen ist, welche durch den Host 31b in Operation S30b ausgegeben wird, kann die Speichereinrichtung 33b die erste Schreibanforderung REQ1 als eine authentifizierte Anforderung identifizieren. Demnach können die ersten Daten, welche in der ersten Schreibanforderung REQ1 enthalten sind, normal zu der Speichereinrichtung 33b geschrieben werden.
  • In Operation S35b kann die Speichereinrichtung 33b die erste Antwort RES1 ausgeben, welche den Erfolg der Verifizierung der ersten Schreibanforderung REQ1 anzeigt, und der Angreifer 32b kann die erste Antwort RES1 von der Speichereinrichtung 33b empfangen. In Operation S36b kann der Angreifer 32b die erste Antwort RES1 an den Host 31b bereitstellen. Demnach kann der Host 31b identifizieren, dass eine Schreiboperation der zweiten Daten, welche durch die zweite Schreibanforderung REQ2 angefordert wird, welche in Operation S32b ausgegeben wird, erfolgreich war, während die Speichereinrichtung 33b die ersten Daten speichern kann, welche durch die erste Schreibanforderung REQ1 angefordert werden, um geschrieben zu werden. Demnach kann der Host 31b einen Zustand identifizieren, welcher aufgrund des Angreifers 32b unterschiedlich von dem realen Zustand der Speichereinrichtung 33b ist, und ein Fehler kann in einem System, welches den Host 31b und die Speichereinrichtung 33b aufweist, auftreten.
  • 4 ist ein Nachrichtendiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform. Verglichen mit den 3A und 3B kann eine Schreibanforderung der 4 eine Zufallszahl aufweisen, auf welche als ein Nonce Bezug genommen werden kann.
  • Bezug nehmend auf 4 kann in Operation S401 ein Host 41 eine Schreibzähl-Leseanforderung REQwc an eine Speichereinrichtung 42 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der Schreibzähl-Leseanforderung REQwc enthalten sind, einen Wert (beispielsweise 0002h) haben, welcher einer Schreibzähl-Leseanforderung entspricht.
  • In Operation S402 kann die Speichereinrichtung 42 eine Schreibzähl-Leseantwort RESwc an den Host 41 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der Schreibzähl-Leseanforderung RESwc enthalten sind, einen Wert (beispielsweise 0200h) haben, welcher einer Schreibzähl-Leseantwort entspricht, und eine Lesezählung kann eine Vorrichtungsschreibzählung KD haben. Der Host 41 kann eine Hostschreibzählung KH einstellen, um die Vorrichtungsschreibzählung KD zu sein, welche in der Schreibzähl-Leseantwort RESwc enthalten ist.
  • In Operation S403 kann der Host 41 eine erste Nonce N1 erzeugen. Beispielsweise kann der Host 41 die erste Nonce N1 erzeugen, welche einer Zufallszahl entspricht, welche durch einen Zufallszahlengenerator erzeugt wird. Die erste Nonce N1 kann unterschiedlich von einer Nonce sein, welche in einer vorangehend ausgegebenen Schreibanforderung enthalten ist.
  • In Operation S404 kann der Host 41 einen ersten Hostnachrichten-Authentifizierungscode MACH1 erzeugen. Beispielsweise kann unter Bezugnahme auf 4 der Host 41 den ersten Hostnachrichten-Authentifizierungscode MACH1 aus ersten Daten Di, der Hostschreibzählung KH, der ersten Nonce N1 und dem Hostschlüssel KEYH basierend auf einer Hash-Funktion h erzeugen. Demnach kann der erste Hostnachrichten-Authentifizierungscode MACH1 von der ersten Nonce N1 abhängen, welche in Operation S403 erzeugt wird.
  • In Operation S405 kann der Host 41 eine erste Anforderung REQ1 an die Speichereinrichtung 42 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der ersten Anforderung REQ1 enthalten sind, einen Wert haben (beispielsweise 0003h), welcher einer authentifizierten Datenschreibanforderung entspricht. Bezug nehmend auf 4 kann die erste Anforderung REQ1 den ersten Hostnachrichten-Authentifizierungscode MACH1, die ersten Daten Di, die Hostschreibzählung KH und die erste Nonce N1 aufweisen. Die erste Anforderung REQ1 kann eine Schreibanforderung zum Anfordern eines Schreibens der ersten Daten Di in einen geschützten Bereich sein, und die Hostschreibzählung KH, welche in der ersten Anforderung REQ1 enthalten ist, kann identisch zu der Vorrichtungsschreibzählung KD sein, welche von der Speichereinrichtung 42 in Operation S402 empfangen wird.
  • In Operation S406 kann der Host die erste Nonce N1 speichern. Wie untenstehend beschrieben ist, kann die Speichereinrichtung 42 die erste Nonce N1 verwenden, um eine Antwort zu erzeugen, welche der ersten Anforderung REQ1 entspricht, das heißt die erste Antwort RES1 der Operation 410. Der Host 41 kann die erste Nonce N1 speichern, um die erste Antwort RES1 zu verifizieren. Der Host 41 kann die erste Nonce N1 in einem sicheren Register speichern.
  • In Operation S407 kann die Speichereinrichtung 42 die erste Anforderung REQ1 verifizieren. Beispielsweise kann die Speichereinrichtung 42 die erste Anforderung REQ1 basierend auf dem Vorrichtungsschlüssel KEYD und dem ersten Hostnachrichten-Authentifizierungscode MACH1, den ersten Daten Di, der Hostschreibzählung KH und der ersten Nonce N1, welche in der ersten Anforderung REQ1 enthalten ist, verifizieren. Die Speichereinrichtung 42 kann die erste Anforderung REQ1 basierend auf nicht nur der Hostschreibzählung KH, sondern auch der ersten Nonce N1 verifizieren, und demnach kann ein MITM-Angriff erfasst werden, wie im weiteren Detail unter Bezugnahme auf die 10A und 10B beschrieben ist. Wenn die Verifizierung der ersten Anforderung REQ1 erfolgreich war, kann die Speichereinrichtung 42 die ersten Daten Di zu dem geschützten Bereich schreiben. Ein Beispiel der Operation S407 ist unter Bezugnahme auf 5 beschrieben.
  • In Operation S408 kann die Speichereinrichtung 42 die Vorrichtungsschreibzählung KD aktualisieren. Die Speichereinrichtung 42 kann die Vorrichtungsschreibzählung KD basierend auf einem Ergebnis der Verifizierung der ersten Anforderung REQ1 in Operation S407 aktualisieren, und demnach kann die Vorrichtungsschreibzählung KD aufrechterhalten oder geändert werden. Ein Beispiel der Operation S408 ist unter Bezugnahme auf 6 beschrieben.
  • In Operation S409 kann die Speichereinrichtung 42 einen ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 erzeugen. Beispielsweise kann unter Bezugnahme auf 4 die Speichereinrichtung 42 den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 aus der Vorrichtungsschreibzählung KD, der ersten Nonce N1 und dem Vorrichtungsschlüssel KEYD basierend auf der Hash-Funktion h erzeugen. Die Vorrichtungsschreibzählung KD, welche verwendet wird, um den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 zu erzeugen, kann einen Wert haben, welcher in Operation S408 aktualisiert wird.
  • In Operation S410 kann die Speichereinrichtung 42 die erste Antwort RES1 an den Host 41 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der ersten Antwort RES1 enthalten sind, einen Wert (beispielsweise 0300h) haben, welcher einer authentifizierten Datenschreibantwort entspricht Bezug nehmend auf 4 kann die erste Antwort RES1 den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1, welcher in Operation S409 erzeugt wird, aufweisen. Die erste Antwort RES1 kann ebenso ein Ergebnis aufweisen, welches einen Wert hat, welcher einem Erfolg oder einem Fehlschlag gemäß dem Ergebnis der Verifizierung der ersten Anforderung REQ1 in Operation S407 entspricht.
  • In Operation S411 kann der Host 41 die erste Antwort RES1 verifizieren. Beispielsweise kann der Host 41 die erste Antwort RES1 basierend auf dem Hostschlüssel KEYH, der ersten Nonce N1, der Hostschreibzählung KH und dem ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 verifizieren. Der Host 41 kann einen Inkrementwert der Hostschreibzählung KH während der Verifizierung der ersten Antwort RES1 verwenden. Der Host 41 kann die erste Antwort RES1 basierend auf der ersten Nonce N1, welche in Operation S406 gespeichert wird, verifizieren, und demnach kann ein MITM-Angriff erfasst werden, wie im weiteren Detail unter Bezugnahme auf die 10A und 10B beschrieben ist. Wenn die Verifizierung der ersten Antwort RES1 erfolgreich war, kann sich der Host 41 auf das Ergebnis, welches in der ersten Antwort RES1 enthalten ist, verlassen. Andererseits kann sich, wenn die Verifizierung der ersten Antwort RES1 fehlgeschlagen ist, der Host 41 nicht auf das Ergebnis, welches in der ersten Antwort RES1 enthalten ist, verlassen. Ein Beispiel der Operation S411 ist unter Bezugnahme auf 7 beschrieben.
  • In Operation S412 kann der Host 41 die Hostschreibzählung KH aktualisieren. Beispielsweise kann der Host 41 die Hostschreibzählung KH basierend auf einem Ergebnis der Verifizierung der ersten Antwort RES1 in Operation S411 aktualisieren, und demnach kann die Hostschreibzählung KH aufrechterhalten oder geändert werden. Ein Beispiel von Operation S412 ist unter Bezugnahme auf 8 beschrieben.
  • 5 ist ein Flussdiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform. Im Detail veranschaulicht das Flussdiagramm der 5 Operation S407' als ein Beispiel der Operation S407 der 4 der Speichereinrichtung 42, welche die erste Anforderung REQ1 verifiziert. Bezug nehmend auf 5 kann Operation S407' eine Mehrzahl von Operationen S407_1, S407_2, S407_3, S407 4, S407_5 und S407_6 aufweisen. Operation S407' der 5 kann durch die Speichereinrichtung 42 der 4 durchgeführt werden. 5 wird nun unter zusätzlicher Bezugnahme auf 4 beschrieben werden.
  • Bezug nehmend auf 5 kann in Operation S407_1 die Vorrichtungsschreibzählung KD mit der Hostschreibzählung KH verglichen werden. Beispielsweise kann die Speichereinrichtung 42 die Hostschreibzählung KH, welche in der ersten Anforderung REQ1 enthalten ist, welche von dem Host 41 empfangen wird, mit der Vorrichtungsschreibzählung KD vergleichen, welche durch die Speichereinrichtung 42 verwaltet wird. Bezug nehmend auf 5 kann, wenn die Vorrichtungsschreibzählung KD identisch zu der Hostschreibungszählung KH ist, Operation S407_2 nachfolgend ausgeführt werden. Andererseits kann, wenn die Vorrichtungsschreibzählung KD unterschiedlich von der Hostschreibzählung KH ist, ein Fehlschlag der Verifizierung der ersten Schreibanforderung REQ1 bestimmt werden, und Operationen S407_7 und S407_8 können nachfolgend durchgeführt werden.
  • In Operation S407_2 kann bestimmt werden, ob eine Noncen-Liste NL die erste Nonce N1 aufweist. Wie unter Bezugnahme auf die 1 und 4 beschrieben ist, kann der Host 41 eine Zufallszahl erzeugen, wenn er eine Schreibanforderung erzeugt, und kann eine Nonce, welche der Zufallszahl entspricht, aufweisen, und demnach kann die Schreibanforderung eine Nonce eines eindeutigen Werts haben. Die Speichervorrichtung 42 kann Noncen, welche in einer Anforderung enthalten sind, sammeln, wenn die Verifizierung der Anforderung fehlschlägt, und kann eine Noncen-Liste NL, welche die gesammelten Noncen aufweist, verwalten. Die Speichereinrichtung 42 kann die Noncen-Liste NL in einer Speichervorrichtung (beispielsweise RAM), welche in einem Controller (beispielsweise dem Controller 120 der 1) enthalten ist, speichern und/oder einem Teilbereich (beispielsweise dem geschützten Bereich 142 der 1) eines Speichers. Wenn die Noncen-Liste NL eine Nonce identisch zu der ersten Nonce N1 aufweist, kann die Speichereinrichtung 42 identifizieren, dass die erste Anforderung REQ1 ungültig ist. Demnach kann, unter Bezugnahme auf 5, wenn die erste Nonce N1 nicht in der Noncen-Liste NL enthalten ist, Operation S407_3 nachfolgend durchgeführt werden. Andererseits kann, wenn die erste Nonce N1 in der Noncen-Liste NL enthalten ist, ein Fehlschlag der Verifizierung der ersten Schreibanforderung REQ1 bestimmt werden, und Operationen S407_7 und S407_8 können nachfolgend durchgeführt werden.
  • In Operation S407_3 kann ein erster Hostnachrichten-Verifizierungscode MVCH1 erzeugt werden. Beispielsweise kann unter Bezugnahme auf 5 die Speichereinrichtung 42 den ersten Hostnachrichten-Verifizierungscode MVCH1 aus den ersten Daten Di, der Vorrichtungsschreibzählung KD, der ersten Nonce N1 und dem Vorrichtungsschlüssel KEYD basierend auf der Hash-Funktion h erzeugen. Die Speichereinrichtung 42 kann die ersten Daten D1 und die erste Nonce N1 aus der ersten Anforderung REQ1 extrahieren und kann den ersten Hostnachrichten-Verifizierungscode MVCH1 basierend auf nicht nur den extrahierten ersten Daten D1 und der extrahierten ersten Nonce N1, sondern auch aus der Vorrichtungsschreibzählung KD und dem Vorrichtungsschlüssel KEYD erzeugen.
  • In Operation S407 _4 können der erste Hostnachrichten-Verifizierungscode MVCH1 und der erste Hostnachrichten-Authentifizierungscode MACH1 miteinander verglichen werden. Wenn die ersten Daten D1, die Hostschreibzählung KH, die erste Nonce N1 und der Hostschlüssel KEYH, welche durch den Host 41 verwendet werden, um den ersten Hostnachrichten-Authentifizierungscode MACH1 in Operation S404 der 4 zu erzeugen, jeweils identisch mit den ersten Daten Di, der Vorrichtungsschreibzählung KD, der ersten Nonce N1 und dem Vorrichtungsschlüssel KEYD, welche durch die Speichereinrichtung 42 verwendet werden, um den ersten Hostnachrichten-Verifizierungscode MVCH1 in Operation S407_3 zu erzeugen, sind, kann der erste Hostnachrichten-Verifizierungscode MVCH1 identisch zu dem ersten Hostnachrichten-Authentifizierungscode MACH1 sein. Bezug nehmend auf 5 kann, wenn der erste Hostnachrichten-Verifizierungscode MVCH1 identisch zu dem ersten Hostnachrichten-Authentifizierungscode MACH1 ist, ein Erfolg der Verifizierung der ersten Anforderung REQ1 bestimmt werden, und Operationen S407_5 und S407_6 können nachfolgend durchgeführt werden. Andererseits kann, wenn der erste Hostnachrichten-Verifizierungscode MVCH1 unterschiedlich von dem ersten Hostnachrichten-Authentifizierungscode MACH1 ist, ein Fehlschlag der Verifizierung der ersten Anforderung REQ1 bestimmt werden, und Operationen S407_7 und S407_8 können nachfolgend durchgeführt werden.
  • Wenn ein Erfolg der Verifizierung der ersten Anforderung REQ1 bestimmt wird, kann ein Ergebnis in Operation S407_5 auf einen Wert eingestellt werden, welcher dem Erfolg entspricht. Wie unter Bezugnahme auf 4 beschrieben ist, kann das Ergebnis, welches in Operation S407_5 eingestellt wird, in der ersten Antwort RES1 enthalten sein, welche durch die Speichereinrichtung 42 für den Host 41 als Reaktion auf die erste Anforderung REQ1 (oder eine separate Ergebnis-Leseanforderung) vorgesehen ist. Als Nächstes kann in Operation S407_6 die Noncen-Liste NL aktualisiert werden. Beispielsweise kann, wenn die Verifizierung der ersten Anforderung REQ1 wie in 5 gezeigt erfolgreich war, die Speichereinrichtung 42 Noncen, welche in der Noncen-Liste NL enthalten sind, nämlich Noncen, welche jeweils in Anforderungen enthalten sind, deren Verifizierungen fehlgeschlagen sind und welche gesammelt worden sind, löschen.
  • Wenn ein Fehlschlag der Verifizierung der ersten Anforderung REQ1 bestimmt wird, kann ein Ergebnis in Operation S407_7 eingestellt werden, um ein Wert zu sein, welcher dem Fehlschlag entspricht. Wie unter Bezugnahme auf die 4 beschrieben ist, kann das Ergebnis, welches in Operation S407_7 eingestellt wird, in der ersten Antwort RES1 enthalten sein, welche durch die Speichereinrichtung 42 für den Host 41 als Reaktion auf die erste Anforderung REQ1 (oder eine separate Ergebnis-Leseanforderung) vorgesehen ist. Als Nächstes kann in Operation S407_8 die Noncen-Liste NL aktualisiert werden. Beispielsweise kann, wenn die Verifizierung der ersten Anforderung REQ1 fehlgeschlagen ist, wie in 5 gezeigt ist, die ersten Nonce N1 zu der Noncen-Liste NL hinzugefügt werden.
  • 6 ist ein Flussdiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform. Im Detail veranschaulicht das Flussdiagramm der 6 Operation S408' als ein Beispiel von Operation S408 der 4, in welcher die Speichereinrichtung 42 die Vorrichtungsschreibzählung KD basierend auf einem Ergebnis der Verifizierung der ersten Anforderung REQ1 aktualisiert. Bezug nehmend auf 6 kann Operation S408' Operation S408_2 und Operation S408_4 aufweisen. In einer beispielhaften Ausführungsform kann Operation S408' der 6 durch die Speichereinrichtung 42 der 4 durchgeführt werden. 6 wird nun unter zusätzlicher Bezugnahme auf 4 beschrieben.
  • Bezug nehmend auf 6 kann in Operation S408_2 ein Wert, welcher basierend auf dem Ergebnis eingestellt wird, identifiziert werden. Wie unter Bezugnahme auf 5 beschrieben ist, kann, wenn die Verifizierung der ersten Anforderung REQ1 erfolgreich war, die Speichereinrichtung 42 das Ergebnis als einen Wert, welcher einem Erfolg entspricht, einstellen, und wenn die Verifizierung der ersten Anforderung REQ1 fehlgeschlagen ist, kann die Speichereinrichtung 42 das Ergebnis als einen Wert einstellen, welcher einem Fehlschlag spricht. Bezug nehmend auf 6 kann, wenn die Verifizierung der ersten Anforderung REQ1 fehlgeschlagen ist, Operation S408' abgeschlossen werden, und demnach kann die Vorrichtungsschreibzählung KD aufrechterhalten werden.
  • Wenn die Verifizierung der ersten Anforderung REQ1 erfolgreich war, kann die Vorrichtungsschreibzählung KD in Operation S408 _4 erhöht werden. Beispielsweise kann unter Bezugnahme auf 6 die Speichereinrichtung 42 die Vorrichtungsschreibzählung KD um eins erhöhen und kann die Vorrichtungsschreibzählung KD in einem Register (beispielsweise dem Register 122 der 1) speichern. Ähnlich kann, wie unter Bezugnahme auf 8 beschrieben ist, wenn die Verifizierung der ersten Anforderung REQ1 erfolgreich ist, der Host 41 ebenso die Hostschreibzählung KH um eins erhöhen und demnach können nachfolgende Schreibanforderungen gültig verarbeitet werden.
  • 7 ist ein Flussdiagramm eines Verfahrens zum Schreiben von Daten zu einem geschützten Bereich gemäß einer beispielhaften Ausführungsform. Im Detail veranschaulicht das Flussdiagramm der 7 Operation S411' als ein Beispiel der Operation S411 der 4, in welcher der Host 41 die erste Antwort RES1 verifiziert. Bezug nehmend auf 7 kann Operation S411' eine Mehrzahl von Operationen S411_2, S411_4, S411_6 und S411_8 aufweisen. In einer beispielhaften Ausführungsform kann Operation S411' der 7 durch den Host 41 der 4 durchgeführt werden. 7 wird nun unter zusätzlicher Bezugnahme auf 4 beschrieben.
  • Bezug nehmend auf 7 kann in Operation S411_2 ein erster Vorrichtungsnachrichten-Verifizierungscode MVCD1 erzeugt werden. Beispielsweise kann der Host 41 den ersten Vorrichtungsnachrichten-Verifizierungscode MVCD1 aus einer erhöhten Hostschreibzählung KH+1, der ersten Nonce N1 und dem Hostschlüssel KEYH basierend auf der Hash-Funktion erzeugen. Wie unter Bezugnahme auf die 4 und 6 beschrieben ist, kann, wenn ein Schreiben der ersten Daten Di durch die erste Anforderung REQ1 in der Speichereinrichtung 42 normal beendet ist, der erste Vorrichtungsnachrichten-Authentifizierungscode MACD1, welcher in der ersten Antwort RES1 enthalten ist, basierend auf der Vorrichtungsschreibzählung KD, welche um eins erhöht ist, erzeugt werden. Demnach kann der Host 41 nicht nur den Hostschlüssel KEYH und die erste Nonce N1, welche in Operation S406 der 4 gespeichert wird, sondern auch die Hostschreibzählung KH, welche um eins erhöht ist, verwenden, um die erste Antwort RES1 zu verifizieren.
  • In Operation S411_4 können der erste Vorrichtungsnachrichten-Verifizierungscode MVCD1 und der erste Vorrichtungsnachrichten-Authentifizierungscode MACD1 miteinander verglichen werden. Wenn die Vorrichtungsschreibzählung KD, die erste Nonce N1 und der Vorrichtungsschlüssel KEYD, welche durch die Speichereinrichtung 42 verwendet werden, um den ersten Nachrichten-Authentifizierungscode MACD1 in Operation S409 der 4 zu erzeugen, identisch mit der erhöhten Hostschreibzählung KH+1, der ersten Nonce N1 und dem Hostschlüssel KEYH, welche durch den Host 41 verwendet werden, um den ersten Vorrichtungsnachrichten-Verifizierungscode MVCD1 in Operation S411_2 zu erzeugen, sind, können der erste Vorrichtungsnachrichten-Verifizierungscode MVCD1 und der erste Vorrichtungsnachrichten-Authentifizierungscode MACD1 identisch miteinander sein. Bezug nehmend auf 7 kann, wenn der erste Vorrichtungsnachrichten-Verifizierungscode MVCD1 identisch zu dem ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 ist, ein Erfolg der Verifizierung der ersten Antwort RES1 in Operation S411_6 bestimmt werden. Andererseits kann, wenn der erste Vorrichtungsnachrichten-Verifizierungscode MVCD1 unterschiedlich von dem ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 ist, ein Fehlschlag der Verifizierung der ersten Antwort RES1 in Operation S411_8 bestimmt werden.
  • 8 ist ein Flussdiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform. Im Detail veranschaulicht das Flussdiagramm der 8 Operation S412' als ein Beispiel der Operation S412 der 4, in welcher der Host 41 die Hostschreibzählung KH basierend auf einem Ergebnis der Verifizierung der ersten Antwort RES1 aktualisiert. Bezug nehmend auf 8 kann Operation S412' Operation S412_2 und Operation S412_4 aufweisen. In einer beispielhaften Ausführungsform kann Operation S412' der 8 durch den Host 41 der 4 durchgeführt werden. 8 wird nun mit zusätzlicher Bezugnahme auf 4 beschrieben.
  • Bezug nehmend auf 8 kann in Operation S412_2 ein Ergebnis der Verifizierung der ersten Antwort RES1 identifiziert werden. Wie unter Bezugnahme auf 7 beschrieben ist, kann, wenn der erste Vorrichtungsnachrichten-Verifizierungscode MVCD1 identisch zu dem ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 ist, der Host 41 einen Erfolg der Verifizierung der ersten Antwort RES1 bestimmen, und wenn der erste Vorrichtungsnachrichten-Verifizierungscode MVCD1 unterschiedlich von dem ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 ist, kann der Host 41 einen Fehlschlag der Verifizierung der ersten Antwort RES1 bestimmen. Bezug nehmend auf 8 kann, wenn die Verifizierung der ersten Antwort RES1 fehlgeschlagen ist, Operation S412' abgeschlossen werden, und demnach kann die Hostschreibzählung KH aufrechterhalten werden.
  • Wenn die Verifizierung der ersten Antwort RES1 erfolgreich war, kann die Hostschreibzählung KH in Operation S412_4 erhöht werden. Beispielsweise kann unter Bezugnahme auf 8 der Host 41 die Hostschreibzählung KH um eins erhöhen und kann eine nachfolgende Schreibanforderung basierend auf der erhöhten Hostschreibzählung KH erzeugen.
  • 9 ist ein Nachrichtendiagramm eines Verfahrens zum Schreiben von Daten in einen geschützten Bereich gemäß einer beispielhaften Ausführungsform. In der Veranschaulichung der 9 kann, verglichen mit der Veranschaulichung der 4 eine Speichereinrichtung 92 eine Antwort, welche eine Nonce aufweist, an einen Host 91 bereitstellen. In 9 wird angenommen, dass der Host 91 eine authentifizierte Einheit ist, auf welche offen bzw. zugänglich für einen geschützten Bereich der Speichereinrichtung 92 ist. Redundante Beschreibungen, welche obenstehend unter Bezugnahme auf 4 gegeben sind, werden ausgelassen werden.
  • Bezug nehmend auf 9 kann der Host 91 die Schreibzähl-Leseanforderung REQwc an die Speichereinrichtung 92 in Operation S901 bereitstellen, und die Speichereinrichtung 92 kann die Schreibzählung-Leseantwort RESwc an den Host 91 in Operation S902 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld aus inmitten der Mehrzahl von Feldern, welche in der Schreibzähl-Leseanforderung REQwc enthalten sind, einen Wert haben (beispielsweise 0002h), welcher einer Schreibzähl-Leseanforderung entspricht, und ein Nachrichtentypfeld aus inmitten der Mehrzahl von Feldern, welche in der Schreibzähl-Leseantwort RESwc enthalten sind, kann einen Wert haben (beispielsweise 0200h), welcher einer Schreibzähl-Leseantwort entspricht. Bezug nehmend auf 9 kann die Schreibzähl-Leseantwort RESwc die Vorrichtungsschreibzählung KD aufweisen.
  • In Operation S903 kann der Host 91 die erste Nonce N1 erzeugen. In Operation S904 kann der Host 91 den ersten Hostnachrichten-Authentifizierungscode MACH1 erzeugen. Beispielsweise kann bezugnehmend auf 9 der Host 91 den ersten Hostnachrichten-Authentifizierungscode MACH1 basierend auf den ersten Daten Di, der Hostschreibzählung KH, der ersten Nonce N1 und dem Hostschlüssel KEYH basierend auf einer Hash-Funktion h erzeugen.
  • In Operation S905 kann der Host 91 die erste Anforderung REQ1 an die Speichereinrichtung 92 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld aus inmitten der Mehrzahl von Feldern, welche in der ersten Anforderung REQ1 enthalten sind, einen Wert haben (beispielsweise 0003h), welcher einer authentifizierten Datenschreibanforderung entspricht. Bezug nehmend auf 9 kann die erste Anforderung REQ1 den ersten Hostnachrichten-Authentifizierungscode MACH1 aufweisen und kann die ersten Daten Di, die Hostschreibzählung KH und die erste Nonce N1 aufweisen, welche verwendet werden, um den ersten Hostnachrichten-Authentifizierungscode MACH1 zu erzeugen. In Operation S906 kann der Host 91 die erste Nonce N1 speichern. Die erste Nonce N1, welche in Operation S906 gespeichert wird, kann verwendet werden, um eine Antwort zu verifizieren, welche durch die Speichereinrichtung 92 als Reaktion auf die erste Anforderung REQ1 vorgesehen ist, nämlich die erste Antwort RES1 der Operation S909.
  • In Operation S907 kann die Speichereinrichtung 92 die Vorrichtungsschreibzählung KD um eins erhöhen. Beispielsweise kann die Speichereinrichtung 92 die erste Anforderung REQ1,welche durch einen authentifizierten Host 91 vorgesehen ist, verifizieren, und kann die Vorrichtungsschreibzählung KD um eins als Reaktion auf einen Erfolg der Verifizierung der ersten Anforderung REQ1 erhöhen. In Operation S908 kann die Speichereinrichtung 92 den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 erzeugen. Bezug nehmend auf 9 kann die Speichereinrichtung 92 den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 basierend auf der Vorrichtungsschreibzählung KD, der ersten Nonce N1 und dem Vorrichtungsschlüssel KEYD basierend auf einer Hash-Funktion h erzeugen. In diesem Fall kann die Vorrichtungsschreibzählung KD einen Wert haben, welcher in Operation S907 erhöht wird.
  • In Operation S909 kann die Speichereinrichtung 92 eine erste Antwort RES1 an den Host 91 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld aus inmitten einer Mehrzahl von Feldern, welche in der ersten Antwort RES1 enthalten sind, einen Wert haben (beispielsweise 0300h), welcher einer authentifizierter Datenschreibantwort entspricht. Wenn mit der ersten Antwort RES1 der 4 verglichen, kann die erste Antwort RES1 ferner die erste Nonce N1 aufweisen. Beispielsweise kann die Speichereinrichtung 92 nicht nur den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 und ein Ergebnis erzeugen, sondern auch die erste Antwort RES1, welche die erste Nonce N1 aufweist. Demnach kann der Host 91 die erste Antwort RES1 basierend auf nicht nur dem ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 verifizieren, sondern auch der ersten Nonce N1, welche in der ersten Antwort RES1 enthalten ist. Demnach kann ähnlich zu der Beschreibung, welche unter Bezugnahme auf 5 gegeben ist, der Host 91 die erste Nonce N1, welche in Operation S906 gespeichert wird, mit der ersten Nonce N1, welche in der ersten Antwort RES1 enthalten ist, welche in Operation S909 empfangen wird, vergleichen, und wenn die zwei ersten Noncen unterschiedlich voneinander sind, in Gegensatz zu der Veranschaulichung der 9, kann der Host 91 einen Fehlschlag der Verifizierung der ersten Antwort RES1 unabhängig von einem Ergebnis der Verifizierung des ersten Vorrichtungsnachrichten-Authentifizierungscodes MACD1 bestimmen.
  • In Operation S910 kann der Host 91 die Hostschreibzählung KH um eins erhöhen. Beispielsweise kann der Host 91 die erste Antwort RES1, welche durch die Speichereinrichtung 92 vorgesehen ist, verifizieren und kann die Hostschreibzählung KH um eins als Reaktion auf einen Erfolg der Verifizierung der ersten Antwort RES1 erhöhen. Demnach kann die Hostschreibzählung KH, welche in Operation S910 aktualisiert wird, identisch zu der Vorrichtungsschreibzählung KD sein, welche in Operation S907 aktualisiert wird. Wie unter Bezugnahme auf 7 beschrieben ist, kann der Host 91 den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 basierend auf der erhöhten Hostschreibzählung KH+1 vor einem Aktualisieren der Hostschreibzählung KH verifizieren.
  • In Operation S911 kann der Host 91 eine zweite Nonce N2 erzeugen. Die zweite Nonce N2 für die zweite Anforderung REQ2 und die zweite Antwort RES2 (untenstehend beschrieben) kann von der oben beschriebenen ersten Nonce N1 für die erste Anforderung REQ1 und die erste Antwort RES1 unterschiedlich sein. Die zweite Nonce N2 kann nicht in der Lage sein, um durch den Host 91 oder einen Handlungsträger außerhalb des Host 91 vorhergesagt werden. Demnach kann jede Schreibanforderung, welche durch den Host 91 ausgegeben wird, einen eindeutigen Wert haben, das heißt eine Nonce und ein eindeutiger Wert kann in einem authentifizierten Paar einer Schreibanforderung und einer Schreibantwort verwendet werden.
  • In Operation S912 kann der Host 91 einen zweiten Hostnachrichten-Authentifizierungscode MACH2 erzeugen. Beispielsweise kann unter Bezugnahme auf 9 der Host 91 den zweiten Hostnachrichten-Authentifizierungscode MACH2 basierend auf zweiten Daten D2, der Hostschreibzählung KH, der zweiten Nonce N2 und dem Hostschlüssel KEYH basierend auf einer Hash-Funktion h erzeugen. In diesem Fall kann die Hostschreibzählung KH einen Wert haben, welcher in Operation S910 erhöht wird.
  • In Operation S913 kann der Host 91 eine zweite Anforderung REQ2 an die Speichereinrichtung 92 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der zweiten Anforderung REQ2 enthalten sind, einen Wert haben (beispielsweise 0003h), welcher einer authentifizierten Datenschreibanforderung entspricht. Bezug nehmend auf 9 kann die zweite Anforderung REQ2 den zweiten Hostnachrichten-Authentifizierungscode MACH2 aufweisen und kann die zweiten Daten D2, die Hostschreibzählung KH und die zweite Nonce N2 aufweisen, welche verwendet werden, um den zweiten Hostnachrichten-Authentifizierungscode MACH2 zu erzeugen. In Operation S914 kann der Host 91 die zweite Nonce N2 sichern beziehungsweise abspeichern und kann die zweite Nonce N2 verwenden, um eine nachfolgende Antwort, das heißt die zweite Antwort RES2 zu verifizieren.
  • In Operation S914 kann die Speichereinrichtung 92 die Vorrichtungsschreibzählung KD um eins erhöhen. Beispielsweise kann die Speichereinrichtung 92 die zweite Anforderung REQ2, welche durch einen authentifizierten Host 91 vorgesehen ist, verifizieren und kann die Vorrichtungsschreibzählung KD um eins als Reaktion auf einen Erfolg der Verifizierung der zweiten Anforderung REQ2 erhöhen. In Operation S916 kann die Speichereinrichtung 92 einen zweiten Vorrichtungsnachrichten-Authentifizierungscode MACD2 erzeugen. Bezug nehmend auf 9 kann die Speichereinrichtung 92 den zweiten Vorrichtungsnachrichten-Authentifizierungscode MACD2 basierend auf der Vorrichtungsschreibzählung KD, der ersten Nonce N2 und dem Vorrichtungsschlüssel KEYD basierend auf einer Hash-Funktion h erzeugen. In diesem Fall kann die Vorrichtungsschreibzählung KD einen Wert haben, welcher in Operation S915 erhöht wird beziehungsweise wurde.
  • In Operation S917 kann die Speichereinrichtung 92 eine zweite Antwort RES2 an den Host 91 bereitstellen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der zweiten Antwort RES2 enthalten sind, einen Wert haben (beispielsweise 0300h), welcher einer authentifizierten Datenschreibantwort entspricht. Ähnlich zu der ersten Antwort RES1 kann die zweite Antwort RES2 die zweite Nonce N2 aufweisen und demnach kann der Host 91 die zweite Antwort RES2 basierend auf nicht nur dem zweiten Vorrichtungsnachrichten-Authentifizierungscode MACD2 verifizieren, sondern auch der zweiten Nonce N2, welche in der zweiten Antwort RES2 enthalten ist. Demnach kann, unterschiedlich zu 9, wenn die zweite Nonce N2, welche in der zweiten Antwort RES2 enthalten ist, unterschiedlich zu der zweiten Nonce N2 ist, welche in Operation S914 aufgrund eines Angreifers abgespeichert wurde, der Host 91 einen Fehlschlag der Verifizierung der zweiten Antwort RES2 bestimmen.
  • In Operation S918 kann der Host 91 die Hostschreibzählung KH um eins erhöhen. Beispielsweise kann der Host 91 die zweite Antwort RES2, welche durch die Speichereinrichtung 92 vorgesehen ist, verifizieren, und kann die Hostschreibzählung KH um eins als Reaktion auf einen Erfolg der Verifizierung der zweiten Antwort RES2 erhöhen. Demnach kann die Hostschreibzählung KH, welche in Operation S918 aktualisiert wird, identisch zu der Vorrichtungsschreibzählung KD sein, welche in Operation S915 aktualisiert wird. Wie unter Bezugnahme auf 7 beschrieben ist, kann der Host 91 den zweiten Vorrichtungsnachrichten-Authentifizierungscode MACD2 basierend auf der erhöhten Hostschreibzählung KH+1 vor dem Aktualisieren der Hostschreibzählung KH verifizieren.
  • 10A und 10B sind Nachrichtendiagramme von Verfahren zum Schreiben von Daten in einen geschützten Bereich gemäß beispielhaften Ausführungsformen. Im Detail veranschaulichen die Nachrichtendiagramme der 10A und 10B Operationen zum Erfassen von MITM-Angriffen, welche obenstehend unter Bezugnahme auf die 3A und 3B beschrieben sind. Redundante Beschreibungen, welche obenstehend mit den Zeichnungen gegeben sind, werden ausgelassen werden.
  • Bezug nehmend auf 10A kann in Operation S101a ein Host 101b die Schreibzähl-Leseanforderung REQwc ausgeben, und ein Angreifer 102a kann die Schreibzähl-Leseanforderung REQwc empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der Schreibzähl-Leseanforderung REQwc enthalten sind, einen Wert haben (beispielsweise 0002h), welcher einer Schreibzähl-Leseanforderung entspricht. In Operation S102a kann der Angreifer 102a die Schreibzähl-Leseanforderung REQwc ohne Änderungen zu einer Speichereinrichtung 103a senden, und die Speichereinrichtung 103a kann die Schreibzähl-Leseanforderung REQwc empfangen.
  • In Operation S103a kann die Speichereinrichtung 103a die Schreibzähl-Leseanforderung RESwc ausgeben, und der Angreifer 102a kann die Schreibzähl-Leseantwort RESwc empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der Schreibzähl-Leseantwort RESwc enthalten sind, einen Wert haben (beispielsweise 0002h), welcher einer Schreibzähl-Leseantwort entspricht. In Operation S104a kann der Angreifer 102a die Schreibzähl-Leseantwort RESwc ohne Änderungen zu dem Host 101a senden, und der Host 101a kann die Schreibzähl-Leseantwort RESwc empfangen. Bezug nehmend auf 10A kann die Schreibzähl-Leseantwort RESwc die Vorrichtungsschreibzählung KD aufweisen.
  • In Operation S105a kann der Host 101a die erste Nonce N1 erzeugen. In Operation S106a kann der Host 101a den ersten Hostnachrichten-Authentifizierungscode MACH1 basierend auf den ersten Daten Di, der Hostschreibzählung KH, der ersten Nonce N1 und dem Hostschlüssel KEYH für die erste Anforderung REQ1 basierend auf einer Hash-Funktion h erzeugen. In Operation S107a kann, um die ersten Daten D1 zu schreiben, der Host 101a die erste Anforderung REQ1,welche den ersten Hostnachrichten-Authentifizierungscode MACH1, die ersten Daten Di, die Hostschreibzählung KH und die erste Nonce N1 aufweist, ausgeben. Beispielsweise kann ein Nachrichtentypfeld inmitten der Mehrzahl von Feldern, welche in der ersten Anforderung REQ1 enthalten sind, einen Wert haben (beispielsweise 0003h), welcher einer authentifizierten Datenschreibanforderung entspricht.
  • In Operation S108a kann der Angreifer 102a die erste Anforderung REQ1 speichern. Wie unter Bezugnahme auf 3A beschrieben ist, kann der Angreifer 102a die erste Anforderung REQ1, welche von dem authentifizierten Host 101a empfangen wird, in Operation S107a speichern, um die erste Anforderung REQ1 für die Speichereinrichtung 103a später vorzusehen. Als Nächstes kann in Operation S109a der Angreifer 102a eine geänderte erste Anforderung REQ1' an die Speichereinrichtung 103a bereitstellen. Beispielsweise kann ein Nachrichtentypfeld inmitten der Mehrzahl von Feldern, welche in der geänderten ersten Anforderung REQ1' enthalten sind, einen Wert haben (beispielsweise 0003h), welcher einer authentifizierten Datenschreibanforderung entspricht. Um eine Antwort zu erhalten, welche einen Fehlschlag der Verifizierung einer Schreibanforderung anzeigt, kann der Angreifer 102a die geänderte erste Anforderung REQ1' durch ein Ändern der ersten Anforderung REQ1 erzeugen. Beispielsweise kann unter Bezugnahme auf 10A der Angreifer 102a erste Daten D1' durch ein Ändern der ersten Daten Di erzeugen und kann einen geänderten ersten Hostnachrichten-Authentifizierungscode MACH1' basierend auf den geänderten ersten Daten D1' erzeugen. Demnach kann unter Bezugnahme auf 10A die geänderte erste Anforderung REQ1' den geänderten ersten Hostnachrichten-Authentifizierungscode MACH1', die geänderten ersten Daten Di', die Hostschreibzählung KH und die erste Nonce N1 aufweisen.
  • In Operation S110a kann die Speichereinrichtung 103a einen Fehlschlag der Verifizierung der geänderten ersten Anforderung REQ1' bestimmen. Beispielsweise kann die Speichereinrichtung 103a die Hostschreibzählung KH, welche identisch zu der Vorrichtungsschreibzählung KD ist, identifizieren, aber kann identifizieren, dass ein Hostnachrichten-Verifizierungscode, welcher basierend auf den geänderten ersten Daten D1', der Vorrichtungsschreibzählung KD, der ersten Nonce N1 und dem Vorrichtungsschlüssel KEYD erzeugt wird, unterschiedlich zu dem geänderten ersten Hostnachrichten-Authentifizierungscode MACH1' ist. Demnach kann unter Bezugnahme auf 10A die Speichereinrichtung 103a ein Ergebnis als einen Wert einstellen, welcher einem Fehlschlag entspricht.
  • In Operation S111a kann die Speichereinrichtung 103a den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 erzeugen. Beispielsweise kann unter Bezugnahme auf 10A die Speichereinrichtung 103a den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 basierend auf der Vorrichtungsschreibzählung KD, der ersten Nonce N1 und dem Vorrichtungsschlüssel KEYD basierend auf einer Hash-Funktion h erzeugen. Aufgrund eines Fehlschlages der Verifizierung der geänderten ersten Anforderung REQ1' kann die Vorrichtungsschreibzählung KD, welche verwendet wird, um den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 zu erzeugen, aufrechterhalten werden, und kann einen Wert haben, welcher für den Host 101a in Operation S103a vorgesehen wird.
  • In Operation S112a kann die Speichereinrichtung 103a die erste Antwort RES1 ausgeben, und der Angreifer 102a kann die erste Antwort RES1 empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der ersten Antwort RES1 enthalten sind, einen Wert haben (beispielsweise 0300h), welcher einer authentifizierten Datenschreibantwort entspricht. Bezug nehmend auf 10A kann die erste Antwort RES1 den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 und das Ergebnis aufweisen. Wie in Operation S110a eingestellt, kann das Ergebnis einen Wert haben, welcher dem Fehlschlag entspricht.
  • In Operation S113a kann der Angreifer 102a die erste Antwort RES1 speichern. Wie unter Bezugnahme auf 3A beschrieben ist, kann der Angreifer 102a die erste Anforderung REQ1, welche von der Speichereinrichtung 103a in Operation S112a empfangen wird speichern, um die erste Antwort RES1 für den Host 101a später vorzusehen. Als Nächstes kann in Operation S114a der Angreifer 102a die erste Antwort REQ1 an die Speichereinrichtung 103a bereitstellen. Demnach kann der Angreifer 102a die erste Antwort RES1 von der Speichereinrichtung 103a erlangen und kann dann die erste Anforderung REQ1,welche in Operation S108a gespeichert wird, an die Speichereinrichtung 103a bereitstellen.
  • In Operation S115a kann die Speichereinrichtung 130a einen Fehlschlag der Verifizierung der ersten Anforderung REQ1 bestimmen. Obwohl die erste Anforderung REQ1 identisch zu derjenigen ist, welche durch den authentifizierten Host 101a in Operation S107a ausgegeben wird, kann die Speichereinrichtung 103a identifizieren, dass die erste Nonce N1, welche in der ersten Anforderung REQ1 enthalten ist, identisch zu der ersten Nonce N1 ist, welche verwendet wird, um die geänderte erste Anforderung REQ1' in Operation S110a zu verifizieren. Demnach kann die Speichereinrichtung 103a einen Fehlschlag der Verifizierung der ersten Anforderung REQ1 wie obenstehend unter Bezugnahme auf 5 beschrieben bestimmen, und kann ein Ergebnis als einen Wert einstellen, welcher dem Fehlschlag entspricht, wie in 10A gezeigt ist. Demnach kann unterschiedlich zu 3A das Schreiben ersten Daten Di zu der Speichereinrichtung 103a fehlschlagen.
  • In Operation S116a kann die Speichereinrichtung 103a einen zweiten Vorrichtungsnachrichten-Authentifizierungscode MACD2 erzeugen. Beispielsweise kann Bezug nehmend auf 10A die Speichereinrichtung 103a den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 basierend auf der Vorrichtungsschreibzählung KD, der ersten Nonce N1 und dem Vorrichtungsschlüssel KEYD basierend auf einer Hash-Funktion h erzeugen. Aufgrund eines Fehlschlages der Verifizierung der ersten Anforderung REQ1 kann die Vorrichtungsschreibzählung KD, welche verwendet wird, um den zweiten Vorrichtungsnachrichten-Authentifizierungscode MACD2 zu erzeugen, aufrechterhalten werden, und kann einen Wert haben, welcher für den Host 101a in Operation S103a vorgesehen wird.
  • In Operation S117a kann die Speichereinrichtung 103a die zweite Antwort RES2 ausgeben, und der Angreifer 102a kann die zweite Antwort RES2 empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der zweiten Antwort RES2 enthalten sind, einen Wert haben (beispielsweise 0300h), welcher einer authentifizierten Datenschreibantwort entspricht. Bezug nehmend auf 10A kann die zweite Antwort RES2 den zweiten Vorrichtungsnachrichten-Authentifizierungscode MACD2 und das Ergebnis aufweisen, und wie in Operation S115a eingestellt, kann das Ergebnis einen Wert haben, welcher dem Fehlschlag entspricht. Demnach kann der Angreifer 102a einen Fehlschlag des Schreibens der ersten Daten Di unterschiedlich zu 3A identifizieren.
  • In Hinsicht auf das Obige kann trotz des Fehlschlagens des Schreibens der ersten Daten Di der Angreifer 102a an den Host 101a die erste Antwort RES1, welche von der Speichereinrichtung 103a in Operation S112a empfangen wird, wie in 3A bereitstellen. In diesem Fall kann der Host 101a einen Hostnachrichten-Verifizierungscode erzeugen, um die erste Antwort RES1 zu verifizieren, und der Hostnachrichten-Verifizierungscode kann identisch zu dem ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 sein, welcher in der ersten Antwort RES1 enthalten ist. Demnach kann der Host 101a einen Erfolg der Verifizierung der ersten Antwort RES1 bestimmen und kann sich auf einen Schreibfehlschlag, welcher durch das Ergebnis, welches in der ersten Antwort RES1 enthalten ist, angezeigt wird, verlassen. Auch wenn der Angreifer 102a den Host 101a mit der zweiten Antwort RES2, welche von der Speichereinrichtung 103a in Operation S117a empfangen wird, vorsieht, kann der Host 101a einen Erfolg der Verifizierung der zweiten Antwort RES2 bestimmen und kann sich auf einen Schreibfehlschlag, welcher durch das Ergebnis, welches in der zweiten Antwort RES2 enthalten ist, angezeigt wird, verlassen. Demnach kann der Host 101a einen ersten Zustand identifizieren, in dem die ersten Daten Di nicht zu der Speichereinrichtung 103a geschrieben wurden, und der Angreifer 102a kann scheitern, einen Zustand unterschiedlich von dem ersten Zustand, nämlich einen zweiten Zustand zu erzeugen, in dem die ersten Daten Di erfolgreich zu der Speichereinrichtung 103a geschrieben wurden.
  • Bezug nehmend auf 10B kann in Operation S101b ein Host 101b die Schreibzähl-Leseanforderung REQwc ausgegeben, und ein Angreifer 102b kann die Schreibzähl-Leseanforderung REQwc empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der Schreibzähl-Leseanforderung REQwc enthalten sind, einen Wert haben (beispielsweise 0002h), welcher einer Schreibzähl-Leseanforderung entspricht. In Operation S102b kann der Angreifer 102b die Schreibzähl-Leseanforderung REQwc zu einer Speichereinrichtung 103b ohne Änderungen senden, und die Speichereinrichtung 103b kann die Schreibzähl-Leseanforderung REQwc empfangen.
  • In Operation S103b kann die Speichereinrichtung 103a die Schreibzähl-Leseantwort RESwc ausgeben, und der Angreifer 102b kann die Schreibzähl-Leseantwort RESwc empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der Schreibzähl-Leseantwort RESwc enthalten sind, einen Wert haben (beispielsweise 0002h), welcher einer Schreibzähl-Leseantwort entspricht. In Operation S104b kann der Angreifer 102b die Schreibzähl-Leseantwort RESwc ohne Änderungen zu dem Host 101b senden, und der Host 101b kann die Schreibzähl-Leseantwort RESwc empfangen. Bezug nehmend auf 10B kann die Schreibzähl-Leseantwort RESwc die Vorrichtungsschreibzählung KD aufweisen.
  • In Operation S105b kann der Host 101b die erste Nonce N1 erzeugen. In Operation S106b kann der Host 101b den ersten Hostnachrichten-Authentifizierungscode MACH1 basierend auf den ersten Daten Di, der Hostschreibzählung KH, der ersten Nonce N1 und dem Hostschlüssel KEYH für die erste Anforderung REQ1 basierend auf einer Hash-Funktion h erzeugen. In Operation S107b kann, um die ersten Daten Di zu schreiben, der Host 101b die erste Anforderung REQ1, welche den ersten Hostnachrichten-Authentifizierungscode MACH1, die ersten Daten Di, die Hostschreibzählung KH und die erste Nonce N1 aufweist, ausgeben, und der Angreifer 102b kann die erste Anforderung REQ1 empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten der Mehrzahl von Feldern, welche in der ersten Anforderung REQ1 enthalten sind, einen Wert haben (beispielsweise 0003h), welcher einer authentifizierten Datenschreibanforderung entspricht.
  • In Operation S108b kann der Host 101b die erste Nonce N1 abspeichern, um eine Antwort, welche der ersten Anforderung REQ1 entspricht, zu verifizieren. In Operation S109b kann der Angreifer 102b die erste Anforderung REQ1 speichern. Wie unter Bezugnahme auf 3B beschrieben ist, kann der Angreifer 102b die erste Anforderung REQ1, welche von dem authentifizierten Host 101b in Operation S107b empfangen wird, speichern, um die erste Anforderung REQ1 für die Speichereinrichtung 103b später vorzusehen.
  • In Operation S110b kann der Host 101b die zweite Nonce N2 erzeugen. Die zweite Nonce N2 für die zweite Anforderung REQ2 kann unterschiedlich von der ersten Nonce N1 sein, welche verwendet wird, um die erste Anforderung REQ1 zu erzeugen. In Operation S111b kann der Host 101b den zweiten Hostnachrichten-Authentifizierungscode MACH2 basierend auf den zweiten Daten D2, der Hostschreibzählung KH, der zweiten Nonce N2 und dem Hostschlüssel KEYH für die zweite Anforderung REQ2 basierend auf einer Hash-Funktion h erzeugen. Zu dieser Zeit wurde eine Antwort, welche einen Erfolg einer Schreiboperation anzeigt, als Reaktion auf die erste Anforderung REQ1 nicht empfangen, und demzufolge kann die Hostschreibzählung KH identisch zu der Hostschreibzählung KH sein, welche verwendet wurde, um den ersten Hostnachrichten-Authentifizierungscode MACH1 in Operation S 106b zu erzeugen. In Operation S112b kann, um die zweiten Daten D2 zu schreiben, der Host 101b die zweite Anforderung REQ2 ausgeben, welche den zweiten Hostnachrichten-Authentifizierungscode MACH2, die zweiten Daten D2, die Hostschreibzählung KH und die zweite Nonce N2 aufweist, und der Angreifer 102b kann die zweite Anforderung REQ2 empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der zweiten Anforderung REQ2 enthalten sind, einen Wert haben (beispielsweise 0003h), welcher einer authentifizierten Datenschreibanforderung entspricht. In Operation S113b kann der Host 101b die zweite Nonce N2 abspeichern.
  • In Operation S114b kann der Angreifer 102b die erste Anforderung REQ1 an die Speichereinrichtung 103b bereitstellen. Der Angreifer 102b kann die erste Anforderung REQ1, welche in Operation S108b gespeichert wurde, ohne Änderungen an die Speichereinrichtung 103b bereitstellen. Demnach kann, Bezug nehmend auf 10B, die erste Anforderung REQ1, welche den ersten Hostnachrichten-Authentifizierungscode MACH1, die ersten Daten Di, die Hostschreibzählung KH und die erste Nonce N1 aufweist, an die Speichereinrichtung 103b bereitgestellt werden.
  • In Operation S115b kann die Speichereinrichtung 103b einen Erfolg der Verifizierung der ersten Anforderung REQ1 bestimmen. Beispielsweise kann die Speichereinrichtung 103b die Hostschreibzählung KH, welche identisch zu der Vorrichtungsschreibzählung KD ist, und die erste Nonce N1, welche unterschiedlich von einer vorangehenden Nonce N0 ist, individuell identifizieren, und kann einen Nachrichtenverifizierungscode erzeugen, welcher identisch zu dem ersten Hostnachrichten-Authentifizierungscode MACH1 ist. Demnach kann unter Bezugnahme auf 10B die Speichereinrichtung 103b ein Ergebnis als einen Wert, welcher einem Erfolg entspricht, einstellen.
  • In Operation S116b kann die Speichereinrichtung 103b den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 erzeugen. Beispielsweise kann unter Bezugnahme auf 10B die Speichereinrichtung 103b den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 basierend auf der Vorrichtungsschreibzählung KD, der ersten Nonce N1 und dem Vorrichtungsschlüssel KEYD basierend auf einer Hash-Funktion h erzeugen. Aufgrund eines Erfolges der Verifizierung der ersten Anforderung REQ1 kann die Vorrichtungsschreibzählung KD, welche verwendet wird, um den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 zu erzeugen, einen Wert haben, welcher durch ein Erhöhen des Wertes, welcher für den Host 110b in Operation S103b vorgesehen ist, um eins erhalten wird.
  • In Operation S117b kann die Speichereinrichtung 103b die erste Antwort RES1 ausgeben und der Angreifer 102b kann die erste Antwort RES1 empfangen. Beispielsweise kann ein Nachrichtentypfeld inmitten einer Mehrzahl von Feldern, welche in der ersten Antwort RES1 enthalten sind, einen Wert haben (beispielsweise 0300h), welcher einer authentifizierten Datenschreibantwort entspricht. Bezugnehmend auf 10B kann die erste Antwort RES1 den ersten Vorrichtungsnachrichten-Authentifizierungscode MACD1 und das Ergebnis aufweisen. Wie in Operation S115b eingestellt, kann das Ergebnis einen Wert haben, welcher dem Erfolg entspricht. In Operation S118b kann der Angreifer 102b die erste Antwort RES1 ohne Änderungen zu dem Host 101b senden.
  • In Operation S119b kann der Host 101b einen Fehlschlag der Verifizierung der ersten Antwort RES1 bestimmen. Der erste Vorrichtungsnachrichten-Authentifizierungscode MACD1, welcher in der ersten Antwort RES1 enthalten ist, kann basierend auf der ersten Nonce N1 in Operation S116b erzeugt werden, wohingegen der Nachrichtenverifizierungscode, welcher durch den Host 101b in Operation S119b erzeugt wird, auf der zweiten Nonce N2, welche in Operation S113b gespeichert wird, basiert sein kann. Demnach kann der erste Vorrichtungsnachrichten-Authentifizierungscode MACD1 unterschiedlich von dem Nachrichtenverifizierungscode sein, und der Host 101b kann einen Fehlschlag der Verifizierung der ersten Antwort RES1 bestimmen. In einer beispielhaften Ausführungsform kann, wie obenstehend unter Bezugnahme auf 9 beschrieben ist, wenn die erste Antwort RES1 die erste Nonce N1 aufweist, der Host 101b identifizieren, dass die erste Nonce N1 unterschiedlich von der zweiten Nonce N2 ist, und kann demzufolge einen Fehlschlag der Verifizierung der ersten Antwort RES1 bestimmen. Demnach kann sich der Host 101b nicht auf einen Schreiberfolg, welcher durch das Ergebnis, welches in dem ersten Ergebnis RES1 enthalten ist, verlassen. Demnach kann der Angreifer 102b scheitern, es dem Host 101b zu erlauben, einen Zustand der Speichereinrichtung 103b als einen zweiten Zustand unterschiedlich von einem ersten Zustand, in dem die zweiten Daten D2 nicht in der Speichereinrichtung 103b gespeichert wurden, als der zweite Zustand zu identifizieren, in dem die zweiten Daten D2 in der Speichereinrichtung 103b gespeichert wurden.
  • 11 ist ein Blockschaltbild eines Systems 1000, auf welches eine Speichereinrichtung gemäß einer beispielhaften Ausführungsform angewandt werden kann. Das System 1000 der 11 kann beispielsweise ein mobiles System wie beispielsweise ein tragbares Kommunikationsterminal beziehungsweise tragbares Kommunikationsdatenendgerät (ein Mobiltelefon), ein Smartphone, ein Tablet-PC, eine tragbare Vorrichtung, eine Gesundheitsfürsorgevorrichtung beziehungsweise Gesundheitsvorsorgevorrichtung oder eine Intemet-of-Things (IoT)-Vorrichtung sein. Das System 1000 der 11 ist jedoch nicht auf ein mobiles System beschränkt und kann ein PC, ein Laptopcomputer, ein Server, ein Mediaplayer oder eine Kraftfahrzeugvorrichtung wie beispielsweise eine Navigationsvorrichtung sein. Hierin nachstehend ist ein Suffix, welches an einem Bezugszeichen (beispielsweise „a“ in 1200a und „a“ in 1300a) angefügt ist, zum Unterscheiden einer Mehrzahl von Schaltungen, welche konfiguriert sind, um dieselbe Fertigkeit durchzuführen.
  • Bezug nehmend auf 11 kann das System 1000 einen Hauptprozessor 1100, Speicher 1200a und 1200b und Speichereinrichtungen 1300a und 1300b aufweisen und kann ein oder mehrere einer Bildaufnahmevorrichtung 1410, einer Nutzereingabevorrichtung 1420, eines Sensors 1430, einer Kommunikationsvorrichtung 1440, einer Anzeige 1450, eines Lautsprechers 1460, einer Leistungsversorgungsvorrichtung 1470 und einer Verbindungschnittstelle 1480 aufweisen.
  • Der Hauptprozessor 1100 kann einen allgemeinen Betrieb des Systems 1000 steuern, beispielsweise Operationen der anderen Komponenten, welche in dem System 1000 enthalten sind, steuern. Der Hauptprozessor 1100 kann durch einen Mehrzweckprozessor, einen exklusiven Prozessor, einen AP oder dergleichen implementiert sein.
  • Der Hauptprozessor 1100 kann ein oder mehrere CPU-Kerne 1110 aufweisen und kann einen Controller 1120 aufweisen, welcher konfiguriert ist, um die Speicher 1200a und 1200b und/oder die Speichereinrichtungen 1300a und 1300b zu steuern. Der Hauptprozessor 1100 kann einen Beschleunigerblock 1130 aufweisen, welcher eine exklusive Schaltung ist, welche konfiguriert ist, um eine HS-Datenberechnung durchzuführen wie beispielsweise eine Künstliche Intelligenz (AI)-Datenberechnung. Der Beschleunigerblock 1130 kann eine Grafikverarbeitungseinheit (GPU), eine Neuralverarbeitungseinheit (NPU), eine Datenverarbeitungseinheit (DPU) und/oder dergleichen aufweisen und kann durch einen separaten Chip, welcher physikalisch unabhängig von den anderen Komponenten in dem Hauptprozessor 1100 ist, implementiert sein.
  • Die Speicher 1200a und 1200b können als Hauptspeichervorrichtung des Systems 1000 verwendet werden und können einen flüchtigen Speicher wie beispielsweise einen statischen Direktzugriffsspeicher (SRAM) und/oder einen DRAM aufweisen oder einen NVM aufweisen, wie beispielsweise einen Flashspeicher, einen PRAM und/oder einen RRAM. Die Speicher 1200a und 1200b können in demselben Package beziehungsweise Gehäuse wie der Hauptprozessor 1100 implementiert sein.
  • Die Speichereinrichtungen 1300a und 1300b können als nichtflüchtige Speichereinrichtung fungieren, welche Daten unabhängig davon speichern, ob Leistung dorthin zugeführt wird, und sie können eine größere Speicherkapazität haben als die Speicher 1200a und 1200b. Die Speichereinrichtungen 1300a und 1300b können Speichercontroller 1310a und 1310b und NVM-Speicher 1320a und 1320b aufweisen, welche Daten jeweils unter der Steuerung der Speichercontroller 131 0a und 1310b speichern. Die NVM-Speicher 1320a und 1320b können V-NAND-Flashspeicher einer zweidimensionalen (2D-) oder einer dreidimensionalen (3D-) Struktur oder einen anderen Typ von NVM wie beispielsweise PRAM und/oder RRAM aufweisen.
  • Die Speichereinrichtungen 1300a und 1300b können in dem System 1000 physikalisch getrennt von dem Hauptprozessor 1100 enthalten sein oder können in demselben Package wie der Hauptprozessor 1100 implementiert sein. Die Speichereinrichtungen 1300a und 1300b können eine Form wie beispielsweise eine Speicherkartenform haben, um abnehmbar mit den anderen Komponenten in dem System 1000 durch eine Schnittstelle, wie beispielsweise die verbindende Schnittstelle 1480, welche untenstehend beschrieben ist, gekoppelt zu sein. Die Speichereinrichtungen 1300a und 1300b können Vorrichtungen sein, auf welche ein Standardprotokoll wie beispielsweise ein UFS-Protokoll angewandt wird, sind aber nicht darauf beschränkt.
  • Die Bildaufnahmevorrichtung 1410 kann ein Foto oder ein sich bewegendes Bild aufnehmen und eine Kamera, einen Camcorder, eine Webcam und/oder dergleichen aufweisen.
  • Die Nutzereingabevorrichtung 1420 kann verschiedene Typen von Daten von einem Nutzer des Systems 1000 empfangen und kann ein Touchpad, ein Tastenfeld, eine Tastatur, eine Maus, ein Mikrofon und/oder dergleichen aufweisen.
  • Der Sensor 1430 kann verschiedene Typen von physikalischen Quantitäten, welche von außerhalb erlangt werden können, abtasten und die abgetastete physikalische Quantität in ein elektrisches Signal umwandeln. Der Sensor 1430 kann einen Temperatursensor, einen Drucksensor, einen Beleuchtungssensor, einen Positionssensor, einen Beschleunigungssensor, einen Biosensor, ein Gyroskop beziehungsweise einen Kreisel und/oder dergleichen aufweisen.
  • Die Kommunikationsvorrichtung 1440 kann eine Signaltransmission und einen Empfang zwischen dem System 1000 und anderen Vorrichtungen außerhalb des Systems 1000 gemäß verschiedenen Kommunikationsprotokollen durchführen. Die Kommunikationsvorrichtung 1440 kann unter Verwendung einer Antenne, eines Transceivers, eines Modems und/oder dergleichen implementiert sein.
  • Die Anzeige 1450 und der Lautsprecher 1460 können als Ausgabevorrichtungen fungieren, welche konfiguriert sind, um jeweils visuelle Information und auditive Information zu dem Nutzer des Systems 1000 auszugeben.
  • Die Leistungsversorgungsvorrichtung 1470 kann Leistung, welche von einer Batterie (nicht gezeigt) in dem System 1000 und/oder einer externen Leistungsversorgung zugeführt wird, umwandeln und die umgewandelte Leistung jeder Komponente in dem System 1000 zur Verfügung stellen.
  • Die verbindende Schnittstelle beziehungsweise Verbindungsschnittstelle 1480 kann eine Verbindung zwischen dem System 1000 und einer externen Vorrichtung, welche mit dem System 1000 verbunden ist, bereitstellen, um Daten zu und von dem System 1000 zu senden und zu empfangen. Die verbindende Schnittstelle 1480 kann durch verschiedene Schnittstellenschemata wie beispielsweise eine Advanced Technology Attachment (ATA) Schnittstelle, eine Serial ATA (SATA) Schnittstelle, eine External SATA (e-SATA) Schnittstelle, ein Small Computer Small Interface (SCSI), ein Serial Attached SCSI (SAS), eine Peripheral Component Interconnection (PCI)-Schnittstelle, eine PCI Express (PCIe) Schnittstelle, eine NVM Express (NVMe) Schnittstelle, eine Institute of Electrical and Electronics Engineers (IEEE)-1394-Schnittstelle, eine Universal Serial Bus (USB) Schnittstelle, eine Secure Digital (SD) Card Schnittstelle, eine Multi-Media Card (MMC) Schnittstelle, eine Embedded MMC (eMMC) Schnittstelle, eine UFS-Schnittstelle, eine Embedded UFS (eUFS) Schnittstelle, und eine Compact Flash (CF) Card Schnittstelle implementiert sein.
  • 12 ist ein Blockschaltbild eines UFS-Systems 2000 gemäß einer beispielhaften Ausführungsform. Das UFS-System 2000 ist ein System, welches mit einem UFS-Standard, welcher durch das Joint Electron Device Engineering Council (JEDEC) herausgegeben ist, konform ist, und kann einen UFS-Host 2100, eine UFS-Vorrichtung 2200 und eine UFS-Schnittstelle 2300 aufweisen. Die obige Beschreibung des Systems 1000 der 11 kann ebenso auf das UFS-System 2000 der 12 innerhalb eines Bereiches angewandt werden, welcher nicht mit einer Beschreibung in Konflikt steht, welche untenstehend unter Bezugnahme auf 12 getätigt ist.
  • Bezug nehmend auf 12 können der UFS-Host 2100 und die UFS-Vorrichtung 2200 miteinander durch die UFS-Schnittstelle 2300 verbunden sein. Wenn der Hauptprozessor 1100 der 11 ein AP ist, kann der UFS-Host 2100 als ein Teil des AP implementiert sein. Ein UFS-Hostcontroller 2110 und ein Hostspeicher 2140 können jeweils dem Controller 1120 in den Hauptprozessor 1100 und den Speichern 1200a und 1200b der 11 entsprechen. Die UFS-Vorrichtung 2200 kann den Speichereinrichtungen 1300a und 1300b der 11 entsprechen, und ein UFS-Vorrichtungscontroller 2210 und ein NVM-Speicher 2220 können jeweils den Speichercontrollern 1310a und 1310b und den NVM-Speichern 1320a und 1320b der 11 entsprechen.
  • Der UFS-Host 2100 kann den UFS-Hostcontroller 2110, eine Anwendung 2120, einen UFS-Treiber 2130, den Hostspeicher 2140 und eine UFS-Zwischenverbindungs (UIC)-Schicht 2150 aufweisen. Die UFS-Vorrichtung 2200 kann den UFS-Vorrichtungscontroller 2210, den NVM-Speicher 2220, eine Speicherschnittstelle 2230, einen Vorrichtungsspeicher 2240, eine UIC-Schicht 2250 und einen Regulierer 2260 aufweisen. Der NVM-Speicher 2220 kann eine Mehrzahl von Speichereinheiten 2221 aufweisen, und die Speichereinheit 2221 kann einen V-NAND-Flashspeicher einer 2D- oder 3D-Struktur oder einen anderen Typ von NVM wie beispielsweise einen PRAM und/oder einen RRAM aufweisen. Der UFS-Vorrichtungscontroller 2210 und der NVM-Speicher 2220 können miteinander durch die Speicherschnittstelle 2230 verbunden sein. Die Speicherschnittstelle 2230 kann implementiert sein, um einem Standardprotokoll wie beispielsweise einem Toggle oder Open-NAND-Flash Interface (ONFI)-Protokoll zu entsprechen.
  • Die Anwendung 2120 kann ein Programm anzeigen, welches wünscht, mit der UFS-Vorrichtung 2200 zu kommunizieren, um eine Möglichkeit der UFS-Vorrichtung 2200 zu verwenden. Die Anwendung 2120 kann eine Eingabe-Ausgabe-Anforderung (IOR) für den UFS-Treiber 2130 für eine Eingabe zu oder eine Ausgabe von der UFS-Vorrichtung 2200 senden. Die IOR kann eine Datenleseanforderung, eine Datenschreibanforderung, eine Datenverwerfanforderung und/oder dergleichen aufweisen, ist aber nicht darauf beschränkt.
  • Der UFS-Treiber 2130 kann den UFS-Hostcontroller 2110 durch eine UFS-HostController-Schnittstelle (HCI) verwalten. Der UFS-Treiber 2130 kann eine IOR, welche durch die Anwendung 2120 erzeugt wird, in einen UFS-Befehl, welcher durch einen UFS-Standard definiert ist, übersetzen und den übersetzten UFS-Befehl zu dem UFS-Hostcontroller 2110 senden. Eine IOR kann in eine Mehrzahl von UFS-Befehlen übersetzt werden. Ein UFS-Befehl kann im Wesentlichen ein Befehl sein, welcher durch einen SCSI-Standard definiert ist, kann aber auch ein UFS-Standard-Exklusiv-Befehl sein.
  • Der UFS-Hostcontroller 2110 kann den UFS-Befehl, welcher durch den UFS-Treiber 2130 übersetzt wird, zu der UIC-Schicht 2250 in der UFS-Vorrichtung 2200 durch die UIC-Schicht 2150 und die UFS-Schnittstelle 2300 senden. In diesem Prozess kann ein UFS-Hostregister 2111 in dem UFS-Hostcontroller 2110 als eine Befehlswarteschlange (CQ) agieren.
  • Die UIC-Schicht 2150 in dem UFS-Host 2100 kann eine MIPI M-PHY 2151 und eine MIPI UniPro 2152 aufweisen, und die UIC-Schicht 2050 in der UFS-Vorrichtung 2200 kann ebenso eine MIPI M-PHY 2251 und eine MIPI UniPro 2252 aufweisen.
  • Die UFS-Schnittstelle 2300 kann eine Leitung aufweisen durch welche ein Referenztaktsignal REF - CLK gesendet wird, eine Leitung, durch welche ein Hardwareresetsignal RESET_n für die UFS-Vorrichtung 2200 gesendet wird, ein Paar von Leitungen, durch welche ein Differenzialeingabesignalpaar DIN_T und DIN_C gesendet wird, und ein Paar von Leitungen, durch welche ein Differenzialausgangssignalpaar DOUT_T und DOUT_C gesendet wird.
  • Ein Frequenzwert des Referenztaktsignals REF CLK, welches von dem UFS-Host 2100 zu der UFS-Vorrichtung 2200 vorgesehen wird, kann einer von beispielsweise vier Werten, beispielsweise 19,2 MHz, 26 MHz, 38,4 MHz und 52 MHz sein, ist aber jedoch nicht darauf beschränkt. Der UFS-Host 2100 kann den Frequenzwert des Referenztaktsignals REF_CLK auch während eines Betriebes ändern, das heißt auch während Daten zwischen dem UFS-Host 2100 und der UFS-Vorrichtung 2200 gesendet und empfangen werden. Die UFS-Vorrichtung 2200 kann Taktsignale verschiedener Frequenzen aus dem Referenztaktsignal REF_CLK, welches von dem UFS-Host 2100 empfangen wird, durch ein Verwenden eines Phasenregelkreises (PLL) oder dergleichen erzeugen. Zusätzlich kann der UFS-Host 2100 einen Wert einer Datenrate zwischen dem UFS-Host 2100 und der UFS-Vorrichtung 2200 basierend auf dem Frequenzwert des Referenztaktsignals REF_CLK einstellen. Demnach kann der Wert der Datenrate abhängig von dem Frequenzwert des Referenztaktsignals REF_CLK bestimmt werden.
  • Die UFS-Schnittstelle 2300 kann mehrere Bahnen aufweisen und jede Bahn kann durch ein Differenzialpaar implementiert sein. Beispielsweise kann die UFS-Schnittstelle 2300 ein oder mehrere Empfangsbahnen und ein oder mehrere Sendebahnen aufweisen. In 12 kann das Paar von Bahnen, durch welches das Differenzialeingangssignalpaar DIN_T und DIN_C gesendet wird, eine Empfangsbahn bilden, und das Paar von Bahnen, durch welche das Differenzialausgangssignalpaar DOUT_T und DOUT_C gesendet wird, kann eine Sendebahn bilden. Obwohl 12 eine Sendebahn und eine Empfangsbahn zeigt, kann die Anzahl von Sendebahnen und die Anzahl von Empfangsbahnen variieren.
  • Die Empfangsbahn und die Sendebahn können Daten in einem seriellen Kommunikationsschema senden und eine Voll-Duplex-Kommunikation zwischen dem UFS-Host 2100 und der UFS-Vorrichtung 2200 kann durch eine Struktur durchgeführt werden, in welcher die Empfangsbahn von der Sendebahn getrennt ist. Demnach kann die UFS-Vorrichtung 2200 Daten zu dem UFS-Host 2100 durch die Sendebahn senden, auch während Daten von dem UFS-Host 2100 über die Empfangsbahn empfangen werden. Zusätzlich können Steuerdaten wie beispielsweise ein Befehl von dem UFS-Host 2100 zu der UFS-Vorrichtung 2200 und Nutzerdaten, welche in oder aus dem NVM-Speicher 2200 in der UFS-Vorrichtung 2200 zu speichern oder zu lesen sind, durch dieselbe Bahn gesendet werden. Demnach muss eine separate Bahn für ein Datensenden zwischen dem UFS-Host 2100 und der UFS-Vorrichtung 2200 außer der Empfangsbahn und der Sendebahn nicht vorgesehen werden.
  • Der UFS-Vorrichtungscontroller 2210 in der UFS-Vorrichtung 2200 kann im Allgemeinen einen Betrieb der UFS-Vorrichtung 2200 steuern. Der UFS-Vorrichtungscontroller 2210 kann den NVM-Speicher 2220 durch logische Einheiten (LUs) 2211 verwalten, welche logische Datenspeichereinheiten sind. Die Anzahl von LUs 2211 kann acht sein, ist jedoch nicht darauf beschränkt. Der UFS-Vorrichtungscontroller 2210 kann eine Flashübersetzungsschicht (FTL) aufweisen und kann eine logische Datenadresse, beispielsweise eine logische Blockadresse (UBA), welche von dem UFS-Host 2100 gesendet wird, in eine physikalische Datenadresse, beispielsweise eine physikalische Blockadresse (PBA) durch ein Verwenden von Adressabbildungsinformation der FTL übersetzen. Ein logischer Block zum Speichern von Nutzerdaten in dem UFS-System 2000 kann eine Größe eines bestimmten Bereichs haben. Beispielsweise kann eine minimale Größe des logischen Blocks auf vier Kbytes eingestellt sein.
  • Wenn ein Befehl von dem UFS-Host 2100 der UFS-Vorrichtung 2200 durch die UIC-Schicht 2250 zugeführt wird, kann der UFS-Vorrichtungscontroller 2210 eine Operation gemäß dem Eingangsbefehl durchführen und, wenn die Operation vollendet ist, eine Vollendungsantwort zu dem UFS-Host 2100 senden.
  • Beispielsweise kann, wenn der UFS-Host 2100 wünscht, Nutzerdaten in der UFS-Vorrichtung 2200 zu speichern, der UFS-Host 2100 einen Datenschreibbefehl zu der UFS-Vorrichtung 2200 senden. Wenn eine Bereit-zu-senden-Antwort, welche Bereitschaft zum Empfangen der Nutzerdaten anzeigt, von der UFS-Vorrichtung 2200 empfangen wird, kann der UFS-Host 2100 die Nutzerdaten zu der UFS-Vorrichtung 2200 senden. Der UFS-Vorrichtungscontroller 2210 kann die empfangenen Nutzerdaten in dem Vorrichtungsspeicher 2240 vorübergehend speichern und kann die Nutzerdaten, welche vorübergehend in dem Vorrichtungsspeicher 2240 gespeichert werden, in einem ausgewählten Ort des NVM-Speichers 2220 basierend auf der Adressabbildungsinformation der FTL speichern.
  • Als ein anderes Beispiel kann, wenn der UFS-Host 2100 wünscht, Nutzerdaten, welche in der UFS-Vorrichtung 2200 gespeichert sind, zu lesen, der UFS-Host 2100 einen Datenlesebefehl zu der UFS-Vorrichtung 2200 senden. Der UFS-Vorrichtungscontroller 2210, welcher den Datenlesebefehl empfangen hat, kann die Nutzerdaten von dem NVM-Speicher 2220 basierend auf dem Datenlesebefehl lesen und vorübergehend die gelesenen Nutzerdaten in dem Vorrichtungsspeicher 2240 speichern. In diesem Leseprozess kann der UFS-Vorrichtungscontroller 2210 einen Fehler der gelesenen Nutzerdaten erfassen und den erfassten Fehler beispielsweise durch ein Nutzen einer eingebetteten Fehlerkorrekturcode (ECC) Schaltung (nicht gezeigt) korrigieren. Danach kann der UFS-Vorrichtungscontroller 2210 die Nutzerdaten, welche vorübergehend in dem Vorrichtungsspeicher 2240 gespeichert werden, zu dem UFS-Host 2100 senden. Zusätzlich kann der UFS-Vorrichtungscontroller 2210 ferner eine Advanced Encryption Standard (AES)-Schaltung (nicht gezeigt) aufweisen und die AES-Schaltung kann Daten, die dem UFS-Vorrichtungscontroller 2210 zugeführt werden, durch ein Verwenden eines symmetrischen Schlüsselalgorithmus verschlüsseln oder entschlüsseln.
  • Der UFS-Host2100 kann nacheinander folgend Befehle, welche zu der UFS-Vorrichtung 2200 zu senden sind, in dem UFS-Hostregister 2111, welches als eine CQ fungieren kann, speichern, und den Befehl zu der UFS-Vorrichtung 2200 in der Speichersequenz senden. In diesem Fall kann, wenn auch ein vorangehend gesendeter Befehl durch die UFS-Vorrichtung 2200 verarbeitet wird, das heißt auch wenn eine Benachrichtigung, welche anzeigt, dass der vorangehend gesendete Befehl vollständig durch die UFS-Vorrichtung 2200 verarbeitet ist, nicht empfangen wird, der UFS-Host 2100 einen nachfolgenden Befehl, welcher in der CQ gepuffert ist, zu der UFS-Vorrichtung 2200 senden, und demnach kann die UFS-Vorrichtung 2200 ebenso den nachfolgenden Befehl von dem UFS-Host 2100 empfangen, auch während sie den vorangehend gesendeten Befehl verarbeitet. Eine maximale Anzahl (Warteschlangentiefe) von Befehlen, welche in der CQ gespeichert werden kann, kann beispielsweise 32 sein. Zusätzlich kann die CQ in einem Zirkular-Warteschlangen-Typ implementiert sein, in welchem ein Startpunkt und ein Endpunkt einer Befehlszeichenkette, welche in der CQ gespeichert ist, jeweils durch einen Kopfzeiger und einen Endzeiger angezeigt werden.
  • Jede der Mehrzahl von Speichereinheiten 2221 kann eine Speicherzellanordnung und eine Steuerschaltung aufweisen, welche konfiguriert ist, um einen Betrieb der Speicherzellanordnung zu steuern. Die Speicherzellanordnung kann eine 2D- oder 3D-Speicherzellanordnung aufweisen. Die Speicherzellanordnung kann eine Mehrzahl von Speicherzellen aufweisen, und jede Speicherzelle kann eine Single-Level-Zelle (SLC), in welcher Ein-Bit-Information gespeichert wird, oder einer Zelle, in welcher Zwei- oder Mehr-Bit-Information gespeichert wird, wie beispielsweise eine Multi-Level-Zelle (MLC), eine Triple-Level-Zelle (TLC) oder eine Quadruple-Level-Zelle (QLC) sein. Die 3D-Speicherzellanordnung kann einen V-NAND-Strang aufweisen, welcher vertikal orientiert ist, sodass wenigstens eine Speicherzelle auf einer anderen Speicherzelle platziert ist.
  • Leistungsquellenspannungen wie beispielsweise VCC, VCCQ1 und VCCQ2 können der UFS-Vorrichtung 2200 zugeführt werden. VCC kann eine Hauptleistungsquellenspannung für die UFS-Vorrichtung 2200 sein und kann einen Wert von ungefähr 2,4 V bis ungefähr 3,6 V haben. VCCQ1 kann eine Leistungsquellenspannung zum Zuführen einer Niedrigpegelspannung, beispielsweise für den UFS-Vorrichtungscontroller 2210 sein, und kann einen Wert von ungefähr 1,14 V bis ungefähr 1,26 V haben. VCCQ2 kann eine Leistungsquellenspannung zum Zuführen einer Spannung eines Pegels niedriger als VCC, aber höher als VCCQ1 sein, beispielsweise für eine Eingabe-Ausgabeschnittstelle wie beispielsweise die MIPI M-PHY 2251, und kann einen Wert von ungefähr 1,7 V bis ungefähr 1,95 V haben. Die Leistungsquellenspannungen können jeder Komponente in der UFS-Vorrichtung 2200 durch den Regulator 2260 zugeführt werden. Der Regulator 2260 kann durch einen Satz von Einheitsregulatoren implementiert sein, welche jeweils mit den Leistungsquellenspannungen, welche obenstehend beschrieben sind, verbunden ist.
  • Die 13A bis 13C sind Diagramme zum Beschreiben eines Formfaktors einer UFS-Karte. Wenn die UFS-Vorrichtung 2200, welche unter Bezugnahme auf 12 beschrieben ist, in einer Form einer UFS-Karte 4000 implementiert ist, kann das äußere Erscheinungsbild der UFS-Karte 4000 wie in den 13A bis 13C gezeigt ist sein.
  • 13A ist eine Draufsicht auf die UFS-Karte 4000. Bezug nehmend auf 13A kann die UFS-Karte 4000 eine Form oder ein Design wie eine Haifischflosse haben. In 13A kann die UFS-Karte 4000 beispielsweise Abmessungen haben, welche in Tabelle 1 untenstehend gezeigt sind. [Tabelle 1]
    Eintrag Abmessung (mm)
    T1 9,70
    T2 15,00
    T3 11,00
    T4 9,70
    T5 5,15
    T6 0,25
    T7 0,60
    T8 0,75
    T9 0,80 (R)
  • 13B ist eine Seitenansicht der UFS-Karte 4000. In 13B kann die UFS-Karte 4000 beispielsweise Abmessungen haben, welche in Tabelle 2 untenstehend gezeigt sind. [Tabelle 2]
    Eintrag Abmessung (mm)
    S1 0,74±0,06
    S2 0,30
    S3 0,52
    S4 1,20
    S5 1,05
    S6 1,00
  • 13C ist eine Untersicht beziehungsweise Ansicht der UFS-Karte 4000 von unten. Bezug nehmend auf 13C kann eine Mehrzahl von Pins für einen elektrischen Kontakt mit einem UFS-Slot auf einer unteren Oberfläche der UFS-Karte 4000 gebildet sein, und eine Funktion jedes Pins wird untenstehend beschrieben werden. Durch eine Symmetrie zwischen einer oberen Oberfläche und der unteren Oberfläche der UFS-Karte 4000 können einige (beispielsweise T1 bis T5 und T9) der Informationen über die Abmessungen, welche unter Bezugnahme auf 13A beschrieben sind, und Tabelle 1 ebenso auf die Ansicht der UFS-Karte 4000 von unten angewandt werden, wie in 13C gezeigt ist.
  • Die Mehrzahl von Pins für eine elektrische Verbindung mit einem UFS-Host kann auf der unteren Oberfläche der UFS-Karte 4000 gebildet sein, und gemäß 13C kann eine Gesamtanzahl von Pins zwölf sein. Jeder Pin kann eine rechteckige Form haben und ein Signalname, welcher jedem Pin entspricht, kann wie in 13C gezeigt sein. Eine Kurzinformation jedes Pins kann sich auf Tabelle 3 untenstehend beziehen und kann sich ebenso auf die Beschreibung, welche obenstehend unter Bezugnahme auf 12 getätigt ist, beziehen. [Tabelle 3]
    Zahl Signalname Beschreibung Abmessung (mm)
    1 VSS Masse (GND) 3,0×0,72±0,05
    2 DIN_C Differenzialeingangssignal, zugeführt von einem Host zu der UFS-Karte 4000 (DIN_C bezeichnet einen negativen Knoten und DIN T bezeichnet einen positiven Knoten) 1,50×0,72±0,05
    3 DIN_T
    4 VSS Gleich wie Nummer 1 3,00×0,72±0,05
    5 DOUT_C Differenzialausgangssignal, welches von der UFS-Karte 4000 zu einem Host ausgegeben wird (DOUT_C bezeichnet einen negativen Knoten und DOUT_T bezeichnet einen positiven Knoten) 1,50×0,72±0,05
    6 DOUT_T
    7 VSS Gleich wie Nummer 1 3,00x0,72±0,05
    8 REF_CLK Referenztakt, vorgesehen von einem Host für die UFS-Karte 4000 1,50×0,72±0,05
    9 VCCQ2 Leistungsquellenspannung, welche einen relativ niedrigeren Wert als VCC hat, welche hauptsächlich für eine PHY-Schnittstelle oder einen Controller vorgesehen ist 3,0×0,72±0,05
    10 C/D (GND) Signal für Kartenerfassung 1,50×0,72±0,05
    11 VSS Gleich wie Nummer 1 3,00×0,80±0,05
    12 Vcc Hauptleistungsquellenspannung
  • 14 ist ein Blockschaltbild eines NVM-Speichers 2220a gemäß einer beispielhaften Ausführungsform.
  • Bezug nehmend auf 14 kann der NVM-Speicher 2220a eine Speichervorrichtung 2224 und einen Speichercontroller 2222 aufweisen. Der NVM-Speicher 2220a kann eine Mehrzahl von Kanälen unterstützen, beispielsweise einen ersten bis m-ten Kanal CH1 bis CHm und die Speichervorrichtung 2224 und der Speichercontroller 2222 können miteinander durch den ersten bis m-ten Kanal CH1 bis CHm verbunden sein. Beispielsweise kann der NVM-Speicher 2220a durch eine Speichervorrichtung wie beispielsweise ein SSD implementiert sein.
  • Die Speichervorrichtung 2224 kann eine Mehrzahl von NVM-Vorrichtungen NVM11 bis NVMmn aufweisen. Jede der Mehrzahl von NVM-Vorrichtungen NVM11 bis NVMmn kann mit einem des ersten bis m-ten Kanals CH1 bis CHm durch einen entsprechenden Weg verbunden sein. Beispielsweise können die NVM-Vorrichtungen NVM11 bis NVM1n mit dem ersten Kanal CH1 jeweils durch Wege W11 bis W1n verbunden sein, und die NVM-Vorrichtungen NVM21 bis NVM2n können mit dem zweiten Kanal CH2 jeweils durch Wege W21 bis W2n gebunden sein. In einer beispielhaften Ausführungsform kann jede der Mehrzahl von NVM-Vorrichtungen NVM11 bis NVMmn in Direktzugriffs-Speichereinheiten implementiert sein, welche gemäß einem individuellen Befehl von dem Speichercontroller 2222 betreibbar sind. Beispielsweise kann jede der Mehrzahl von NVM-Vorrichtungen NVM11 bis NVMmn durch einen Chip oder ein Die implementiert sein, Ausführungsformen sind jedoch nicht darauf beschränkt.
  • Der Speichercontroller 2222 kann Signale zu und von der Speichervorrichtung 2224 durch den ersten bis m-ten Kanal CH1 bis CHm senden und empfangen. Beispielsweise kann der Speichercontroller 2222 Befehle CMDa~CMDm, Adressen ADDRa~ADDRm und Daten DATAa~DATAm zu der Speichervorrichtung 2224 senden oder die Daten DATAa~DATAm von der Speichervorrichtung 2224 durch den ersten bis m-ten Kanal CH1 bis CHm empfangen.
  • Der Speichercontroller 2222 kann durch einen entsprechenden Kanal eine von NVM-Vorrichtungen auswählen, welche mit dem entsprechenden Kanal verbunden sind, und Signale zu und von der ausgewählten NVM-Vorrichtung senden und empfangen. Beispielsweise kann der Speichercontroller 2222 die NVM-Vorrichtung NVM11 aus inmitten der NVM-Vorrichtungen NVM11 bis NVM1n, welche mit dem ersten Kanal CH1 verbunden sind, auswählen. Der Speichercontroller 2222 kann den Befehl CMDa, die Adresse ADDRa und die Daten DATAa zu der ausgewählten NVM-Vorrichtung NVM11 senden oder die Daten DATAa von der ausgewählten NVM-Vorrichtung NVM11 durch den ersten Kanal CH1 empfangen.
  • Der Speichercontroller 2222 kann Signale zu und von der Speichervorrichtung 2224 parallel durch unterschiedliche Kanäle senden und empfangen. Beispielsweise kann der Speichercontroller 2222 den Befehl CMDb zu der Speichervorrichtung 2224 durch den zweiten Kanal CH2 senden, während er den Befehl CMDa zu der Speichervorrichtung 2224 durch den ersten Kanal CH1sendet. Beispielsweise kann der Speichercontroller 2222 die Daten DATAb von der Speichervorrichtung 2224 durch den zweiten Kanal CH2 empfangen, während er die Daten DATAa von der Speichervorrichtung 2224 durch den ersten Kanal CH1 empfängt.
  • Der Speichercontroller 2222 kann einen allgemeinen Betrieb der Speichervorrichtung 2224 steuern. Der Speichercontroller 2222 kann jede der Mehrzahl von NVM-Vorrichtungen NVM11 bis NVMmn, welche mit dem ersten bis m-ten Kanal CH1 bis CHm verbunden sind, durch ein Senden eines Signals durch den ersten bis m-ten Kanal CH1 bis CHm steuern. Beispielsweise kann der Speichercontroller 2222 eine ausgewählt aus inmitten der NVM-Vorrichtungen NVM11 bis NVM1n durch ein Senden des Befehls CMDa und der Adresse ADDRa durch den ersten Kanal CH1 steuern.
  • Jede der Mehrzahl von NVM-Vorrichtungen NVM11 bis NVMmn kann unter der Steuerung des Speichercontrollers 2222 betrieben werden. Beispielsweise kann die NVM-Vorrichtung NVM11 die Daten DATAa gemäß den Befehl CMDa, der Adresse ADDRa und den Daten DATAa, welche durch den ersten Kanal CH1 vorgesehen sind, programmieren. Beispielsweise kann die nichtflüchtige Speichervorrichtung NVM21 die Daten DATAb gemäß den Befehl CMDb und der Adresse ADDRb, welche durch den zweiten Kanal CH2 vorgesehen sind, lesen und die gelesenen Daten DATAb zu dem Speichercontroller 2222 senden.
  • Obwohl 14 zeigt, dass die Speichereinrichtung 2224 mit dem Speichercontroller 2222 durch m-Kanäle kommuniziert und n NVM-Vorrichtungen in Korrespondenz zu jedem Kanal aufweist, kann die Anzahl von Kanälen und die Anzahl von NVM-Vorrichtungen, welche mit einem Kanal verbunden sind, verschiedentlich geändert werden.
  • 15 ist ein Blockschaltbild eines NVM-Speichers 2220b gemäß einer Ausführungsform. Bezug nehmend auf 15 kann der NVM-Speicher 2220b eine Speichervorrichtung 2226 und den Speichercontroller 2222 aufweisen. Die Speichervorrichtung 2226 kann einer der Mehrzahl von NVM-Vorrichtungen NVM11 bis NVMmn entsprechen, welche mit dem Speichercontroller 2222 basierend auf einem des ersten bis m-ten Kanals CH1 bis CHm der 14 kommuniziert. Der Speichercontroller 2222 kann dem Speichercontroller 2222 der 14 entsprechen.
  • Die Speichervorrichtung 2226 kann einen ersten bis achten Pin P11 bis P18, eine Speicherschnittstellenschaltung 2310, eine Steuerlogikschaltung 2320 und ein Speicherzellarray beziehungsweise eine Speicherzellanordnung 2330 aufweisen.
  • Die Speicherschnittstellenschaltung 2310 kann ein Chipaktiviersignal nCE von dem Speichercontroller 2222 durch den ersten Pin P11 empfangen. Die Speicherschnittstellenschaltung 2310 kann Signale zu und von dem Speichercontroller 2222 durch den zweiten bis achten Pin P12 bis P18 als Reaktion auf das Chipaktivierungssignal nCE senden und empfangen. Beispielsweise kann, wenn das Chipaktivierungssignal nCE in einem Aktivierungszustand (beispielsweise einem niedrigen Pegel) ist, die Speicherschnittstellenschaltung 2310 Signale zu und von dem Speichercontroller 2222 durch den zweiten bis achten Pin P12 bis P18 senden und empfangen.
  • Die Speicherschnittstellenschaltung 2310 kann ein Befehls-Latchaktiviersignal CLE, ein Adresslatchaktiviersignal ALE und ein Schreibaktiviersignal nWE von dem Speichercontroller 2222 jeweils durch den zweiten bis vierten Pin P12 bis P14 empfangen. Die Speicherschnittstellenschaltung 2310 kann ein Datensignal DQ von oder zu dem Speichercontroller 2222 durch den siebten Pin P17 empfangen oder senden. Ein Befehl CMD, eine Adresse ADDR und Daten DATA können durch das Datensignal DQ geliefert werden. Beispielsweise kann das Datensignal DQ durch eine Mehrzahl von Datensignalleitungen geliefert werden. In diesem Fall kann der siebte Pin P17 eine Mehrzahl von Pins aufweisen, welche der Mehrzahl von Datensignalleitungen entsprechen.
  • Die Speicherschnittstellenschaltung 2310 kann den Befehl CMD von dem Datensignal DQ, welches in einer Aktivierungsperiode (beispielsweise einem Hoch-Pegel-Zustand) des Befehlslatchaktiviersignals CLE empfangen wird, basierend auf Umschalt-Zeitpunkten des Schreibaktiviersignals nWE erlangen. Die Speicherschnittstellenschaltung 2310 kann die Adresse ADDR aus dem Datensignal DQ, welches in einer Aktivierungsperiode (beispielsweise einem Hoch-Pegel-Zustand) des Adresslatschaktiviersignals ALE empfangen wird, basierend auf Umschalt-Zeitpunkten des Schreibaktiviersignals nWE erlangen.
  • In einer beispielhaften Ausführungsform kann das Schreibaktiviersignal nWE einen statischen Zustand (beispielsweise einen hohen Pegel oder einen niedrigen Pegel) aufrechterhalten und dann zwischen dem hohen Pegel und dem niedrigen Pegel umschalten. Beispielsweise kann das Schreibaktiviersignal nWE in einer Zeitdauer umschalten, in welcher der Befehl CMD oder die Adresse ADDR gesendet wird. Demnach kann die Speicherschnittstellenschaltung 2310 den Befehl CMD oder die Adresse ADDR basierend auf Umschalt-Zeitpunkten des Schreibaktiviersignals nWE erlangen.
  • Die Speicherschnittstellenschaltung 2310 kann ein Leseaktiviersignal nRE von dem Speichercontroller 2222 über den fünften Pin P15 empfangen. Die Speicherschnittstellenschaltung 2310 kann ein Daten-Strobe-Signal DQS von oder zu dem Speichercontroller 2222 über den sechsten Pin P16 empfangen oder senden.
  • In einer Datenausgabeoperation der Speichervorrichtung 2226 kann die Speicherschnittstellenschaltung 2310 das Leseaktiviersignal nRE, welches umschaltet, über den fünften Pin P15 vor einem Ausgeben der Daten DATA empfangen. Die Speicherschnittstellenschaltung 2310 kann das Daten-Strobe-Signal DQS, welches basierend auf dem Umschalten des Leseaktiviersignals nRE umschaltet, erzeugen. Beispielsweise kann die Speicherschnittstellenschaltung 2310 das Daten-Strobe-Signal DQS erzeugen, welches nach einer vorbestimmten Verzögerung (beispielsweise tDQSRE) von einer Umschaltstartzeit des Leseaktiviersignals nRE beginnt umzuschalten. Die Speicherschnittstellenschaltung 2310 kann das Datensignal DQ, welches die Daten DATA aufweist, basierend auf einem Umschalt-Zeitpunkt des Daten-Strobe-Signals DQS senden. Demnach können die Daten DATA mit dem Umschalt-Zeitpunkt des Daten-Strobe-Signals DQS ausgerichtet werden und zu dem Speichercontroller 2222 gesendet werden.
  • In einer Dateneingabeoperation der Speichervorrichtung 2226 kann, wenn das Datensignal DQ, welches die Daten DATA aufweist, von dem Speichercontroller 2222 empfangen wird, die Speicherschnittstellenschaltung 2310 das Daten-Strobe-Signal DQS, welches umschaltet, zusammen mit den Daten DATA von dem Speichercontroller 2222 empfangen. Die Speicherschnittstellenschaltung 2310 kann die Daten DATA aus dem Datensignal DQ basierend auf einem Umschalt-Zeitpunkt des Daten-Strobe-Signals DQS erlangen. Beispielsweise kann die Schnittstellenschaltung 2310 die Daten DATA durch ein Abtasten des Datensignals DQ an einer führenden Flanke und einer End-Flanke des Daten-Strobe-Signals DQS erlangen.
  • Die Speicherschnittstellenschaltung 2310 kann ein Bereit/Beschäftigt-Ausgangssignal nR/B zu dem Speichercontroller 2222 über den achten Pin P18 senden. Die Speicherschnittstellenschaltung 2310 kann Zustandsinformation der Speichervorrichtung 2226 zu dem Speichercontroller 2222 über das Bereit/Beschäftigt-Ausgangssignal nR/B senden. Wenn die Speichervorrichtung 2226 in einem Beschäftigt-Zustand ist (das heißt während sie interne Operationen der Speichervorrichtung 2226 durchführt), kann die Speicherschnittstellenschaltung 2310 das Bereit/Beschäftigt-Ausgangssignal nR/B, welches den Beschäftigt-Zustand anzeigt, zu dem Speichercontroller 2222 senden. Wenn die Speichervorrichtung 2226 in einem Bereit-Zustand ist (das heißt, wenn interne Operationen der Speichervorrichtung 2226 nicht durchgeführt werden oder vollendet sind) kann die Speicherschnittstellenschaltung 2310 das Bereit/Beschäftigt-Ausgangssignal nR/B, welches den Bereit-Zustand anzeigt, zu dem Speichercontroller 2222 senden. Beispielsweise kann, während die Speichervorrichtung 2226 die Daten DATA aus dem Speicherzellarray 2323 als Reaktion auf einen Seitenlesebefehl liest, die Speicherschnittstellenschaltung 2310 das Bereit/Beschäftigt-Ausgangssignal nR/B, welches den Beschäftigt-Zustand anzeigt (beispielsweise den niedrigen Pegel), zu dem Speichercontroller 2222 senden. Beispielsweise kann, während die Speichervorrichtung 2226 die Daten DATA zu dem Speicherzellarray 2330 als Reaktion auf einen Programmierbefehl programmiert, die Speicherschnittstellenschaltung 2310 das Bereit/Beschäftigt-Ausgangssignal nR/B, welches den Beschäftigt-Zustand anzeigt, zu dem Speichercontroller 2222 senden.
  • Die Steuerlogikschaltung 2320 kann allgemein verschiedene Arten von Operationen der Speichervorrichtung 2226 steuern. Die Steuerlogikschaltung 2320 kann den Befehl/die Adresse CMD/ADDR von der Speicherschnittstellenschaltung 2310 empfangen. Die Steuerlogikschaltung 2320 kann Steuersignale zum Steuern der anderen Komponenten in der Speichervorrichtung 2226 als Reaktion auf den empfangenen Befehl/Adresse CMD/ADDR erzeugen. Beispielsweise kann die Steuerlogikschaltung 2320 verschiedene Arten von Steuersignalen zum Programmieren oder Lesen der Daten DATA zu oder aus dem Speicherzellarray 2330 erzeugen.
  • Das Speicherzellarray 2330 kann die Daten DATA, welche von der Speicherschnittstellenschaltung 2310 erlangt werden, unter der Steuerung der Steuerlogikschaltung 2330 speichern. Das Speicherzellarray 2330 kann die gespeicherten Daten DATA zu der Speicherschnittstellenschaltung 2310 unter der Steuerung der Steuerlogikschaltung 2320 ausgeben.
  • Das Speicherzellarray 2330 kann eine Mehrzahl von Speicherzellen aufweisen. Beispielsweise kann die Mehrzahl von Speicherzellen eine Mehrzahl von Flashspeicherzellen sein. Ausführungsformen sind jedoch nicht darauf beschränkt und die Mehrzahl von Speicherzellen können RRAM-Zellen, ferroelektrische Direktzugriffsspeicher (FRAM)-Zellen, PRAM-Zellen, Thyristordirektzugriffsspeicher (TRAM)-Zellen oder MRAM-Zellen sein. Hierin nachstehend werden beispielhafte Ausführungsformen basierend auf einer Ausführungsform beschrieben werden, in welcher die Mehrzahl von Speicherzellen NAND-Flashspeicherzellen sind.
  • Der Speichercontroller 2222 kann einen ersten bis achten Pin P21 bis P28 und eine Controllerschnittstellenschaltung 2410 aufweisen. Der erste bis achte Pin P21 bis P28 kann dem ersten bis achten Pin P11 bis P18 in der Speicherrichtung 2226 entsprechen.
  • Die Controllerschnittstellenschaltung 2410 kann das Chipaktivierungssignal nCE zu der Speichervorrichtung 2226 über den ersten Pin P21 senden. Die Controllerschnittstellenschaltung 2410 kann über den zweiten bis achten Pin P22 bis P28 Signale zu und von der Speichervorrichtung 2226, welche basierend auf dem Chipaktivierungssignal nCE ausgewählt werden, senden.
  • Die Controllerschnittstellenschaltung 2410 kann das Befehlslatchaktiviersignal CLE, das Adresslatchaktiviersignal ALE und das Schreibaktiviersignal nWE zu der Speichervorrichtung 2226 jeweils über den zweiten bis vierten Pin P22 bis P24 senden. Die Controllerschnittstellenschaltung 2410 kann das Datensignal DQ zu oder von der Speichervorrichtung 2226 über den siebten Pin P27 senden oder empfangen.
  • Die Controllerschnittstellenschaltung 2410 kann zu der Speichervorrichtung 2226 das Datensignal DQ, welches den Befehl CMD oder die Adresse ADDR aufweist, zusammen mit dem Schreibaktiviersignal nWE, welches umschaltet, senden. Die Controllerschnittstellenschaltung 2410 kann das Datensignal DQ, welches den Befehl CMD aufweist, zu der Speichervorrichtung 2226 gemäß einem Senden des Befehlslatchaktiviersignals CLE, welches einen Aktivierzustand hat, senden, und das Datensignal DQ, welches die Adresse ADDR aufweist, zu der Speichervorrichtung 2226 gemäß einem Senden des Adresslatchaktiviersignals ALE, welches einen Aktivierzustand hat, senden.
  • Die Controllerschnittstellenschaltung 2410 kann das Leseaktiviersignal nRE zu der Speichervorrichtung 2226 über den fünften Pin P25 übertragen. Die Controllerschnittstellenschaltung 2410 kann das Daten-Strobe-Signal DQS von oder zu der Speichervorrichtung 2226 über den sechsten Pin P26 empfangen oder senden.
  • In einer Datenausgabeoperation der Speichervorrichtung 2226 kann die Controllerschnittstellenschaltung 2410 das Leseaktiviersignal nRE, welches umschaltet, erzeugen und das Leseaktiviersignal nRE zu der Speichervorrichtung 2226 senden. Beispielsweise kann die Controllerschnittstellenschaltung 2410 das Leseaktiviersignal nRE, welches sich von dem statischen Zustand (beispielsweise dem hohen Pegel oder den niedrigen Pegel) zu einem Umschaltzustand ändert, erzeugen, bevor die Daten DATA ausgegeben werden. Demnach kann die Speichervorrichtung 2226 das Daten-Strobe-Signal DQS, welches basierend auf dem Leseaktiviersignal nRE umschaltet, erzeugen. Die Controllerschnittstellenschaltung 2410 kann von der Speichervorrichtung 2226 das Datensignal DQ, welches die Daten DATA aufweist, zusammen mit dem Daten-Strobe-Signal DQS, welches umschaltet, empfangen. Die Controllerschnittstellenschaltung 2410 kann die Daten DATA aus dem Datensignal DQ basierend auf einem Umschalt-Zeitpunkt des Daten-Strobe-Signals DQS erlangen.
  • In einer Dateneingabeoperation der Speichervorrichtung 2226 kann die Controllerschnittstellenschaltung 2410 das Daten-Strobe-Signal DQS, welches umschaltet, erzeugen. Beispielsweise kann die Controllerschnittstellenschaltung 2410 das Daten-Strobe-Signal DQS, welches sich von dem statischen Zustand (beispielsweise dem hohen Pegel oder dem niedrigen Pegel) zu dem Umschaltzustand ändert, erzeugen, bevor die Daten DATA gesendet werden. Die Controllerschnittstellenschaltung 2410 kann das Datensignal DQ, welches die Daten DATA aufweist, zu der Speichervorrichtung 2226 basierend auf Umschalt-Zeitpunkten des Daten-Strobe-Signals DQS senden.
  • Die Controllerschnittstellenschaltung 2410 kann das Bereit/Beschäftigt-Ausgangssignal nR/B von der Speichervorrichtung 2226 über den achten Pin P28 empfangen. Die Controllerschnittstellenschaltung 2410 kann Zustandsinformation der Speichervorrichtung 2226 basierend auf dem Bereit/Beschäftigt-Ausgangssignal nR/B bestimmen.
  • 16 ist ein Blockschaltbild der Speichervorrichtung 2226 der 15. Bezug nehmend auf 16 kann die Speichervorrichtung 2226 die Steuerlogikschaltung 2320, das Speicherzellarray 2330, eine Seitenpuffereinheit 2340, einen Spannungsgenerator 2350 und einen Zeilendecoder 3394 aufweisen. Obwohl in 16 nicht gezeigt, kann die Speichervorrichtung 2226 ferner die Speicherschnittstellenschaltung 2310, welche in 15 gezeigt ist, aufweisen, und zusätzlich kann die Speichervorrichtung 2226 ferner eine Spaltenlogik, einen Vor-Decoder, einen Temperatursensor, einen Befehlsdecoder, einen Adressdecoder und dergleichen aufweisen.
  • Die Steuerlogikschaltung 2320 kann allgemein verschiedene Arten von Operationen der Speichervorrichtung 2226 steuern. Die Steuerlogikschaltung 2320 kann verschiedene Arten von Steuersignalen als Reaktion auf den Befehl CMD und/oder die Adresse ADDR von der Speicherschnittstellenschaltung 2310 ausgeben. Beispielsweise kann die Steuerlogikschaltung 2320 ein Spannungssteuersignal CTRL_vol, eine Zeilenadresse X-ADDR und eine Spaltenadresse Y-ADDR ausgeben.
  • Das Speicherzellarray 2330 kann eine Mehrzahl von Speicherblöcken BLK1 bis BLKz (z ist eine positive ganze Zahl) aufweisen, und jeder der Mehrzahl von Speicherblöcken BLK1 bis BLKz kann eine Mehrzahl von Speicherzellen aufweisen. Das Speicherzellarray 2330 kann mit der Seitenpuffereinheit 2340 durch Bitleitungen BL verbunden sein und mit dem Zeilendecoder 3394 durch Wortleitungen WL, Strangauswahlleitungen SSL und Masseauswahlleitungen GSL verbunden sein.
  • In einer beispielhaften Ausführungsform kann das Speicherzellarray 2330 ein 3D-Speicherzellarray aufweisen und das 3D-Speicherzellarray kann eine Mehrzahl von NAND-Strängen aufweisen. Jeder NAND-Strang kann Speicherzellen aufweisen, welche jeweils mit Wortleitungen, welche vertikal auf einem Substrat gestapelt sind, verbunden sind. Die U.S. Patente Nummer 7 679 133, 8 553 466, 8 654 587 und 8 559 235 und die U.S. Patentanmeldungs-Offenlegungsnummer 2011/0 233 648 sind hierin in ihrer Gesamtheit durch Bezugnahme miteingebunden. In einer beispielhaften Ausführungsform kann das Speicherzellarray 2330 ein 2D-Speicherzellarray aufweisen, und das 2D-Speicherzellarray kann eine Mehrzahl von NAND-Strängen aufweisen, welche in Zeilen- und Spalten-Richtungen angeordnet sind.
  • Die Seitenpuffereinheit 2340 kann eine Mehrzahl von Seitenpuffern PB1 bis PBn (n ist eine ganze Zahl größer als oder gleich zu drei) aufweisen, und die Mehrzahl von Seitenpuffern PB1 bis PBn kann mit Speicherzellen jeweils durch eine Mehrzahl von Bitleitungen BL verbunden sein. Die Seitenpuffereinheit 2340 kann wenigstens eine Bitleitung BL aus inmitten der Mehrzahl von Bitleitungen BL als Reaktion auf die Spaltenadresse Y-ADDR auswählen. Die Seitenpuffereinheit 2340 kann als ein Schreibtreiber oder ein Leseverstärker gemäß einem Betriebsmodus arbeiten. Beispielsweise kann in einer Programmieroperation die Seitenpuffereinheit 2340 an eine ausgewählte Bitleitung BL eine Bitleitungsspannung anlegen, welche Daten, welche zu programmieren sind, entspricht. In einer Leseoperation kann die Seitenpuffereinheit 2340 Daten, welche in einer Speicherzelle gespeichert sind, durch ein Abtasten eines Stroms oder einer Spannung einer ausgewählten Bitleitung BL abtasten.
  • Der Spannungsgenerator 2350 kann verschiedene Typen von Spannungen zum Durchführen von Programmier-, Lese- und Verwerf-Operationen basierend auf dem Spannungssteuersignal CTRL_vol erzeugen. Beispielsweise kann der Spannungsgenerator 2350 eine Programmierspannung, eine Lesespannung, eine Programmierverifizierspannung, eine Verwerf-Spannung oder dergleichen als eine Wortleitungsspannung VWL erzeugen.
  • Der Zeilendecoder 3394 kann eine einer Mehrzahl von Wortleitungen WL als Reaktion auf die Zeilenadresse X-ADDR auswählen und eine einer Mehrzahl von Strangauswahlleitungen SSL auswählen. Beispielsweise kann in einer Programmieroperation der Zeilendecoder 3394 die Programmierspannung und die Programmierverifizierspannung an eine ausgewählte Wortleitung WL anlegen, und in einer Leseoperation kann der Zeilendecoder 3394 die Lesespannung an eine ausgewählte Wortleitung WL anlegen.
  • 17 ist ein Diagramm zum Beschreiben einer 3D-V-NAND-Struktur, welche auf eine UFS-Vorrichtung gemäß einer beispielhaften Ausführungsform anwendbar ist. Wenn ein Speichermodul in der UFS-Vorrichtung durch 3D-V-NAND-Typ Flashspeicher implementiert ist, kann jeder einer Mehrzahl von Speicherblöcken, welche in dem Speichermodul enthalten sind, durch eine Äquivalenzschaltung repräsentiert werden, wie in 17 gezeigt ist. Ein Speicherblock BLKi, welcher in 17 gezeigt ist, zeigt einen 3D-Speicherblock an, welcher in einer 3D-Struktur gebildet ist. Eine Mehrzahl von Speicher-NAND-Strängen in dem Speicherblock BLKi kann in einer Richtung vertikal zu einem Substrat gebildet werden.
  • Bezug nehmend auf 17 kann der Speicherblock BLKi eine Mehrzahl von Speicher-NAND-Strängen NS11 bis NS33, welche zwischen Bitleitungen BL1, BL2 und BL3 und einer gemeinsamen Sourceleitung CSL verbunden sind, aufweisen. Jeder der Mehrzahl von Speicher-NAND-Strängen NS11 bis NS33 kann einen Strangauswahltransistor SST, eine Mehrzahl von Speicherzellen MC1, MC2, ..., MC8 und einen Masseauswahltransistor GST aufweisen. Obwohl 17 zeigt, dass jeder der Mehrzahl von Speicher-NAND-Strängen NS11 bis NS33 acht Speicherzellen MC1, MC2, ..., MC8 aufweist, sind Ausführungsformen nicht darauf beschränkt.
  • Der Strangauswahltransistor SST kann mit einer entsprechenden Strangauswahlleitung SSL1, SSL2 oder SSL3 verbunden sein. Die Mehrzahl von Speicherzellen MC1, MC2, ..., MC8 kann jeweils mit entsprechenden Gateleitungen GTL1, GTL2, ..., GTL8 verbunden sein. Die Gateleitungen GTL1, GTL2, ..., GTL8 können Wortleitungen entsprechen, und einige der Gateleitungen GTL1, GTL2, ..., GTL8 können Dummy-Wortleitungen entsprechen. Der Masseauswahltransistor GST kann mit einer entsprechenden Masseauswahlleitung GSL1, GSL2 oder GSL3 verbunden sein. Der Strangauswahltransistor SST kann mit einer entsprechenden Bitleitung BL1, BL2 oder BL3 verbunden sein, und der Masseauswahltransistor GST kann mit der gemeinsamen Sourceleitung CSL verbunden sein.
  • Eine Wortleitung (beispielsweise WL1) derselben Höhe kann allgemein beziehungsweise gemeinsam verbunden sein und die Masseauswahlleitungen GSL1, GSL2 und GSL3 und die Strangauswahlleitungen SSL1, SSL2 und SSL3 können individuell getrennt sein. Obwohl 17 zeigt, dass der Speicherblock BLKi mit acht Gateleitungen GTL1, GTL2, ..., GTL8 und drei Bitleitungen BL1, BL2 und BL3 verbunden ist, sind Ausführungsformen nicht darauf beschränkt.
  • 18 ist eine Querschnittsansicht einer Bonding-Vertikal-NAND (BVNAND)-Struktur, welche auf eine UFS-Vorrichtung gemäß einer beispielhaften Ausführungsform anwendbar ist.
  • Bezug nehmend auf 18 kann eine Speichervorrichtung 2226 eine Chip-zu-Chip (C2C)-Struktur haben. Die C2C-Struktur kann sich auf eine Struktur beziehen, welche durch ein Herstellen eines oberen Chips, welcher einen Zellbereich CELL auf einem ersten Wafer aufweist, ein Herstellen eines unteren Chips, welcher einen Peripherieschaltungsbereich PERI auf einem zweiten Wafer getrennt von dem ersten Wafer aufweist, und dann ein Bonden des oberen Chips und des unteren Chips aneinander gebildet wird. Hier kann der Bonding-Vorgang ein Verfahren zum elektrischen Verbinden eines Bondingmetalls, welches auf einer obersten Metallschicht des oberen Chips gebildet ist und eines Bondingmetalls, welches auf einer obersten Metallschicht des unteren Chips gebildet ist, aufweisen. Beispielsweise können, wenn die Bondingmetalle Kupfer (Cu) aufweisen, der obere und der untere Chip unter Verwendung eines Cu-zu-Cu-Bonding aneinander gebondet werden. Die vorliegende beispielhafte Ausführungsform ist jedoch nicht darauf beschränkt. Beispielsweise können die Bondingmetalle ebenso aus Aluminium (Al) oder Wolfram (W) gebildet sein.
  • Jeder des Peripherieschaltungsbereichs PERI und des Zellbereichs CELL der Speichervorrichtung 2226 kann eine externe Kontaktstellenbondingfläche PA, eine Wortleitungsbondingfläche WLBA und eine Bitleitungsbondingfläche BLBA aufweisen.
  • Der Peripherieschaltungsbereich PERI kann ein erstes Substrat 3210, eine Zwischenschichtisolierschicht 3215, eine Mehrzahl von Schaltungselementen 3220a, 3220b und 3220c, welche auf dem ersten Substrat gebildet sind, erste Metallschichten 3230a, 3230b und 3230c, welche jeweils mit der Mehrzahl von Schaltungselementen 3220a, 3220b und 3220c verbunden sind, und zweite Metallschichten 3240a, 3240b und 3240c aufweisen, welche auf den ersten Metallschichten 3230a, 3230b und 3230c gebildet sind. Die ersten Metallschichten 3230a, 3230b und 3230c können aus Wolfram gebildet sein, welches einen relativ hohen elektrischen Widerstand hat, und die zweiten Metallschichten 3240a, 3240b und 3240c können aus Kupfer gebildet sein, welches einen relativ niedrigen elektrischen Widerstand hat.
  • In 18 können, obwohl nur die ersten Metallschichten 3230a, 3230b und 3230c und die zweiten Metallschichten 3240a, 3240b und 3240c gezeigt sind, eine oder mehrere zusätzliche Metallschichten weiterhin auf den zweiten Metallschichten 3240a, 3240b und 3240c gebildet sein. Wenigstens ein Abschnitt der einen oder mehreren zusätzlichen Metallschichten, welche auf den zweiten Metallschichten 3240a, 3240b und 3240c gebildet ist/sind, kann/können aus Aluminium oder dergleichen gebildet sein, welches einen niedrigeren elektrischen Widerstand hat als denjenigen von Kupfer, welches die zweiten Metallschichten 3240a, 3240b und 3240c bildet.
  • Die Zwischenschichtisolierschicht 3215 kann auf dem ersten Substrat 3210 angeordnet sein und kann die Mehrzahl von Schaltungselementen 3220a, 3220b und 3220c, die ersten Metallschichten 3230a, 3230b und 3230c und die zweiten Metallschichten 3240a, 3240b und 3240c bedecken. Die Zwischenschichtisolierschicht 3215 kann ein isolierendes Material wie beispielsweise Siliziumoxid, Siliziumnitrid oder dergleichen aufweisen.
  • Untere Bondingmetalle 3271b und 3272b können auf der zweiten Metallschicht 3240b in der Wortleitungsbondingfläche WLBA gebildet sein. In der Wortleitungsbondingfläche WLBA können die unteren Bondingmetalle 3271b und 3272b in dem Peripherieschaltungsbereich PERI elektrisch an obere Bondingmetalle 3371b und 3372b des Zellbereichs CELL gebondet sein. Die unteren Bondingmetalle 3271b und 3272b und die oberen Bondingmetalle 3371b und 3372b können aus Aluminium, Kupfer, Wolfram oder dergleichen gebildet sein. Auf die oberen Bondingmetalle 3371b und 3372b in dem Zellbereich CELL kann Bezug genommen werden als erste Metallkontaktstellen. Auf die unteren Bondingmetalle 3271b und 3272b in dem Peripherieschaltungsbereich PERI kann Bezug genommen werden als zweite Metallkontaktstellen.
  • Der Zellbereich CELL kann wenigstens einen Speicherblock aufweisen. Der Zellbereich CELL kann ein zweites Substrat 3310 und eine gemeinsame Sourceleitung 3320 aufweisen. Auf dem zweiten Substrat 3310 kann eine Mehrzahl von Wortleitungen 3331 bis 3338 (das heißt 3330) in einer Richtung (einer Z-Achsenrichtung) rechtwinklig zu einer oberen Oberfläche des zweiten Substrats 3310 gestapelt sein. Wenigstens eine Strangauswahlleitung und wenigstens eine Masseauswahlleitung können jeweils auf und unter der Mehrzahl von Wortleitungen 3330 angeordnet sein, und die Mehrzahl von Wortleitungen 3330 kann zwischen der wenigstens einen Strangauswahlleitung und der wenigstens einen Masseauswahlleitung angeordnet sein.
  • In der Bitleitungsbondingfläche BLBA kann sich eine Kanalstruktur CH in einer Richtung (einer Z-Achsenrichtung) rechtwinklig zur oberen Oberfläche des zweiten Substrats 3310 erstrecken und durch die Mehrzahl von Wortleitungen 3330, die wenigstens eine Strangauswahlleitung und die wenigstens eine Masseauswahlleitung hindurchtreten. Die Kanalstruktur CH kann eine Datenspeicherschicht, eine Kanalschicht, eine vergrabene Isolierschicht und dergleichen aufweisen. Die Kanalschicht kann elektrisch mit einer ersten Metallschicht 3350c und einen zweiten Metallschicht 3360c verbunden sein. Beispielsweise kann die erste Metallschicht 3350c ein Bitleitungskontakt sein, und die zweite Metallschicht 3360c kann eine Bitleitung sein. Die Bitleitung 3360c kann sich in einer ersten Richtung (einer Y-Achsenrichtung) parallel zu der oberen Oberfläche des zweiten Substrats 3310 erstrecken.
  • In 18 kann eine Fläche, in welcher die Kanalstruktur CH, die Bitleitung 3360c und dergleichen angeordnet sind, als die Bitleitungsbondingfläche BLBA definiert sein. In der Bitleitungsbondingfläche BLBA kann die Bitleitung 3360c elektrisch mit den Schaltungselementen 3220c (welche einen Seitenpuffer 3393 vorsehen können) in dem Peripherieschaltungsbereich PERI verbunden sein. Die Bitleitung 3360c kann mit oberen Bondingmetallen 3371c und 3372c in dem Zellbereich CELL verbunden sein. Die oberen Bondingmetalle 3371c und 3372c können mit unteren Bondingmetallen 3271c und 3272c, welche mit den Schaltungselementen 3220c des Seitenpuffers 3392 verbunden sind, verbunden sein.
  • In der Wortleitungsbondingfläche WLBA kann sich die Mehrzahl von Wortleitungen 3330 in einer zweiten Richtung (einer X-Achsenrichtung) parallel zu der oberen Oberfläche des zweiten Substrats 3310 und rechtwinklig zu der ersten Richtung erstrecken und kann mit einer Mehrzahl von Zellkontaktstopfen 3341 bis 3347 (das heißt 3340) verbunden sein. Die Mehrzahl von Wortleitungen 3330 und die Mehrzahl von Zellkontaktstopfen 3340 kann miteinander in Kontaktstellen, welche durch wenigstens einen Abschnitt der Mehrzahl von Wortleitungen 3330, welche sich in unterschiedlichen Längen in der zweiten Richtung erstrecken, vorgesehen sind, verbunden sein. Eine erste Metallschicht 3350b und eine zweite Metallschicht 3360b können mit einem oberen Abschnitt der Mehrzahl von Zellkontaktstopfen 3340, welche mit der Mehrzahl von Wortleitungen 3330 verbunden sind, nacheinander folgend verbunden sein. Die Mehrzahl von Zellkontaktstopfen 3340 kann mit dem Peripherieschaltungsbereich PERI durch die oberen Bondingmetalle 3371b und 3372b des Zellbereichs CELL und die unteren Bondingmetalle 3271b und 3272b des Peripherieschaltungsbereichs PERI in der Wortleitungsbondingfläche WLBA verbunden sein.
  • Die Mehrzahl von Zellkontaktstopfen 3340 kann elektrisch mit den Schaltungselementen 3220b, welche einen Zeilendecoder 3394 in dem Peripherieschaltungsbereich PERI bilden, verbunden sein. In einer beispielhaften Ausführungsform können Betriebsspannungen der Schaltungselemente 3220b des Zeilendecoders 3394 unterschiedlich zu Betriebsspannungen der Schaltungselemente 3220c sein, welche den Seitenpuffer 3393 bilden. Beispielsweise können Betriebsspannungen der Schaltungselemente 3220c, welche den Seitenpuffer 3393 bilden, größer sein als Betriebsspannungen der Schaltungselemente 3220b, welche den Zeilendecoder 3394 bilden.
  • Ein Gemeinsame-Sourceleitung-Kontaktstopfen 3380 kann in der externen Kontaktstellenbondingfläche PA angeordnet sein. Der Gemeinsame-Sourceleitungs-Kontaktstopfen 3380 kann aus einem leitfähigen Material wie beispielsweise einem Metall, einer Metallverbindung, Polysilizium oder dergleichen gebildet sein, und kann elektrisch mit der gemeinsamen Sourceleitung 3320 verbunden sein. Eine erste Metallschicht 3350a und eine zweite Metallschicht 3360a können auf einem oberen Abschnitt des Gemeinsamen-Sourceleitungs-Kontaktstopfens 3380 nacheinander folgend gestapelt sein. Eine Fläche, in welcher der Gemeinsame-Sourceleitungs-Kontaktstopfen 3380, die erste Metallschicht 3350a und die zweite Metallschicht 3360a angeordnet sind, kann als die externe Kontaktstellen-Bondingfläche PA definiert sein.
  • Eingabe-Ausgabe-Kontaktstellen 3205 und 3305 können in der externen Kontaktstellen-Bondingfläche PA angeordnet sein. Bezug nehmend auf 18 kann ein unterer isolierender Film 3201, welcher eine untere Oberfläche des ersten Substrats 3210 bedeckt, unter dem ersten Substrat 3210 gebildet sein, und eine erste Eingabe-Ausgabe-Kontaktstelle 3205 kann auf dem unteren isolierenden Film 3201 gebildet sein. Die erste Eingabe-Ausgabe-Kontaktstelle 3205 kann mit wenigstens einem der Mehrzahl von Schaltungselementen 3220a, 3220b und 3220c, welche in dem Peripherieschaltungsbereich PERI angeordnet sind, über einen ersten Eingabe-Ausgabe-Kontaktstopfen 3203 verbunden sein und kann von dem ersten Substrat 3210 durch den unteren isolierenden Film 3201 getrennt sein. Zusätzlich kann ein Seitenisolierfilm zwischen dem ersten Eingabe-Ausgabe-Kontaktstopfen 3203 und dem ersten Substrat 3210 angeordnet sein, um den ersten Eingabe-Ausgabe-Kontaktstopfen 3203 und das erste Substrat 3210 elektrisch zu trennen.
  • Ein oberer isolierender Film 3301, welcher die obere Oberfläche des zweiten Substrats 3310 bedeckt, kann auf dem zweiten Substrat 3310 gebildet sein, und eine zweite Eingabe-Ausgabe-Kontaktstelle 3305 kann auf dem oberen isolierenden Film 3301 angeordnet sein. Die zweite Eingabe-Ausgabe-Kontaktstelle 3305 kann mit wenigstens einem der Mehrzahl von Schaltungselementen 3220a, 3220b und 3220c welche in dem Peripherieschaltungsbereich PERI angeordnet sind, durch einen zweiten Eingabe-Ausgabe-Kontaktstopfen 3303 verbunden sein. Die zweite Eingabe-Ausgabe-Kontaktstelle 3305 kann elektrisch mit einem Schaltungselement 3220a verbunden sein.
  • Das zweite Substrat 3310 und die gemeinsame Sourceleitung 3320 können in einer Fläche, in welcher der zweite Eingabe-Ausgabe-Kontaktstopfen 3303 angeordnet ist, nicht angeordnet sein. Die zweite Eingabe-Ausgabe-Kontaktstelle 3305 kann die Wortleitungen 3330 in der dritten Richtung (der Z-Achsenrichtung) nicht überlappen. Der zweite Eingabe-Ausgabe-Kontaktstopfen 3303 kann von dem zweiten Substrat 3310 in einer Richtung parallel zu der oberen Oberfläche des zweiten Substrats 3310 getrennt sein und kann durch die Zwischenschichtisolierschicht 3315 des Zellbereichs CELL hindurchtreten, um mit der zweiten Eingabe-Ausgabe-Kontaktstelle 3305 verbunden zu sein.
  • In einer beispielhaften Ausführungsform können die erste Eingabe-Ausgabe-Kontaktstelle 3205 und die zweite Eingabe-Ausgabe-Kontaktstelle 3305 selektiv gebildet werden. Beispielsweise kann die Speichervorrichtung 2226 nur die erste Eingabe-Ausgabe-Kontaktstelle 3205 aufweisen, welche auf dem ersten Substrat 3210 angeordnet ist, oder die zweite Eingabe-Ausgabe-Kontaktstelle 3305, welche auf dem zweiten Substrat 3310 angeordnet ist. Alternativ kann die Speichervorrichtung 2226 sowohl die erste Eingabe-Ausgabe-Kontaktstelle 3205 als auch die zweite Eingabe-Ausgabe-Kontaktstelle 3305 aufweisen.
  • Eine Metallstruktur, welche auf einer obersten Metallschicht vorgesehen ist, kann als eine Dummy-Struktur vorgesehen sein, oder die oberste Metallschicht kann in jeder der externen Kontaktstellenbondingfläche PA und der Bitleitungsbondingfläche BLBA abwesend sein, welche jeweils in dem Zellbereich CELL und dem Peripherieschaltungsbereich PERI enthalten sind.
  • In der externen Kontaktstellenbondingfläche PA kann die Speichervorrichtung 2226 eine untere Metallstruktur 3273a, welche einer oberen Metallstruktur 3372a entspricht, welche in einer obersten Metallschicht des Zellbereichs CELL gebildet ist, und dieselbe Querschnittsform wie die obere Metallstruktur 3372a des Zellbereichs CELL hat, aufweisen, um miteinander in einer obersten Metallschicht des Peripherieschaltungsbereichs PERI verbunden zu sein. In dem Peripherieschaltungsbereich PERI kann die untere Metallstruktur 3273a, welche in der obersten Metallschicht des Peripherieschaltungsbereichs PERI gebildet ist, nicht mit einem Kontakt verbunden sein. Ähnlich kann in der externen Kontaktstellenbondingfläche PA eine obere Metallstruktur 3372a, welche der unteren Metallstruktur 3273a entspricht, welche in einer obersten Metallschicht des Peripherieschaltungsbereichs PERI gebildet ist, und dieselbe Form wie eine untere Metallstruktur 3273a des Peripherieschaltungsbereichs PERI hat, in einer obersten Metallschicht des Zellbereichs CELL gebildet sein.
  • Die unteren Bondingmetalle 3271b und 3272b können auf der zweiten Metallschicht 3240b in der Wortleitungbondingfläche WLBA gebildet sein. In der Wortleitungsbondingfläche WLBA können die unteren Bondingmetalle 3271b und 3272b des Peripherieschaltungsbereichs PERI elektrisch mit den oberen Bondingmetallen 3371b und 3372b des Zellbereichs CELL durch ein Cu-zu-Cu-Bonding verbunden sein.
  • In der Bitleitungsbondingfläche BLBA kann eine obere Metallstruktur 3392 (welche einer unteren Metallstruktur 3252 entspricht, welche in der obersten Metallschicht des Peripherieschaltungsbereichs PERI gebildet ist und dieselbe Querschnittsform wie die untere Metallstruktur 3252 des Peripherieschaltungsbereiches PERI hat) in einer obersten Metallschicht des Zellbereichs CELL gebildet sein. Ein Kontakt kann auf der oberen Metallstruktur 3392, welche in der obersten Metallschicht des Zellbereichs CELL gebildet ist, nicht gebildet sein.
  • Eine Verstärkungsmetallstruktur (welche einer Metallstruktur entspricht, welche in einer obersten Metallschicht in einem des Zellbereichs CELL und des Peripherieschaltungsbereichs PERI gebildet ist), welche dieselbe Querschnittsform wie die Metallstruktur hat, kann in einer obersten Metallschicht in dem anderen einen des Zellbereichs CELL und des Peripherieschaltungsbereichs PERI gebildet sein. Ein Kontakt kann auf der Verstärkungsmetallstruktur nicht gebildet sein.
  • Im Wege der Zusammenfassung und nochmaligen Betrachtung kann eine Speichereinrichtung einem Host einen geschützten Bereich zum Speichern von Daten bereitstellen, welche sicher beziehungsweise geheim verbleiben sollen, und kann nur authentifizierten Zugriff auf den geschützten Bereich zulassen. Angriffe können auf die Speichervorrichtung und/oder den Host getätigt werden, um Daten, welche in dem geschützten Bereich gespeichert sind, zu erlangen und/oder zu ändern, oder um einen Fehler im Zugriff auf den geschützten Bereich einzufügen. Demnach kann es wünschenswert sein, Zugriff auf und Operationen in dem geschützten Bereich sicher zu authentifizieren.
  • Eine Speichereinrichtung, welche eine Schnittstelle wie beispielsweise einen Universal Flash Storage (UFS) oder eine eingebettete Multimediakarte (eMMC) verwendet, kann einen Relay Protected Memory Block (RPMB) als einen Bereich definieren, welcher vor einem Relay-Angriff geschützt ist. Ein Host kann in dem RPMB Daten speichern, welche vorgesehen sind, geheim zu verbleiben. Die Speichereinrichtung kann nur einen authentifizierten Zugriff auf den RPMB erlauben. Eine Schreibzählung und eine Nonce können verwendet werden, um einen Zugriff auf den RPMB zu authentifizieren. Beispielhafte Ausführungsformen können eine Nonce verwenden, um eine Datenschreiboperation hinsichtlich eines RPMB vor MITM-Angriffen zu schützen eher als ein Verwenden einer Nonce nur für eine Leseoperation hinsichtlich eines RPMB, und demnach kann ein Zugriff auf einen RPMB vor MITM-Angriffen geschützt werden. Der Host kann eine Nonce für eine Schreibanforderung erzeugen und die Schreibanforderung, welche die erzeugte Nonce aufweist, an die Speichereinrichtung bereitstellen. Die Speichereinrichtung kann die Schreibanforderung basierend auf der Nonce, welche in der Schreibanforderung enthalten ist, verifizieren. Wenn eine Nonce, welche in einer vorangehenden Schreibanforderung enthalten ist, identisch zu einer Nonce ist, welche in einer gegenwärtigen Schreibanforderung enthalten ist, kann die Speichereinrichtung einen Fehlschlag der Verifizierung der gegenwärtigen Schreibanforderung bestimmen. Die Speichereinrichtung kann eine Antwort an den Host bereitstellen, welche die Nonce aufweist, welche aus der Schreibanforderung extrahiert ist, und der Host kann ein MAC verifizieren und bestimmen, ob die Nonce, welche in der Antwort enthalten ist, identisch zu einer Nonce ist, welche in der Schreibanforderung enthalten war, während sie die Antwort verifiziert.
  • Wie obenstehend beschrieben ist können Ausführungsformen ein System, eine Vorrichtung und ein Verfahren vorsehen, um Daten davor zu schützen, durch Angriffe in einen geschützten Bereich geschrieben zu werden.
  • Beispielhafte Ausführungsformen wurden hierin offenbart und obwohl spezifische Begriffe eingesetzt werden, werden sie verwendet und sind zu interpretieren in einem generischen und beschreibenden Sinn ausschließlich und nicht zum Zweck von Beschränkungen. In einigen Beispielen können, wie es Fachleuten in dem Fachgebiet der Einreichung der vorliegenden Anmeldung offensichtlich ist, Merkmale, Charakteristiken und/oder Elemente, welche in Verbindung mit einer bestimmten Ausführungsform beschrieben sind, einzeln oder in Kombination mit Merkmalen, Charakteristiken und/oder Elementen verwendet werden, welche in Verbindungen mit anderen Ausführungsformen beschrieben sind, solange nicht anderweitig spezifisch angezeigt. Demnach wird es durch Fachleute verstanden werden, dass verschiedene Änderungen in der Form und den Details getätigt werden können, ohne von dem Gedanken und Umfang der vorliegenden Erfindung wie sie in den folgenden Ansprüchen erläutert ist, abzuweichen.
  • 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
    • KR 1020200089165 [0001]
    • KR 1020200176602 [0001]
    • US 7679133 [0175]
    • US 8553466 [0175]
    • US 8654587 [0175]
    • US 8559235 [0175]
    • US 2011/0233648 [0175]

Claims (20)

  1. Verfahren zum Schreiben von Daten in einen geschützten Bereich (142) als Reaktion auf eine Anforderung von einem Host (200; 31a; 31b; 41; 91; 101a; 101b), wobei das Verfahren aufweist: Empfangen einer ersten Schreibanforderung (REQ1), welche einen ersten Hostnachrichten-Authentifizierungscode (MACH1) und eine erste Zufallszahl aufweist, von dem Host (200; 31a; 31b; 41; 91; 101a; 101b); Verifizieren der ersten Schreibanforderung (REQ1) basierend auf einer Schreibzählung (KD; KH), der ersten Zufallszahl und dem ersten Hostnachrichten-Authentifizierungscode (MACH1); Aktualisieren der Schreibzählung (KD; KH) basierend auf einem Ergebnis des Verifizierens der ersten Schreibanforderung (REQ1); Erzeugen eines ersten Vorrichtungsnachrichten-Authentifizierungscodes (MACD1) basierend auf der aktualisierten Schreibzählung (KD; KH) und der ersten Zufallszahl; und Bereitstellen einer ersten Antwort (RES1), welche den ersten Vorrichtungsnachrichten-Authentifizierungscode (MACD1) und ein Ergebnis des Verifizierens der ersten Schreibanforderung (REQ1) aufweist, an den Host (200; 31a; 31b; 41; 91; 101a; 101b).
  2. Verfahren nach Anspruch 1, wobei das Aktualisieren der Schreibzählung (KD; KH) aufweist: Erhöhen der Schreibzählung (KD; KH), wenn das Verifizieren der ersten Schreibanforderung (REQ1) erfolgreich ist; und Aufrechterhalten der Schreibzählung (KD; KH), wenn das Verifizieren der ersten Schreibanforderung (REQ1) fehlschlägt.
  3. Verfahren nach Anspruch 1, ferner aufweisend: Empfangen einer zweiten Schreibanforderung (REQ2), welche einen zweiten Hostnachrichten-Authentifizierungscode (MACH2), eine zweite Schreibzählung (KD; KH) und eine zweite Zufallszahl aufweist, von dem Host (200; 31a; 31b; 41; 91; 101a; 101b); und Verifizieren der zweiten Schreibanforderung (REQ2) basierend auf der aktualisierten Schreibzählung (KD; KH), der zweiten Zufallszahl und dem zweiten Hostnachrichten-Authentifizierungscode (MACH2).
  4. Verfahren nach Anspruch 3, ferner aufweisend: Erzeugen eines zweiten Vorrichtungsnachrichten-Authentifizierungscodes (MACD2) basierend auf der aktualisierten Schreibzählung (KD; KH) und der zweiten Zufallszahl; und Bereitstellen einer zweiten Antwort (RES2), welche den zweiten Vorrichtungsnachrichten-Authentifizierungscode (MACD2) und ein Ergebnis des Verifizierens der zweiten Schreibanforderung (REQ2) aufweist, an den Host (200; 31a; 31b; 41; 91; 101a; 101b).
  5. Verfahren nach Anspruch 1, wobei die erste Antwort (RES1) ferner die erste Zufallszahl aufweist.
  6. Verfahren nach Anspruch 1, wobei das Verifizieren der ersten Schreibanforderung (REQ1) aufweist: Erzeugen eines ersten Hostnachrichten-Verifizierungscodes (MVCH1) basierend auf der Schreibzählung (KD; KH) und der ersten Zufallszahl; und Vergleichen des ersten Hostnachrichten-Verifizierungscodes (MVCH1) mit dem ersten Hostnachrichten-Authentifizierungscode (MACH1).
  7. Verfahren nach Anspruch 6, wobei: die erste Schreibanforderung (REQ1) eine erste Schreibzählung (KD; KH) aufweist, und das Verifizieren der ersten Schreibanforderung (REQ1) ferner ein Vergleichen der Schreibzählung (KD; KH) mit der ersten Schreibzählung (KD; KH) aufweist.
  8. Verfahren nach Anspruch 6, wobei: das Erzeugen des ersten Hostnachrichten-Verifizierungscodes (MVCH1) auf einem Schlüssel, welcher mit dem Host (200; 31a; 31b; 41; 91; 101a; 101b) im Voraus geteilt wird, der Schreibzählung (KD; KH) und der ersten Zufallszahl basiert ist, und das Erzeugen des ersten Vorrichtungsnachrichten-Authentifizierungscodes (MACD1) auf dem Schlüssel, der aktualisierten Schreibzählung (KD; KH) und der ersten Zufallszahl basiert ist.
  9. Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b), welche konfiguriert ist, um mit einem Host (200; 31a; 31b; 41; 91; 101a; 101b) zu kommunizieren, wobei die Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b) aufweist: einen Speicher (140), welcher einen geschützten Bereich (142) aufweist; und einen Controller (120), welcher konfiguriert ist, um eine erste Schreibanforderung (REQ1), welche einen ersten Hostnachrichten-Authentifizierungscode (MACH1), eine erste Schreibzählung (KD; KH) und eine erste Zufallszahl aufweist, von dem Host (200; 31a; 31b; 41; 91; 101a; 101b) zu empfangen, um die erste Schreibanforderung (REQ1) basierend auf einer Schreibzählung (KD; KH), der ersten Zufallszahl und dem ersten Hostnachrichten-Authentifizierungscode (MACH1) zu verifizieren, und um Daten, welche in der ersten Schreibanforderung (REQ1) enthalten sind, in den geschützten Bereich (142) zu schreiben, wenn das Verifizieren der ersten Schreibanforderung (REQ1) erfolgreich ist.
  10. Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b) nach Anspruch 9, wobei der Controller (120) ferner konfiguriert ist, um die Schreibzählung (KD; KH) basierend auf einem Ergebnis des Verifizierens der ersten Schreibanforderung (REQ1) zu aktualisieren, um einen ersten Vorrichtungsnachrichten-Authentifizierungscode (MACD1) basierend auf der aktualisierten Schreibzählung (KD; KH) und der ersten Zufallszahl zu erzeugen, und um an den Host (200; 31a; 31b; 41; 91; 101a; 101b) eine erste Antwort (RES1) bereitzustellen, welche den ersten Vorrichtungsnachrichten-Authentifizierungscode (MACH1) und das Ergebnis des Verifizierens der ersten Schreibanforderung (REQ1) aufweist.
  11. Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b) nach Anspruch 10, wobei die erste Antwort (RES1) ferner die erste Zufallszahl aufweist.
  12. Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b) nach Anspruch 9, wobei der Controller (120) ferner konfiguriert ist, um die erste Schreibanforderung (REQ1) durch ein Erzeugen eines ersten Hostnachrichten-Verifizierungscodes (MVCH1) basierend auf der Schreibzählung (KD; KH) und der ersten Zufallszahl und einem Vergleichen des ersten Hostnachrichten-Verifizierungscodes (MVCH1) mit dem ersten Hostnachrichten-Authentifizierungscode (MACH1) zu verifizieren.
  13. Verfahren zum Schreiben von Daten auf eine Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b), welche einen geschützten Bereich (142) aufweist, wobei das Verfahren Folgendes aufweist: Erzeugen eines ersten Hostnachrichten-Authentifizierungscodes (MACH1) basierend auf einer Schreibzählung (KD; KH) und einer ersten Zufallszahl; Bereitstellen einer ersten Schreibanforderung (REQ1), welche den ersten Hostnachrichten-Authentifizierungscode (MACH1) und die erste Zufallszahl aufweist, an die Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b); Empfangen einer ersten Antwort (RES1), welche einen ersten Vorrichtungsnachrichten-Authentifizierungscode (MACD1) aufweist, von der Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b); Verifizieren der ersten Antwort (RES1) basierend auf einem Inkrementwert von der Schreibzählung (KD; KH), der ersten Zufallszahl und dem ersten Vorrichtungsnachrichten- Authentifizierungscode (MACD1); und Aktualisieren der Schreibzählung (KD; KH) basierend auf einem Ergebnis des Verifizierens der ersten Antwort (RES1).
  14. Verfahren nach Anspruch 13, wobei das Aktualisieren der Schreibzählung (KD; KH) aufweist: Erhöhen der Schreibzählung (KD; KH), wenn das Verifizieren der ersten Antwort (RES1) erfolgreich ist; und Aufrechterhalten der Schreibzählung (KD; KH), wenn das Verifizieren der ersten Antwort (RES1) fehlschlägt.
  15. Verfahren nach Anspruch 13, ferner aufweisend: Erzeugen einer zweiten Zufallszahl; Erzeugen eines zweiten Hostnachrichten-Authentifizierungscodes (MACH1) basierend auf der aktualisierten Schreibzählung (KD; KH) und der zweiten Zufallszahl; und Bereitstellen einer zweiten Schreibanforderung (REQ2), welche den zweiten Hostnachrichten-Authentifizierungscode (MACH1) und die zweite Zufallszahl aufweist, an die Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b).
  16. Verfahren nach Anspruch 15, ferner aufweisend: Empfangen einer zweiten Antwort (RES2), welche einen zweiten Vorrichtungsnachrichten-Authentifizierungscode (MACD2) aufweist, von der Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b); und Verifizieren der zweiten Antwort (RES2) basierend auf einem Inkrementwert aus der aktualisierten Schreibzählung (KD; KH), der zweiten Zufallszahl und dem zweiten Vorrichtungsnachrichten-Authentifizierungscode (MACD2).
  17. Verfahren nach Anspruch 13, wobei das Verifizieren der ersten Antwort (RES1) aufweist: Erzeugen eines ersten Vorrichtungsnachrichten-Verifizierungscodes (MVCD1) basierend auf dem Inkrementwert aus der Schreibzählung (KD; KH) und der ersten Zufallszahl; und Vergleichen des ersten Vorrichtungsnachrichten-Verifizierungscodes (MVCD1) mit dem ersten Vorrichtungsnachrichten-Authentifizierungscode (MACD1).
  18. Verfahren nach Anspruch 17, wobei das Verifizieren der ersten Antwort (RES1) ferner ein Vergleichen der ersten Zufallszahl mit einer dritten Zufallszahl, welche in der ersten Antwort (RES1) enthalten ist, aufweist.
  19. Verfahren nach Anspruch 17, wobei: das Erzeugen des ersten Hostnachrichten-Authentifizierungscodes (MACH1) auf einem Schlüssel, welcher mit der Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b) im Voraus geteilt wird, der Schreibzählung (KD; KH) und der ersten Zufallszahl basiert ist, und das Erzeugen des ersten Vorrichtungsnachrichten-Verifizierungscodes (MVCD1) auf dem Schlüssel, dem Inkrementwert aus der Schreibzählung (KD; KH) und der ersten Zufallszahl basiert ist.
  20. Verfahren nach Anspruch 13, ferner aufweisend: Bereitstellen einer Schreibzähl-Leseanforderung (REQwc) für die Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b) an die Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b); und Empfangen einer Schreibzähl-Leseantwort (RESwc), welche die Schreibzählung (KD; KH) aufweist, von der Speichereinrichtung (100; 33a; 33b; 42; 92; 103a; 103b; 1300a; 1300b).
DE102021117264.0A 2020-07-17 2021-07-05 System, Vorrichtung und Verfahren zum Schreiben von Daten in einen geschützten Bereich Pending DE102021117264A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20200089165 2020-07-17
KR10-2020-0089165 2020-07-17
KR10-2020-0176602 2020-12-16
KR1020200176602A KR20220010408A (ko) 2020-07-17 2020-12-16 보호 영역에 데이터를 기입하기 위한 시스템, 장치 및 방법

Publications (1)

Publication Number Publication Date
DE102021117264A1 true DE102021117264A1 (de) 2022-01-20

Family

ID=79021355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021117264.0A Pending DE102021117264A1 (de) 2020-07-17 2021-07-05 System, Vorrichtung und Verfahren zum Schreiben von Daten in einen geschützten Bereich

Country Status (3)

Country Link
US (2) US11714561B2 (de)
CN (1) CN113946523A (de)
DE (1) DE102021117264A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200128825A (ko) * 2019-05-07 2020-11-17 삼성전자주식회사 분리된 rpmb 기능을 가지는 스토리지 시스템 및 그 구동 방법
US20210117246A1 (en) 2020-09-25 2021-04-22 Intel Corporation Disaggregated computing for distributed confidential computing environment
US20230094125A1 (en) * 2021-09-24 2023-03-30 Nvidia Corporation Implementing trusted executing environments across multiple processor devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same
KR20200089165A (ko) 2019-01-16 2020-07-24 주식회사 엘지화학 충전 시간을 단축시킨 이차전지의 충전 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL187036A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Re-flash protection for flash memory
US20120331290A1 (en) 2011-06-24 2012-12-27 Broadcom Corporation Method and Apparatus for Establishing Trusted Communication With External Real-Time Clock
US9405707B2 (en) * 2011-12-20 2016-08-02 Intel Corporation Secure replay protected storage
US9071581B2 (en) * 2013-09-23 2015-06-30 Nvidia Corporation Secure storage with SCSI storage devices
US9984007B2 (en) * 2014-03-28 2018-05-29 Samsung Electronics Co., Ltd. Storage system and method for performing and authenticating write-protection thereof
KR102196971B1 (ko) 2014-03-28 2020-12-31 삼성전자주식회사 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법
US10257192B2 (en) * 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof
KR102424293B1 (ko) 2014-05-29 2022-07-25 삼성전자주식회사 스토리지 시스템 및 그것의 보안 쓰기 방지 수행 방법
US9678760B2 (en) * 2014-08-01 2017-06-13 Samsung Electronics Co., Ltd. Memory card and storage system having authentication program and method for operating thereof
KR102213665B1 (ko) 2014-08-01 2021-02-09 삼성전자주식회사 인증 프로그램을 갖는 메모리 카드, 그것을 포함하는 스토리지 시스템, 및 그것의 동작 방법
KR102456490B1 (ko) 2016-01-12 2022-10-20 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US10243990B1 (en) 2016-09-23 2019-03-26 Apple Inc. Systems and methods for detecting replay attacks on security space
CN111066007B (zh) 2017-07-07 2023-10-31 美光科技公司 对受到管理的nand的rpmb改进
US10452384B2 (en) 2018-02-05 2019-10-22 Microsoft Technology Licensing, Llc Device health tickets
US11088845B2 (en) 2018-07-03 2021-08-10 Western Digital Technologies, Inc. Non-volatile memory with replay protected memory block having dual key
US20200210584A1 (en) * 2018-12-31 2020-07-02 Shape Security, Inc. Deterministic Reproduction of Client/Server Computer State or Output Sent to One or More Client Computers
CN111627485A (zh) * 2019-02-27 2020-09-04 恩智浦美国有限公司 一次可读存储器及其运行方法
CN113557500A (zh) * 2019-04-19 2021-10-26 英特尔公司 多模式受保护存储器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same
KR20200089165A (ko) 2019-01-16 2020-07-24 주식회사 엘지화학 충전 시간을 단축시킨 이차전지의 충전 방법

Also Published As

Publication number Publication date
US20230342044A1 (en) 2023-10-26
CN113946523A (zh) 2022-01-18
US11714561B2 (en) 2023-08-01
US20220019356A1 (en) 2022-01-20

Similar Documents

Publication Publication Date Title
US11088845B2 (en) Non-volatile memory with replay protected memory block having dual key
DE102021117264A1 (de) System, Vorrichtung und Verfahren zum Schreiben von Daten in einen geschützten Bereich
DE102018105529B4 (de) Managementschema zur Vermeidung einer Lösch- und Programmierstörung von Subblöcken im nichtflüchtigen Datenspeicher
DE112018000181T5 (de) System und verfahren für die schnelle ausführung von kapselinternen befehlen
DE102018114266A1 (de) Nichtflüchtige speichervorrichtung mit sicherem lesen
DE112016004148T5 (de) Systeme und Verfahren zur Befehlsautorisierung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
US10255200B2 (en) Data storage device and method of operation using multiple security protocols
DE102021107269A1 (de) Dynamische ressourcenverwaltung in schaltungsgebundener array-architektur
US20220102224A1 (en) Test method of storage device implemented in multi-chip package (mcp) and method of manufacturing an mcp including the test method
DE102016204283A1 (de) Datenspeichervorrichtungen, Datenverarbeitungssysteme, die diese aufweisen, Verfahren zum Betreiben und Verfahren zum Herstellen derselben.
DE112015004531T5 (de) Latch-Initialisierung für eine Datenspeichervorrichtung
US11593031B2 (en) Operating method of host device and storage device using credit
DE102017120971A1 (de) Pipelineverzögerungsdetektion während des Decodierens durch eine Datenspeichereinrichtung
US20230148195A1 (en) Storage device and host for the same
DE102022127769A1 (de) Authentifiziertes lesen von speichersystemdaten
CN116264773A (zh) 存储器装置和操作存储器装置的方法
DE112018002501T5 (de) Speichersystem und verfahren zum ausführen dateibasierter firmwarebefehle und erfassen von antwortdaten
DE102021127472A1 (de) Speichercontroller mit einer Datenvorabrufsteuerfunktion, Betriebsverfahren des Speichercontrollers und Betriebsverfahren einer Speicherungsvorrichtung
US11355199B2 (en) Method and apparatus to mitigate hot electron read disturbs in 3D NAND devices
DE102021122982A1 (de) System, Vorrichtung und Verfahren zum Schreiben von Daten in einen geschützten Bereich
KR20220010408A (ko) 보호 영역에 데이터를 기입하기 위한 시스템, 장치 및 방법
CN110838334A (zh) 高速缓存缓冲器以及具有其的半导体存储器装置
EP3982244B1 (de) Speichersteuerung, speichersystem und betriebsverfahren dafür
US11934691B2 (en) Storage device for high speed link startup and storage system including the same

Legal Events

Date Code Title Description
R012 Request for examination validly filed