Abstract:
An information processing apparatus, a software update method, and an image processing apparatus capable of encrypting and decrypting information using values uniquely calculated from booted primary modules or booted backup modules with less effort are disclosed. The information processing apparatus includes primary modules and the same kinds of backup modules, and includes a value storage unit storing values calculated from the modules, an encryption information storage unit storing information unique to the modules, an information decryption unit decrypting the information unique to the modules using the values in the value storage unit, and an encryption information update unit, when the module is updated, encrypting the information unique to the modules based on a value calculated from the each kind of the primary modules or the backup modules after the update.

Description:
BACKGROUND 
     1. Technical Field This disclosure relates to an information processing apparatus, a software update method, and an image processing apparatus, and more specifically to an information processing apparatus or an image processing apparatus having a primary module and a backup module, and a software update method of the information processing apparatus or the image processing apparatus. 
     2. Description of the Related Art 
     As security becomes increasingly critical, information processing apparatuses such as personal computers and image processing apparatuses such as Multi Function Peripherals (MFP) capable of encrypting information stored in the apparatuses to avoid wiretapping have become available lately. For example, Patent Document 1 describes a PC adopting the specifications of Trusted Computing Platform Alliance (TCPA) in which information is encrypted using a Trusted Platform Module (TPM). The TPM is realized in a chip directly mounted on, for example, a motherboard. 
     On the other hand, to respond to a failure, for example, a duplexing system has been employed in information processing apparatuses such as personal computers and image processing apparatuses such as MFPs. Furthermore, to respond to a bug, a security hole, addition or modification of functions, the programs have also been updated in information processing apparatuses such as personal computers and image processing apparatuses such as MFPs (see, for example, Patent Document 2). 
     Herein, a conventional method of encrypting and decrypting information using the TPM, and a program update (hereinafter referred to as “ROM update”) are briefly described.  FIG. 1  shows an exemplary configuration of a conventional information processing apparatus. The information processing apparatus includes a CPU  1 , a BIOS ROM  2 , a disk  3 , a non-volatile (NV) RAM  4 , and a main memory  5  as the hardware configuration. The CPU  1 , the BIOS ROM  2 , the disk  3 , the NVRAM  4 , and the main memory  5  are connected to each other via a bus  6 . 
     The BIOS ROM  2  stores a Basic Input/Output System (BIOS)  10  module. The disk  3  stores a loader  11 , a kernel  12 , and a root file system (Rootfs)  13  modules. The NVRAM  4  stores plain text data  14  that users use. 
     The root file system  13  manages a boot program  21 , a ROM update flag control program  22 , a blob decryption section  23 , and an application  24  that are stored in the disk  3 . It should be noted that each of the BIOS  10 , the loader  11 , the kernel  12 , the root file system  13  modules and the like is loaded into the main memory  5  to be executed. In the following, the BIOS  10 , the loader  11 , the kernel  12 , the root file system  13  modules and the like are described as processing subjects. 
     A boot sequence of the information processing apparatus in  FIG. 1  is described with reference to  FIG. 2 .  FIG. 2  is a sequence diagram showing the processes of the information processing apparatus being booted. In step S 1 , the BIOS  10  loads and boots the loader  11 . In steps S 3  through S 5 , the loader  11  loads and boots the kernel  12  and the root file system  13 . 
     In step S 6 , the kernel  12  boots the boot program  21  in the root file system  13 . In step S 7 , the boot program  21  boots the application  24  in the root file system  13 . In step S 8 , the application  24  is now capable of writing data into the NVRAM  4  and reading, for example, plain data  14  in the NVRAM  4 . 
     Next, a mechanism of the TPM is briefly described. In the following, an example where the loader  11  boots the kernel  12  is described. 
       FIG. 3  is a diagram schematically showing a process of storing a hash value into the TPM  7 . In step S 11 , the loader  11  loads the kernel  12  from the disk  3  into the main memory  5 . In step S 12 , the TPM  7  stores, for example, a hash value into a Platform Configuration Register (PCR), the hash value being calculated based on a method of generating a fixed-length pseudo random number from an original document. In  FIG. 3 , a hash value “0x3a” is stored in a “PCR 3 ”. In step S 13 , the loader  11  boots the kernel  12 . 
     In this manner, when the TPM  7  boots, for example, the BIOS  10 , the loader  11 , the kernel  12  and the root file system  13  modules, the TPM  7  stores hash values calculated from the modules in the PCRs. 
       FIG. 4  is a drawing schematically showing a decrypting process of the information using the TPM  7 . In the TPM  7 , four hash values calculated from the corresponding modules are stored in “PCR 1 ” through “PCR 4 ”. When the information is decrypted using the TPM  7 , a Blob A  41  and a Blob B  42  each including at least one of the “PCR 1 ” through “PCR 4 ” data are used. 
     In the Blob A  41 , a value “0x3a” is stored in the “PCR 3 ”. In the Blob B  42 , values “0xe9”, “0x12”, “0x3b”, and “0x06” are stored in the “PCR 1 ” through the “PCR 4 ”, respectively. In the TPM 7 , values “0xe9”, “0x12”, “0x3a”, and “0x06” are stored in its “PCR 1 ” through the “PCR 4 ”, respectively. 
     In case of Blob A  41 , the same hash value is in the “PCR 3 ” of the Blob A  41  and the “PCR 3 ” of the TPM  7 . Therefore, the TPM  7  permits taking the information from the Blob A  41 . In case of Blob B  42 , a hash value in the “PCR 3 ” of the Blob A  41  is different from that in the “PCR 3 ” of the TPM  7 . Therefore, the TPM  7  does not permit taking the information from the Blob A  41 . It should be noted that when “no setting” may be stored in, for example, the “PCR 1 ”, the “PCR 2 ”, and the “PCR 4 ” in the Blob A  41 , the TPM  7  does not use the register to determine whether to permit taking the information. 
       FIG. 5  shows an exemplary configuration of an information processing apparatus having the TPM. The information processing apparatus in  FIG. 5  includes the CPU  1 , the BIOS ROM  2 , the disk  3 , the NVRAM  4 , the main memory  5 , the TPM  7 , and a Hard Disk Drive (HDD)  8  as the hardware configuration. The CPU  1 , the BIOS ROM  2 , the disk  3 , the NVRAM  4 , the main memory  5 , the TPM  7 , and a Hard Disk Drive (HDD)  8  are connected to each other via a bus  6 . 
     The configuration of the information processing apparatus in  FIG. 5  is different from that in  FIG. 1  in that the information processing apparatus in  FIG. 5  further includes the TPM  7  and the HDD  8 . Furthermore, the disk  3  stores a Blob  43  in addition to the configuration in  FIG. 1 . The Blob  43  includes an encrypted encryption key  51  for the NVRAM  4 . The Blob  43  stores hash values each calculated from the BIOS  10 , the loader  11 , the kernel  12 , and the root file system  13  in the “PCR 1 ” through “PCR 4 ”, respectively. 
     The NVRAM  4  stores encrypted data  15  in addition to the plain text data  14 . The HDD  8  stores encrypted data  16 . The same reference numerals are used in the figure to describe those components that are identical to the components of  FIG. 1  without repeated description. The description of the Blob having an encrypted encryption key of the HDD  8  is also omitted. 
     A boot sequence of the information processing apparatus in  FIG. 5  is described with reference to  FIG. 6 .  FIG. 6  is a sequence diagram showing exemplary processes of the information processing apparatus being booted. In step S 21 , the BIOS  10  loads the loader  11 . In step S 22 , a hash value of the loader  11  is stored in a PCR of the TPM  7 . In step S 23 , the BIOS  10  boots the loader  11 . 
     In step S 24 , the loader  11  loads the kernel  12 . In step S 25 , a hash value of the kernel  12  is stored in a PCR of the TPM  7 . In step S 26 , the loader  11  loads the root file system  13 . In step  27 , a hash value of the root file system is stored in a PCR of the TPM  7 . 
     In step S 28 , the loader  11  boots the kernel  12  and the root file system  13 . In step S 29 , the kernel  12  boots the boot program  21  in the root file system  13 . In steps  30  and  31 , the boot program  21  boots the blob decryption section  23  and the application  24  in the root file system  13 . 
     In step S 32 , the blob decryption section  23  acquires the encryption key  51  for the NVRAM  4  from inside the Blob  43 . In step S 33  by using the encryption key, the application is now capable of writing encrypted data into the NVRAM  4  and reading encrypted data  14  stored in the NVRAM  4 . 
     Patent Document 1: Japanese Patent Application Publication No. 2004-282391 
     Patent Document 2: Japanese Patent Application Publication No. 2005-196745 
     However, in an information processing apparatus having a configuration as shown in  FIG. 5 , the following problem may occur during the ROM update.  FIG. 7  is a drawing schematically illustrating a problem having occurred during the ROM update. In an information processing apparatus having a configuration as shown in  FIG. 5 , when the BIOS  10  stored in the BIOS ROM  2  is replaced by a new BIOS  10   a , the Blob  43  corresponding to the BIOS  10  is required to be updated to a Blob A  43   a  that corresponds to the BIOS  10   a.    
     Unfortunately, in a conventional information processing apparatus, when an update process from the Blob A  43  to the Blob A  43   a  is interrupted due to some reason, the hash value stored in the “PCR 1 ” of the TPM  7  may become different from the hash value stored in the “PCR 1 ” of the Blob A  43   a . A problem arises that when the hash value stored in the “PCR 1 ” of the TPM  7  becomes different from the hash value stored in the “PCR 1 ” of the Blob A  43   a , in that the encryption key  51  for the NVRAM  4  cannot be taken from the Blob  43   a , resulting in that the encrypted data stored in the NVRAM  4  cannot be decrypted. 
     This problem illustrated in  FIG. 7  can be solved when an information processing system has a configuration as shown in  FIG. 8 . The information processing apparatus in  FIG. 8  includes a primary system  81  and a backup system  82 , constituting a duplex system. The primary system  81  includes the BIOS  10 , the loader  11 , the kernel  12 , and the root file system  13 . The backup system  82  includes the BIOS  10   b , a loader  11   b , a kernel  12   b , and a root file system  13   b.    
     It should be noted that the BIOS  10 , the loader  11 , the kernel  12 , and the root file system  13  are included in primary modules, and the BIOS  10   b , the loader  11   b , the kernel  12   b , and the root file system  13   b  are included in backup modules. 
     Typically, an information processing apparatus is booted sequentially in an order of the BIOS  10 , the loader  11 , the kernel  12 , and the root file system  13 . Hereinafter, a procedure of booting like this is referred to as a “boot path”. In the example of  FIG. 8 , due to an error having occurred in the loader  11 , the booth path becomes: BIOS  10  →loader  11   b →kernel  12 →root file system  13 . 
     That is, in an information processing apparatus having the backup system  82 , when a module of the primary system has a problem, the same kind of module in the backup system  82  can usually be booted. 
     A booth path can be changed by, for example, a ROM update flag control program. 
     Because of this structure, there is a problem that the same number of Blobs which is equal to the number of booth paths defined by the combination of the modules in the primary system  81  and the modules in the backup system  82  are required to be provide.  FIG. 9  is a drawing schematically illustrating a problem that may occur when information is encrypted and decrypted using the TPM in an information processing apparatus having a backup system. 
     Further, there is another problem in an information processing apparatus having a configuration as shown in  FIG. 9  that when the BIOS  10  stored in the BIOS ROM  2  is updated to the BIOS  10   a , all of the plural Blobs corresponding to the BIOS  10  are required to be updated so as to correspond to the BIOS  10   a .  FIG. 10  is a drawing schematically illustrating a problem occurring while information is encrypted and decrypted using the TPM, where the ROM update is executed in an information processing apparatus having a backup system. 
     As described, when a conventional system is arranged to employ a duplex system having both a primary system and a backup system, have a ROM update capability, and improve the security by adding both an encryption and a decryption capability of information by using the TPM  7 , it takes a lot of effort to manage the Blobs  73 . 
     BRIEF SUMMARY 
     In an aspect of this disclosure, there is provided an information processing apparatus, a method of software update, and an image processing apparatus capable of encrypting and decrypting information using values uniquely calculated from a booted primary module and a booted backup module with much ease. 
     In another aspect, there is provided an information processing apparatus including one or more kinds of primary modules necessary to boot the apparatus and one or more kinds of backup modules to be used when the primary modules fail, so that the information processing apparatus is booted in a manner that when any kind of the primary modules fails, the same kind of backup module is used. The information. processing apparatus includes a value storage unit storing values uniquely calculated from the one or more kinds of the primary modules or the backup modules used when the apparatus is booted, an encryption information storage unit storing information unique to the each kind of the primary or the backup modules, the information being encrypted based on a value calculated from the each kind of the primary modules or the backup modules, an information decryption unit decrypting the information unique to the each kind of the primary modules or the backup modules using the values in the value storage unit, the information being stored in the encryption information storage unit, and an encryption information update unit, when any of the primary modules or the backup modules is updated, encrypting the information unique to the each kind of the primary modules or the backup modules based on a value calculated from the each kind of the primary modules or the backup modules after the update, the information being stored in the encryption information storage unit. 
     Further, in yet another aspect, there is provided an image processing apparatus including one or more kinds of primary modules necessary to boot the apparatus, one or more kinds of backup modules to be used when the primary modules fail, a plotter section and scanner section so that the plotter and the scanner sections are booted in a manner that when any kind of the primary modules fails, the same kind of backup module is used. The image processing apparatus includes a value storage unit storing values uniquely calculated from the one or more kinds of the primary modules or the backup modules used when the apparatus is booted, an encryption information storage unit storing information unique to the each kind of the primary or the backup modules, the information being encrypted based on a value calculated from the each kind of the primary modules or the backup modules, an information decryption unit decrypting the information unique to the each kind of the primary modules or the backup modules using the values in the value storage unit, the information being stored in the encryption information storage unit, and an encryption information update unit, when any of the primary modules or the backup modules is updated, encrypting the information unique to the each kind of the primary modules or the backup modules based on a value calculated from the each kind of the primary modules or the backup modules after the update, the information being stored in the encryption information storage unit. 
     It should be noted that a method, apparatus, system, computer program, recording medium, data structure including a constitutional element, an expression, or a combination of the aforementioned aspects and/or features may be included in any of various exemplary embodiments of the present invention. 
     According to an exemplary embodiment, there may be provided an information processing apparatus, a method of software update, and/or an image processing apparatus capable of encrypting and decrypting information using values uniquely calculated from a booted primary module and a booted backup module with less efforts. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The aforementioned and other aspects, features, and advantages would be better understood from the following detailed description when read in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a drawing showing an exemplary configuration of a conventional information processing apparatus; 
         FIG. 2  is a sequence diagram showing an exemplary process of the information processing apparatus when the information processing apparatus is booted; 
         FIG. 3  is a drawing showing a process of storing a hash value in the TPM; 
         FIG. 4  is a drawing schematically showing a process of decrypting information using the TPM; 
         FIG. 5  is a drawing showing an exemplary configuration of a conventional information processing apparatus including the TPM; 
         FIG. 6  is a sequence diagram showing an exemplary process of the information processing apparatus when the information processing apparatus is booted; 
         FIG. 7  is a drawing schematically showing a problem having occurred during a ROM update process; 
         FIG. 8  is a drawing schematically showing a duplex system including a primary system and a backup system; 
         FIG. 9  is a drawing schematically showing a problem occurring when information is encrypted and decrypted using the TPM in a conventional information processing apparatus including the TPM; 
         FIG. 10  is a drawing schematically showing a problem occurring when ROM is updated while information is encrypted and decrypted using the TPM in a conventional information processing apparatus including the TPM; 
         FIG. 11  is a drawing showing an exemplary configuration of an information processing apparatus according to an embodiment of the present invention; 
         FIG. 12  is a drawing showing an exemplary module configuration of the disk of the information processing apparatus; 
         FIG. 13  is a drawing showing an exemplary module configuration in a root file system in the disk; 
         FIG. 14  is a sequence diagram showing a process of the information processing apparatus when the information processing apparatus is booted; 
         FIG. 15  is a diagram schematically showing a process of a ROM update; 
         FIG. 16  is a drawing schematically showing a process of an encryption key update; 
         FIG. 17  is a drawing showing another module configuration of the disk in the information processing apparatus; 
         FIG. 18  is a drawing showing an exemplary module configuration of the disk in the information processing apparatus according to an embodiment of the present invention; 
         FIG. 19  is a drawing showing information stored in the NVRAM of the information processing apparatus; 
         FIG. 20  is a drawing showing information stored in the HDD of the information processing apparatus; and 
         FIGS. 21 and 22  are drawings schematically showing a process of decrypting encrypted information in the NVRAM when the disk has crashed. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Next, best modes for carrying out the invention are described with reference to exemplary embodiments of the present invention and accompanying drawings. In the embodiments, an information processing apparatus such as a personal computer is described. However, the embodiment is not limited to such an information processing apparatus, and may be carried out in, for example, an image processing apparatus such as a Multi Function Peripheral (MFP). 
     [Embodiment 1 ] 
       FIG. 11  shows an exemplary configuration of an information processing apparatus according to an embodiment of the present invention. The information processing apparatus in  FIG. 11  includes a CPU  1 , a BIOS ROM  2 , a disk  3 , an NVRAM  4 , a main memory  5 , a TPM  7 , and a HDD  8  as a hardware configuration. The CPU  1 , the BIOS ROM  2 , the disk  3 , the NVRAM  4 , the main memory  5 , the TPM  7 , and the HDD  8  are connected to each other via the bus  6 . 
     The BIOS ROM  2  includes a BIOS  10  as a primary module and a BIOS  10   b  as a backup module. The NVRAM  4  stores plain text data  14  and encrypted data  15  that a user uses. The HDD  8  stores encrypted data  16 . 
       FIG. 12  shows an exemplary configuration of modules stored in the disk  3 . In  FIG. 12 , the disk  3  includes a loader  11 , a kernel  12 , and a root file system  13  as primary modules; a loader  11   b , a kernel  12   b , and a root file system  13   b  as backup modules; Blobs  60   a  through  60   h ; and an encrypted encryption key  62  for the NVRAM  4 . 
     The Blob  60   a  includes an encrypted key “A”. The Blob  60   b  includes an encrypted key “B”. The Blob  60   c  includes an encrypted key “C”. The Blob  60   d  includes an encrypted key “D”. The Blob  60   e  includes an encrypted key “A”. The Blob  60   f  includes an encrypted key “B”. The Blob  60   g  includes an encrypted key “C”. The Blob  60   h  includes an encrypted key “D”. 
     As a result, the Blob  60   a  and the Blob  60   e  have the same key “A”, the Blob  60   b  and the Blob  60   f  have the same key “B”, the Blob  60   c  and the Blob  60   g  have the same key “C”, and the Blob  60   d  and the Blob  60   h  have the same key “D”. 
     Further, hash values calculated based on a calculation method of generating a fixed-length pseudo random number from the BIOS  10  and  10   b  are stored into each “PCR 1 ” of the Blobs  60   a  and  60   e , respectively. In the same manner, the hash values calculated from the loader  11  and  11   b  are stored into each “PCR 2 ” of the Blobs  60   b  and  60   f , respectively. The hash values calculated from the kernel  12  and  12   b  are stored into each “PCR 3 ” of the Blobs  60   c  and  60   g , respectively. The hash values calculated from the root file system  13  and  13   b  are stored into each “PCR 4 ” of the Blobs  60   d  and  60   h , respectively. 
     With the configuration where Blobs  60   a  through  60   h  are provided as shown in  FIG. 12 , the keys A through D can be obtained when either primary modules or backup modules are booted in the boot path. Further, in the configuration where eight Blobs  60   a  through  60   h  are provided as shown in  FIG. 12 , the keys A through D can be obtained in any possible boot. The encryption key  62  for the NVRAM  4  is encrypted using the keys “A” through “D”. 
       FIG. 13  shows an exemplary module configuration of the root files systems  13  and  13   b  in  FIG. 12 . The module configuration of the root file systems  13  and the module configuration of the root file systems  13   b  are identical. An explanation of the root files systems  13  is described below, and an explanation of the root files systems  13   b  is omitted. 
     The root file system  13  manages a boot program  21 , a ROM update flag control program  22 , a blob decryption section  23 , an application  24 , a blob update program  25 , and an encryption key update program  26  that are stored in the disk  3 . 
     The boot program  21  boots the application  24  in the root file system  13 . The ROM update flag control program  22  controls the boot path defining a boot flow. The blob decryption section  23  acquires the keys “A” through “D” from the Blobs  60   a  through  60   h  using the TPM  7 . The blob update program  25  controls the update of the Blobs  60   a  through  60   h . The encryption key update program  26  controls the update of the encryption key  62  for the NVRAM  4 . 
     Referring back to  FIG. 11 , when each kind of the primary or backup modules of the BIOS  10  or the BIOS  10   b , the loader  11  or the loader  11   b , the kernel  12  or the kernel  12   b , and the root file system  13  or the root file system  13   b  is booted, the hash values of the modules used for the boot are accordingly stored in the “PCR 1 ” through “PCR 4 ”, respectively, of the TPM  7 . 
     That is, the hash value calculated from the BIOS  10  or  10   b  is stored in the “PCR 1 ” of the TPM  7 ; the hash value calculated from the loader  11  or  11   b  is stored in the “PCR 2 ” of the TPM  7 ; the hash value calculated from the kernel  12  or  12   b  is stored in the “PCR 3 ” of the TPM  7 ; and the hash value calculated from the root file system  13  or  13   b  is stored in the “PCR 4 ” of the TPM  7 . 
     The modules including the BIOS  10  and  10   b , the loader  11  and  11   b , the kernel  12  and  12   b , and the root file system  13  and  13   b  are loaded into the main memory by the CPU  1  and executed. In the following descriptions, the modules including the BIOS  10  and  10   b , the loader  11  and  11   b , the kernel  12  and  12   b , and the root file system  13  and  13   b  are described as processing subjects, for explanation purposes. 
     Next, a boot sequence of the information processing apparatus in  FIG. 11  is described with reference to  FIG. 14 .  FIG. 14  is a sequence diagram showing an exemplary booting process of the information processing apparatus according to an embodiment of the present invention. It is assumed that the hash value of the BIOS  10  is already stored in the “PCR 1 ” of the TPM 7  before step S 41  in  FIG. 14 . 
     In step S 41 , BIOS loads the loader  11 . In step S 42 , the hash value of the loader  11  is stored in the “PCR 2 ” of the TPM  7 . In step S 43 , the BIOS boots the loader  11 . 
     In step S 44 , the loader  11  loads the kernel  12 . In step S 45 , the hash value of the kernel  12  is stored in the “PCR 3 ” of the TPM  7 . In step S 46 , the loader loads the root file system  13 . In step S 47 , the hash value of the root file system  13  is stored in the “PCR 4 ” of the TPM  7 . 
     In step S 48 , the loader  11  boots the kernel  12  and the root file system  13 . In step S 49 , the kernel  12  boots the boot program  21  in the root file system  13 . In steps S 50  and S 51 , the boot program  21  boots the blob decryption section  23  and the application  24 , respectively, in the root file system  13 . 
     In step S 52 , the blob decryption section  23  acquires the keys “A” through “D” from the blobs  60   a  through  60   d , respectively, using the TPM  7 . In step S 53 , the blob decryption section  23  decrypts the encrypted encryption key  62  for the NVRAM  4  using the acquired keys “A” through “D”. In step S 54 , the application is now capable of writing encrypted data  15  into the NVRAM  4  and reading encrypted data in the NVRAM  4  using the decrypted encryption key  62 . 
     In the following, a specific process of ROM update and encryption key update in the information processing apparatus in  FIG. 11  is described. 
     (ROM Update) 
       FIG. 15  is a diagram schematically showing a process of the ROM update.  FIG. 15  shows an example where the kernel  12  is updated to a new kernel  12   a . First, the ROM update flag control program  22  changes the boot path indicating the procedure of the boot from BIOS  10 →loader  11 →kernel  12 →root file system  13  to BIOS  10 →loader  11 →kernel  12   b →root file system  13 . Then by rebooting the information processing apparatus, the BIOS  10 , the loader  11 , the kernel  12   b , and the root file system  13  are booted accordingly. 
     In step S 61 , the kernel  12  is replaced by the new kernel  12   b . In step S 62 , the blob decryption section  23  acquires the key “C” from the Blob  60   c  using the TPM  7  in the same manner as described above. 
     In step S 63 , the blob update program  25  generates a hash value calculated from the new kernel  12   a . In step S 64 , the blob update program  25  generates a new Blob  60   i  including the generated hash value. In step S 65 , the blob update program  25  replaces the Blob  60   c  by the generated Blob  60   i . Then, the ROM update flag control program  22  restores the boot path to BIOS  10 →loader  11 →kernel  12 →root file system  13 . 
     During the process of the ROM update shown in  FIG. 15 , even when the update process from the Blob  60   c  to the Blob  60   i  is interrupted for some reason, since the same key “C” is stored in the Blob  60   g , the key “C” can be acquired from the Blob  60   g . As a result, the encrypted encryption key  62  for the NVRAM  4  can be decrypted by using the acquired keys “A” through “D”, and accordingly, the encrypted data in the NVRAM  4  can be decrypted. 
     (Encryption Key Update) 
       FIG. 16  is a diagram schematically showing a process of the encryption key update. In step S 71 , the encryption key update program  26  creates a backup copy of the encrypted data  15  in the NVRAM  4  and stores the created backup copy in the disk  3 . In step S 72 , the blob decryption section  23  acquires the keys “A” through “D” from the Blobs  60   a  through  60   d , respectively, corresponding to the boot path. In step S 73 , the encryption key update program  26  encrypts an encryption key  62   a  for the NVRAM  4  using the acquired keys “A” through “D”, and stores the encrypted encryption key  62   a  in the disk  3 . 
     In step S 74 , the blob decryption section  23  decrypts the encrypted encryption key  62  using the keys “A” through “D”, and acquires the decrypted encryption key  62 . In step S 75 , the encryption key update program  26  decrypts the encrypted data  15  stored in the NVRAM  4  using the decrypted encryption key  62 . In step S 76 , the encryption key update program  26  encrypts the decrypted encrypted data  15  again using the new encryption key  62   a  for the NVRAM  4 . 
     In step S 77 , the encryption key update program  26  deletes the encrypted data  15  stored in the disk  3  as a backup copy in step S 71 . In step S 78 , the encryption key update program  26  further deletes the encrypted encryption key  62  for the NVRAM  4  stored in the disk  3 . 
     During the above process of the encryption key update shown in  FIG. 16 , even when the update from the encryption key  62  to the new encryption key  62   a  is interrupted, since the copy of the encrypted data  15  is stored in the disk  3  as a backup, it is possible to perform the process of the encryption key update again. 
     (Another Configuration of the Disk  3 ) 
       FIG. 17  shows another exemplary module configuration in the disk  3 . The disk  3  in  FIG. 17  includes primary modules of the loader  11 , the kernel  12 , and the root file system  13 ; backup modules of the loader  11   b , the kernel  12   b , the root file system  13   b ; and Blobs  60   a  through  60   c ,  60   e  through  60   g ,  60   j , and  60   k.    
     The Blob  60   a  includes the encrypted key “A”. 
     The Blob  60   b  includes the encrypted key “B”. The Blob  60   c  includes the encrypted key “C”. The Blob  60   e  includes the encrypted key “A”. The Blob  60   f  includes the encrypted key “B”. The Blob  60   g  includes the encrypted key “C”. The Blob  60   j  includes the encrypted encryption key  62  for the NVRAM 4 , the encryption key  62  being encrypted using the keys “A” through “C”. The Blob  60   k  includes the encrypted encryption key  62  for the NVRAM 4 , the encryption key  62  being encrypted using the keys “A” through “C”. 
     That is, the module configuration in  FIG. 17  is different from that in  FIG. 12  in that, unlike the Blobs  60   d  and  60   h , the Blobs  60   j  and  60   k  have the encrypted encryption key  62  for the NVRAM 4  encrypted by using the keys “A” through “C”. Because of this configuration, for example, the blob decryption section  23  acquires the keys “A” through “C” and the encrypted encryption key  62  for the NVRAM  4  from the Blobs  60   a  through  60   c  and  60   j , respectively, and decrypts the acquired encrypted encryption key  62  for the NVRAM  4  using the acquired keys “A” through “C”. As a result, the encrypted data  15  in the NVRAM  4  can be decrypted. 
     [Embodiment 2] 
     In the information processing apparatus in above embodiment, should the disk  3  crash, since the encryption key  62  for the NVRAM  4  is to be lost, the encrypted data  15  in the NVRAM  4  can no longer be decrypted. To solve this problem, in an information processing apparatus according to this embodiment 2, a mechanism may be provided that permits decrypting the encrypted data  15  in the NVRAM  4  even when the disk  3  crashes. 
     In the information processing apparatus in this embodiment 2, the module configuration of the disk  3  and the information stored in the NVRAM  4  and the HDD  8  are different from those in embodiment 1.  FIG. 18  shows an exemplary module configuration of the disk  3  in this embodiment. The disk  3  in  FIG. 18  includes the primary modules of the loader  11 , the kernel  12 , the root file system  13 , and the root file system  13 ; backup modules of the loader  11   b , the kernel  12   b , the root file system  13   b ; Blobs  60   a  through  60   d  and  60   l ; and the encrypted encryption key  62  for the NVRAM  4 . It should be noted that in the information processing apparatus in this embodiment 2, the ROM update for the backup modules of the loader  11   b , the kernel  12   b , the root file system  13   b  is not to be performed after the shipment. 
     The Blob  60   a  includes the encrypted key “A”. The Blob  60   b  includes the encrypted key “B”. The Blob  60   c  includes the encrypted key “C”. The Blob  60   d  includes the encrypted key “D”. The Blob  601  includes the encrypted encryption key  62  for the NVRAM  4 . 
     In this configuration, the encryption key  62  for the NVRAM  4  can be decrypted and obtained using the keys “A” through “D” from the Blobs  60   a  through  60   d , respectively, and can be obtained from the Blob  601  corresponding to the boot path of BIOS  10   b →loader  11   b →kernel  12   b →root file system  13   b.    
     Further, in the information processing apparatus in this embodiment 2, the Blob  601  is stored in the NVRAM  4  and the HDD  8  as shown in  FIGS. 19 and 20  so as to respond to the crash of the disk  3 .  FIGS. 19 and 20  show the configuration of the information stored in the NVRAM  4  and the HDD  8 , respectively. 
       FIGS. 21 and 22  are drawings showing a process of decrypting the encrypted data  15  in the NVRAM  4 . In step S 81 , primary modules of the loader  11 , the kernel  12 , the root file system  13 , and the backup modules of the loader  11   b , the kernel  12   b , the root file system  13   b  are installed in the disk  3 . 
     In step S 82 , the ROM update flag control program  22  turns ON a backup flag  71  in the encrypted data  15  in the NVRAM  4 . In step S 83 , the information processing apparatus reboots in a backup mode. 
     In step S 84 , the information processing apparatus boots the loader  11   b , the kernel  12   b , the root file system  13   b  (backup mode). In step S 85 , the blob update program  25  creates a copy of the Blob  601  stored in the NVRAM  4  and stores the created copy in the disk  3 . In step S 86 , the blob update program creates new keys “A” through “D”. 
     In step S 87 , the blob update program  25  creates Blobs  80   a  through  80   d  including the keys “A” through “D”, respectively. In step S 88 , the blob update program  25  stores the created blobs  80   a  through  80   d  in the disk  3 . In step S 89 , the blob decryption section  23  acquires the encryption key  62  from the Blob  601  stored in the NVRAM  4 . 
     In step S 90 , the encryption key update program  26  encrypts the encryption key  62  using the keys “A” through “D” and stores the encrypted encryption key  62  in the disk  3 . In step S 91 , the ROM update flag control program  22  turns OFF the backup flag  71  in the encrypted data  15  in the NVRAM  4 . 
     In the process shown in  FIGS. 21 and 22 , even when the disk  3  crashes, the encryption key  62  can be acquired from the Blob  601  stored in the NVRAM  4 , the Blob  601  corresponding to the boot path of BIOS  10   b →loader  11   b →kernel  12   b →root file system  13   b . As a result, the encrypted data  15  in the NVRAM  4  can be decrypted. 
     The present invention is not limited to the above-mentioned embodiments, and variations and modifications may be made without departing from the scope of the present invention. 
     It should be noted that the terms “value storage unit”, “encryption information storage units”, “information decryption unit”, and “encryption information update unit” described in claims herein correspond to the TPM  7 , the Blobs  60   a  through  60   l , the blob decryption section  23 , and the blob update program  25 , respectively. 
     The present application is based on and claims the benefit of priority of Japanese Patent Application No. 2007-067250, filed on Mar. 15, 2007, the entire contents of which are hereby incorporated by reference.