DE102016209452A1 - Generation of cryptographic key material or a digital signature for an embedded system - Google Patents

Generation of cryptographic key material or a digital signature for an embedded system Download PDF

Info

Publication number
DE102016209452A1
DE102016209452A1 DE102016209452.1A DE102016209452A DE102016209452A1 DE 102016209452 A1 DE102016209452 A1 DE 102016209452A1 DE 102016209452 A DE102016209452 A DE 102016209452A DE 102016209452 A1 DE102016209452 A1 DE 102016209452A1
Authority
DE
Germany
Prior art keywords
cryptographic
result
system module
partial
main cpu
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.)
Withdrawn
Application number
DE102016209452.1A
Other languages
German (de)
Inventor
Dominik Merli
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.)
Siemens AG
Original Assignee
Siemens 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 Siemens AG filed Critical Siemens AG
Priority to DE102016209452.1A priority Critical patent/DE102016209452A1/en
Priority to PCT/EP2017/061760 priority patent/WO2017207267A1/en
Publication of DE102016209452A1 publication Critical patent/DE102016209452A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Erzeugung von kryptographischem Schlüsselmaterial oder einer digitalen Signatur für ein eingebettetes System, aufweisend die folgenden Schritte: Empfangen mindestens eines ersten kryptographischen Teilergebnisses von mindestens einem ersten Systemmodul durch ein zweites Systemmodul, Ermitteln eines zweiten kryptographischen Teilergebnisses auf der Basis des mindestens einen ersten kryptographischen Teilergebnisses durch das zweite Systemmodul und Erzeugen eines kryptographischen Gesamtergebnisses als kryptographisches Schlüsselmaterial oder digitale Signatur durch das zweite Systemmodul, wobei das kryptographische Gesamtergebnis zumindest teilweise auf einem der mindestens zwei kryptographischen Teilergebnisse basiert. Ferner bezieht sich die Erfindung auf ein entsprechendes Systemmodul, eingebettetes System und Computerprogrammprodukt mit einem Computerprogramm.The invention relates to a method for generating cryptographic key material or a digital signature for an embedded system, comprising the following steps: receiving at least one first partial cryptographic result of at least one first system module by a second system module, determining a second cryptographic partial result on the basis of the at least a first cryptographic sub-result by the second system module and generating an overall cryptographic result as a cryptographic key material or digital signature by the second system module, the overall cryptographic result being based at least in part on one of the at least two cryptographic sub-results. Furthermore, the invention relates to a corresponding system module, embedded system and computer program product with a computer program.

Description

1. Technisches Gebiet 1. Technical area

Die Erfindung betrifft ein Verfahren zur Erzeugung von kryptographischem Schlüsselmaterial oder einer digitalen Signatur für ein eingebettetes System sowie entsprechendes Systemmodul, eingebettetes System und Computerprogrammprodukt. The invention relates to a method for generating cryptographic key material or a digital signature for an embedded system as well as corresponding system module, embedded system and computer program product.

2. Stand der Technik 2. State of the art

Eingebettete Systeme sind aus dem Stand der Technik bekannt. Der Ausdruck eingebettetes System bezeichnet einen Rechner oder auch Computer, der in einen technischen Kontext eingebettet ist. Der Rechner kann mit bestimmten Funktionen ausgestaltet und entsprechend angepasst sein, wie beispielsweise Steuerungs-, Verschlüsselungs-, Entschlüsselungs-, oder Überwachungsfunktionen. Dementsprechend weist der Rechner mindestens eine Applikation, Software oder Programm für die Umsetzung solcher Funktionen auf. Embedded systems are known in the art. The term embedded system refers to a computer or computer embedded in a technical context. The computer may be configured with certain functions and adapted accordingly, such as control, encryption, decryption, or monitoring functions. Accordingly, the computer has at least one application, software or program for the implementation of such functions.

Es bestehen zunehmend höhere Anforderungen an die Sicherheit solcher eingebetteter Systeme. Die eingebetteten Systeme werden vermehrt Gefahren oder Hacker-Angriffen in Industrieumgebungen ausgesetzt. Daher werden eingebettete Systeme üblicherweise mit einem Sicherheitsmodul ausgestattet, welches beispielsweise zur Schlüsselspeicherung geeignet ist. Das Sicherheitsmodul kann als ein Security-Chip ausgebildet sein und wird herkömmlich als Trust-Anchor bezeichnet. Jedoch besteht weiterhin die Gefahr, dass ein Angreifer in der Lage ist, die Kommunikation zwischen einer Haupt-CPU und dem Trust-Anchor mitzuhören. Beispielsweise kann der Angreifer den Schlüssel extrahieren und verwenden um geheime, für das eingebettete System nachteilige und somit schädliche Operationen durchzuführen. Weiterhin kann sich der Angreifer sogar beliebige Schlüssel geben oder beliebige Daten signieren lassen, falls er in der Lage ist direkt auf den Trust-Anchor zuzugreifen und mit ihm zu kommunizieren. There are increasing demands on the security of such embedded systems. The embedded systems are increasingly exposed to threats or hacker attacks in industrial environments. Therefore, embedded systems are usually equipped with a security module, which is suitable for example for key storage. The security module can be designed as a security chip and is commonly referred to as a trust anchor. However, there is still a danger that an attacker will be able to overhear the communication between a main CPU and the trust anchor. For example, the attacker may extract the key and use it to perform secret operations that are detrimental to the embedded system and thus harmful. Furthermore, the attacker can even give any keys or let arbitrary data be signed, if he is able to directly access the Trust Anchor and to communicate with him.

Aus den obigen Gründen ist es wichtig die Sicherheit der Kommunikation zwischen der Haupt-CPU und dem Trust-Anchor zu verbessern. Beispielsweise ist hierzu ein symmetrischer Algorithmus, beispielsweise der Advanced Encyrption Standard, kurz AES, zur Verschlüsselung der Kommunikation zwischen dem Trust-Anchor und der Haupt-CPU aus dem Stand der Technik bekannt. Dabei werden sowohl auf der Sender-Seite Daten verschlüsselt als auch auf der Empfänger-Seite Daten mit demselben Algorithmus entschlüsselt. Die Verwendung des AES erschwert einen Angriff auf das eingebettete System, da der Angreifer zum einen die Kommunikation zwischen dem Trust-Anchor und der Haupt-CPU mithören muss und zum anderen auch entweder den Trust-Anchor oder die Software der Haupt-CPU analysieren muss. For the above reasons, it is important to improve the security of communication between the main CPU and the trust anchor. For example, a symmetric algorithm, for example the Advanced Encryption Standard, AES for short, is known for encrypting the communication between the trust anchor and the main CPU from the prior art. Both data are encrypted on the sender side and data is decrypted on the receiver side using the same algorithm. The use of the AES complicates an attack on the embedded system, since the attacker must firstly oversee the communication between the trust anchor and the main CPU and, secondly, analyze either the trust anchor or the software of the main CPU.

Nachteilig daran ist jedoch, dass die Verwendung des AES es erfordert, dass auf dem Trust-Anchor eine Verschlüsselung und/oder Entschlüsselung möglich ist. Dies kann in einigen Fällen jedoch nicht möglich sein, da der Trust-Anchor für eine effiziente Arbeit nur eine kleine Anzahl von Ressourcen verwenden darf. Ferner kann der Trust-Anchor in anderen Fällen nicht frei programmierbar sein. Daher sind bekannte Verfahren nicht auf alle Trust-Anchor anwendbar. The disadvantage of this, however, is that the use of the AES requires that encryption and / or decryption is possible on the trust anchor. However, this may not be possible in some cases because the trust anchor may use only a small number of resources for efficient work. Furthermore, the trust anchor may not be freely programmable in other cases. Therefore, known methods are not applicable to all trust anchors.

Weiterhin ist die Verschlüsselung und Entschlüsselung auf beiden Seiten zeitintensiv und verbraucht damit unnötig Ressourcen. Furthermore, the encryption and decryption on both sides is time-consuming and thus unnecessarily consumes resources.

Ein weiterer Nachteil ist darin zu sehen, dass der geheime Schlüssel des AES sowohl auf dem Trust-Anchor als auch auf der Haupt-CPU verfügbar sein muss. Daher kann es für einen Angreifer zielführend sein, nur den Trust-Anchor anzugreifen um die Sicherheit des Gesamtsystems zu brechen. Ein Angriff der Haupt-CPU-Software ist nicht mehr nötig. Another drawback is that the secret key of the AES must be available both on the trust anchor and on the main CPU. Therefore, it can be effective for an attacker to attack only the trust anchor to break the security of the entire system. An attack of the main CPU software is no longer necessary.

