Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR PROCESSING DATA ASSOCIATED WITH A HARDWARE SECURITY MODULE
Document Type and Number:
WIPO Patent Application WO/2024/028134
Kind Code:
A1
Abstract:
Method for processing data associated with a hardware security module, comprising: determining first information which characterizes an identity of at least one partition of a computing device that is designed to access the hardware security module, for example accesses the hardware security module, and optionally using the first information, for example to control operation of the hardware security module on the basis of at least the first information.

Inventors:
AKTAS HAKAN (DE)
SCHMUELLING JENS (DE)
ASSEL MARTIN (DE)
POINSTINGL PETER (AT)
HOETTGES DANIEL (DE)
STUMPF FREDERIC (DE)
VIJAYA KRISHNAN APARNA (DE)
Application Number:
PCT/EP2023/070336
Publication Date:
February 08, 2024
Filing Date:
July 21, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06F21/72; G06F21/57; G06F21/74
Foreign References:
DE102019220461A12021-06-24
Other References:
SHIAO-LI TSAO ET AL: "Performance Evaluation of Inter-Processor Communication for an Embedded Heterogeneous Multi-Core Processor", JOURNAL OF INFORMATION SCIENCE AND ENGINEERING, vol. 28, 1 January 2012 (2012-01-01), pages 537 - 554, XP055513028
Download PDF:
Claims:
Ansprüche

1 . Verfahren zum Verarbeiten von mit einem Hardware-Sicherheitsmodul (100; 100'; 100") assoziierten Daten, aufweisend: Ermitteln (200) von ersten Informationen (1-1), die eine Identität (302-1-ID) wenigstens einer zum Zugriff (A1) auf das Hardware-Sicherheitsmodul (100; 100'; 100") ausgebildeten, beispielsweise auf das Hardware-Sicherheitsmodul (100; 100'; 100") zugreifenden, Partition (302-1) einer Recheneinrichtung (300) charakterisieren, und, optional, Verwenden (202) der ersten Informationen (I- 1), beispielsweise für eine Steuerung eines Betriebs des Hardware- Sicherheitsmoduls (100; 100'; 100") basierend wenigstens auf den ersten Informationen (1-1).

2. Verfahren nach Anspruch 1 , wobei das Ermitteln (200) der ersten Informationen (1-1) wenigstens eines der folgenden Elemente aufweist: a) Ermitteln (200a) der ersten Informationen (1-1) basierend auf einem Kommunikationskanal (K1), der, beispielsweise statisch, beispielsweise ausschließlich, mit der wenigstens einen Partition (302-1) assoziiert ist, b) Empfangen (200b) der ersten Informationen (1-1) über einen Kommunikationskanal (K), der zumindest zeitweise von der wenigstens einen Partition (302-1) verwendbar ist, wobei beispielsweise der Kommunikationskanal (K), beispielsweise im Zeitmultiplex, durch mehrere Partitionen (302-1 , 302-2, ...) verwendbar ist.

3. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Empfangen (210) von zweiten Informationen (I-2), beispielsweise einer Unterbrechungsanforderung und/oder assoziiert mit einer Unterbrechungsanforderung, von der wenigstens einen Partition (302- 1), Ermitteln (212) der ersten Informationen (1-1) basierend auf einem Kommunikationskanal (K1), über den die zweiten Informationen (I-2) empfangen worden sind. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Verwenden (220) mehrerer Kommunikationskanäle (K1 , K2, ...) für eine Kommunikation mit unterschiedlichen Partitionen (302-1 , 302-2, ...) der Recheneinrichtung (300), beispielsweise Verwenden (220a) eines ersten Kommunikationskanals (K1) der mehreren Kommunikationskanäle (K1 , K2, ...), beispielsweise ausschließlich, für eine Kommunikation mit einer ersten Partition (302-1) und Verwenden (220b) eines zweiten Kommunikationskanals (K2) der mehreren Kommunikationskanäle (K1 , K2, ...), beispielsweise ausschließlich, für eine Kommunikation mit einer zweiten Partition (302-2), b) Verwenden (222) eines, beispielsweise gemeinsamen, Kommunikationskanals (K) für eine Kommunikation mit unterschiedlichen Partitionen (302-1 , 302-2, ...) der Recheneinrichtung (300), beispielsweise basierend auf einem Zeitmultiplex-Verfahren. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Verwenden (225) eines ersten Speicherbereichs (SB-1), beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines ersten Kommunikationskanals (K1), b) Verwenden (227) eines zweiten Speicherbereichs (SB-2), beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines zweiten Kommunikationskanals (K2), c) Verwenden (229) eines dritten Speicherbereichs (SB-3), beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines gemeinsamen Kommunikationskanals (K) für eine Kommunikation mit unterschiedlichen Partitionen (302-1 , 302-2, ...) der Recheneinrichtung (300). Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Verwenden (230) eines geteilten Speicherbereichs (SH-MEM), beispielsweise shared memory, beispielsweise eines Arbeitsspeichers, beispielsweise RAM, beispielsweise zum Austauschen von Informationen, beispielsweise Daten, mit der wenigstens einen Partition (302-1 , 302-2, ...), b) Virtualisieren (232) des geteilten Speicherbereichs (SH-MEM), beispielsweise aufweisend ein Zuordnen unterschiedlicher Teilbereiche (SH-MEM-1 , SH-MEM-2, ...) zu jeweils einer anderen Partition (302-1 , 302-2, ...) der Recheneinrichtung (300), c) Verwenden (234) einer Speicherschutzeinrichtung (MPU), beispielsweise einer dynamischen Speicherschutzeinrichtung, D-MPLI, beispielsweise zum, z.B. dynamischen, Schützen wenigstens mancher Speicherbereiche vor Zugriffen wenigstens mancher Partitionen (302-1 , 302- 2, ...) der Recheneinrichtung (300).

7. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Konfigurieren (240) einer bzw. der Speicherschutzeinrichtung (MPU), beispielsweise dynamischen Speicherschutzeinrichtung, D-MPLI, wobei beispielsweise das Konfigurieren (240) so erfolgt, dass die Speicherschutzeinrichtung wenigstens einen Speicherbereich, der z.B. mit einer ersten Partition (302-1) assoziiert ist, vor Manipulationen durch wenigstens eine weitere Partition (302-2, ...) schützt.

8. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Zuordnen (245) einer Priorität (PR-1) zu der wenigstens einen Partition (302-1), Ausführen (247) einer mit der wenigstens einen Partition (302-1) assoziierten Operation (OP-302-1) basierend wenigstens auf der Priorität (PR-1) der wenigstens einen Partition (302-1).

9. Vorrichtung (400) zur Ausführung des Verfahrens nach wenigstens einem der vorstehenden Ansprüche.

