-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die
Erfindung bezieht sich auf Flash-Programm, und insbesondere auf
eine Vorrichtung und ein Verfahren zur Authentifizierung eines Flash-Programms.
-
Beschreibung des Standes der
Technik
-
Eine
Form von Sicherheitsmechanismen ist die Verwendung eines eindeutigen
Hardware-Schlüssels
(HU), der in einen Chip geladen wird. Der HU-Schlüssel wird
in einen Chip geladen, um kryptographische Anforderungen wie der
Geheimhaltung, Integrität
und Authentizität
in einer Vielzahl von Anwendungen zu gewährleisten. Hieraus ergibt sich,
dass der HU-Schlüssel
eindeutig auf jedem Chip ist. Wenn der HU-Schlüssel
in einen Chip geladen wird, kann sein Wert nicht verändert werden. Ein
anderer Vorteil der Verwendung eines HU-Schlüssels ist, dass er nicht extern
geladen werden kann.
-
Hieraus
ergibt sich, dass der HU-Schlüssel im
Wesentlichen als Sicherheitsmechanismus verwendet wird. Im Allgemeinen
wird die ursprüngliche Information,
die an den Chip übertragen
wird, durch den HU-Schlüssel
verschlüsselt
und die Ausgabe der verschlüsselten
Informationen kann nicht unmittelbar gelesen werden. Der HU-Schlüssel kann
in jeglichem, nicht flüchtigen
Speicher gespeichert werden.
-
Kurze Zusammenfassung der
Erfindung
-
In
einem Aspekt der Erfindung wird eine Vorrichtung zur Authentifizierung
eines Flash-Programms bereitgestellt. Die Vorrichtung umfasst einen eindeutigen
Hardware-Schlüssel, ein
Register, das eine Kundenidentität
(ID) speichert und eine Nachrichten-Authentifizierungs-Code/message
authentication code(MAC)-Erzeugungseinheit. Die MAC-Erzeugungseinheit
erlangt einen Wurzel-Schlüssel (root
key), der mit dem eindeutigen Hardware-Schlüssel und der Kunden-ID korrespondiert und
erzeugt eine MAC für
das Flash-Programm
unter Verwendung des erlangten Wurzel-Schlüssels, wobei der Inhalt des
Registers gesperrt wird, um Modifikationen der gespeicherten Kunden-ID
zu verhindern bis zum nächsten
System-Reset.
-
In
einem weiteren Aspekt der Erfindung wird ein Verfahren zur Authentifizierung
eines Flash-Programms offenbart. Das Verfahren wird durch ein elektronisches
Gerät durchgeführt und
umfasst: Erlangen eines eindeutigen Hardware-Schlüssels korrespondierend
zum elektronischen Gerät,
Erlangen einer Kundenidentität
(ID) korrespondierend zu einem Kunden; Erlangen eines Wurzel-Schlüssels korrespondierend
zu dem eindeutigen Hardware-Schlüssel und der
Kundenidentität;
und Erzeugen einer MAC für
das Flash-Programm
unter Verwendung des erlangten Wurzel-Schlüssels.
-
Ein
anderer Aspekt der Erfindung ist ein Verfahren zur Authentifizierung
eines Flash-Programms, das auch entsprechend offenbart wird. Das
Verfahren wird durch ein elektronisches Gerät durchgeführt und umfasst: Erlangen einer
MAC; Erlangen einer Kunden-ID korrespondierend zu einem Kunden;
Bestimmen, ob die MAC mit der Kunden-ID korrespondiert; und Booten
des elektrischen Geräts
mit dem Flash-Programm, wenn die MAC-Adresse mit der Kunden-ID korrespondiert.
-
In
einem anderen Aspekt der Erfindung wird eine Vorrichtung zur Authentifizierung
eines Flash-Programms bereitgestellt. Die Vorrichtung umfasst einen
eindeutigen Hardware-Schlüssel,
ein Register, das eine Kundenidentität speichert, eine Schlüssel-Erzeugungs-Einheit
und einen Zugriffsschutz-Schaltkreis. Die Schlüsselerzeugungs-Einheit erzeugt
einen Wurzel/Root-Schlüssel
korrespondierend zu der Kunden-ID und dem eindeutigen Hardware-Schlüssel, der
Inhalt des Registers wird gesperrt durch den Sperr-Schaltkreis, um Modifikationen
der gespeicherten Kunden-ID bis zum nächsten System-Reset zu verhindern.
-
Eine
detaillierte Beschreibung wird gegeben in den folgenden Ausführungsformen,
die Bezug nehmen auf die beigefügten
Zeichnungen.
-
Kurze Beschreibung der Zeichnungen
-
Die
vorliegende Erfindung kann besser verstanden werden durch Lesen
der folgenden detaillierten Beschreibung und Beispiele, die Bezug
nehmen auf die beigefügten
Zeichnungen:
-
1 ist
ein Blockdiagramm eines Verschlüsselungssystems.
-
2 ist
ein Blockdiagramm einer Hardware-Architektur
einer Ausführungsform
eines Flash-Programm-Managementsystems
gemäß der Erfindung.
-
3 ist
ein Blockdiagramm einer Ausführungsform
eines Verschlüsselungssystems
gemäß der Erfindung.
-
4 ist
ein schematisches Diagramm einer Ausführungsform eines Sperrschaltkreises
gemäß der Erfindung.
-
5 ist
ein Flussdiagramm einer Ausführungsform
einer Authentifikationsmethode durchgeführt durch ein Authentifikationssystem
gemäß der Erfindung.
-
6 ist
ein schematisches Diagramm einer MAC-Erzeugung während des Flash-Programm-Downloads.
-
7 ist
ein schematisches Diagramm einer MAC-Erzeugung und Validierung während des
System-Bootens.
-
8 ist
ein Diagramm einer Ausführungsform
einer MAC-Erzeugungseinheit gemäß der Erfindung.
-
9 ist
ein Diagramm einer anderen Ausführungsform
einer MAC-Erzeugungseinheit gemäß der Erfindung.
-
10 ist
ein Flussdiagramm einer anderen Ausführungsform eines Authentifikationsverfahrens, das
durch ein Authentifikationssystem gemäß der Erfindung durchgeführt wird.
-
11 ist
ein schematisches Diagramm für eine
MAC-Erzeugung und Validierung während
des System-Bootens.
-
Detaillierte Beschreibung
der Erfindung
-
Folgende
Beschreibung stellt den bestmöglichen
Modus für
eine Durchführung
der Erfindung dar. Die Beschreibung wurde zum Zwecke der Darstellung
von allgemeinen Prinzipien der Erfindung gemacht und ist nicht in
einem beschränkenden
Sinne zu verstehen. Der Schutz der Erfindung wird am besten durch
Bezugnahme auf die angefügten
Ansprüche
bestimmt.
-
1 ist
ein Blockdiagramm eines Verschlüsselungssystems.
Der Klartext 11 wird zur Chiffrierungseinheit 12 für die Verschlüsselung übertragen.
Die Chiffrierungseinheit 12 empfängt den Klartext 11,
um den chiffrierten Text 14 zu erzeugen, auch als verschlüsselter
Text bezeichnet, basierend auf einem eindeutigen Hardware-(HU)-Schlüssel. Dies
ist nicht der Stand der Technik zum Zwecke der Bestimmung der Patentfähigkeit
der Erfindung und zeigt ein Problem, das durch die Erfinder gefunden
wurde. Bei diesem System kann auf den HU-Schlüssel 13 nur durch
die Chiffrier-Einheit 12 zugegriffen werden und die Chiffriereinheit 12 kann
durch Software-Kontrolle manipuliert werden. Somit hat das System
einige Sicherheitslöcher.
So sind der HU-Schlüssel 13 und
die Chiffriereinheit 12 im Allgemeinen in einem Chip eingebettet,
bevor dieser ausgeliefert wird, und der HU-Schlüssel 13 kann nicht
modifiziert werden durch irgendwelche Mittel. Jedoch könnte ein
Hacker sehr einfach den Klartext 11 erlangen, indem er
eine Software erstellt, die entweder die Chiffriervorrichtung 12 manipuliert,
um den verschlüsselten
bzw. chiffrierten Text 14 zu entschlüsseln ohne dass der HU-Schlüssels 13 geknackt
wird.
-
2 ist
ein Blockdiagramm der Hardware-Architektur
einer Ausführungsform
eines Flash-Programm-Managementsystems
gemäß der Erfindung.
Das Flash-Programm-Managementsystem
ist in einem Chip oder einem elektronischen Gerät eingebettet. Wenn das gesamte
System resettet wird, führt
der Micro-Controller (MCU) 21 anfänglich das Boot-Programm aus, das
auf dem Boot-ROM gespeichert ist. Das ausgeführte Boot-Programm detektiert,
ob ein Flash-Programm herunter zu laden ist. Wenn ein Flash-Programm
herunter zu laden ist, werden die Kundeninformationen, die zu dem Flash-Programm korrespondieren,
bereitgestellt, wobei die Kundeninformationen eine Kunden-ID umfassen.
Die Kunden-ID der bereitgestellten Kundeninformationen wird im Folgenden
in das Register 22b geschrieben. Wenn die Kundeninformationen
im Register 22b gespeichert sind, verschließt der Verschluss-Schaltkreis 22a den
Inhalt des Registers 22b, um Modifikationen der gespeicherten
Kunden-ID zu verhindern bis zum nächsten System-Reset. Die Operationseinheit 25 empfängt die
Kunden-ID von Register 22b und den HU-Schlüssel 265, um
einen Wurzel-Schlüssel
zu erzeugen. In einer anderen Ausführungsform erzeugt die Operationseinheit 25 den
Wurzel-Schlüssel basierend
auf den Kundeninformationen und den HU- Schlüssel 26.
Die Nachrichten-Authentifikations-Code(MAC)-Erzeugungseinheit 23 erzeugt
einen MAC gemäß den Kundeninformationen
und dem Wurzel-Schlüssel.
Die MAC und die Kundeninformationen werden in einem externen Flash 29 über das
externe Speicherinterface (EMI) 27 gespeichert.
-
Wenn
ein Flash-Programm nicht herunter geladen wird, werden Kundeninformationen,
die mit einem Flash-Programm
korrespondieren vom externen Flash 29 über die EMI 27 erlangt,
wobei die Kundeninformationen eine Kunden-ID umfassen und das Flash-Programm
wird im externen Flash 29 gespeichert. Eine MAC wird vom
externen Flash 29 über
die EMI 27 erlangt. Es wird bestimmt, ob die erlangte MAC
mit den erlangten Kundeninformationen konform ist. Nachdem bestimmt
wurde, dass der MAC mit den Kundeninformationen konform ist, wird
mit dem Flash-Programm ein System-Booten durchgeführt.
-
3 ist
ein Blockdiagramm einer Ausführungsform
eines Verschlüsselungssystems
gemäß der Erfindung.
Die Operationseinheit empfängt
den HU-Schlüssel 31 und
die Kunden-ID 32, um einen Wurzel-Schlüssel oder einen MAC zu erzeugen.
Ein Software-kontrollierbares Register (Software UID) wird verwendet,
um die Kundeninformationen zu speichern, wie z. B. die Kunden-ID 32.
Der Verschluss-Schaltkreis 32 verschließt das Register, das die Kunden-ID
speichert, um Modifikationen der gespeicherten Kunden-ID bis zum
nächsten
System-Reset zu verhindern. Die Chiffrier-Vorrichtung 36 empfängt den
Klartext 35, um einen chiffrierten Text 37 zu
erzeugen, auch als verschlüsselter
Text bezeichnet, basierend auf der Ausgabe von der Betriebseinheit 34.
In diesem System wird der HU-Schlüssel während der Herstellung des Chips bereitgestellt
und die Kunden-ID wird durch den Kunden mitgeteilt. In diesem System
wird die eindeutige Kunden-ID in Verbindung mit dem HU-Schlüssel verwendet,
um die Verschlüsselung
und Entschlüsselung
durchzuführen.
Dies macht den chiffrierten Text eindeutig für jeden Kunden (im Allgemeinen
eine eindeutige Kunden-ID), auch wenn der HU-Schlüssel der
gleiche ist. Der Inhalt des Registers wird geschrieben und verriegelt/gesperrt
durch ein Boot-ROM-Programm
wie z. B. das, das im Boot-ROM 24 der 2 nach
der Zertifizierung gespeichert wurde.
-
4 ist
ein schematisches Diagramm einer Ausführungsform eines Sperrschaltkreises
gemäß der Erfindung.
Während
des System-Resettens wird ein Signal-System-Reset als Eingabe des
D flip-flog 42 verwendet, um die Daten, die darin gesperrt
sind, zu löschen.
Der D flip-flog 42 weist einen Clock-Input-Terminal bzw.
Anschluss auf, das ein Signal-REG_WR_1 empfängt, und einen Dateneingabe-Anschluss
bzw. Terminal, der den Output eines ODER-Gatters 41 empfängt. Das
ODER-Gatter hat einen ersten Eingangsanschluss bzw. ein Input-Terminal,
das ein Kontrollsignal empfängt
und ein zweites Input-Terminal, das mit dem Output-Terminal Q des
flip-flops 22 verbunden ist. Ein Inverter 43 empfängt und
invertiert das Output-Ausgabesignal vom D flip-flog 42 und
das invertierte Signal wird dann an ein UND-Gatter 44 gesendet.
Das UND-Gatter 44 empfängt
weiterhin ein Signal REG_WR_2. Das Signal REG_WR_2 kann konstant
auf 1 gesetzt sein. Der D flip-flog 45 hat einen Clock-
bzw. Zeit-Input-Terminal, der
das Output-Signal des UND-Gatters 44 empfängt und
einen Dateneingabeanschluss bzw. ein Terminal, das die Kunden-ID
empfängt.
Da lediglich eine D flip-flog-Einheit ein Bit verriegelt, hängt die
Anzahl von D flip-flops 45 von der Anzahl von Bits der
Kunden-ID ab. Das Kundensignal wird auf Null gesetzt, wenn die Kunden-ID
auf das D flip-flog 45 schreibt und das Kontroll-Signal
wird auf 1 gesetzt nach Abschluss des Schreibens der Kunden-ID.
Wenn die Kunden-ID auf den D flip-flog 45 schreibt, werden
das Signal REC_WR_1 und das Signal REC_WR_2 bestimmt. In dieser
Ausführungsform werden
das Signal REC_WR_1 und das Signal REK_WR_2 durch das Boot-ROM-Programm
kontrolliert. Es versteht sich, dass das ODER-Gatter 41,
der D flip-flog 42, der Inverter 43 und das UND-Gatter 44 als
Verschluss/Verriegelungsschaltkreis betrachtet werden können. Sobald
ein System-Reset-Signal als Input für den D flip-flog 42 gegeben
wird, ist die Ausgabe des D flip-flog 42 Null, das das
UND-Gatter 44 aktiviert, um das invertierte Signal von
Eins zu empfangen und dann geht der Clock-Input des D flip-flops 45 auf
HIGH/Hoch, so dass es erlaubt wird, dass die Kunden-ID in den D
flip-flog geschrieben wird. Danach bleibt der Ausgang des D flip-flops 42 auf
Eins bis ein anderes Signal SYSTEM RESET als Eingabe an den D flip-flog 42 gegeben
wird, was es dem Kunden wiederum erlaubt, die Kunden-ID konstant
durch den D flip-flog 45 zu verriegeln.
-
5 ist
ein Flussdiagramm einer Ausführungsform
eines Authentifikationsverfahrens, durchgeführt durch ein Authentifikationssystem
gemäß der Erfindung.
Im Schritt S501 wird das gesamte System resetted/zurückgesetzt.
Im Schritt S502 detektiert das Authentifikationssystem, ob ein Flash-Programm herunter
zu laden ist aufgrund eines externen Kontrollsignals. Es ist zu
beachten, dass das Flash-Programm von einer externen elektronischen
Vorrichtung herunter geladen werden kann, wie z. B. einem Personal
Computer, einem Notebook, einem Personal Digital Assistant, einem
mobilen Telefon, einem Smart Phone oder ähnlichem. Falls ein Flash-Programm darauf wartet,
herunter geladen zu werden, führt
das Verfahren die Schritte S503 bis S509 durch. Falls es kein Flash-Programm
gibt, das herunter zu laden ist, so geht das Verfahren weiter mit
Schritt S510 bis S515. In Schritt S503, werden Kundeninformationen,
die mit dem Flashprogramm korrespondieren, für die Authentifikation bereitgestellt,
wobei die Kundeninformationen eine Kunden-ID umfassen. In Schritt
S505, wenn die Kundeninformationen zertifiziert werden, springt
die Prozedur zu Schritt S506. Wenn die Kundeninformationen nicht
zertifiziert wurden, springt die Prozedur in einen Fehlerbehandlungsstatus.
In Schritt S506 verlangt das Authentifikationssytem eine Kunden-ID
von dem bereitgestellten Kundeninformationen und sichert die Kunden-ID in einem Register
(im Allgemeinen 22b der 2 oder 45 der 4),
im Schritt S507. Dann in Schritt S508 erzeugt das Authentifikationssystem
eine MAC für
die bereitgestellten Kundeninformationen unter Verwendung eines
HU-Schlüssels
(im Allgemeinen 26 der 2) und die
Kunden-ID, die im Register gespeichert ist. In Schritt S509 schreibt
das Authentifikationssystem die Kundeninformationen, die erzeugte
MAC und das Flash-Programm auf einen externen Flash-Memory/Flash-Speicher
(im Allgemeinen 29 der 2). Nach
dem Schritt S509 wird das gesamte System erneut resetted.
-
Falls
es kein Flash-Programm gibt, das herunter zu laden ist, so springt
die Prozedur zu Schritt S510. In Schritt S510 liest das Authentifikationssystem
die Kundeninformation von einem externen Flash-Speicher und erlangt
eine Kunden-ID von den gelesenen Kundeninformationen in Schritt
S511. Schritt S512 schreibt das Authentifikationssystem und sichert
die Kunden-ID in einem Register (im Allgemeinen 22b der 2 oder 45 der 4).
In Schritt S513 erzeugt das Authentifikationssystem eine MAC für die bereitgestellten
Kundeninformationen unter Verwendung des HU-Schlüssels (im allgemeinen 26 der 2)
und die Kunden-ID, die im Register gespeichert ist. Im Schritt S514
bestimmt das Authentifikationssystem, ob die MAC die gleiche ist, wie
die MAC, die im externen Flash-Speicher gespeichert wurden. Falls
nicht, springt die Prozedur zu einem Fehlerbehandlungszustand. Falls
ja, wird das gesamte System mit dem Flash-Programm gespeichert,
das im externen Flash- Memory
gespeichert wurde. Es versteht sich, dass das Authentifikationssystem
durch dedizierte Hardware-Schaltkreise
oder eine MCU (im allgemeinen 21 der 2)
umgesetzt werden kann.
-
6 ist
ein schematisches Diagramm für eine
MAC-Erzeugung während eines
Flash-Programm-Downloads. Unter Bezugnahme auf die Schritte S503
bis S509 der 5 ergibt sich, dass vor dem
Herunterladen eines Flash-Programms die erste Kundeninformation 61,
die zum Flashprogramm korrespondiert, für die Authentifikation bereitgestellt
wird. Wenn eine erste Kundeninformation 61 zertifiziert
ist, so wird die erste Kundeninformation 61 umfassend eine
erste Kunden-ID 61a an eine MAC-Erzeugungseinheit 65 übertragen,
und die erste Kunden-ID 61a wird in das Register 62 geschrieben.
Wenn das ganze System resetted wird, säubert das oben genannte Boot-ROM-Programm
den ursprünglichen
Inhalt des Registers 62 und schreibt die Kundeninformationen
in das Register 62. In dieser Ausführungsform wird der Inhalt
des Registers 62 gesperrt, um Modifikationen der gespeicherten
Kunden-ID zu verhindern bis zum nächsten System-Reset. Wenn die
Kundeninformationen nicht zertifiziert sind, springt die MAC-Erzeugungsprozedur
in einen Fehlerbehandlungsstatus. Die Betriebseinheit 64 erlangt
die erste Kunden-ID vom Register 62 und ein HU-Schlüssel, um
einen Wurzel-Schlüssel
zu erzeugen. Die MAC-Erzeugungseinheit 65 erzeugt einen ersten
MAC 67 basierend auf dem Wurzel-Schlüssel und den ersten Kundeninformationen 61.
Die MAC-Erzeugungseinheit 65 kann das erste MAC 67 durch
Verschlüsseln
der ersten Kundeninformation 61 unter Verwendung des Wurzel-Schlüssels erzeugen.
Es versteht sich, dass der erste MAC 67 verwendet wird,
um die Validität
und die Integrität
der ersten Kundeninformationen 61 zu verifizieren. Modifikationen
von einem ersten MAC 67 und dem ersten Kundeninformationen 61 würden die
folgende Authentifikation verletzen. In einer anderen Ausführungsform
kann die MAC-Erzeugungseinheit 65 ersetzt werden durch
einen Schlüsselgenerator,
um einen anderen eindeutigen Schlüssel zu erzeugen, basierend
auf dem Wurzel-Schlüssel
und der ersten Kunden-ID 61a. Dann werden die Kundeninformationen 61 und
die erste MAC 67 in ein externes Flash-Memory 66 geschrieben.
In dieser Ausführungsform
kann der Wurzel-Schlüssel
ein arithmetisches Ergebnis des HU-Schlüssels 63 und der ersten Kunden-ID 61a sein.
So kann z. B. der Wurzel-Schlüssel
erzeugt werden durch Addieren des HU-Schlüssels 63 mit der Kunden-ID 61a,
Subtrahieren des HU-Schlüssels 63 von
der Kunden-ID, Multiplizieren der Kunden-ID 61 mit dem
HU-Schlüssel 63 oder
Dividieren der Kunden-ID 61a mit dem HU-Schlüssel 63.
Weiterhin kann der Wurzel-Schlüssel
ein Bit- weises AND, ODER oder XOR-Ergebnis der Kunden-ID 61a mit
dem HU-Schlüssel 63 sein.
In einer anderen Ausführungsform
kann der Wurzel-Schlüssel
ein arithmetisches Ergebnis des HU-Schlüssels 63 und
der Kundeninformation 61 sein. In dieser Ausführungsform
kann die MAC-Erzeugung 65 durchgeführt werden durch Hardware-Schaltkreise
oder einen Prozessor der einen entsprechenden Programmcode ausführt.
-
7 ist
ein schematisches Diagramm für eine
MAC-Erzeugung und
Validierung während
des System-Bootens. Bezieht man sich auf die Schritte S510 bis S515
der 5, und wird angenommen, dass die zweite Kundeninformation 72 eine
zweite Kunden-ID 72a umfasst und eine zweite MAC 73,
wie bereits in einem externen Flash-Memory 71 bereitgestellt
vor dem aktuellen System-Reset; so liest ein Authentifikationssystem
die zweite Kundeninformation 72 vom externen Flash-Memory 71 und
erlangt die zweite Kunden-ID 72b von der gelesenen Kundeninformation.
Wenn das gesamte System resetted wird, so löscht das oben genannte Boot-ROM- Programm den originalen
Inhalt des Registers 62 und schreibt die zweite Kunden-ID 72a in
ein Register 76. In dieser Ausführungsform wird der Inhalt
des Registers 76 geblockt bzw. gesperrt, um Modifikationen
der gespeicherten Kunden-ID bis zum nächsten System-Reset zu verhindern. Ähnlich zur
Betriebseinheit 64 der 6 verlangt
die Betriebseinheit 78 die zweite Kunden-ID vom Register 76 und
einen HU-Schlüssel 77,
um einen Wurzel-Schlüssel
zu erzeugen. Die MAC-Erzeugungseinheit 74 erzeugt
den dritten MAC 75 basierend auf dem Wurzel-Schlüssel und
der zweiten Kunden-ID 72b. Es versteht sich, dass die Erzeugungsalgorithmen
des Wurzel-Schlüssels und der
dritten MAC 75 die gleichen sein sollten wie zur Erzeugung
der zweiten MAC 73. Ein MAC-Komparator 79 authentifiziert
ein Flash-Programm des externen Flash-Speichers 71 durch das Bestimmen,
ob die erzeugte dritte MAC 75 die gleiche ist wie die zweite
MAC 73, die im externen Flash-Memory bzw. Flash-Speicher 71 gespeichert
ist. Falls dies nicht der Fall ist, springt die Prozedur in einen
Fehlerbehandlungs-Status über.
Falls ja, wird ein System-Booten durchgeführt mit
dem im externen Flash-Speicher 71 gespeicherten Flash-Programm.
Es kann somit abgeleitet werden, dass das Flash-Programm nur erfolgreich
authentifiziert wird (im Allgemeinen wenn die zweite MAC 73 äquivalent
ist zur dritten MAC 75), wenn die erste Kundeninformation 61,
Kunden-ID 61a und MAC 67 entsprechend gleich der
zweiten Kundeninformation 72, der Kunden-ID 72a und
der MAC 73 sind. In dieser Ausführungsform kann die MAC-Erzeugung 74 durch
Hardware-Schaltkreise oder durch einen Prozessor (im allgemeinen 21 der 2)
der den Programm-Code
ausführt,
erfolgen.
-
8 ist
ein Diagramm einer Ausführungsform
einer MAC-Erzeugungseinheit gemäß der Erfindung
umfassend eine Hash-Einheit und eine Verschlüsselungseinheit 82.
Die Hash- Einheit 81 empfängt die
Kundeninformation und erzeugt einen Hash-Wert der Kundeninformationen
unter Verwendung einer wohlbekannten Hash-Funktion. Die Hash-Funktion
wandelt eine variable Länge
von Kundeninformationen in eine feste Länge und einen relativ kleinen
Output (im allgemeinen Hash-Wert) der als digitaler „Fingerabdruck" der Kundeninformationen dient.
Die Verschlüsselungseinheit 82 erzeugt
eine MAC durch verschlüsseln
des Hash-Wertes unter Verwendung des Wurzel-Schlüssels.
-
9 ist
ein Diagramm einer anderen Ausführungsform
einer MAC-Erzeugungseinheit gemäß der Erfindung
umfassend eine Datenverbindungseinheit 91 und eine Hash-Einheit 93.
Die Datenverbindungseinheit 91 verbindet die Kundeninformationen mit
dem Wurzel-Schlüssel,
um ein verbundenes Ergebnis zu erzeugen. In dieser Ausführungsform
kann das verbundene Resultat ein arithmetisches Resultat des Wurzel-Schlüssels und
der Kundeninformation sein. Die Hash-Einheit 92 erzeugt einen Hash-Wert des
verbundenen Resultats der Kundeninformationen mit dem Wurzel-Schlüssel unter
Verwendung einer wohlbekannten Hash-Funktion bezeichnet als MAC.
-
10 ist
ein Flussdiagramm einer anderen Ausführungsform eines Authentifikationsverfahrens, durchgeführt durch
einen Authentifikationssystem gemäß der Erfindung. In Schritt
S101 wird das ganze System resetted. Im Schritt S102 detektiert
das Authentifikationssystem, ob ein Flash-Programm gemäß den externen
Kontrollsignalen herunter geladen werden soll. Es ist zu beachten,
dass das Flash-Programm
von einem externen elektronischen Gerät wie z. B. einem Personal
Computer, einem Notebook, einem Personal Digital Assistant, ein
Mobiles Telefon, ein Smart Phone oder ähnlichem herunter geladen werden
kann. Falls ein Flash-Programm
wartet, dass es herunter geladen werden soll, bearbeitet das Verfahren
die Schritte S103 bis S109. Falls es kein Flash-Programm gibt, das
herunter geladen werden soll, führt
das Verfahren die Schritte S110 bis S115 durch. Im Schritt S503
werden Kundeninformationen, die mit dem Flash-Programm korrespondieren, für die Authentifikation
bereitgestellt, wobei die Kunden-Informationen eine Kunden-ID umfassen. In Schritt
S105 springt, nachdem die die Kundeninformationen bestätigt wurden,
die Prozedur zu Schritt S106. Falls die Kundeninformationen nicht
bestätigt werden,
springt die Prozedur in einen Fehlerbehandlungszustand. In Schritt
S106 erlangt das Authentifikationssystem eine Kunden-ID von dem bereitgestellten
Kundeninformationen und schreibt und sperrt die Kunden-ID in ein
Register (im Allgemeinen 22b der 2 oder 45 der 4)
in Schritt S107. Dann, in Schritt S108 erzeugt das Authentifikationssystem eine
MAC für
die bereitgestellten Kundeninformationen unter Verwendung eines
HU-Schlüssels
(im allgemeinen 26 der 2 und die
Kunden-ID, die im Register gespeichert ist). Im Schritt S109 schreibt das
Authentifikationssystem die Kundeninformationen die Kundeninformationen,
die erzeugte MAC und das Flash-Programm
auf einen externen Flash-Speicher (im allgemeinen 29 der 2).
Nach dem Schritt S109 wird das ganze System erneut resetted.
-
Falls
es kein Flash-Programm gibt, das herunter zu laden ist, springt
die Prozedur zu Schritt S110. In Schritt S110 liest das Authentifikationssystem
die MAC von einem externen Flash-Speicher und erlangt einen zweiten
Hash-Wert durch Entschlüsseln
der gelesenen MAC in Schritt S111. Dann erlangt das Authentifikationssystem
die Kundeninformationen vom externen Flash in Schritt S112 und überträgt die Kundeninformationen
an einen Hash-Wert-Generator, um einen ersten Hash-Wert zu erzeugen
von den erlangten Kundeninformationen Schritt S113. In Schritt S114
bestimmt das Authentifikationssystem, ob der erste Hash-Wert der
gleiche ist wie der zweite Hash-Wert. Falls ja, springt die Prozedur
zu Schritt S115 und das gesamte System bootet mit dem Flash-Programm,
das ursprünglich
auf dem externen Speicher gespeichert wurde. Falls nicht, springt
die Prozedur in einen Fehlerbehandlungszustand. Es versteht sich,
dass das Authentifikationssystem durch dedizierte Hardware-Schaltkreise oder eine
MCU (im allgemeinen 21 der 2) praktiziert werden
kann.
-
11 ist
ein schematisches Diagramm zur MAC-Erzeugung und Validierung während des
System-Bootens. Es wird aus Schritt S110 bis S115 der 10 verwiesen
und angenommen, dass die zweite Kundeninformation 1001 eine
zweite Kunden-ID 1012 umfasst und eine zweite MAC 1002,
die bereits in einem externen Flash-Speicher 1003 bereitgestellt wird,
bevor das aktuelle System resetted wird. Das gesamte System wird
resetted, das oben genannte Boot-Programm löscht den originalen Inhalt
des Registers 1006 und der Kunde schreibt die Kunden-ID 1012 in
das Register 1006. In dieser Ausführungsform wird der Inhalt
des Registers gesperrt, um Modifikationen der Kunden-ID bis zum
nächsten
System-Reset zu verhindern. Die Verschlüsselungseinheit 1008 erlangt
die zweite MAC 1002 vom externen Flash-Memory 1003.
Danach erzeugt die Verschlüsselungseinheit 1008 einen
zweiten Hash-Wert 1009 basierend
auf einem Root-Schlüssel.
Die Operationseinheit 1010 erlangt eine Kunden-ID vom Register 1006 und
der HU-Schlüssel 1007,
um den Wurzel-Schlüssel
zu erzeugen. Ein Hash-Wert-Generator 1004 erlangt die zweiten
Kundeninformationen 1001 vom externen Flash-Speicher 1001 und
erzeugt einen ersten Hash-Wert 1005 für die erlangte Kundeninformation 1001 unter
Verwendung einer wohlbekannten Hash-Funktion. Der Hash-Wert-Komparator 1011 vergleicht
dann den ersten Hash-Wert 1005 und den zweiten Hash-Wert 1009.
Wenn der erste Hash-Wert 1005 der gleiche ist wie der zweite Hash-Wert 1009 wird
ein Signal durch den Hash-Wert-Komparator 1011 ausgegeben,
um anzuzeigen, dass ein Flash-Programm
korrespondiert zur zweiten Kundeninformation 1001 authentifiziert
wird. Andernfalls wird ein Signal durch den Hash-Wert-Komparator 1011 aufgegeben,
um anzuzeigen, dass ein Flashprogramm, das mit der zweiten Kundeninformation 1001 korrespondiert
nicht authentifiziert wird. In dieser Ausführungsform kann der Hash-Wert-Komparator 1011 als
Hardware-Schaltkreis oder als Prozessor (im allgemeinen 21 der 2)
ausgebildet sein, der entsprechende Software-Code ausführt.
-
Auch
wenn die Erfindung durch Beispiele und mit Bezugnahme auf bevorzugte
Ausbildungsformen beschrieben wurde, versteht es sich, dass sie darauf
nicht beschränkt
ist. Im Gegenteil, es ist beabsichtigt, eine Vielzahl von Modifikationen
und ähnlichen
Anordnungen (wie sie einem Fachmann auf diesem Gebiet nahe liegen
würden)
abzudecken. Daher ergibt sich, dass der Schutzumfang der folgenden Ansprüche der
breitesten Interpretation zugänglich sein
sollte, sodass all solche Modifikationen und ähnlichen Anordnungen dadurch
abgedeckt sind.