Die vorliegende Erfindung stellt sich daher die objektive technische Aufgabe, ein Verfahren zur Erzeugung von kryptographischem Schlüsselmaterial oder einer digitalen Signatur für ein eingebettetes System bereitzustellen, welches auch auf teilweise nicht-programmierbaren Systemmodulen anwendbar ist, effizienter umgesetzt werden kann, und gleichzeitig die System-Sicherheit gewährleistet. The present invention therefore has the objective technical object to provide a method for generating cryptographic key material or a digital signature for an embedded system, which is also applicable to partially non-programmable system modules, can be implemented more efficiently, and at the same time the system security guaranteed.

3. Zusammenfassung der Erfindung 3. Summary of the invention

Die oben genannte Aufgabe wird erfindungsgemäß gelöst durch ein Verfahren zur Erzeugung von kryptographischem Schlüsselmaterial oder einer digitalen Signatur für ein eingebettetes System, aufweisend die folgenden Schritte:

  • a. Empfangen mindestens eines ersten kryptographischen Teilergebnisses von mindestens einem ersten Systemmodul durch ein zweites Systemmodul;
  • b. Ermitteln eines zweiten kryptographischen Teilergebnisses auf der Basis des mindestens einen ersten kryptographischen Teilergebnisses durch das zweite Systemmodul;
  • c. Erzeugen eines kryptographischen Gesamtergebnisses als kryptographisches Schlüsselmaterial oder digitale Signatur durch das zweite Systemmodul, wobei das kryptographische Gesamtergebnis zumindest teilweise auf einem der mindestens zwei kryptographischen Teilergebnisse basiert.
The above object is achieved by a method for generating cryptographic Key material or a digital signature for an embedded system, comprising the following steps:
  • a. Receiving at least a first partial cryptographic result of at least one first system module by a second system module;
  • b. Determining, by the second system module, a second cryptographic sub-result based on the at least one first cryptographic sub-result;
  • c. Generating a cryptographic overall result as a cryptographic key material or digital signature by the second system module, the overall cryptographic result being based at least in part on one of the at least two cryptographic partial results.

Dementsprechend ist die Erfindung auf die Erzeugung von kryptographischem Schlüsselmaterial oder einer digitalen Signatur für ein eingebettetes System gerichtet, beispielsweise die Schlüsselerzeugung, z.B. die Erzeugung eines Master Keys oder eines geheimen symmetrischen Schlüssels oder die Signaturerzeugung mittels eines privaten Schlüssels. Das eingebettete System weist hierzu mindestens ein erstes Systemmodul und ein weiteres zweites Systemmodul auf. In einem Aspekt der Erfindung ist nur ein erstes Systemmodul an das weitere zweite Systemmodul angebunden. In einem anderen Aspekt der Erfindung kann jedoch auch eine Mehrzahl erster oder zusätzlicher externer Systemmodule an das zweite Systemmodul angebunden werden. Accordingly, the invention is directed to the generation of cryptographic keying material or digital signature for an embedded system, such as key generation, e.g. the generation of a master key or a secret symmetric key or the generation of a signature by means of a private key. For this purpose, the embedded system has at least a first system module and a further second system module. In one aspect of the invention, only a first system module is connected to the further second system module. In another aspect of the invention, however, a plurality of first or additional external system modules may also be connected to the second system module.

Beispielsweise berechnet ein mindestens erstes Systemmodul nach dem Empfang einer Anfrage mindestens ein erstes kryptographisches Teilergebnis. Die Anfrage kann darauf gerichtet sein einen kryptographischen Schlüssel zu erhalten, beispielsweise zur Verschlüsselung von Daten. Alternativ oder zusätzlich kann das mindestens eine erste Systemmodul auch unabhängig von dem Empfang der Anfrage Berechnungen durchführen. Beispielsweise leitet das erste Systemmodul einen ersten Schlüssel ab. Ferner übermittelt das mindestens eine erste Systemmodul das mindestens eine erste kryptographische Teilergebnis an das zweite Systemmodul. Das erste Systemmodul kann das mindestens eine erste kryptographische Teilergebnis jedoch auch unaufgefordert z.B. in regelmäßigen Zeitabständen an das zweite Systemmodul übermitteln. For example, an at least first system module calculates at least a first cryptographic sub-result after receiving a request. The request may be directed to obtaining a cryptographic key, for example for encrypting data. Alternatively or additionally, the at least one first system module can also carry out calculations independently of the reception of the request. For example, the first system module derives a first key. Furthermore, the at least one first system module transmits the at least one first cryptographic partial result to the second system module. The first system module can, however, also request the at least one first cryptographic sub-result unsolicited, e.g. transmit at regular intervals to the second system module.

Unter einem kryptographischen Teilergebnis werden in der vorliegenden Erfindung Daten, welche alleine für das Ermitteln des kryptographischen Gesamtergebnisses nicht ausreichend sind, verstanden. Beispielsweise können die Daten ein Schlüssel oder eine digitale Signatur ein. Under a cryptographic partial result, in the present invention, data which alone is insufficient for determining the overall cryptographic result is understood. For example, the data may include a key or a digital signature.

Diese Daten werden weiterbehandelt, um ein kryptographischen Gesamtergebnis zu erhalten. Beispielsweise werden das erste kryptographische Teilergebnis und/oder das zweite kryptographische Teilergebnis durch Komponenten auf dem eingebetteten System ermittelt und durch weitere Komponenten zum kryptographischen Gesamtergebnis weiterverarbeitet. Das kryptographische Gesamtergebnis berücksichtigt entsprechend eines oder mehrere kryptographische Teilergebnisse, wie weiter unten im Detail erläutert wird. These data are further processed to obtain a cryptographic overall result. For example, the first cryptographic sub-result and / or the second cryptographic sub-result are determined by components on the embedded system and further processed by further components to the overall cryptographic result. The overall cryptographic result takes into account one or more partial cryptographic results, as explained in more detail below.

Das zweite Systemmodul empfängt das mindestens eine erste kryptographische Teilergebnis von dem mindestens einen ersten Systemmodul. Dabei kann das zweite Systemmodul neben einem ersten Systemmodul auch von weiteren anderen ersten Systemmodulen deren kryptographische Teilergebnisse empfangen. In anderen Worten kann das zweite Systemmodul von einer Mehrzahl von ersten Systemmodulen die entsprechenden kryptographischen Teilergebnisse erhalten und auf Grundlage dieser empfangenen kryptographischen Teilergebnisse ein zweites kryptographisches Teilergebnis berechnen. Beispielsweise leitet das zweite Systemmodul einen neuen oder zusätzlichen zweiten Schlüssel unter Berücksichtigung des empfangenen ersten Schlüssels ab. Beispielsweise bildet die Datenstruktur des ersten kryptographischen Teilergebnisses einen ersten Schlüssel. Das zweite Systemmodul führt eine Schlüsselableitung unter Zuhilfenahme des ersten Schlüssels und insbesondere unter Verwendung von Ableitungsparametern durch. In diesem Fall verwenden sowohl das erste als auch das zweite Systemmodul eine Schlüsselableitungsfunktion. Beispielsweise verarbeitet das zweite Systemmodul das oder die empfangenen kryptographischen Teilergebnisse weiter. The second system module receives the at least one first partial cryptographic result from the at least one first system module. In this case, the second system module can receive not only a first system module but also other other first system modules whose cryptographic partial results. In other words, the second system module can receive the corresponding cryptographic partial results from a plurality of first system modules and calculate a second cryptographic partial result on the basis of these received cryptographic partial results. For example, the second system module derives a new or additional second key in consideration of the received first key. For example, the data structure of the first cryptographic sub-result forms a first key. The second system module performs a key derivation with the aid of the first key and in particular using derivation parameters. In this case, both the first and second system modules use a key derivation function. For example, the second system module further processes the received cryptographic partial results.