10. Hardware-Sicherheitsmodul (100; 100'; 100") aufweisend wenigstens eine Vorrichtung (400) nach Anspruch 9.

11. Recheneinrichtung (300), beispielsweise System on Chip, SoC, (1000; 1000'; 1000"), aufweisend wenigstens eines der folgenden Elemente: a) Vorrichtung (400) nach Anspruch 9, b) Hardware-Sicherheitsmodul (100; 100'; 100") nach Anspruch 10, c) wenigstens eine Partition (302-1 , 302-2, ...).

12. Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul (100; 100'; 100") assoziierten Daten, aufweisend: Bereitstellen (250) einer Identität (302-1-ID) für wenigstens eine zum Zugriff (A1) auf das Hardware- Sicherheitsmodul (100; 100'; 100") ausgebildete, beispielsweise auf das Hardware-Sicherheitsmodul (100; 100'; 100") zugreifende, Partition (302-1) einer Recheneinrichtung (300), Übermitteln (252) von die Identität (302-1-ID) charakterisierenden Informationen (l-ID) an das Hardware-Sicherheitsmodul (100; 100'; 100"), beispielsweise über einen, z.B. für mehrere Partitionen (302-1 , 302-2, ...) gemeinsamen Kommunikationskanal (K). Verfahren nach Anspruch 12, wobei das Bereitstellen (250) und/oder das Übermitteln (252), beispielsweise vollständig, hardwarebasiert erfolgt. Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul (100; 100'; 100") assoziierten Daten, aufweisend: Bereitstellen (260) eines ersten Kommunikationskanals (K1) für einen Informationsaustausch zwischen einer, beispielsweise genau einer, ersten Partition (302-1) einer Recheneinrichtung (300) und dem Hardware-Sicherheitsmodul (100; 100'; 100"), und, optional Verwenden (262) des ersten Kommunikationskanals (K1) für den Informationsaustausch zwischen der ersten Partition (302-1) der Recheneinrichtung (300) und dem Hardware-Sicherheitsmodul (100; 100'; 100"). Verfahren nach Anspruch 14, aufweisend: Bereitstellen (264) eines zweiten Kommunikationskanals (K2) für einen Informationsaustausch zwischen einer, beispielsweise genau einer, zweiten Partition (302-2) der Recheneinrichtung (300) und dem Hardware-Sicherheitsmodul (100; 100'; 100"), und, optional Verwenden (266) des zweiten Kommunikationskanals (K2) für den Informationsaustausch zwischen der zweiten Partition (302-2) der Recheneinrichtung (300) und dem Hardware-Sicherheitsmodul (100; 100'; 100"). Vorrichtung (301) zur Ausführung des Verfahrens nach wenigstens einem der Ansprüche 12 bis 15. Computerlesbares Speichermedium (SM), umfassend Befehle (PRG), die bei der Ausführung durch einen Computer (202) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 8 und/oder 12 bis 15 auszuführen. Computerprogramm (PRG), umfassend Befehle, die bei der Ausführung des Programms (PRG) durch einen Computer (202) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 8 und/oder 12 bis 15 auszuführen. Datenträgersignal (DCS), das das Computerprogramm nach Anspruch 18 überträgt und/oder charakterisiert. Verwendung (500) des Verfahrens nach wenigstens einem der Ansprüche 1 bis 8 und/oder 12 bis 15 und/oder der Vorrichtung (400) nach Anspruch 9 und/oder des Hardware-Sicherheitsmoduls (100; 100'; 100") nach Anspruch 10 und/oder der Recheneinrichtung (300) nach Anspruch 11 und/oder der Vorrichtung (301) nach Anspruch 16 und/oder des computerlesbaren Speichermediums (SM) nach Anspruch 17 und/oder des Computerprogramms (PRG) nach Anspruch 18 und/oder des Datenträgersignals (DCS) nach Anspruch 19 für wenigstens eines der folgenden Elemente: a) Ermitteln (501) von ersten Informationen (1-1), die eine Identität (302-1-ID) wenigstens einer zum Zugriff (A1) auf das Hardware-Sicherheitsmodul (100; 100'; 100") ausgebildeten, beispielsweise auf das Hardware-Sicherheitsmodul (100; 100'; 100") zugreifenden, Partition (302-1) einer Recheneinrichtung (300) charakterisieren, b) Virtualisieren (502) eines Hardware-Sicherheitsmoduls (100; 100'; 100"), c) Ermitteln (503) einer Identität einer Partition (302-1 , 302-2, ...), die auf das Hardware- Sicherheitsmodul (100; 100'; 100") zugreift, d) Priorisieren (504) von mit unterschiedlichen Partitionen (302-1 , 302-2, ...) einer Recheneinrichtung (300) assoziierten Operationen basierend auf einer Identität wenigstens einer der unterschiedlichen Partitionen (302-1 , 302-2, ...), e) Steigern (505) einer Sicherheit eines Hardware-Sicherheitsmoduls (100; 100'; 100"), auf das mehrere Partitionen (302-1 , 302-2, ...) einer Recheneinrichtung (300) zugreifen können.

Description:
Beschreibung

Titel

Verfahren und Vorrichtung zum Verarbeiten von mit einem Hardware- Sicherheitsmodul assoziierten Daten

Stand der Technik

Die Offenbarung betrifft ein Verfahren zum Verarbeiten von mit einem Hardware- Sicherheitsmodul assoziierten Daten.

Die Offenbarung betrifft ferner eine Vorrichtung zum Verarbeiten von mit einem Hardware-Sicherheitsmodul assoziierten Daten.

Offenbarung der Erfindung

Beispielhafte Ausführungsformen beziehen sich auf ein Verfahren zum Verarbeiten von mit einem Hardware-Sicherheitsmodul assoziierten Daten, aufweisend: Ermitteln von ersten Informationen, die eine Identität wenigstens einer zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildeten, beispielsweise auf das Hardware-Sicherheitsmodul zugreifenden, Partition einer Recheneinrichtung charakterisieren, und, optional, Verwenden der ersten Informationen, beispielsweise für eine Steuerung eines Betriebs des Hardware- Sicherheitsmoduls basierend wenigstens auf den ersten Informationen. Bei weiteren beispielhaften Ausführungsformen kann dadurch z.B. sichergestellt werden, dass verschiedene Partitionen der Recheneinrichtung bzw. mit den verschiedene Partitionen assoziierte Computerprogramme wie z.B. Anwendungsprogramme nicht durch das Hardware-Sicherheitsmodul verarbeitbare Daten anderer Partitionen manipulieren.

Bei weiteren beispielhaften Ausführungsformen ist das Hardware- Sicherheitsmodul dazu ausgebildet, kryptografische Primitiven und/oder Funktionen auszuführen, wie z.B. Verschlüsseln und/oder Entschlüsseln und/oder Bildung von Hashwerten und/oder Bildung von Nachrichten- Authentifizierungscodes, usw.

Bei weiteren beispielhaften Ausführungsformen weist das Hardware- Sicherheitsmodul einen Schlüsselspeicher zum Speichern kryptografischer Schlüssel auf. Beispielsweise ist basierend auf den ersten Informationen steuerbar, welche von mehreren Partitionen, die Funktionen des Hardware- Sicherheitsmoduls nutzen können, bestimmte kryptografische Schlüssel verwenden dürfen. Z.B. kann bei weiteren beispielhaften Ausführungsformen vorgesehen sein, dass manche Partitionen nur bestimmte kryptografische Schlüssel verwenden dürfen, andere Partitionen hingegen z.B. alle kryptografischen Schlüssel, usw.

Bei weiteren beispielhaften Ausführungsformen weist die wenigstens eine Partition wenigstens einen Rechenkern auf, und, optional, einen dem Rechenkern zugeordneten Speicher, z.B. Arbeitsspeicher, z.B. RAM (random access memory).

Bei weiteren beispielhaften Ausführungsformen weist das Ermitteln der ersten Informationen wenigstens eines der folgenden Elemente auf: a) Ermitteln der ersten Informationen basierend auf einem Kommunikationskanal, der, beispielsweise statisch, beispielsweise ausschließlich, mit der wenigstens einen Partition assoziiert ist, b) Empfangen der ersten Informationen über einen Kommunikationskanal, der zumindest zeitweise von der wenigstens einen Partition verwendbar ist, wobei beispielsweise der Kommunikationskanal, beispielsweise im Zeitmultiplex, durch mehrere Partitionen verwendbar ist.

Mit anderen Worten kann bei weiteren beispielhaften Ausführungsformen vorgesehen sein, dass die ersten Informationen gleichsam implizit bereitgestellt werden, z.B. indem eine, z.B. statische, Zuordnung eines bestimmten Kommunikationskanals mit einer bestimmten Partition vorgenommen wird. D.h., bei weiteren beispielhaften Ausführungsformen kann das Hardware- Sicherheitsmodul eine Identität einer bestimmten Partition basierend darauf ableiten, über weichen (z.B. statisch zugeordneten) Kommunikationskanal (z.B. von mehreren Kommunikationskanälen) Informationen, z.B. Daten, von der Partition empfangen worden sind.

Bei weiteren beispielhaften Ausführungsformen können die ersten Informationen und/oder die ersten Informationen charakterisierende weitere Informationen z.B. direkt von einer Partition über einen z.B. gemeinsam mit weiteren Partitionen nutzbaren Kommunikationskanal übertragen werden, z.B. zusammen mit Daten für einen Betrieb des Hardware-Sicherheitsmoduls.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Empfangen von zweiten Informationen, beispielsweise einer Unterbrechungsanforderung (z.B. interrupt request) und/oder assoziiert mit einer Unterbrechungsanforderung, von der wenigstens einen Partition, Ermitteln der ersten Informationen basierend auf einem Kommunikationskanal, über den die zweiten Informationen empfangen worden sind.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden mehrerer Kommunikationskanäle für eine Kommunikation mit unterschiedlichen Partitionen der Recheneinrichtung (also z.B. für eine Kommunikation des Hardware-Sicherheitsmoduls mit den unterschiedlichen Partitionen der Recheneinrichtung), beispielsweise Verwenden eines ersten Kommunikationskanals der mehreren Kommunikationskanäle, beispielsweise ausschließlich, für eine Kommunikation mit einer ersten Partition und Verwenden eines zweiten Kommunikationskanals der mehreren Kommunikationskanäle, beispielsweise ausschließlich, für eine Kommunikation mit einer zweiten Partition, b) Verwenden eines, beispielsweise gemeinsamen, Kommunikationskanals für eine Kommunikation mit unterschiedlichen Partitionen der Recheneinrichtung, beispielsweise basierend auf einem Zeitmultiplex- Verfahren.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden eines ersten Speicherbereichs, beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines ersten Kommunikationskanals, b) Verwenden eines zweiten Speicherbereichs, beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines zweiten Kommunikationskanals, c) Verwenden eines dritten Speicherbereichs, beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines gemeinsamen Kommunikationskanals für eine Kommunikation mit unterschiedlichen Partitionen der Recheneinrichtung.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden eines geteilten Speicherbereichs, beispielsweise shared memory, beispielsweise eines Arbeitsspeichers, beispielsweise RAM, beispielsweise zum Austauschen von Informationen, beispielsweise Daten, mit der wenigstens einen Partition, b) Virtualisieren des geteilten Speicherbereichs, beispielsweise aufweisend ein Zuordnen unterschiedlicher Teilbereiche zu jeweils einer anderen Partition der Recheneinrichtung, c) Verwenden einer Speicherschutzeinrichtung, beispielsweise einer dynamischen Speicherschutzeinrichtung, D-MPLI, beispielsweise zum, z.B. dynamischen, Schützen wenigstens mancher Speicherbereiche vor Zugriffen wenigstens mancher Partitionen der Recheneinrichtung.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Konfigurieren einer bzw. der Speicherschutzeinrichtung, beispielsweise dynamischen Speicherschutzeinrichtung, D-MPLI, wobei beispielsweise das Konfigurieren so erfolgt, dass die Speicherschutzeinrichtung wenigstens einen Speicherbereich, der z.B. mit einer ersten Partition assoziiert ist, vor Manipulationen durch wenigstens eine weitere Partition schützt.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Zuordnen einer Priorität zu der wenigstens einen Partition, Ausführen einer mit der wenigstens einen Partition assoziierten Operation basierend wenigstens auf der Priorität der wenigstens einen Partition.

Weitere beispielhafte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens gemäß den Ausführungsformen. Die Vorrichtung kann z.B. mittels Hardware realisiert sein und zumindest bei manchen beispielhaften Ausführungsformen in ein, z.B. ansonsten zumindest i.w. konventionelles, Hardware-Sicherheitsmodul integriert werden bzw. sein. Weitere beispielhafte Ausführungsformen beziehen sich auf ein Hardware- Sicherheitsmodul aufweisend wenigstens eine Vorrichtung gemäß den Ausführungsformen.

Weitere beispielhafte Ausführungsformen beziehen sich auf eine Recheneinrichtung, beispielsweise Mikrocontroller oder Mikroprozessor oder System on Chip, SoC, aufweisend wenigstens eines der folgenden Elemente: a) Vorrichtung gemäß den Ausführungsformen, b) Hardware-Sicherheitsmodul gemäß den Ausführungsformen, c) wenigstens eine Partition, z.B. aufweisend wenigstens einen Rechenkern, und, optional, der Partition zugeordneten Speicher, z.B. Arbeitsspeicher, z.B. RAM.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul assoziierten Daten, aufweisend: Bereitstellen einer Identität für wenigstens eine zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildete, beispielsweise auf das Hardware- Sicherheitsmodul zugreifende, Partition einer Recheneinrichtung, Übermitteln von die Identität charakterisierenden Informationen an das Hardware- Sicherheitsmodul, beispielsweise über einen, z.B. für mehrere Partitionen gemeinsamen Kommunikationskanal.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Bereitstellen und/oder das Übermitteln, beispielsweise vollständig, hardwarebasiert erfolgt.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul assoziierten Daten, aufweisend: Bereitstellen eines ersten Kommunikationskanals für einen Informationsaustausch zwischen einer, beispielsweise genau einer, ersten Partition einer Recheneinrichtung und dem Hardware-Sicherheitsmodul, und, optional Verwenden des ersten Kommunikationskanals für den Informationsaustausch zwischen der ersten Partition der Recheneinrichtung und dem Hardware-Sicherheitsmodul.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Bereitstellen eines zweiten Kommunikationskanals für einen Informationsaustausch zwischen einer, beispielsweise genau einer, zweiten Partition der Recheneinrichtung und dem Hardware-Sicherheitsmodul, und, optional Verwenden des zweiten Kommunikationskanals für den Informationsaustausch zwischen der zweiten Partition der Recheneinrichtung und dem Hardware-Sicherheitsmodul.

