The secure management of encryption keys is obtained by preventing external
access thereto and ensuring that the keys do not leave an encryption unit
in their original form. This result is obtained via a facility which (a)
generates a unique device encryption key and at least one program
encryption key, (b) encrypts the program encryption key using the device
encryption key, and (c) stores the result in local memory. Thereafter,
responsive to receipt of an indication to encrypt data, the program
encryption key is retrieved from memory and is decrypted using the unique
device encryption key. The data is then encrypted using the decrypted
program encryption key and the encrypted data is stored in a server for
distribution to a user who enters a request for the data. When there is a
need to transport the latter key to another element, then the program key
is encrypted using a symmetrical encryption key that the facility shares
with the other element and the result is supplied to that element. The
element then decrypts the encrypted program key using its own version of
the symmetrical key.
La gerencia segura de las llaves del cifrado es obtenida previniendo el acceso externo además y asegurándose de que las llaves no dejen una unidad del cifrado en su forma original. Este resultado se obtiene vía una facilidad que (a) genere una llave única del cifrado del dispositivo y por lo menos una llave del cifrado del programa, (b) cifra la llave del cifrado del programa usando la llave del cifrado del dispositivo, y (c) almacena el resultado en memoria local. Después de eso, responsivo al recibo de una indicación de cifrar datos, la llave del cifrado del programa se recupera de memoria y se descifra usando la llave única del cifrado del dispositivo. Los datos entonces se cifran usando la llave descifrada del cifrado del programa y los datos cifrados se almacenan en un servidor para la distribución a un usuario que incorpore una petición los datos. Cuando hay una necesidad de transportar la última llave a otro elemento, entonces la llave del programa se cifra usando una llave simétrica del cifrado que la facilidad comparta con el otro elemento y el resultado se provee a ese elemento. El elemento entonces descifra la llave cifrada del programa usando su propia versión de la llave simétrica.