Ferner ermittelt das zweite Systemmodul aus dem einen oder den mehreren empfangenen ersten kryptographischen Teilergebnissen und/oder dem zweiten kryptographischen Teilergebnis ein kryptographisches Gesamtergebnis, welches beispielsweise einer Applikation des zweiten Systemmoduls zur Verfügung gestellt werden kann. Beispielsweise verwendet die Applikation das kryptographische Gesamtergebnis als den angefragten kryptographischen Schlüssel zur Ver- oder Entschlüsselung von Daten. Furthermore, the second system module determines from the one or more received first cryptographic sub-results and / or the second cryptographic sub-result a cryptographic overall result, which can be made available, for example, to an application of the second system module. For example, the application uses the overall cryptographic result as the requested cryptographic key for encrypting or decrypting data.

Dementsprechend sind vorteilhafterweise die schützenswerten Daten und die Berechnungen gleichmäßig auf die Systemmodule des eingebetteten Systems verteilt. Ferner wird dadurch eine komplexe und zeitaufwendige Ver- und Entschlüsselungsfunktionalität auf beiden Seiten, der Seite des ersten Systemmoduls und der Seite des zweiten Systemmoduls, vermieden. Das erfindungsgemäße Verfahren ist folglich deutlich effizienter und auch anwendbar auf Trust-Anchor, welche nicht frei programmierbar sind oder aufgrund anderer Anforderungen beschränkt sind. Im Gegensatz zum Stand der Technik müsste der Angreifer alle Systemmodule angreifen und deren Kommunikation mithören, um eine sensible Information bilden zu können. Insbesondere ist er gezwungen auf die Haupt-CPU zugreifen zu können, wohingegen bei herkömmlichen Methoden ein reines Abhören des Trust-Anchor oder der Kommunikation zwischen dem Trust-Anchor und der Haupt-CPU ausreicht. Folglich wird durch das beschriebene Zusammenwirken der Systemmodule die Sicherheit bei der Erzeugung von kryptographischem Schlüsselmaterial oder digitalen Signaturen erheblich erhöht und zugleich eine effiziente Berechnung dieser sensiblen Informationen gewährleistet. Accordingly, advantageously, the sensitive data and the calculations are evenly distributed among the system modules of the embedded system. Furthermore, this avoids a complex and time-consuming encryption and decryption functionality on both sides, the side of the first system module and the side of the second system module. The inventive method is thus significantly more efficient and also applicable to Trust Anchor, which are not freely programmable or are limited due to other requirements. In contrast to the state of the art, the attacker would have to attack all system modules and listen in on their communication in order to be able to form sensitive information. In particular, he is forced to be able to access the main CPU, whereas in traditional methods it is sufficient to listen in on the trust anchor or in the communication between the trust anchor and the main CPU. Consequently, the described interaction of the system modules significantly increases the security in the generation of cryptographic key material or digital signatures and at the same time ensures an efficient calculation of this sensitive information.

Bevorzugt ist das mindestens eine erste Systemmodul ein Trust-Anchor und/oder das zweite Systemmodul eine Haupt-CPU, welche miteinander verbunden sind und über die Verbindung Daten austauschen können. Das erste Systemmodul ist vorzugsweise als Sicherheitsmodul, beispielsweise ein Security-Chip, ausgestaltet und wird herkömmlich als Trust-Anchor bezeichnet (siehe oben) und das zweite Systemmodul ist beispielsweise als Haupt-CPU oder Hauptprozessoreinheit oder Steuerungsrechner ausgestaltet. Preferably, the at least one first system module is a trust anchor and / or the second system module is a main CPU, which are interconnected and can exchange data via the connection. The first system module is preferably designed as a security module, for example a security chip, and is conventionally referred to as a trust anchor (see above) and the second system module is designed, for example, as a main CPU or main processor unit or control computer.

Das Sicherheitsmodul ist dabei bevorzugt nur mit einer minimalen Sicherheitsfunktionalität ausgestattet und berechnet für ein angefragtes oder benötigtes oder abzuleitendes Gesamtergebnis ein Teilergebnis. Vorteilhafterweise wird er dadurch gegenüber bekannten Trust-Anchor entlastet. Denn zum einen führt der Trust-Anchor nur die Berechnung des Teilergebnisses durch und keine weiteren Funktionen. Zum anderen enthält er auch nicht die gesamte schützenswerte Information, sondern nur einen Teil. The security module is preferably equipped only with a minimum security functionality and calculates a partial result for a requested or required or derived total result. Advantageously, it is thereby relieved against known Trust Anchor. For one thing, the trust anchor performs only the calculation of the partial result and no other functions. On the other hand, it does not contain all the information worthy of protection, but only a part.

Die Haupt-CPU führt die Berechnung des Gesamtergebnisses aus dem einen oder den mehreren Teilergebnissen durch. Das Sicherheitsniveau bleibt trotz Ausbleibens von kryptographischen Berechnungen auf dem Trust-Anchor erhalten, da der Angreifer gezwungen wird auf die Haupt-CPU zuzugreifen. Daneben laufen insbesondere auf der Haupt-CPU eine Mehrzahl an Applikationen, beispielsweise zur allgemeinen Steuerung des eingebetteten Systems und/oder Verwendung des Gesamtergebnisses zur weiteren Verschlüsselung etc. The main CPU performs the calculation of the overall result from the one or more partial results. The security level is maintained despite the absence of cryptographic computations on the trust anchor as the attacker is forced to access the main CPU. In addition, a plurality of applications run, in particular, on the main CPU, for example for general control of the embedded system and / or use of the overall result for further encryption, etc.

Bevorzugt werden das mindestens eine erste kryptographische Teilergebnis und/oder das mindestens eine zweite kryptographische Teilergebnis jeweils mittels einer Funktion ermittelt. Preferably, the at least one first cryptographic sub-result and / or the at least one second cryptographic sub-result are respectively determined by means of a function.

Bevorzugt ist die Funktion eine Schlüsselableitungsfunktion oder eine Signaturfunktion. Preferably, the function is a key derivation function or a signature function.

Das erste und das zweite Systemmodul können jeweils die gleiche oder eine oder mehrere unterschiedliche Funktionalitäten aufweisen. Sowohl das mindestens eine erste Systemmodul als auch das zweite Systemmodul können jeweils eine Funktion aufweisen, beispielsweise Schlüsselableitungsfunktion oder Signaturfunktion. Vorteilhafterweise ist das mindestens eine erste Systemmodul (als Sicherheitsmodul) nur mit einer minimalen Funktionalität ausgestattet, d.h. ist beispielsweise nur zur Berechnung des Teilergebnisses mit einer Schlüsselableitungsfunktion oder Signaturfunktion ausgebildet und weist keine speziellen oder zusätzlichen Sicherheits- oder Verschlüsselungsroutinen auf. Damit werden auf dem Sicherheitsmodul Ressourcen und Zeit gespart. Als Schlüsselableitungsfunktion werden beispielsweise kryptographische Hashfunktionen eingesetzte, die aus einem Geheimnis oder einem Passwort einen Schlüssel beliebiger Länge erzeugen. Beispielsweise wird zur Signaturerzeugung das Rivest-Shamir-Adleman- oder kurz RSA-Verfahren angewendet. Beispielsweise wird zur Erzeugung des Teilergebnisses eine digitale Signatur generiert, indem eine Nachricht oder Daten mittels einer Hashfunktion auf eine Zeichenkette fester Länge abgebildet werden und das Ergebnis mittels eines privaten Schlüssels signiert wird. Die durch die Funktionen berechneten Teilergebnisse stellen nur einen Bestandteil des Gesamtergebnisses dar und erst das Gesamtergebnis wird beispielsweise von einer Steuerungseinheit für eine Kryptofunktion genutzt. The first and second system modules may each have the same or one or more different functionalities. Both the at least one first system module and the second system module can each have a function, for example key derivation function or signature function. Advantageously, the at least one first system module (as a security module) is provided with only minimal functionality, i. is designed, for example, only for calculating the partial result with a key derivation function or signature function and has no special or additional security or encryption routines. This saves resources and time on the security module. As a key derivation function, for example, cryptographic hash functions are used which generate a secret or password of a key of any length. For example, the Rivest-Shamir-Adleman or short RSA method is used for signature generation. For example, to generate the partial result, a digital signature is generated by mapping a message or data by means of a hash function to a character string of fixed length and the result is signed by means of a private key. The partial results calculated by the functions represent only one component of the overall result, and only the overall result is used, for example, by a control unit for a crypto function.

