DE102015115295A1 - Verfahren und vorrichtung zur verarbeitung von daten - Google Patents

Verfahren und vorrichtung zur verarbeitung von daten Download PDF

Info

Publication number
DE102015115295A1
DE102015115295A1 DE102015115295.9A DE102015115295A DE102015115295A1 DE 102015115295 A1 DE102015115295 A1 DE 102015115295A1 DE 102015115295 A DE102015115295 A DE 102015115295A DE 102015115295 A1 DE102015115295 A1 DE 102015115295A1
Authority
DE
Germany
Prior art keywords
identifier
component
security
mac
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102015115295.9A
Other languages
English (en)
Inventor
Laurent HEIDT
Albrecht Mayer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102015115295A1 publication Critical patent/DE102015115295A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Ein Verfahren zur Verarbeitung von Daten wird vorgeschlagen und umfasst: (i) Übertragen von Eingangsdaten von einer Sicherheitskomponente zu einer Schutzkomponente; und (ii) Berechnen, in der Schutzkomponente, eines zweiten Identifikators auf der Basis der Eingangsdaten. Das Verfahren umfasst ferner: (iii) Übertragen des zweiten Identifikators zur Sicherheitskomponente, und (iv) Verifizieren, in der Sicherheitskomponente, eines ersten Identifikators auf der Basis des zweiten Identifikators.