Weitere beispielhafte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens (z.B. zum Übermitteln der mit einem Hardware- Sicherheitsmodul assoziierten Daten) gemäß den Ausführungsformen.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Datenträgersignal, das das Computerprogramm gemäß den Ausführungsformen überträgt und/oder charakterisiert.

Weitere beispielhafte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des Hardware-Sicherheitsmoduls gemäß den Ausführungsformen und/oder der Recheneinrichtung gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen und/oder des Datenträgersignals gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Ermitteln von ersten Informationen, die eine Identität wenigstens einer zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildeten, beispielsweise auf das Hardware- Sicherheitsmodul zugreifenden, Partition einer Recheneinrichtung charakterisieren, b) Virtualisieren eines Hardware-Sicherheitsmoduls, c) Ermitteln einer Identität einer Partition, die auf das Hardware-Sicherheitsmodul zugreift, d) Priorisieren von mit unterschiedlichen Partitionen einer Recheneinrichtung assoziierten Operationen basierend auf einer Identität wenigstens einer der unterschiedlichen Partitionen, e) Steigern einer Sicherheit eines Hardware- Sicherheitsmoduls, auf das mehrere Partitionen einer Recheneinrichtung zugreifen können.

Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Ansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.

In der Zeichnung zeigt:

Fig. 1 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 2 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 3 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 4 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 5 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 6 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen, Fig. 7 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 8 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 9 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 10 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 11 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 12 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 13 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 14 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 15 schematisch ein vereinfachtes Zeitdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 16 schematisch eine vereinfachte Tabelle gemäß beispielhaften Ausführungsformen,

Fig. 17 schematisch eine vereinfachte Tabelle gemäß beispielhaften Ausführungsformen,

Fig. 18 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen, Fig. 19 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,

Fig. 20 schematisch Aspekte von Verwendungen gemäß weiteren beispielhaften Ausführungsformen, und

Fig. 21 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen.

Beispielhafte Ausführungsformen, vgl. Fig. 1 , 2, beziehen sich auf ein Verfahren zum Verarbeiten von mit einem Hardware-Sicherheitsmodul 100 assoziierten Daten, aufweisend: Ermitteln 200 (Fig. 2) von ersten Informationen 1-1 , die eine Identität 302-1-ID (Fig. 1) wenigstens einer zum Zugriff auf das Hardware- Sicherheitsmodul 100 ausgebildeten, beispielsweise auf das Hardware- Sicherheitsmodul 100 zugreifenden, Partition 302-1 einer Recheneinrichtung 1000 (s. z.B. auch die Elemente 300, 1000" gemäß Fig. 19) charakterisieren, und, optional, Verwenden 202 (Fig. 2) der ersten Informationen 1-1, beispielsweise für eine Steuerung eines Betriebs des Hardware- Sicherheitsmoduls 100 (Fig. 1) basierend wenigstens auf den ersten Informationen 1-1. Bei weiteren beispielhaften Ausführungsformen kann dadurch z.B. sichergestellt werden, dass verschiedene Partitionen 302-1 , 302-2, ... (Fig. 1) der Recheneinrichtung 300, 1000, 1000" bzw. mit den verschiedenen Partitionen 302-1 , 302-2, ... assoziierte Computerprogramme wie z.B. Anwendungsprogramme nicht durch das Hardware-Sicherheitsmodul 100 verarbeitbare Daten z.B. jeweils anderer Partitionen manipulieren.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1, ist das Hardware- Sicherheitsmodul 100 dazu ausgebildet, kryptografische Primitiven KRYPT-PRIM und/oder Funktionen KRYPT-FUNKT auszuführen, wie z.B. Verschlüsseln und/oder Entschlüsseln und/oder Bildung von Hashwerten HASH und/oder Bildung von Nachrichten-Authentifizierungscodes MAC, usw.

Bei weiteren beispielhaften Ausführungsformen weist das Hardware- Sicherheitsmodul 100 einen Schlüsselspeicher KS zum Speichern kryptografischer Schlüssel KS-1 , KS-2, KS-3, ... auf. Beispielsweise ist basierend auf den ersten Informationen 1-1 steuerbar, welche von mehreren Partitionen 302-1 , 302-2, ... , der Recheneinrichtung 1000 die Ressourcen, z.B. die kryptografischen Primitiven KRYPT-PRIM und/oder die kryptografischen Funktionen KRYPT-FUNKT und/oder die kryptografischen Schlüssel KS-1 , KS-2, KS-3, ... des Hardware-Sicherheitsmoduls 100 nutzen können. Z.B. kann bei weiteren beispielhaften Ausführungsformen vorgesehen sein, dass manche Partitionen 302-1 nur bestimmte kryptografische Schlüssel KS-1 verwenden dürfen, andere Partitionen 302-2 hingegen z.B. alle kryptografischen Schlüssel KS-1 , KS-2, KS-3, usw.

Bei weiteren beispielhaften Ausführungsformen weist das Hardware- Sicherheitsmodul 100 wenigstens einen, beispielsweise sicheren, Rechenkern 102 auf, der z.B. strukturell und/oder funktional von bezüglich des Hardware- Sicherheitsmoduls 100 externen Komponenten wie z.B. den Partitionen 302-1 , 302-2, ... getrennt sein kann, und der bei weiteren beispielhaften Ausführungsformen z.B. zur Ausführung wenigstens mancher der kryptografischen Primitiven KRYPT-PRIM bzw. Funktionen KRYPT-FUNKT ausgebildet ist.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , weist die wenigstens eine Partition 302-1 wenigstens einen Rechenkern 302-1 a auf, und, optional, einen dem Rechenkern 302-1a zugeordneten Speicher, z.B. Arbeitsspeicher, z.B. RAM (random access memory) 302-1 b.

Vorliegend weist beispielsweise die erste Partition 302-1 einen Rechenkern 302- 1a auf und einen lokalen, also z.B., beispielsweise nur, dem Rechenkern 302-1a zugeordneten Arbeitsspeicher 302-1 b. Eine Identität der ersten Partition 302-1 ist in Fig. 1 mit dem Bezugszeichen 302-1-ID symbolisiert. Bei weiteren beispielhaften Ausführungsformen kann die Identität der ersten Partition 302-1 einer CPU-ID (central processing unit identifier) des Rechenkerns 302-1 a entsprechen bzw. auf der CPU-ID des Rechenkerns 302-1a basieren.

In vergleichbarer Weise weist beispielsweise eine zweite Partition 302-2 einen Rechenkern 302-2a auf und einen lokalen, also z.B., beispielsweise nur, dem Rechenkern 302-2a zugeordneten Arbeitsspeicher 302-2b. Eine Identität der zweiten Partition 302-2 ist in Fig. 1 mit dem Bezugszeichen 302-2-ID symbolisiert. Bei weiteren beispielhaften Ausführungsformen kann die Identität der zweiten Partition 302-2 einer CPU-ID des Rechenkerns 302-2a entsprechen bzw. auf der CPU-ID des Rechenkerns 302-2a basieren.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , können mehr als die vorliegend beispielhaft zwei in Fig. 1 abgebildeten Partitionen 302-1 , 302-2 vorgesehen sein, was in Fig. 1 durch die drei vertikal angeordneten Punkte links unten in Fig. 1 symbolisiert ist.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1, kann das Hardware- Sicherheitsmodul 100 zusammen mit den Partitionen 302-1 , 302-2, ... z.B. auf einem gemeinsamen Halbleitersubstrat (nicht in Fig. 1 gezeigt) angeordnet sein und/oder z.B. mit den Partitionen 302-1 , 302-2, ... und/oder mit weiteren, aus Gründen der Übersichtlichkeit nicht abgebildeten Komponenten ein System on Chip, SoC, 1000 bilden.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , ist ein erster Kommunikationskanal K1 vorgesehen, über den die erste Partition 302-1 , beispielsweise nur die erste Partition 302-1 (also z.B. keine der anderen Partitionen 302-2, ...), Informationen, z.B. Daten, mit dem Hardware- Sicherheitsmodul 100 austauschen kann, vgl. den Blockpfeil A1.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , ist ein zweiter Kommunikationskanal K2 vorgesehen, über den die zweite Partition 302-2, beispielsweise nur die zweite Partition 302-2 (also z.B. keine der anderen Partitionen 302-1, ...), Informationen, z.B. Daten, mit dem Hardware- Sicherheitsmodul 100 austauschen kann, vgl. den Blockpfeil A2.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , können auch für zumindest manche von den z.B. optional vorhandenen weiteren Partitionen zu den Kommunikationskanälen K1 , K2 vergleichbare individuelle Kommunikationskanäle vorgesehen sein (nicht gezeigt).

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , ist somit vorgesehen, dass jede Partition 302-1 , 302-2, ... über einen eigenen bzw. individuellen Kommunikationskanal K1, K2, ... Informationen, z.B. Daten, mit dem Hardware- Sicherheitsmodul 100 austauscht. Fig. 4 zeigt demgegenüber ein vereinfachtes Blockdiagramm eines SoC 1000' gemäß weiteren beispielhaften Ausführungsformen, bei denen anstelle einer Mehrzahl individueller Kommunikationskanäle K1 , K2, ... (Fig. 1) ein, z.B. einziger, Kommunikationskanal K vorgesehen ist, der, z.B. in einem Zeitmultiplexbetrieb, gemeinsam durch mehrere Partitionen 302-1 , 302-2, ... nutzbar ist, vgl. die Blockpfeile AT, A2'.

Bei weiteren beispielhaften Ausführungsformen sind auch Mischformen (nicht gezeigt) aus der beispielhaften Konfiguration 1000 gemäß Fig. 1 und der beispielhaften Konfiguration 1000' gemäß Fig. 4 möglich, bei denen z.B. eine erste Anzahl von (z.B. einer oder mehreren) Partitionen jeweils einen individuellen Kommunikationskanal (s. z.B. die Elemente K1, K2 gemäß Fig. 1) zum Informationsaustausch mit dem Hardware-Sicherheitsmodul 100 aufweist, und bei denen z.B. eine zweite Anzahl von (z.B. einer oder mehreren) Partitionen gemeinsam einen Kommunikationskanal (s. z.B. Element K gemäß Fig. 4) zum Informationsaustausch mit dem Hardware-Sicherheitsmodul 100 aufweist.

Bei weiteren beispielhaften Ausführungsformen (nicht gezeigt) sind auch weitere Mischformen denkbar, bei denen wenigstens eine Partition 302-1 sowohl über einen individuellen Kommunikationskanal K1 zu dem Hardware-Sicherheitsmodul 100 verfügt, als auch dazu ausgebildet ist, z.B. mit einer oder mehreren weiteren Partitionen 302-2, ... einen gemeinsamen Kommunikationskanal K zu dem Hardware-Sicherheitsmodul 100 zu verwenden.

Bei weiteren beispielhaften Ausführungsformen, Fig. 3, weist das Ermitteln 200 (Fig. 2) der ersten Informationen 1-1 wenigstens eines der folgenden Elemente auf: a) Ermitteln 200a (Fig. 3) der ersten Informationen 1-1 basierend auf einem Kommunikationskanal K1 (Fig. 1), der, beispielsweise statisch, beispielsweise ausschließlich, mit der wenigstens einen Partition 302-1 assoziiert ist (s. z.B. die Konfiguration 1000 gemäß Fig. 1), b) Empfangen 200b der ersten Informationen 1-1 über einen Kommunikationskanal K (Fig. 4), der zumindest zeitweise von der wenigstens einen Partition 302-1 verwendbar ist, wobei beispielsweise der Kommunikationskanal K, beispielsweise im Zeitmultiplex, durch mehrere Partitionen 302-1 , 302-2, ... verwendbar ist (s. z.B. die Konfiguration 1000' gemäß Fig. 4). Mit anderen Worten kann bei weiteren beispielhaften Ausführungsformen, s. Fig. 1, vorgesehen sein, dass die ersten Informationen 1-1 gleichsam implizit bereitgestellt werden, z.B. indem eine, z.B. statische, Zuordnung eines bestimmten Kommunikationskanals K1 mit einer bestimmten Partition 302-1 vorgenommen wird. D.h., bei weiteren beispielhaften Ausführungsformen kann das Hardware-Sicherheitsmodul 100 eine Identität 302-1 -ID einer bestimmten Partition 302-1 basierend darauf ableiten, über weichen (z.B. statisch zugeordneten) Kommunikationskanal K1 (z.B. von mehreren Kommunikationskanälen K1 , K2, ...) Informationen, z.B. Daten, A1 von der Partition 302-1 empfangen worden sind.

Bei weiteren beispielhaften Ausführungsformen, Fig. 4, können die ersten Informationen 1-1 und/oder die ersten Informationen 1-1 charakterisierende weitere Informationen z.B. direkt von einer Partition 302-1 über einen z.B. gemeinsam mit weiteren Partitionen 302-2, ... nutzbaren Kommunikationskanal K übertragen werden, z.B. zusammen mit Daten für einen Betrieb des Hardware- Sicherheitsmoduls, s. z.B. die Bezugszeichen 1-1 bei den Blockpfeilen AT, A2' in Fig. 4.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , können die ersten Informationen 1-1 und/oder die ersten Informationen 1-1 charakterisierende weitere Informationen z.B. direkt von einer Partition 302-1 über einen z.B. individuellen Kommunikationskanal K1 an das Hardware-Sicherheitsmodul 100 übertragen werden, z.B. zusammen mit Daten für einen Betrieb des Hardware- Sicherheitsmoduls 100. Bei weiteren beispielhaften Ausführungsformen ist dies z.B. aufgrund der beispielhaften statischen, z.B. 1-zu-1-, Zuordnung von Partitionen 302-1 , 302-2 zu Kommunikationskanälen K1, K2 gemäß Fig. 1 nicht erforderlich, damit das Hardware- Sicherheitsmodul 100 die ersten Informationen 1-1 erlangt, z.B. eine Identität einer auf das Hardware- Sicherheitsmodul 100 zugreifenden Partition ermittelt bzw. ermitteln kann. Gleichwohl ist das gesonderte Senden z.B. der ersten Informationen 1-1 , z.B. über einen partitionsindividuellen Kommunikationskanal K1 , bei weiteren beispielhaften Ausführungsformen nicht ausgeschlossen.

Bei weiteren beispielhaften Ausführungsformen, Fig. 5, ist vorgesehen, dass das Verfahren aufweist: Empfangen 210 von zweiten Informationen I-2, beispielsweise einer Unterbrechungsanforderung (z.B. interrupt request) I RQ1 , IRQ2 und/oder assoziiert mit einer Unterbrechungsanforderung, also von mit einer Unterbrechungsanforderung assoziierten Informationen, von der wenigstens einen Partition 302-1 , 302-2, ... (Fig. 1), Ermitteln 212 (Fig. 5) der ersten Informationen 1-1 basierend auf einem Kommunikationskanal K1, K2, ... über den die zweiten Informationen I-2 empfangen worden sind. Beispielsweise kann das Hardware- Sicherheitsmodul 100, wenn es z.B. über den ersten Kommunikationskanal K1 gemäß Fig. 1 eine erste Unterbrechungsanforderung IRQ1 empfängt, darauf schließen, dass die erste Unterbrechungsanforderung IRQ1 bzw. mit der ersten Unterbrechungsanforderung IRQ1 assoziierte Daten von der ersten Partition 302-1 stammen, weil der erste Kommunikationskanal K1, z.B. statisch, der ersten Partition 302-1 zugeordnet ist. Demgegenüber kann das Hardware- Sicherheitsmodul 100 bei weiteren beispielhaften Ausführungsformen, wenn es z.B. über den zweiten Kommunikationskanal K2 gemäß Fig. 1 eine zweite Unterbrechungsanforderung IRQ2 empfängt, darauf schließen, dass die zweite Unterbrechungsanforderung IRQ2 bzw. mit der zweiten Unterbrechungsanforderung IRQ2 assoziierte Daten von der zweiten Partition 302-2 stammen, weil der zweite Kommunikationskanal K2, z.B. statisch, der zweiten Partition 302-2 zugeordnet ist, usw..

Bei weiteren beispielhaften Ausführungsformen, Fig. 6, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden 220 mehrerer Kommunikationskanäle K1, K2, ... (Fig. 1) für eine Kommunikation mit unterschiedlichen Partitionen 302-1 , 302-2, ... (Fig. 1) der Recheneinrichtung 1000 (also z.B. für eine Kommunikation des Hardware-Sicherheitsmoduls 100 gemäß Fig. 1 mit den unterschiedlichen Partitionen 302-1 , 302-2, ... der Recheneinrichtung 1000), beispielsweise Verwenden 220a (Fig. 6) eines ersten Kommunikationskanals K1 der mehreren Kommunikationskanäle K1, K2, ... , beispielsweise ausschließlich, für eine Kommunikation A1 mit der ersten Partition 302-1 und Verwenden 220b (Fig. 6) eines zweiten Kommunikationskanals K2 der mehreren Kommunikationskanäle K1, K2, ... , beispielsweise ausschließlich, für eine Kommunikation A2 mit der zweiten Partition 302-2, b) Verwenden 222 (Fig. 6) eines, beispielsweise gemeinsamen, Kommunikationskanals K (Fig. 4) für eine Kommunikation AT, A2' mit unterschiedlichen Partitionen 301-1 , 301-2, ... der Recheneinrichtung, beispielsweise basierend auf einem Zeitmultiplex-Verfahren. Bei weiteren beispielhaften Ausführungsformen, Fig. 7, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden 225 eines ersten Speicherbereichs SB-1 (Fig. 1), beispielsweise aufweisend eine Anzahl von Speicherregistern (nicht gezeigt), zur Realisierung eines ersten Kommunikationskanals K1, b) Verwenden 227 (Fig. 7) eines zweiten Speicherbereichs SB-2 (Fig. 1), beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines zweiten Kommunikationskanals K2, c) Verwenden 229 (Fig. 7) eines dritten Speicherbereichs SB-3, beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines gemeinsamen Kommunikationskanals K (Fig. 4) für eine Kommunikation mit unterschiedlichen Partitionen 302-1 , 302-2, ... der Recheneinrichtung 1000, 1000'.