Beispielsweise ermittelt das mindestens eine erste Systemmodul in Schritt a. einen Schlüssel mittels einer Schlüsselableitungsfunktion auf der Basis eines Master-Keys oder eine Signatur mittels einer Signaturfunktion auf der Basis eines privaten Schlüssels. Dieser erste Schlüssel wird zunächst durch das weitere zweite Systemmodul zu einem zweiten Schlüssel und letztendlich finalen Schlüssel weiterverarbeitet. Dieses Gesamtergebnis (beispielsweise der finale Schlüssel) wird an die Applikation des zweiten Systemmoduls gesendet. Nur das zweite Systemmodul generiert diese Information zur Laufzeit. For example, the at least one first system module determines in step a. a key by means of a key derivation function based on a master key or a signature by means of a signature function based on a private key. This first key is first further processed by the further second system module to form a second key and finally a final key. This overall result (for example, the final key) is sent to the application of the second system module. Only the second system module generates this information at runtime.

Bevorzugt berücksichtigt die erste Funktion mindestens ein erstes Geheimnis. Die Einbeziehung entsprechender Geheimnisse in die jeweiligen Funktionen der Systemmodule, welche in den jeweiligen Applikationen oder Speicherbereichen versteckt wurden, erhöht weiterhin die Sicherheit. Alternativ oder zusätzlich werden die Geheimnisse im Gegensatz zu den Teilergebnissen nicht zwischen dem ersten und dem zweiten Systemmodul oder zwischen anderen Systemmodulen übertragen, sondern verbleiben in den jeweiligen Systemmodulen so dass sie einem Angreifer verborgen bleiben. The first function preferably takes into account at least one first secret. The inclusion of appropriate secrets in the respective functions of the system modules, which were hidden in the respective applications or memory areas, further increases security. Alternatively or additionally, in contrast to the partial results, the secrets are not transmitted between the first and the second system module or between other system modules, but remain in the respective system modules so that they remain hidden from an attacker.

Bevorzugt basiert das kryptographische Gesamtergebnis auf dem ersten kryptographischen Teilergebnis und/oder dem zweiten kryptographischen Teilergebnis. Wie bereits weiter oben geschrieben, enthalten das erste oder die mehreren ersten Systemmodule nur die ersten Teilergebnisse, jedoch nicht die gesamten Informationen oder Daten. Das zweite Systemmodul führt die Berechnung des Gesamtergebnisses aus den Teilergebnissen durch und hat die für die Berechnung nötigen Teilergebnisse. Bevorzugt verschlüsselt, entschlüsselt oder signiert die Applikation mit dem kryptographischen Gesamtergebnis Daten oder eine Festplatte oder führt eine andere kryptographische Operation durch. Das zweite Systemmodul stellt der Applikation das Gesamtergebnis bereit, um dieses für eine oder mehrere bestimmte Anwendungen einzusetzen. Beispielsweise können Daten mit dem erzeugten Schlüssel verschlüsselt werden, um die Daten verschlüsselt zu speichern oder zu übertragen. Preferably, the overall cryptographic result is based on the first partial cryptographic result and / or the second partial cryptographic result. As already described above, the first or several first system modules contain only the first partial results, but not all the information or data. The second system module carries out the calculation of the overall result from the partial results and has the partial results necessary for the calculation. The application preferably encrypts, decrypts or signs the data with the overall cryptographic result or a hard disk or performs another cryptographic operation. The second system module provides the application with the overall result to use for one or more specific applications. For example, data may be encrypted with the generated key to encrypt or store the data.

Die Erfindung betrifft ferner ein Systemmodul zum Durchführen des oben beschriebenen Verfahrens. The invention further relates to a system module for carrying out the method described above.

Die Erfindung betrifft ferner ein eingebettetes System zur Erzeugung von kryptographischem Schlüsselmaterial oder einer digitalen Signatur, aufweisend:

  • a. mindestens ein erstes Systemmodul zum Ermitteln mindestens eines ersten kryptographischen Teilergebnisses und Senden des mindestens einen ersten kryptographischen Teilergebnisses an ein zweites Systemmodul;
  • b. zweites Systemmodul zum: – Empfangen des mindestens eines ersten kryptographischen Teilergebnisses von dem mindestens einem ersten Systemmodul; – Ermitteln eines zweiten kryptographischen Teilergebnisses auf der Basis des mindestens einen ersten kryptographischen Teilergebnisses durch das zweite Systemmodul; – Erzeugen eines kryptographischen Gesamtergebnisses als kryptographisches Schlüsselmaterial oder digitale Signatur, wobei das kryptographische Gesamtergebnis zumindest teilweise auf einem der mindestens zwei kryptographischen Teilergebnisse basiert.
The invention further relates to an embedded system for generating cryptographic key material or a digital signature, comprising:
  • a. at least one first system module for determining at least one first cryptographic sub-result and transmitting the at least one first cryptographic sub-result to a second system module;
  • b. second system module for: receiving the at least one first partial cryptographic result from the at least one first system module; Determining a second cryptographic sub-result on the basis of the at least one first cryptographic sub-result by the second system module; Generating a cryptographic overall result as a cryptographic key material or digital signature, the overall cryptographic result being based at least in part on one of the at least two cryptographic partial results.

Bevorzugt ist das erste Systemmodul ein Trust-Anchor ist und/oder das zweite Systemmodul ist eine Haupt-CPU, welche miteinander verbunden sind und über die Verbindung Daten austauschen können. Preferably, the first system module is a trust anchor and / or the second system module is a main CPU, which are interconnected and can exchange data via the connection.

Bevorzugt werden das mindestens eine erste kryptographische Teilergebnis und/oder das mindestens eine zweite kryptographische Teilergebnis jeweils mittels einer Funktion ermittelt. Preferably, the at least one first cryptographic sub-result and / or the at least one second cryptographic sub-result are respectively determined by means of a function.

Bevorzugt berücksichtigt die Funktion mindestens ein Geheimnis. The function preferably takes into account at least one secret.

Die Erfindung betrifft ferner ein Computerprogrammprodukt mit einem Computerprogramm, das Mittel zur Durchführung des oben beschriebenen Verfahrens aufweist, wenn das Computerprogramm auf einer programmgesteuerten Einrichtung zur Ausführung gebracht wird. The invention further relates to a computer program product with a computer program having means for carrying out the method described above when the computer program is executed on a program-controlled device.

Ein Computerprogrammprodukt, wie z.B. ein Computerprogramm-Mittel, kann beispielsweise als Speichermedium, wie z.B. Speicherkarte, USB-Stick, CD-ROM, DVD, oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogrammprodukt oder dem Computerprogramm-Mittel erfolgen. Als programmgesteuerte Einrichtung kommt insbesondere eine Steuereinrichtung, wie beispielsweise eine Industriesteuerungs-PC oder eine Speicherprogrammierbare Steuerung oder ein Programmable Logic Controller, kurz PLC, oder ein Mikroprozessor für eine Smartcard oder dergleichen in Frage. A computer program product, such as a computer program means may, for example, be used as a storage medium, e.g. Memory card, USB stick, CD-ROM, DVD, or even in the form of a downloadable file provided by a server in a network or delivered. This can be done, for example, in a wireless communication network by the transmission of a corresponding file with the computer program product or the computer program means. As a program-controlled device is in particular a control device, such as an industrial control PC or a programmable logic controller or a programmable logic controller, short PLC, or a microprocessor for a smart card or the like in question.

4. Kurze Beschreibung der Zeichnungen 4. Brief description of the drawings

In der folgenden detaillierten Beschreibung werden vorliegend bevorzugte Ausführungsformen der Erfindung weiter beschrieben mit Bezug auf die folgende Figur. In the following detailed description, preferred embodiments of the invention will be further described with reference to the following figure.

1 zeigt ein eingebettetes System mit mindestens zwei Systemmodulen zum Durchführen des Verfahrens gemäß einem Ausführungsbeispiel der Erfindung. 1 shows an embedded system with at least two system modules for performing the method according to an embodiment of the invention.

5. Beschreibung der bevorzugten Ausführungsformen 5. Description of the preferred embodiments

Im Folgenden werden bevorzugte Ausführungsformen der vorliegenden Erfindung in Bezug auf die begleitende Figur beschrieben. Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying figure.

Wie bereits weiter oben ausgeführt, wird es in der vorliegenden Erfindung vermieden, eine verschlüsselte Kommunikation zwischen zwei Systemmodulen, nämlich Haupt-CPU und Trust-Anchor, zu implementieren, für welche auf beiden Seiten, d.h. sender- und empfängerseitig, eine aufwändige Ver- bzw. Entschlüsselungsfunktionalität nötig wäre. Im Gegensatz zu diesem bekannten Ansatz, wird im erfindungsgemäßen Verfahren eine „Art Secret Sharing“ verwendet. As stated earlier, in the present invention it is avoided to implement encrypted communication between two system modules, namely main CPU and trust anchor, for which both sides, i. transmitter and receiver side, a complex encryption and decryption functionality would be necessary. In contrast to this known approach, an "Art Secret Sharing" is used in the method according to the invention.

