-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die Offenbarung der japanischen Patentanmeldung Nr.
2021-130994 , eingereicht am 10. August 2021, einschließlich der Spezifikation, der Zeichnungen und der Zusammenfassung, ist hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen.
-
HINTERGRUND
-
Diese Offenbarung bezieht sich auf eine Halbleitervorrichtung und kann zum Beispiel auf eine Halbleitervorrichtung mit einer Sicherheitsfunktion angewendet werden.
-
In den letzten Jahren hat auf dem Gebiet der elektronischen Steuereinheit bzw. ECU (Electronic Control Unit), die ein Beispiel für eine Halbleitervorrichtung ist, die Bedeutung von Sicherheitsanforderungen zum Verhindern einer Bedrohung durch einen böswilligen Dritten bei der Kommunikation zwischen ECUs zugenommen.
-
Im Folgenden sind offenbarte Techniken aufgeführt.
-
[Patentdokument 1] Japanische ungeprüfte Patentanmeldung Veröffentlichungsnr.
2018-106628 .
-
Zum Beispiel offenbart Patentdokument 1 eine Halbleitervorrichtung, die als ein mit sicherem IP (Intellectual Property) ausgestatteter Mikrocontroller für eine Automobil-ECU konfiguriert ist. Die Halbleitervorrichtung hat eine zentrale Prozessoreinheit bzw. CPU (Central Processing Unit) und ein sicheres IP. Das sichere IP versieht die CPU mit einer Sicherheitsfunktion durch Verwenden der von ihr selbst verwalteten Hardwareressourcen in Reaktion auf die Verarbeitungsanforderung von der CPU. Beispiele der Hardwareressourcen umfassen eine Verschlüsselungsmaschine, einen Zufallszahlengenerator und dergleichen.
-
ZUSAMMENFASSUNG
-
Im Allgemeinen wird jedes Mal, wenn das sichere IP die Zufallszahlen verwendet, eine vorgegebene Zufallszahlenmenge verbraucht, die von einem Zufallszahlengenerator erzeugt wird, und es ist notwendig, die Zufallszahlen neu zu erzeugen, wenn die erzeugten Zufallszahlen erschöpft sind. Wenn das sichere IP den Zufallszahlengenerator auffordert, die Zufallszahl zu erzeugen, nachdem eine Anforderung für einen Verschlüsselungsprozess von der CPU erhalten wird, dauert es eine Zeit, den Verschlüsselungsprozess unter Verwendung der Zufallszahl abzuschließen.
-
Andere Probleme und neuartige Merkmale werden aus der Beschreibung dieser Spezifikation und den beigefügten Zeichnungen ersichtlich.
-
Ein Überblick des typischen Ausführungsbeispiels in dieser Offenbarung wird kurz wie folgt beschrieben. Das heißt, eine Halbleitervorrichtung umfasst eine erste Steuereinheit, eine zweite Steuereinheit, einen Zufallszahlengenerator, einen ersten Speicher, in dem von dem Zufallszahlengenerator erzeugte Zufallszahlen gespeichert sind, eine Verschlüsselungsmaschine, die konfiguriert ist, um Verschlüsselungs- und Entschlüsselungsprozesse unter Verwendung der in dem ersten Speicher gespeicherten Zufallszahlen durchzuführen, und einen zweiten Speicher, in dem Information bezüglich einer Zufallszahlenerzeugung gespeichert ist. Die zweite Steuereinheit ist konfiguriert, die Zufallszahlen durch den Zufallszahlengenerator basierend auf der Information bezüglich der Zufallszahlenerzeugung zu erzeugen.
-
Figurenliste
-
- 1 ist ein Blockdiagramm, das das Konzept der Kommunikation zwischen zwei Halbleitervorrichtungen gemäß dem Ausführungsbeispiel zeigt.
- 2 ist ein Blockdiagramm, das die Konfiguration der Halbleitervorrichtung gemäß dem Ausführungsbeispiel zeigt.
- 3 ist ein Blockdiagramm, das die Konfiguration des in 1 gezeigten sicheren IP zeigt.
- 4 ist ein Funktionsblockdiagramm, das den Prozess der in 2 gezeigten sicheren CPU des sicheren IP zeigt.
- 5 ist ein Sequenzdiagramm, das einen Ablauf zum Speichern von Information bezüglich einer Zufallszahlenerzeugung in einem Daten-Flash zeigt.
- 6 ist ein Sequenzdiagramm, das einen Ablauf des Prozesses der Halbleitervorrichtung in dem ersten Beispiel zeigt.
- 7 ist ein Sequenzdiagramm, das einen Ablauf des Prozesses der Halbleitervorrichtung in dem Vergleichsbeispiel zeigt.
- 8 ist ein Sequenzdiagramm, das einen Ablauf des Prozesses der Halbleitervorrichtung in dem zweiten Beispiel zeigt.
- 9 ist ein Sequenzdiagramm, das einen Ablauf des Prozesses der Halbleitervorrichtung in dem dritten Beispiel zeigt.
- 10 ist ein Bilddiagramm, das ein Beispiel eines Übergangs der Zufallszahlenmenge in einen Zufallszahlenhaltebereich in dem dritten Beispiel zeigt.
- 11 ist ein Bilddiagramm, das ein Beispiel eines Übergangs der Zufallszahlenmenge in dem ersten Fall des angenommenen Betriebs der CPU zeigt.
- 12 ist ein Bilddiagramm, das ein Beispiel eines Übergangs der Zufallszahlenmenge in dem zweiten Fall des angenommenen Betriebs der CPU zeigt.
- 13 ist ein Bilddiagramm, das ein Beispiel eines Übergangs der Zufallszahlenmenge in dem dritten Fall des angenommenen Betriebs der CPU zeigt.
-
DETAILLIERTE BESCHREIBUNG
-
Nachfolgend werden das Ausführungsbeispiel, die Beispiele und die Modifikationen unter Bezugnahme auf die Zeichnungen beschrieben. Jedoch werden in der folgenden Beschreibung die gleichen Komponenten durch die gleichen Bezugszeichen bezeichnet und deren wiederholte Beschreibung wird in einigen Fällen weggelassen.
-
Die Kommunikation zwischen zwei Halbleitervorrichtungen gemäß dem Ausführungsbeispiel wird unter Bezugnahme auf 1 beschrieben.
-
Eine Halbleitervorrichtung 11 und eine Halbleitervorrichtung 12 sind durch eine Signalleitung 13 verbunden und können miteinander eine Datenkommunikation durchführen. Dann sind die Halbleitervorrichtung 11 und die Halbleitervorrichtung 12 konfiguriert, in der Lage zu sein, die zu kommunizierenden Daten unter Verwendung eines gemeinsamen Schlüssels, der im Voraus von beiden gehalten wird, unter Verwendung eines vorgegebenen Verschlüsselungsverarbeitungsalgorithmus zu verschlüsseln und zu entschlüsseln. Weiter sind die Halbleitervorrichtung 11 und die Halbleitervorrichtung 12 konfiguriert, die gleiche Funktion zu haben, und die Sendeseite und die Empfangsseite können zwischen ihnen wechselseitig ausgetauscht werden.
-
Insbesondere können die Halbleitervorrichtung 11 und die Halbleitervorrichtung 12 als Mikrocontroller konfiguriert sein, die mit sicherem IP (Intellectual Property) für Automobil-ECU ausgestattet sind. Die Halbleitervorrichtung 11 und die Halbleitervorrichtung 12 können an demselben Automobil oder an unterschiedlichen Automobilen angebracht sein. Weiter kann sowohl die Halbleitervorrichtung 11 als auch die Halbleitervorrichtung 12 auch als ein Halbleiterchip bezeichnet werden.
-
Zum Beispiel erzeugt die Halbleitervorrichtung 11 einen Chiffretext durch Verschlüsseln eines zu sendenden Klartextes und einer Zufallszahl unter Verwendung des gemeinsamen Schlüssels. Danach sendet die Halbleitervorrichtung 11 den Chiffretext an die Halbleitervorrichtung 12. Die Halbleitervorrichtung 12 akquiriert den Klartext und die Zufallszahl durch Entschlüsseln des empfangenen Chiffretexts unter Verwendung des gemeinsamen Schlüssels. Wenn die Klartextposition zum gleichen Zeitpunkt wie der gemeinsame Schlüssel geteilt wird, kann die Halbleitervorrichtung 12 aus dem Entschlüsselungsergebnis nur den Klartext extrahieren, den die Halbleitervorrichtung 11 senden möchte.
-
Die Halbleitervorrichtung 11 gemäß dem Ausführungsbeispiel wird unter Bezugnahme auf 2 beschrieben.
-
Die Halbleitervorrichtung 11 umfasst eine CPU 100, ein sicheres IP 200, einen Daten-Flash 300, einen Benutzer-RAM 400 und eine Kommunikationsschnittstelle (I/F) 500. In der Halbleitervorrichtung 11 sind diese Elemente miteinander über einen Bus 600 verbunden. Die Halbleitervorrichtung 12 hat die gleiche Konfiguration wie die Halbleitervorrichtung 11.
-
Die CPU 100 führt verschiedene Prozesse gemäß dem Benutzerprogramm (Benutzeranwendung) durch. Das sichere IP 200 führt den Sicherheitsprozess, wie einen Verschlüsselungsprozess, unter Verwendung von Zufallszahlen durch. Zum Beispiel fordert (instruiert) die CPU 100 das sichere IP 200 auf, einen Sicherheitsprozess durchzuführen. Dann, wenn das sichere IP 200 die Anweisung von der CPU 100 empfängt, führt das sichere IP 200 den angewiesenen Sicherheitsprozess durch.
-
Das sichere IP 200 hat einen sicheren RAM 220, der aus einem SRAM (Static Random Access Memory) besteht, der ein flüchtiger Speicher ist. Der sichere RAM 220 als erster Speicher ist ein Speicher, auf den von dem sicheren IP 200 aus zugegriffen werden kann, auf den jedoch nicht direkt von der CPU 100 aus zugegriffen werden kann. Das sichere IP 200 speichert Zufallszahlen, die von einem später beschriebenen Zufallszahlengenerator erzeugt werden, in dem sicheren RAM 220. Der sichere RAM 220 muss nur von dem sicheren IP 200 aus zugänglich sein und muss nicht notwendigerweise in dem sicheren IP 200 eingebaut sein.
-
Der Daten-Flash (DATA FLASH) 300 besteht aus einem Flash-Speicher, der ein nichtflüchtiger Speicher ist, und hat einen logisch geteilten sicheren Bereich 310 und einen Benutzerbereich 320. Der sichere Bereich 310 des Daten-Flash 300 als der zweite Speicher ist ein Bereich, auf den von dem sicheren IP 200 aus zugegriffen werden kann, auf den aber nicht direkt von der CPU 100 aus zugegriffen werden kann. Es ist anzumerken, dass der sichere Bereich 310 in dem sicheren IP 200 eingebaut sein kann. Auf den Benutzerbereich 320 kann sowohl von der CPU 100 als auch von dem sicheren IP 200 aus zugegriffen werden. Der sichere Bereich 310 speichert Information bezüglich der Zufallszahlenerzeugung, die in dem sicheren IP 200 und anderen verwendet wird. Der Benutzerbereich 320 speichert zum Beispiel ein von der CPU 100 ausgeführtes Benutzerprogramm und von dem Benutzerprogramm verwendete Daten. Die erste Steuereinheit wird durch die CPU 100 und den Benutzerbereich 320 des Daten-Flash 300 konfiguriert.
-
Der Benutzer-RAM 400 ist ein flüchtiger Speicher, und die CPU 100 verwendet den Benutzer-RAM 400 als Arbeitsbereich, wenn verschiedene Prozesse oder dergleichen durchgeführt werden. Weiter ist der Benutzer-RAM 400 ein gemeinsam genutzter Speicher zwischen der CPU 100 und dem sicheren IP 200. Zum Beispiel speichert die CPU 100 die Zieldaten des Sicherheitsprozesses, die für das sichere IP 200 angefordert werden, in dem Benutzer-RAM 400. Weiter speichert das sichere IP 200 die dem Sicherheitsprozess unterzogenen Daten in dem Benutzer-RAM 400.
-
Die Kommunikations-I/F bzw. -Schnittstelle 500 ist eine Schnittstelle zum Kommunizieren mit einem Außenbereich der Halbleitervorrichtung 11, zum Beispiel, mit der Halbleitervorrichtung 12 über die Signalleitung 13.
-
Die Konfiguration des sicheren IP 200 gemäß dem Ausführungsbeispiel wird unter Bezugnahme auf 3 beschrieben.
-
Das sichere IP 200 umfasst zum Beispiel eine sichere CPU 210, einen sicheren RAM 220, eine Verschlüsselungsmaschine 230, einen Zufallszahlengenerator 240, eine CPU-Schnittstelle (CPU I/F) 250 und eine Flash-Schnittstelle (FLASH I/F) 260. Die CPU-Schnittstelle 250 ist eine Schnittstelle zum Verbinden des sicheren IP 200 und der CPU 100 (siehe 2). Zum Beispiel hat die CPU-Schnittstelle 250 eine Funktion zum Senden einer Unterbrechungsanforderung an die CPU 100 und eine Funktion zum Empfangen einer Unterbrechungsanforderung von der CPU 100. Weiter ist die Flash-Schnittstelle 260 eine Schnittstelle zum Verbinden des sicheren IP 200 und des Daten-Flash 300.
-
Die sichere CPU 210 steuert die Implementierung verschiedener Sicherheitsprozesse. Die Verschlüsselungsmaschine 230 führt einen Prozess durch, der die Verschlüsselung betrifft. Der Zufallszahlengenerator 240 erzeugt Zufallszahlen. Die sichere CPU 210 führt verschiedene Sicherheitsprozesse durch, einschließlich Verschlüsselungsprozess, Entschlüsselungsprozess und Zufallszahlenerzeugung unter Verwendung der Verschlüsselungsmaschine 230, des Zufallszahlengenerators 240 und anderer. Die sichere CPU 210 führt den Sicherheitsprozess zum Beispiel durch Lesen eines Programms aus dem sicheren Bereich 310 des Daten-Flash 300 und Ausführen des Programms durch.
-
Die sichere CPU 210 kommuniziert mit der CPU 100 über die CPU-Schnittstelle 250. Die CPU 100 weist die sichere CPU 210 an (fordert diese auf), Information bezüglich der Erzeugung von Zufallszahlen in dem sicheren Bereich 310 des Daten-Flash 300 zu speichern. Wenn die CPU 100 die sichere CPU 210 zum Speichern von Information bezüglich der Zufallszahlenerzeugung anweist, greift die sichere CPU 210 über die Flash-Schnittstelle 260 auf den Daten-Flash 300 zu und speichert (stores) (speichert (saves)) die bezeichnete Information bezüglich der Zufallszahlenerzeugung in dem sicheren Bereich 310.
-
Weiter weist die CPU 100 die sichere CPU 210 an, den Sicherheitsprozess durchzuführen. Wenn die CPU 100 die sichere CPU 210 anweist, den Sicherheitsprozess durchzuführen, führt die sichere CPU 210 den angewiesenen Sicherheitsprozess durch. Zu diesem Zeitpunkt führt die sichere CPU 210 die Zufallszahlenerzeugung unter Verwendung der Information bezüglich der Zufallszahlenerzeugung durch, die in dem sicheren Bereich 310 des Daten-Flash 300 gespeichert ist. Zum Beispiel wird die Anweisung zum Speichern der Information bezüglich der Zufallszahlenerzeugung in dem sicheren Bereich 310 des Daten-Flash 300 gegeben, bevor die sichere CPU 210 eine Zufallszahlenerzeugung unter Verwendung der Information bezüglich der Zufallszahlenerzeugung durchführt.
-
Eine Steuereinheit, die die Funktion des sicheren IP 200 ausführt, wird unter Bezugnahme auf 4 beschrieben.
-
Die Steuereinheit 211 umfasst eine Sende-/Empfangseinheit (S/R_U) 212, eine Verschlüsselungsverarbeitungseinheit (ENC_U) 213, eine Zufallszahlen-Verwaltungseinheit (RNM_U) 214, eine Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215, eine Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 und eine Daten-Flash-Steuereinheit (DFC_U) 217. Hier hat die Steuereinheit 211 als die zweite Steuereinheit eine Konfiguration, die die sichere CPU 210 und den sicheren Bereich 310 umfasst, in dem das durch die sichere CPU 210 ausgeführte Programm gespeichert ist. Die Sende-/Empfangseinheit (S/R_U) 212 kommuniziert mit der CPU 100. Die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 führt einen Verschlüsselungsprozess unter Verwendung von Zufallszahlen durch (im Folgenden einfach als Verschlüsselungsprozess bezeichnet). Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 verwaltet die Erzeugung von Zufallszahlen. Die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 steuert den Zufallszahlengenerator 240. Die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 verwaltet die Einstellung der Information bezüglich der Zufallszahlenerzeugung. Die Daten-Flash-Steuereinheit (DFC_U) 217 steuert den Zugriff auf den sicheren Bereich 310 des Daten-Flash 300.
-
Die Speicherung der Information bezüglich der Zufallszahlenerzeugung in dem Daten-Flash wird unter Bezugnahme auf 5 beschrieben.
-
Die CPU 100 fordert die sichere CPU 210 auf, die Information bezüglich der Zufallszahlenerzeugung (RGD - random number generation) in dem Daten-Flash 300 zu speichern (Schritt S121). Die Sende-/Empfangseinheit (S/R_U) 212 empfängt die Anforderung von der CPU 100 und fordert die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 auf, die Information bezüglich der Zufallszahlenerzeugung zu speichern (Schritt S122).
-
Die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 empfängt die Anforderung und führt eine Authentifizierung durch (Schritt S123). Die Authentifizierung wird zum Beispiel unter Verwendung eines gemeinsamen Schlüssels durchgeführt. Die Verschlüsselungsmaschine 230 und der Zufallszahlengenerator 240 können bei Bedarf für die Authentifizierung verwendet werden.
-
Wenn die Authentifizierung fehlschlägt, beendet die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 den Prozess an diesem Punkt und benachrichtigt die Sende-/Empfangseinheit (S/R_U) 212, dass die Authentifizierung fehlgeschlagen ist (Schritt S124). Die Sende-/Empfangseinheit (S/R_U) 212 empfängt die Benachrichtigung von der Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 und benachrichtigt die CPU 100, dass die Authentifizierung fehlgeschlagen ist (Schritt S125).
-
Wenn die Authentifizierung erfolgreich ist, fordert die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 die Daten-Flash-Steuereinheit (DFC_U) 217 auf, die Information bezüglich der Zufallszahlenerzeugung (RGD) in dem sicheren Bereich 310 des Daten-Flash 300 zu speichern (Schritt S126). Die Daten-Flash-Steuereinheit (DFC_U) 217 speichert die Information bezüglich der Zufallszahlenerzeugung (RGD) in dem sicheren Bereich 310 des Daten-Flash 300 (Schritt S127).
-
Wenn die Speicherung der Information bezüglich der Zufallszahlenerzeugung (RGD) abgeschlossen ist, benachrichtigt die Daten-Flash-Steuereinheit (DFC_U) 217 die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 über den Abschluss der Speicherung (Schritt S128). Die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 empfängt die Benachrichtigung von der Daten-Flash-Steuereinheit (DFC_U) 2 17 und benachrichtigt die Sende-/Empfangseinheit (S/R_U) 212 über den Abschluss der Speicherung (Schritt S129). Die Sende-/Empfangseinheit (S/R_U) 212 empfängt die Benachrichtigung von der Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 und benachrichtigt die CPU 100 über den Abschluss der Speicherung (Schritt S130).
-
Hinsichtlich der Information bezüglich der Zufallszahlenerzeugung (RGD) in dem Ausführungsbeispiel werden im Folgenden das erste Beispiel, das zweite Beispiel und das dritte Beispiel beschrieben.
-
Erstes Beispiel
-
Der Prozess der Halbleitervorrichtung 11 in dem ersten Beispiel wird unter Bezugnahme auf 6 beschrieben.
-
Die CPU 100 fordert die sichere CPU 210 auf, den Verschlüsselungsprozess durchzuführen (Schritt S101). Die Sende-/Empfangseinheit (S/R_U) 212 empfängt die Anforderung von der CPU 100 und fordert die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 auf, den Prozess durchzuführen (Schritt S102).
-
Die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 fordert die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 auf, eine Zufallszahl zu akquirieren (Schritt S103). Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 akquiriert eine Zufallszahl aus dem sicheren RAM 220 (Schritt S104). Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 gibt die Zufallszahl an die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 zurück (Schritt S105). Hier wird zur Vereinfachung der Beschreibung angenommen, dass die Zufallszahlenerzeugung in dem Zufallszahlengenerator 240 abgeschlossen ist und die Zufallszahl in dem sicheren RAM 220 gespeichert ist.
-
Die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 führt den Verschlüsselungsprozess basierend auf der akquirierten Zufallszahl durch (Schritt S106). Die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 betreibt die Verschlüsselungsmaschine 230 nach Bedarf.
-
Wenn der Verschlüsselungsprozess abgeschlossen ist, benachrichtigt die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 die Sende-/Empfangseinheit (S/R_U) 212 über den Abschluss des Prozesses (Schritt S107). Die Sende-/Empfangseinheit (S/R_U) 212 empfängt die Benachrichtigung von der Verschlüsselungsverarbeitungseinheit (ENC_U) 213 und benachrichtigt die CPU 100 über den Abschluss des Prozesses (Schritt S108).
-
Wenn der Verschlüsselungsprozess abgeschlossen ist, benachrichtigt die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 über den Abschluss des Verschlüsselungsprozesses (Schritt S109). Wenn die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 die in dem sicheren RAM 220 gespeicherte Zufallszahl verwendet hat, löscht die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 die Zufallszahl aus dem sicheren RAM 220.
-
Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 fordert die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 auf, die Information bezüglich der Zufallszahlenerzeugung (RGD) zu akquirieren (Schritt S110). Die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 empfängt die Anforderung von der Zufallszahlen-Verwaltungseinheit (RNM_U) 214 und fordert die Daten-Flash-Steuereinheit (DFC_U) 217 auf, die Information bezüglich der Zufallszahlenerzeugung (RGD) zu akquirieren (Schritt S111). Die Daten-Flash-Steuereinheit (DFC_U) 217 empfängt die Anforderung von der Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 und liest die Information bezüglich der Zufallszahlenerzeugung (RGD) aus dem sicheren Bereich 310 des Daten-Flash 300 (Schritt S112). Die Daten-Flash-Steuereinheit (DFC_U) 217 gibt die Information bezüglich der Zufallszahlenerzeugung (RGD) an die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 (Schritt 113). Die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 gibt die Information bezüglich der Zufallszahlenerzeugung (RGD) an die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 zurück (Schritt S114). Hier ist die Information bezüglich der Zufallszahlenerzeugung (RGD) in dem ersten Beispiel die verbleibende Zufallszahlenmenge (RNDth), bei der die Zufallszahlenerzeugung gestartet wird.
-
Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 bestimmt, ob eine Zufallszahlenerzeugung notwendig ist oder nicht (Schritt S115). Wenn die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 den Verschlüsselungsprozess unter Verwendung der Zufallszahl durchführt, werden die in dem sicheren RAM 220 gespeicherten Zufallszahlen verbraucht und die Zufallszahlenmenge nimmt ab. Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 bestimmt, ob eine Zufallszahlenerzeugung notwendig ist oder nicht durch Vergleichen der in dem sicheren RAM 220 gespeicherten Zufallszahlenmenge (verbleibende Zufallszahlenmenge) mit RNDth. Wenn die verbleibende Zufallszahlenmenge gleich oder kleiner als RNDth ist und bestimmt wird, dass die Zufallszahlenerzeugung notwendig ist, fordert die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 auf, Zufallszahlen zu erzeugen (Schritt S116). Die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 erzeugt Zufallszahlen durch den Zufallszahlengenerator 240 (Schritt S117). Die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 gibt die Zufallszahlen, die durch den Zufallszahlengenerator 240 erzeugt werden, an die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 (Schritt S118). Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 speichert die akquirierten Zufallszahlen in dem sicheren RAM 220 (Schritt S119).
-
Die Vorteile des ersten Beispiels werden unter Bezugnahme auf 6 und 7 beschrieben.
-
Zuerst wird ein Vergleichsbeispiel beschrieben, um das erste Beispiel zu verdeutlichen. Wie in 7 gezeigt, in dem Vergleichsbeispiel, fordert die sichere CPU 210 nach dem Empfangen der Anforderung für einen Verschlüsselungsprozess von der CPU 100 die Zufallszahlenerzeugung an.
-
Das heißt, die CPU 100 fordert die sichere CPU 210 auf, den Verschlüsselungsprozess durchzuführen (Schritt S101). Die Sende-/Empfangseinheit (S/R_U) 212 empfängt die Anforderung von der CPU 100 und fordert die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 auf, den Prozess durchzuführen (Schritt S102). Die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 empfängt die Anforderung von der Sende-/Empfangseinheit (S/R_U) 212 und fordert die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 auf, Zufallszahlen zu erzeugen (Schritt S103). Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 empfängt die Anforderung von der Verschlüsselungsverarbeitungseinheit (ENC_U) 213 und fordert die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 auf, Zufallszahlen zu erzeugen (Schritt S116).
-
Die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 erzeugt Zufallszahlen durch den Zufallszahlengenerator 240 (Schritt S117). Die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 gibt die Zufallszahlen, die durch den Zufallszahlengenerator 240 erzeugt werden, an die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 (Schritt S118). Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 gibt die Zufallszahl an die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 zurück (Schritt S105).
-
Andererseits bestimmt in dem ersten Beispiel, wie oben beschrieben, nach dem Verschlüsselungsprozess, die sichere CPU 210, ob Zufallszahlen zu erzeugen sind, und startet die Erzeugung von Zufallszahlen bei Bedarf. Das heißt, wie in 6 gezeigt, nach dem Schritt S106 bestimmt die Zufallszahlen-Verwaltungseinheit (RNM_U) 214, ob eine Zufallszahlenerzeugung notwendig ist oder nicht (Schritt S115), und wenn bestimmt wird, dass die Zufallszahlenerzeugung notwendig ist, fordert die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 auf, Zufallszahlen zu erzeugen (Schritt S116).
-
Wenn die sichere CPU 210 den Zufallszahlengenerator 240 auffordert, Zufallszahlen zu erzeugen, ohne auf die Anforderung zur Zufallszahlenerzeugung von der CPU 100 zu warten, wird die Zufallszahlenerzeugung von der CPU 100 aus betrachtet im Voraus gestartet. Somit kann die Zeit bis zu dem Abschluss des von der CPU 100 angeforderten Verschlüsselungsprozesses (die Zeit von dem Beginn des Schritts S101 bis zu dem Ende des Schritts S108) verkürzt werden. Unter der Annahme, dass die Zeit von dem Start von Schritt S101 bis zu dem Ende von Schritt S108, in 6 gezeigt, tA ist und die Zeit von dem Start von Schritt S101 bis zu dem Ende von Schritt S107, in 7 gezeigt, tB ist, ist tA kürzer als tB (tA < tB).
-
Zweites Beispiel
-
Als nächstes wird das zweite Beispiel beschrieben. In dem zweiten Beispiel speichert das sichere IP 200 Trigger- bzw. Auslösedaten (TRG), die angeben, ob die sichere CPU 210 oder die CPU 100 den Start der Zufallszahlenerzeugung anfordert, in dem sicheren Bereich 310 des Daten-Flash 300.
-
Der Prozess der Halbleitervorrichtung in dem zweiten Beispiel wird unter Bezugnahme auf 8 beschrieben.
-
In dem sicheren IP 200 in dem zweiten Beispiel ist es möglich, auszuwählen, ob die sichere CPU 210 die Zufallszahlenerzeugung bestimmt und hinsichtlich dieser den Zufallszahlengenerator 240 auffordert oder die Zufallszahlenerzeugung nach einem Warten auf die Anforderung von der CPU 100 durchgeführt wird. Das heißt, das sichere IP 200 ist konfiguriert, in der Lage zu sein, den Prozess des ersten Beispiels und den Prozess des Vergleichsbeispiels auszuwählen. Die Auslösedaten (TRG), die angeben, ob die sichere CPU 210 oder die CPU 100 den Start der Zufallszahlenerzeugung anfordert, sind in dem sicheren Bereich 310 des Daten-Flash 300 gespeichert. Die sichere CPU 210 liest die Auslösedaten (TRG) aus dem sicheren Bereich 310 des Daten-Flash 300 und startet die Zufallszahlenerzeugung gemäß den Auslösedaten (TRG). Hier sind die Auslösedaten (TRG) die Information bezüglich der Zufallszahlenerzeugung (RGD). Die Auslösedaten (TRG) werden in dem sicheren Bereich 310 des Daten-Flash 300 durch die in 5 gezeigte Sequenz gespeichert.
-
Bezüglich des Prozesses der Halbleitervorrichtung in dem zweiten Beispiel wird im Folgenden hauptsächlich der Unterschied zu dem ersten Beispiel beschrieben. Die Schritte S101 und S102 in dem zweiten Beispiel sind die gleichen wie die Schritte S101 und S102 in dem ersten Beispiel.
-
In dem zweiten Beispiel liest zu Beginn des Verschlüsselungsprozesses die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 die Auslösedaten (TRG) aus dem sicheren Bereich 310 des Daten-Flash 300 über die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 und die Daten-Flash-Steuereinheit (DFC_U) 217. Nachfolgend werden die Auslösedaten (TRG) gesetzt.
-
Das heißt, die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 fordert die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 auf, die Auslösedaten (TRG) zu akquirieren (Schritt S131). Die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 empfängt die Anforderung von der Verschlüsselungsverarbeitungseinheit (ENC_U) 213 und fordert die Daten-Flash-Steuereinheit (DFC_U) 217 auf, die Auslösedaten (TRG) zu akquirieren (Schritt S132). Die Daten-Flash-Steuereinheit (DFC_U) 217 empfängt die Anforderung von der Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 und liest die Auslösedaten (TRG) aus dem sicheren Bereich 310 des Daten-Flash 300 (Schritt S133). Die Daten-Flash-Steuereinheit (DFC_U) 217 gibt die Auslösedaten (TRG) an die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 (Schritt S134). Die Zufallszahlenerzeugungs-Einstellungsverwaltungseinheit (RSM_U) 216 empfängt die Auslösedaten (TRG) und gibt die Auslösedaten (TRG) an die Verschlüsselungsverarbeitungseinheit (ENC_U) 213 (Schritt S135).
-
Wenn die Auslösedaten (TRG) angeben, dass die CPU 100 eine Zufallszahlenerzeugung (TRG = CPU) anfordert, führt die sichere CPU 210 den Prozess gemäß der Sequenz durch, die durch die Linie B mit abwechselnd langen und kurzen Strichen in 7 gezeigt wird. Wenn die Auslösedaten (TRG) angeben, dass die sichere CPU 210 die Zufallszahlenerzeugung (TRG = SIP) anfordert, führt die sichere CPU 210 den Prozess gemäß der Sequenz durch, die durch die Linie A mit abwechselnd langen und kurzen Strichen in 6 gezeigt wird.
-
Das Vergleichsbeispiel des ersten Beispiels hat das Problem, dass Zeit erforderlich ist, um den Verschlüsselungsprozess abzuschließen. Da andererseits die Zufallszahlenerzeugung in dem Verschlüsselungsprozess gestartet wird, ist die Zeit bis zum Abschluss des Verschlüsselungsprozesses von der CPU 100 aus betrachtet konstant. Wenn die Reaktionsleistung der Funktion konstant ist, wie oben beschrieben, kann die Gestaltung der Anwendung, die die Funktion verwendet, erleichtert werden.
-
In dem ersten Beispiel bestimmt und fordert die sichere CPU 210 die Zufallszahlenerzeugung an, und somit ändert sich die Abschlusszeit des Verschlüsselungsprozesses, von der CPU 100 aus betrachtet, abhängig von dem Fortschritt der Zufallszahlenerzeugung durch den Zufallszahlengenerator 240. Das heißt, wenn die CPU 100 den Verschlüsselungsprozess während der Zufallszahlenerzeugung durch den Zufallszahlengenerator 240 anfordert, wenn die erzeugten Zufallszahlen weniger als die für den Verschlüsselungsprozess erforderlichen Zufallszahlen sind, wird der Verschlüsselungsprozess nicht gestartet, bis der Zufallszahlengenerator die Erzeugung von Zufallszahlen abschließt. Dementsprechend variiert die Verarbeitungszeit in Abhängigkeit von dem Zeitpunkt, an dem die CPU 100 den Verschlüsselungsprozess anfordert. Daher kann sich die Abschlusszeit des Verschlüsselungsprozesses unbeabsichtigt ändern, von der CPU 100 aus betrachtet. Andererseits, wenn die sichere CPU 210 den Zufallszahlengenerator 240 zum Erzeugen von Zufallszahlen auffordert, ohne auf die Anforderung zur Zufallszahlenerzeugung von der CPU 100 zu warten, kann die Zufallszahlenerzeugung im Voraus gestartet werden, von der CPU 100 aus betrachtet. Es ist möglich, die Zeit zu verkürzen, die erforderlich ist, um den von der CPU 100 angeforderten Verschlüsselungsprozess abzuschließen.
-
In dem Fall, in dem die CPU 100 annimmt, dass das System, in dem die Reaktionszeit des Verschlüsselungsprozesses nicht konstant ist, als anormal betrachtet wird, wählt der Benutzer die CPU 100 als Anforderer (Auslöser) für eine Zufallszahlenerzeugung. Weiter in dem Fall, in dem die CPU 100 annimmt, dass das System, in dem die Reaktion so schnell wie möglich ist, erwartet wird, ohne Rücksicht auf die konstante Reaktionszeit des Verschlüsselungsprozesses, wählt der Benutzer die sichere CPU 210 als Anforderer zur Zufallszahlenerzeugung. Das heißt, in dem zweiten Beispiel kann die CPU 100 den Auslöser zum Starten der Zufallszahlenerzeugung auf den Zufallszahlengenerator 240 setzen. Als Ergebnis kann der Benutzer auswählen, welcher des oben erwähnten Vorteils und Nachteils für die Abschlusszeit des Verschlüsselungsprozesses je nach Situation zulässig ist.
-
Drittes Beispiel
-
Als nächstes wird das dritte Beispiel beschrieben. In dem dritten Beispiel ist die CPU 100 konfiguriert, in der Lage zu sein, um die Größe des Bereichs, der zum Halten von Zufallszahlen in dem sicheren RAM 220 des sicheren IP 200 reserviert ist, und die verbleibende Zufallszahlenmenge einzustellen, bei der die Zufallszahlenerzeugung gestartet wird. In dem ersten Beispiel ändert sich unbeabsichtigt die Verarbeitungszeit im Verhältnis zu der Zeit bis zu der Zufallszahlenerzeugung, der Verbrauchsmenge und der Häufigkeit von Verarbeitungsanforderungen. Dies liegt daran, da der Schwellenwert (RNDth) zum Bestimmen, ob die Zufallszahlenerzeugung gestartet werden soll, allein nicht den Fall bewältigen kann, in dem Verschlüsselungsprozesse unter Verwendung von Zufallszahlen sequentiell in kurzer Zeit angefordert werden. Die Operationszeit des Zufallszahlengenerators 240 ist im Allgemeinen zehnmal oder mehr länger als die des Verschlüsselungsprozesses. Wenn die Verschlüsselungsprozesse sequentiell in kurzer Zeit angefordert werden, ist es dementsprechend notwendig, Zufallszahlen in dem sicheren RAM 220 zu halten und sie von dort zu verbrauchen. Daher ist es notwendig, zu ermöglichen, nicht nur den RNDth einzustellen, sondern auch die Größe des Bereichs, der zum Halten von Zufallszahlen in dem sicheren RAM 220 reserviert ist.
-
Der Prozess der Halbleitervorrichtung in dem dritten Beispiel wird unter Bezugnahme auf 9 und 10 beschrieben.
-
Die sichere CPU 210 ist konfiguriert, in der Lage zu sein, um die Häufigkeit eines Auslösens der Zufallszahlenerzeugung und die Operationszeit des Zufallszahlengenerators 240 für den Zufallszahlengenerator 240 einzustellen. Das heißt, die CPU 100 kann die Größe des Bereichs, der zum Halten von Zufallszahlen in dem sicheren RAM 220 (RNDmax) reserviert ist, und die verbleibende Zufallszahlenmenge (RNDth), bei der die Zufallszahlenerzeugung gestartet wird, einstellen, die in dem ersten Beispiel fest sind. Hier sind RNDmax und RNDth die Information bezüglich der Zufallszahlenerzeugung (RGD). Das Verfahren zum Speichern der Information bezüglich der Zufallszahlenerzeugung (RGD) in dem sicheren Bereich 310 des Daten-Flash 300 ist die gleiche Sequenz wie die in 5 des ersten Beispiels.
-
Bezüglich des Prozesses der Halbleitervorrichtung in dem dritten Beispiel wird im Folgenden hauptsächlich der Unterschied zu dem ersten Beispiel beschrieben. Die Schritte S101 bis S119 in dem dritten Beispiel sind dieselben wie die Schritte S101 bis S119 in dem ersten Beispiel. Es gibt jedoch einen Unterschied bei der Information bezüglich der Zufallszahlenerzeugung (RGD), die in dem sicheren Bereich 310 des Daten-Flash 300 gespeichert ist.
-
Die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 bestimmt, ob eine Zufallszahlenerzeugung notwendig ist oder nicht (Schritt S115). Wenn die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 bestimmt, dass die Zufallszahlenmenge (verbleibende Zufallszahlenmenge), die in dem sicheren RAM 220 gespeichert ist, gleich oder kleiner als RNDth ist und die Zufallszahlenerzeugung notwendig ist, fordert die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 auf, Zufallszahlen zu erzeugen (Schritt S116). Die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 erzeugt die Zufallszahlen durch den Zufallszahlengenerator 240 (Schritt S117). Die Zufallszahlenerzeugungs-Steuereinheit (RGC_U) 215 gibt die Zufallszahlen, die durch den Zufallszahlengenerator 240 erzeugt werden, an die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 (Schritt S118). Die Zufallszahlen-Verwaltungseinheit (RNM_U) speichert die akquirierten Zufallszahlen in dem sicheren RAM 220 (Schritt S119).
-
Wie oben beschrieben, ist die Information bezüglich der Zufallszahlenerzeugung (RGD), die durch die CPU 100 eingestellt und geändert werden kann, RNDmax und RNDth. Dann kann die CPU 100 den Zeitpunkt, an dem die sichere CPU 210 eine Zufallszahlenerzeugung anfordert, und die Operationszeit des Zufallszahlengenerators 240 durch Ändern der eingestellten Werte von RNDmax und RNDth steuern.
-
Im Folgenden wird die Anzahl von Implementierungen des Verschlüsselungsprozesses unter Verwendung von Zufallszahlen und der Zufallszahlenmenge in dem Zufallszahlenhaltebereich dargestellt, wie in 10 gezeigt. Wie in 10 gezeigt, ist der Zustand A ein Zustand, in dem der Zufallszahlengenerator 240 die Zufallszahlenerzeugung abgeschlossen hat, und die Zufallszahlenmenge in dem Zufallszahlenhaltebereich des sicheren RAM 220 ist RNDmax. Der Zustand B ist ein Zustand, in dem Zufallszahlen durch einen Verschlüsselungsprozess akquiriert (verbraucht) werden und die Zufallszahlenmenge in dem Zufallszahlenhaltebereich des sicheren RAM 220 ist kleiner als RNDmax. Der Zustand C ist ein Zustand, in dem die Zufallszahlenmenge in dem Zufallszahlenhaltebereich des sicheren RAM 220 gleich oder kleiner als RNDth ist, und die Zufallszahlen-Verwaltungseinheit (RNM_U) 214 fordert den Zufallszahlengenerator 240 auf, Zufallszahlen zu erzeugen.
-
Das dritte Beispiel löst das Problem des ersten Beispiels, dass sich die Abschlusszeit des Verschlüsselungsprozesses unter Verwendung von Zufallszahlen unbeabsichtigt ändern kann, wenn von der CPU 100 aus betrachtet, durch das Verfahren, das sich von dem des zweiten Beispiels unterscheidet. In dem dritten Beispiel stellt die CPU 100 die Häufigkeit und den Zeitpunkt des Betriebs des Zufallszahlengenerators 240 ein und die sichere CPU 210 bestimmt basierend auf der Einstellung, ob der Zufallszahlengenerator 240 betrieben werden soll. In anderen Worten, die CPU 100 kann die Zufallszahlen bei Bedarf durch die Einstellung vorbereiten, und der Verschlüsselungsprozess kann durchgeführt werden, ohne aufgrund des Zufallszahlengenerators 240 warten zu müssen.
-
In dem dritten Beispiel kann die CPU 100 die Bedingungen einstellen, bei denen die sichere CPU 210 den Zufallszahlengenerator betreibt, so dass die sichere CPU 210 den Verschlüsselungsprozess für die CPU 100 zur optimalen Zeit für die CPU 100 vorsehen kann.
-
Das Verfahren zum Auswählen der Einstellung der Zufallszahlenerzeugung für den Benutzer der CPU 100 und die Kriterien zum Auswählen der Einstellung von RNDmax und RNDth, die in dem Prozess der CPU 100 in dem dritten Beispiel angenommen werden, werden im Folgenden beschrieben.
-
Andere in dem Prozess der CPU 100 angenommene Parameter sind wie folgt.
-
Zufallszahlenmenge, die in einem Verschlüsselungsprozess verwendet wird: RNDdelta
Zeit des Abschnitts, in dem Verschlüsselungsprozesse sequentiell angefordert werden (RQS): Treq
Zeit des Abschnitts, in dem kein Verschlüsselungsprozess angefordert wird (NQS): Tnreq
Intervall von Zyklen zum Anfordern des Prozesses in dem Abschnitt, in dem Verschlüsselungsprozesse sequentiell angefordert werden: Tperi
Zeit, in der der Zufallszahlengenerator 240 Zufallszahlen für RNDdelta erzeugt: Trnddelta
Zu diesem Zeitpunkt wird die Bedingung zum Verhindern der Erschöpfung der Zufallszahlen in dem Abschnitt, in dem die Verschlüsselungsprozesse angefordert werden (RQS), durch die folgende Gleichung (1) ausgedrückt.
-
Die Bedingung zum Nicht-Betreiben des Zufallszahlengenerators 240 in dem Abschnitt, in dem die Verschlüsselungsprozesse angefordert werden (RQS), wird durch die folgende Gleichung (2) ausgedrückt.
-
Die Werte von Treq, Tnreq und Tperi werden durch die in dem Prozess der CPU 100 angenommene Operation bestimmt. Der Wert von Trnddelta wird durch die Leistung des Zufallszahlengenerators 240 des sicheren IP 200 bestimmt. Auf diese Weise können die eingestellten Werte von RNDmax und RNDth aus der in dem Prozess der CPU 100 angenommenen Operation bestimmt werden.
-
Als nächstes werden drei Typen von Fällen für den Prozess der CPU 100 angenommen und Einstellungsbeispiele für jeden Fall werden unter Bezugnahme auf 11 bis 13 beschrieben. Die schwarzen Dreiecke (Δ), die in 11 bis 13 gezeigt werden, geben den Zeitpunkt an, an dem der Verschlüsselungsprozess unter Verwendung von Zufallszahlen durchgeführt wird.
-
(Erster Fall)
-
Wie in 11 gezeigt, nimmt der Prozess der CPU 100 in dem ersten Fall an, dass der Abschnitt, in dem die Verschlüsselungsprozesse angefordert werden (RQS), und der Abschnitt, in dem der Verschlüsselungsprozess nicht angefordert wird (NQS), abwechselnd auftreten.
-
Die Bedingung zum Nicht-Betreiben des Zufallszahlengenerators 240 und zum Verhindern der Erschöpfung der Zufallszahlen in dem Abschnitt, in dem die Verschlüsselungsprozesse angefordert werden (RQS), wird durch die oben angeführte Gleichung (2) ausgedrückt.
-
Die Bedingung zum Abschließen der Zufallszahlenerzeugung in dem Abschnitt, in dem der Verschlüsselungsprozess nicht angefordert wird (NQS), wird durch die folgende Gleichung (3) ausgedrückt.
-
Durch Anpassen von RNDmax und RNDth, um die Bedingungen der Gleichungen (2) und (3) zu erfüllen, kann die CPU 100 den Verschlüsselungsprozess durchführen, ohne auf den Zeitpunkt der Zufallszahlenerzeugung zu warten. Da die Gleichung (3) weiter ein relationaler Ausdruck zwischen der Leistung der Zufallszahlenerzeugung und der Häufigkeit von Verarbeitungsanforderungen ist, wird sie verwendet, um zu bestimmen, ob die Leistung des sicheren IP 200 die Verarbeitungsannahme der CPU 100 erfüllen kann.
-
(Zweiter Fall)
-
Als nächstes, wie in 12 gezeigt, nimmt der Prozess der CPU 100 in dem zweiten Fall an, dass der Abschnitt, in dem die Verschlüsselungsprozesse angefordert werden (RQS), für die gesamte Periode andauert. Da die Anforderungen des Verschlüsselungsprozesses endlos fortgesetzt werden, ist es notwendig, Zufallszahlen in dem Intervall zwischen den Anforderungen des Verschlüsselungsprozesses zu erzeugen (Tperi).
-
Die Bedingung zum Sicherstellen der in dem Verschlüsselungsprozess verwendeten Zufallszahlenmenge muss die folgende Gleichung (4) erfüllen.
-
Die Anzahl von Anforderungen für den Verschlüsselungsprozess, bis die Zufallszahlenerzeugung durchgeführt wird, wird durch die folgende Gleichung (5) ausgedrückt. In
12 wird die Anzahl der Anforderungen als 1 dargestellt.
-
Da es notwendig ist, Zufallszahlen in dem Intervall zwischen den Anforderungen des Verschlüsselungsprozesses zu erzeugen (Tperi), wird die Bedingung der folgenden Gleichung (6) von der Gleichung (5) abgeleitet.
-
Durch Anpassen von RNDmax und RNDth unter der Bedingung, die die Gleichungen (4) und (6) erfüllt, kann die CPU 100 den Verschlüsselungsprozess durchführen, ohne auf den Zeitpunkt der Zufallszahlenerzeugung zu warten. Da weiter die Gleichungen (4) und (6) die Leistung der Zufallszahlenerzeugung und die Häufigkeit von Verarbeitungsanforderungen enthalten, wird auch gemeinsam bestimmt, ob die Leistung des sicheren IP 200 die Verarbeitungsannahme der CPU 100 erfüllen kann oder nicht.
-
(Dritter Fall)
-
Schließlich, wie in 13 gezeigt, nimmt der Prozess der CPU 100 in dem dritten Fall an, dass der Abschnitt, in dem die Verschlüsselungsprozesse in langen Intervallen angefordert werden (RQLS), und der Abschnitt, in dem die Verschlüsselungsprozesse in kurzen Intervallen angefordert werden (RQSS), abwechselnd auftreten.
-
Die Zeit des Abschnitts, in dem die Verschlüsselungsprozesse in langen Abständen angefordert werden (RQLS), ist als Treq(long) definiert, und die Zeit des Abschnitts, in dem die Verschlüsselungsprozesse in kurzen Abständen angefordert werden (RQSS), ist als Treq(short) definiert. Die Intervalle zwischen den Anforderungen des Verschlüsselungsprozesses in diesen Abschnitten sind als Tperi(long) bzw. Tperi(short) definiert.
-
Auch wird RNDth für den Abschnitt, in dem die Verschlüsselungsprozesse in langen Intervallen angefordert werden (RQLS), und den Abschnitt, in dem die Verschlüsselungsprozesse in kurzen Intervallen angefordert werden (RQSS), eingestellt und geändert. Die verbleibende Zufallszahlenmenge, bei der die Zufallszahlenerzeugung in dem Abschnitt gestartet wird, in dem die Verschlüsselungsprozesse in langen Intervallen angefordert werden (RQLS), wird als RNDth(long) definiert. Weiter wird die verbleibende Zufallszahlenmenge, bei der die Zufallszahlenerzeugung gestartet wird in dem Abschnitt, in dem die Verschlüsselungsprozesse in kurzen Abständen angefordert werden (RQSS), als RNDth(short) definiert. Die Änderungszeit zwischen dem Abschnitt, in dem die Verschlüsselungsprozesse in langen Abständen angefordert werden (RQLS), und dem Abschnitt, in dem die Verschlüsselungsprozesse in kurzen Abständen angefordert werden (RQSS), wird als Tchange definiert. Tchange ist die Zeit von der letzten Verarbeitungsanforderung in dem Abschnitt, in dem die Verschlüsselungsprozesse in langen Abständen angefordert werden (RQLS), bis zu der ersten Verarbeitungsanforderung in dem Abschnitt, in dem die Verschlüsselungsprozesse in kurzen Abständen angefordert werden (RQSS), und die Zeit von der letzten Verarbeitungsanforderung in dem Abschnitt RQSS bis zu der ersten Verarbeitungsanforderung in dem Abschnitt RQLS.
-
Die von RNDmax und RNDth zu erfüllenden Bedingungen in dem Abschnitt, in dem die Verschlüsselungsprozesse in langen Intervallen angefordert werden (RQLS), sind dieselben wie diejenigen der Gleichungen (4) und (6) in dem oben erwähnten zweiten Fall.
-
Da weiter die Verarbeitungsanforderung in kurzer Zeit in dem Abschnitt eintrifft, in dem die Verschlüsselungsprozesse in kurzen Intervallen angefordert werden (RQSS), ist es notwendig, den Betrieb des Zufallszahlengenerators 240 durch die Zufallszahlenmenge und die Erschöpfung der Zufallszahlen zu verhindern. Außerdem müssen die Zufallszahlen, die in dem Abschnitt verbraucht werden, in dem die Verschlüsselungsprozesse in kurzen Abständen angefordert werden (RQSS), während Tchange erzeugt werden, die die Zeit bis zu der nächsten Anforderung ist.
-
Die von RNDmax und RNDth zu erfüllenden Bedingungen in dem Abschnitt, in dem die Verschlüsselungsprozesse in kurzen Intervallen angefordert werden (RQSS), sind die folgenden Gleichungen (7) und (8).
-
In dem Abschnitt, in dem die Verschlüsselungsprozesse in langen Intervallen angefordert werden (RQLS), werden RNDmax und RNDth unter der Bedingung angepasst, die die Gleichungen (4) und (6) erfüllt. Dann werden in dem Abschnitt, in dem die Verschlüsselungsprozesse in kurzen Intervallen angefordert werden (RQSS), RNDmax und RNDth unter der Bedingung eingestellt, die die Gleichungen (7) und (8) erfüllt. Als Ergebnis kann die CPU 100 den Verschlüsselungsprozess durchführen, ohne auf den Zeitpunkt der Zufallszahlenerzeugung zu warten. Da weiter die Gleichungen (7) und (8) die Leistung der Zufallszahlenerzeugung und die Häufigkeit von Verarbeitungsanforderungen enthalten, wird auch gemeinsam bestimmt, ob die Leistung des sicheren IP 200 die Verarbeitungsannahme der CPU 100 erfüllen kann oder nicht.
-
Im Obigen wurde die durch den Offenleger gemachte Offenbarung insbesondere basierend auf dem Ausführungsbeispiel und den Beispielen beschrieben, aber es versteht sich von selbst, dass diese Offenbarung nicht auf das Ausführungsbeispiel und die Beispiele, die oben beschrieben werden, beschränkt ist und innerhalb des Bereichs, der nicht vom Wesentlichen abweichend ist, vielfältig modifiziert werden kann.
-
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
-
- JP 2021130994 [0001]
- JP 2018106628 [0005]