Bei weiteren beispielhaften Ausführungsformen kann wenigstens einer der Speicherbereiche SB-1 , SB-2, SB-3 in einem geteilten (also z.B. von ein oder mehreren Partitionen und dem Hardware-Sicherheitsmodul 100 nutzbaren) Speicher, z.B. Arbeitsspeicher, RAM, SH-RAM vorgesehen sein.

Bei weiteren beispielhaften Ausführungsformen, Fig. 8, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden 230 eines geteilten Speicherbereichs SH-MEM, beispielsweise shared memory, beispielsweise eines Arbeitsspeichers, beispielsweise RAM, SH-RAM beispielsweise zum Austauschen von Informationen, beispielsweise Daten, mit der wenigstens einen Partition 302-1 , 302-2, ... , b) Virtualisieren 232 des geteilten Speicherbereichs SH-MEM, beispielsweise aufweisend ein Zuordnen unterschiedlicher Teilbereiche, z.B. der Speicherbereiche SB-1 , SB-2, des geteilten Speicherbereichs SH-MEM zu jeweils einer anderen Partition 302-1, 302-2 der Recheneinrichtung, c) Verwenden 234 (Fig. 8) einer optionalen Speicherschutzeinrichtung MPU (Fig. 1, 4), beispielsweise einer dynamischen Speicherschutzeinrichtung, D-MPLI, beispielsweise zum, z.B. dynamischen, Schützen wenigstens mancher Speicherbereiche SB-1 vor Zugriffen wenigstens mancher Partitionen 302-2 der Recheneinrichtung.

Bei weiteren beispielhaften Ausführungsformen, Fig. 9, ist vorgesehen, dass das Verfahren aufweist: Konfigurieren 240 einer bzw. der Speicherschutzeinrichtung MPU, beispielsweise dynamischen Speicherschutzeinrichtung, D-MPU, wobei beispielsweise das Konfigurieren 240 so erfolgt, dass die Speicherschutzeinrichtung MPU wenigstens einen Speicherbereich SB-1 (Fig. 1, 4), der z.B. mit einer bzw. der ersten Partition 302-1 assoziiert ist, vor Manipulationen durch wenigstens eine weitere Partition 302-2, ... schützt. Der optionale Block 242 gemäß Fig. 9 symbolisiert eine Verwendung des wenigstens einen Speicherbereich SB-1 für einen Datenaustausch zwischen der ersten Partition 302-1 und dem Hardware-Sicherheitsmodul 100.

Bei weiteren beispielhaften Ausführungsformen, Fig. 10, ist vorgesehen, dass das Verfahren aufweist: Zuordnen 245 einer Priorität PR-1 zu der wenigstens einen Partition 302-1, Ausführen 247 einer mit der wenigstens einen Partition 302-1 assoziierten Operation OP-302-1 (z.B. Verschlüsseln von Daten) basierend wenigstens auf der Priorität PR-1 der wenigstens einen Partition 302- 1. Bei weiteren beispielhaften Ausführungsformen kann die Priorität PR-1 z.B. basierend auf den ersten Informationen 1-1 zugeordnet werden. Weitere beispielhafte Aspekte und Ausführungsformen betreffend eine Priorität sind weiter unten z.B. unter Bezugnahme auf Fig. 15 beschrieben.