Beim „Art Secret Sharing“ nach dem Stand der Technik wird ein vorab bekanntes Geheimnis in Teilgeheimnisse aufgeteilt und unter mehreren Teilnehmern verteilt. Das Geheimnis kann dabei ein Schlüssel sein und muss vor der Verteilung bekannt sein. Im Gegensatz zum Stand der Technik ist das Gesamtergebnis in der vorliegenden Erfindung jedoch vorab unbekannt und setzt sich in komplexer Weise aus einzelnen Teilergebnisse von einem oder mehreren Systemmodulen sowie deren Verknüpfung zusammen, wie im Folgenden detailliert ausgeführt. Die Teilergebnisse werden dabei bevorzugt unter Berücksichtigung von spezifischen Geheimnissen erzeugt. In the "Art Secret Sharing" according to the prior art, a previously known secret is divided into partial secrets and distributed among several participants. The secret can be a key and must be known before distribution. However, in contrast to the prior art, the overall result in the present invention is previously unknown and is complexly composed of individual partial results of one or more system modules and their association, as detailed below. The partial results are preferably generated taking into account specific secrets.

1 stellt ein eingebettetes System 1 dar, welches zwei Systemmodule 10, 20 aufweist. Wie gezeigt, ist eine Haupt-CPU 20 mit einem Trust-Anchor 10 beispielsweise über eine Datenkommunikationsschnittstelle verbunden und Daten oder Informationen können bidirektional zwischen diesen 10, 20 ausgetauscht werden. Der Trust-Anchor 10 kann beispielsweise als ein Sicherheits-Chip ausgestaltet sein. In einem Aspekt der Erfindung werden die Daten unverschlüsselt, das bedeutet im Klartext, zwischen Trust-Anchor 10 und Haupt-CPU 20 ausgetauscht. 1 represents an embedded system 1 which is two system modules 10 . 20 having. As shown, is a main CPU 20 with a trust anchor 10 for example, connected via a data communication interface and data or information can be bidirectionally between them 10 . 20 be replaced. The Trust Anchor 10 For example, it may be configured as a security chip. In one aspect of the invention, the data is unencrypted, that is, in plain text, between the trust anchor 10 and main CPU 20 replaced.

Die Haupt-CPU 20 sendet beispielsweise eine Anfrage an den Trust-Anchor 10. Die Anfrage kann darauf gerichtet sein, einen Schlüssel oder eine Signatur zu erzeugen, um Daten mittels einer Applikation zu verschlüsseln oder zu signieren. Der Trust-Anchor 10 weist eine (Sicherheits-)Funktionalität 11 auf, wie beispielsweise eine Schlüsselableitungsfunktion oder eine Signaturfunktion. Die Schlüsselableitungsfunktion verwendet vorzugsweise ein erstes Geheimnis S1, auch „Secret“ genannt, mit welchem ein erstes kryptographisches Teilergebnis R1 berechnet werden kann (z.B. R1 = f(S1)). Bevorzugt ist das erste Geheimnis S1 nur dem Trust-Anchor 10 bekannt (beispielsweise „private key“). Das erste Teilergebnis R1 kann beispielsweise der abgeleitete Schlüssel oder die abgeleitete Signatur sein. Im Gegensatz zum Stand der Technik muss der Trust-Anchor 10 in einem Aspekt der Erfindung nur die Minimal-Funktion und keinerlei zusätzlichen Verschlüsselungsroutinen aufweisen. Insbesondere ist auf der Seite des Trust-Anchor 10 keine aufwendige Verschlüsselung und/oder Entschlüsselung vorgesehen. Dadurch wird der Trust-Anchor 10 erheblich entlastet und das erfindungsgemäße Verfahren sowie die daran anschließende Applikation werden insgesamt effizienter. Ferner trägt der Trust-Anchor 10 nur ein erstes Geheimnis S1 und ein erstes Teilergebnis R1 mit sich. Daher hilft es potentiellen Angreifern nicht weiter, lediglich auf den Trust-Anchor 10 oder die unverschlüsselte Kommunikation zwischen dem Trust-Anchor 10 und der Haupt-CPU 20 zuzugreifen. The main CPU 20 For example, sends a request to the trust anchor 10 , The request may be directed to generating a key or signature to encrypt or sign data via an application. The Trust Anchor 10 has a (safety) functionality 11 on, such as a key derivation function or a signature function. The key derivation function preferably uses a first secret S1, also called "secret", with which a first cryptographic partial result R1 can be calculated (eg R1 = f (S1)). Preferably, the first secret S1 is only the trust anchor 10 known (for example, "private key"). The first partial result R1 can be, for example, the derived key or the derived signature. Unlike the state of the art, the Trust Anchor 10 in one aspect of the invention, only the minimal function and no additional encryption routines. In particular, is on the side of the Trust Anchor 10 no elaborate encryption and / or decryption provided. This will become the trust anchor 10 considerably relieved and the inventive method and the subsequent application are more efficient overall. Furthermore, the Trust Anchor bears 10 only a first secret S1 and a first partial result R1 with it. Therefore, it does not help potential attackers any more, just the Trust Anchor 10 or the unencrypted communication between the trust anchor 10 and the main CPU 20 access.

Daraufhin sendet der Trust-Anchor 10 das erste kryptographische Teilergebnis R1 an die Haupt-CPU 20. Die Haupt-CPU 20 weist ebenfalls eine zweite gleiche oder unterschiedliche Funktionalität im Vergleich zu dem Trust-Anchor 10 auf. Beispielsweise verwendet die Haupt-CPU 20 ebenfalls eine Schlüsselableitungsfunktion, welche unter Verwendung eines zweiten Geheimnisses (auch „Secret“ genannt) S2 ein zweites kryptographisches Teilergebnis R2 berechnet (z.B. R2 = f(S2, R1)). Bevorzugt ist das zweite Geheimnis S2 nur der Haupt-CPU 20 bekannt (beispielsweise „private key“). In einem Aspekt der Erfindung fließt das erste empfangene kryptographische Teilergebnis R1 mit in diese weitere Berechnung durch die Haupt-CPU 20 ein. Aus dem ersten Teilergebnis R1 kann beispielsweise das zweie Teilergebnis berechnet werden. Das zweite kryptographische Teilergebnis R2 wird ferner als kryptographisches Gesamtergebnis R an die Applikation übertragen. Weitere Beispiele für die Berechnung des kryptographischen Gesamtergebnisses R werden weiter unten aufgezeigt. The Trust Anchor will then send 10 the first cryptographic sub-result R1 to the main CPU 20 , The main CPU 20 also has a second same or different functionality compared to the trust anchor 10 on. For example, the main CPU uses 20 also a key derivation function, which calculates a second cryptographic partial result R2 using a second secret (also called "secret") S2 (eg R2 = f (S2, R1)). Preferably, the second secret S2 is only the main CPU 20 known (for example, "private key"). In one aspect of the invention, the first received cryptographic sub-result R1 flows into this further calculation by the main CPU 20 one. From the first partial result R1, for example, the two partial result can be calculated. The second cryptographic sub-result R2 is also transmitted as a cryptographic overall result R to the application. Further examples of the calculation of the overall cryptographic result R are shown below.

