TAMPER-PROTECTED HARDWARE AND METHOD FOR USING SAME
First Claim
Patent Images
1. A method for generating a software module, the method comprising:
- providing an entity block to be included to the software module, the entity block providing an executable piece of software,generating a fingerprint of the entity block using a hash function, wherein the fingerprint allows the verification of the integrity of the entity block,encrypting the fingerprint using the private key of a public key pair, to thereby generate a digital signature of the entity block,combining the entity block and the encrypted fingerprint to form an integrity protected entity block,encrypting the integrity protected entity block using a random secret key to thereby form an encrypted and integrity protected entity block,encrypting the random secret key using the private key of a public key pair, andgenerating the software module by combining the encrypted and integrity protected entity block, and the encrypted random secret key.
0 Assignments
0 Petitions
Accused Products
Abstract
One of the various aspects of the invention is related to suggesting various techniques for improving the tamper-resistibility of hardware. The tamper-resistant hardware may be advantageously used in a transaction system that provides the off-line transaction protocol. Amongst these techniques for improving the tamper-resistibility are trusted bootstrapping by means of secure software entity modules, a new use of hardware providing a Physical Unclonable Function, and the use of a configuration fingerprint of a FPGA used within the tamper-resistant hardware.
-
Citations
17 Claims
-
1. A method for generating a software module, the method comprising:
-
providing an entity block to be included to the software module, the entity block providing an executable piece of software, generating a fingerprint of the entity block using a hash function, wherein the fingerprint allows the verification of the integrity of the entity block, encrypting the fingerprint using the private key of a public key pair, to thereby generate a digital signature of the entity block, combining the entity block and the encrypted fingerprint to form an integrity protected entity block, encrypting the integrity protected entity block using a random secret key to thereby form an encrypted and integrity protected entity block, encrypting the random secret key using the private key of a public key pair, and generating the software module by combining the encrypted and integrity protected entity block, and the encrypted random secret key. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for bootstrapping a hardware by executing a set of software modules in a given order, the method comprising:
-
a) decrypting an encrypted random secret key of one of said set of software modules to be executed next, b) decrypting an encrypted and integrity protected entity block of the software module to be executed next, using the decrypted random secret key, to thereby obtain an integrity protected entity block of the software module to be executed, c) decrypting an encrypted fingerprint comprised in the integrity protected entity block of the software module to be executed next, and d) generating another fingerprint of the entity block using the same hash function as used to generate the encrypted fingerprint, e) verifying the integrity of the entity block of the integrity protected entity block of the software module to be executed next by comparing the fingerprint decrypted in step c) with the fingerprint generated in step d), and f) only in case the integrity of the entity block of the software module to be executed next is successfully verified, executing the entity block of the software module to be executed next, wherein steps a) to f) are performed for each software module of the set of software modules thereby realizing a chain of trust. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A device comprising:
-
a memory adapted to store a set of set of software modules that are to be executed in a given order; and a processor adapted to perform the following operations; a) decrypting an encrypted random secret key of one of said set of software modules to be executed next, b) decrypting an encrypted and integrity protected entity block of the software module to be executed next, using the decrypted random secret key, to thereby obtain an integrity protected entity block of the software module to be executed, c) decrypting an encrypted fingerprint comprised in the integrity protected entity block of the software module to be executed next, and d) generating another fingerprint of the entity block using the same hash function as used to generate the encrypted fingerprint, e) verifying the integrity of the entity block of the integrity protected entity block of the software module to be executed next by comparing the fingerprint decrypted in step c) with the fingerprint generated in step d), and f) only in case the integrity of the entity block of the software module to be executed next is successfully verified, executing the entity block of the software module to be executed next, wherein the processor performs the operations a) to f) are performed for each software module of the set of software modules thereby realizing a chain of trust.
-
-
17. A device comprising:
-
a memory adapted to store an entity block to be included to the software module, the entity block providing an executable piece of software, and a processor adapted to perform the following operations; generating a fingerprint of the entity block using a hash function, wherein the fingerprint allows the verification of the integrity of the entity block, encrypting the fingerprint using the private key of a public key pair, to thereby generate a digital signature of the entity block, combining the entity block and the encrypted fingerprint to form an integrity protected entity block, encrypting the integrity protected entity block using a random secret key to thereby form an encrypted and integrity protected entity block, encrypting the random secret key using the private key of a public key pair, and generating the software module by combining the encrypted and integrity protected entity block, and the encrypted random secret key.
-
Specification