Weitere beispielhafte Ausführungsformen, vgl. Fig. 21, beziehen sich auf eine Vorrichtung 400 zur Ausführung des Verfahrens gemäß den Ausführungsformen. Die Vorrichtung 400 kann z.B. mittels Hardware, beispielsweise ausschließlich mittels Hardware, realisiert sein und zumindest bei manchen beispielhaften Ausführungsformen in ein Hardware-Sicherheitsmodul 100 integriert werden bzw. sein, s. z.B. Fig. 1 , 4.

Weitere beispielhafte Ausführungsformen, Fig. 1 , 4, beziehen sich auf ein Hardware-Sicherheitsmodul 100 aufweisend wenigstens eine Vorrichtung 400 gemäß den Ausführungsformen.

Bei weiteren beispielhaften Ausführungsformen, Fig. 21, ist vorgesehen, dass die Vorrichtung 400 aufweist: eine z.B. wenigstens einen Rechenkern 402a aufweisende Recheneinrichtung ("Computer") 402, eine der Recheneinrichtung 402 zugeordnete Speichereinrichtung 404 zur zumindest zeitweisen Speicherung wenigstens eines der folgenden Elemente: a) Daten DAT (z.B. charakterisierend wenigstens eines der folgenden Elemente: die ersten Informationen 1-1, die zweiten Informationen I-2, eine Identität 302-1-ID wenigstens einer Partition 302- 1 charakterisierende Informationen, eine Zuordnung von Kommunikationskanälen K1, K2 zu Partitionen 302-1 , 302-2 charakterisierende Informationen, eine mit wenigstens einer Partition 302-1 assoziierte Priorität PR- 1 charakterisierende Informationen, Konfigurationsinformationen, z.B. für eine Virtualisierung 232 des geteilten Speicherbereichs SH-MEM und/oder für eine bzw. die Speicherschutzeinrichtung MPU) , b) Computerprogramm PRG, insbesondere zur Ausführung des Verfahrens gemäß den Ausführungsformen (z.B. im Falle einer nicht rein hardwarebasierten Implementierung der Vorrichtung 400).

Bei weiteren beispielhaften Ausführungsformen weist die Speichereinrichtung 404 einen flüchtigen Speicher 404a (z.B. Arbeitsspeicher (RAM)) auf, und/oder einen nichtflüchtigen Speicher 404b (z.B. Flash-EEPROM), oder eine Kombination hieraus oder mit anderen, nicht explizit genannten Speichertypen.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium SM, z.B. Halbleiterspeicher und/oder optischen Datenträger und/oder magnetisches Speichermedium, umfassend Befehle PRG, die bei der Ausführung durch einen Computer 402 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Computerprogramm PRG, umfassend Befehle, die bei der Ausführung des Programms PRG durch einen Computer 402 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Datenträgersignal DCS, das das Computerprogramm PRG gemäß den Ausführungsformen überträgt und/oder charakterisiert. Das Datenträgersignal DCS ist beispielsweise über eine optionale Datenschnittstelle 406 übertragbar, z.B. ebenso wie weitere optionale Daten D.

Bei weiteren beispielhaften Ausführungsformen, z.B. bei einer Integration der Vorrichtung 400 bzw. einer Funktionalität der Vorrichtung 400 in das Hardware- Sicherheitsmodul 100, können wenigstens manche der Komponenten 402, 402a, 404, 404a, 404b, ... der Vorrichtung 400 gemäß Fig. 21 z.B. unter Verwendung entsprechender und ggf. bereits vorhandener Komponenten des Hardware-

Sicherheitsmoduls 100 realisiert bzw. implementiert werden (z.B. der Rechenkern 402a gemäß Fig. 21 durch den HSM-Rechenkern 102, usw.).

Weitere beispielhafte Ausführungsformen, Fig. 1, 4, beziehen sich auf eine Recheneinrichtung, beispielsweise Mikrocontroller oder Mikroprozessor oder System on Chip, SoC, 1000, 1000' aufweisend wenigstens eines der folgenden Elemente: a) Vorrichtung 400 gemäß den Ausführungsformen, b) Hardware- Sicherheitsmodul 100, z.B. gemäß den Ausführungsformen, c) wenigstens eine Partition 302-1 , 302-2, ... , z.B. aufweisend wenigstens einen Rechenkern 302- 1a, 302-2a, ... , und, optional, der Partition zugeordneten Speicher, z.B. Arbeitsspeicher, z.B. RAM 302-1 b, 302-2b, ....

Weitere beispielhafte Ausführungsformen, Fig. 11 , beziehen sich auf ein Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul 100 (Fig.

1 , 4) assoziierten Daten, aufweisend: Bereitstellen 250 einer Identität 302-1-ID für wenigstens eine zum Zugriff A1 auf das Hardware-Sicherheitsmodul 100 ausgebildete, beispielsweise auf das Hardware-Sicherheitsmodul 100 zugreifende, Partition 302-1 einer Recheneinrichtung, Übermitteln 252 von die Identität 302-1-ID charakterisierenden Informationen l-ID (z.B. in Form der zweiten Informationen I-2 und/oder der ersten Informationen 1-1 und/oder der Identität 302-1-ID selbst) an das Hardware-Sicherheitsmodul 100, beispielsweise über einen, z.B. für mehrere Partitionen gemeinsamen, Kommunikationskanal K (Fig. 4).

Bei weiteren beispielhaften Ausführungsformen, Fig. 11, ist vorgesehen, dass das Bereitstellen 250 und/oder das Übermitteln 252, beispielsweise vollständig, hardwarebasiert erfolgt.

Weitere beispielhafte Ausführungsformen, Fig. 12, beziehen sich auf ein Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul 100 (Fig.

1 , 4) assoziierten Daten, aufweisend: Bereitstellen 260 (Fig. 12) eines ersten Kommunikationskanals K1 (Fig. 1) für einen Informationsaustausch A1 zwischen einer, beispielsweise genau einer, ersten Partition 302-1 einer Recheneinrichtung und dem Hardware-Sicherheitsmodul 100, und, optional, Verwenden 262 des ersten Kommunikationskanals K1 für den Informationsaustausch A1 zwischen der ersten Partition 302-1 der Recheneinrichtung und dem Hardware- Sicherheitsmodul 100.

Bei weiteren beispielhaften Ausführungsformen, Fig. 13, ist vorgesehen, dass das Verfahren aufweist: Bereitstellen 264 eines zweiten Kommunikationskanals K2 (Fig. 1) für einen Informationsaustausch A2 zwischen einer, beispielsweise genau einer, zweiten Partition 302-2 der Recheneinrichtung und dem Hardware- Sicherheitsmodul 100, und, optional, Verwenden 266 des zweiten Kommunikationskanals K2 für den Informationsaustausch A2 zwischen der zweiten Partition 302-2 der Recheneinrichtung und dem Hardware- Sicherheitsmodul 100.

Weitere beispielhafte Ausführungsformen, Fig. 1, beziehen sich auf eine Vorrichtung 301 zur Ausführung des Verfahrens, z.B. zum Übermitteln der mit einem Hardware-Sicherheitsmodul assoziierten Daten, gemäß den Ausführungsformen, z.B. gemäß Fig. 11 und/oder Fig. 12 und/oder Fig. 13.

Bei weiteren beispielhaften Ausführungsformen weist die Vorrichtung 301 (Fig. 1) z.B. eine zu der Vorrichtung 400 gemäß Fig. 21 vergleichbare bzw. zumindest ähnliche Konfiguration auf, wobei eine, z.B. rein hardwarebasierte, Implementierung möglich ist.

Fig. 14 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen, das einen Informationsfluss zwischen einer Partition 302-T einer Recheneinrichtung und einem Hardware-Sicherheitsmodul 100' gemäß weiteren beispielhaften Ausführungsformen veranschaulicht. Element e1 symbolisiert eine Anwendung bzw. ein Anwendungsprogramm, das auf der Partition 302-T ausführbar ist, und das z.B. sicherheitsbezogene Funktionen ausführt und hierzu zumindest zeitweise das Hardware- Sicherheitsmodul 100' nutzt. Element e2 symbolisiert eine Vorbereitung von Daten zur Verarbeitung mittels des Hardware-Sicherheitsmoduls 100', z.B. einen "security job". Pfeil a1 symbolisiert das Schreiben der vorbereiteten Daten in einen Speicherbereich e5a eines z.B. mit dem Hardware-Sicherheitsmodul 100' geteilten Speichers e5, z.B. shared RAM. Element e3 symbolisiert ein Signalisieren an das Hardware-Sicherheitsmodul 100', z.B. dass der security job zur Verarbeitung durch das Hardware-Sicherheitsmodul 100' bereit ist, s. auch den Pfeil a2. Das Signalisieren e3 kann beispielsweise unter Verwendung einer Unterbrechungsanforderung erfolgen, die die Partition 302-T an das Hardware- Sicherheitsmodul 100' sendet. Zusätzlich zu, z.B. zusammen mit, der Unterbrechungsanforderung kann dem Hardware-Sicherheitsmodul 100' z.B. noch eine den Speicherbereich e5a charakterisierende Information, z.B. in Form eines Zeigers auf eine entsprechende Adresse des geteilten Speichers e5, übermittelt werden, und/oder eine Information, die z.B. einen in dem Hardware- Sicherheitsmodul 100' gespeicherten kryptografischen Schlüssel KS-1 (Fig. 1) charakterisiert, z.B. in Form eines Zeigers auf eine entsprechende Adresse des Schlüsselspeichers KS.

Element e6 symbolisiert ein Empfangen bzw. Lesen der durch die Partition 302-T signalisierten Informationen bzw. Daten, s. auch den Pfeil a3. Element e? symbolisiert ein Verarbeiten der Daten durch das Hardware-Sicherheitsmodul 100'. Element e8 symbolisiert eine Ausgabe eines Ergebnisses der Datenverarbeitung durch das Hardware-Sicherheitsmodul 100', z.B. in den Speicherbereich e5b des geteilten Speichers e5, s. auch den Pfeil a4. Element e4 symbolisiert ein Lesen des Ergebnisses der Datenverarbeitung des Hardware- Sicherheitsmoduls 100' durch die Partition 302-T, s. auch den Pfeil a5.

Bei weiteren beispielhaften Ausführungsformen kann, z.B. bei wenigstens einer bzw. manchen bzw. allen, Unterbrechungsanforderungen a2, die die Partition 302-T an das Hardware-Sicherheitsmodul 100' sendet, z.B. neben einer die Unterbrechungsanforderung charakterisierenden Unterbrechungsanforderungs- bzw. Interrupt-Nummer, zusätzlich eine Information über die Identität 302-T-ID der sendenden Partition 302-T an das Hardware-Sicherheitsmodul 100' übermittelt werden.