Dementsprechend kann die Haupt-CPU 20 aus einem oder mehreren Teilergebnissen ein finales Ergebnis oder Gesamtergebnis R berechnen, nämlich aus dem empfangenen einen oder mehreren Teilergebnissen (hier R1) des Trust-Anchor 10 und dem weiteren Teilergebnis R2 der Haupt-CPU 20. Bevorzugt sind der Haupt-CPU 20 die Geheimnisse der anderen Systemmodule, wie insbesondere S1, nicht bekannt. Ferner sind die Teilergebnisse auch erst nach deren Empfang der Haupt-CPU 20 bekannt. Folglich kann sich das neue berechnete Gesamtergebnis R entweder aus dem ersten Teilergebnis R1 und dem zweiten Teilergebnis R2 zusammensetzen, oder teilweise aus dem ersten Teilergebnis R1 und dem zweiten Teilergebnis R2 bestehen, oder lediglich aus einem der beiden Teilergebnisse abgeleitet werden. Beispielsweise gehen weitere Parameter in die Berechnung des Gesamtergebnisses R ein, wie beispielsweise zeitabhängige oder nutzerabhängige oder anwendungsabhängige Parameter, die einen zweckgebundenen Einsatz des Gesamtergebnisses ermöglichen. Die Teilergebnisse R1, R2. können durch eine Kombination oder Exklusiv-Oder-Verknüpfung miteinander verknüpft werden. Eine Rekonstruktion ist durch die Verteilung der Einzelbestandteile auf die verschiedenen Module für den Angreifer kaum möglich. Accordingly, the main CPU 20 from one or more partial results calculate a final result or overall result R, namely from the received one or more partial results (here R1) of the trust anchor 10 and the further partial result R2 of the main CPU 20 , Preferred are the main CPU 20 the secrets of the other system modules, in particular S1, not known. Furthermore, the partial results are only after their receipt of the main CPU 20 known. Consequently, the new calculated total result R can be composed of either the first partial result R1 and the second partial result R2, or consist in part of the first partial result R1 and the second partial result R2, or can be derived from only one of the two partial results. For example, further parameters are included in the calculation of the overall result R, such as time-dependent or user-dependent or application-dependent parameters, which allow a dedicated use of the overall result. The partial results R1, R2. can be linked by a combination or exclusive-or-linking. A reconstruction is hardly possible by the distribution of the individual components on the various modules for the attacker.

Vorteilhafterweise kann mit dem erfindungsgemäßen Verfahren ein vorhandenes eingebettetes System 1 nachträglich mit der Haupt-CPU 20 ausgestattet werden oder eine vorhandene Haupt-CPU 20 um die entsprechende Funktionalität erweitert werden. Der Trust-Anchor 10 muss folglich nicht angepasst oder erweitert werden. Im Gegenteil, wie bereits weiter oben beschrieb en, kann er sogar entlastet werden. Vorteilhafterweise verarbeitet die Haupt-CPU 20 die unbekannten Teilergebnisse R1 zu einem neuen Gesamtergebnis R. Das Gesamtergebnis R kennt nur die Haupt-CPU 20. Dadurch wird auch der Angreifer gezwungen auf die Haupt-CPU in der Tiefe zuzugreifen und nicht lediglich auf eine oder mehrere andere Systemmodule. Advantageously, with the method according to the invention an existing embedded system 1 subsequently with the main CPU 20 or an existing main CPU 20 to be extended to the appropriate functionality. The Trust Anchor 10 therefore does not have to be adapted or extended. On the contrary, as already described above, it can even be relieved. Advantageously, the main CPU processes 20 the unknown partial results R1 to a new total result R. The total result R knows only the main CPU 20 , This also forces the attacker to access the main CPU at depth, not just one or more other system modules.

Das Gesamtergebnis R wird anschließend der anfragenden Applikation oder Software 22 der Haupt-CPU 20 zur Verfügung gestellt. Die Applikation 22 kann das Gesamtergebnis R (wie Schlüssel oder Signatur) beispielsweise einfach abspeichern, oder Daten für eine weitere Kommunikation oder Speicherung oder eine Festplatte verschlüsseln. Das erfindungsgemäße Verfahren ist jedoch nicht auf diese Anwendungen beschränkt. The overall result R is then the requesting application or software 22 the main CPU 20 made available. The application 22 For example, you can easily save the overall result R (such as key or signature), or encrypt data for further communication or storage or a hard disk. However, the method according to the invention is not limited to these applications.

Wie bereits weiter oben erläutert, weist der Trust-Anchor 10 nur das erste Geheimnis S1 und auch nur die minimale Funktionalität 11 auf. Im Falle eines Angriffs auf das Gesamtergebnis R müsste der Angreifer daher sowohl die Trust-Anchor 10 Kommunikation abhören als auch die die Haupt-CPU 20 analysieren mittels der symmetrischen Verschlüsselung (siehe oben). In anderen Worten wird der Angreifer gezwungen alle Seiten und Systemmodule 10, 20 zu analysieren, an denen ein Teilergebnis oder Geheimnis potentiell in die Berechnung des Gesamtergebnisses R eingeht oder ein Verfahrensschritt potentiell ausgeführt wird. Im Gegensatz zum Stand der Technik ist es für den Angreifer nicht zielführend, wenn er nur die Kommunikation und den Trust Anchor 10, nicht aber die Haupt-CPU 20 analysiert. Dadurch wird der Aufwand und die Komplexität für den Angreifer deutlich erschwert und die Sicherheit somit erhöht. As already explained above, the Trust Anchor 10 only the first secret S1 and only the minimal functionality 11 on. In the event of an attack on the overall result R, the attacker would therefore need both the Trust Anchor 10 Listen to communication as well as the main CPU 20 analyze by means of symmetric encryption (see above). In other words, the attacker is forced all pages and system modules 10 . 20 to analyze in which a partial result or secret potentially in the calculation of the Overall result R is received or a process step is potentially carried out. In contrast to the prior art, it is not expedient for the attacker, if he only the communication and the Trust Anchor 10 but not the main CPU 20 analyzed. As a result, the effort and complexity for the attacker is much more difficult and security thus increased.

Die schützenswerten Daten oder Informationen sollten in einer vorteilhaften Ausgestaltung entsprechend auf den Trust-Anchor 10 und die Software der Haupt-CPU 20 gleichmäßig verteilt werden. Dies wird insbesondere durch die Verteilung der Geheimnisse, Berechnungsschritte der jeweiligen Teilergebnisse und/oder die jeweiligen Teilergebnisse auf mehrere oder alle Systemmodule des eingebetteten Systems erreicht. The sensitive data or information should be in an advantageous embodiment according to the trust anchor 10 and the software of the main CPU 20 evenly distributed. This is achieved in particular by the distribution of the secrets, calculation steps of the respective partial results and / or the respective partial results on several or all system modules of the embedded system.

In einem Aspekt der Erfindung bezieht die Haupt-CPU 20 Teilergebnisse einer Mehrzahl externer Module (Trust-Anchor 10 und andere, nicht dargestellte Module) R1, ..., RN, wobei N die Anzahl der externen Module ist, in die Berechnung des Gesamtergebnisses R mit ein. Dabei sind die externen Module wie der Trust-Anchor 10 an die Haupt-CPU 20 angebunden und übermitteln die Teilergebnisse für die weitere Berechnung des Gesamtergebnisses. In einem weiteren Aspekt der Erfindung bezieht die Haupt-CPU 20 zusätzlich oder alternativ eine Mehrzahl von Verarbeitungsschritten und/oder Geheimnissen in die Berechnung des Gesamtergebnisses mit ein, die beispielsweise in verschiedenen Anwendungen und Speicherbereichen versteckt sind. In one aspect of the invention, the main CPU refers 20 Partial results of a number of external modules (Trust Anchor 10 and other modules, not shown) R1, ..., RN, where N is the number of external modules, in the calculation of the overall result R. The external modules are like the trust anchor 10 to the main CPU 20 connected and transmit the partial results for the further calculation of the overall result. In another aspect of the invention, the main CPU refers 20 additionally or alternatively, a plurality of processing steps and / or secrets in the calculation of the overall result, which are hidden, for example, in different applications and storage areas.

In einer Ausführungsform der Erfindung stellt der Trust-Anchor 10 eine Schlüsselableitungsfunktion 11 bereit, die auf der Basis eines Master-Keys einen Schlüssel ableitet. Der Trust-Anchor 10 sendet den abgeleiteten Schlüssel an die Haupt-CPU 20. Die Haupt-CPU 20 verwendet den abgeleiteten Schlüssel als Parameter für eine zweite Schlüsselableitungsfunktion 21, die auf einem Geheimnis beruht, das in der Software 22 der Haupt-CPU 20 versteckt wurde. Danach sendet die Haupt-CPU 20 das Gesamtergebnis R der zweiten Schlüsselableitungsfunktion 21 als Antwort auf ihre Schlüsselanfrage an die Applikation 22. In one embodiment of the invention, the trust anchor 10 a key derivation function 11 ready, which derives a key based on a master key. The Trust Anchor 10 sends the derived key to the main CPU 20 , The main CPU 20 uses the derived key as a parameter for a second key derivation function 21 that relies on a secret in the software 22 the main CPU 20 was hidden. After that, the main CPU sends 20 the overall result R of the second key derivation function 21 in response to your key request to the application 22 ,

