-
Querverweis auf verwandte Anmeldung
-
Diese Anmeldung beansprucht Priorität der
koreanischen Patentanmeldung 10-2018-0118497 nach 35 U.S.C. § 119, eingereicht am 4. Oktober 2018 beim koreanischen Patentamt, deren Offenbarung durch Verweise mit aufgenommen ist.
-
Hintergrund
-
Es kann erforderlich sein, geschützte Informationen bereitzustellen, die in einem Produkt sicher vor unberechtigtem Zugriff von außen geschützt werden sollen. Zum Beispiel kann ein Anfrager einer Komponente (oder eines Teils), das in einem Produkt enthalten ist, z. B. ein Hersteller des Produkts, die Komponente, in der seine eigenen geschützten Informationen eingefügt werden, von einem Lieferanten der Komponente erhalten, oder er kann seine eigenen geschützten Informationen in der Komponente während einer Herstellung des Produkts bereitstellen. Geschützte Informationen können relativ sicher in dem Produkt eingebunden werden, während die geschützten Informationen im Besitz des Anfragers der Komponente dem Lieferanten der Komponente zugänglich sein können und nicht auf einfache Weise entsprechend einer Umgebungsänderung, in der die Komponente verwendet wird, verändert werden können. Der Anfrager der Komponente kann seine eigenen geschützten Informationen auf einfache Weise verändern, wohingegen die geschützten Informationen möglicherweise nicht auf geeignete Weise vor unbefugtem Zugriff auf das Produkt aufgrund eines unsicheren Zugriffs auf eine Schnittstelle zur Bereitstellung der geschützten Informationen geschützt werden können.
-
Kurzfassung
-
Das erfinderische Konzept sieht eine Vorrichtung und ein Verfahren zur Bereitstellung von geschützten Informationen im Besitz eines Anfragers einer Halbleitervorrichtung auf einfache und sichere Art und Weise auf der Halbleitervorrichtung vor.
-
Gemäß einem Aspekt des erfinderischen Konzepts wird eine Halbleitervorrichtung zur Bereitstellung geschützter Informationen eines Anfragers geschaffen, welche einen Vorrichtungsschlüsselspeicher umfasst, der eingerichtet ist, einen Vorrichtungsschlüssel zu speichern, der von einem Lieferanten der Halbleitervorrichtung bereitgestellt wird, einen Hauptschlüsselgenerator umfasst, der eingerichtet ist, basierend auf dem Vorrichtungsschlüssel und Anfragerdaten, die von dem Anfrager bereitgestellt werden, einen Hauptschlüssel des Anfragers zu erzeugen, indem er einen ersten Vorgang, der mit dem Lieferanten geteilt wird, und einen zweiten Vorgang, der mit dem Anfrager geteilt wird, verwendet, und die Halbleitervorrichtung eine kryptografische Engine umfasst, die eingerichtet ist, einen kryptografischen Vorgang basierend auf dem Hauptschlüssel durchzuführen.
-
Gemäß einem anderen Aspekt des erfinderischen Konzepts wird ein Verfahren zum Betrieb einer Halbleitervorrichtung für die Bereitstellung von geschützten Informationen eines Anfragers geschaffen, wobei das Verfahren das Erhalten und Speichern eines Vorrichtungsschlüssels, Erhalten mindestens eines Anfragerbezeichners und eines verschlüsselten Hauptschlüssels des Anfragers, Erzeugen eines Verschlüsselungscodes basierend auf dem Vorrichtungsschlüssel und dem mindestens einen Anfragerbezeichner, Erzeugen eines Hauptschlüssels, indem der verschlüsselte Hauptschlüssel mit dem Verschlüsselungscode entschlüsselt wird, und Durchführen eines kryptografischen Vorgangs basierend auf dem Hauptschlüssel umfasst.
-
Gemäß einem anderen Aspekt des erfinderischen Konzepts wird ein Verfahren zur Bereitstellung geschützter Informationen eines Anfragers auf einer Halbleitervorrichtung geschaffen, wobei das Verfahren ein Bereitstellen eines Vorrichtungsschlüssels auf der Halbleitervorrichtung durch einen Lieferanten der Halbleitervorrichtung, Erzeugen eines Primärschlüssels durch den Lieferanten basierend auf dem Vorrichtungsschlüssel und einem von einem Primäranfrager zur Verfügung gestellten Primäranfragerbezeichner und Zurverfügungstellung des Primärschlüssels durch den Lieferanten für den Primäranfrager umfasst.
-
Gemäß einem anderen Aspekt des erfinderischen Konzepts wird ein Verfahren zur Bereitstellung geschützter Informationen eines Anfragers auf einer Halbleitervorrichtung geschaffen, wobei das Verfahren ein Zurverfügungstellen eines Anfragerbezeichners für einen Lieferanten der Halbleitervorrichtung oder einer Komponente, welche die Halbleitervorrichtung umfasst, Erhalten, von dem Lieferanten der Halbleitervorrichtung, eines Verschlüsselungscodes, der basierend auf dem Anfragerbezeichner und einem auf der Halbleitervorrichtung bereitgestellten Vorrichtungsschlüssel erzeugt wurde, Verschlüsseln eines Hauptschlüssels mit dem Verschlüsselungscode und Bereitstellen des Anfragerbezeichners und eines verschlüsselten Hauptschlüssels für die Halbleitervorrichtung umfasst.
-
Gemäß einem anderen Aspekt des erfinderischen Konzepts wird ein von einem Primäranfrager durchgeführtes Verfahren zur Bereitstellung geschützter Informationen eines Sekundäranfragers auf einer Halbleitervorrichtung geschaffen, wobei das Verfahren ein Zurverfügungstellen eines Primäranfragerbezeichners an einen Lieferanten der Halbleitervorrichtung oder einer Komponente, welche die Halbleitervorrichtung umfasst, Erhalten eines Primärschlüssel von dem Lieferanten, welcher basierend auf dem Primäranfragerbezeichner und einem auf der Halbleitervorrichtung bereitgestellten Vorrichtungsschlüssel erzeugt wurde, Erhalten eines Sekundäranfragerbezeichners von dem Sekundäranfrager, Erzeugen eines Verschlüsselungscodes basierend auf dem Primärschlüssel und dem Sekundäranfragerbezeichner, und ein Zurverfügungstellen des Verschlüsselungscodes an den Sekundäranfrager umfasst.
-
Gemäß einem anderen Aspekt des erfinderischen Konzepts wird eine Halbleitervorrichtung zur Bereitstellung geschützter Informationen eines Anfragers geschaffen, welche einen Vorrichtungsschlüsselspeicher umfasst, der eingerichtet ist, einen Vorrichtungsschlüssel zu speichern, der von einem Lieferanten der Halbleitervorrichtung bereitgestellt wird, einen Hauptschlüsselgenerator umfasst, der eingerichtet ist, basierend auf dem Vorrichtungsschlüssel und Anfragerdaten, die von dem Anfrager bereitgestellt werden, einen Hauptschlüssel des Anfragers zu erzeugen, einen Hauptschlüsselmanager umfasst, der eingerichtet ist, den Hauptschlüssel zu verschlüsseln und einen verschlüsselten Hauptschlüssel zu entschlüsseln, indem er einen Physically-Unclonale-Function (PUF)-Schlüssel verwendet, der basierend auf PUF-Bits erzeugt wird, und eine kryptografische Engine umfasst, die eingerichtet ist, einen kryptografischen Vorgang basierend auf einem von dem Hauptschlüsselmanager zur Verfügung gestellten entschlüsselten Hauptschlüssel durchzuführen.
-
Figurenliste
-
Ausführungsformen des erfinderischen Konzepts sind deutlicher aus der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen nachzuvollziehen, in welchen:
- 1 schematische Beispiele, in denen geschützte Informationen eines Chip-Anfragers auf einem Chip bereitgestellt sind, gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts zeigt;
- 2A bis 2C Beispiele, in denen geschützte Informationen auf dem Chip aus 1 bereitgestellt sind, gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts darstellen;
- 3 ein Blockschaltbild ist, das eine Halbleitervorrichtung gemäß einer Ausführungsform zeigt, gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts;
- 4 ein Blockschaltbild ist, das ein Beispiel eines Hauptschlüsselgenerators aus 3 gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts darstellt;
- 5 ein Schema ist, das sequenziell ein Verfahren zur Bereitstellung von geschützten Informationen auf einer Halbleitervorrichtung gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts zeigt;
- 6 ein Blockschaltbild ist, das eine Halbleitervorrichtung gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts darstellt;
- 7 ein Blockschaltbild ist, das ein Beispiel eines Hauptschlüsselgenerators aus 6 gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts darstellt;
- 8 ein Schema ist, das sequenziell ein Verfahren zur Bereitstellung von geschützten Informationen auf einer Halbleitervorrichtung gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts zeigt;
- 9 ein Blockschaltbild ist, das eine Halbleitervorrichtung gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts darstellt;
- 10 ein Schema ist, das sequenziell ein Verfahren zur Bereitstellung von geschützten Informationen auf einer Halbleitervorrichtung gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts zeigt;
- 11 Entitäten darstellt, die ein Verfahren zur Bereitstellung von geschützten Informationen gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts durchführen;
- 12 ein Blockschaltbild ist, das eine Halbleitervorrichtung gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts darstellt;
- 13 ein Blockschaltbild ist, das ein Beispiel eines Hauptschlüsselmanagers aus 12 gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts darstellt;
- 14 ein Flussdiagramm eines Verfahrens zur Bereitstellung von geschützten Informationen gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts ist;
- 15 ein Flussdiagramm eines Verfahrens zur Bereitstellung von geschützten Informationen gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts ist; und
- 16 ein Flussdiagramm eines Verfahrens zur Bereitstellung von geschützten Informationen gemäß einigen Ausführungsformen des vorliegenden erfinderischen Konzepts ist.
-
Detaillierte Beschreibung der Ausführungsformen
-
Es ist anzumerken, dass Aspekte des erfinderischen Konzepts, die unter Bezugnahme auf eine Ausführungsform beschrieben werden, in einer anderen Ausführungsform aufgenommen werden können, obwohl diese nicht spezifisch diesbezüglich beschrieben werden. Das heißt, alle Ausführungsformen und/oder Merkmale einer beliebigen Ausführungsform können auf beliebige Art und Weise und/oder in beliebiger Kombination kombiniert werden. Diese und andere Gegenstände und/oder Aspekte des vorliegenden erfinderischen Konzepts werden in der nachfolgenden Spezifikation im Detail erläutert. Wie hierin verwendet beinhalten die Begriffe „und/oder“ irgendeine und alle Kombinationen von einem oder mehreren der dazugehörigen aufgelisteten Elemente. Ausdrücke wie zum Beispiel „mindestens eines von“, wenn sie einer Liste von Elementen voranstehen, modifizieren die gesamte Liste von Elementen und modifizieren nicht die einzelnen Elemente der Liste.
-
Das erfinderische Konzept betrifft die Sicherheit und insbesondere eine Vorrichtung und ein Verfahren zur Bereitstellung von geschützten Informationen. Nachfolgend werden Ausführungsformen des erfinderischen Konzepts unter Bezugnahme auf die beigefügten Zeichnungen im Detail beschrieben.
-
1 zeigt schematisch Beispiele, in denen geschützte Informationen 5 eines Anfragers eines Chips 1 auf dem Chip 1 bereitgestellt sind. Wie in 1 gezeigt, kann der Chip 1 in einem Modul 2 aufgenommen sein und das Modul 2 kann in einem Produkt 3 enthalten sein. Der Chip 1, das Modul 2 und das Produkt 3 können jeweils von unterschiedlichen Herstellern hergestellt werden. Hersteller des Moduls 2 und des Produkts 3 können als Anfrager des Chip 1 bezeichnet werden. Insbesondere kann ein Hersteller des Moduls 2 als Anfrager, welcher den Chip 1 von einem Hersteller des Chip 1 erhält, als Primäranfrager bezeichnet werden, und ein Hersteller des Produkts 3 als Anfrager, der eine Komponente, welche den Chip 1 umfasst, d. h., das Modul 2, von dem Primäranfrager erhält, kann als Sekundäranfrager bezeichnet werden.
-
Der Chip 1 kann unter Verwendung eines Halbleiterprozesses hergestellt werden und geschützte Informationen 5 können darauf gespeichert sein. Zum Beispiel kann der Chip 1 eine nichtflüchtige Speichervorrichtung zum Speichern von geschützten Informationen enthalten. Nicht einschränkende Beispiele des Chips 1 können einen Electrically Erasable Programmable Read-Only Memory (EEPROM), einen Flash-Speicher, einen Phase Change Random Access Memory (PRAM), einen Resistance RAM (RRAM), einen Nano Floating Gate Memory (NFGM), einen polymer RAM (PoRAM), einen magnetischen RAM (MRAM), einen Ferroelectric RAM (FRAM) und ein Sicherungs-Array umfassen.
-
Das Modul 2 kann eine Komponente sein, die in dem Produkt 3 enthalten ist und kann den Chip 1 enthalten. Der Hersteller des Moduls 2 kann das Modul 2 produzieren, das eine bestimmte Funktion durchführt, indem er den Chip 1 und andere Materialien verwendet, und kann das Modul 2 an den Hersteller des Produkts 3 liefern. Zum Beispiel kann das Modul 2 eine Kommunikationsschnittstelle mit dem Produkt 3 basierend auf den geschützten Informationen 5, die in dem Chip 1 eingefügt wurden, vorsehen. Als nicht einschränkende Beispiele kann das Modul 2 mit einem mobilen Telekommunikationssystem wie beispielsweise einem Fifth-Generation (5G)-System verbunden sein, einem Long-Term-Evolution (LTE)-System, einem Code-Division-Multiple-Access (CDMA)-System, einem Global-System-for-Mobile-Communications (GSM)-System und/oder einem Kommunikationsnetzwerk wie beispielsweise einem Wide Area Network (WAN), einem Local Area Network (LAN) oder einem Wireless LAN (WLAN) und/oder dem Internet of Things (IoT).
-
Das Produkt 3 kann das Modul 2 als eine Komponente desselben enthalten und nützliche Funktionen vorsehen, die mit den geschützten Informationen 5 auf dem Chip 1 assoziiert sind. Nicht einschränkende Beispiele des Produkts 3 können eine unabhängige Rechenvorrichtung wie beispielsweise einen Personal Computer (PC), einen Netzwerkserver, einen Tablet-PC, einen E-Reader, einen Personal Digital Assistant (PDA), einen Portable Multimedia Player (PMP), ein Mobiltelefon, ein Smartphone und/oder eine Wearable-Vorrichtung und ein beliebiges Objekt umfassen, welches eine spezifische Funktion zur Verfügung stellt, wie beispielsweise ein Automobil, eine mechanische Vorrichtung, eine Produktionseinrichtung, eine Tür und/oder ein Licht.
-
Mit geschützten Informationen 5 können beliebige Informationen gemeint sein, die im Besitz des Herstellers des Moduls 2 oder des Produkts 3 sind und die gegenüber einem anderen als dem Besitzer der geschützten Informationen 5 vertraulich behandelt werden müssen. Zum Beispiel können die geschützten Informationen 5 Informationen enthalten, die für eine Authentifizierung des Moduls 2 verwendet werden, wie beispielsweise einen Bezeichner (ID) des Moduls 2, Herstellerinformationen des Moduls 2, ein Zertifikat, einen privaten Schlüssel, einen Pre-shared Key (PSK) usw. Ebenso können die geschützten Informationen 5 Informationen enthalten, die für eine Authentifizierung des Produkts 3 verwendet werden, wie beispielsweise einen Bezeichner (ID) des Produkts 3, Herstellerinformationen des Produkts 3, einen privaten Schlüssel, einen PSK usw. Schlüssel, die bei einem Anfrager des Chip 1 vorliegen, wie beispielsweise ein privater Schlüssel und ein PSK, können als Hauptschlüssel oder als Client-Hauptschlüssel bezeichnet werden. Als nicht einschränkende Beispiele kann ein Hauptschlüssel in den geschützten Informationen 5 für Vorgänge zur Authentifizierung des Moduls 2 und/oder des Produkts 3 verwendet werden, einschließlich Remote-Bedienung des Moduls 2 und/oder des Produkts 3, Softwareupgrades, usw. Wenn der Hersteller des Moduls 2 diese Vorgänge zur Verfügung stellt, können die geschützten Informationen 5, die bei dem Hersteller des Moduls 2 vorliegen, auf dem Chip 1 bereitgestellt werden. Wenn der Hersteller des Produkts 3 diese Vorgänge zur Verfügung stellt, können die geschützten Informationen 5, die bei dem Hersteller des Produkts 3 vorliegen, auf dem Chip 1 bereitgestellt werden. In der Spezifikation kann der Chip 1 als Halbleitervorrichtung bezeichnet werden und ein Hauptschlüssel wird hauptsächlich als Beispiel für die geschützten Informationen 5, welche auf der Halbleitervorrichtung bereitgestellt werden, beschrieben.
-
Wie durch eine Strichlinie in 1 gekennzeichnet, können die geschützten Informationen 5 während einer Herstellung des Chips 1 (P0), einer Herstellung des Moduls 2 (P1) und/oder einer Herstellung des Produkts 3 (P2) bereitgestellt werden. Wie unten unter Bezugnahme auf 2A bis 2C beschrieben wird, können verschiedene Probleme gemäß einem Verfahren zur Bereitstellung der geschützten Informationen 5 auftreten, aber eine Vorrichtung und ein Verfahren entsprechend beispielhafter Ausführungsformen, die hier beschrieben werden, können diese Probleme lösen und daher eine geschützte Bereitstellung der geschützten Informationen 5 auf dem Chip 1 erleichtern.
-
2A bis 2C stellen Beispiele dar, in denen die geschützten Informationen 5 auf dem Chip 1 aus 1 bereitgestellt werden. Genauer gesagt sind 2A bis 2C Beispiele, in denen Hauptschlüssel von Produktherstellern 22a, 22b und 22c jeweils als die geschützten Informationen 5 bereitgestellt werden. Die in 2A bis 2C gezeigten Beispiele werden nun unter Bezugnahme auf 1 im Detail beschrieben und Beschreibungen, die bereits oben unter Bezugnahme auf 1 gegeben wurden, können nachfolgend ausgelassen werden.
-
In 2A kann durch den Produkthersteller 22a ein Hauptschlüssel auf dem Chip 1 über das Modul 2, das in dem Produkt 3 enthalten ist, bereitgestellt sein. Zuerst kann ein Chiphersteller 20a den Chip 1 einem Modulhersteller 21a liefern (S21a). Auf dem Chip 1, der dem Modulhersteller 21a zur Verfügung gestellt wird, ist möglicherweise noch kein Hauptschlüssel bereitgestellt, aber er kann eine Schnittstelle für eine Bereitstellung des Hauptschlüssels umfassen. Der Modulhersteller 21a kann das Modul 2, das den Chip 1 umfasst, an den Produkthersteller 22a liefern (S22a). Auf dem in dem Modul 2 enthaltenen Chip 1 ist möglicherweise immer noch kein Hauptschlüssel bereitgestellt und das Modul 2 kann eine zusätzliche Schnittstelle umfassen, über die der Produkthersteller 22a fähig ist, auf die Schnittstelle zur Bereitstellung des Hauptschlüssels zuzugreifen. Der Produkthersteller 22a kann seinen eigenen Hauptschlüssel auf dem Chip über die Schnittstellen, die jeweils in dem Modul 2 und dem Chip 1 enthalten sind, bereitstellen (S23a).
-
Gemäß dem Beispiel aus 2A kann der Produkthersteller 22a seinen eigenen Hauptschlüssel direkt auf dem Chip 1 bereitstellen, ohne dass dieser nach außen durchsickert. Allerdings muss in diesem Fall der Produkthersteller 22a nicht nur zwangsläufig ein System zur Bereitstellung eines Hauptschlüssels haben, sondern kann auch einer Verminderung der Produktion des Produkts 3 aufgrund des Schritts zur Bereitstellung des Hauptschlüssels auf dem Chip 1 während einer Herstellung des Produkts 3 unterliegen. Wenn Schnittstellen zur Bereitstellung eines Hauptschlüssels für einen Bedienungskomfort des Produktherstellers 22a so konzipiert sind, dass sie einfach zu bedienen sind, kann ferner auch der Hauptschlüssel auf einfache Weise über die Schnittstellen durchsickern.
-
In 2B kann durch einen Modulhersteller 21b ein Hauptschlüssel auf dem Chip 1 bereitgestellt sein. Zuerst kann ein Chiphersteller 20b dem Modulhersteller 21b den Chip 1 liefern (S21b). Auf dem Chip 1, der dem Modulhersteller 21b zur Verfügung gestellt wird, ist möglicherweise noch kein Hauptschlüssel bereitgestellt, und er kann eine Schnittstelle für eine Bereitstellung des Hauptschlüssels enthalten. Der Produkthersteller 22b kann dem Modulhersteller 21b seinen eigenen Hauptschlüssel zur Verfügung stellen (S22b). Die Vorgänge S21b und S22b können in einer anderen Reihenfolge als der in 2B gezeigten durchgeführt werden. Der Modulhersteller 21b kann den Hauptschlüssel des Produktherstellers 22b auf dem Chip 1 über eine in dem Chip 1 enthaltene Schnittstelle bereitstellen (S23b). Dann kann der Modulhersteller 21b dem Produkthersteller 22b das Modul 2, welches den Chip 1 umfasst, liefern, auf dem der Hauptschlüssel bereitgestellt wurde (S24b).
-
Gemäß dem Beispiel aus 2B kann die Produktion des Produkts 3 gesteigert werden, da dem Produkthersteller 22b das Modul 2 geliefert wird, welches den Chip 1 umfasst, auf dem sein eigener Hauptschlüssel bereitgestellt ist. Da allerdings der Hauptschlüssel des Produktherstellers 22b unweigerlich extern zur Verfügung gestellt werden muss, kann es schwierig sein, zu verhindern, dass der Modulhersteller 21b mehr als die vorgegebene Anzahl an Modulen 2 herstellt, von denen jedes Modul 2 den Chip 1 umfasst, auf dem der Hauptschlüssel bereitgestellt ist, sowie ein Durchsickern lassen des Hauptschlüssels durch externe Dritte, wie beispielsweise dem Modulhersteller 21b zu verhindern. Ähnlich wie in dem Beispiel aus 2A kann es ferner einfach sein, den Hauptschlüssel über eine Schnittstelle zur Zurverfügungstellung des Hauptschlüssels, der in dem Chip 1 enthalten war, durchsickern zu lassen.
-
In den Beispielen aus 2A und 2B kann der Hauptschlüssel unweigerlich nach außen preisgegeben werden, wenn eine Entität, die einen Hauptschlüssel erzeugt, separat von einer Entität ist, die ein Modul 2 oder Produkt 3 produziert. Zum Beispiel in dem Beispiel aus 2A kann der Produkthersteller 22a einen Entwickler des Produkts 3 miteinschließen, der den Hauptschlüssel erzeugt, und einen Auftragshersteller desselben. Der Entwickler des Produkts 3 kann dem Auftragshersteller den Hauptschlüssel zur Bereitstellung des Hauptschlüssels zur Verfügung stellen und dementsprechend können die gleichen Probleme wie bezüglich des Beispiels aus 2 beschrieben von dem Auftragshersteller des Produkts 3 verursacht werden.
-
In 2C kann durch einen Chiphersteller 20c ein Hauptschlüssel auf dem Chip 1 bereitgestellt werden. Zuerst kann der Produkthersteller 22c dem Chiphersteller 20c seinen eigenen Hauptschlüssel zur Verfügung stellen (S21c). Wenn ein Modulhersteller 21c seinen eigenen Hauptschlüssel auf dem Chip 1 bereitzustellen wünscht, so kann, anders als in dem Beispiel aus 2C, der Modulhersteller 21c dem Chiphersteller 20c seinen eigenen Hauptschlüssel zur Verfügung stellen. Der Chiphersteller 20c kann den Hauptschlüssel auf dem Chip 1 bereitstellen (S22c). Der Hauptschlüssel kann während einer Herstellung des Chips 1 bereitgestellt werden und dementsprechend kann eine Schnittstelle zur Bereitstellung des Hauptschlüssels wie bezüglich der Beispiele aus 2A und 2B beschrieben, von dem Chip 1 entfernt werden und/oder während einer Herstellung von Chip 1 auf dem Chip 1 nicht umfasst sein. Der Chiphersteller 20c kann den Chip 1, auf dem der Hauptschlüssel bereitgestellt ist, an den Modulhersteller 21c liefern (S23c) und dann kann der Modulhersteller 21c das Modul 2, das den Chip 1 umfasst, an den Produkthersteller 22c liefern (S24c).
-
Laut dem Beispiel aus 2C kann eine Entfernung der Bereitstellungsschnittstelle von dem Chip 1 kein Durchsickern des Hauptschlüssels über den Chip 1 erleichtern. Da der Hauptschlüssel des Produktherstellers 22c allerdings zwangsläufig nach außen zur Verfügung gestellt werden muss, wie in dem Beispiel aus 2B, können damit assoziierte Probleme auftreten. Ferner kann der Chiphersteller 20c Chips unter Verwendung unterschiedlicher Verfahren gemäß verschiedener Produkthersteller herstellen. In diesem Fall kann die Produktivität oder Produktionsfähigkeit des Herstellers des Chips 1 beeinträchtigt werden, da es nicht möglich ist, einen Chip, auf dem ein Hauptschlüssel eines spezifischen Produktherstellers bereitgestellt wurde, an einen anderen Produkthersteller zu liefern.
-
Wie oben unter Bezugnahme auf 2A bis 2C beschrieben, ist es möglich, dass verschiedene Bedingungen erfüllt werden müssen, wenn der Hauptschlüssel bereitgestellt wird. Genauer gesagt kann es sein, dass der Hauptschlüssel sicher auf Chip 1 verwahrt werden muss, damit er nicht an einen Angreifer durchsickert, und es kann sein, dass der Hauptschlüssel auf Chip 1 bereitgestellt werden muss, ohne gegenüber einem Auftragshersteller des Produkts 3 oder des Moduls 2 preisgegeben zu werden. Ferner ist es möglich, dass ein Chiphersteller fähig sein muss, den bereits hergestellten Chip 1 ohne Einschränkung an einen Anfrager zu liefern, d. h., an einen Modulhersteller. Auf ähnliche Weise kann es auch erforderlich sein, dass der Modulhersteller fähig sein muss, das bereits hergestellte Modul 2 ohne Einschränkung an einen Produkthersteller zu liefern, unabhängig von dem Chip 1, der von dem Chiphersteller geliefert wird. Wie nachfolgend unter Bezugnahme auf die Figuren beschrieben, können Vorrichtungen und Verfahren gemäß beispielhaften Ausführungsformen die oben beschriebenen Bedingungen erfüllen. In den unten aufgeführten Zeichnungen kann eine Entität, wie beispielsweise ein Vorrichtungslieferant oder ein Anfrager auf ein Herstellungssystem, das von der Entität betrieben wird, oder ein Computersystem, wie beispielsweise einen PC, einen Server, usw. als Teil des Herstellungssystems zurückgreifen. Mindestens einige der Vorgänge, die von der Entität durchgeführt werden, können von dem Herstellungssystem und/oder dem Rechensystem durchgeführt werden.
-
3 ist ein Blockschaltbild, das eine Halbleitervorrichtung 300 gemäß beispielhaften Ausführungsformen darstellt. Genauer gesagt stellt 3 die Halbleitervorrichtung 300, die einem Chip 1 aus 1 entspricht, dar, und Entitäten, d. h., einen Vorrichtungslieferanten 30 und einen Primäranfrager 31 außerhalb der Halbleitervorrichtung 300. In 3 kann die Halbleitervorrichtung 300 einen Vorrichtungsschlüsselspeicher 310, einen Hauptschlüsselgenerator 320 und eine kryptografische Engine 330 umfassen. Jede der Komponenten, die in der Halbleitervorrichtung 300 umfasst sind, kann Hardware umfassen und kann als Logik bezeichnet werden. Jede Komponente kann Software oder eine Kombination aus Hardware und Software umfassen und kann als Verarbeitungseinheit oder Prozessor bezeichnet werden.
-
Der Vorrichtungsschlüsselspeicher 310 kann einen Vorrichtungsschlüssel K_DEV von dem Vorrichtungslieferanten 30 erhalten und den erhaltenen Vorrichtungsschlüssel K_DEV speichern. Der Vorrichtungsschlüsselspeicher 310 kann eine nichtflüchtige Speichervorrichtung umfassen. Gemäß einigen Ausführungsformen kann der Vorrichtungsschlüsselspeicher 310 eine One-Time-Programmable(OTP)-Speichervorrichtung, wie beispielsweise ein Sicherungs-Array, umfassen. Mit Vorrichtungslieferant 30 kann eine Entität gemeint sein, welche die Halbleitervorrichtung 300 herstellt und den Vorrichtungsschlüssel K_DEV während der Herstellung auf der Halbleitervorrichtung 300 bereitstellt. So kann die Halbleitervorrichtung 300, auf welcher der Vorrichtungsschlüssel K_DEV bereitgestellt ist, d. h., welche den Vorrichtungsschlüsselspeicher 310 umfasst, auf dem der Vorrichtungsschlüssel K_DEV gespeichert ist, hergestellt werden.
-
Der Hauptschlüsselgenerator 320 kann jeweils einen Vorrichtungsschlüssel K _DEV' und Anfragerdaten D_DEM von dem Vorrichtungsschlüsselspeicher 310 und dem Primäranfrager 31 erhalten und basierend auf dem Vorrichtungsschlüssel K_DEV' und den Anfragerdaten D_DEM einen Hauptschlüssel K_MAS' erzeugen. Der Primäranfrager 31 als Anfrager der Halbleitervorrichtung 300 kann sich auf eine Entität beziehen, welche die Halbleitervorrichtung 300 von dem Vorrichtungslieferanten 30 erhält und dem Modulhersteller 21a, 21b oder 21c, die in den 2A, 2B oder 2C gezeigt sind, entsprechen. Die Anfragerdaten D_DEM, die der Hauptschlüsselgenerator 320 von dem Primäranfrager 31 erhält, können Daten enthalten, die verarbeitet werden, wenn der Primäranfrager 31 mit dem Vorrichtungslieferanten 30 kommuniziert. Zum Beispiel kann der Primäranfrager 31, wie in 3 gezeigt, dem Vorrichtungslieferanten 30 eine Primäranfrager-ID ID1 als seine eigene ID zur Verfügung stellen. Der Vorrichtungslieferant 30 kann als Reaktion einen Primärschlüssel K_PRI basierend auf dem Vorrichtungsschlüssel K_DEV und der Primäranfrager-ID ID1 erzeugen und dem Primäranfrager 31 den Primärschlüssel K_PRI zur Verfügung stellen. Der Primäranfrager 31 kann Anfragerdaten D_DEM basierend auf dem Primärschlüssel K_PRI erzeugen und die Anfragerdaten D_DEM auf der Halbleitervorrichtung 300 zur Verfügung stellen. Ein Beispiel für eine Kommunikation zwischen dem Vorrichtungslieferanten 30 und dem Primäranfrager 31 wird nachfolgend im Detail unter Bezugnahme auf 5 beschrieben. Der Hauptschlüsselgenerator 320 kann den Hauptschlüssel K_MAS' als Reaktion auf eine Bereitstellung der Anfragerdaten D_DEM erzeugen. In einigen Ausführungsformen kann der Hauptschlüsselgenerator 320 einen Vorgang durchführen, bei dem der Hauptschlüssel K_MAS' einmalig erzeugt wird, um Verarbeitungszeit und Ressourcen durch den Primäranfrager 31 und/oder den Hauptschlüsselgenerator 320 zu sparen sowie um zu verhindern, dass der Erzeugungsvorgang des Hauptschlüssels K_MAS' zu einem Angreifer durchsickert. Sobald der Hauptschlüssel K_MAS' erzeugt wurde, kann er von der kryptografischen Engine 330 nach Bedarf verwendet werden. Zum Beispiel nach Erzeugen des Hauptschlüssels K_MAS' kann der Hauptschlüsselgenerator 320 durchgebrannt werden, um den Hauptschlüssel K_MAS' nicht erneut zu erzeugen. Ein Beispiel für den Hauptschlüsselgenerator 320 wird unten unter Bezugnahme auf 4 detaillierter beschrieben.
-
Die kryptografische Engine 330 kann kryptografische Vorgänge basierend auf dem Hauptschlüssel K_MAS' durchführen. Mit kryptografischer Engine 330 kann eine beliebige Hardware, Software oder eine Kombination dieser gemeint sein, die kryptografische Vorgänge durchführen, um erforderliche Vorgänge durchzuführen. Zum Beispiel kann die kryptografische Engine 330 Verschlüsselungs-/Entschlüsselungsvorgänge durchführen, indem sie den Hauptschlüssel K_MAS' verwendet, eine Authentifizierung des Dritten durchführen oder eine Authentifizierung der Halbleitervorrichtung 300 basierend auf dem Hauptschlüssel K_MAS' anfordern, und/oder Daten, die von außerhalb der Halbleitervorrichtung 300 erhalten wurden, basierend auf dem Hauptschlüssel K_MAS' verifizieren. In manchen Ausführungsformen kann die kryptografische Engine 330 direkt den Hauptschlüssel K_MAS' erhalten, der von dem Hauptschlüsselgenerator 320 erzeugt wurde. In einigen Ausführungsformen kann die kryptografische Engine 330 den Hauptschlüssel K_MAS' aus einem Hauptschlüsselspeicher auslesen, auf dem der Hauptschlüssel K MAS' gespeichert ist. In einigen Ausführungsformen kann, wie unten unter Bezugnahme auf 11 beschrieben wird, die kryptografische Engine 330 den Hauptschlüssel K_MAS' erhalten, indem sie den Hauptschlüssel K_MAS' von einer anderen Komponente der Halbleitervorrichtung 300 anfordert.
-
4 ist ein Blockschaltbild, das ein Beispiel eines Hauptschlüsselgenerators 320 aus 3 gemäß einer beispielhaften Ausführungsform darstellt. Wie oben unter Bezugnahme auf 3 beschrieben, kann der Hauptschlüsselgenerator 420 aus 4 einen Vorrichtungsschlüssel K_DEV' von dem Vorrichtungsschlüsselspeicher 310 und Anfragerdaten D_DEM von dem Primäranfrager 31 außerhalb der Halbleitervorrichtung 300 erhalten. In 4 kann der Hauptschlüsselgenerator 420 einen Schlüsselableiter 421 und einen Entschlüsselungsprozessor 422 umfassen, und die Anfragerdaten D_DEM können eine Primäranfrager-ID ID1 und einen verschlüsselten Hauptschlüssel K_MASPRI umfassen, der mit dem Primäranfrager assoziiert ist. Das Beispiel aus 4 wird nun unter Bezugnahme auf 3 detaillierter beschrieben.
-
Der Schlüsselableiter 421 kann den Vorrichtungsschlüssel K_DEV' und die Primäranfrager-ID ID1, die in den Anfragerdaten D DEM enthalten ist, erhalten, und einen Primärschlüssel K_PRI' basierend auf dem Vorrichtungsschlüssel K_DEV' und der Primäranfrager-ID ID1 erzeugen. Der Schlüsselableiter 421 kann den Primärschlüssel K_PRI' auf ähnliche Art und Weise erzeugen, wobei der Vorrichtungslieferant 30 aus 3 den Primärschlüssel K_PRI basierend auf dem Vorrichtungsschlüssel K_DEV und dem Primäranfragerbezeichner ID1 erzeugt. In einigen Ausführungsformen kann der Vorrichtungslieferant 30 den Primärschlüssel K_PRI erzeugen, indem er eine Schlüsselableitungsfunktion (KDF) verwendet. Zum Beispiel kann der Vorrichtungsschlüssel K_DEV mit der Primäranfrager-ID ID1 verkettet werden und ein Ergebnis der Verkettung kann in einer KDF eingegeben werden, um den Primärschlüssel K_PRI als Ausgabe der KDF zu erzeugen. Der Schlüsselableiter 421 kann die gleiche KDF verwenden wie jene, die von dem Vorrichtungslieferanten 30 verwendet wird, um den Primärschlüssel K_PRI' basierend auf dem Vorrichtungsschlüssel K_DEV' und der Primäranfrager-ID ID1 zu erzeugen. Dementsprechend können der Primärschlüssel K_PRI, der dem Primäranfrager 31 von dem Vorrichtungslieferanten 30 zur Verfügung gestellt wird, und der Primärschlüssel K_PRI', der durch den Schlüsselableiter 421 erzeugt wird, identisch sein.
-
Der Entschlüsselungsprozessor 422 kann den Primärschlüssel K_PRI' und den verschlüsselten Hauptschlüssel K_MASPRI , der in den Anfragerdaten D_DEM enthalten ist, erhalten, und einen Hauptschlüssel K_MAS' erzeugen, indem er den verschlüsselten Hauptschlüssel K_MASPRI mit dem Primärschlüssel K_PRI' entschlüsselt. Der Primäranfrager 31 aus 3 kann einen verschlüsselten Hauptschlüssel K_MASPRI erzeugen, indem er seinen Hauptschlüssel K_MAS mit dem Primärschlüssel K_PRI verschlüsselt, und den verschlüsselten Hauptschlüssel K_MASPRI auf der Halbleitervorrichtung 300 bereitstellen. Der Entschlüsselungsprozessor 422 kann den Hauptschlüssel K_MAS' erzeugen, indem er ein Entschlüsselungsverfahren verwendet, das einem ähnlichen oder zusätzlichen Verfahren entspricht, mit dem der Primäranfrager 31 den verschlüsselten Hauptschlüssel K_MASPRI erzeugt, d. h., das Verschlüsselungsverfahren, das von dem Primäranfrager 31 durchgeführt wird. Da der Hauptschlüssel K_PRI', der von dem Schlüsselableiter 421 erzeugt wird, der gleiche ist wie der Primärschlüssel K_PRI, der von dem Primäranfrager 51 verwendet wird, können der Hauptschlüssel K_MAS' und der Hauptschlüssel K_MAS des Primäranfragers 51 identisch sein.
-
5 ist ein Schema, das sequenziell ein Verfahren zur Bereitstellung von geschützten Informationen auf einer Halbleitervorrichtung 500 gemäß beispielhaften Ausführungsformen zeigt. Genauer gesagt stellt 5 ein Verfahren zur Bereitstellung eines Hauptschlüssels K_MAS eines Primäranfragers 51 als geschützte Informationen auf der Halbleitervorrichtung 500 dar, die der Halbleitervorrichtung 300 aus 3 entspricht. Nachfolgend wird angenommen, dass die Halbleitervorrichtung 500 aus 5 mindestens einige der Komponenten der Halbleitervorrichtung 300 aus 3 umfasst und das Verfahren aus 5 wird nun detaillierter unter Bezugnahme auf 3 und 4 beschrieben.
-
In 5 kann ein Vorrichtungslieferant 50 einen Vorrichtungsschlüssel K_DEV auf der Halbleitervorrichtung 500 bereitstellen (S51). In einigen Ausführungsformen kann der Vorrichtungslieferant 50 den Vorrichtungsschlüssel K_DEV auf der Halbleitervorrichtung 500 auf eine Art und Weise bereitstellen, die den anderen Entitäten nicht bekannt ist. Zum Beispiel kann der Vorrichtungslieferant 50 den Vorrichtungsschlüssel K_DEV auf einem Masken-ROM einprogrammieren, welcher dem Vorrichtungsschlüsselspeicher 310 aus 3 entspricht. Der Masken-ROM kann konstruiert sein, nicht von außerhalb der Halbleitervorrichtung 500 zugänglich zu sein. Der Vorrichtungsschlüssel K_DEV kann von dem Vorrichtungslieferanten 50 erzeugt und verwaltet werden und kann insbesondere unabhängig von einem Anfrager der Halbleitervorrichtung 500, z. B. einem Primäranfrager 51 erzeugt werden. Daher kann der Vorrichtungslieferant 50 die Halbleitervorrichtung 500 ohne Einschränkung hinsichtlich Anfragern der Halbleitervorrichtung 500 herstellen und daher kann die Produktivität der Halbleitervorrichtung 500 verbessert werden.
-
Der Primäranfrager 51 kann dem Vorrichtungslieferanten 50 eine Primäranfrager-ID ID1 zur Verfügung stellen (S52). Mit Primäranfrager-ID ID1 kann eine eindeutige Information gemeint sein, die verwendet wird, um den Primäranfrager 51 zu identifizieren. Zum Beispiel kann der Primäranfrager 51 die Primäranfrager-ID ID1 gemäß einem Format erzeugen, das von dem Vorrichtungslieferanten 50 zur Verfügung gestellt wird. Die Primäranfrager-ID ID1 kann dem Vorrichtungslieferanten 50 von dem Primäranfrager 51 auf verschiedene Art und Weise zur Verfügung gestellt werden. Zum Beispiel kann die Primäranfrager-ID ID1 über ein Netzwerk von einem Server, der von dem Primäranfrager 51 betrieben wird, auf einen Server, der von dem Vorrichtungslieferanten 50 betrieben wird, übertragen werden. Wie unten beschrieben wird, kann die Primäranfrager-ID ID1 unabhängig von einem Hauptschlüssel K_MAS des Primäranfragers 51 sein und kann die Sicherheit des Hauptschlüssels K_MAS selbst dann nicht beeinträchtigen, wenn die Primäranfrager-ID ID1 dem Vorrichtungslieferanten 50 bekannt ist.
-
Der Vorrichtungslieferant 50 kann einen Primärschlüssel K_PRI erzeugen (S53). Der Vorrichtungslieferant 50 kann den Primärschlüssel K_PRI basierend auf dem Vorrichtungsschlüssel K_DEV, der auf der Halbleitervorrichtung 500 bereitgestellt ist, und der Primäranfrager-ID ID1, die von dem Primäranfrager 51 zur Verfügung gestellt wird, erzeugen. Wie oben unter Bezugnahme auf 4 beschrieben, kann in einigen Ausführungsformen der Vorrichtungslieferant 50 den Primärschlüssel K_PRI unter Verwendung einer KDF erzeugen, welche die gleiche wie eine KDF oder dieser ähnlich sein kann, die verwendet wird, wenn die Halbleitervorrichtung 500 einen Primärschlüssel K_PRI' in Vorgang S57 erzeugt.
-
Der Vorrichtungslieferant 50 kann den Primärschlüssel K_PRI dem Primäranfrager 51 zur Verfügung stellen und diesem die Halbleitervorrichtung 500 liefern (S54). In einigen Ausführungsformen kann, nachdem der Vorrichtungsschlüssel K_DEV auf der Halbleitervorrichtung 500 in Vorgang S51 bereitgestellt wurde, die Halbleitervorrichtung 500 an den Primäranfrager 51 zu einem Zeitpunkt vor Bereitstellung der Anfragerdaten D_DEM in Vorgang S56 geliefert werden. Der Primäranfrager 51 kann die Halbleitervorrichtung 500, auf welcher der Vorrichtungsschlüssel K_DEV bereitgestellt ist, von dem Vorrichtungslieferanten 50 erhalten.
-
Der Primäranfrager 51 kann einen verschlüsselten Hauptschlüssel K_MASPRI erzeugen, indem er den Primärschlüssel K_PRI verwendet (S55). Als nicht einschränkende Beispiele kann der Primäranfrager 51 den Hauptschlüssel K_MAS mit dem Primärschlüssel K_PRI als Verschlüsselungscode verschlüsseln, indem er eine beliebige Verschlüsselungstechnik wie beispielsweise eine Verschlüsselung mit symmetrischen Schlüsseln, eine Verschlüsselung mit asymmetrischen Schlüsseln, usw. verwendet. Ein Schlüssel bzw. Code, der verwendet wird, um den bereitzustellenden Hauptschlüssel K_MAS zu verschlüsseln, kann als Verschlüsselungscode bezeichnet werden. In einigen Ausführungsformen kann der Verschlüsselungscode der Primärschlüssel K_PRI wie in dem Beispiel aus 5 sein oder ein Sekundärschlüssel K_SEC, wie nachfolgend unter Bezugnahme auf 6 beschrieben wird.
-
Der Primäranfrager 51 kann Anfragerdaten D_DEM auf der Halbleitervorrichtung 500 bereitstellen (S56). Wie oben unter Bezugnahme auf 4 beschrieben, können die Anfragerdaten D_DEM die Primäranfrager-ID ID1 und den verschlüsselten Hauptschlüssel K_MASPRI umfassen. Selbst wenn eine Bereitstellung der Anfragerdaten D_DEM von einem Auftragshersteller des Primäranfragers 51 durchgeführt wird, z. B. einem Auftragshersteller einer Komponente, wenn der Primäranfrager 51 ein Hersteller der Komponente ist, welche die Halbleitervorrichtung 500 umfasst, kann der Hauptschlüssel K_MAS vor einem Durchsickern aufgrund des verschlüsselten Hauptschlüssels K_MASPRI geschützt werden.
-
Die Halbleitervorrichtung 500 kann einen Vorgang durchführen, bei dem der Primärschlüssel K_PRI' erzeugt wird (S57). Zum Beispiel kann der Schlüsselableiter 421 aus 4 den Primärschlüssel K_PRI' basierend auf einem Vorrichtungsschlüssel K_DEV' und der Primäranfrager-ID ID1, die in den Anfragerdaten D DEM enthalten ist, erzeugen. Der Schlüsselableiter 421 kann den Primärschlüssel K_PRI' dort erzeugen, wo der Vorrichtungslieferant 50 den Primärschlüssel K_PRI in Vorgang S53 erzeugt, z. B. über die gleiche KDF wie jene, die von dem Vorrichtungslieferanten 50 verwendet wird. Dementsprechend können beide Primärschlüssel K_PRI und K_PRI' identisch oder einander ähnlich sein.
-
Die Halbleitervorrichtung 500 kann einen Vorgang durchführen, bei dem ein Hauptschlüssel K_MAS' erzeugt wird (S58). Zum Beispiel kann der Entschlüsselungsprozessor 422 aus 4 den Hauptschlüssel K_MAS' erzeugen, indem er den verschlüsselten Hauptschlüssel K_MASPRI , welcher in den Anfragerdaten D_DEM enthalten ist, mit dem Primärschlüssel K_PRI' entschlüsselt. Der Entschlüsselungsprozessor 422 kann den Hauptschlüssel K_MAS' erzeugen, indem er ein Entschlüsselungsverfahren verwendet, das dem Verfahren entspricht, mit dem der Primäranfrager 51 den Hauptschlüssel K_MAS in Vorgang S55 verschlüsselt. Da die zwei Primärschlüssel K_PRI und K_PRI' identisch sind, können auch die beiden Hauptschlüssel K_MAS und K_MAS' miteinander übereinstimmen. Folglich kann der Hauptschlüssel K_MAS des Primäranfragers 51 sicher auf der Halbleitervorrichtung 500 bereitgestellt werden, ohne dem Vorrichtungslieferanten 50 und/oder einem möglichen Auftragshersteller der Komponente offenbart zu werden und kann vollständig innerhalb der Halbleitervorrichtung 500 wiederhergestellt werden.
-
6 ist ein Blockschaltbild, das eine Halbleitervorrichtung 600 gemäß beispielhaften Ausführungsformen darstellt. Genauer gesagt stellt 6 die Halbleitervorrichtung 600 dar, welche dem Chip 1, der unter Bezugnahme auf 1 beschrieben wurde, entspricht. Anders als die Halbleitervorrichtung 300 aus 3 kann die Halbleitervorrichtung 600 aus 6 Anfragerdaten D_DEM von einem Sekundäranfrager 62 erhalten. Ähnlich wie die Halbleitervorrichtung 300 aus 3, kann die Halbleitervorrichtung 600 einen Vorrichtungsschlüsselspeicher 610, einen Hauptschlüsselgenerator 620 und eine kryptografische Engine 630 umfassen. Beschreibungen die bereits oben unter Bezugnahme auf 3 gegeben wurden, können nachfolgend ausgelassen werden.
-
Wenn die Halbleitervorrichtung 600 dem Sekundäranfrager 62 über den Primäranfrager 61 geliefert wird, kann der Sekundäranfrager 62 die Anfragerdaten D_DEM auf der Halbleitervorrichtung 600 bereitstellen. Mit Sekundäranfrager 62 kann eine Entität gemeint sein (z. B. der Produkthersteller 22a aus 2A), die mit einer Komponente durch den Primäranfrager 61 beliefert wird, der die Halbleitervorrichtung 600 von dem Vorrichtungslieferanten 60 erhält, die Halbleitervorrichtung 600 bearbeitet und eine Komponente herstellt (z. B. das Modul 2 aus 1), welches die Halbleitervorrichtung 600 umfasst. Der Vorrichtungslieferant 60 muss möglicherweise fähig sein, die Halbleitervorrichtung 600 ohne Einschränkung an den Primäranfrager 61 zu liefern. Ebenso muss der Primäranfrager 61 möglicherweise ebenfalls fähig sein, eine Komponente, welche die Halbleitervorrichtung 600 umfasst, ohne Einschränkung an den Sekundäranfrager 62 zu liefern. Um dies zu erreichen, kann der Primäranfrager 61 den Sekundärschlüssel K_SEC basierend auf dem Primärschlüssel K_PRI, welcher von dem Vorrichtungslieferanten 60 zur Verfügung gestellt wurde, und einer Sekundäranfrager-ID ID2, die von dem Sekundäranfrager 62 zur Verfügung gestellt wurde, erzeugen. Der Primäranfrager kann den Sekundärschlüssel K_SEC dem Sekundäranfrager 62 zusammen mit seiner eigenen Primäranfrager-ID ID1 zur Verfügung stellen. Ähnlich wie der unter Bezugnahme auf 3 beschriebene Primäranfrager 31 kann der Sekundäranfrager 62 Anfragerdaten D_DEM basierend auf dem Sekundärschlüssel K_SEC erzeugen und die Anfragerdaten D_DEM auf der Halbleitervorrichtung 600 bereitstellen. Der Sekundärschlüssel K_SEC des Primäranfragers 61 kann die gleichen oder ähnliche Funktionen wie der Primärschlüssel K_PRI durchführen, der dem Primäranfrager 31 aus 3 von dem Vorrichtungslieferanten 30 zur Verfügung gestellt wurde, und dementsprechend kann eine Bereitstellung von geschützten Informationen in vertikaler Richtung erweitert werden. Ein Beispiel für eine Kommunikation zwischen dem Primär- und dem Sekundäranfrager 61 und 62 wird nachfolgend im Detail unter Bezugnahme auf 8 beschrieben.
-
Der Vorrichtungsschlüsselspeicher 610 kann einen Vorrichtungsschlüssel K_DEV speichern, der von dem Vorrichtungslieferanten 60 bereitgestellt wird, und dem Hauptschlüsselgenerator 620 einen gespeicherten Vorrichtungsschlüssel K_DEV' zur Verfügung stellen. Der Hauptschlüsselgenerator 620 kann als Reaktion auf eine Bereitstellung der Anfragerdaten D_DEM einen Hauptschlüssel K_MAS' basierend auf dem Vorrichtungsschlüssel K_DEV' und den Anfragerdaten D_DEM erzeugen. Anders als der unter Bezugnahme auf 3 beschriebene Hauptschlüsselgenerator 320 kann der Hauptschlüsselgenerator 620 aus 6 den Sekundärschlüssel K_SEC' erzeugen, nachdem der Primärschlüssel K_PRI' erzeugt wurde. Ein Beispiel für den Hauptschlüsselgenerator 620 wird nachfolgend unter Bezugnahme auf 7 detaillierter beschrieben. Die kryptografische Engine 630 kann kryptografische Vorgänge basierend auf dem Hauptschlüssel K MAS' durchführen.
-
7 ist ein Blockschaltbild, das ein Beispiel eines unter Bezugnahme auf 6 beschriebenen Hauptschlüsselgenerators 620 gemäß einigen beispielhaften Ausführungsformen darstellt. Wie oben unter Bezugnahme auf 6 beschrieben, kann ein Hauptschlüsselgenerator 720 aus 7 den Vorrichtungsschlüssel K_DEV' von dem Vorrichtungsschlüsselspeicher 610 und die Anfragerdaten D_DEM von dem Sekundäranfrager 62 außerhalb der Halbleitervorrichtung 600 erhalten. In 7 kann der Hauptschlüsselgenerator 720 einen Schlüsselableiter 721 und einen Entschlüsselungsprozessor 722 umfassen, und die Anfragerdaten D_DEM können eine Primäranfrager-ID ID1, eine Sekundäranfrager-ID ID2 und einen verschlüsselten Hauptschlüssel K_MASSEC umfassen. Das Beispiel aus 7 wird nun in mehr Detail unter Bezugnahme auf 6 beschrieben und Beschreibungen, die bereits oben unter Bezugnahme auf 4 gegeben wurden, werden hier ausgelassen.
-
Der Schlüsselableiter 721 kann einen Sekundärschlüssel K SEC' basierend auf dem Vorrichtungsschlüssel K_DEV' und der Primäranfrager-ID ID1 und der Sekundäranfrager-ID ID2 erzeugen, die in den Anfragerdaten D DEM umfasst ist. Genauer gesagt kann der Schlüsselableiter 721 einen Primärschlüssel K_PRI' auf die gleiche oder ähnliche Art und Weise erzeugen, auf welche der Vorrichtungslieferant 60 aus 6 den Primärschlüssel K_PRI basierend auf dem Vorrichtungsschlüssel K_DEV und der Primäranfrager-ID ID1 erzeugt. Dann kann der Schlüsselableiter 721 den Sekundärschlüssel K_SEC' auf die gleiche oder ähnliche Art und Weise erzeugen, wie der Primäranfrager 61 aus 6 den Sekundärschlüssel K_SEC basierend auf dem Primärschlüssel K_PRI und der Sekundäranfrager-ID ID2 erzeugt. In einigen Ausführungsformen kann das Verfahren, mit dem der Vorrichtungslieferant 60 den Primärschlüssel K_PRI erzeugt, das gleiche oder ein ähnliches sein wie das Verfahren, mit dem der Primäranfrager 61 den Sekundärschlüssel K_SEC erzeugt. Zum Beispiel können der Primärschlüssel K_PRI und der Sekundärschlüssel K_SEC unter Verwendung der gleichen KDF erzeugt werden. In diesem Fall kann der Schlüsselableiter 721 den Sekundärschlüssel K_SEC' erzeugen, indem er einen Vorgang zur Erzeugung von Schlüsseln über eine KDF zwei Mal wiederholt. Folglich kann der Sekundärschlüssel K_SEC, welcher dem Sekundäranfrager 62 von dem Primäranfrager 61 zur Verfügung gestellt wird, dem Sekundärschlüssel K_SEC', der von dem Schlüsselableiter 721 erzeugt wurde, identisch oder diesem ähnlich sein.
-
Der Entschlüsselungsprozessor 722 kann den Sekundärschlüssel K_SEC' und den verschlüsselten Hauptschlüssel K_MASSEC, der in den Anfragerdaten D DEM enthalten ist, erhalten und einen Hauptschlüssel K_MAS' erzeugen, indem er den verschlüsselten Hauptschlüssel K_MASSEC mit dem Sekundärschlüssel K_SEC' entschlüsselt. Der Sekundäranfrager 62 aus 6 kann einen verschlüsselten Hauptschlüssel K_MASSEC erzeugen, indem er seinen eigenen Hauptschlüssel K_MAS mit dem Sekundärschlüssel K_SEC, der von dem Primäranfrager 61 zur Verfügung gestellt wird, verschlüsselt, und den verschlüsselten Hauptschlüssel K_MASSEC auf der Halbleitervorrichtung 600 bereitstellen. Der Entschlüsselungsprozessor 722 kann den Hauptschlüssel K_MAS' erzeugen, indem er ein Entschlüsselungsverfahren verwendet, das gleich einem Verfahren oder diesem ähnlich ist, mit dem der Primäranfrager 62 den verschlüsselten Hauptschlüssel K_MASSEC erzeugt, d. h., dem Verschlüsselungsverfahren, das von dem Sekundäranfrager 62 durchgeführt wird. Da der Sekundärschlüssel K_SEC', der von dem Schlüsselableiter 721 erzeugt wird, und der Sekundärschlüssel K_SEC, der von dem Sekundäranfrager 62 verwendet wird, identisch sind, können der Hauptschlüssel K_MAS' und der Hauptschlüssel K_MAS des Sekundäranfragers 62 identisch sein.
-
8 ist ein Schema, das sequenziell ein Verfahren zur Bereitstellung von geschützten Informationen auf einer Halbleitervorrichtung 800 gemäß beispielhaften Ausführungsformen zeigt. Genauer gesagt stellt 8 ein Verfahren zur Bereitstellung eines Hauptschlüssels K_MAS eines Sekundäranfragers 82 als geschützte Informationen auf der Halbleitervorrichtung 800 dar, die der Halbleitervorrichtung 600 aus 6 entspricht. Nachfolgend wird angenommen, dass die Halbleitervorrichtung 800 aus 8 mindestens einige der Komponenten der Halbleitervorrichtung 600 aus 6 umfasst. Das Verfahren aus 8 wird nun unter Bezugnahme auf 6 und 7 im Detail beschrieben und Beschreibungen, die bereits oben unter Bezugnahme auf 5 gegeben wurden, können hier ausgelassen werden.
-
In 8 kann ein Vorrichtungslieferant 80 einen Vorrichtungsschlüssel K_DEV auf der Halbleitervorrichtung 800 bereitstellen (S81). Der Primäranfrager 81 kann dem Vorrichtungslieferanten 80 eine Primäranfrager-ID ID1 zur Verfügung stellen (S82). Der Vorrichtungslieferant 80 kann einen Primärschlüssel K_PRI basierend auf dem Vorrichtungsschlüssel K_DEV und der Primäranfrager-ID ID1 erzeugen (S83). Der Vorrichtungslieferant 80 kann dem Primäranfrager 81 den Primärschlüssel K_PRI zur Verfügung stellen und die Halbleitervorrichtung 800, auf welcher der Vorrichtungsschlüssel K_DEV bereitgestellt ist, an den Primäranfrager 81 liefern (S84).
-
Der Sekundäranfrager 82 kann dem Primäranfrager 81 eine Sekundäranfrager-ID ID2 zur Verfügung stellen (S85). Mit Sekundäranfrager-ID ID2 kann eine eindeutige Information gemeint sein, die verwendet wird, um den Sekundäranfrager 82 zu identifizieren. Zum Beispiel kann der Sekundäranfrager 82 die Sekundäranfrager-ID ID2 gemäß einem Format erzeugen, das von dem Vorrichtungslieferanten 80 und/oder dem Primäranfrager 81 zur Verfügung gestellt wird. Ähnlich wie in dem Fall, in dem der Primäranfrager 81 dem Vorrichtungslieferanten 80 die Primäranfrager-ID ID1 zur Verfügung stellt, kann die Sekundäranfrager-ID ID2 von dem Sekundäranfrager 82 an den Primäranfrager 81 auf verschiedene Arten zur Verfügung gestellt werden. Zum Beispiel kann die Sekundäranfrager-ID ID2 über ein Netzwerk von einem Server, der von dem Sekundäranfrager 82 betrieben wird, auf einen Server, der von dem Primäranfrager 81 betrieben wird, übertragen werden. Wie unten beschrieben wird, kann die Sekundäranfrager-ID ID2 unabhängig von einem Hauptschlüssel K_MAS des Sekundäranfragers 82 sein und kann die Sicherheit des Hauptschlüssels K_MAS selbst dann nicht beeinträchtigen, wenn die Sekundäranfrager-ID ID2 dem Primäranfrager 81 bekannt ist.
-
Der Primäranfrager 81 kann einen Sekundärschlüssel K_SEC erzeugen (S86). Der Primäranfrager 81 kann den Sekundärschlüssel K_SEC basierend auf dem Primärschlüssel K_PRI, welcher von dem Vorrichtungslieferanten 80 zur Verfügung gestellt wurde, und der Sekundäranfrager-ID ID2, die von dem Sekundäranfrager 82 zur Verfügung gestellt wurde, erzeugen. Wie oben unter Bezugnahme auf 7 beschrieben, kann in einigen Ausführungsformen der Primäranfrager 81 den Sekundärschlüssel K_SEC unter Verwendung einer KDF erzeugen, welche die gleiche wie eine KDF oder dieser ähnlich sein kann, die verwendet wird, wenn die Halbleitervorrichtung 800 einen Sekundärschlüssel K_SEC' in Vorgang S91 erzeugt. Ferner können in einigen Ausführungsformen jeweils Schlüssel unter Verwendung der gleichen KDF in Vorgängen S83, S86, S90 und S91 erzeugt werden.
-
Der Primäranfrager 81 kann dem Sekundäranfrager 82 die Primäranfrager-ID ID1 und den Sekundärschlüssel K_SEC zur Verfügung stellen und diesem eine Komponente, welche die Halbleitervorrichtung 800 umfasst, liefern (S87). In einigen Ausführungsformen kann, nachdem dem Primäranfrager 81 in Vorgang 84 die Halbleitervorrichtung 800 geliefert wurde, die Komponente, welche die Halbleitervorrichtung 800 umfasst, dem Sekundäranfrager 82 zu einem Zeitpunkt vor Bereitstellung der Anfragerdaten D_DEM auf der Halbleitervorrichtung 800 in Vorgang S89 geliefert werden. Der Sekundäranfrager 82 kann die Halbleitervorrichtung 800, auf welcher der Vorrichtungsschlüssel K_DEV bereitgestellt ist, von dem Primäranfrager 81 erhalten. Wie unten beschrieben wird, kann der Sekundärschlüssel K_SEC, der von dem Primäranfrager 81 zur Verfügung gestellt wird, verwendet werden, um den Hauptschlüssel K_MAS bei dem Sekundäranfrager 82 und die Halbleitervorrichtungen 800 zu verschlüsseln, indem die gleiche oder eine ähnliche Funktion wie bei dem Primärschlüssel K_PRI, welcher von dem Vorrichtungslieferanten 50 aus 5 zur Verfügung gestellt wird, durchgeführt wird.
-
Der Sekundäranfrager 82 kann einen verschlüsselten Hauptschlüssel K_MASSEC erzeugen, indem er den Sekundärschlüssel K_SEC verwendet (S88). Der Sekundäranfrager 82 kann den Hauptschlüssel K_MAS mit dem Sekundärschlüssel K_SEC als Verschlüsselungscode verschlüsseln, indem er eine beliebige Verschlüsselungstechnik verwendet.
-
Der Sekundäranfrager 82 kann die Anfragerdaten D_DEM auf der Halbleitervorrichtung 800 bereitstellen (S89). Wie oben unter Bezugnahme auf 7 beschrieben, können die Anfragerdaten D_DEM die Primäranfrager-ID ID1, die Sekundäranfrager-ID ID2 und den verschlüsselten Hauptschlüssel K_MASSEC umfassen. Selbst wenn eine Bereitstellung der Anfragerdaten D_DEM von einem Auftragshersteller des Sekundäranfragers 82 durchgeführt wird, z. B. einem Auftragshersteller eines Produkts, wenn der Sekundäranfrager 82 ein Hersteller des Produkts ist, welches die Komponente umfasst, kann der Hauptschlüssel K_MAS aufgrund des verschlüsselten Hauptschlüssels K_MASSEC vor einem Durchsickern geschützt werden.
-
Die Halbleitervorrichtung 800 kann einen Vorgang durchführen, bei dem ein Primärschlüssel K_PRI' erzeugt wird (S90). Zum Beispiel kann der Schlüsselableiter 721 aus 7 den Primärschlüssel K_PRI' basierend auf einem Vorrichtungsschlüssel K_DEV' und der Primäranfrager-ID ID1, die in den Anfragerdaten D DEM enthalten ist, erzeugen, indem er ein Verfahren verwendet, mit dem der Vorrichtungslieferant 80 in Vorgang S83 den Primärschlüssel K_PRI erzeugt. Dementsprechend können beide Primärschlüssel K PRI und K_PRI' identisch sein.
-
Die Halbleitervorrichtung 800 kann einen Vorgang durchführen, bei dem der Sekundärschlüssel K_SEC' erzeugt wird (S91). Zum Beispiel kann der Schlüsselableiter 721 aus 7 den Sekundärschlüssel K_SEC' erzeugen, indem er das Verfahren verwenden, mit dem der Primäranfrager 81 in Vorgang S86 den Sekundärschlüssel K_SEC erzeugt. Dementsprechend können beide Sekundärschlüssel K_SEC und K_SEC' identisch sein.
-
Die Halbleitervorrichtung 800 kann einen Vorgang durchführen, bei dem ein Hauptschlüssel K_MAS' erzeugt wird (S92). Zum Beispiel kann der Entschlüsselungsprozessor 722 aus 7 den Hauptschlüssel K_MAS' erzeugen, indem er den verschlüsselten Hauptschlüssel K_MASSEC , welcher in den Anfragerdaten D_DEM enthalten ist, mit dem Sekundärschlüssel K_SEC' entschlüsselt. Der Entschlüsselungsprozessor 722 kann den Hauptschlüssel K_MAS' erzeugen, indem er ein Entschlüsselungsverfahren verwendet, das dem Verfahren entspricht, mit dem der Sekundäranfrager 82 den Hauptschlüssel K_MAS in Vorgang S88 verschlüsselt. Da die zwei Sekundärschlüssel K_SEC und K_SEC' identisch sind, können auch die beiden Hauptschlüssel K_MAS und K_MAS' miteinander übereinstimmen. Folglich kann der Hauptschlüssel K_MAS des Sekundäranfragers 82 sicher auf der Halbleitervorrichtung 800 bereitgestellt werden, ohne dem Vorrichtungslieferanten 80, dem Primäranfrager 81 und/oder einem möglichen Auftragshersteller des Produkts offenbart zu werden und kann vollständig innerhalb der Halbleitervorrichtung 800 wiederhergestellt werden.
-
9 ist ein Blockschaltbild, das eine Halbleitervorrichtung 900 gemäß beispielhaften Ausführungsformen darstellt. Genauer gesagt stellt 9 die Halbleitervorrichtung 900 dar, welche dem unter Bezugnahme auf 1 beschriebenen Chip 1 entspricht. Anders als die Halbleitervorrichtung 600 aus 6 kann die Halbleitervorrichtung 900 aus 9 jeweils Primäranfragerdaten D_DEM1 und Sekundäranfragerdaten D_DEM2 von einem Primäranfrager 91 und einem Sekundäranfrager 92 erhalten. Ähnlich wie die Halbleitervorrichtung 600 aus 6, kann die Halbleitervorrichtung 900 einen Vorrichtungsschlüsselspeicher 910, einen Hauptschlüsselgenerator 920 und eine kryptografische Engine 930 umfassen. Beschreibungen die bereits oben unter Bezugnahme auf 6 gegeben wurden, können nachfolgend ausgelassen werden.
-
Gemäß einigen Ausführungsformen kann der Primäranfrager 91 sowie der Sekundäranfrager 92 eine Komponente von Anfragerdaten auf der Halbleitervorrichtung 900 bereitstellen. Zum Beispiel kann der Primäranfrager 91, wie in 9 gezeigt, dem Vorrichtungslieferanten 90 eine Primäranfrager-ID ID1 zur Verfügung stellen und einen Primärschlüssel K_PRI daraus erhalten. Ferner kann der Primäranfrager 91 eine Sekundäranfrager-ID ID2 von dem Sekundäranfrager 92 erhalten und diesem einen Sekundärschlüssel K_SEC zur Verfügung stellen. Wie oben unter Bezugnahme auf 6 und 7 beschrieben, kann der Hauptschlüsselgenerator 920 der Halbleitervorrichtung 900 sowohl die Primäranfrager-ID ID1 als auch die Sekundäranfrager-ID ID2 erfordern, um einen Hauptschlüssel K_MAS' zu erzeugen. In der in 9 gezeigten beispielhaften Ausführungsform kann der Primäranfrager 91 die Primäranfragerdaten D_DEM1, welche die Primäranfrager-ID ID1 umfassen, auf der Halbleitervorrichtung 900 bereitstellen. Dementsprechend kann eine Komponente, welche die Halbleitervorrichtung 900 umfasst, auf der die Primäranfrager-ID ID1 bereitgestellt wurde, dem Sekundäranfrager 92 zur Verfügung gestellt werden, und der Sekundäranfrager 92 kann die Sekundäranfragerdaten D_DEM2, welche die Sekundäranfrager-ID ID2 umfassen, und einen verschlüsselten Hauptschlüssel K_MASSEC auf der Halbleitervorrichtung 900 bereitstellen.
-
10 ist ein Schema, das sequenziell ein Verfahren zur Bereitstellung von geschützten Informationen auf der Halbleitervorrichtung 900, welche unter Bezugnahme auf 9 beschrieben wird, gemäß beispielhaften Ausführungsformen zeigt. Genauer gesagt stellt 10 ein Verfahren zur Bereitstellung eines Hauptschlüssels K_MAS eines Sekundäranfragers 92 als geschützte Informationen auf der Halbleitervorrichtung 900 dar. Das Verfahren aus 10 wird nun unter Bezugnahme auf 9 im Detail beschrieben und Beschreibungen, die bereits oben unter Bezugnahme auf 8 gegeben wurden, können hier ausgelassen werden.
-
In 10 kann ein Vorrichtungslieferant 90 einen Vorrichtungsschlüssel K_DEV auf der Halbleitervorrichtung 900 bereitstellen (S101). Der Primäranfrager 91 kann dem Vorrichtungslieferanten 90 eine Primäranfrager-ID ID1 zur Verfügung stellen (S102). Der Vorrichtungslieferant 90 kann einen Primärschlüssel K_PRI basierend auf dem Vorrichtungsschlüssel K_DEV und der Primäranfrager-ID ID1 erzeugen (S103). Der Vorrichtungslieferant 90 kann dem Primäranfrager 91 den Primärschlüssel K_PRI zur Verfügung stellen und dem Primäranfrager 91 die Halbleitervorrichtung 900, auf welcher der Vorrichtungsschlüssel K_DEV bereitgestellt wurde, liefern (S104).
-
Der Primäranfrager 91 kann Primäranfragerdaten D_DEM1 auf der Halbleitervorrichtung 900 bereitstellen (S105). Die Primäranfragerdaten D_DEM1 können die Primäranfrager-ID ID1 umfassen, und die Primäranfrager-ID ID1 kann unabhängig von der Sekundäranfrager-ID ID2 und dem Hauptschlüssel K_MAS des Sekundäranfragers 92 sein. So kann, selbst wenn ein Bereitstellen der Primäranfragerdaten D_DEM1 von einem Auftragshersteller des Primäranfragers 91 durchgeführt wird, wie beispielsweise einem Auftragshersteller einer Komponente, welche die Halbleitervorrichtung 900 umfasst, dies nicht den Sekundäranfrager 92 einschränken oder die Sicherheit des Hauptschlüssels K_MAS des Sekundäranfragers 92 gefährden. In einigen Ausführungsformen können, nachdem dem Primäranfrager 91 in Vorgang S104 die Halbleitervorrichtung 900 geliefert wurde, die Primäranfragerdaten D_DEM1 auf der Halbleitervorrichtung 900 zu einem beliebigen Zeitpunkt vor Lieferung der Komponente, welche die Halbleitervorrichtung 900 umfasst, in Vorgang S109 an den Sekundäranfrager 92 bereitgestellt werden.
-
Die Halbleitervorrichtung 900 kann einen Vorgang durchführen, bei dem ein Primärschlüssel K_PRI' erzeugt wird (S106). Zum Beispiel kann die Halbleitervorrichtung 900 einen Schlüsselableiter umfassen, welcher dem Schlüsselableiter 721, der unter Bezugnahme auf 7 beschrieben wurde, ähnlich ist. Der Schlüsselableiter, der auf der Halbleitervorrichtung 900 umfasst ist, kann als Reaktion auf ein Bereitstellen der Primäranfragerdaten D_DEM1 den Primärschlüssel K_PRI' basierend auf der Primäranfrager-ID ID1, die in den Primäranfragerdaten D_DEM1 umfasst ist, erzeugen, indem er das Verfahren verwendet, mit dem der Vorrichtungslieferant 90 in Vorgang S103 den Primärschlüssel K_PRI erzeugt.
-
Der Sekundäranfrager 92 kann dem Primäranfrager 91 eine Sekundäranfrager-ID ID2 zur Verfügung stellen (S107). Dann kann der Primäranfrager 91 einen Sekundärschlüssel K_SEC basierend auf dem Primärschlüssel K_PRI und der Sekundäranfrager-ID ID2 erzeugen (S108).
-
Der Primäranfrager 91 kann dem Sekundäranfrager 92 den Sekundärschlüssel K_SEC zur Verfügung stellen und diesem die Komponente, welche die Halbleitervorrichtung 900 umfasst, liefern (S109). Da die Primäranfragerdaten D_DEM1, welche die Primäranfrager-ID ID1 umfassen, auf der Halbleitervorrichtung 900 in Vorgang S105 bereitgestellt wurden, stellt der Primäranfrager 91, anders als in Vorgang S87, der unter Bezugnahme auf 8 beschrieben wurde, die Primäranfrager-ID ID1 dem Sekundäranfrager 92 möglicherweise nicht in Vorgang S109 bereit. Nachdem die Primäranfragerdaten D_DEM1 auf der Halbleitervorrichtung 900 in Vorgang S105 bereitgestellt wurden, kann in einigen Ausführungsformen die Komponente, welche die Halbleitervorrichtung 900 umfasst, zu einer Zeit vor der Bereitstellung der Sekundäranfragerdaten D_DEM2 auf der Halbleitervorrichtung 900 in Vorgang S111 an den Sekundäranfrager 92 geliefert werden. Der Sekundäranfrager 92 kann von dem Primäranfrager 91 die Komponente erhalten, welche die Halbleitervorrichtung 900 umfasst, auf welcher der Vorrichtungsschlüssel K_DEV und die Primäranfrager-ID ID1 bereitgestellt wurden.
-
Der Sekundäranfrager 92 kann einen verschlüsselten Hauptschlüssel K_MASSEC erzeugen, indem er den Sekundärschlüssel K_SEC verwendet (S110). Danach kann der Sekundäranfrager 92 die Sekundäranfragerdaten D_DEM2 in Vorgang S111 auf der Halbleitervorrichtung 900 bereitstellen. Die Sekundäranfragerdaten D_DEM2 können die Sekundäranfrager-ID ID2 und den verschlüsselten Hauptschlüssel K_MASSEC enthalten.
-
Die Halbleitervorrichtung 900 kann einen Vorgang durchführen, bei dem ein Sekundärschlüssel K_SEC' erzeugt wird (S112). Wie oben beschrieben kann die Halbleitervorrichtung 900 einen Schlüsselableiter umfassen, welcher dem Schlüsselableiter 721 aus 7 ähnlich ist. Der in der Halbleitervorrichtung 900 umfasste Schlüsselableiter kann als Reaktion auf ein Bereitstellen der Sekundäranfragerdaten D_DEM2 den Sekundärschlüssel K_SEC' basierend auf dem Primärschlüssel K_PRI', der in Vorgang S106 erzeugt wurde, und der Sekundäranfrager-ID ID2, die in den Sekundäranfragerdaten D_DEM2 umfasst ist, erzeugen, indem er das Verfahren verwendet, mit dem der Primäranfrager 91 den Sekundärschlüssel K_SEC in Vorgang S108 erzeugt. Danach kann die Halbleitervorrichtung 900 einen Vorgang durchführen, bei dem ein Hauptschlüssel K_MAS' erzeugt wird, indem sie eine Entschlüsselung mit dem Sekundärschlüssel K_SEC' verwendet (S113).
-
11 stellt Entitäten dar, die ein Verfahren zur Bereitstellung von geschützten Informationen gemäß beispielhaften Ausführungsformen durchführen. Wie oben unter Bezugnahme auf die Figuren beschrieben, kann ein Hauptschlüssel eines Anfragers einer Halbleitervorrichtung, wie beispielsweise ein Primär- oder Sekundäranfrager, sicher auf der Halbleitervorrichtung bereitgestellt werden und vollständig auf der Halbleitervorrichtung wiederhergestellt werden. Wie unten unter Bezugnahme auf 11 detailliert beschrieben, erlauben eine Vorrichtung und ein Verfahren zur Bereitstellung von geschützten Informationen gemäß beispielhaften Ausführungsformen eine vertikale und horizontale Erweiterung von Entitäten. Die Entitäten werden nun in Bezug auf die Halbleitervorrichtung 600 aus 6 detailliert beschrieben.
-
Ein Vorrichtungslieferant 10 kann die Halbleitervorrichtung 600 ohne Einschränkung für erste bis n-te Primäranfrager 11_1 bis 11_n herstellen (wobei n eine positive ganze Zahl ist). Mit anderen Worten, der Vorrichtungslieferant 10 kann die Halbleitervorrichtung 600 herstellen, indem er einen Vorrichtungsschlüssel K_DEV unabhängig von dem ersten bis n-ten Primäranfrager 11_1 bis 11_n auf der Halbleitervorrichtung 600 bereitstellt. Zum Beispiel kann der Vorrichtungslieferant 10 einen ersten Primärschlüssel K_PRI1 basierend auf dem Vorrichtungsschlüssel K_DEV und einer ersten Primäranfrager-ID ID11, die von dem ersten Primäranfrager 11_1 zur Verfügung gestellt wurde, erzeugen, und dem ersten Primäranfrager 11_1 den ersten Primärschlüssel K_PRI1 zur Verfügung stellen. Ebenso kann der Vorrichtungslieferant 10 einen n-ten Primärschlüssel K_PRIn basierend auf dem Vorrichtungsschlüssel K_DEV und einer n-ten Primäranfrager-ID ID1n, die von dem n-ten Primäranfrager 11_n zur Verfügung gestellt wurde, erzeugen, und dem n-ten Primäranfrager 11_n den n-ten Primärschlüssel K_PRIn zur Verfügung stellen. Auf diese Weise kann der Vorrichtungslieferant 10 die ersten bis n-ten Primärschlüssel K_PRI1 bis K_PRIn unabhängig voneinander zur Verfügung stellen und dementsprechend die Halbleitervorrichtung 600 ohne Einschränkung hinsichtlich der ersten bis n-ten Primäranfrager 11_1 bis 11_n herstellen. Es versteht sich, dass, obwohl hier die Begriffe erster, zweiter, dritter usw. verwendet werden, um verschiedene Elemente zu beschreiben, Elemente nicht durch diese Begriffe beschränkt werden sollen; stattdessen werden diese Begriffe nur verwendet, um ein Element von einem anderen Element zu unterscheiden. Daher könnte ein erstes Element, das unten erläutert wird, als zweites Element bezeichnet werden, ohne von dem Umfang der vorliegenden erfinderischen Konzepte abzuweichen.
-
Ähnlich wie der Vorrichtungslieferant 10, kann jeder der ersten bis n-ten Primäranfrager 11_1 bis 11_n die Halbleitervorrichtung 600 von dem Vorrichtungslieferanten 10 erhalten und eine Komponente, welche die Halbleitervorrichtung 600 umfasst, ohne Einschränkung für Anfrager der Komponente herstellen, d. h. erste bis m-te Sekundäranfrager 12_1 bis 12_m (wobei m eine positive ganze Zahl ist). Mit anderen Worten, jeder der ersten bis n-ten Primäranfrager 11_1 bis 11_n kann die Halbleitervorrichtung 600 von dem Vorrichtungslieferanten 10 unabhängig von den ersten bis m-ten Sekundäranfragern 12_1 bis 12_m erhalten und Komponenten ohne Einschränkung an die ersten bis m-ten Sekundäranfrager 12_1 bis 12_m liefern. Zum Beispiel kann der zweite Primäranfrager 11_2 einen ersten Sekundärschlüssel K_SEC1 basierend auf dem zweiten Primärschlüssel K_PRI2 und einer ersten Sekundäranfrager-ID ID21 erzeugen, die jeweils von dem Vorrichtungslieferanten 10 und dem ersten Sekundäranfrager 12_1 erhalten wurden, und den ersten Sekundärschlüssel K_SEC1 dem ersten Sekundäranfrager 12_1 zur Verfügung stellen. Ferner kann der zweite Primäranfrager 11_2 einen zweiten Sekundärschlüssel K SEC2 basierend auf dem zweiten Primärschlüssel K PRI2 und einer zweiten Sekundäranfrager-ID ID22, welche von dem zweiten Sekundäranfrager 12_2 erhalten wurden, erzeugen, und den zweiten Sekundärschlüssel K_SEC2 dem zweiten Sekundäranfrager 12 2 zur Verfügung stellen. Zudem kann der zweite Primäranfrager 11_2 einen m-ten Sekundärschlüssel K_SECm basierend auf dem zweiten Primärschlüssel K_PRI2 und einer m-ten Sekundäranfrager-ID ID2m, die von dem m-ten Sekundäranfrager 12_m erhalten wurden, erzeugen, und den m-ten Sekundärschlüssel K_SECm dem m-ten Sekundäranfrager 12_m zur Verfügung stellen. Auf diese Weise können jeder der ersten bis n-ten Primäranfrager 11_1 bis 11_n die ersten bis m-ten Sekundärschlüssel K_SEC1 bis K_SECm unabhängig voneinander zur Verfügung stellen und dementsprechend die Komponente, welche die Halbleitervorrichtung 600 umfasst, ohne Einschränkung für die ersten bis m-ten Sekundäranfrager 12_1 bis 12_m herstellen. Obwohl 11 bis zu den Sekundäranfragern zeigt (z. B. erste bis m-ten Sekundäranfrager 12_1 bis 12_m), versteht es sich, dass zusätzliche Anfrager vorhanden sein können, einschließlich dritter Anfrager unter den ersten bis m-ten Sekundäranfragern 12_1 bis 12_m, und dass ein Anfrager eines höheren Levels fähig ist, mit einem Anfrager eines niedrigeren Levels zu kommunizieren, ähnlich wie die oben beschriebenen Primär- und Sekundäranfrager.
-
12 ist ein Blockschaltbild, das eine Halbleitervorrichtung 100 gemäß beispielhaften Ausführungsformen darstellt. Anders als die Halbleitervorrichtung 300, die unter Bezugnahme auf 3 beschrieben wurde, kann die Halbleitervorrichtung 100 aus 12 ferner zusätzliche Komponenten umfassen, um zu verhindern, dass ein Hauptschlüssel K _MAS', der von einem Hauptschlüsselgenerator 120 erzeugt wurde, aus der Halbleitervorrichtung 100 durchsickert oder dupliziert wird. In 12 kann die Halbleitervorrichtung 100 einen Vorrichtungsschlüsselspeicher 110, einen Hauptschlüsselgenerator 120, eine kryptografische Engine 130, einen Hauptschlüsselmanager 140, einen Physically-Unclonable-Function (PUF)-Schlüssel-Generator 150 und einen Hauptschlüsselspeicher 160 umfassen. Beschreibungen die bereits oben unter Bezugnahme auf 3 gegeben wurden, können hier ausgelassen werden.
-
Der Vorrichtungsschlüsselspeicher 110 kann einen Vorrichtungsschlüssel K_DEV, der von außerhalb der Halbleitervorrichtung 100 bereitgestellt wird, speichern, und einen gespeicherten Vorrichtungsschlüssel K_DEV' zur Speicherung erhalten. Der Hauptschlüsselgenerator 120 kann Anfragerdaten D_DEM von außerhalb der Halbleitervorrichtung 100 erhalten und den Hauptschlüssel K_MAS' basierend auf dem Vorrichtungsschlüssel K_DEV' und den Anfragerdaten D_DEM erzeugen.
-
Der PUF-Schlüssel-Generator 150 kann einen PUF-Schlüssel K PUF basierend auf PUF-Bits erzeugen. Eine PUF kann einen eindeutigen Wert, welcher Hardware entspricht, basierend auf inhärenten Merkmalen der Hardware, zur Verfügung stellen, und PUF-Bits können einen solchen eindeutigen Wert aufweisen. Beispielsweise können selbst dann, wenn eine Mehrzahl Halbleitervorrichtungen, welche die Halbleitervorrichtung 100 umfassen, unter Verwendung desselben Halbleiterprozesses hergestellt werden, zumindest teilweise Unterschiede während des Herstellungsprozesses auftreten und PUF-Bits können basierend auf den Unterschieden extrahiert werden. Der PUF-Schlüssel-Generator 150 kann einen PUF-Schlüssel K_PUF erzeugen, der von PUF-Bits abhängt. Der PUF-Schlüssel K_PUF ist möglicherweise nicht auf der Halbleitervorrichtung 100 gespeichert sondern wird von den PUF-Bits durch den PUF-Schlüssel-Generator 150 während einer Laufzeit erzeugt. Daher ist es möglich, zu verhindern, dass der PUF-Schlüssel K_PUF nach außen außerhalb der Halbleitervorrichtung 100 durchsickert oder kopiert wird. Wie unten beschrieben wird, kann ferner auch verhindert werden, dass der Hauptschlüssel K_MAS' außerhalb der Halbleitervorrichtung 100 durchsickert oder kopiert wird, da der Hauptschlüssel K_MAS' mit dem PUF-Schlüssel K_PUF zur Speicherung verschlüsselt wird. In einigen Ausführungsformen kann der PUF-Schlüssel-Generator 150 den PUF-Schlüssel K_PUF als Reaktion auf eine Anforderung von dem Hauptschlüsselmanager 140 erzeugen und dem Hauptschlüsselmanager 140 den PUF-Schlüssel K_PUF zur Verfügung stellen.
-
Der Hauptschlüsselmanager 140 kann einen verschlüsselten Hauptschlüssel K_MASPUF basierend auf dem Hauptschlüssel K_MAS', der von dem Hauptschlüsselgenerator 120 erhalten wurde, und dem PUF-Schlüssel K_PUF, der von dem PUF-Schlüssel-Generator 150 erhalten wurde, erzeugen, und den verschlüsselten Hauptschlüssel K_MASPUF an den Hauptschlüsselspeicher 160 zum Speichern zur Verfügung stellen. Ferner kann der Hauptschlüsselmanager 140 einen Hauptschlüssel K_MAS" basierend auf dem verschlüsselten Hauptschlüssel K_MASPUF , der auf dem Hauptschlüsselspeicher 160 gespeichert ist, und dem PUF-Schlüssel K_PUF, der von dem PUF-Schlüssel-Generator 150 erhalten wurde, erzeugen, und der kryptografischen Engine 130 den Hauptschlüssel K_MAS" zur Verfügung stellen. Der Hauptschlüsselspeicher 160 kann den verschlüsselten Hauptschlüssel K_MASPUF speichern. In einigen Ausführungsformen kann der Hauptschlüsselspeicher 160 eine nichtflüchtige Speichervorrichtung wie beispielsweise eine OTP-Speichervorrichtung umfassen. Beispiele für den Hauptschlüsselmanager 140 und den Hauptschlüsselspeicher 160 werden nachfolgend unter Bezugnahme auf 13 detailliert beschrieben.
-
In einigen Ausführungsformen kann mindestens eine Komponente, die sich auf den verschlüsselten Hauptschlüssel K_MASPUF bezieht, von den Komponenten der Halbleitervorrichtung 100 in einer geschützten Region SE enthalten sein, von der eine Schnittstelle, welche die Halbleitervorrichtung 100 mit Außen verbindet, entfernt wird, und auf die ein Zugriff von außerhalb der Halbleitervorrichtung 100 verboten ist. Zum Beispiel kann, wie in 12 gezeigt, die kryptografische Engine 130, der Hauptschlüsselmanager 140, der PUF-Schlüssel-Generator 150 und der Hauptschlüsselspeicher 160 in der geschützten Region SE enthalten sein.
-
13 ist ein Blockschaltbild, das ein Beispiel des Hauptschlüsselmanagers 140 aus 12 gemäß beispielhaften Ausführungsformen darstellt. Wie oben unter Bezugnahme auf 12 beschrieben, kann ein Hauptschlüsselmanager 140' aus 13 einen PUF-Schlüssel K_PUF und einen Hauptschlüssel K_MAS' erhalten, einen verschlüsselten Hauptschlüssel K_MASPUF einem Hauptschlüsselspeicher 160' zur Verfügung stellen oder von diesem erhalten, und der kryptografischen Engine 130, die unter Bezugnahme auf 12 beschrieben wird, einen Hauptschlüssel K_MAS" zur Verfügung stellen. In 13 kann der Hauptschlüsselmanager 140' einen Verschlüsselungsprozessor 141 und einen Entschlüsselungsprozessor 142 umfassen. Das Beispiel aus 13 wird nun detaillierter unter Bezugnahme auf 12 beschrieben.
-
Der Verschlüsselungsprozessor 141 kann den verschlüsselten Hauptschlüssel K_MASPUF erzeugen, indem er den Hauptschlüssel K_MAS' mit dem PUF-Schlüssel K_PUF verschlüsselt. Zum Beispiel kann der Verschlüsselungsprozessor 141 den PUF-Schlüssel-Generator 150 anfordern, um den PUF-Schlüssel K_PUF als Reaktion auf das Erhalten des Hauptschlüssels K_MAS' zu erzeugen, und den Hauptschlüssel K_MAS' zu verschlüsseln, indem er den PUF-Schlüssel K_PUF verwendet, den er von dem PUF-Schlüssel-Generator 150 erhalten hat. Der Verschlüsselungsprozessor 141 kann dann den verschlüsselten Hauptschlüssel K_MASPUF erzeugen, indem er eine Verschlüsselungstechnik verwendet. In einigen Ausführungsformen wird die von dem Verschlüsselungsprozessor 141 verwendete Verschlüsselungstechnik möglicherweise nicht mit Anfragern der Halbleitervorrichtung 100 geteilt. In einigen Ausführungsformen kann der Verschlüsselungsprozessor 141, ähnlich wie der Hauptschlüsselgenerator 320, der oben unter Bezugnahme auf 3 beschrieben wurde, einen Vorgang durchführen, bei dem ein verschlüsselter Hauptschlüssel K_MASPUF einmalig erzeugt wird, um Verarbeitungszeit und -ressourcen durch den Verschlüsselungsprozessor 141 zu sparen und um zu verhindern, dass der Erzeugungsvorgang des Hauptschlüssels K_MAS' an einen Angreifer durchsickert. Sobald er erzeugt wurde, kann der verschlüsselte Hauptschlüssel K_MASPUF gespeichert werden und nach Bedarf verwendet werden. Zum Beispiel kann der Verschlüsselungsprozessor 141, nachdem er den verschlüsselten Hauptschlüssel K_MASPUF erzeugt hat, deaktiviert (z. B. durchgebrannt) werden, damit dieser nicht erneut den verschlüsselten Hauptschlüssel K_MASPUF erzeugt. Der Verschlüsselungsprozessor 141 kann dem Hauptschlüsselspeicher 160' den verschlüsselten Hauptschlüssel K_MASPUF zum Speichern zur Verfügung stellen.
-
Der Entschlüsselungsprozessor 142 kann den Hauptschlüssel K_MAS" erzeugen, indem er den verschlüsselten Hauptschlüssel K_MASPUF mit dem PUF-Schlüssel K_PUF entschlüsselt. Zum Beispiel kann der Entschlüsselungsprozessor 142 den PUF-Schlüssel-Generator 150 auffordern, den PUF-Schlüssel K_PUF als Reaktion auf eine Anforderung von der kryptografischen Engine 130 aus 12 zu erzeugen und den verschlüsselten Hauptschlüssel K_MASPUF aus dem Hauptschlüsselspeicher 160' auslesen. Der Entschlüsselungsprozessor 142 kann dann den verschlüsselten Hauptschlüssel K_MASPUF mit dem PUF-Schlüssel K_PUF entschlüsseln, indem er eine Entschlüsselungstechnik verwendet, die der von dem Verschlüsselungsprozessor 141 verwendeten Verschlüsselungstechnik entspricht. In einigen Ausführungsformen wird die von dem Entschlüsselungsprozessor 142 verwendete Entschlüsselungstechnik möglicherweise nicht mit Anfragern der Halbleitervorrichtung 100 geteilt.
-
14 ist ein Flussdiagramm eines Verfahrens zur Bereitstellung von geschützten Informationen gemäß einigen beispielhaften Ausführungsformen. Genauer gesagt stellt 14 ein Verfahren zum Betrieb einer Halbleitervorrichtung dar, auf der geschützte Informationen bereitgestellt sind. Zum Beispiel kann das Verfahren aus 14 von der Halbleitervorrichtung 300 aus 3 durchgeführt werden und wird nun detaillierter unter Bezugnahme auf die 3 und 4 beschrieben.
-
In 14 kann ein Vorgang zum Erhalten und Speichern eines Vorrichtungsschlüssels durchgeführt werden (S10). Zum Beispiel kann der Vorrichtungsschlüsselspeicher 310 den Vorrichtungsschlüssel K_DEV speichern, welcher von dem Vorrichtungslieferanten 30 bereitgestellt wird.
-
Es kann ein Vorgang zum Erhalten einer Anfrager-ID und eines verschlüsselten Hauptschlüssels durchgeführt werden (S30). Zum Beispiel kann der Hauptschlüsselgenerator 320 die Anfragerdaten D_DEM erhalten, welche von dem Primäranfrager 31 bereitgestellt werden, und die Anfragerdaten D_DEM können die Primäranfrager-ID ID1 und den verschlüsselten Hauptschlüssel K_MASPRI enthalten. Ein Beispiel für Vorgang S30 wird nachfolgend unter Bezugnahme auf 15 detaillierter beschrieben.
-
Es kann ein Vorgang zum Erzeugen eines Verschlüsselungscodes durchgeführt werden (S50). Zum Beispiel kann der Hauptschlüsselgenerator 320 den Primärschlüssel K_PRI' als Verschlüsselungscode basierend auf dem Vorrichtungsschlüssel K_DEV' und der Primäranfrager-ID ID1 erzeugen, welche in den Anfragerdaten D_DEM umfasst ist. Ein Beispiel für Vorgang S50 wird unter Bezugnahme auf 15 detaillierter beschrieben.
-
Es kann ein Vorgang zum Erzeugen eines Hauptschlüssels durchgeführt werden (S70). Zum Beispiel kann der Hauptschlüsselgenerator 320 einen Hauptschlüssel K_MAS' erzeugen, indem der verschlüsselte Hauptschlüssel K_MASPRI , der in Vorgang S30 erhalten wurde, mit dem Verschlüsselungscode, der in Vorgang S50 erzeugt wurde, d. h., dem Primärschlüssel K_PRI', entschlüsselt wird.
-
Es kann ein kryptografischer Vorgang durchgeführt werden (S90). Zum Beispiel kann die kryptografische Engine 330 kryptografische Vorgänge basierend auf dem Hauptschlüssel K_MAS' durchführen. Wie unten unter Bezugnahme auf 16 detailliert beschrieben, kann in einigen Ausführungsformen die kryptografische Engine 330 anstelle des Hauptschlüssels K_MAS', der in Vorgang S70 erzeugt wird, den Hauptschlüssel K_MAS", der durch Verschlüsseln und dann Entschlüsseln des Hauptschlüssels K_MAS' erzeugt wird, verwenden.
-
15 ist ein Flussdiagramm eines Verfahrens zur Bereitstellung von geschützten Informationen gemäß einigen beispielhaften Ausführungsformen. Genauer gesagt stellt 15 einen Teil eines Verfahrens zur Bereitstellung von einem Hauptschlüssel eines Sekundäranfragers, der eine Komponente von einem Primäranfrager einer Halbleitervorrichtung erhält, als Beispiele von Vorgängen S30 und S50 dar. Zum Beispiel können Vorgänge S30' und S50' in 15 von der Halbleitervorrichtung 600 aus 6 durchgeführt werden und werden nun unter Bezugnahme auf 6 und 7 beschrieben.
-
Es kann ein Vorgang zum Erhalten einer Anfrager-ID und eines verschlüsselten Hauptschlüssels durchgeführt werden (S30'). In 15 kann Vorgang S30' Vorgänge S32 und S34 umfassen. Es kann ein Vorgang zum Erhalten einer Primäranfrager-ID durchgeführt werden (S32). Zum Beispiel kann der Hauptschlüsselgenerator 620 die von dem Sekundäranfrager 62 bereitgestellten Anfragerdaten D_DEM erhalten und die Anfragerdaten D_DEM können die Primäranfrager-ID ID1 enthalten. Ferner kann, wie oben unter Bezugnahme auf 9 beschrieben, in einigen Ausführungsformen der Hauptschlüsselgenerator 620 Anfragerdaten erhalten, die von dem Primäranfrager 61 bereitgestellt wurden und die die Primäranfrager-ID ID1 enthalten. Es kann ein Vorgang zum Erhalten einer Sekundäranfrager-ID und eines verschlüsselten Hauptschlüssels durchgeführt werden (S34). Zum Beispiel kann der Hauptschlüsselgenerator 620 die Anfragerdaten D_DEM erhalten, welche von dem Sekundäranfrager 62 bereitgestellt wurden, und die Anfragerdaten D_DEM können die Sekundäranfrager-ID ID2 und den verschlüsselten Hauptschlüssel K_MASSEC enthalten.
-
Es kann ein Vorgang zum Erzeugen eines Verschlüsselungscodes durchgeführt werden (S50'). Wie in 15 dargestellt, kann Vorgang S50' Vorgänge S52, S54 und S56 umfassen. Es kann ein Vorgang zum Erzeugen eines Primärschlüssels durchgeführt werden (S52). Zum Beispiel kann der Hauptschlüsselgenerator einen Primärschlüssel K_PRI' basierend auf dem Vorrichtungsschlüssel K_DEV' und der Primäranfrager-ID ID1 erzeugen. Es kann ein Vorgang zum Erzeugen eines Sekundärschlüssels durchgeführt werden (S54). Zum Beispiel kann der Hauptschlüsselgenerator 620 den Sekundärschlüssel K SEC' basierend auf dem Primärschlüssel K_PRI' und der Sekundäranfrager-ID ID2 erzeugen und der Sekundärschlüssel K_SEC' kann als Verschlüsselungscode fungieren. Danach kann ein Vorgang zum Entschlüsseln des verschlüsselten Hauptschlüssels durchgeführt werden (S56). Zum Beispiel kann der Hauptschlüsselgenerator 620 den verschlüsselten Hauptschlüssel K_MASSEC mit dem in Vorgang S54 erzeugten Sekundärschlüssel entschlüsseln.
-
16 ist ein Flussdiagramm eines Verfahrens zur Bereitstellung von geschützten Informationen gemäß einigen beispielhaften Ausführungsformen. Genauer gesagt stellt 16 Vorgang S80 dar, der zwischen Vorgängen S70 und S90 durchgeführt werden kann, welche unter Bezugnahme auf 14 beschrieben werden, um einen Hauptschlüssel sicher zu bewahren. In 16 kann Vorgang S80 Vorgänge S82, S84, S86 und S88 umfassen. Zum Beispiel kann Vorgang S80 in 16 von der unter Bezugnahme auf 12 beschriebenen Halbleitervorrichtung 100 durchgeführt werden, und das Verfahren aus 16 wird nun im Detail unter Bezugnahme auf 12 beschrieben.
-
Es kann ein Vorgang zum Erzeugen eines PUF-Schlüssels durchgeführt werden (S82). Zum Beispiel kann der PUF-Schlüssel-Generator 150 einen PUF-Schlüssel K_PUF aus PUF-Bits während einer Laufzeit erzeugen. In einigen Ausführungsformen kann der PUF-Schlüssel-Generator 150 den PUF-Schlüssel K_PUF als Reaktion auf eine Anforderung von dem Hauptschlüsselmanager 140 erzeugen.
-
Es kann ein Vorgang zum Verschlüsseln eines Hauptschlüssels mit dem PUF-Schlüssel durchgeführt werden (S84). Zum Beispiel kann der Hauptschlüsselmanager 140 einen verschlüsselten Hauptschlüssel K_MASPUF erzeugen, indem er den Hauptschlüssel K_MAS', der von dem Hauptschlüssel-Generator 120 erhalten wurde, mit dem PUF-Schlüssel K_PUF verschlüsselt.
-
Es kann ein Vorgang zum Speichern des verschlüsselten Hauptschlüssels durchgeführt werden (S86). Zum Beispiel kann der Hauptschlüsselmanager 140 den verschlüsselten Hauptschlüssel K_MASPUF , der in Vorgang S84 erzeugt wurde, dem Hauptschlüsselspeicher 160 zum Speichern zur Verfügung stellen. Selbst wenn der verschlüsselte Hauptschlüssel K_MASPUF , der in dem Hauptschlüsselspeicher 160 gespeichert ist, aus der Halbleitervorrichtung 100 nach außen preisgegeben wird, kann es unmöglich sein, den Hauptschlüssel K_MAS aus dem verschlüsselten Hauptschlüssel K_MASPUF zu erhalten, der unter Verwendung des PUF-Schlüssels K_PUF erzeugt wurde.
-
Es kann ein Vorgang zum Entschlüsseln des verschlüsselten Hauptschlüssels mit dem PUF-Schlüssel durchgeführt werden (S88). Zum Beispiel kann der Hauptschlüsselmanager 140 den verschlüsselten Hauptschlüssel K_MASPUF aus dem Hauptschlüsselspeicher 160 als Reaktion auf eine Anforderung von der kryptografische Engine 130 auslesen und den PUF-Schlüssel K PUF von dem PUF-Schlüssel-Generator 150 anfordern. Der Hauptschlüsselmanager 140 kann den Hauptschlüssel K_MAS" erzeugen, indem er den verschlüsselten Hauptschlüssel K_MASPUF mit dem PUF-Schlüssel K_PUF entschlüsselt und den Hauptschlüssel K_MAS" der kryptografische Engine 130 zur Verfügung stellt.
-
Die hierin verwendete Terminologie ist nur für den Zweck der Beschreibung von bestimmten Ausführungsformen vorgesehen und ist nicht dazu gedacht, die Bedeutung derselben oder den Umfang des erfinderischen Konzepts zu beschränken, welcher von den nachfolgenden Ansprüchen definiert wird. Während das erfinderische Konzept besonders gezeigt und unter Bezugnahme auf beispielhafte Ausführungsformen desselben beschrieben wurde, ist es für einen Durchschnittsfachmann klar, dass verschiedene Änderungen und Entsprechungen in Form und Detail hier vorgenommen werden können, ohne von dem Geiste und Umfang des erfinderischen Konzepts wie in den nachfolgenden Ansprüchen definiert 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
-