Bei weiteren beispielhaften Ausführungsformen wird die Identität 302-T-ID dabei z.B. über einen hardwarebasierten, beispielsweise rein hardwarebasierten, Mechanismus bereitgestellt, so dass eine Manipulation, z.B. durch Software, z.B. die Anwendung e1, nicht möglich ist.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Identität 302-T-ID der Partition 302-T bei wenigstens manchen, z.B. mehreren, z.B. jeder, z.B. jeglicher, Interaktion der Partition 302-T, z.B. mit dem Speicher e5 und/oder mit dem Hardware-Sicherheitsmodul 100', z.B. mit (also z.B. ggf. zusätzlich zu anderen Informationen bzw. Daten) übermittelt wird.

Bei weiteren beispielhaften Ausführungsformen sind das Hardware- Sicherheitsmodul 100' und die wenigstens eine Partition 302-T so konfiguriert, dass sie Informationen bzw. Daten, z.B. über wenigstens einen entsprechenden Adressbereich e5a, e5b, der z.B. in dem geteilten Speicher, z.B. Shared Memory, z.B. Shared RAM, e5 liegt, austauschen können.

Bei weiteren beispielhaften Ausführungsformen liegen in diesem Adressbereich z.B. Informationen, die charakterisieren, welche Operation(en) in dem Hardware- Sicherheitsmodul 100' zur Ausführung gebracht werden soll(en), sowie ggf. ein Zeiger, z.B. Pointer, auf Daten, die z.B. für die Operation(en) verwendbar sind (z.B., ein Pointer auf Daten, die durch das Hardware-Sicherheitsmodul 100' verschlüsselt werden sollen, sowie ggf. weitere Informationen, z.B. hinsichtlich der auszuführenden Operation(en) (z.B. Parameter)).

Bei weiteren beispielhaften Ausführungsformen kann in dem Hardware- Sicherheitsmodul 100' eine Vorrichtung 400 gemäß den Ausführungsformen vorgesehen sein, die bei weiteren beispielhaften Ausführungsformen z.B. auch als "Partition Detector", also Partitions-Detektor, bezeichnet werden kann.

Bei weiteren beispielhaften Ausführungsformen assoziiert und/oder verwaltet die Vorrichtung 400, z.B. für manche, beispielsweise alle, Operationen, die in dem Hardware-Sicherheitsmodul 100' ausgeführt bzw. aufgerufen werden, eine, z.B. eindeutige, Identität, z.B. "Partition ID". Bei weiteren beispielhaften Ausführungsformen können somit z.B. alle Operationen, die in dem Hardware- Sicherheitsmodul 100' ausgeführt bzw. aufgerufen werden, auf eine bestimmte Partition, z.B. bezeichenbar als "Ursprungspartition", zurückgeführt werden.

Bei weiteren beispielhaften Ausführungsformen wird eine Anzahl der Partitionen und/oder werden zugehörige Partition IDs z.B. basierend auf einer Anzahl von physikalischen Partitionen 302-1 , 302-2, ... (Fig. 1) in dem System, z.B. SoC 1000, konfiguriert. Bei weiteren beispielhaften Ausführungsformen, Fig. 1, wird, z.B. dann, wenn eine Operation einer Partition 302-1 in dem Hardware-Sicherheitsmodul 100 ausgeführt wird, z.B. durch die Vorrichtung 400 und/oder unter Steuerung durch die Vorrichtung 400, sichergestellt, dass, z.B. nur, auf Daten zugegriffen wird bzw. werden kann, die mit dieser Partition 302-1 assoziiert sind. Hierzu kann bei weiteren beispielhaften Ausführungsformen wenigstens eine Funktion, z.B. Anwendung, des Hardware-Sicherheitsmoduls 100 wie beispielsweise der Schlüsselspeicher KS oder eine sichere Datenhaltung (z.B. Secure Log, nicht gezeigt) entsprechend virtualisiert werden.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , ist das Hardware- Sicherheitsmodul 100, 100' dazu ausgebildet, eine Ablaufplanung, z.B. Scheduling, z.B. präemptives Scheduling, von Operationen auszuführen.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , kann das Scheduling z.B. über einen softwarebasierten bzw. Firmware-basierten Mechanismus SCHED- MECH in dem Hardware-Sicherheitsmodul 100, 100' realisiert werden. Hierbei wird bei weiteren beispielhaften Ausführungsformen z.B. einzelnen Operationen jeweils eine entsprechende Priorität zugewiesen, und die einzelnen Operationen werden entsprechend der zugewiesenen Priorität auf dem Hardware- Sicherheitsmodul 100 ausgeführt. Der optionale z.B. Firmware-basierte Mechanismus SCHED-MECH gemäß Fig. 1 kann optional auch bei dem HSM 100 gemäß Fig. 4 vorgesehen sein, ist dort vorliegend aus Gründen der Übersichtlichkeit jedoch nicht abgebildet.

Wird z.B. eine Operation mit einer niedrigeren Priorität ausgeführt, währenddessen eine Operation mit einer höheren Priorität das Hardware- Sicherheitsmodul 100 erreicht (z.B. durch Signalisieren durch eine Partition), wird bei weiteren beispielhaften Ausführungsformen die neue Operation priorisiert und die Operation mit der niedrigeren Priorität pausiert. Bei weiteren beispielhaften Ausführungsformen werden vor dem Pausieren Informationen, z.B. alle Informationen, die den Zustand der Operation beschreiben, in einem Speicher gesichert, so dass die Operation mit der niedrigeren Priorität z.B. nach der Ausführung der Operation mit der höheren Priorität fertig gestellt werden kann. Bei der Verwendung des Prinzips gemäß den Ausführungsformen, z.B. mit der Vorrichtung 400, z.B. als "Partition Detector", z.B. mit mehreren Partitionen 302- 1 , 302-2, ... (Fig. 1) kann, bei weiteren beispielhaften Ausführungsformen, das präemptive Scheduling so ausgestaltet werden, dass die Vorrichtung 400 und/oder der Scheduling Mechanismus SCHED-MECH, z.B. in dem Hardware- Sicherheitsmodul 100, so konfiguriert wird, dass einzelne Partitionen ebenfalls über jeweilige Prioritäten verfügen, die z.B. ab einem gewissen Schwellwert die Prioritäten einer spezifischen Operation invalidieren. So wird bei weiteren beispielhaften Ausführungsformen verhindert, dass einzelne Operationen einzelner Partitionen "verhungern" können, also über einen vergleichsweise langen Zeitraum nicht (oder z.B. gar nicht) ausgeführt werden.

Bei weiteren beispielhaften Ausführungsformen kann der vorstehend genannte Schwellwert z.B. mittels vergleichsweise komplexer Regeln definiert werden, bei noch weiteren beispielhaften Ausführungsformen sind aber auch vergleichsweise einfache Regeln möglich.

Bei weiteren beispielhaften Ausführungsformen kann der Schwellwert beispielsweise so konfiguriert werden, dass eine Operation einer bestimmten Partition mit einem spezifischen Prioritätslevel (Prioritätswert) z.B. nur n-mal, n>=0, unterbrochen werden kann. Ein vereinfachtes Beispiel gemäß weiteren beispielhaften Ausführungsformen ist in dem Diagramm gemäß Fig. 15 gezeigt, bei dem eine horizontale Achse t die Zeit charakterisiert, und bei dem eine vertikale Achse P eine Priorität charakterisiert. Aus Gründen der Übersichtlichkeit sind vorliegend beispielhaft vier verschiedene Prioritätswerte 1, 2, 3, 4 vorgesehen, und beispielhaft, und ohne Beschränkung der Allgemeinheit, wird davon ausgegangen, dass vier Partitionen vorhanden sind, die auf das Hardware-Sicherheitsmodul 100 (Fig. 1) zugreifen können. Bei weiteren beispielhaften Ausführungsformen können weniger oder mehr als vier verschiedene Prioritätswerte und/oder weniger oder mehr als vier Partitionen vorhanden sein.

Bei weiteren beispielhaften Ausführungsformen ist ein Scheduling z.B. über einen softwarebasierten bzw. Firmware-basierten Mechanismus SCHED-MECH (Fig. 1) in dem Hardware-Sicherheitsmodul 100, 100' derart vorgesehen, dass Operationen einer ersten Partition 302-1 z.B. nur maximal zwei Mal unterbrochen werden dürfen. Vorliegend wird beispielhaft eine Operation e10 der ersten Partition mit Prioritätswert 1 (niedrigste Priorität) durch eine Operation e15 einer dritten Partition (Prioritätswert 3) und danach durch eine Operation e14 einer zweiten Partition (Prioritätswert 2) unterbrochen. Bevor es zur Ausführung e17 einer vierten Operation (Prioritätswert 4) kommt, wird z.B. die erste Operation fortgesetzt, z.B. vollständig ausgeführt, s. Element e12. Element e11 symbolisiert eine Unterbrechung der ersten Operation e10, e12, Element e13 symbolisiert ein Warten einer Operation der zweiten Partition auf einen Abschluss der Operation e15, und Element e16 symbolisiert ein Warten der Operation e17 der vierten Partition auf einen Abschluss der Operation e12.

Bei weiteren beispielhaften Ausführungsformen ist eine Virtualisierung eines Kommunikationskanals zwischen Partitionen 302-1 , 302-2, ... (Fig. 1) der Recheneinrichtung und dem Hardware-Sicherheitsmodul 100, 100' vorgesehen.

Bei weiteren beispielhaften Ausführungsformen können für eine Signalisierung, welche Partition von den mehreren Partitionen 302-1 , 302-2, ... z.B. aktuell eine Kommunikation mit dem Hardware-Sicherheitsmodul 100, 100' auslösen möchte, unterschiedliche Verfahren verwendet werden. Bei weiteren beispielhaften Ausführungsformen ist z.B. eine Vervielfachung des Kommunikationskanals vorgesehen, s. z.B. die Konfiguration 1000 gemäß Fig. 1. Bei weiteren beispielhaften Ausführungsformen ist z.B. ein Teilen, z.B. Sharing, des (z.B. einzigen) Kommunikationskanals K vorgesehen, s. z.B. die Konfiguration 1000' gemäß Fig. 4.