In einer weiteren Ausführungsform der Erfindung stellt der Trust-Anchor 10 wieder eine Schlüsselableitungsfunktion 11 bereit, die auf der Basis eines Master-Keys einen Schlüssel ableitet. Der Trust-Anchor 10 sendet den abgeleiteten Schlüssel wieder an die Haupt-CPU 20. Die Haupt-CPU 20 XORiert mit einem Geheimnis den abgeleiteten Schlüssel, das in der Software der Haupt-CPU 20 versteckt wurde. Danach sendet die Haupt-CPU 20 das XOR Ergebnis als Antwort auf ihre Schlüsselanfrage an die Applikation 22. In another embodiment of the invention, the trust anchor 10 again a key derivation function 11 ready, which derives a key based on a master key. The Trust Anchor 10 sends the derived key back to the main CPU 20 , The main CPU 20 XORates the derived key in the software of the main CPU with a secret 20 was hidden. After that, the main CPU sends 20 the XOR result in response to your key request to the application 22 ,

In einer weiteren Ausführungsform der Erfindung stellt der Trust-Anchor 10 eine Signaturfunktion auf der Basis eines privaten Schlüssels bereit, die beliebige Daten signieren kann und die Signatur zurück liefert. Der Trust-Anchor 10 sendet die Signatur an die Haupt-CPU 20. Die Haupt-CPU 20 verwendet die Signatur als Parameter für eine zweite Signaturfunktion und signiert die Signatur auf der Basis eines zweiten Schlüssels, der in der Software 22 der Haupt-CPU 20 versteckt wurde. Danach sendet die Haupt-CPU 20 die erste Signatur (Trust-Anchor) und auch die zweite Signatur (Software) als Antwort auf ihre Schlüsselanfrage an die Applikation 22. In another embodiment of the invention, the trust anchor 10 a signature function based on a private key that can sign any data and return the signature. The Trust Anchor 10 sends the signature to the main CPU 20 , The main CPU 20 Uses the signature as a parameter for a second signature function and signs the signature based on a second key stored in the software 22 the main CPU 20 was hidden. After that, the main CPU sends 20 the first signature (trust anchor) and the second signature (software) in response to their key request to the application 22 ,

Die Implementierung der vorstehend beschriebenen Prozesse oder Verfahrensabläufe kann anhand von Instruktionen erfolgen, die auf computerlesbaren Speichermedien oder in flüchtigen Computerspeichern (im Folgenden zusammenfassend als computerlesbare Speicher bezeichnet) vorliegen. Computerlesbare Speicher sind beispielsweise flüchtige Speicher wie Caches, Puffer oder RAM sowie nichtflüchtige Speicher wie Wechseldatenträger, Festplatten, usw. Implementation of the above-described processes or procedures may be accomplished by instructions that reside on computer-readable storage media or in volatile computer storage (collectively referred to as computer-readable storage). Computer-readable memories are, for example, volatile memories such as caches, buffers or RAM as well as non-volatile memories such as removable data carriers, hard disks, etc.

Die vorstehend beschriebenen Funktionen oder Schritte können dabei in Form zumindest eines Instruktionssatzes in/auf einem computerlesbaren Speicher vorliegen. Die Funktionen oder Schritte sind dabei nicht an einen bestimmten Instruktionssatz oder an eine bestimmte Form von Instruktionssätzen oder an ein bestimmtes Speichermedium oder an einen bestimmten Prozessor oder an bestimmte Ausführungsschemata gebunden und können durch Software, Firmware, Microcode, Hardware, Prozessoren, integrierte Schaltungen usw. im Alleinbetrieb oder in beliebiger Kombination ausgeführt werden. Dabei können verschiedenste Verarbeitungsstrategien zum Einsatz kommen, beispielsweise serielle Verarbeitung durch einen einzelnen Prozessor oder Multiprocessing oder Multitasking oder Parallelverarbeitung usw. The functions or steps described above may be in the form of at least one instruction set in / on a computer-readable memory. The functions or steps are not tied to a particular set of instructions or to a particular form of instruction set or to a particular storage medium or processor, or to particular execution schemes, and may include software, firmware, microcode, hardware, processors, integrated circuits, etc. be carried out alone or in any combination. It can be used a variety of processing strategies, such as serial processing by a single processor or multiprocessing or multitasking or parallel processing, etc.

Die Instruktionen können in lokalen Speichern abgelegt sein, es ist aber auch möglich, die Instruktionen auf einem entfernten System abzulegen und darauf via Netzwerk zuzugreifen. The instructions may be stored in local memories, but it is also possible to store the instructions on a remote system and access them via network.

Der Begriff "Prozessor", "zentrale Signalverarbeitung" oder „Haupt-CPU“, wie hier verwendet, umfasst Verarbeitungseinheiten im weitesten Sinne, also beispielsweise Server, Universalprozessoren, Grafikprozessoren, digitale Signalprozessoren, anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikschaltungen wie FPGAs, diskrete analoge oder digitale Schaltungen und beliebige Kombinationen davon, einschließlich aller anderen dem Fachmann bekannten oder in Zukunft entwickelten Verarbeitungseinheiten. Prozessoren können dabei aus einer oder mehreren Vorrichtungen bestehen. Besteht ein Prozessor aus mehreren Vorrichtungen, können diese zur parallelen oder sequentiellen Verarbeitung von Instruktionen konfiguriert sein. As used herein, the term "processor", "central signal processing" or "main CPU" includes processing units in the broadest sense, such as servers, general purpose processors, graphics processors, digital signal processors, application specific integrated circuits (ASICs), programmable logic circuits such as FPGAs, discrete analog or digital circuits and any combinations thereof, including any other processing units known to those skilled in the art or developed in the future. Processors can consist of one or more devices. If a processor consists of several devices, these can be configured for parallel or sequential processing of instructions.

Claims (13)

