Abstract:
A data processing apparatus for managing an information file to be utilized when contents are used is provided. The data processing system includes an update information file creator for creating an update information file on the basis of an information file including multiple kinds of data stored in a predetermined file storage area to be stored in the predetermined file storage area, a first digest calculator for calculating a digest value from the update information file created by the update information file creator, a digest updater for updating a digest value stored in a predetermined digest value storage area to the digest value calculated by the first digest calculator, a file eraser for erasing the information file used to create the update information file, and a first file setter for setting the update information file as an information file.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    The present disclosure relates to subject matter contained in Japanese Patent Application No. 2006-145807, filed on May 25, 2006, the disclosure of which is expressly incorporated herein by reference in its entirety. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates to a data processing apparatus and a data processing method for utilizing contents by using a bundle of decrypt keys. In particular, the present invention relates to a data processing apparatus and a data processing method in which a recovery function when an update process for a file including a bundle of decrypt keys is interrupted is provided. 
         [0004]    2. Description of the Related Art 
         [0005]    Heretofore, it is widely used to deliver contents, such as music data and image data, via a communication network such as the Internet. In recent years, in a field of delivery of contents, it has been proposed a content reproducing system for delivering a bundle of decrypt keys including a plurality of decrypt keys when a plurality of encoded contents are to be delivered (for example, see Japanese Patent Application Publications No. 2002-74832, No. 2001-75868 and No. 2001-51906). In the content reproducing system, the respective encoded contents can be decoded using the plurality of decrypt keys. 
         [0006]    Information relating to corresponding contents may be added to a decrypt key. As the added information, for example, information that may be changed every moment, such as a reproduction number counter and a permitted reproduction period of time, may be mentioned. The added information is information for preventing falsification and the like by a malicious user. The added information is treated as information to be protected. As a system of the protection, for example, as shown in  FIG. 13 , in a client machine, a digest value is created from information, which is a target of the protection stored in a user data area section, using a transformation function such as a Hush function (digest calculator). In the client machine, it is conceivable that the created digest value is encoded using a medium ID (IDm) of a system area section as an encryption key, and that the created digest value is stored in a protected area provided for the purposes of preventing falsification and the like by a malicious user. In this case, as shown in  FIG. 14 , a digest value calculated from an information file stored in the user data area section within a data storage section may be checked against a digest value obtained by decoding encoded data that is likewise stored in the protected area of the data storage section using the medium ID (IDm) of the system area section as an encryption key. Further, in the case where a check result is concordance, it may be determined that the information file in the user area section is constituted from regular data, which have not suffered falsification or the like by a malicious user yet. 
         [0007]    However, such a protection system as described above requires two steps when a digest value of an information file is to be updated in which one step is to update an information file itself and another step is to update a digest value thereof. For this reason, there has been a problem that the information file cannot be restored to an original state thereof in the case where an update process for an information file is interrupted before the update process for the digest value is completed. 
       SUMMARY OF THE INVENTION 
       [0008]    The present invention is made in view of the problem mentioned above. It is one object of the present invention to provide a data processing apparatus and a data processing method which can restore an information file even in the case where an update process for the information file is interrupted before the update process is completed. 
         [0009]    In order to achieve the above object, an aspect of the present invention is directed to a data processing apparatus for managing an information file to be utilized when contents are used. The data processing apparatus of the present invention includes a first update information file creator for creating an update information file on the basis of an information file stored in a predetermined file storage area, and for storing the created update information file in the predetermined file storage area. 
         [0010]    The data processing apparatus also includes a first digest calculator for calculating a digest value from the update information file created by the first update information file creator. 
         [0011]    The data processing apparatus also includes a digest updater for updating a digest value stored in a predetermined digest value storage area to the digest value calculated by the first digest calculator. 
         [0012]    The data processing apparatus also includes a file eraser for erasing the information file used to create the update information file. 
         [0013]    The data processing apparatus also includes a first file setter for setting the update information file as an information file. 
         [0014]    According to the data processing apparatus of the present invention, it is possible to execute an update process for a protected information file so as to be recoverable even in the case where the update process is interrupted without completing the update process. 
         [0015]    Further, it is preferable that the data processing apparatus of the present invention further includes: a second digest calculator for reading out the information file stored in the predetermined file storage area, the second digest calculator calculating a digest value from the read out information file; a first digest checker for checking the digest value calculated by the second digest calculator against the digest value stored in the predetermined digest value storage area; a second update information file creator for creating an update information file on the basis of the information file stored in the predetermined file storage area in the case where a check result of the first digest checker is not concordance; a third digest calculator for calculating a digest value from the update information file created by the second update information file creator; a second digest checker for checking the digest value calculated by the third digest calculator against the digest value stored in the predetermined digest value storage area; and a second file setter for setting the update information file as an information file in the case where a check result of the second digest checker is concordance. 
         [0016]    According to the data processing apparatus of the present invention, it is possible to recover a protected information file in the case where an update process for the protected information file is interrupted without completing the update process. 
         [0017]    Moreover, in one embodiment of the present invention, it is preferable that the method further includes creating an update information file on the basis of an information file stored in a predetermined file storage area, and storing the created update information file in the predetermined file storage area. 
         [0018]    The method also includes calculating a digest value from the update information file created in the creating an update information file step. 
         [0019]    The method also includes updating a digest value stored in a predetermined digest value storage area to the digest value calculated in the calculating a digest value step. 
         [0020]    The method also includes erasing the information file used to create the update information file. 
         [0021]    The method also includes setting the update information file as an information file. 
         [0022]    According to the data processing method of the present invention, it is possible to execute an update process for a protected information file so as to be recoverable even in the case where the update process is interrupted without completing the update process. 
         [0023]    Further, it is preferable that the method of the present invention includes: reading out an information file stored in the predetermined file storage area, and calculating a digest value from the read out information file; checking the digest value calculated from the read out information file against the digest value stored in the predetermined digest value storage area; creating an update information file on the basis of the information file stored in the predetermined file storage area in the case where a check result in the checking the digest value calculated from the read out information file step is not concordance; calculating a digest value from the created update information file; checking the digest value calculated from the update information file against the digest value stored in the predetermined digest value storage area; and setting the update information file as an information file in the case where a check result in the checking the digest value calculated from the update information file step is concordance. 
         [0024]    According to the data processing method of the present invention, it is possible to recover a protected information file in the case where an update process for the protected information file is interrupted without completing the update process. 
         [0025]    Therefore, according to the present invention, it is possible to execute an update process for a protected information file so as to be recoverable even in the case where the update process is interrupted without completing the update process. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0026]    The foregoing and other objects, features and advantages of the present invention will become more readily apparent from the following detailed description of preferred embodiments of the present invention that proceeds with reference to the appending drawings. 
           [0027]      FIG. 1  is a block diagram that illustrates a constructive example of a part according to a data updating process in a data processing system to which the present invention is applied. 
           [0028]      FIG. 2  is a flowchart that illustrates an example of the data updating process that the data processing system executes. 
           [0029]      FIG. 3  is an explanatory drawing that shows an outline of the data updating process that the data processing system executes. 
           [0030]      FIG. 4  is an explanatory drawing that shows an outline of the data updating process that the data processing system executes. 
           [0031]      FIG. 5  is an explanatory drawing that shows an outline of the data updating process that the data processing system executes. 
           [0032]      FIG. 6  is an explanatory drawing that shows an outline of the data updating process that the data processing system executes. 
           [0033]      FIG. 7  is a block diagram that illustrates a constructive example of a part according to a data restoring process in the data processing system to which the present invention is applied. 
           [0034]      FIG. 8  is a flowchart that illustrates an example of the data restoring process that the data processing system executes. 
           [0035]      FIG. 9  is an explanatory drawing that shows an outline of the data restoring process that the data processing system executes. 
           [0036]      FIG. 10  is an explanatory drawing that shows an outline of the data restoring process that the data processing system executes. 
           [0037]      FIG. 11  is an explanatory drawing that shows an outline of the data restoring process that the data processing system executes. 
           [0038]      FIG. 12  is an explanatory drawing that shows an outline of the data restoring process that the data processing system executes. 
           [0039]      FIG. 13  is an explanatory drawing that shows an outline of a conventional process for writing an information file. 
           [0040]      FIG. 14  is an explanatory drawing that shows an outline of a conventional process for verifying an information file. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0041]    Preferred embodiments of a processing apparatus, a data processing method and a data processing computer program product, that is, a data processing system according to the present invention will now be described in detail with reference to the appending drawings.  FIG. 1  is a block diagram that illustrates a constructive example of a part according to a data updating process in a data processing system  100 . As shown in  FIG. 1 , the data processing system  100  is constructed from an information processing apparatus such as a personal computer. The data processing system  100  includes a client machine  10  and a data memory section  20 . 
         [0042]    The client machine  10  includes a digest encoder  11 , a file manager  12 , a file updater  13 , a digest calculator  14 , and an interface section (I/F section)  15 . The interface section  15  is used to access the data memory section  20 . The data memory section  20  includes a system area section  21 , a protected area section  22 , a user data area section  23 , and an interface section (I/F section)  24 . A medium ID that is a medium identifier of a data storage section  20  is stored in the system area section  21 . An encoded digest value that is encoded by the digest encoder  11  in the client machine  10  is stored in the protected area section  22 . An information file and/or an update information file in which the information file is updated are stored in the user data area section  23 . The interface section  24  is used to access the client machine  10 . 
         [0043]    The protected area section  22  is an area that is hardly accessed in which tamper resistance is heightened. Access to the protected area section  22  is limited by executing a certification process between the data memory section  20  and the client machine  10  or the like in advance. The user data area section  23  is not provided with such access limitation, in particular. However, in the protected area section  22 , the tamper resistance may not be an essential condition for the protected area. 
         [0044]    In this regard, in the present embodiment, the term “Data n” means n th  information. Further, the term “Dn” (here, “n”=1, 2 . . . ) means a digest value created from an information file by means of the digest calculator  14 . Moreover, the term “IDm” means a medium identifier (medium ID) of the “m” data storage section  20 . Furthermore, the term “Enc_x (A, B)” means encoded data in which information “B” is encoded using key information “A” in an encryption method “x”. 
         [0045]    Next, a data update process that the data processing system  100  according to the present embodiment may execute will now be described with reference to  FIGS. 2 to 6 .  FIG. 2  is a flowchart that illustrates an example of the data updating process that the data processing system  100  executes.  FIG. 3  is an explanatory drawing that shows an outline of the data updating process that corresponds to Steps S 101  to S 103  of the flowchart in  FIG. 2 .  FIG. 4  is an explanatory drawing that shows an outline of the data updating process that corresponds to Steps S 104  to S 105  of the flowchart in  FIG. 2 .  FIG. 5  is an explanatory drawing that shows an outline of the data updating process that corresponds to Step S 106  of the flowchart in  FIG. 2 .  FIG. 6  is an explanatory drawing that shows an outline of the data updating process that corresponds to Step S 107  of the flowchart in  FIG. 2 . 
         [0046]    In the data update process, the file updater  13  first reads out an information file stored in the user data area section  23  (Step S 101 ). When an update information file is created by updating the contents of the information file by a user who operating the client machine  10  (Step S 102 ), the file updater  13  stores the update information file in the user data area section  23  (Step S 103 ). In this regard, the term “update information file” means an information file after being subjected to an update process. 
         [0047]    Subsequently, the digest calculator  14  reads out the update information file stored in the user data area section  23 , and executes a calculation for a digest value D 2  with respect to the update information file (Step S 104 ). The digest encoder  11  reads out a medium ID (IDm) from the system area section  21  of the data memory section  20  via the interface section  24 . The digest encoder  11  also receives a digest value D 2  from the digest calculator  14  to calculate an encoded digest value Enc_d (IDm, D 2 ). The digest encoder  11  then overwrites the calculated encoded digest value Enc_d (IDm, D 2 ) as described above onto an encoded digest value Enc_d (IDm, D 1 ) stored in the protected area section  22  (Step S 105 ). In this regard, the term “Enc_d (A, B)” means encoded data in which information “B” is encoded using a function “d” as key information “A”. 
         [0048]    Subsequently, the file manager  12  erases the information file before the update process (Step S 106 ). The file manager  12  then updates the update information file as an information file after update (Step S 107 ). When the update information file is updated to the information file, the data update process (that is, file update) is completed. 
         [0049]    As described above, the data processing system  100  is constructed so that: an update information file is created on the basis of an information file including multiple pieces of data “1” to data “n”, which are stored in the user data area section  23 , to be stored in the user data area section  23 ; a digest value D 2  is calculated from the created update information file; a digest value D 1  stored in the protected area section  22  is updated to the calculated digest value D 2 ; the information file used to create the update information file is erased; and the update information file is set as an information file. Thus, it is possible to execute an update process for a protected information file so as to be recoverable even in the case where the update process is interrupted without completing the update process. 
         [0050]      FIG. 7  is a block diagram that illustrates a constructive example of a part according to a data restoring process in a data processing system  100 . A client machine  10  includes, as a part for the data restoring process, a digest decoder  16 , a digest calculator  14 , a digest checker  17 , and an interface section (I/F section)  15 . The interface section  15  is used to access a data memory section  20 . 
         [0051]    Next, a data restoring process that the data processing system  100  according to the present embodiment may execute will now be described with reference to  FIGS. 8 to 12 .  FIG. 8  is a flowchart that illustrates an example of the data restoring process that the data processing system  100  executes.  FIGS. 9 to 12  are explanatory drawings that show an outline of the data restoring process in accordance with a memory state of the data memory section  20 . The data restoring process is executed when a data update process is interrupted, when there is an instruction from an operator, and the like, for example. 
         [0052]      FIG. 9  shows a process of the data processing system  100  when the data memory section  20  is in a normal state (that is, in the case where the process when updating a digest value of an information file is normally completed without interruption). In the data restoring process, the digest calculator  14  first reads out an information file stored in the user data area section  23  (Step S 201 ). In the case where it is determined that there is an information file (“Yes” at Step S 202 ), the digest calculator  14  calculates a digest value D 1  for the read out information file (Step S 203 ). On the other hand, the digest decoder  16  reads out an encoded digest value Enc_d (IDm, D 1 ) that is stored in the protected area section  22  in advance and a medium ID (IDm) stored in the system area section  21 . The digest decoder  16  then obtains a digest value D 1  by decoding the read out encoded digest value uding the medium ID (IDm) (Step S 204 ). In this regard, the term “Enc_d (A, B)” means encoded data in which information “B” is encoded using a function “d” as key information “A”. 
         [0053]    The digest checker  17  respectively obtains the digest values from the digest calculator  14  and the digest decoder  16  to check the digest values (Step S 205 ). In the case where the digest values that are comparison subjects are concordance to each other (“Yes” at Step S 206 ), the digest checker  17  determines that the information file stored in the data memory section  20  is correct (Step S 207 ). The data restoring process is terminated without executing a restoring process. 
         [0054]      FIG. 10  is an explanatory drawing that shows an outline of a process of the data processing system  100  in the case where the data restoring process is executed from the state that the data update process for the information file is interrupted at a situation as shown in  FIG. 3  (Steps S 101  to S 103 ). In this case, the processes similar to those described above as shown in  FIG. 9  (that is, Steps S 201  to S 207 ) are executed. In this example, the digest checker  17  also determines that the digest value D 1  obtained by decoding the encoded digest value stored in the protected area section  22  is concordance to (or corresponds with) the digest value obtained from the information file (“Yes” at Step S 206 ). The digest checker  17  thereby determines that the information file stored in the user data area section  23  of the data memory section  20  is correct (Step S 207 ). Further, in this example, although the update information file exists in the user data area section  23 , the digest checker  17  determines that the update information file is not utilized for the data restoring process. 
         [0055]      FIG. 11  is an explanatory drawing that shows an outline of a process of the data processing system  100  in the case where the data restoring process is executed from the state that the data update process for the information file is interrupted at a situation as shown in  FIG. 4  (Steps S 104  and S 105 ). In this case, after executing the processes of Steps S 201  to S 205  as described above, the digest checker  17  determines that the digest value obtained by decoding the encoded digest value stored in the protected area section  22  of the data storage section  20  using the medium ID (IDm) is not concordance to (or does not correspond with) the digest value calculated for the information file (“No” at Step S 206 ). The digest checker  17  thereby determines that the information file stored in the data memory section  20  is incorrect. The digest calculator  14  then reads out the update information file stored in the user data area section  23  (Step S 208 ) to calculate a digest value D 2  (Step S 209 ). Next, the digest checker  17  checks the digest value decoded at Step S 204  against the digest value included in the update information file (Step S 210 ). In this example, at Step S 204 , it is executed the processes in which the digest encoder  16  reads out an encoded digest value Enc_d (IDm, D 2 ) and a medium ID (IDm), and decodes the encoded digest value to obtain a digest value D 2 . 
         [0056]    Then, when the digest checker  17  confirms that the digest values that are comparison subjects are concordance to each other (“Yes” at Step S 211 ), the digest checker  17  determines that the update information file stored in the user data area section  23  is a correct value (Step S 212 ). The processing flow then proceeds from Step S 104  (see  FIG. 2 ) that corresponds to a process after the data update process for the information file described above. 
         [0057]      FIG. 12  is an explanatory drawing that shows an outline of a process of the data processing system  100  in the case where the data restoring process is executed from the state that the data update process for the information file is interrupted at a situation as shown in  FIG. 5 . In this case, since there is no information file, the digest decoder  16  determines “No” at Step S 202  described above. Thus, the processing flow proceeds to Step S 208 . The digest calculator  14  then reads out the update information file stored in the user data area section  23  (Step S 208 ) to calculate a digest value D 2  (Step S 209 ). In this case, the digest decoder  16  reads out an encoded digest value Enc_d (IDm, D 2 ) and a medium ID (IDm), and it is executed the process in which the digest decoder  16  decodes the encoded digest value to obtain a digest value D 2 . Next, the digest checker  17  checks the digest value thus decoded against the digest value included in the update information file (Step S 210 ). 
         [0058]    Then, when the digest checker  17  confirms that the digest values of comparison subjects are concordance to each other (“Yes” at Step S 211 ), the digest checker  17  determines that the update information file stored in the user data area section  23  is a correct value (Step S 212 ). The processing flow then proceeds from Step S 104  (see  FIG. 2 ) that corresponds to a process after the data update process for the information file described above. 
         [0059]    In the present embodiment, in the case where it is confirmed that the digest values of the information files are not concordance to each other (“No” at Step S 211 ), each of the information file and the update information file is treated as a file that may have suffered falsification. 
         [0060]    The execution of the processes as described above allows an information file to be restored to either the information file before or after the data update process even in the case where the data update process is interrupted at any point of time in the data update process. Namely, for example, the data processing system  100  is constructed so that: the digest updater  13  reads out the information file stored in the user data area section  23 ; the digest calculator  14  calculates a digest value from the read out information file; the digest checker  17  checks the calculated digest value against the digest value stored in the protected area section  22 ; the digest calculator  14  calculates a digest value from the update information file remaining in the user data area section  23  in the case where the check result is not concordance (that is, the digest values are not concordance to each other); the digest checker  17  checks the calculated digest value against the digest value stored in the protected area section  22 ; and the file manager  12  sets the update information file as an information file in the case where the check result is concordance (that is, the digest values are concordance to each other). Thus, it is possible to recover a protected information file in the case where a data update process for the protected information file is interrupted without completing the data update process. 
         [0061]    In this regard, although it has not referred to in the embodiment described above, each section constituting the data processing system  100  executes the respective processes described above in accordance with a data processing program installed in the inside of the data processing system  100 . In addition, although an assembly of the client machine  10  and the data memory section  20  is expressed as the data processing system  100  in the embodiment described above, the present invention is not limited to such a system. For example, the assembly of the client machine  10  and the data memory section  20  may be expressed as an apparatus. 
         [0062]    Further, in the embodiment described above, the data processing system  100  is constructed so that the digest value is encoded and then stored in the protected area section  22 . However, the digest value may be stored in the protected area section  22  as it is without being encoded. 
         [0063]    Moreover, the calculation method for the digest value at Step S 211  may include a method of indirectly obtaining an effect to prevent falsification by calculating a digest value on the basis of check data information, such as a key to encode information for which a user hopes to prevent falsification and a check sum of information for which a user hopes to prevent falsification.