Bei weiteren beispielhaften Ausführungsformen wird bei der vorstehend genannten Vervielfachung des Kommunikationskanals z.B. jeder einzelnen Partition 302-1 , 302-2, ... ein, z.B. volles, Register-Set (z.B. Satz von Speicherregistern), welches für die Kommunikation mit dem Hardware- Sicherheitsmodul 100, 100' genutzt wird, zur Verfügung gestellt, s. Kanal K1 für die erste Partition 302-1, Kanal K2 für die zweite Partition 302-2, usw.. Dies bedeutet, dass bei weiteren beispielhaften Ausführungsformen jeder Partition 302-1 , 302-2, ... physikalisch eindeutig ein vollständiger Registersatz bereitgestellt wird. Bei weiteren beispielhaften Ausführungsformen werden die Registersätze z.B. fortlaufend durchnummeriert, so dass die Vorrichtung 400, z.B. der "Partition Detector", in dem Hardware-Sicherheitsmodul 100, 100' eindeutig ermitteln, z.B. validieren, kann, aus welcher Partition eine entsprechende Kommunikation kam. Bei weiteren beispielhaften Ausführungsformen liegt ein Vorteil bei dieser Variante daran, dass es zu keinen Kollisionen im Kommunikationskanal (bzw. den mehreren Kanälen K1, K2, ...) zwischen den einzelnen Partitionen 302-1, 302-2, ... kommen kann.

Bei weiteren beispielhaften Ausführungsformen wird bei dem vorstehend genannten Sharing ein (z.B. gemeinsamer) Kommunikationskanal K (Fig. 4) zwischen den einzelnen Partitionen 302-1 , 302-2, ... geteilt, hierbei werden z.B. alle Partitionen mit eindeutigen Identitäten (z.B. "Partition ID") ausgestattet, die bei weiteren beispielhaften Ausführungsformen z.B. anhand einer CPU-ID ihres jeweiligen Rechenkerns abgeleitet werden.

Bei weiteren beispielhaften Ausführungsformen kann vorgesehen sein, dass die Partition ID z.B. über einen Byte-Wert (also eine Informationsmenge aufweisend 8 bit) repräsentiert wird, der z.B. eindeutig ist. Bei weiteren beispielhaften Ausführungsformen wird, z.B. bei einem Interrupt der jeweiligen Partition, deren eindeutige Partition ID an das Hardware-Sicherheitsmodul, z.B. zusätzlich zu ggf. anderen zu übermittelnden Informationen bzw. Daten in dem Kommunikationskanal K übermittelt. Ist der Kommunikationskanal K aktuell z.B. durch eine andere Partition belegt, kann vorgesehen sein, dass die Partition so lange wartet, bis der Kommunikationskanal K für das Absetzen einer weiteren Kommunikation (wie beispielsweise einen Interrupt) wieder verfügbar ist. Bei weiteren beispielhaften Ausführungsformen kann ein Vorteil bei diesem Verfahren darin liegen, dass ein einziger Kommunikationskanal K vorhanden ist, der Kommunikationskanal K z.B. also nicht vervielfältigt werden muss.

Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , kann eine Virtualisierung des geteilten Speichers SH-MEM vorgesehen sein. Bei weiteren beispielhaften Ausführungsformen kann der geteilte Speicher SH-MEM z.B. zum Austausch von Daten zwischen den Partitionen und dem Hardware-Sicherheitsmodul 100, 100' genutzt werden. Insbesondere kann vorgesehen sein, dass mehrere, z.B. alle, Partitionen auf den geteilten Speicher SH-MEM zugreifen. Hierbei könnte es bei manchen beispielhaften Ausführungsformen zu einer Situation kommen, bei der eine zweite Partition die Daten der ersten Partition im geteilten Speicher SH- MEM manipuliert und somit ggf. die Abarbeitung einer Operation in dem Hardware-Sicherheitsmodul 100, 100' beeinflusst. Dies wird bei weiteren beispielhaften Ausführungsformen z.B. durch wenigstens eines der folgenden Elemente verhindert: a) Virtualisierung des geteilten Speichers SH-MEM, z.B. mittels Sharing, b) Nutzung einer Speicherschutzeinrichtung MPU, z.B. Dynamic- MPU.

Bei weiteren beispielhaften Ausführungsformen wird eine Virtualisierung des geteilten Speichers SH-MEM mittels Sharing ausgeführt, wobei der geteilte Speicher z.B. so konfiguriert wird, dass dedizierte Bereiche SB-1 , SB-2, z.B. pro Partition 302-1 , 302-2 vorgegeben werden, in denen z.B. nur jeweils eine Partition schreiben kann und z.B. die anderen Partitionen nur lesend (oder z.B. gar nicht) operieren können. Bei weiteren beispielhaften Ausführungsformen kann das Hardware-Sicherheitsmodul 100, 100' so ausgebildet, z.B. konfiguriert, sein, dass es auf allen Speicherbereichen, die z.B. entsprechend konfiguriert sind, sowohl lesend als auch schreibend operieren kann, was bei weiteren beispielhaften Ausführungsformen eine vergleichsweise hohe Verlässlichkeit bietet.