Verfahren zur Erzeugung von kryptographischem Schlüsselmaterial oder einer digitalen Signatur für ein eingebettetes System, aufweisend die folgenden Schritte: a. Empfangen mindestens eines ersten kryptographischen Teilergebnisses (R1) von mindestens einem ersten Systemmodul (10) durch ein zweites Systemmodul (20); b. Ermitteln eines zweiten kryptographischen Teilergebnisses (R2) auf der Basis des mindestens einen ersten kryptographischen Teilergebnisses (R1) durch das zweite Systemmodul (20); c. Erzeugen eines kryptographischen Gesamtergebnisses (R) als kryptographisches Schlüsselmaterial oder digitale Signatur durch das zweite Systemmodul (20), wobei das kryptographische Gesamtergebnis (R) zumindest teilweise auf einem der mindestens zwei kryptographischen Teilergebnisse (R1, R2) basiert. A method for generating cryptographic key material or a digital signature for an embedded system, comprising the following steps: a. Receiving at least one first partial cryptographic result (R1) from at least one first system module (R1) 10 ) by a second system module ( 20 ); b. Determining a second cryptographic sub-result (R2) on the basis of the at least one first cryptographic sub-result (R1) by the second system module (R2) 20 ); c. Generating a cryptographic overall result (R) as cryptographic key material or digital signature by the second system module ( 20 ), wherein the overall cryptographic result (R) is based at least partially on one of the at least two partial cryptographic results (R1, R2). Verfahren nach Anspruch 1, wobei das mindestens eine erste Systemmodul (10) ein Trust-Anchor ist und/oder das zweite Systemmodul (20) eine Haupt-CPU ist, welche miteinander verbunden sind und über die Verbindung Daten austauschen können. The method of claim 1, wherein the at least one first system module ( 10 ) is a trust anchor and / or the second system module ( 20 ) is a main CPU, which are connected to each other and can exchange data via the connection. Verfahren nach Anspruch 1 oder 2, wobei das mindestens eine erste kryptographische Teilergebnis (R1) und/oder das mindestens eine zweite kryptographische Teilergebnis (R2) jeweils mittels einer Funktion ermittelt werden. Method according to claim 1 or 2, wherein the at least one first cryptographic partial result (R1) and / or the at least one second cryptographic partial result (R2) are respectively determined by means of a function. Verfahren nach Anspruch 3, wobei die Funktion (11, 21) eine Schlüsselableitungsfunktion oder eine Signaturfunktion ist. The method of claim 3, wherein the function ( 11 . 21 ) is a key derivation function or a signature function. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Funktion (11, 21) mindestens ein Geheimnis (S1, S2) berücksichtigt. Method according to one of the preceding claims, wherein the function ( 11 . 21 ) takes into account at least one secret (S1, S2). Verfahren nach einem der vorhergehenden Ansprüche, wobei sich das kryptographische Gesamtergebnis (R) auf dem mindestens einen ersten kryptographischen Teilergebnis (R1) und/oder dem zweiten kryptographischen Teilergebnis (R2) basiert. Method according to one of the preceding claims, wherein the overall cryptographic result (R) is based on the at least one first partial cryptographic result (R1) and / or the second partial cryptographic result (R2). Verfahren nach einem der vorhergehenden Ansprüche, wobei die Applikation mit dem kryptographischen Gesamtergebnis (R) Daten oder eine Festplatte verschlüsselt, entschlüsselt oder signiert oder eine andere kryptographische Operation durchführt. Method according to one of the preceding claims, wherein the application with the overall cryptographic result (R) encodes, decrypts or signs data or a hard disk or performs another cryptographic operation. Systemmodul (20) zum Durchführen eines Verfahrens gemäß einem der Ansprüche 1 bis 7. System module ( 20 ) for carrying out a method according to one of claims 1 to 7. Eingebettetes System zur Erzeugung von kryptographischem Schlüsselmaterial oder einer digitalen Signatur, aufweisend: a. mindestens ein erstes Systemmodul (10) zum Ermitteln mindestens eines ersten kryptographischen Teilergebnisses (R1) und Senden des mindestens einen ersten kryptographischen Teilergebnisses (R1) an ein zweites Systemmodul (20); b. zweites Systemmodul (20) zum: – Empfangen des mindestens eines ersten kryptographischen Teilergebnisses (R1) von dem mindestens einem ersten Systemmodul (10) – Ermitteln eines zweiten kryptographischen Teilergebnisses (R2) auf der Basis des mindestens einen ersten kryptographischen Teilergebnisses (R1); – Erzeugen eines kryptographischen Gesamtergebnisses (R) als kryptographisches Schlüsselmaterial oder digitale Signatur, wobei das kryptographische Gesamtergebnis (R) zumindest teilweise auf einem der mindestens zwei kryptographischen Teilergebnisse (R1, R2) basiert. An embedded system for generating cryptographic key material or a digital signature, comprising: a. at least a first system module ( 10 ) for determining at least one first cryptographic sub-result (R1) and sending the at least one first cryptographic sub-result (R1) to a second system module ( 20 ); b. second system module ( 20 ) for: receiving the at least one first cryptographic sub-result (R1) from the at least one first system module ( 10 ) - determining a second cryptographic sub-result (R2) on the basis of the at least one first cryptographic sub-result (R1); Generating a cryptographic overall result (R) as a cryptographic key material or digital signature, the overall cryptographic result (R) being based at least in part on one of the at least two partial cryptographic results (R1, R2). Eingebettetes System nach Anspruch 9, wobei das erste Systemmodul (10) ein Trust-Anchor ist und/oder das zweite Systemmodul (20) eine Haupt-CPU ist, welche miteinander verbunden sind und über die Verbindung Daten austauschen können. Embedded system according to claim 9, wherein the first system module ( 10 ) is a trust anchor and / or the second system module ( 20 ) is a main CPU, which are connected to each other and can exchange data via the connection. Eingebettetes System nach Anspruch 9 oder Anspruch 10, wobei das mindestens eine erste kryptographische Teilergebnis (R1) und/oder das mindestens eine zweite kryptographische Teilergebnis (R2) jeweils mittels einer Funktion ermittelt werden. Embedded system according to claim 9 or claim 10, wherein the at least one first cryptographic partial result (R1) and / or the at least one second cryptographic partial result (R2) are respectively determined by means of a function. Eingebettetes System nach Anspruch 8 oder Anspruch 9, wobei die Funktion (11, 21) mindestens ein Geheimnis (S1, S2) berücksichtigt. Embedded system according to claim 8 or claim 9, wherein the function ( 11 . 21 ) takes into account at least one secret (S1, S2). Computerprogrammprodukt mit einem Computerprogramm, das Mittel zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 8 aufweist, wenn das Computerprogramm auf einer programmgesteuerten Einrichtung zur Ausführung gebracht wird. A computer program product comprising a computer program comprising means for performing the method according to any one of claims 1 to 8 when the computer program is executed on a program-controlled device.
DE102016209452.1A 2016-05-31 2016-05-31 Generation of cryptographic key material or a digital signature for an embedded system Withdrawn DE102016209452A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102016209452.1A DE102016209452A1 (en) 2016-05-31 2016-05-31 Generation of cryptographic key material or a digital signature for an embedded system
PCT/EP2017/061760 WO2017207267A1 (en) 2016-05-31 2017-05-16 Generation of cryptographic key material or of a digital signature for an embedded system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016209452.1A DE102016209452A1 (en) 2016-05-31 2016-05-31 Generation of cryptographic key material or a digital signature for an embedded system

Publications (1)

Publication Number Publication Date
DE102016209452A1 true DE102016209452A1 (en) 2017-12-14

Family

ID=58745219

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016209452.1A Withdrawn DE102016209452A1 (en) 2016-05-31 2016-05-31 Generation of cryptographic key material or a digital signature for an embedded system

Country Status (2)

Country Link
DE (1) DE102016209452A1 (en)
WO (1) WO2017207267A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025510A1 (en) * 1998-10-30 2008-01-31 Yung Marcel M Incorporating shared randomness into distributed cryptography
US20090252327A1 (en) * 2008-04-02 2009-10-08 Mathieu Ciet Combination white box/black box cryptographic processes and apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013227087A1 (en) * 2013-12-23 2015-06-25 Siemens Aktiengesellschaft Secured provision of a key
US9553722B2 (en) * 2014-07-08 2017-01-24 Cryptography Research, Inc. Generating a key based on a combination of keys
AU2015308608B2 (en) * 2014-08-29 2019-07-04 Visa International Service Association Methods for secure cryptogram generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025510A1 (en) * 1998-10-30 2008-01-31 Yung Marcel M Incorporating shared randomness into distributed cryptography
US20090252327A1 (en) * 2008-04-02 2009-10-08 Mathieu Ciet Combination white box/black box cryptographic processes and apparatus

Also Published As

Publication number Publication date
WO2017207267A1 (en) 2017-12-07

Similar Documents

Publication Publication Date Title
EP2742643B1 (en) Device and method for decrypting data
DE102012209249B4 (en) Security device and host device for exchanging scrambled encryption data
EP2899714B1 (en) Secure provision of a key
DE112018000779T5 (en) Token deployment for data
DE102007007699A1 (en) Reduction of page channel information by interacting crypto blocks
DE112005001654T5 (en) Method for transmitting direct-proof private keys to devices by means of a distribution CD
DE112014007083T5 (en) Server device, search system, terminal device, search method, server program and terminal program
EP2499774B1 (en) Method and system for the accelerated decryption of cryptographically protected user data units
DE102017118164A1 (en) CRYPTOGRAPHIC SWITCHING AND DATA PROCESSING
EP3910875A1 (en) Concept for exchanging cryptographic key information
WO2018145805A1 (en) Programmable hardware security module and method on a programmable hardware security module
EP2790078A1 (en) Manipulation-proof control of a process and/or production and/or positioning installation
EP3215931B1 (en) Device and method for multiplication for impeding side-channel attacks
EP3387636B1 (en) Cryptographic algorithm having a key-dependent masked computing step (sbox call)
DE102014116883B4 (en) Method of accessing features of an embedded device
DE102015000895B3 (en) Distributed editing of centrally encrypted data
DE102016209452A1 (en) Generation of cryptographic key material or a digital signature for an embedded system
EP4300873A1 (en) Method for processing data in a computer environment with distributed computers and rail technology application
WO2016005075A1 (en) Method and system for identifying manipulation of data records
EP3252990A1 (en) Method and device for providing a secret for authenticating a system and/or components of the system
AT520170B1 (en) Method for the secure administration of a lock, in particular for a safe, by means of a computer
EP3627755A1 (en) Method for secure communication in a communication network having a plurality of units with different security levels
DE112014006666T5 (en) Encryption device, storage system, decryption device, encryption method, decryption method, encryption program and decryption program
EP3371733B1 (en) Encrypting the memory content of a memory in an embedded system
EP4033694B1 (en) Method and device for standardising blockchain addresses

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee