1. Field of the Invention
The present invention relates to a cryptographic hardware module and a method for updating a cryptographic key.
2. Description of Related Art
Implementing security protocols in environments in which physical security is not ensured requires the use of hardware security modules to secure the cryptographic keys. Depending on the application, this hardware must meet certain security requirements. There are different approaches proposed in the related art for this purpose, for example, the Trusted Platform Module (TPM), see, for example, published German patent application document DE-11 2005 003 502.
Using the cryptographic hardware module and the method according to the present invention, it is possible to update secret keys in a secure hardware module or to use them for encrypting and decrypting, the secret keys never being accessible to the firmware of the microprocessor of the hardware module, thus being particularly secured. Furthermore, the proposed method and the proposed device have a flexible design, so that different cryptographic operations may be performed.
In one particular embodiment, the key to be decrypted is stored encrypted outside the hardware module in a memory and is loaded into the hardware module via a communication link for decrypting. The advantage of this is that the key to be decrypted may be stored outside of the cryptographic hardware security module in an encrypted form without violating security requirements.
It is particularly advantageous if a logic module or possibly a logic module of the cryptographic hardware module prevents the encrypted keys from getting from the hardware module onto an open communication link, for example, onto a data bus.
In another advantageous embodiment, the cryptographic device of the hardware module is equipped for enabling it to perform various cryptographic procedures, for example, standard procedures such as AES (Advanced Encryption Standard), MAC (Message Authentication Code, for example, CMAC) or CBC (Cipher Block Chaining) to ensure the most flexible use possible of the hardware module.
It is also advantageous if the cryptographic device of the hardware module has means for deriving or generating secret keys from secret information, i.e., for having key derivation functions KDF.
In the description, the terms hardware module, cryptographic module, and hardware security module (HSM) are used largely as synonyms. The cryptographic modules available until now are based either on hardwired hardware state machines or on programmable microprocessors. State machines provide a higher degree of protection, while software approaches may be updated in the event of failures or new applications. In the latter case, it has previously been necessary that the user trust the manufacturer of the firmware or the firmware, since it has access to the secret keys. This represented a problem, in particular at the time of each update, in that each new version had to be completely and independently certified.
Logic 14 may now load the encrypted “child key” from memory 3 into hardware module 1 via communication link 2. Cryptographic device 13 then decrypts the “child key” with the aid of the “parent key” from memory 12. The decrypted “child key” is stored in memory 12.
One advantage of this procedure is that secret keys, here the “child key,” may be stored in an encrypted form in a non-volatile memory, here memory 3, outside the HSM without the decrypted “child key” and “parent key” being known to the firmware or being transferred via the general communication link during the update. According to this proposed approach, the keys may be updated using standard key update protocols, which preserve the confidentiality and integrity of the keys.
For the update of the lower-level key, here the “child key,” the higher-level key, here the “parent key,” must be known within the HSM.
Multiple separate hierarchic contexts are possible here for cryptographic keys. Lower-level keys are stored encrypted in the system and possibly decrypted in the HSM; higher-level keys are stored in the HSM.
In the following, a detailed implementation of the cryptographic system and method is described using an exemplary hardware architecture.
Key memory 312 of
Key memory 312 is a memory within the HSM and may have ROM and RAM areas. Key memory multiplexer 321 decides whether selected keys should be written on data bus 331 according to [their] values or to an output of the AES coprocessor. Key multiplexer 323 determines the key from key memory 312, and also determines the loading procedure from data bus 331 into the key input of the AES coprocessor, the latter for keys which are not to be protected in this hierarchy. Data multiplexer 322 is connected to the data input of the AES coprocessor and loads the input either from data bus 331 or from the output of the AES coprocessor. Data isolation switch 325 does not allow any of the keys decrypted by the AES coprocessor to appear on data bus 331; this is controlled by key security circuit 324 as described above. Circuits CMAC and KDF have state machines, circuit logics, and registers, which control the AES coprocessor for implementing CMAC and KDF algorithms. Each key is provided with a flag, which determines to which domain this key belongs. This flag is set automatically as a function of its address when the key is loaded. This flag is used by key security circuit 324 for deciding whether or not the command from HSM CPU 311 is allowed and conflicts with the security specifications of the hardware module. The loaded keys are encrypted. They are loaded via data bus 331, decrypted using the appropriate higher-level “parent key” or “domain master key,” but then they are not transferred to data bus 331, but written to the right location of key memory 312. Domain master keys may be located in the ROM of hardware module key memory 312 or they may be generated instantaneously with the aid of the KDF functionality. The latter requires that a CPU master key (“HSM master key”) be stored in the ROM of key memory 312. This “HSM master key” is not known to the domain owners, who know only the result of the key derivation function having appropriate constants for their own domains. Keys must be stored in such a way that their authenticity can be guaranteed. This may be done in different ways, for example, by providing each key with a message authentication code MAC.
When keys are updated, temporary keys are generated with the aid of the above-described architecture (
Any method that guarantees the secrecy and integrity of the keys may be used for updating the keys. Since such methods are based on the secrecy and integrity of the intermediate values which are generated and used during the method, one advantage of the present module is that these values are not known or accessible to the owners of other domains.
Number | Date | Country | Kind |
---|---|---|---|
102009046436.0 | Nov 2009 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2010/065327 | 10/13/2010 | WO | 00 | 9/14/2012 |