Bei weiteren beispielhaften Ausführungsformen kann z.B. eine Dynamic Memory Protection Unit (D-MPU) MPU (Fig. 1) zur Virtualisierung einzelner Speicherbereiche, z.B. Speicherblöcke verwendet werden. Bei weiteren beispielhaften Ausführungsformen schützt die D-MPU, z.B. ähnlich zu einer MPU, Speicher- und Adressbereiche. Bei weiteren beispielhaften Ausführungsformen kann die D-MPU, z.B. anders als eine konventionelle MPU oder MMU (Speicherverwaltungseinrichtung), dynamisch, z.B. on-demand (also z.B. bei Bedarf, und damit flexibel) z.B. durch das Hardware-Sicherheitsmodul 100, 100', z.B. auf eine Anfrage einer Software-Anwendung e1 (Fig. 14) konfiguriert werden, z.B. so dass vorgebbare Adressbereiche der Speichereinrichtung entsprechend geschützt werden. Nachdem z.B. ein Speicherbereich durch die D-MPU entsprechend geschützt wurde, kann bei weiteren beispielhaften Ausführungsformen z.B. nur noch das Hardware- Sicherheitsmodul 100, 100' Änderungen an diesem Speicherbereich vornehmen. Hierdurch wird bei weiteren beispielhaften Ausführungsformen z.B. erreicht, dass ein potenzieller Angreifer, der z.B. ein Softwaresystem (z.B. exklusive des Hardware-Sicherheitsmoduls 100, 100') übernommen hat, keine manipulierten Informationen an das Hardware-Sicherheitsmodul 100, 100' übergibt und/oder während der Datenverarbeitung durch das Hardware-Sicherheitsmodul 100, 100' entsprechende Änderungen an den Inhalten in einem Speicherbereich vornimmt.

Bei weiteren beispielhaften Ausführungsformen wird, z.B. zusätzlich zu der Verwendung der D-MPLI, eine Information bereitgestellt, welche Partition den jeweiligen Speicherbereich besitzt. Bei weiteren beispielhaften Ausführungsformen wird durch die Verwendung der D-MPLI z.B. ebenfalls verhindert, dass Manipulationen durch eine Partition in dem Speicherbereich einer anderen Partition durchgeführt werden können.

Bei weiteren beispielhaften Ausführungsformen wird, z.B. im Gegensatz zum Memory-Sharing, jedoch zusätzlich verhindert, dass eine besitzende Partition eine Manipulation an ihrem Speicherbereich vornimmt, nachdem sie die Daten an das Hardware-Sicherheitsmodul 100, 100', z.B. zwecks Operation auf dem Speicherbereich, übergeben hat.

Bei weiteren beispielhaften Ausführungsformen wird die D-MPLI dynamisch, z.B. zur Laufzeit, z.B. ausschließlich, durch ein bzw. das Hardware-Sicherheitsmodul 100, 100' konfiguriert. Die D-MPLI kann hierzu z.B. einzelne und/oder mehrere Adressbereiche im Speicher vor Änderungen durch die einzelnen Partitionen schützen.

In Fig. 16 ist ein Speicherbereich einer Speichereinrichtung gemäß beispielhaften Ausführungsformen in vereinfachter weise abgebildet. Eine erste Spalte SP-1 charakterisiert eine Speicheradresse, eine zweite Spalte SP-2 charakterisiert einen Dateninhalt, eine dritte Spalte SP-3 charakterisiert wenigstens ein Schutzflag, beispielsweise Protection Flag (z.B. charakterisierbar durch ein oder mehrere Bits, z.B. eine, z.B. lineare, Bitmap), und eine vierte Spalte SP-4 charakterisiert einen Besitzer (z.B. owner), also z.B. eine Partition, die den entsprechenden Speicherbereich besitzt. Wie aus Fig. 16 ersichtlich ist, beschreibt eine erste Zeile Z-1 eine Speicheradresse 0x00 mit dem Dateninhalt 0x1245, einem Schutzflag "W, und dass diese Speicheradresse einer ersten Partition Par#1 zugewiesen ist. Eine weitere Zeile Z-k beschreibt eine Speicheradresse OxAO mit dem Dateninhalt 0x156A, Schutzflags "R", "W", und dass diese Speicheradresse einer dritten Partition Par#3 zugewiesen ist. Eine weitere Zeile Z-m beschreibt eine Speicheradresse OxBA mit dem Dateninhalt 0xA352, einem Schutzflag "W", und dass diese Speicheradresse allen Partitionen zugewiesen ist. Eine weitere Zeile Z-o beschreibt eine Speicheradresse 0xD3 mit dem Dateninhalt 0x425D, ohne Schutzflags, und dass diese Speicheradresse einer zweiten Partition Par#2 zugewiesen ist.

Bei weiteren beispielhaften Ausführungsformen sind die Schutzflags bzw. Protection Flags z.B. wie folgt definiert:

"W" = Write Protection, in dem Adressbereich sind keine Änderungen möglich, Lesezugriff ist möglich;

"R", "W" = Read/Write Protection, weder Lese noch Schreibzugriff ist möglich;

" " = No Protection oder kein Flag gesetzt, auf den Adressbereich kann sowohl lesend als auch schreibend zugegriffen werden;

"Part#n", n>=1 , beschreibt die Partition, der dieser Speicherbereich gehört. Z.B. darf lediglich diese Partition auf den Speicher entsprechend grundsätzlich zugreifen (z.B. gemäß "R", "W"), es sei denn z.B. die Protection Flags überschreiben die Zugriffsberechtigung;

"ALL" = Zugriff auf diesen Speicherbereich ist beliebig durch alle Partitionen möglich.

Bei weiteren beispielhaften Ausführungsformen können sich die Protection Flags des Speicherbereichs, z.B. aufgrund einer entsprechenden Konfiguration der D- MPU durch das Hardware-Sicherheitsmodul 100, 100', zur Laufzeit verändern. Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Hardware-Sicherheitsmodul 100, 100' wenigstens einen Speicherbereich, z.B. vor weiteren Zugriffen, z.B. Manipulationen, z.B. durch einen Besitzer (z.B. "Partition Owner"), schützt, z.B. nachdem Daten von der Partition an das Hardware-Sicherheitsmodul 100, 100' übergeben worden sind, wodurch bei weiteren beispielhaften Ausführungsformen z.B. Time-of- Check / Time-of-Use Angriffe verhindert werden können.

Nachfolgend sind beispielhaft Aspekte eines Schlüsselspeichers KS (Fig. 1) gemäß weiteren beispielhaften Ausführungsformen beschrieben, beispielsweise betreffend eine Virtualisierung des Schlüsselspeichers KS. Im Folgenden werden z.B. auch Aspekte der Vorrichtung 400, z.B. im Sinne eines "Partition Detectors" an dem Beispiel des Schlüsselspeichers KS veranschaulicht, wobei die genannten Aspekte bei weiteren beispielhaften Ausführungsformen z.B. auch auf andere, z.B. alle anderen, Anwendungsszenarien des Hardware- Sicherheitsmoduls 100, 100' übertragbar sind, bei denen z.B. sensitive Daten zu einer spezifischen Partition gehören, wie zum Beispiel Anwendungen betreffend den Aspekt des "Sicheren Loggens".

Bei weiteren beispielhaften Ausführungsformen werden in dem Schlüsselspeicher KS z.B. alle kryptographischen Schlüssel gesichert abgelegt. Der Schlüsselspeicher KS wird z.B. in einem Flash-Speicher verschlüsselt abgelegt, und z.B. bei einem initialen Booten in das Hardware-Sicherheitsmodul 100, 100' geladen. Um zu verhindern, dass eine Partition auf kryptographisches Material einer anderen Partition zugreifen kann, werden bei weiteren beispielhaften Ausführungsformen z.B. für jeden einzelnen Eintrag im Schlüsselspeicher KS die entsprechenden Zugriffsrechte konfiguriert.

Bei weiteren beispielhaften Ausführungsformen können in dem Schlüsselspeicher KS, z.B. zusätzlich zu Zugriffsrechten wie z.B. "Read" ("Lesen"), "Write" ("Schreiben"), "Executable" ("Ausführen" bzw. "ausführbar"), z.B. pro Schlüsseleintrag KS-1 , KS-2, KS-3, ... auch entsprechende zusätzliche Protection Flags, z.B. wie vorstehend beispielhaft für eine Speichereinrichtung, z.B. den geteilten Speicher SH-MEM, beschrieben, vorgesehen, z.B. gesetzt, werden. Sofern diese Protection Flags entsprechend gesetzt sind, würde es z.B. bedeuten, dass eine Partition beispielsweise einen Schlüssel überschreiben kann, eine andere Partition den Schlüssel aber nur nutzen kann (aber z.B. nicht überschreiben). Bei weiteren beispielhaften Ausführungsformen kann z-B. auch das Setzen eines Read-Flags für den Schlüsselspeicher KS vorgesehen sein. Fig. 17 zeigt schematisch eine vereinfachte Tabelle gemäß beispielhaften Ausführungsformen, die Informationen eines beispielhaften Schlüsselspeichers enthält. Eine Schlüssel-Identifikation (z.B. Key-ID) ist in Spalte SP-1 enthalten, Spalte SP-2 enthält den kryptografischen Schlüssel, Spalte SP-3 enthält Informationen über einen Schlüsseltyp bzw. einen Algorithmus, für den der betreffende Schlüssel verwendbar ist, Spalte SP-4 enthält weitere Eigenschaften des betreffenden Schlüssels (z.B. "Verify-only", "nur zum Verifizieren", "Signing Key", "Schlüssel zum Signieren"), und Spalte SP-5 gibt ggf. eine Partition als Besitzer des betreffenden Schlüssels an. Bei weiteren beispielhaften Ausführungsformen darf z.B. ausschließlich der Besitzer des Schlüssels gemäß Spalte SP-5 den betreffenden kryptographischen Schlüssel für Operationen verwenden. Weitere Rechtegranularitäten sind bei weiteren beispielhaften Ausführungsformen ebenfalls möglich, aber nicht in der beispielhaften Abbildung gemäß Fig. 17 dargestellt.

Fig. 18 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen. Abgebildet ist ein Hardware-Sicherheitsmodul 100", das z.B. auf einem selben Halbleitersubstrat 1002 angeordnet ist, wie mehrere Partitionen e32-1 , ... , e32-n einer Recheneinrichtung. Ein Informations- bzw. Datenaustausch zwischen den Komponenten e32-1 , ... , e32-n, 100" erfolgt z.B. über ein, z.B. chip-internes ("on-chip"), Bussystem a6. Manchen, beispielsweise allen, Partitionen e32-1, ... , e32-n ist jeweils eine Einheit e32-T, e32-n' zur Bereitstellung einer Identifikation ID#1 , ... , ID#n der ihr zugeordneten Partition e32-1 , ... , e32-n zugeordnet, die z.B. die Identifikation der jeweiligen Partition an das Hardware-Sicherheitsmodul 100" übermittelt, s. die Pfeile a7, a8, z.B. dann, wenn die jeweilige Partition Daten an das Hardware-Sicherheitsmodul 100" übermittelt. Auf diese Weise erlangt das Hardware-Sicherheitsmodul 100" erste Informationen 1-1, die eine Identität wenigstens einer auf das Hardware- Sicherheitsmodul 100" zugreifenden Partition e32-1 , ... , e32-n charakterisieren.

Element e21 symbolisiert eine optionale Einrichtung zur Unterstützung von Debug-Prozessen. Element e22 symbolisiert einen, z.B. sicheren, Rechenkern. Element e23 symbolisiert wenigstens eine Entropiequelle, z.B. einen Pseudozufallszahlengenerator (PRNG) oder einen Zufallszahlengenerator (TRNG). Element e24 symbolisiert einen, z.B. sicheren (z.B. vor Zugriffen außerhalb des Hardware-Sicherheitsmoduls 100" gesicherten) Speicher, z.B. flüchtigen Speicher, z.B. Arbeitsspeicher, z.B. ein secure local RAM. Element e25 symbolisiert eine Einrichtung zur Bildung von Hashwerten. Element e26 symbolisiert eine Schnittstelle zu dem Bussystem a6. Element e27 symbolisiert die Vorrichtung 400 gemäß den Ausführungsformen. Element e28 symbolisiert eine Einrichtung zur Ausführung von kryptografischen Primitiven und/oder Funktionen, beispielsweise basierend auf ECC (Elliptische-Kurven-Kryptografie). Element e29 symbolisiert eine Einrichtung zur Ausführung von kryptografischen Primitiven und/oder Funktionen, beispielsweise basierend auf dem RSA- Algorithmus. Element e30 symbolisiert eine Einrichtung zur Ausführung von kryptografischen Primitiven und/oder Funktionen, beispielsweise basierend auf dem AES-Algorithmus.

Element e31 symbolisiert eine Speichereinrichtung, beispielsweise angebunden über das Bussystem a6, z.B. vom RAM-Typ, die z.B. in einen geteilten Speicherbereich e31a, ein System-RAM e31b, und einen geschützten Bereich e31c aufgeteilt ist.

Die Vorrichtung e27, 400 kann eine Identität einzelner Partitionen e32-1 , ... ermitteln und z.B. für eine Steuerung eines Betriebs des Hardware- Sicherheitsmoduls 100" auf der Basis der ermittelten Identität bereitstellen.

Fig. 19 zeigt schematisch ein vereinfachtes Blockdiagramm eines SoC 1000" gemäß beispielhaften Ausführungsformen, das eine Recheneinrichtung 300 mit mehreren Partitionen e32-1 , e32-2, ... , e32-n aufweist, ein Hardware- Sicherheitsmodul 100", eine Speichereinrichtung e31, z.B. ähnlich oder identisch zu der Konfiguration gemäß Fig. 18. Element e33 symbolisiert eine D-MPLI mit einer Konfiguration e33a, die z.B. durch das Hardware-Sicherheitsmodul 100", z.B. über das Bussystem a6, vorgebbar und/oder veränderbar ist. Element e34 symbolisiert einen nichtflüchtigen Speicher, z.B. einen Flash-Speicher, z.B. Host- Flash, der z.B. einen Speicherbereich e34a für Daten und einen Speicherbereich e34b für Programmcode aufweist. Element e35a symbolisiert ein chip- bzw. SoC- internes Diagnoseinterface, Element e35b symbolisiert mit dem Diagnoseinterface e35a assoziierte Register, und Element e35c symbolisiert eine externe (außerhalb des SoC 1000" angeordnete) Diagnoseeinrichtung, z.B. einen Debug Access Port, also Anschluss für einen Diagnosezugang, z.B. zum Debuggen. Das Element e36 symbolisiert eine Einrichtung zur Verarbeitung z.B. von mit dem AES assoziierten Daten, die z.B. über ein sicheres Bussystem a9 an das Interface e26 angebunden ist, z.B. ebenso bzw. ähnlich wie der dem Hardware- Sicherheitsmodul 100" zugeordnete Flash-Speicher e20, s. das sichere Bussystem a10. Der Flash-Speicher e20 weist z.B. einen Datenbereich e20a auf und einen Bereich e20b für Programmcode.

Weitere beispielhafte Ausführungsformen, Fig. 20, beziehen sich auf eine Verwendung 500 des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung 301 , 400 gemäß den Ausführungsformen und/oder des Hardware- Sicherheitsmoduls 100, 100', 100" gemäß den Ausführungsformen und/oder der Recheneinrichtung 300, 1000, 1000' gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums SM gemäß den Ausführungsformen und/oder des Computerprogramms PRG gemäß den Ausführungsformen und/oder des Datenträgersignals DCS gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Ermitteln 501 von ersten Informationen 1-1 , die eine Identität wenigstens einer zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildeten, beispielsweise auf das Hardware- Sicherheitsmodul zugreifenden, Partition einer Recheneinrichtung charakterisieren, b) Virtualisieren 502 eines Hardware-Sicherheitsmoduls, c) Ermitteln 503 einer Identität einer Partition, die auf das Hardware- Sicherheitsmodul zugreift, d) Priorisieren 504 von mit unterschiedlichen Partitionen einer Recheneinrichtung assoziierten Operationen basierend auf einer Identität wenigstens einer der unterschiedlichen Partitionen, e) Steigern 505 einer Sicherheit eines Hardware-Sicherheitsmoduls, auf das mehrere Partitionen einer Recheneinrichtung zugreifen können.

Das Prinzip gemäß den Ausführungen kann beispielsweise für Mikroprozessoren und/oder Mikrocontroller bzw. für SoCs 1000, 1000', 1000", z.B. für Steuergeräte, z.B. für Fahrzeuge, z.B. Kraftfahrzeuge (z.B. Steuergeräte für Brennkraftmaschinen und/oder Airbags und/oder Bremssysteme usw.), verwendet werden, und/oder für Domänen-Steuergeräte, ist aber nicht darauf beschränkt.