Description

  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf die Verarbeitung von Daten, insbesondere um einen Identifikator, z.B. eine Signatur, zwischen zwei Komponenten, insbesondere einer Sicherheitskomponente und einer Schutzkomponente, zu verifizieren, wobei vorteilhaft nur die Sicherheitskomponente ausgebildet sein kann, einen automotiven Sicherheits-Integritätslevel zu erfüllen.
  • Eine Aufgabe besteht insbesondere darin, effizient einen Sicherheits-Integritätslevel bereitzustellen oder zu verbessern.
  • Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Diese hierin vorgeschlagenen Beispiele können insbesondere auf zumindest einer der nachfolgenden Lösungen basieren. Insbesondere können Kombinationen der nachfolgenden Merkmale eingesetzt werden, um ein gewünschtes Ergebnis zu erreichen. Die Merkmale des Verfahrens können mit (einem) beliebigen Merkmal(en) der Vorrichtung, des Geräts oder Systems oder umgekehrt kombiniert werden.
  • Es wird ein Verfahren zur Verarbeitung von Daten vorgeschlagen, das folgende Schritte umfasst:
    • – Übertragen von Eingangsdaten von einer Sicherheitskomponente zu einer Schutzkomponente;
    • – Berechnen, in der Schutzkomponente, eines zweiten Identifikators auf der Basis der Eingangsdaten;
    • – Übertragen des zweiten Identifikators zur Sicherheitskomponente; und
    • – Verifizieren, in der Sicherheitskomponente, eines ersten Identifikators auf der Basis des zweiten Identifikators.
  • Hierbei sei angemerkt, dass die Sicherheitskomponente einer Safety-Komponente und die Schutzkomponente einer Security-Komponente entsprechen. Hierbei richtet sich der Begriff Security insbesondere auf eine „Angriffssicherheit“ und der Begriff Safety insbesondere auf eine „Betriebssicherheit“.
  • Als Beispiel kann der MAC zur Sicherheitskomponente zurückgeführt werden. Der erste Identifikator kann ein MAC in der Sicherheitskomponente sein und der zweite Identifikator kann ein MAC sein, der von der Schutzkomponente berechnet und zugeführt wird.
  • Die Sicherheitskomponente und die Schutzkomponente können jeweils ein Stück Hardware, eine Integrationsschaltung, eine Mikrosteuereinheit, ein Prozessor, eine FPGA, eine ASIC oder dgl. sein. Jede dieser Komponenten kann Software (oder Firmware) umfassen, um die Operationen wie hier beschrieben durchzuführen.
  • Das Übertragen oder Zuführen von Daten in dieser Hinsicht bezieht sich insbesondere darauf, Daten für einen Adressaten verfügbar zu machen. Demgemäß kann der Adressat Daten von einer anderen Komponente erhalten, die sie verfügbar gemacht hat.
  • Dies kann erzielt werden, indem Daten aktiv geschoben werden, z.B. Daten gesendet werden, z.B. über Nachrichten, zwischen Komponenten. Als Alternative können die Daten von einem Adressaten oder von einem beliebigen anderen (gemeinsam genutzten) Medium abgerufen werden, z.B. einem gemeinsam genutzten Speicher. Beispielsweise kann eine Interprozessorkommunikation verschiedenster Arten verwendet werden, um Daten von einer sendenden Komponente zu einer empfangenden Komponente zu „übertragen“. Es ist auch eine Option, dass die Komponenten über eine Verbindung, einen Bus oder ein Netz verbunden sind. Eine derartige Verbindung kann verwendet werden, um die Daten zwischen den Komponenten zu übertragen.
  • Die Sicherheitskomponente kann auch als erste Komponente angesehen werden und die Schutzkomponente kann als zweite Komponente angesehen werden. Beide Komponenten können ein Kommunikationsschema verwenden, um Daten zu übertragen. Auch kann jede Komponente Verarbeitungsfähigkeiten haben, um die beschriebene(n) Operation(en) durchzuführen.
  • Der jeweilige Identifikator kann auf einem kryptografischen Algorithmus (Codierungsschema) unter Verwendung symmetrischer oder asymmetrischer Kryptografie basieren. Der Identifikator kann insbesondere eine Signatur umfassen oder sein.
  • Der hier vorgeschlagene Ansatz ermöglicht es der Sicherheitskomponente, den ersten Identifikator zu verifizieren, indem sie ihn zur Schutzkomponente (z.B. zu einem Schutzmodul oder einem Schutzprozessor) überträgt und den zweiten Identifikator von der Schutzkomponente empfängt. Die Sicherheitskomponente verifiziert den ersten Identifikator auf der Basis dieses zweiten Identifikators. Die Entscheidung über die Validität und Integrität des ersten Identifikators wird von der Sicherheitskomponente getroffen, die Schutzkomponente kann vorteilhaft verwendet werden, um ein Zwischenergebnis zuzuführen.
  • Es wird angemerkt, dass der zweite Identifikator ein Ergebnis eines kryptografischen Algorithmus sein kann, oder er kann ein Informationsstück sein, das es der Sicherheitskomponente gestattet, den ersten Identifikator zu verifizieren.
  • Die von der Sicherheitskomponente durchgeführte Verifikation kann die Validität und Authentizität des ersten Identifikators abdecken.
  • Zusätzlich ermöglicht der präsentierte Ansatz das Aufdecken eines Stuck-at-Fehlers in der Schutzkomponente oder an ihrer Schnittstelle. Daher ermöglicht die Lösung vorteilhaft eine „Prüfung des Prüfers“ (d.h. des Schutzprozessors).
  • Es ist eine Weiterbildung, dass die Sicherheitskomponente einen Sicherheits-Integritätslevel, insbesondere einen automotiven Sicherheits-Integritätslevel, erfüllt.
  • Die Sicherheitskomponente kann insbesondere einen ASIL auf der Basis einer standardisierten Spezifikation erfüllen, z.B. ASIL A, ASIL B, ASIL C oder ASIL D.
  • Es ist eine Weiterbildung, dass die Schutzkomponente kryptografische Operationen vorsieht und einen Sicherheits-Integritätslevel nicht erfüllt.
  • Daher ist es eine Option, dass die Schutzkomponente irgendeinen ASIL nicht erfüllen muss.
  • Es ist eine Weiterbildung, dass der erste Identifikator und der zweite Identifikator jeweils auf einer Hash-Funktion, insbesondere auf einer kryptografischen Hash-Funktion, basieren.
  • Beispielsweise kann ein MAC oder ein CMAC als kryptografische Hash-Funktion verwendet werden. Es können auch Einweg-Funktionen beliebiger Art verwendet werden. Symmetrische oder asymmetrische Schlüssel (öffentliche Schlüsselkryptografie) können verwendet werden, um den jeweiligen Identifikator zu berechnen.
  • Es ist eine Weiterbildung, dass das Verfahren weiter umfasst:
    • – in der Sicherheitskomponente, Vergleichen des zweiten Identifikators mit dem ersten Identifikator.
  • Es ist eine Weiterbildung, dass das Verfahren weiter umfasst:
    • – Durchführen einer ersten Aktion, falls der erste Identifikator gleich ist wie der zweite Identifikator; und
    • – Durchführen einer zweiten Aktion, falls der erste Identifikator nicht gleich ist wie der zweite Identifikator.
  • Die erste Aktion kann eine vordefinierte Aktion auf der Basis der Eingangsdaten sein (auch als Nutzinformationen bezeichnet), die von der Sicherheitskomponente zusammen mit dem ersten Identifikator empfangen worden sein können. Die zweite Aktion kann eine Alarmbenachrichtigung, eine Fehleranzeige oder dgl. umfassen.
  • Es ist eine Weiterbildung, dass der erste Identifikator und die Eingangsdaten von einer externen Komponente erhalten werden.
  • Der erste Identifikator kann zusammen mit den Eingangsdaten erhalten werden (auch als Nutzinformationen bezeichnet), z.B. über eine Nachricht oder über einen gemeinsam genutzten Speicher, von einer solchen externen Komponente. Der erste Identifikator kann wenigstens einem Abschnitt der genannten Nutzinformationen entsprechen, z.B. ein Hash-Wert sein, der den genannten Nutzinformationen (oder einem Abschnitt davon) entspricht. Daher ermöglicht es die erfolgreiche Verifikation des ersten Identifikators der Sicherheitskomponente, eine Aktion durchzuführen, die auf diesen Nutzinformationen basiert, z.B. einen Befehl, wie von den Nutzinformationen angezeigt, auszuführen.
  • Es ist eine Weiterbildung, dass die Sicherheitskomponente und die Schutzkomponente auf mindestens einer Vorrichtung eingerichtet sind.
  • Die genannte Vorrichtung kann insbesondere eine Mikrosteuereinheit, eine FPGA, eine ASIC, ein Prozessor oder dgl. sein oder umfassen.
  • Es ist eine Weiterbildung, dass das Verfahren umfasst:
    • – Berechnen des zweiten Identifikators in der Schutzkomponente auf der Basis der Eingangsdaten und auf der Basis eines Schlüssels.
  • Es ist eine Weiterbildung, dass der Schlüssel auf der Basis eines Schlüsselidentifikators bestimmt wird, der von der Sicherheitskomponente bereitgestellt wird.
  • Es ist eine Weiterbildung, dass das Verfahren umfasst:
    • – Berechnen, in der Schutzkomponente, des zweiten Identifikators auf der Basis der Eingangsdaten, eines ersten Schlüssels, eines Eingangsvektors und eines zweiten Schlüssels.
  • Daher kann der zweite Identifikator ein Wert C als Ergebnis einer kryptografischen Operation sein. Der erste Identifikator kann ein dynamischer Eintrag sein (vorgesehen über einen Speicherteil oder eine Tabelle, z.B. der genannte Eintrag Xi der Tabelle 226), der verarbeitet werden kann, z.B. über eine XOR-Operation, mit dem zweiten Identifikator. Der erste Identifikator ändert sich für jede Verifikationsanforderung, was es ermöglicht, einen dynamischen Aspekt zuzuführen, der Stuck-at-Fehler in der Schutzkomponente aufdecken würde. Der dynamische Aspekt (nicht der Eintrag Xi) kann übertragen werden, z.B. als dynamischer Index, zur Sicherheitskomponente. Dieser dynamische Index kann verwendet werden, um einen Schlüssel zu adressieren, der als genannter zweiter Schlüssel verwendet werden kann. Daher kann der erste Identifikator von der Sicherheitskomponente verifiziert werden, ohne dass der Wert des ersten Identifikators zwischen der Sicherheitskomponente und der Schutzkomponente übertragen werden muss.
  • Es ist eine Weiterbildung, dass der erste Schlüssel auf Basis eines Schlüsselidentifikators bestimmt wird, der von der Sicherheitskomponente bereitgestellt wird.
  • Es ist eine Weiterbildung, dass der zweite Schlüssel nach einem dynamischen Index bestimmt wird, der von der Sicherheitskomponente bereitgestellt wird.
  • Es ist eine Weiterbildung, dass das Verfahren umfasst:
    • – Verifizieren, in der Sicherheitskomponente, des ersten Identifikators auf der Basis des zweiten Identifikators durch Verarbeiten eines vordefinierten Werts, der durch den dynamischen Index bestimmt wird, mit dem zweiten Identifikator, der von der Schutzkomponente bereitgestellt wird.
  • Es ist eine Weiterbildung, dass das Verfahren umfasst:
    • – Berechnen eines dritten Identifikators auf der Basis der Eingangsdaten und des ersten Schlüssels; und
    • – Berechnen des zweiten Identifikators auf der Basis des dritten Identifikators, des zweiten Schlüssels und des Eingangsvektors.
  • Der Eingangsvektor kann auf einer Hash-Funktion basieren, insbesondere einer kryptografischen Hash-Funktion. Der Eingangsvektor kann ein MAC oder ein CMAC der Nutzinformationsdaten (Eingangsdaten) sein.
  • Daher kann die Schutzkomponente intern den dritten Identifikator erzeugen, der vorteilhaft als solcher die Schutzkomponente nicht verlässt. Im Fall einer erfolgreichen Verifikation des ersten Identifikators in der Sicherheitskomponente kann der dritte Identifikator dem Eingangsvektor entsprechen. Die Verarbeitung in der Schutzkomponente verwendet jedoch den dritten Identifikator zusammen mit den oben angegebenen Parametern (Eingangsvektor, zweiter Schlüssel), um den zweiten Identifikator zur Sicherheitskomponente zu übertragen, wobei sich der zweite Identifikator dynamisch ändern kann und insbesondere nicht derselbe für zwei (oder mehrere) aufeinanderfolgende Verifikationsanforderungen sein kann. Daher können Stuck-at-Fehler in der Schutzkomponente ersichtlich werden, wenn zwei oder mehrere zweite Identifikatoren, die aufeinanderfolgend ausgegeben werden, denselben Wert zeigen.
  • Es ist eine Weiterbildung, dass das Verfahren umfasst:
    • – Übertragen der Eingangsdaten und eines vierten Identifikators, der auf der Basis einer vorherbestimmten Operation bestimmt wird, die auf den ersten Identifikator angewendet wird, von der Sicherheitskomponente zur Schutzkomponente;
    • – Berechnen, in der Schutzkomponente, eines dritten Identifikators auf der Basis der Eingangsdaten;
    • – Vergleichen, in der Schutzkomponente, entweder eines modifizierten vierten Identifikators mit dem dritten Identifikator oder des vierten Identifikators mit einem modifizierten dritten Identifikator,
    • – wobei der dritte Identifikator als der zweite Identifikator von der Schutzkomponente zur Sicherheitskomponente übertragen wird, falls der Vergleich bestätigt hat, dass entweder der modifizierte vierte Identifikator und der dritte Identifikator gleich sind oder der vierte Identifikator und der modifizierte dritte Identifikator gleich sind.
  • Es wird angemerkt, dass der Vergleich entweder des modifizierten vierten Identifikators mit dem dritten Identifikator oder des vierten Identifikators mit dem modifizierten dritten Identifikator alternativ gewählt werden kann. Es ist insbesondere eine Option, eine oder die andere Alternative zu implementieren, insbesondere nicht beide gleichzeitig.
  • Daher vergleicht die Sicherheitskomponente den von der Schutzkomponente erhaltenen zweiten Identifikator mit dem ersten Identifikator; falls sie übereinstimmen, kann die Sicherheitskomponente den ersten Identifikator erfolgreich verifizieren.
  • Es ist eine Weiterbildung, dass die vorherbestimmte Operation wenigstens eines der Folgenden umfassen kann:
    • – ein bitweises Komplement, und
    • – eine zirkulierende Bitverschiebung.
  • Es ist eine Weiterbildung, dass der modifizierte vierte Identifikator auf der Basis einer Umkehrung (Invertierung) der vorherbestimmten Operation bestimmt wird.
  • Es ist eine Weiterbildung, dass der modifizierte dritte Identifikator auf der Basis der vorherbestimmten Operation bestimmt wird.
  • Es ist eine Weiterbildung, dass eine Information, die von dem dritten Identifikator verschieden ist, als der zweite Identifikator von der Schutzkomponente zur Sicherheitskomponente übertragen wird, falls der Vergleich nicht bestätigt hat, dass entweder der modifizierte vierte Identifikator und der dritte Identifikator gleich sind oder der vierte Identifikator und der modifizierte dritte Identifikator gleich sind.
  • Es ist eine Weiterbildung, dass die vom dritten Identifikator verschiedene Information der vierte Identifikator ist.
  • Es ist eine Weiterbildung, dass der zweite Identifikator auf der Basis einer AES-Funktion, insbesondere einer AES-CBC-Funktion, berechnet wird.
  • Weiterhin wird eine Vorrichtung vorgeschlagen zur Verarbeitung von Daten, umfassend eine Sicherheitskomponente und eine Schutzkomponente,
    • – wobei die Sicherheitskomponente zum Übertragen von Eingangsdaten zur Schutzkomponente eingerichtet ist;
    • – wobei die Schutzkomponente zum Berechnen eines zweiten Identifikators auf der Basis der Eingangsdaten und zum Übertragen des zweiten Identifikators zur Sicherheitskomponente eingerichtet ist; und
    • – wobei die Sicherheitskomponente zum Verifizieren eines ersten Identifikators auf der Basis des zweiten Identifikators eingerichtet ist.
  • Es ist eine Weiterbildung, dass die Vorrichtung wenigstens eines der folgenden ist: eine Mikrosteuereinheit (ein Mikrocontroller), ein FPGA, ein ASIC, ein Prozessor.
  • Es ist eine Weiterbildung, dass die Sicherheitskomponente einen Sicherheits-Integritätslevel, insbesondere einen automotiven Sicherheits-Integritätslevel erfüllt; und dass die Schutzkomponente kryptografische Operationen bereitstellt und einen Sicherheits-Integritätslevel nicht erfüllt.
  • Weiterhin wird ein Computerprogrammprodukt vorgeschlagen, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist und Software-Codeabschnitte zur Durchführung der Schritte des hierin beschriebenen Verfahrens umfasst.
  • Ausführungsformen werden mit Bezugnahme auf die Zeichnungen gezeigt und veranschaulicht. Die Zeichnungen dienen der Darstellung des Grundprinzips, so dass nur Aspekte veranschaulicht werden, die für das Verständnis des Grundprinzips notwendig sind. Die Zeichnungen sind nicht maßstabgetreu. In den Zeichnungen bezeichnen die gleichen Bezugszeichen ähnliche Merkmale.
  • 1 zeigt ein Beispiel einer Darstellung, welche eine Sicherheitskomponente und eine Schutzkomponente umfasst, die beide ein Teil einer Mikrosteuereinheit sein können, wobei ein erster Identifikator, der von der Sicherheitskomponente erhalten wird, über die Schutzkomponente verifiziert wird;
  • 2 zeigt eine schematische Darstellung einer alternativen Lösung;
  • 3 zeigt ein schematisches Flussdiagramm eines Verfahrens, das den MAC-Wert oder einen beliebigen MAC-Wert, der auf dem tatsächlichen MAC-Wert basieren kann, überträgt, nur falls die Schutzkomponente seine Validität erfolgreich verifiziert hat.
  • Der automotive Sicherheits-Integritätslevel (Automotive Safety Integrity Level) (ASIL) ist ein Risikoklassifikationsschema, definiert durch den Standard ISO 26262 – Funktionale Sicherheit für Straßenfahrzeuge (Functional Safety for Road Vehicles), der eine Anpassung des im IEC 61508 verwendeten Sicherheits-Integritätslevels für die Automobilindustrie ist. Der ASIL wird durch die Vornahme einer Risikoanalyse einer potenziellen Gefahr festgelegt, indem Verletzungsgrad, Häufigkeit der Situation und Beherrschbarkeit der Fahrzeugbetriebsumgebung untersucht werden. Es gibt vier ASILs, die von dem Standard definiert werden: ASIL A, ASIL B, ASIL C, ASIL D. ASIL D gibt hierbei die höchsten Integritätsanforderungen an das Produkt vor, und ASIL A die niedrigsten (siehe z.B. http://en.wikipedia.org/wiki/Automotive_Safety_Integrity_Level).
  • Ein Nachrichtenauthentifizierungscode (Message Authentification Code) (häufig MAC) ist ein kurzes Stück von Informationen, das verwendet wird, um eine Nachricht zu authentifizieren sowie Integritäts- und Authentizitätsgarantien über die Nachricht zu liefern. Integritätsgarantien detektieren zufällige und beabsichtigte Nachrichtenänderungen, während Authentizitätsgarantien den Ursprung der Nachricht bestätigen. Ein MAC-Algorithmus, manchmal als verschlüsselte (kryptografische) Hash-Funktion bezeichnet (wobei jedoch die kryptografische Hash-Funktion nur einer der möglichen Wege zur Generierung von MACs ist), akzeptiert als Eingang einen geheimen Schlüssel und eine Nachricht mit willkürlicher Länge, die zu authentifizieren ist, und gibt einen MAC aus (manchmal als Tag bekannt). Der MAC-Wert schützt sowohl die Datenintegrität einer Nachricht als auch ihre Authentizität, indem Verifikatoren (die den geheimen Schlüssel auch besitzen) gestattet wird, jegliche Änderungen im Nachrichteninhalt zu detektieren (siehe z.B. http://en.wikipedia.org/wiki/Message_authentication_code). Es ist auch ein CMAC (Chiffren-MAC – Cipher-based MAC) als Blockchiffren-basierter Nachrichtenauthentifizierungscode bekannt (siehe z.B. http://en.wikipedia.org/wiki/Cmac).
  • Es wird angemerkt, dass gemäß den hier vorgesehenen Beispielen eine beliebige Hash-Funktion, kryptografische Hash-Funktion oder dgl. verwendet werden kann, um einen Identifikator zu generieren. Eine symmetrische Verschlüsselung (z.B. unter Verwendung eines gemeinsamen Geheimnisses als Schlüssel) oder asymmetrische Verschlüsselung (z.B. unter Verwendung öffentlicher Schlüsselkryptografie) kann verwendet werden, um den Identifikator zu generieren. Der Identifikator kann insbesondere eine digitale Signatur sein.
  • Vorteilhaft präsentierte Beispiele erfordern keinen Logikblock oder ein CPU-Subsystem, der bzw. das gemäß dem funktionellen Sicherheitsstandard ISO26262 mit ASIL A, B, C oder D entwickelt wird. Der Logikblock oder das CPU-Subsystem können stattdessen gemäß einem Standard-Entwicklungsprozess entwickelt werden.
  • Der Logikblock oder das CPU-Subsystem kann Sicherheitsfunktionalitäten umfassen und wird unter anderem zur Prüfung einer Authentizität und Integrität einer Nachricht oder eines Datenstroms verwendet. Falls die Nachricht oder der Datenstrom sicherheitsbezogen ist, kann dann in Abhängigkeit von der Anwendung ihre bzw. seine Authentizität und Integrität auch als sicherheitsbezogen angesehen werden. In diesem Fall kann der Teil des Logikblocks oder CPU-Subsystems, der sich auf eine solche Prüfung bezieht, gemäß dem ISO 26262 Standard mit ASIL A, B, C oder D entwickelt werden.
  • Entwicklungen gemäß dem ISO 26262 Standard führen zu einer Zunahme der Komplexität, Kosten, Chipgröße, und sie erzeugen zusätzliche Energieverteilungsprobleme aufgrund der erhöhten Anzahl von Hardware-Verarbeitungsteilen und der zusätzlichen Software, die auf der Schutz-CPU läuft.
  • Die präsentierten Beispiele ermöglichen die Entfernung jeder sicherheitsbezogenen Anforderung im Hinblick auf die Prüfung des Nachrichtenauthentifizierungscodes vom Schutzlogikblock oder CPU-Subsystem, während nahezu die gesamte schutzrelevante Funktionalität im Logikblock oder CPU-Subsystem verbleibt. Daher wird es ermöglicht, die Komplexität, die Chipfläche und den Energieverbrauch niedrig zu halten.
  • Dies kann erzielt werden, indem die Prüfung des Identifikators, z.B. MAC, auf einer sicheren Hardware durch eine sichere Software durchgeführt wird. Daher kann ein signifikanter Anteil von Schritten durch eine unsichere Schutz-Software und auf einer unsicheren Schutz-Hardware vorgenommen werden, wobei potenzielle Fehler mit einer hohen Wahrscheinlichkeit durch einen unabhängigen sicheren Logikblock oder ein sicheres CPU-Subsystem detektiert werden können.
  • 1 zeigt ein Beispiel einer Darstellung, welche eine Sicherheitskomponente (einen Block 101) und eine Schutzkomponente (einen Block 102) umfasst, die beide ein Teil einer Mikrosteuereinheit 103 sein können, wobei ein erster Identifikator, der von der Sicherheitskomponente erhalten wird, über die Schutzkomponente verifiziert wird. Jeder Block 101, 102 kann ein Logikblock oder ein CPU-Subsystem sein.
  • Der Block 101 kann eine sichere Hardware sein (auch als Sicherheitskomponente bezeichnet), die eine sichere Anwendung ausführt, wenn notwendig, mit der Hilfe sicherer Software. Der Block 102 kann eine unsichere Hardware sein, die eine unsichere Anwendung ausführt (auch als Schutzkomponente bezeichnet), wenn notwendig, mit der Hilfe unsicherer Software. Der Block 102 kann jedoch vorzugsweise ein Schutzblock sein, der schutzrelevante Operationen vorsieht.
  • Der Schutzblock kann ein Hochsicherheitsmodul (High Security Module) (HSM) sein (oder umfassen), das kryptografische Operationen vornimmt, um Identifikatoren zu erhalten, z.B. kryptografische Signaturen.
  • Beispielsweise kann die Mikrosteuereinheit 103 eine Aurix-Mikrosteuereinheit sein, der Block 101 kann ein Tricore sein, und der Block 102 kann ein Hardware-Sicherheitsmodul (Hardware Security Module) (HSM) sein.
  • Der Block 101 kann einen Identifikator, z.B. einen MAC 104, von einer externen Komponente (in 1 nicht gezeigt) erhalten. Dieser Identifikator muss verifiziert werden (Prüfung seiner Validität und/oder Integrität).
  • In dem in 1 gezeigten Beispiel bezieht sich der MAC 104 auf Nutzinformationen 105 (eine beliebige Art von Informationen oder Daten, die einer Nachricht unterzogen werden können oder über eine Nachricht empfangen werden können). Der Block 101 muss verifizieren, ob der MAC 104 für die Nutzinformationen 105 korrekt ist. Der Block 101 sendet eine Anforderung (für einen MAC) 106 an den Block 102 mit den Nutzinformationen 105. Der Block 101 überträgt auch einen Schlüsselidentifikator 107 zum Block 102. Der Schlüsselidentifikator 107 gestattet dem Block 102, einen Schlüssel 108 z.B. aus einer Tabelle 109 (oder einer beliebigen anderen Art eines Schlüsselspeichers) auszuwählen. Der Block 102 umfasst eine MAC-Verarbeitungseinheit 110, die gegebenenfalls eine Hardware-Verschlüsselung verwenden kann. Auf der Basis des Schlüssels 108 und der Nutzinformationen 105 wird ein MAC 111 von der MAC-Verarbeitungseinheit 110 bestimmt und dieser MAC 111 wird zum Block 101 übertragen.
  • Der Schlüsselidentifikator 107 kann über eine Tabelle erhalten werden, die im Block 101 vorgesehen ist, und die Nutzinformationsidentifikatoren und entsprechende Schlüsselidentifikatoren umfasst. Die Nutzinformationen 105 können daher wenigstens einen Schlüsselidentifikator 107 ergeben, der über eine derartige Tabelle bestimmt wird, und dieser wenigstens eine Schlüsselidentifikator wird zum Block 102 übertragen.
  • Es wird angemerkt, dass der Schlüsselidentifikator 107 und die Anforderung 106 in einer einzigen Nachricht kombiniert werden können, oder sie können über getrennte Nachrichten übertragen werden. Es ist auch eine Option, dass die Kommunikation zwischen dem Block 101 und dem Block 102 über eine Interprozessorkommunikation, einen gemeinsam genutzten Speicher oder einen Nachrichtenmechanismus einer beliebigen Art erzielt wird. In dieser Hinsicht kann „Daten übertragen“ ein Freigeben des Adressaten sein, um die Daten zu erhalten, entweder über Nachrichten oder ein beliebiges anderes Kommunikationskonzept (z.B. über ein gemeinsam genutztes Medium).
  • Der Block 101 vergleicht (siehe Vergleichseinheit 112) den MAC 104 mit dem MAC 111, um den MAC 104 zu verifizieren. Falls eine solche Verifikation erfolgreich ist, kann eine vordefinierte Aktion 113 auf der Basis der Nutzinformationen ausgelöst werden. Andernfalls kann eine andere vordefinierte Aktion, z.B. Alarmbenachrichtigung, ausgelöst werden (in 1 nicht gezeigt).
  • 2 zeigt eine schematische Darstellung einer alternativen Lösung, welche einen Block 201 und einen Block 202 umfasst, die beide Teil einer weiteren Komponente 203, z.B. einer Mikrosteuereinheit, sein können. Jeder Block 201, 202 ist ein Logikblock oder ein CPU-Subsystem. In Bezug auf die Blöcke 201 bis 203 wird auf die obige 1 verwiesen. Insbesondere kann der Block 201 die Sicherheitskomponente sein und der Block 202 kann die Schutzkomponente sein (die keine vordefinierten Sicherheitsanforderungen erfüllen muss).
  • Der Block 201 kann einen Identifikator, z.B. einen MAC 204, von einer externen Komponente (in 2 nicht gezeigt) empfangen. Dieser Identifikator muss verifiziert werden. Die in 2 gezeigte Lösung ermöglicht eine Verifikation des MAC 204 unter Verwendung des Blocks 202, während Schutz- und Sicherheitsanforderungen aufrechterhalten werden.
  • In dem in 2 gezeigten Beispiel bezieht sich der MAC 204 auf Nutzinformation 205 (eine beliebige Art von Informationen oder Daten, die einer Nachricht unterzogen werden können oder über eine Nachricht empfangen werden können). Der Block 201 muss verifizieren, ob der MAC 204 für die Nutzinformationen 205 korrekt ist. Der Block 201 sendet eine Anforderung (für einen MAC) 206 an den Block 202 mit den Nutzinformationen 205. Der Block 202 überträgt auch einen Schlüsselidentifikator 207 zum Block 202. Der Schlüsselidentifikator 207 gestattet dem Block 202, einen Schlüssel 208 z.B. aus einer Tabelle 209 (oder einer beliebigen Art eines Schlüsselspeichers) auszuwählen. Der Block 202 umfasst eine MAC-Verarbeitungseinheit 210, die gegebenenfalls eine Hardware-Verschlüsselung verwenden kann. Auf der Basis des Schlüssels 208 und der Nutzinformationen 205 wird ein MAC 211 von der MAC-Verarbeitungseinheit 210 bestimmt (siehe auch unter Bezugnahme auf die obige 1).
  • Der MAC 211 wird zu einer funktionellen Komponente 220 übertragen. Die funktionelle Komponente 220 kann Hardware und/oder Software umfassen. Sie kann insbesondere einen Hardware-Beschleuniger für Zwecke einer schnellen Verarbeitung umfassen. Die funktionelle Komponente 220 kann eine kryptografische Operation durchführen, z.B. einen Wert C bestimmen auf der Basis des MAC 211 (auch als Parameter P bezeichnet), eines Eingangsvektors IV und eines Schlüssels K. Die funktionelle Komponente 220 kann einen AES-CBC-Algorithmus (AES: Advanced Encryption Standard; CBC: Cipher-block chaining) für diesen Zweck vorsehen, d.h.: C = AES-CBC(K, P, IV) = AES(K, P ⊕ IV), wobei sich "⊕" auf die logische Exklusiv-Oder-(EXOR-)Operation bezieht.
  • Der MAC 204 wird vom Block 201 zum Block 202 übertragen (als Referenz) (siehe Verbindung 221). Dieser MAC 204 wird als Eingangsvektor IV von der funktionellen Komponente 220 des Blocks 202 verwendet.
  • Der Schlüssel K wird auch auf der Basis einer Information bestimmt, die vom Block 201 zugeführt wird, wie folgt: Für jede Anforderung 206 wird ein nächster Index i verwendet (auf der Basis eines Auswahlsignals 223), um einen Eintrag (Xi, i) in einer Tabelle 226 zu adressieren. Der Index i wird als dynamischer Index 222 zum Block 202 übertragen, und er wird verwendet, um einen Schlüssel Ki, der dem Index i entspricht, aus einer Tabelle 227 auszuwählen. Dieser Schlüssel Ki wird als Schlüssel K von der funktionellen Komponente 220 verwendet.
  • Das Auswahlsignal 223 kann nicht denselben Index i für zwei konsekutive MAC-Verifikationsanforderungen auswählen, um sicherzustellen (mit hoher Wahrscheinlichkeit), dass die vom Block 202 zurückkommende Antwort (Wert C) variiert. Auf der Basis einer solchen Variation ist es möglich, Stuck-at-Fehler der funktionellen Komponente 220 zu detektieren: falls die funktionelle Komponente 220 aufeinanderfolgend zwei identische Werte zuführt, kann dies zeigen, dass die funktionelle Komponente 220 steckengeblieben ist. Das Auswahlsignal 223 kann insbesondere von der ankommenden Nachricht unabhängig sein, die den MAC 204 und die Nutzinformationen 205 umfasst. Beispielsweise kann das Auswahlsignal 223 mit jeder MAC-Verifikationsanforderung modulo die Größe der Tabelle 226 inkrementiert werden.
  • Der Wert C (Ergebnis der von der funktionellen Komponente 220 durchgeführten Operation) wird vom Block 202 zum Block 201 übertragen, in dem er EXOR-kombiniert wird (siehe Block 228) mit dem Eintrag Xi (welcher dem dynamischen Index i entspricht, der vorher ausgewählt und zum Block 202 übertragen wurde). Ein Ergebnis A der EXOR-Operation 228 zeigt die Integrität und Authentizität des MAC 204 an, d.h. ob der MAC 204 vom Block 202 bestätigt werden konnte.
  • Der Eintrag Xi, der Schlüssel Ki und das Ergebnis A können jeweils eine vorherbestimmte Anzahl von Bits umfassen, z.B. 128 Bits.
  • Ein Block 225 kombiniert Elemente eines Algorithmus (der dedizierte und/oder allgemeine Hardware verwenden kann), um das Ergebnis A auf der Basis des Auswahlsignals und des vom Block 202 erhaltenen Werts C zu erzeugen. Ein Block 224 kombiniert Elemente eines Algorithmus (der dedizierte und/oder allgemeine Hardware verwenden kann), um den Wert C auf der Basis des dynamischen Index 222, des vom Block 201 gelieferten MAC 204 und des durch die MAC-Verarbeitungseinheit 210 bestimmten MAC 222 zu erzeugen.
  • Daher ist ein Vorteil des in 2 gezeigten Beispiels, dass die Sicherheitsanforderungen erfüllt werden (ein Stuck-at-Fehler der funktionellen Komponente 220 kann bestimmt werden), und der Sicherheitsaspekt ist verbessert.
  • Der zusätzliche dynamische Index 222 ermöglicht die Detektion eines Fehlermodus innerhalb des Blocks 224, falls er immer denselben Wert zurückführt. Aufgrund des dynamischen Index 222 ist der vom Block 202 zurückgeführte korrekte Wert nicht konstant: daher ist jeder „Stuck-at“-Fehler des Blocks 224 für den Block 201 sichtbar (d.h. falls der Block 202 aufeinanderfolgend zwei (oder mehrere) identische Werte C liefert, kann der Block 201 einen Stuck-at-Fehler der funktionellen Komponente 220 annehmen).
  • Zusätzlich kann der vom Block 224 zugeführte Algorithmus so eingerichtet sein, dass es nicht durchführbar ist, den MAC-Wert 211 aus irgendeinem der folgenden abzurufen: dem MAC 204, dem dynamischen Index 222, dem Wert C und aus den Nutzinformationen 205.
  • 3 zeigt ein schematisches Flussdiagramm eines Verfahrens, das den MAC-Wert oder einen beliebigen MAC-Wert, der auf dem tatsächlichen MAC-Wert basieren kann, nur überträgt, falls die Schutzkomponente seine Validität erfolgreich verifiziert hat.
  • 3 zeigt einen Block 301 und einen Block 302, die beide Teil einer weiteren Komponente, z.B. einer Mikrosteuereinheit (in 3 nicht gezeigt), sein können. Jeder Block 301, 302 ist ein Logikblock oder ein CPU-Subsystem. In Bezug auf die Blöcke 301 und 302 wird auf die obige 1 und 2 verwiesen. Insbesondere kann der Block 301 die Sicherheitskomponente sein und der Block 302 kann die Schutzkomponente sein (die keine vordefinierten Sicherheitsanforderungen erfüllen muss).
  • Hier im Nachstehenden werden die in 3 gezeigten Aktionen detaillierter beschrieben.
    • (a) Bei 303 wird eine Nachricht, die Nutzinformation M und einen MAC CMACr umfasst, am Block 301 empfangen.
    • (b) Bei 304 wandelt der Block 301 den MAC CMACr in einen MAC CMACr* um. Dies kann unter Verwendung eines Algorithmus erzielt werden, der den Informationsgehalt des MAC CMACr nicht signifikant ändern kann, er kann jedoch wenigstens ein Bit ändern, z.B. ein bitweises Komplement, eine zirkulierende ("circular") Bitverschiebung, eine Kombination von beidem oder dgl. vorsehen.
    • (c) Bei 305 überträgt der Block 301 die Nutzinformation M und den MAC CMACr* zum Block 302.
    • (d) Bei 306 berechnet der Block 302 einen MAC CMACc auf der Basis der Nutzinformationen M mit seinem eigenen sicheren Schlüssel.
    • (e) Bei 307 wandelt der Block 302 den MAC CMACc in einen MAC CMACc* gemäß demselben Algorithmus um, der vom Block 301 verwendet wurde, um den MAC CMACr* aus dem MAC CMACr zu erhalten. Dann vergleicht der Block 302 den MAC CMACc* mit dem MAC CMACr*, der vom Block 301 erhalten wird. Es ist eine Option, den vom Block 301 erhaltenen MAC CMACr* wieder in den MAC CMACr umzuwandeln und den MAC CMACr mit dem MAC CMACc zu vergleichen (bei der Aktion 307). Dies kann insbesondere vorteilhaft sein, falls der Algorithmus, der zum MAC CMACr* geführt hat, reversibel ist.
    • (f) Falls der Vergleich die Gleichheit beider MACs zeigt, überträgt der Block 302 (siehe Aktion 308) den MAC CMACc zum Block 301 zurück. Der Block 301 kann dann den MAC CMACc mit dem MAC CMACr vergleichen (siehe Aktion 309), wodurch die Authentizität des MAC CMACr bestätigt wird.
    • (g) Falls der Vergleich in Aktion 307 nicht die Gleichheit beider MACs zeigt, macht der Block 302 den MAC CMACc nicht für den Block 301 verfügbar. Stattdessen kann bei 310 der Block 302 beliebige Daten übertragen, die zu einem Fehlschlag des Vergleichs führen, der bei 309 im Block 301 durchgeführt wird. Beispielsweise kann der Block 302 den MAC CMACr* übertragen, der definitiv den Vergleich bei 309 nicht besteht.
  • Daher bestimmt der Vergleich bei 307, ob der berechnete MAC CMACc für den Block 301 verfügbar zu machen ist oder nicht. Der Vergleich bei 307 kann auf eine reduzierte Anzahl von Bits beschränkt sein, falls z.B. der MAC CMACr nicht alle Bits des MAC enthält.
  • Es ist auch eine Option, dass der bei 308 zum Block 301 übertragene MAC CMACc alle Bits des MAC oder eine reduzierte Anzahl von Bits enthalten kann. Es kann insbesondere eine Option sein, dass nur jene Bits des MAC als MAC CMACc bei 308 übertragen werden, die für den Vergleich bei 309 erforderlich sind.
  • Der gesendete MAC CMACr kann nur eine Fraktion, z.B. 16 Bits, eines mit AES berechneten MAC sein, der immer 128 Bits ist. Entweder die Breite des CMAC ist vordefiniert oder der Block 301 führt die Breite dem Block 302 als Parameter zu. Dies kann auf die beschriebenen Optionen anwendbar sein.
  • Der CMACc kann alle Bits umfassen, es kann jedoch ausreichend und eine sicherere Option für die Schutz-Hardware sein, nur die Bits auszugeben, die für den CMACc/CMACr-Vergleich durch die sichere Hardware benötigt werden.
  • Es ist ein Vorteil, dass der MAC CMACr nicht vom Block 301 zum Block 302 übertragen wird. Daher kann dieser MAC-Wert nicht irrtümlich oder unabsichtlich vom Block 302 zum Block 301 übertragen werden. Falls der Wert des MAC CMACr vom Block 302 verfügbar gemacht wird, ist dies eine starke Indikation, dass der Block 302 den korrekten MAC erfolgreich bestimmt hat. Mit anderen Worten wird der MAC CMACc nur vom Block 302 ausgegeben, falls der MAC CMACr* empfangen und verarbeitet wurde.
  • Daher ist es ein Vorteil, dass die Schutz-Hardware (Schutzkomponente 302) keine kostspieligen Sicherheitsanforderungen erfüllen muss. Die Sicherheitsaspekte können beispielsweise von dem Block 301 abgedeckt werden.
  • Mit Bezugnahme auf das oben beschriebene Beispielszenario kann das folgende Beispiel verwendet werden:
    • (a) Bei 303 wird die Nachricht, welche die Nutzinformationen M und einen 32 Bit-MAC CMACr (auch als CMAC32r bezeichnet) eines 128 Bit-MAC umfasst, am Block 301 empfangen.
    • (b) Bei 304 wandelt der Block 301 den MAC CMAC32r mit einer einzelnen 32 Bit-zirkulierenden Bitverschiebung in einen 32 Bit-MAC CMAC32r* um. Eine Bitverschiebung kann verwendet werden, da das Anwenden einer solchen Operation nicht zum Originalwert führt, ausgenommen die beiden Zahlen (von 232), die alle entweder Einsen oder Nullen sind.
    • (c) Bei 305 überträgt der Block 301 die Nutzinformationen M und den MAC CMAC32r* zum Block 302 und kann eine Verarbeitung durch den Block 302 auslösen.
    • (d) Bei 306 setzt der Block 302 ein Ergebnisregister oder eine RAM-Adresse mit dem Inhalt des MAC CMAC32r* (dies kann als Vorgabe im Fall irgendeines Fehlers vorteilhaft sein). Der Block 302 berechnet dann einen MAC CMAC128c und kürzt ihn, um einen MAC CMAC32c zu erhalten. Das Kürzen kann durch ein Abschneiden des MAC erzielt werden.
    • (e) Bei 307 wandelt der Block 302 den MAC CMAC32c durch eine zirkulierende Bitverschiebung in einen MAC CMAC32c* um und vergleicht ihn mit dem MAC CMAC32r*.
    • (f) Falls der MAC CMAC32c* und der MAC CMAC32r* gleich sind, schreibt der Block 302 den MAC CMAC32c in das Ergebnisregister oder die RAM-Adresse. Der Block 302 kann den Block 301 benachrichtigen, z.B. über eine Unterbrechung, dass ein Ergebnis des Vergleichs verfügbar ist. Der Block 301 kann dann auf das Ergebnisregister oder die RAM-Adresse zugreifen, um das Ergebnis des Vergleichs zu erhalten. Es wird angemerkt, dass der Block 301 auch einen Abfragemechanismus anwenden kann, um das Ergebnis des Vergleichs zu erhalten. Es ist ferner eine Option, dass der Prozess durch einen (getrennten, z.B. sicheren) Zeitgeber gesteuert wird. Der Block 301 kann dann den MAC CMAC32c mit dem MAC CMAC32r vergleichen (siehe Aktion 309) und die Authentizität des MAC CMAC32r bestätigen.
  • Es wird auch eine Vorrichtung vorgeschlagen, welche Vorrichtung umfasst: Mittel zum Übertragen von Eingangsdaten von einer Sicherheitskomponente zu einer Schutzkomponente, und Mittel zum Berechnen, in der Schutzkomponente, eines zweiten Identifikators auf der Basis der Eingangsdaten. Die Vorrichtung umfasst ferner: Mittel zum Übertragen des zweiten Identifikators zur Sicherheitskomponente, und Mittel zum Verifizieren, in der Sicherheitskomponente, eines ersten Identifikators auf der Basis des zweiten Identifikators.
  • In einem oder mehreren Beispielen können die hier beschriebenen Funktionen wenigstens teilweise in Hardware implementiert werden, wie spezifischen Hardware-Komponenten oder einem Prozessor. Allgemeiner können die Techniken in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination davon implementiert werden. Bei der Implementierung in Software können die Funktionen als eine oder mehrere Instruktionen oder Code auf einem computerlesbaren Medium gespeichert oder über dieses übertragen werden und durch eine Hardware-basierte Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speichermedien umfassen, die einem greifbaren Medium entsprechen, wie Datenspeichermedien oder Kommunikationsmedien, die ein beliebiges Medium umfassen, das den Transfer eines Computerprogramms von einem Ort zu einem anderen erleichtert, z.B. gemäß einem Kommunikationsprotokoll. Auf diese Weise können computerlesbare Medien allgemein entsprechen: (1) greifbaren computerlesbaren Speichermedien, die nicht-transitorisch sind oder (2) einem Kommunikationsmedium, wie einem Signal oder einer Trägerwelle. Datenspeichermedien können beliebige verfügbare Medien sein, auf die von einem oder mehreren Computern oder einem oder mehreren Prozessoren zugegriffen werden kann, um Instruktionen, Code und/oder Datenstrukturen zur Implementierung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium umfassen.
  • Als Beispiel und nicht als Einschränkung können solche computerlesbaren Speichermedien umfassen: RAM, ROM, EEPROM, CD-ROM oder einen anderen optischen Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen, Flash-Speicher, oder ein beliebiges anderes Medium, das verwendet werden kann, um einen gewünschten Programmcode in der Form von Instruktionen oder Datenstrukturen zu speichern, und auf das von einem Computer zugegriffen werden kann. Es wird auch eine beliebige Verbindung geeignet als computerlesbares Medium bezeichnet, d.h. ein computerlesbares Transmissionsmedium. Falls beispielsweise Instruktionen von einer Website, einem Server oder einer anderen entfernten Quelle unter Verwendung eines Koaxialkabels, eines optischen Faserkabels, eines verdrillten Paars, einer Digital Subscriber Line (DSL) oder drahtloser Technologien, wie Infrarot, Funk und Mikrowellen, gesendet werden, dann sind das Koaxialkabel, das optische Faserkabel, das verdrillte Paar, die DSL oder drahtlose Technologien, wie Infrarot, Funk und Mikrowellen, in der Definition von Medium eingeschlossen. Es ist jedoch klar, dass die computerlesbaren Speichermedien und Datenspeichermedien Verbindungen, Trägerwellen, Signale oder andere flüchtige Medien nicht umfassen, sondern stattdessen auf nicht-flüchtige, greifbare Speichermedien gerichtet sind. Disk und Disc, wie hier verwendet, umfassen Compact Disc (CD), Laser-Disc, optische Platte, Digital Versatile Disc (DVD), Diskette und Blu-ray Disc, wobei Disks üblicherweise Daten magnetisch reproduzieren, während Discs Daten optisch mit Lasern reproduzieren. Kombinationen der obigen sollen auch innerhalb des Umfangs computerlesbarer Medien eingeschlossen sein.
  • Instruktionen können von einem oder mehreren Prozessoren ausgeführt werden, wie von einer oder mehreren Zentraleinheiten (CPU), digitalen Signalprozessoren (DSPs), Universal-Mikroprozessoren, anwendungsspezifischen Integrationsschaltungen (ASICs), feldprogrammierbaren Logikanordnungen (FPGAs) oder anderen äquivalenten integrierten oder diskreten Logikschaltungen. Demgemäß kann sich der hier verwendete Ausdruck „Prozessor“ auf eine beliebige der obigen Strukturen oder eine beliebige andere Struktur beziehen, die zur Implementierung der hier beschriebenen Techniken geeignet ist. Zusätzlich kann in einigen Aspekten die hier beschriebene Funktionalität innerhalb dedizierter Hardware- und/oder Software-Module vorgesehen werden, die zur Codierung und Decodierung ausgelegt sind, oder in einem kombinierten Codec. Die Techniken könnten auch in einer oder mehreren Schaltungen oder Logikelementen vollständig implementiert werden.
  • Die Techniken dieser Offenbarung können in verschiedensten Vorrichtungen oder Einrichtungen implementiert werden, die ein drahtloses Handset, eine Integrationsschaltung (IC) oder einen Satz von ICs (z.B. einen Chipsatz) umfassen. Verschiedene Komponenten, Module oder Einheiten werden in dieser Offenbarung beschrieben, um funktionelle Aspekte von Vorrichtungen hervorzuheben, die ausgelegt sind, die geoffenbarten Techniken durchzuführen, erfordern jedoch nicht unbedingt eine Realisierung durch verschiedene Hardware-Einheiten. Stattdessen können, wie oben beschrieben, verschiedene Einheiten in einer einzelnen Hardware-Einheit kombiniert werden oder durch eine Ansammlung interoperativer Hardware-Einheiten vorgesehen werden, die einen oder mehrere Prozessoren umfassen, wie oben beschrieben, in Verbindung mit geeigneter Software und/oder Firmware.
  • Obwohl verschiedene beispielhafte Ausführungsformen der Erfindung offenbart wurden, ist es für Fachleute klar, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, die einige der Vorteile der Erfindung erzielen werden, ohne vom Grundgedanken und Umfang der Erfindung abzuweichen. Es ist für gewöhnliche Fachleute verständlich, dass andere Komponenten geeignet substituiert werden können, welche die gleichen Funktionen erfüllen. Es ist anzuführen, dass mit Bezugnahme auf eine spezifische Figur erläuterte Merkmale mit Merkmalen anderer Figuren kombiniert werden können, auch in jenen Fällen, in denen dies nicht ausdrücklich angegeben wurde. Ferner können die Verfahren der Offenbarung entweder in reinen Software-Implementierungen, unter Verwendung der geeigneten Prozessorinstruktionen, oder in hybriden Implementierungen erzielt werden, die eine Kombination von Hardware-Logik und Software-Logik verwenden, um die gleichen Ergebnisse zu erzielen. Solche Modifikationen am erfinderischen Konzept sollen von den beigeschlossenen Ansprüchen abgedeckt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Standard ISO 26262 [0057]
    • IEC 61508 [0057]
    • http://en.wikipedia.org/wiki/Automotive_Safety_Integrity_Level [0057]
    • http://en.wikipedia.org/wiki/Message_authentication_code [0058]
    • http://en.wikipedia.org/wiki/Cmac [0058]
    • ISO26262 [0060]
    • ISO 26262 [0061]
    • ISO 26262 [0062]

Claims (26)

  1. Verfahren zur Verarbeitung von Daten, umfassend: – Übertragen von Eingangsdaten von einer Sicherheitskomponente zu einer Schutzkomponente; – Berechnen, in der Schutzkomponente, eines zweiten Identifikators auf der Basis der Eingangsdaten; – Übertragen des zweiten Identifikators zur Sicherheitskomponente; und – Verifizieren, in der Sicherheitskomponente, eines ersten Identifikators auf der Basis des zweiten Identifikators.
  2. Verfahren nach Anspruch 1, bei dem die Sicherheitskomponente einen Sicherheits-Integritätslevel, insbesondere einen automotiven Sicherheits-Integritätslevel, erfüllt.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Schutzkomponente kryptografische Operationen vorsieht und einen Sicherheits-Integritätslevel nicht erfüllt.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der erste Identifikator und der zweite Identifikator jeweils auf einer Hash-Funktion, insbesondere auf einer kryptografischen Hash-Funktion, basieren.
  5. Verfahren nach einem der vorhergehenden Ansprüche, das ferner umfasst: – in der Sicherheitskomponente, Vergleichen des zweiten Identifikators mit dem ersten Identifikator.
  6. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin umfasst: – Durchführen einer ersten Aktion, falls der erste Identifikator gleich ist wie der zweite Identifikator; und – Durchführen einer zweiten Aktion, falls der erste Identifikator nicht gleich ist wie der zweite Identifikator.
  7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der erste Identifikator und die Eingangsdaten von einer externen Komponente erhalten werden.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Sicherheitskomponente und die Schutzkomponente auf mindestens einer Vorrichtung eingerichtet sind.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren ferner umfasst: – Berechnen des zweiten Identifikators in der Schutzkomponente auf der Basis der Eingangsdaten und auf der Basis eines Schlüssels.
  10. Verfahren nach Anspruch 9, bei dem der Schlüssel auf der Basis eines Schlüsselidentifikators bestimmt wird, der von der Sicherheitskomponente bereitgestellt wird.
  11. Verfahren nach einem der Ansprüche 1 bis 8, ferner umfassend: – Berechnen, in der Schutzkomponente, des zweiten Identifikators auf der Basis der Eingangsdaten, eines ersten Schlüssels, eines Eingangsvektors und eines zweiten Schlüssels.
  12. Verfahren nach Anspruch 11, bei dem der erste Schlüssel auf Basis eines Schlüsselidentifikators bestimmt wird, der von der Sicherheitskomponente bereitgestellt wird.
  13. Verfahren nach einem der Ansprüche 11 oder 12, bei dem der zweite Schlüssel nach einem dynamischen Index bestimmt wird, der von der Sicherheitskomponente bereitgestellt wird.
  14. Verfahren nach Anspruch 13, ferner umfassend: – Verifizieren, in der Sicherheitskomponente, des ersten Identifikators auf der Basis des zweiten Identifikators durch Verarbeiten eines vordefinierten Werts, der durch den dynamischen Index bestimmt wird, mit dem zweiten Identifikator, der von der Schutzkomponente bereitgestellt wird.
  15. Verfahren nach einem der Ansprüche 11 bis 14, bei dem das Berechnen des zweiten Identifikators umfasst: – Berechnen eines dritten Identifikators auf der Basis der Eingangsdaten und des ersten Schlüssels; und – Berechnen des zweiten Identifikators auf der Basis des dritten Identifikators, des zweiten Schlüssels und des Eingangsvektors.
  16. Verfahren nach einem der Ansprüche 1 bis 14, ferner umfassend: – Übertragen der Eingangsdaten und eines vierten Identifikators, der auf der Basis einer vorherbestimmten Operation bestimmt wird, die auf den ersten Identifikator angewendet wird, von der Sicherheitskomponente zur Schutzkomponente; – Berechnen, in der Schutzkomponente, eines dritten Identifikators auf der Basis der Eingangsdaten; – Vergleichen, in der Schutzkomponente, entweder eines modifizierten vierten Identifikators mit dem dritten Identifikator oder des vierten Identifikators mit einem modifizierten dritten Identifikator, – wobei der dritte Identifikator als der zweite Identifikator von der Schutzkomponente zur Sicherheitskomponente übertragen wird, falls der Vergleich bestätigt hat, dass entweder der modifizierte vierte Identifikator und der dritte Identifikator gleich sind oder der vierte Identifikator und der modifizierte dritte Identifikator gleich sind.
  17. Verfahren nach Anspruch 16, bei dem die vorherbestimmte Operation wenigstens eines der Folgenden umfassen kann: – ein bitweises Komplement, und – eine zirkulierende Bitverschiebung.
  18. Verfahren nach einem der Ansprüche 16 oder 17 bei dem der modifizierte vierte Identifikator auf der Basis einer Umkehrung der vorherbestimmten Operation bestimmt wird.
  19. Verfahren nach einem der Ansprüche 16 bis 18, bei dem der modifizierte dritte Identifikator auf der Basis der vorherbestimmten Operation bestimmt wird.
  20. Verfahren nach einem der Ansprüche 16 bis 19, bei dem eine Information, die von dem dritten Identifikator verschieden ist, als der zweite Identifikator von der Schutzkomponente zur Sicherheitskomponente übertragen wird, falls der Vergleich nicht bestätigt hat, dass entweder der modifizierte vierte Identifikator und der dritte Identifikator gleich sind oder der vierte Identifikator und der modifizierte dritte Identifikator gleich sind.
  21. Verfahren nach einem der Ansprüche 16 bis 20, bei dem die vom dritten Identifikator verschiedene Information der vierte Identifikator ist.
  22. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der zweite Identifikator auf der Basis einer AES-Funktion, insbesondere einer AES-CBC-Funktion, berechnet wird.
  23. Vorrichtung zur Verarbeitung von Daten, umfassend eine Sicherheitskomponente und eine Schutzkomponente, – wobei die Sicherheitskomponente zum Übertragen von Eingangsdaten zur Schutzkomponente eingerichtet ist; – wobei die Schutzkomponente zum Berechnen eines zweiten Identifikators auf der Basis der Eingangsdaten und zum Übertragen des zweiten Identifikators zur Sicherheitskomponente eingerichtet ist; und – wobei die Sicherheitskomponente zum Verifizieren eines ersten Identifikators auf der Basis des zweiten Identifikators eingerichtet ist.
  24. Vorrichtung nach Anspruch 23, wobei die Vorrichtung wenigstens eines der folgenden ist: eine Mikrosteuereinheit, ein FPGA, ein ASIC, ein Prozessor.
  25. Vorrichtung nach einem der Ansprüche 23 oder 24, – wobei die Sicherheitskomponente einen Sicherheits-Integritätslevel, insbesondere einen automotiven Sicherheits-Integritätslevel erfüllt; und – wobei die Schutzkomponente kryptografische Operationen bereitstellt und einen Sicherheits-Integritätslevel nicht erfüllt.
  26. Computerprogrammprodukt, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist und Software-Codeabschnitte zur Durchführung der Schritte des Verfahrens nach einem der Ansprüche 1 bis 22 umfasst.
DE102015115295.9A 2014-09-11 2015-09-10 Verfahren und vorrichtung zur verarbeitung von daten Pending DE102015115295A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/483,645 US9699184B2 (en) 2014-09-11 2014-09-11 Method and device for processing data
US14/483,645 2014-09-11

Publications (1)

Publication Number Publication Date
DE102015115295A1 true DE102015115295A1 (de) 2016-03-17

Family

ID=55406226

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015115295.9A Pending DE102015115295A1 (de) 2014-09-11 2015-09-10 Verfahren und vorrichtung zur verarbeitung von daten

Country Status (2)

Country Link
US (1) US9699184B2 (de)
DE (1) DE102015115295A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016205126A1 (de) * 2016-03-29 2017-10-05 Siemens Aktiengesellschaft Sicherheitsrelevante Kommunikationsvorrichtung
DE102019117229A1 (de) * 2019-06-26 2020-12-31 Infineon Technologies Ag Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201700050153A1 (it) * 2017-05-09 2018-11-09 St Microelectronics Srl Modulo hardware di sicurezza, relativo sistema di elaborazione, circuito integrato e dispositivo
TWI742704B (zh) * 2020-06-01 2021-10-11 台眾電腦股份有限公司 資訊裝置之網路連線管理系統
US11861046B2 (en) * 2021-04-29 2024-01-02 Infineon Technologies Ag System for an improved safety and security check

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5599344A (en) 1995-06-06 1997-02-04 Valleylab Inc. Control apparatus for electrosurgical generator power output
US6769081B1 (en) 2000-08-30 2004-07-27 Sun Microsystems, Inc. Reconfigurable built-in self-test engine for testing a reconfigurable memory
US7318550B2 (en) * 2004-07-01 2008-01-15 American Express Travel Related Services Company, Inc. Biometric safeguard method for use with a smartcard
US7689640B2 (en) 2005-06-06 2010-03-30 Atmel Corporation Method and apparatus for formatting numbers in microprocessors
KR100825736B1 (ko) * 2005-12-07 2008-04-29 한국전자통신연구원 무선 xml 전자 서명 서비스 제공 장치 및 그 방법
US20070147620A1 (en) * 2005-12-28 2007-06-28 Heyun Zheng Method for encryption key management for use in a wireless mesh network
US8260487B2 (en) * 2008-01-08 2012-09-04 General Electric Company Methods and systems for vital bus architecture
JP2010141383A (ja) * 2008-12-09 2010-06-24 Renesas Technology Corp 半導体集積回路
US8332624B2 (en) * 2009-08-26 2012-12-11 Nokia Corporation Method and apparatus for encoding decision diagrams
DE102011086530A1 (de) * 2010-11-19 2012-05-24 Continental Teves Ag & Co. Ohg Mikroprozessorsystem mit fehlertoleranter Architektur
US20120159274A1 (en) 2010-12-21 2012-06-21 Balakrishnan Kedarnath J Apparatus to facilitate built-in self-test data collection
US9714995B2 (en) 2011-03-23 2017-07-25 Millikelvin Technologies Llc Techniques, systems and machine readable programs for magnetic resonance
US9712515B2 (en) * 2012-12-21 2017-07-18 Cellco Partnership Verifying an identity of a message sender
US9537659B2 (en) * 2013-08-30 2017-01-03 Verizon Patent And Licensing Inc. Authenticating a user device to access services based on a device ID
JP5867495B2 (ja) * 2013-12-20 2016-02-24 株式会社デンソー 電子制御装置

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
http://en.wikipedia.org/wiki/Automotive_Safety_Integrity_Level
http://en.wikipedia.org/wiki/Cmac
http://en.wikipedia.org/wiki/Message_authentication_code
IEC 61508
ISO 26262
ISO26262
Standard ISO 26262

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016205126A1 (de) * 2016-03-29 2017-10-05 Siemens Aktiengesellschaft Sicherheitsrelevante Kommunikationsvorrichtung
DE102019117229A1 (de) * 2019-06-26 2020-12-31 Infineon Technologies Ag Kommunikationsvorrichtung und -verfahren zum authentifizieren einer nachricht

Also Published As

Publication number Publication date
US9699184B2 (en) 2017-07-04
US20160080375A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
EP3125492B1 (de) Verfahren und system zum erzeugen eines sicheren kommunikationskanals für endgeräte
DE112011100182B4 (de) Datensicherheitsvorrichtung, Rechenprogramm, Endgerät und System für Transaktionsprüfung
DE102015115295A1 (de) Verfahren und vorrichtung zur verarbeitung von daten
EP3655880B1 (de) Hardwaresystem mit blockchain
DE102013022383B3 (de) Verfahren und Vorrichtung zur Zertifikaterzeugung mit Privatsphärenschutz
EP3123689B1 (de) Verfahren und system zur verbesserung der datensicherheit bei einem kommunikationsvorgang
DE102015111526A1 (de) Herstellen einer sicheren Übermittlung für Fahrzeugdiagnosedaten
DE102020101358A1 (de) Selektive Echtzeit-Kryptographie in einem Fahrzeugkommunikationsnetz
CH713421A2 (de) Vorrichtung und Verfahren zum Generieren, Widerrufen und Verifizieren eines Zertifikats unter Verwendung einer Blockchain als Zertifizierungsstelle.
DE102012217743A1 (de) Überprüfung einer Integrität von Eigenschaftsdaten eines Gerätes durch ein Prüfgerät
DE102015202308A1 (de) Computerimplementiertes Verfahren zur Zugriffskontrolle
DE112015005991B4 (de) Paketsendevorrichtung, Paketempfangsvorrichtung, Paketsendeprogramm und Paketempfangsprogramm
DE102015115287A1 (de) Verfahren und vorrichtung zum prüfen eines identifikators
DE102020121533A1 (de) Vertrauenswürdige authentifizierung von automotiven mikrocon-trollern
DE102014113582A1 (de) Vorrichtung, Verfahren und System für die kontextbewusste Sicherheitssteuerung in einer Cloud-Umgebung
DE102015107823A1 (de) Randomisierter Speicherzugriff
EP2446390A1 (de) System und verfahren zur zuverlässigen authentisierung eines gerätes
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
DE102016217100A1 (de) Verfahren zum Verarbeiten von Fahrzeug-zu-X-Nachrichten
DE102012209408A1 (de) Sichere Übertragung einer Nachricht
EP3695337B1 (de) Verfahren und bestätigungsvorrichtung zur integritätsbestätigung eines systems
DE102018130297A1 (de) Arbeitsnachweis-Konzept für ein Fahrzeug
DE102015011920A1 (de) Verfahren zur Überprüfung der Datenintegrität einer C2C Übertragung
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
EP3244331B1 (de) Verfahren zum lesen von attributen aus einem id-token

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication