WO2015045173A1 - デジタルデータ編集制御方法、装置、及びプログラム、及びコンピュータ可読記憶媒体 - Google Patents

デジタルデータ編集制御方法、装置、及びプログラム、及びコンピュータ可読記憶媒体 Download PDF

Info

Publication number
WO2015045173A1
WO2015045173A1 PCT/JP2013/076607 JP2013076607W WO2015045173A1 WO 2015045173 A1 WO2015045173 A1 WO 2015045173A1 JP 2013076607 W JP2013076607 W JP 2013076607W WO 2015045173 A1 WO2015045173 A1 WO 2015045173A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
partial
signature
partial content
content
Prior art date
Application number
PCT/JP2013/076607
Other languages
English (en)
French (fr)
Inventor
惠市 岩村
稲村 勝樹
Original Assignee
惠市 岩村
稲村 勝樹
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 惠市 岩村, 稲村 勝樹 filed Critical 惠市 岩村
Priority to PCT/JP2013/076607 priority Critical patent/WO2015045173A1/ja
Publication of WO2015045173A1 publication Critical patent/WO2015045173A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Definitions

  • the present invention relates to a technique for verifying whether digital data has been properly edited.
  • the present invention relates to a copyright protection technology that enables digital content editing while protecting the copyright when the data is digital content.
  • the present invention also relates to a technique that can verify whether digital content editing has been performed within the permitted range of the author.
  • a game character has a system in which a user changes and enjoys the original character. That is, there is a system that encrypts the data of the character and cannot decrypt it other than the game machine of the manufacturer, and does not consider use in other games or distribution to the general public.
  • a mechanism is limited to a specific game and cannot be used in an open system such as a viewer participation type content. Further, such a game machine cannot change the permission regarding editing originally given by the manufacturer or the game creator, and there is no concept that anyone can verify the editing result.
  • conventional sanitary signatures conceal information by replacing the target data with the hash value (default value) of the data, and the hash value is used for signature verification to ensure the authenticity of the data. Can show.
  • the target data is replaced with data different from the hash value of the data, so that the hash value used for signature verification cannot be held. That is, in the sanitized example, the hash value of the sanitized part can be used as it is in the verification, but in the modified example, the verification fails because the stored signature information and the hash value of the changed part are different.
  • the addition control is a control as to whether or not data is added between existing data. Since the data to be added does not exist in the existing data, an individual signature cannot be set as it is. So, if you have control information indicating whether or not you can add to the existing data before and after the position you want to add, if either (or both) of the data before or after that is deleted, that control information will also be deleted, Cannot verify whether to add.
  • the data in the deleted state cannot be controlled because the electronic signature is deleted in the deleted state. Therefore, it is possible to add different data to the data position in the deleted state. That is, it can be said that the data in the deletion state by the electronic signature is not in the control state because the electronic signature as the control information is also deleted.
  • control there are two types of control: deleting the deleted data as it is, and inserting new data at the deleted data position. Therefore, a technology that can control these is desired.
  • the digital content is divided into a plurality of partial data according to the unit to be controlled, and the author generates an electronic signature for the partial data and publishes the digital content together with the signature.
  • the editor edits the partial data of the published content, changes the digital signature for the partial data and republishes it, and the verifier verifies the integrity of the digital signature generated by the author and the editor. By doing so, it is possible to verify whether or not the legitimate editing is performed, and to provide a mechanism capable of realizing the control of permitting viewing when the legitimate editing is performed and not permitting viewing when the legitimate editing is not performed.
  • the partial data that is in the deletion state due to its consistency can retain the deletion state due to the consistency of the signature, and the partial data can be inserted again.
  • a control mechanism is given so that it can be selected.
  • the author generates an electronic signature for the data for controlling the addition of partial data
  • the editor changes / adds the electronic signature for the addition of data
  • the verifier generates it by the author and the editor. Even when verifying the consistency between the added content and the electronic signature, the added data is provided with a mechanism that can be edited and controlled by the electronic signature like other existing data.
  • the edit control refers to the control of [changeable / not possible] [can be deleted / disabled] for the partial data existing in the digital content, and the control of [can be added / disabled] for the additional part.
  • the signature and content will not match. That is, if the editor performs a process contrary to the author's intention, the signature and the content do not match, so that the content can be made unplayable.
  • the editor can claim the copyright of the part edited by himself / herself by his / her digital signature, and the intention of the editor is reflected in subsequent editing.
  • the editor of the nth-order work performs a process contrary to the intention of the author / editor up to the n-1th-order edited work, the contents cannot be reproduced because the signature and the contents do not match. It can be.
  • the above can be realized as an open system, and anyone can verify the validity of content generation.
  • FIG. 3 is a block diagram of an author terminal 12.
  • FIG. It is a flowchart which shows the production processing routine of content control data. It is a flowchart which shows the subroutine of the input process (step 40) in FIG. It is a flowchart which shows a part of subroutine of the production process (step 42) of the control data in FIG. It is a flowchart which shows the remainder of the subroutine of the production process (step 42) of the control data in FIG. It is a figure which shows control data, various tables, and an aggregate. It is a flowchart which shows the edit process routine which the editor terminal 14 performs.
  • (A) shows the contents of the control state (a), and (b) shows the subroutine of the process of step 112 when the control state (a) is specified for the control state to be edited (step 110 is affirmative).
  • step 10 is a flowchart showing a subroutine of control data change processing (step 146 in FIG. 9) when the partial content i is neither changed nor deleted and the control state is changed. It is a figure which shows the content of the changeable table and deletion table when it changes from control state (a) to control state (b), (c), (d). (A) shows the contents of the control state (b), and (b) shows the case where it is determined in step 114 in FIG. 8 that the control state (b) is specified for the control state to be edited (step 114 is changed). It is a flowchart which shows the subroutine of the process of step 116 in affirmation determination. 17 is a flowchart showing a subroutine of control data change processing (step 244 in FIG.
  • FIG. 17 is a flowchart showing a subroutine of control data change processing (step 246 in FIG. 16) accompanying change in the control state of partial content i.
  • (A) shows the contents of the control state (c)
  • (b) shows the case where it is determined in step 118 in FIG. 8 that the control state (c) is specified for the control state to be edited (step 118 is changed).
  • FIG. 21 is a flowchart showing a subroutine of control data change processing (step 278 in FIG. 20) accompanying deletion of partial content i.
  • FIG. 21 is a flowchart showing a subroutine of control data change processing (step 280 in FIG. 20) accompanying change in the control state of partial content i.
  • FIG. (A) shows the contents of the control state (e), and (b) shows the case where it is determined in step 122 in FIG. 8 that the control state (e) is specified for the control state to be edited (step 122 is It is a flowchart which shows the subroutine of the process of step 124 in affirmation determination.
  • A) shows the contents of the control state (g), and (b) shows the subroutine of the processing of step 126 when the control state (g) is specified for the control state to be edited (step 122 is negative).
  • FIG. 29 is a flowchart illustrating a subroutine for verifying overall consistency of content in step 380 of FIG. 28.
  • FIG. It is a figure which shows the content of each control state. It is a figure which shows the relationship between a partial content and a signature.
  • It is a flowchart which shows the subroutine of step 101 of FIG.
  • the partial data constituting the digital content is configured with two types of real data and empty data.
  • Real data is actual partial data, and constitutes a part of content (partial content) to be reproduced by the player.
  • the empty data is data that the regenerator does not intend to reproduce, and is control data for controlling addition and deletion of data. Additional control is realized by controlling empty data that is not to be played back by the playback device with an electronic signature. Deletion control is realized not by actually deleting partial data but by replacing it with the empty data and controlling whether or not the data can be changed with an electronic signature.
  • Existing data is partial data initially set by the author, and has an integer value as an ID number for identifying it. Basically, all existing data is actual data, but may include empty data.
  • the additional data is partial data other than the existing data, and is partial data added between the existing data. Therefore, the additional data is composed of additional empty data and actual data added by the additional process.
  • the change control to arbitrary data is realized by combining the aggregate signature (Aggregate) signature and the difference holding of the hash value.
  • This embodiment shows a basic method for controlling all states related to changes and deletions to actual data shown below by electronic signatures. Furthermore, a method of adding additional empty data as actual data by controlling an electronic signature is also shown.
  • the verifier terminal 16 is connected to each other via the network 10.
  • the author terminal 12 includes a CPU (Central Processing Unit) 20, a ROM (Read Only Memory) 22, and a RAM (Random Access Memory) 24 via a bus 34. It is connected. Further, a storage device 26, an input device 28, a display device 30, and an interface 32 are connected to the bus 34.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the ROM 22 of the author terminal 12 stores a content control data creation processing program shown in FIG.
  • the CPU 20 reads a content control data creation processing program from the ROM 22 and develops it in the RAM 24 to execute the content control data creation processing program. 8 is stored in the ROM 22 of the editor terminal 14, and the content editing verification program shown in FIG. 28 is stored in the ROM 22 of the verifier terminal 16. Yes.
  • the storage device 26 of the author terminal 12 stores the secret key sk0 and the public key pk0 for the author
  • the storage device 26 of the editor terminal 14 stores the secret key sk1 and the public key pk1 for the editor. Then, the verifier terminal 16 can obtain the author's public key pk0 and the editor's public key pk1 from the author terminal 12 and the editor terminal 14, respectively.
  • step 40 the input device 28 causes the content and content content to be displayed according to the author's operation according to the display content of the screen of the display device 30. Executes input processing to input data specifying the editing method.
  • step 42 the CPU 20 executes a process for creating control data, which will be described later, and in step 44, the interface 32 transmits content and control data to the editor terminal 14.
  • FIG. 4 shows a subroutine of the input process (step 40) in FIG.
  • step 46 content is created, and in step 48, the content is divided into n partial contents as shown in FIG. 7 (d).
  • step 50 whether or not each partial content can be changed and deleted is designated.
  • step 52 whether or not a new partial content can be added corresponding to each partial content is specified, and if it can be added, the number that can be added is specified.
  • FIG. 5 shows a subroutine of the control data creation process (step 42) in FIG.
  • step 54 as shown in FIG. 7A, an identifier ID for identifying the content is assigned to the content.
  • step 56 the variable i for identifying each partial content is initialized to 0.
  • step 58 the variable i is incremented by 1.
  • step 60 the portion identified by the variable i as shown in FIG. An identifier IDi is assigned to the content i.
  • the hash value hi H (ID
  • H () is a hash function, for example, (ID
  • step 64 using the content identifier ID, the partial content i identifier IDi, the hash value hi, the bit string of 0 (published), and the author's private key sk0, the individual signature for change
  • step 66 using the content identifier ID, the identifier IDi of the partial content i, the hash value hi, the 1 bit string (published), and the author's private key sk0, the individual signature for deletion is calculated.
  • step 68 it is determined whether or not changeable content is specified for partial content i in step 50 of FIG. 4. If changeable content is specified for partial content i, the creation of this control data is performed. The process proceeds to step 70.
  • step 70 in order to indicate that the author has specified that the partial content i can be changed, the position Gci corresponding to the partial content i in the changeable instruction table Gc shown in FIG. Register an individual signature.
  • step 72 the control data creation process proceeds to step 72.
  • the control data creation process skips step 70 and proceeds to step 72.
  • the partial content i can be changed in the subsequent editing depending on whether or not the individual signature for change is registered at the position Gci corresponding to the partial content i in the changeable instruction table Gc. It can be determined whether or not the author has designated.
  • step 72 it is determined whether or not deletion is specified for partial content i in step 50 of FIG. 4. If deletion is specified for partial content i, the creation of this control data is performed. Processing proceeds to step 74. In step 74, in order to indicate that the author has specified that the partial content i can be deleted, the position Gdi corresponding to the partial content i in the deleteable instruction table Gd shown in FIG. Register an individual signature. After step 74, the control data creation process proceeds to step 76. On the other hand, if it is not specified that deletion is possible for the partial content i, the control data creation process skips step 74 and proceeds to step 76. In step 76, information indicating the control state is registered in the position CSi corresponding to the partial content i in the control state clarification table CS shown in FIG.
  • the partial content i can be deleted in the subsequent editing depending on whether or not the individual signature for deletion is registered at the position Gdi corresponding to the partial content i in the deleteable instruction table Gd. It can be determined whether or not the author has designated.
  • a variable j for identifying empty data to be added so that a new partial content can be newly added corresponding to the partial content i is initialized to 0 in step 78, and the variable j is incremented by 1 in step 80.
  • empty data will be described.
  • partial contents A1 to A6 are obtained by dividing the content into n (for example, 6 pieces).
  • the author can specify that partial contents can be added to each of the partial contents A1 to A6. Even if the author specifies that the partial content can be further added to each of the partial contents A1 to A6, the added partial content does not exist until the partial content is newly added to the partial content. Therefore, there is no data of the added partial content. Therefore, data that replaces partial content data that may be added in the future is empty data dj.
  • the data content of the empty data dj is predetermined.
  • step 88 it is determined whether or not the author has specified that the partial content dj can be added in step 52 of FIG. 4, and if it is determined that the author has specified that the partial content dj can be added, step At 90, the individual signature (Equation 3) is registered at the position corresponding to the empty data dj of the addable instruction table Ga shown in FIG. After step 90, the control data creation process proceeds to step 92. On the other hand, if it is determined that the author did not specify that the partial content dj can be added, the control data creation process skips step 90 and proceeds to step 92.
  • step 92 it is determined whether or not the variable j is equal to the number J of partial contents designated by the author in step 52 in FIG. If it is not determined that the variable j is equal to the number J, the above process has not been executed for the number J of partial contents designated by the author as being addable. 80-92). If it is determined that the variable j is equal to the number J, the above processing has been executed for the number J of partial contents that the author has designated to be able to add. Therefore, in step 94, the variable i is the number n of partial contents. It is determined whether or not.
  • step 96 If the variable i is not equal to the number n, there is a partial content for which the above processing has not been executed, so the processing returns to step 58 and the above processing (steps 58 to 94) is executed. On the other hand, when the variable i is equal to the number n, since the above processing has been executed for all the partial contents, the process proceeds to step 96.
  • step 96 the aggregate signature for change is shown in FIG. 7 (i). And, in step 98, the aggregate signature for deletion as shown in FIG. 7 (j) And in step 100, an additional aggregate signature as shown in FIG. 7 (k) Calculate
  • the author may designate whether or not the partial content can be changed or deleted, or whether or not a new partial content can be added to the partial content. it can.
  • control state (a) in which partial content can be changed and deleted.
  • control state (b) in which partial content can be changed but deletion is prohibited.
  • control state (c) in which partial content change is prohibited but deletion is possible.
  • control state (d) in which modification and deletion of partial contents are prohibited.
  • control state (e) in which the partial content can be changed and the partial content is deleted.
  • control state (f) in which the change of the partial content is prohibited and the partial content is deleted.
  • control state (g) in which partial content can be added.
  • control state (h) in which partial content is prohibited from being added.
  • an individual signature is stored in each of the changeable instruction table Gc and the deleteable instruction table Gd corresponding to the partial content A1 identified by the identifier ID1. Therefore, the control state of the partial content A1 is (a). Further, an individual signature is stored only in the changeable instruction table Gc corresponding to the partial content A2 identified by the identifier ID2. Therefore, the control state of the partial content A2 is (b). Furthermore, an individual signature is stored in the addable instruction table Ga corresponding to the empty data identified by the identifiers ID1 and j. Therefore, the control state of the empty data is (g).
  • control state is the control state of the partial content or empty data according to the above-mentioned designation contents of the author, but in this embodiment, as shown in FIG.
  • the control state is stored in the control state clarification table CS.
  • control data is created as shown in FIGS. 7 (a) to (n).
  • the individual signatures for change, deletion and addition shown in FIGS. 7F to 7H are not transmitted to the editor terminal 14.
  • FIG. 8 shows an editing process routine executed by the editor terminal 14. As described above, when the editor terminal 14 receives the content and control data transmitted from the author terminal 12 (see step 44 in FIG. 3), the editing process routine starts.
  • step 102 it is determined whether or not content or partial content editing has been instructed from the input device 28 of the editor terminal 14. If it is determined that the editing is not instructed, it is determined in step 128 whether or not editing is instructed. If the end of editing has not been instructed, the process returns to step 102.
  • step 104 the input device 28 inputs the edit data in accordance with the editor's operation according to the content displayed on the screen of the display device 30. That is, which partial content is to be deleted, changed, if changed, the partial content after the change, if additional partial content is added to the partial content, how many are added, the partial content to be added, and , Data indicating which control state is to be changed is input.
  • step 106 the edit data is stored in the edit history data shown in FIG. That is, it stores what editing instruction is given to which partial data.
  • step 108 the control state of the editing target (partial data or empty data) is specified with reference to the control state clarification table CS shown in FIG. For example, when the partial content A1 identified by the identifier ID1 shown in FIG. 7B is designated as an editing target, the control state (a) is specified from the control state clarification table CS.
  • steps 110, 114, 118, 122, and 125 it is determined whether or not the control states (a), (b), (c), (e), and (g) are specified, and each control state is specified.
  • editing processes corresponding to the control states (a), (b), (c), (e), and (g) are executed in steps 112, 116, 120, 124, and 126, respectively.
  • steps 112, 116, 120, 124 and 126 are executed, the editing process proceeds to step 128.
  • step 1208 it is determined whether the end of editing is instructed. If the end of editing is not instructed, the process returns to step 102 and the above processing (steps 102 to 128) is executed. In step 130, the signature of the editing history data is calculated. In step 132, each data is output to the verifier terminal 16.
  • FIG. 9B shows a subroutine of step 112 when the control state (a) is specified for the control state to be edited (step 110 is affirmative).
  • the control state (a) is a control state in which the partial content can be changed and deleted, as shown in FIG. 9 (a). Therefore, in step 134, it is determined whether or not an instruction to change the partial content to be edited is given based on the editing data (see step 104 in FIG. 8).
  • the partial content to be edited is identified by i. If it is determined that the change of the partial content i is instructed, in step 136, the partial content i is changed (A1 to A1 ') as shown in FIG. Note that the content of the changed partial content i ′ is Mi ′.
  • step 138 along with the change of the partial content i, the control data is changed as will be described later in detail (see FIG. 10).
  • step 140 it is determined in step 140 whether deletion of partial content i to be edited has been instructed based on the editing data. If it is determined that the deletion of the partial content i is instructed, in step 142, as shown in FIG. 13A, the partial content i (A1) is deleted including the identifier IDi, and empty data is arranged. In step 144, the control data is changed as described later (see FIG. 12) in detail with the deletion of the partial content i.
  • step 140 If it is not determined in step 140 that deletion of partial content i has been instructed, editing of only the control state for partial content i has been instructed, and in step 146, details will be described later (see FIG. 14). As described above, the control data is changed.
  • FIG. 10 shows a subroutine of control data change processing (step 138 in FIG. 9) accompanying the change of the partial content i.
  • step 150 using the content identifier ID, the partial content i 'identifier IDi, the hash value hi', the bit string of 0, and the editor's private key sk1, an individual signature for changing the editor
  • step 152 the aggregate signature for change in Equation 4, the individual signature stored in the position Gci corresponding to the partial content i in the changeable instruction table Gc shown in FIG.
  • the change aggregate signature (see Equation 4) is changed as follows using the editor's individual signature for change in (see also FIG. 11B).
  • step 154 the individual signature stored in the position Gci corresponding to the partial content i in the changeable instruction table Gc shown in FIG.
  • step 156 using the content identifier ID, the partial content i 'identifier IDi, the hash value hi', the bit string of 1, and the editor's private key sk1, an individual signature for deletion of the editor
  • step 158 the aggregate signature for deletion in equation 5 is obtained, the individual signature stored in the position Gdi corresponding to the partial content i in the erasable instruction table Gd shown in FIG.
  • the deletion aggregate signature (see Equation 5) is changed as follows using the individual signature for deletion by the editor (see also FIG. 11C).
  • step 160 the individual signature stored in the position Gdi corresponding to the partial content i in the changeable instruction table Gd shown in FIG.
  • control state of the partial content can be changed in step 104 as described above.
  • step 170 it is determined whether or not the control state (a) is designated based on the edit data in step 104. If it is determined that the control state (a) is designated, the partial state can be changed and deleted in the control state (a). Therefore, in step 172, the changeable instruction table Gc in FIG.
  • the individual signature for changing the editor (formula 7) is stored in the position Gci corresponding to the partial content i, and in step 174, the position Gdi corresponding to the partial content i in the erasable instruction table Gd of FIG.
  • the individual signature for deleting the editor (Equation 9) is stored.
  • each individual signature of the author stored in the changeable instruction table Gc and the deleteable instruction table Gd is obtained. Changed to each individual signature of the editor. Therefore, as shown in FIGS. 11 (g) and 11 (h), another editor can change and delete the partial content.
  • step 176 it is determined in step 176 whether or not the control state (b) has been designated based on the edit data in step 104. If it is determined that the control state (b) is designated, the control state (b) can change the partial content but cannot be deleted. Therefore, in step 178, the change of FIG.
  • the individual signature (formula 7) for changing the editor is stored at the position Gci corresponding to the partial content i of the instruction table Gc, and in step 180, the partial content i of the control state clarification table CS of FIG.
  • the control state (b) is set at the corresponding position CSi.
  • step 178 the individual signature of the author stored in the changeable instruction table Gc is changed to the individual signature of the editor as shown in FIGS. 11 (e) and 11 (f). . Therefore, as shown in FIGS. 11 (g) and 11 (h), another editor can only change the partial content.
  • step 182 it is determined in step 182 whether or not the control state (c) has been designated based on the edit data in step 104. If it is determined that the control state (c) is designated, the control state (c) is prohibited to change the partial contents but can be deleted. Therefore, in step 184, the deletion of FIG. An individual signature (Equation 9) for deletion of the editor is stored at a position Gdi corresponding to the partial content i of the instruction table Gd, and at step 186, the partial content i of the control state clarification table CS of FIG. The control state (c) is set at the corresponding position CSi.
  • FIGS. 11E and 11F each individual signature of the author stored in the erasable instruction table Gd is changed to each individual signature of the editor. Is done. Therefore, as shown in FIGS. 11 (g) and 11 (h), another editor can only delete the partial content.
  • step 182 If it is not determined in step 182 that the control state (c) is designated, the control state (d) is designated. In the control state (d), change and deletion of partial contents are prohibited.
  • steps 154 and 160 the individual signature stored in the position Gci corresponding to the partial content i in the changeable instruction table Gc shown in FIG. 7 (l) is deleted, and the changeable instruction table shown in FIG. 7 (m).
  • the individual signature stored at the position Gdi corresponding to the partial content i in Gd has been deleted (see FIGS. 11 (e) and 11 (f)). Therefore, in step 188, the control state (d) is set at the position CSi corresponding to the partial content i in the control state clarification table CS of FIG. Therefore, as shown in FIGS. 11G and 11H, another editor cannot change or delete the partial content.
  • FIG. 12 shows a subroutine of control data change processing (step 144 in FIG. 9) accompanying the deletion of the partial content i.
  • step 194 using the content identifier ID, the identifier IDi of the empty data di, the hash value hi ′, the bit string of 0, and the editor's private key sk1, an individual signature for changing the editor
  • step 196 the aggregate signature for change in Equation 4 and the individual signature stored in the position Gci corresponding to the deleted partial content i in the changeable instruction table Gc shown in FIG. And the aggregate signature for change (see Equation 4) is changed as follows using the individual signature for change of the editor in Equation 11 (see also FIG. 13B).
  • step 198 the individual signature stored in the position Gci corresponding to the partial content i in the changeable instruction table Gc shown in FIG.
  • step 200 using the content identifier ID, the identifier IDi of the empty data di, the hash value hi ′, the bit string of 1, and the editor's private key sk1, an individual signature for deletion of the editor
  • step 202 the aggregate signature for deletion in Equation 5 and the individual signature stored in the position Gdi corresponding to the deleted partial content i in the deletion possible instruction table Gd shown in FIG.
  • the aggregate signature for change (see Equation 5) is changed as follows using the editor's individual signature for change in Equation 13 (see also FIG. 13C).
  • step 204 the individual signature stored in the position Gdi corresponding to the partial content i in the deleteable instruction table Gd shown in FIG.
  • control state of the partial content can be changed in step 104.
  • the control state (a) can be changed to the control state (e) or the control state (f).
  • step 214 it is determined whether or not the control state (e) is designated. When it is designated that the empty data arranged with the partial content deleted can be changed, the control state (e) is designated. In this case, the determination result in step 214 is affirmative, and in step 216, an individual signature for changing the editor (in the position Gci corresponding to the partial content i in the changeable instruction table Gc in FIG.
  • step 217 the individual signature for deleting the editor (formula 9) is stored at the position Gdi corresponding to the partial content i in the deleteable instruction table Gd in FIG.
  • the control state (e) is set at the position CSi corresponding to the partial content i of the control state clarification table CS of FIG. 7 (e).
  • step 216 the individual signature of the author stored in the changeable instruction table Gc is changed to the individual signature of the editor. .
  • step 204 since the individual signature stored in the position Gdi corresponding to the partial content i in the deleteable instruction table Gd is deleted, as shown in FIGS. 13 (g) and 13 (h), Yet another editor can only change the partial content.
  • step 214 If it is not determined in step 214 that the control state (e) has been designated, the control state (f) has been designated. In the control state (f), the change of the partial content is prohibited, and step 198 described above is prohibited. Since the individual signature stored in the position Gci corresponding to the partial content i in the changeable instruction table Gc is deleted, the partial content i in the control state clarification table CS in FIG. The control state (f) is set at the corresponding position CSi. As described above, in step 198, the individual signature in the changeable instruction table Gc is deleted, and in step 204, the individual signature in the deleteable instruction table Gd is deleted.
  • FIG. 14 shows a subroutine of control data change processing (step 146 in FIG. 9) when the partial content i is neither changed nor deleted and the control state is changed.
  • the control state (a) can be changed to any one of the control states (b) to (d). Therefore, first, at step 222, it is determined whether or not the control state has been changed to (b). If it is determined that the state has been changed to the control state (b), in step 224, the control state (b) is set at the position CSi corresponding to the partial content i of the control state clarification table CS of FIG. . In the control state (b), since the partial content can be changed but the deletion is prohibited, the control state (b) is stored in the position Gdi corresponding to the partial content i in the erasable instruction table Gd shown in FIG. Delete individual signatures that have been added. Therefore, as shown in FIGS. 15B and 15C, the individual signature remains only in the changeable instruction table Gc.
  • step 228 it is determined in step 228 whether or not the state has been changed to the control state (c). If it is determined that the control state has been changed to the control state (c), in step 230, the control state (c) is set at the position CSi corresponding to the partial content i in the control state clarification table CS of FIG. . Since the change of the partial content is prohibited but can be deleted, the control state (c) is stored in the position Gci corresponding to the partial content i in the changeable instruction table Gc shown in FIG. Delete individual signatures that have been added. Therefore, as shown in FIGS. 15B and 15C, the individual signature remains only in the erasable instruction table Gd.
  • step 228 If it is not determined in step 228 that the state has been changed to the control state (c), the control state (d) is designated.
  • the control state (d) since change and deletion of partial contents are prohibited, the individual stored in the position Gdi corresponding to the partial contents i in the erasable instruction table Gd shown in FIG.
  • step 238 the signature is deleted, and the individual signature stored in the position Gci corresponding to the partial content i in the changeable instruction table Gc shown in FIG. Therefore, as shown in FIGS. 15B and 15C, no individual signature remains at the corresponding positions in the deleteable instruction table Gd and the changeable instruction table Gc.
  • FIG. 16B shows a subroutine of the process of step 116 when it is determined in step 114 in FIG. 8 that the control state (b) is specified for the control state to be edited (step 114 is affirmative determination). Has been.
  • the control state (b) is a control state in which partial content can be changed but deletion is prohibited.
  • step 240 If it is not determined in step 240 that deletion of partial content i has been instructed, editing of only the control state for partial content i has been instructed, so that details will be described later in step 246 (see FIG. 19). As described above, the control data is changed.
  • FIG. 17 shows a subroutine of control data change processing (step 244 in FIG. 16) accompanying change of the partial content i.
  • Steps 248 to 254 in FIG. 17 are the same as steps 148 to 154 in FIG.
  • Steps 256 to 262 in FIG. 17 are the same as steps 162 to 168 in FIG.
  • the hash value difference ⁇ h is stored in the position Gbci corresponding to the partial content i of the change hash value difference holding table Gbc shown in FIG.
  • step 262 the signature of the hash value difference for change And the signature of the hash value difference for change (Expression 11) Calculate
  • step 264 it is determined whether or not the control state (d) is designated based on the edit data in step 104. If it is determined that the control state (d) is designated, the control state (d) prohibits modification and deletion of the partial content.
  • the change state instruction table Gc shown in FIG. Since the individual signature stored in the position Gci corresponding to the partial content i has been deleted, in step 266, the control state is set to the position CSi corresponding to the partial content i in the control state clarification table CS of FIG. (D) is set. Therefore, as shown in FIGS. 18E and 18F, there is no individual signature at the position corresponding to the partial content i in the changeable instruction table Gc and the deleteable instruction table Gd.
  • step 264 If it is not determined in step 264 that the control state (d) has been designated, the control state (b) remains in the control state (b), so the changeable instruction table Gc shown in FIG.
  • the individual signature for changing the editor is stored at the position Gci corresponding to the partial content i. Therefore, as shown in FIGS. 18 (e) and 18 (f), the individual signature for changing the editor is stored at the position corresponding to the partial content i in the changeable instruction table Gc, and the deleteable instruction table. There is no individual signature at the position corresponding to the partial content i in Gd.
  • FIG. 19 shows a subroutine of control data change processing (step 246 in FIG. 16) accompanying change in the control state of partial content i.
  • the control state (b) is changed to the control state (d). Therefore, in step 270, the control state (d) is set at the position CSi corresponding to the partial content i in the control state clarification table CS of FIG. In the control state (d), modification and deletion of the partial content is prohibited.
  • step 272 the individual signature stored in the position Gci corresponding to the partial content i in the changeable instruction table Gc shown in FIG. delete.
  • FIG. 20B shows a subroutine of the processing of step 120 when it is determined in step 118 in FIG. 8 that the control state (c) has been specified for the control state to be edited (step 118 is positive). Has been.
  • the control state (c) is a control state in which partial content can be deleted but change is prohibited.
  • step 280 details will be described later (see FIG. 23). As described above, the control data is changed.
  • FIG. 21 shows a subroutine of control data change processing (step 278 in FIG. 20) accompanying the deletion of the partial content i.
  • Steps 281 and 282 in FIG. 21 are the same as steps 190 and 192 in FIG. 12, and steps 284 to 296 in FIG. 21 are the same as steps 200 to 212 in FIG.
  • the control state (c) When the partial content i is deleted in the control state (c), the control state (c) is changed to the control state (f). In the control state (f), the change of the partial content is prohibited. However, in the control state (c), the change of the partial content is prohibited but can be deleted.
  • the deletion possible instruction table Gd Since the individual signature at the position corresponding to the partial content i is deleted, the control state (f) is set to the position CSi corresponding to the partial content i in the control state clarification table CS of FIG. Set. Therefore, as shown in FIGS. 22E and 22F, there is no individual signature at the position corresponding to the partial content i in the changeable instruction table Gc and the deleteable instruction table Gd.
  • FIG. 23 shows a subroutine of control data change processing (step 280 in FIG. 20) accompanying change in the control state of partial content i.
  • the control state (c) is changed to the control state (d). Therefore, in step 304, the control state (d) is set at the position CSi corresponding to the partial content i in the control state clarification table CS of FIG. In the control state (d), modification and deletion of the partial content is prohibited.
  • step 272 the individual signature stored in the position Gdi corresponding to the partial content i in the erasable instruction table Gd shown in FIG. delete.
  • FIG. 24B shows a subroutine of the process of step 124 when it is determined in step 122 in FIG. 8 that the control state (e) is specified for the control state to be edited (step 122 is affirmative determination). Has been.
  • the control state (e) is already deleted, but the partial content can be changed.
  • steps 308 to 312 in FIG. 24B are the same as steps 134 to 138 in FIG. 9 in the processing of the control state (a), and thus the description thereof is omitted.
  • Step 314 of FIG. 24B proceeds to Steps 230 to 226 of the process of FIG. 14 in the process of the control state (a), and immediately proceeds to Step 230 if Step 222 is negative, Execute. That is, in step 314 of FIG. 24B, steps 228 and 234 to 238 of the process of FIG. 14 in the process of the control state (a) are not executed.
  • FIG. 25B shows a subroutine of the process of step 126 when the control state (g) is specified for the control state to be edited (step 122 is negative).
  • partial content can be added to the control state (g).
  • step 315 of FIG. 25B it is determined whether or not the partial content i has been added. If partial content is added in step 104 of FIG. 8, step 315 is affirmative, and in step 316, as shown in FIG. 27A, the empty data at the added position i, j is deleted. Then, partial content di, j (for example, A1,1) is added, and in step 318, the control data is changed in accordance with the addition of the partial content.
  • partial content di, j for example, A1,1
  • control information (h) is set at step 319.
  • the control state (h) since partial contents are prohibited from being added, individual signatures cannot be stored at positions corresponding to the positions i and j of the changeable instruction table Gc and the deleteable instruction table Gd (FIG. 27 (g) and (See FIG. 27 (h)). Therefore, in step 319, the control state (h) is stored in the position CSi, j corresponding to the position i, j of the control state clarification table CS in FIG.
  • FIG. 26 shows a subroutine of the control data changing process (step 318) in FIG.
  • the partial contents di, j for example, A1,1 are added, there is no empty data of the part i, j. Therefore, in step 320, the additional aggregate signature is changed as follows (see FIG. 27B).
  • step 322 the signature (Equation 3) stored at the position corresponding to the added position i, j in the addable instruction table Ga shown in FIG. 7 (m) is deleted (see FIG. 27 (c)).
  • step 326 the individual signature for changing the editor is calculated.
  • step 328 the aggregate signature for change is changed as follows (see FIG. 27D).
  • step 330 an individual signature for deletion of the editor
  • the deletion aggregate signature is changed as follows (see FIG. 27E).
  • the editor When the editor adds partial content in the control state (g), the editor can change the control state (g) to the control states (a) to (d).
  • step 334 it is determined whether or not the control state (g) has been changed to the control state (a). If it is determined that the control state (g) is changed to the control state (a), the control state (a) can change and delete the partial contents.
  • An individual signature (formula 18) for changing the editor is stored in Gci, j at a position corresponding to position i, j in the possible instruction table Gc, and in step 338, the deleteable instruction table Gd in FIG.
  • the individual signature (Equation 20) for deletion of the editor is stored in Gdi, j at a position corresponding to position i, j (see FIGS. 27 (g) and 27 (h)).
  • the control state (a) is stored in the position CSi, j corresponding to the position i, j of the control state clarification table CS in FIG.
  • step 342 it is determined in step 342 whether or not the control state (g) has been changed to the control state (b). If it is determined that the control state (g) has been changed to the control state (b), the control state (b) can change the partial content but is prohibited from being deleted.
  • the individual signature (Equation 18) for changing the editor is stored in Gci, j at a position corresponding to position i, j in the changeable instruction table Gc in FIG. 7 (l) (FIGS. 27 (g) and 27).
  • step 346 the control state (b) is stored in the position CSi, j corresponding to the position i, j in the control state clarification table CS of FIG. 7 (e).
  • step 348 it is determined in step 348 whether the control state (g) has been changed to the control state (c). If it is determined that the control state (g) has been changed to the control state (c), the control state (c) is prohibited to change the partial content but can be deleted.
  • the individual signature for deletion of the editor (20) is stored in Gdi, j at a position corresponding to the position i, j of the deleteable instruction table Gd in FIG. 7 (m) (FIG. 27 (g) and FIG.
  • the control state (c) is stored in the position CSi, j corresponding to the position i, j of the control state clarification table CS in FIG. 7 (e).
  • step 348 If it is not determined in step 348 that the control state (g) has been changed to the control state (c), the control state (g) has been changed to the control state (d).
  • the control state (g) is changed to the control state (d)
  • the changeable instruction table Gc and the deleteable instruction table Gd Individual signatures cannot be stored at positions corresponding to the positions i and j (see FIGS. 27 (g) and 27 (h)). Therefore, in step 356, the control state (d) is stored in the position CSi, j corresponding to the position i, j in the control state clarification table CS of FIG.
  • FIG. 28 shows a verification processing routine executed by the verifier terminal 16. This verification processing routine starts when each data is output from the editor terminal 14 and each data output from the editor terminal 14 is received by the verifier terminal 16 in step 132 in FIG.
  • step 360 a flag F indicating a conclusion as to whether or not each verification described below is illegal is initialized to 0.
  • an identifier ID for the entire content is acquired.
  • step 364 verification of a portion to which content, which will be described in detail later (see FIG. 29), has not been added, that is, whether partial content has been added illegally is performed.
  • step 366 the above verification (364) is performed. Thus, it is determined whether or not the flag F remains 0, i.e., there is no fraud.
  • the verification process proceeds to step 368 when there is no fraud, and when there is fraud, at step 384, the fact that there has been fraud is notified, that is, the display device 30 is displayed with fraud.
  • step 368 Even if it is determined that the partial content has not been illegally added, the partial content sequence may be illegal. Therefore, in step 368, as will be described later in detail (FIG. 30), the arrangement of the partial contents is verified. In step 370, it is determined whether there is any fraud. If there is fraud, step 384 is performed. Then, it is notified that there has been a fraud, and if there is no fraud, the verification process proceeds to step 372.
  • step 372 the deletion is verified as will be described in detail later (see FIG. 31).
  • step 374 it is determined whether or not there is any fraud. Then, it is notified that there is a fraud, and if there is no fraud, the process proceeds to step 376.
  • step 376 as will be described later in detail (see FIG. 31), the change is verified.
  • step 378 it is determined whether or not there is any fraud. If there is no fraud, the process proceeds to step 380.
  • step 380 as will be described in detail later (see FIG. 35), the consistency of the entire content is verified.
  • step 378 it is determined whether or not there is a fraud.
  • step 384 it is notified that there has been a fraud, and if there is no fraud, the verification process is terminated.
  • FIG. 29 shows a sub-routine of verification processing for a portion where content is not added in step 364 of FIG.
  • step 386 the variable i used in the verification process and the variable p corresponding to the variable i and identifying empty data remaining because the partial content is not added are initialized to 0, and Z is initialized to 1. Turn into.
  • step 388 the variable i is incremented by 1.
  • step 390 the variable p is incremented by 1.
  • step 396 it is determined whether or not the variable p is the total number P of empty data remaining because the variable p corresponds to the variable i and no partial content is added. If the variable p is not the total number P, there is empty data corresponding to the partial content identified by the variable i for which the above processing (steps 392 and 394) has not been executed. (Steps 390 to 396) are executed. When the variable p is the total number P, the above processing (steps 390 to 396) has been executed for all of the remaining empty data corresponding to the partial content identified by the variable p. It is determined whether or not it is equal to the total number n of partial contents.
  • variable i is not equal to the total number n, there is a partial content corresponding to the empty data for which the above processing (steps 392 and 394) has not been executed, so the process returns to step 388 and abnormal processing (steps 388 to 388) is performed. 398).
  • step 400 a pairing operation is performed using the aggregate signature (Equation 6) of the empty data in the control data and the primitive root g, and is substituted for K1.
  • this processing (FIG. 29) is performed.
  • a pairing operation is performed and substituted for K2, and in step 404, it is determined whether K1 and K2 match. Verify illegal addition of partial content to empty data. If K1 and K2 do not match, 1 is set in the flag F.
  • Pairing used in encryption includes Weil pairing and Tate pairing. Since Tate pairing has a lower calculation cost, Tate pairing is used. Note that. Weil pairing may be used.
  • Tate pairing e is for integer r Is a function defined by here, And k is The minimum number that satisfies this condition is called the embedding order.
  • FIG. 30 shows a subroutine for verifying the arrangement of partial contents in step 368 of FIG.
  • step 408 it is determined whether or not the identifier IDi of the partial content i is missing. If the partial content i is appropriately deleted, for example, since the identifier IDi is assigned to the empty data in step 190 of FIG. 12, there is no omission in the identifier IDi of the partial data. Therefore, if there is a missing identifier IDi of the partial data (No in step 408), it can be determined that there has been unauthorized deletion. Therefore, in step 412, 1 is set in the flag F.
  • step 410 it is determined whether or not the partial contents i are arranged in the original order by determining whether or not the partial content identifiers IDi are in ascending order. If the identifier IDi of the partial content i is not in ascending order (No in step 410), it can be determined that the partial content i has been changed to an order different from the original order, that is, illegal editing has been performed. . Therefore, in step 412, 1 is set in the flag F.
  • FIG. 31 shows a subroutine for deletion verification processing in step 372 of FIG. Since the partial data in the control state (b) and the control state (d) is at least deleted, it is necessary to check whether there is an unauthorized deletion of the partial content i.
  • the variable i is initialized to 0.
  • the variable i is incremented by 1.
  • the difference value ⁇ hi is stored in the deletion hash value difference holding table Gbd in step 294 of FIG. Therefore, in the case of proper deletion, as shown in FIGS. 32B and 32C, there is no partial content, but the difference value ⁇ hi is stored in the hash value difference holding table Gbd for deletion. . In this case, the difference value ⁇ hi is not stored in the hash value difference holding table Gbc for change.
  • the partial content A2 is in the control state (b), so that deletion is prohibited.
  • this partial content A2 is illegally deleted, for example, the process does not go through the process of step 294 in FIG. 21, and thus the difference value ⁇ hi is not stored in the deletion hash value difference holding table Gbd. Therefore, in the case of illegal deletion, as shown in FIGS. 32B and 32C, there is no partial content, and the difference value ⁇ hi is stored in the deletion hash value difference holding table Gbd. It has not been. In this case, the difference value ⁇ hi is stored in the hash value difference holding table Gbc for change.
  • step 418 it is determined whether or not the partial content i identified by the variable i exists. If it is determined that the partial content i does not exist, the hash value difference holding table Gbd for deletion is determined in step 420. It is determined whether or not the difference value ⁇ hi is stored at a position corresponding to the position of the partial content i. If step 420 is negative, 1 is set in the flag F in step 433.
  • step 418 or step 420 it is determined whether or not the total number n of partial contents i. If the variable i is not equal to the total number n, there is a partial content for which unauthorized deletion has not been determined, so the process returns to step 416 and the above processing (steps 416 to 422) is executed. If the variable i is equal to the total number n, there is no partial content for which unauthorized deletion has not been determined, so the verification process ends.
  • FIG. 33 shows a change verification subroutine in step 376 in FIG. Since the partial data of the control state (c), the control state (d), and the control state (f) is prohibited from changing at least, the control state (c), the control state (d), and the control state (f) In some cases, there is an unauthorized change in partial content i. Therefore, in step 434, the variable i is initialized to 0, and in step 436, the variable i is incremented by 1.
  • the difference value ⁇ hi is stored in the change hash value difference holding table Gbc. Therefore, in the case of a legitimate change, as shown in FIGS. 34 (b) and 34 (c), the partial content i exists, and the difference value ⁇ hi is stored in the change hash value difference holding table Gbc. . In this case, the difference value ⁇ hi is not stored in the hash value difference holding table Gbd for deletion.
  • the partial content A3 is in the control state (c), and therefore change is prohibited.
  • the process of step 260 in FIG. 17 is not performed, and thus the difference value ⁇ hi is not stored in the change hash value difference holding table Gbc. Therefore, in the case of an unauthorized change, as shown in FIGS. 34 (b) and 32 (c), the partial content exists, but the difference value ⁇ hi is stored in the change hash value difference holding table Gbc. Absent. In this case, the difference value ⁇ hi is stored in the deletion hash value difference holding table Gbd.
  • step 438 it is determined whether or not the partial content i identified by the variable i exists. If it is determined that the partial content i does not exist, the hash value difference holding table Gbc for change is determined in step 440. It is determined whether or not the difference value ⁇ hi ′ is stored at a position corresponding to the position of the partial content i.
  • step 454 If the determination in step 440 is negative, that is, if the difference value ⁇ hi is not stored in the change hash value difference holding table Gbc, it can be determined that the partial content i has been tampered with. Therefore, in step 454, 1 is set to the flag F. On the other hand, if any of step 438 and step 440 is affirmative, it can be determined that the partial content i has not been tampered with. In this case, in step 442, it is determined whether or not the variable i is the total number n. If the variable i is not equal to the total number n, there is partial content that has not been determined to be tampered with, so the process returns to step 436 and the above processing (steps 436 to 442) is executed. If the variable i is equal to the total number n, there is no partial content for which unauthorized deletion has not been determined, and the verification process proceeds to step 444.
  • the hash value of the hash value difference ⁇ h calculated in step 444 is calculated.
  • step 448 the signature aggregate of the hash value difference for change shown in FIG. Then, using the aggregate wc of the hash value difference of the hash value for change calculated in the verification process and the primitive root g, a pairing operation is performed as follows, and is substituted into M1.
  • step 450 using the aggregate (Equation 26) of the hash value of the difference ⁇ h calculated in step 446 and the public key pk1, a pairing operation is performed as follows, and is substituted for M2.
  • step 452 it is determined whether M1 and M2 match. If M1 and M2 do not match, 1 is set in the flag F in step 454.
  • FIG. 35 shows a subroutine for verifying the overall consistency of the content in step 380 of FIG.
  • variables X0, X1, Y0, and Y1 used in this subroutine are initialized to 1.
  • the variable i for identifying partial contents is initialized to 0.
  • the variable i is incremented by 1. .
  • hi ′ H (ID
  • step 470 it is determined whether or not the partial content i is the partial content of the author based on the editing history data stored in the processing of step 106 in FIG. If it is determined that the partial content i is the partial content of the author, in step 472, the aggregate X0 ⁇ X0 * xi for deleting the hash value xi is calculated for the author. If it is not determined that the partial content i is the partial content of the author, in step 474, an aggregate X1 ⁇ X1 * xi for deleting the hash value Xi is calculated for the editor. However, when there are a plurality of editors, an editor Xj (j is the editor number) is prepared, and in step 470, the copyrighted work is determined, and Xj ⁇ Xj * xi is calculated.
  • step 476 it is determined whether or not the variable i is equal to the total number n of partial contents. If the variable i is not equal to the total number n, the process returns to step 460.
  • step 486 If it is determined in step 486 that the partial content i is the partial content of the author, an aggregate Y0 ( ⁇ Y0 * yi) for changing the hash value yi is calculated for the author in step 488. . If it is not determined that the partial content i is the partial content of the author, in step 490, an aggregate Y1 ( ⁇ Y1 * yi) for changing the hash value Xi is calculated for the editor.
  • step 492 a pairing operation is performed as follows using the deletion aggregate (Equation 5) of FIG. 7 (i) in the control data and the primitive root g, and is substituted into P1.
  • step 494 using the deletion aggregates X0 and X1 calculated for the author and the editor, and the public keys pk0 and pk1 of the author and the editor, respectively, a pairing operation is performed as follows. And substitute for P2.
  • step 496 it is determined whether or not P1 and P2 match. If P1 and P2 do not match, it is calculated based on the content of the partial content that was present and deleted at the time of verification and the control data In addition, since the content of the deleted partial content does not match, it can be determined that there has been an unauthorized deletion. Therefore, in this case (when a negative determination is made at step 496), 1 is set to the flag F at step 504.
  • step 498 the pairing operation is performed using the change aggregate (Equation 4) of FIG. 7 (j) in the control data and the primitive root g as follows. And assign to Q1.
  • step 500 using the change aggregates Y0 and Y1 calculated for the author and the editor, and the public keys pk0 and pk1 of the author and the editor, respectively, a pairing operation is performed as follows. And assign to Q2.
  • step 502 it is determined whether or not Q1 and Q2 match. If Q1 and Q2 do not match, it is calculated based on the contents of the partial content that was present and changed at the time of verification and the control data In addition, since the contents of the changed partial content do not match, it can be determined that there has been an unauthorized change. Therefore, in this case (when step 502 is negative), the flag F is set to 1 at step 504.
  • the content published on the Internet is free to use, but the author who wants to clearly indicate that it is his / her work when used after the second work becomes possible.
  • the above can be realized as an open system, and anyone can verify the validity of content generation.
  • Equation 5 when the aggregate signature (Equation 5) is divided by the value obtained by superimposing all the individual signatures of the addable instruction table Ga in FIG. Is generated. As a result, similar to the partial content, the product of individual signatures for empty data that cannot be added is exposed, and it becomes possible to add illegal partial content to empty data that is prohibited to be added. Therefore, to prevent this, an individual signature of empty data based on the ID indicating the entire content Is superimposed on the aggregate signature (Equation 5). As a result, when there is an unauthorized addition, the value of Equation 37 is also divided at the same time as the value of Equation 36, and it can be detected that there has been an unauthorized addition.
  • control state (a) is changeable (and can be deleted).
  • control state (d) that is, change prohibition (and deletion prohibition).
  • control state (e) that is, changeable and delete state.
  • control state (f) that is, change prohibition and deletion state.
  • control state (g) ie.
  • control state (h) that is, addition prohibition.
  • control data generation, editing, and verification in the second modification there is no control data or processing related to deletion in the embodiment, and all is performed as processing related to change. That is, in the generation process, the processes of steps 66, 72, 74, and 98 in FIG. 5 are not executed. In the editing process, steps 114, 116, 118, and 120 in FIG. 8 are not executed. For example, steps 134 and 140 to 146 in FIG. 9 are not executed, and steps 156 to 160 and 176 to 188 in FIG. 10 are not executed. In the verification process, the processes in steps 372 and 374 in FIG. 28 are not executed. Immediately after the process of step 460 in FIG. 35, the process proceeds to step 478, and the processes of steps 462 to 474 and 492 to 496 are not executed.
  • deletion is considered as one mode of change, and the process is simplified. Further, if the deletion of partial content is considered as a change from partial content to empty data, and the addition of partial content is considered as a change from empty data to partial content, all states are controlled state (a) and control state (d). Only represented. Therefore, there is no control data or processing related to addition, and empty data for addition is also handled as preset existing data, and all is performed as processing related to change. That is, processing that is not executed in the second modification is not executed in the third modification. Further, in the generation process, the processes of steps 78 to 92 and 100 in FIG. 6 are not executed. In the editing process, steps 122 to 126 in FIG. 8 are not executed. For example, the processes in steps 176 to 188 in FIG. 10 are not executed.
  • n indicating the number of partial contents and j indicating the number of partial contents that can be added are disclosed, but the contents are provided with the author's signature. May be output to the editor terminal. That is, n and j are output with the signature of the author.
  • the partial contents in the embodiment and the first to fourth modifications are data of respective parts constituting one content. Therefore, various setting methods can be considered.
  • one character is composed of various partial data such as face, arm, torso, foot, clothes, hair, image color, image music, etc.
  • the character class is composed as one character of one content.
  • partial data is displayed hierarchically, and one content is composed of various partial data. For this reason, it is also conceivable that changes such as a signature for controlling a change related to a character's clothes and a signature for controlling a change related to hair may be dealt with by a different signature for each attribute. Therefore, there are a plurality of signatures for change control and signatures for deletion control.
  • the editor newly sets an encryption key for the partial content grasped by the semi-disclosure state or the thumbnail, encrypts the change data Ni, and performs an editing process.
  • each partial data is processed independently, so if the content of the partial content can be grasped by the semi-disclosure state or the thumbnail, there is no problem even if the encrypted content is edited as the partial content. is there.
  • the verifier performs verification processing using the encrypted data as partial data. If the user who wants unencrypted content instead of the semi-disclosure state or thumbnail, if the verification result is valid, the user can obtain a decryption key from each author and restore it for each partial data.
  • control related to editing permission is performed using an electronic signature.
  • a mechanism has been introduced in which the editing order relation is verified for content whose editing processing is hierarchized by a plurality of authors.
  • Fig. 37 shows the relationship between data and signature.
  • the contents are not hierarchized, and all the original contents are generated by one author.
  • large-scale content is often produced by a plurality of authors rather than by a single author.
  • a movie or the like often has different responsible persons such as music, video, and production.
  • the music manager composes the entire music using music provided by many composers (persons in charge).
  • the person in charge of video creates a whole video by combining pictures by many producers (persons in charge).
  • the general director who sees the whole combines them to complete one movie. Therefore, in FIG. 37, the structure of the signature is hierarchized, thereby indicating the editing order or context.
  • each partial content A1 to A6 is pictures with different creators
  • the partial contents A5 to A6 are partial contents related to music with different composers.
  • Each partial content A1 to A6 has a signature ⁇ 11 to ⁇ 16 of the author of each part.
  • Each responsible person combines the partial contents and generates signatures ⁇ 21 and ⁇ 22 for the combined partial contents. That is, ⁇ 21 is the signature of the person in charge of video editing (editor) adopting the partial contents A1 to A4 and ⁇ 22 is the signature of the music manager adopting A5 and A6 as one music. is there.
  • the responsible person and the following composes the following ordered signature (see Expression 44) that can represent the signature configuration.
  • i in the second embodiment identifies a hierarchy
  • j identifies a partial content
  • q is the number of layers
  • pi is the number of partial contents in the i layer
  • pij is a lower partial content constituting the partial content j in the hierarchy i.
  • Sij is a secret key for partial content j in the i layer.
  • An individual signature for an ordered signature corresponding to each partial content of the first hierarchy is It is.
  • Ordered signatures in the second and subsequent layers are It is.
  • ⁇ ij is expressed by the following equation.
  • sij ⁇ hi-1, k is called an intermediate signature and is a signature of the upper editor on the lower part content, so that the hierarchical relationship of the data can be expressed.
  • the director will eventually generate ⁇ 31.
  • step 67 the individual signature ⁇ 1j for the ordered signature is set. Generate (see Equation 43).
  • FIG. 40 shows a subroutine for the process of generating the ordered signature ⁇ ij in step 101 above.
  • a variable i for identifying a hierarchy is initialized to 0.
  • the variable is incremented by 1.
  • a variable j for identifying partial content is initialized to 0.
  • the variable j is incremented by 1.
  • the ordered signature ⁇ ij (Equation 44) is calculated.
  • step 530 it is determined whether or not the variable j is equal to the partial content number pi of the i layer. If the variable j is not equal to the partial content number pi in the i layer, the present calculation process proceeds to step 526, and if the variable j is equal to the partial content number pi in the i layer, the present calculation process proceeds to step 532. .
  • step 532 it is determined whether or not the variable i is equal to the hierarchy number q. If the variable i is not equal to the hierarchy number q, the present calculation process proceeds to step 522. If the variable i is equal to the hierarchy number q, the present calculation process ends.
  • step 44 in the second embodiment, the final result ⁇ is output together with the aggregate signature and the like. However, for editing, all of the individual signatures and intermediate signatures for the ordered signatures calculated in step 67 (FIG. 38) and step 101 (FIG. 39) are output.
  • step 540 the edit control signature is edited. Since this is the same as the processing in the first embodiment (FIG. 8 (FIGS. 9 to 27), description thereof will be omitted.
  • step 542 the signed signature is edited. The specific contents of the signature editing will be described later.
  • step 544 the edit control signature is verified. Since this is the same as the processing in the first embodiment (FIG. 28 (FIGS. 29 to 35), description thereof will be omitted.) Ordered signatures are verified in step 546. The order in step 546 The specific contents of the signature verification will be described later.
  • step 542 in FIG. 41 Since the ordered signature in the second embodiment is independent of the control related to editing, the following processing is performed after the editing processing in step 540 in the editing processing. That is, in step 552, the verification process of FIG. 28 in the first embodiment is performed, and it is checked whether or not the editing control that has been performed is properly completed. If the editing control that has been performed is not properly terminated, this processing is terminated. If the editing control that has been performed is properly terminated, the editing process proceeds to step 554.
  • step 554 it is determined whether or not the editing process performed is a change. If the editing process is a change, an ordered signature is edited in step 556 based on the change described later (FIG. 44). If the editing process is not a change, it is determined in step 558 whether or not the editing process is to be deleted. If the editing process is to be deleted, an ordered signature is edited in step 560 based on the deletion described later (FIG. 45). If the editing process is not deletion, editing is addition, and in step 562, an ordered signature based on addition described later (FIG. 46) is edited.
  • step 572 the signature related to the partial content before the change is deleted for each layer.
  • step 573 an individual signature related to the changed partial content is generated.
  • step 574 an intermediate signature related to the changed partial content is generated.
  • step 575 a signature for the partial content changed for each layer is generated.
  • the editor deletes ⁇ 12, ⁇ 21, ⁇ 31, s21 ⁇ h12, s31 ⁇ h21 from ⁇ (step 572), individual signatures ⁇ 12 ′, ⁇ 21 ′, ⁇ 31 ′ are generated (step 573), intermediate signatures s21 ′ ⁇ h12 ′, s31 ′ ⁇ h21 ′ are generated (step 574), and ⁇ 12 ′, ⁇ 21 ′, ⁇ 31 ′ are generated. , S21 ′ ⁇ h12 ′ and s31 ′ ⁇ h21 ′ are added (step 575).
  • the individual signature ⁇ 12 ′ is generated by the person in charge of producing the subsequent partial content A2 ′, and ⁇ 21 ′, ⁇ 31 ′, s21 ′ ⁇ h12 ′, and s31 ′ ⁇ h21 ′ are the secret keys of the editor who made the change. Use to generate. As a result, even when the content is changed, the relationship and order of the partial contents can be verified.
  • step 576 the signature relating to the partial content deleted for each layer is deleted.
  • step 577 an intermediate signature regarding the partial content excluding the deleted portion is generated.
  • step 578 the portion excluding the portion deleted for each layer. Generate a signature for the content.
  • ⁇ 12, ⁇ 21, ⁇ 31, s21 ⁇ h12, s31 ⁇ h21 are deleted (step 576), and ⁇ 21 ′ and ⁇ 31 ′ are newly added to the data from which the partial content A2 is deleted.
  • S31 ′ ⁇ h21 ′ are generated (step 577), and ⁇ 21 ′, ⁇ 31 ′, and s31 ′ ⁇ h21 ′ are added (step 578). Therefore, it becomes possible to verify the relationship and order of the partial contents even for deletion. However, when the deletion of data is replaced with empty data, ⁇ 12 ′, ⁇ 21 ′, ⁇ 31 ′, s21 ′ ⁇ h12 ′, and s31 ′ ⁇ h21 ′ are added with the empty data as A2 ′.
  • step 580 an individual signature for the added partial content is generated.
  • step 582 an intermediate signature for the added partial content is generated.
  • step 564 a signature for the added partial content is generated for each layer.
  • H21 ′ is generated (step 582), ⁇ 1,1.1, ⁇ 21 ′ and ⁇ 31 ′ are generated (step 580), and s21 ′ ⁇ h1,1.1 and s31 ′ ⁇ h21 ′ are added to ⁇ (step 564).
  • the secret key of the jth user uij in the i-th layer is sij
  • the corresponding public key is vij
  • the verifier is the verification key of all the users involved in the ordered signature and the data generated or edited by the user.
  • all hash values hij are known or can be calculated.
  • the public key of the top user who is the general director is v
  • Jj indicates all values from 1 to pij.
  • step 592 of FIG. Calculate i and j indicate all users in all layers.
  • step 594 e (g, ⁇ ) is calculated.
  • step 596 If the determination result in step 594 is affirmative, this verification process ends. If the determination result in step 594 is negative, an illegal process is performed, and in step 598 the fraud is notified.
  • e_all is as follows.
  • e (g, ⁇ ) becomes the following when deformed, and coincides when correct processing is performed.
  • a signature ⁇ ij different from that for change or deletion is used.
  • control of the data structure indicating the relationship between the edit control and the edit order is performed separately.
  • a user in the first hierarchy uses a signature for changing or deleting a partial content created by himself as an individual signature of an ordered signature.
  • Signature generation for the second and subsequent layers is performed using the signature generated for the first layer.
  • An ordered signature in each layer is generated as follows (Equation 50).
  • each signature set is the same as when editing control is performed, and it is assumed that all intermediate signatures are output here for simplicity.
  • xj and yj represent hash values for change and deletion, respectively. Therefore, the signature generation process is performed in step 95 as shown in FIG. 48 in place of the change and deletion aggregate signature generation (steps 96 and 98 (see FIG. 6)) in the first embodiment.
  • An ordered signature is generated, and in step 44 of FIG. 3, an ordered signature is output instead of the change and delete aggregate signature output.
  • the individual signature related to editing is changed in the same manner as in the first embodiment. That is, the intermediate signature is not in the first embodiment, but the intermediate signature is changed in the same manner as the individual signature.
  • step 138 in the third embodiment, as shown in FIG. 49, the processing of steps 152 and 158 in FIG. 10 is not executed. Since the intermediate signatures associated with all the individual signatures are in the signature set, instead of step 158, in step 157, the signature related to the partial content before the change is deleted from the ordered signature for each layer, and the changed partial content is related. Add a new signature.
  • s21 ⁇ h11 are subtracted from ⁇ 21 to generate ⁇ 11 ′ and ⁇ 11 ′ for the partial content A1 ′ newly created by the person in charge.
  • S21 ⁇ h21 ′ and s21 ⁇ h11 are generated and added to the data newly constructed by the editor.
  • the change after the 3rd hierarchy is performed according to the change of a 1st hierarchy part. That is, since ⁇ 21 and h31 are changed with respect to the change of the partial content A1 with respect to ⁇ 31, ⁇ 21 and h31 are changed to ⁇ 21 ′ and h31 ′. Therefore, the ordered signature changes as follows.
  • the newly created ⁇ 11 ′ is output to the signature set, and when deletion is also enabled, ⁇ 11 ′ is also output to the signature set (all intermediate signatures are output to the signature set) Suppose).
  • control state (a) it is executed by deleting the individual signature output to the signature set.
  • deletion of the changeable / deletable partial content does not execute the processing of steps 196 and 202 in FIG.
  • step 201 instead of step 202 in FIG. 12, the signature related to the partial content before deletion is deleted from the ordered signature for each layer, and a new signature related to the deleted partial content is added. Therefore, when the partial content A1 is deleted, the signature is changed as follows.
  • step 252 of FIG. 17 is not executed.
  • step 251 the signature related to the partial content before the change is deleted from the ordered signature for each layer, and a new signature related to the changed partial content is added.
  • the change to the partial content A2 is as follows. That is, since the partial content A2 is disclosed only for the individual signature for change, it is replaced with a new signature, and the accompanying intermediate signature is also replaced. In this case, although ⁇ 12 for deletion is not changed even though the data has been changed, the difference data of the hash value is stored, so the difference value of the changed data is restored to the original hash value and the verification is performed. Do. When this data can be changed, ⁇ 11 ′ is output to the signature set.
  • step 285 deletion of changeable / deleteable data (control state (c)) will be described.
  • step 285 the signature related to the partial content before deletion is deleted from the ordered signature for each layer, and a new signature relating to the deleted partial content is added. .
  • step 331 a new signature relating to the added partial content is added to the ordered signature for each layer.
  • a case where data is added between partial content A1 and partial content A2 will be described as an example. If signatures for change and deletion are generated for the added partial content A1.1 and used in the group of partial content A1 to partial content A4, ⁇ 21 and ⁇ 31 are changed as follows. If the added partial content can be changed, ⁇ 1.1.1 is output to the signature set, and if it can be deleted, ⁇ 1.1.1 is output.
  • the editing process implements the signature replacement process described in the first embodiment by subtracting and adding signatures instead of dividing and dividing aggregate signatures.
  • the process related to the intermediate signature is not in the first embodiment, since all the intermediate signatures are output here, it is obvious that the process can be controlled by the same process as the individual signature.
  • the ordered signatures after the third layer are not in the first embodiment, but it is obvious that the signatures after the third layer can be easily realized because the second layer signature is regarded as an individual signature and is repeated. is there.
  • the editing process of the third embodiment is the same as the process of subtracting and adding the ordered signature including the intermediate signature, by updating the dividing and multiplying application gate signatures for change and deletion of the first embodiment. Become.
  • the verification process of the third embodiment is realized by replacing the verification of the aggregate signature with the verification of the ordered signature in the verification process shown in the first embodiment. Further, the signature is not replaced for the part that cannot be changed or deleted in editing, but the part is verified by returning the hash value to the hash value for the original partial content by the hash value difference. Therefore, the verification process of the third embodiment is the same as the first verification process (FIG. 28) in which the verification process of FIG. 35 using ⁇ and ⁇ is replaced with FIG.
  • all intermediate signatures are output. This is no problem with editing control for each partial content in the first layer. That is, even if all intermediate signatures are output, the same thing as in the first embodiment can be realized.
  • it is desired to control data editing in the second and subsequent layers rather than editing individual partial contents in the first layer For example, in the example of FIG. 37, the partial content A1 and the partial content A2 themselves can be changed, but it is desired that the change of the data composed of the combination of the partial contents A1 to A4 performed by the person in charge at the second level is not allowed is there.
  • the responsible person may delete the signature for change from the partial contents A1 and A2, but this can be dealt with by not outputting s21 / h21 generated by the responsible person. If s21 / h21 is not output, partial content A1 and partial content A2 can be changed if used alone, but ⁇ 21 cannot be changed for data consisting of partial contents A1 to A4, so the data edited by the person in charge is changed. Can not. Further, when s21 ⁇ h11 is not output, only the change related to the partial content A1 can be disabled, and when s21 ⁇ h21 is not output, only the change related to the partial content A2 can be disabled.
  • the changeable / deletable partial content is replaced with a signature, and its editing history does not remain.
  • the editing history regarding the partial content can be confirmed by confirming the hash value difference.
  • the deletion is not a change to empty data, the signature information is lost and the editing history may not be known.
  • a new signature set is prepared for partial contents that can be changed and deleted. That is, the new signature set is a set of hash value differences before and after change and before and after deletion. This is for leaving an editing history. That is, although edit control and hierarchical structure control can be executed in the first embodiment, a hash value difference is left as a record in order to leave an edit history. Then, the difference between the hash values is stored.
  • the deletion is not a real deletion, but a replacement with empty data, and control data such as the hash value difference so far is left. As a result, a history of changes / deletions of all data can be saved.
  • editing history is also kept for partial content for addition by leaving all hash value differences for subsequent editing starting from the first empty data. Will be able to.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】著作者がコンテンツを公開する時に、そのコンテンツの各部分において編集の許諾を変更不能な形で明示する。 【解決手段】コンテンツを例えば6つの部分A1~A6に分割する(d)。各部分コンテンツに対応して、部分コンテンツを追加できるように空データを配置する(d)。部分コンテンツA1を変更可能である場合には、テーブルGcに個別署名を記憶し(l)、部分コンテンツA1を削除可能である場合には、テーブルGdに別の個別署名を記憶する(m)。部分コンテンツA1に対応して、更に部分コンテンツを追加可能の場合、テーブルGaに更に別の個別署名を記憶する(n)。これらのテーブルに個別署名がなければ、対応する部分コンテンツを変更、削除、追加することができないことが分かる。

Description

デジタルデータ編集制御方法、装置、及びプログラム、及びコンピュータ可読記憶媒体
 本発明は正当にデジタルデータの編集が行われたかを検証するための技術に関する。特に、データがデジタルコンテンツの場合、著作権を保護しながらデジタルコンテンツの編集を行えるようにする著作権保護技術に関する。また、デジタルコンテンツの編集が著作者の許可範囲内で行われたかどうかを検証できる技術に関する。 
 現在、デジタル放送やDVDに象徴されるようにコンテンツをデジタル化して流通及び利用することが一般的になっている。これらのシステムではCAS(Conditional Access System)やCPRM(Content Protection for Recordable Media)など暗号技術を利用したコンテンツの著作権保護が行われている。これらのシステムを流れるコンテンツはプロフェッショナルなコンテンツ制作会社によって制作・流通されることが一般的で、そこで行われる著作権保護は正当なユーザには視聴を許可するが、不正ユーザには視聴させないという視聴制御や、許可回数以内のコピーのみを可能にするコピー制御が一般的である。しかし、近年流行しているYouTube(登録商標)のような視聴者参加型コンテンツにおいては、一般ユーザがコンテンツを作成または既存コンテンツを独自に編集して新たなコンテンツとして創出・流通させている。このような視聴者参加型コンテンツにおいてはネット上に公開したコンテンツの利用は自由にしてもらって良いが、そのコンテンツが2次著作物などに利用されるときそれが自分の著作物であるということを主張したいという要求が多い。このような場合、従来のコンテンツの不正利用を防止する暗号化による視聴制御やコピー制御は必要なく、コンテンツの制作者などに関する著作者情報が変更されない仕組みが必要となる。また、著作者が定めた範囲内では自由に編集が行えるが、その範囲外の処理をすると検証できるという編集制御を実現する仕組みが必要になる。ここで、編集制御とは著作者が定めたコンテンツの指定部分に関する編集に関する許諾を明示し、それに沿った処理が行われたかを検証できる技術を指す。
 しかし、現在コンテンツの編集をしようとする編集者は著作者にいちいち許諾を取るという面倒な手続きをとるか、その著作権を無視して勝手に編集するということが行われている。そこで、著作者のコンテンツの編集に対する意思を明示させる仕組みがあれば、編集者は著作者に連絡を取らなくてもその範囲であれば自由に編集をして新たなコンテンツを生み出すことができるようになる。しかし、現在はそのような仕組みがないため公開されたコンテンツの著作者の編集に対する意思が不明であり、著作権を考慮した編集が行われにくい。 
 また、現在の2次著作物に関しても著作者に許諾をとって正当に製作されたものも、そうでないものもネット上では区別がつかない。これは、2次著作物について正しく(1次著作者の意思に違反せず)編集されていることを証明する技術がないためである。よって、編集が著作者の意思に沿って行われたかを検証する技術があれば、編集者にとっても2次著作権を正当に主張できメリットをもつ。また、1次著作物を含むn次著作物が正当に製作されていることを検証できる技術があれば、その仕組みを通るコンテンツは正当なものと見なされ、そうでないコンテンツは違法な著作物であると判断できるようになる。特に、その検証は誰にでも行えることが望ましい。
 今まで、例えばゲームのキャラクタなどにおいてはユーザが元のキャラクタを変更し、楽しむというシステムは存在している。すなわち、そのキャラクタのデータを暗号化し、そのメーカのゲーム機以外では復号できず、他のゲームでの使用や一般への流通は考えていないシステムなどは存在する。しかし、このような仕組みは特定のゲーム内に限定されており、視聴者参加型コンテンツのようなオープンなシステムにおいては使えない。また、そのようなゲーム機は当初メーカまたはそのゲーム製作者が与えた編集に関する許諾を変更することはできず、編集結果を誰もが検証できるようにするといった概念はない。 
 よって、今まで視聴者参加型コンテンツのようなオープンなシステムにおいて、デジタルコンテンツの編集の許諾に関する著作者の意思を変更不能な形で明示したり、編集されたデジタルコンテンツが著作者のその許可範囲内で製作されたかどうかを検証しようという試みがなされたことは著者が知る限りなく、このような技術の構想さえなかったと言える。 
K、 Miyazaki、 G、Hanaoka、 H、 Imai、 " Invisibly Sanitizable Digital Signature Scheme、" ICICE Trans、 Fandamentals、 Vol、 E91-A、 No、 1、 2008、 泉雅巳、 伊豆哲也、 國廣昇、 太田和夫、 "墨塗り・削除署名の拡張"、2007-CSEC-38、 pp、355-361、 2007、 T、 Izu、 N、 Kunihiro、 K、 Ohta、 M、 Takenaka、 T、Yoshioka、 "A Sanitizable Signature Scheme with Aggregation、" ISPEC 2007、LNCS 4464、 pp、51-64、 2007、 伊豆哲也、 佐野誠、 國廣昇、 太田和夫、 武仲正彦、 "Aggregate 署名を用いた墨塗り署名方式"、 SCIS2007、 2007、 D、 Boneh、 C、 Gentry、 B、 Lynn、 H、 Shacham、 "Aggre-gate and Verifiably Encrypted Signatures from Bilinear Maps、" EUROCRYPT 2003、 LNCS 2656、 pp、416-432、 Springer、2003、
 本発明は、上述の現状に鑑み、著作者がコンテンツを公開する時に、そのコンテンツの各部分において編集の許諾を変更不能な形で明示する技術と、そのコンテンツの編集を許可された編集者はその著作者の許可範囲内でのみで自由に編集を行え、かつそれが著作者の許諾範囲内で行われたどうかを誰でも検証できる技術を与えることを目的とする。 
 この技術に関する大きな課題は以下の点を満足させる必要があることである。 
 (1) オープンなシステムにおいて著作者が示した許諾条件が他者によって変更ができない形で明示でき、不当な変更が行われた場合それが検出できる。 
 (2) コンテンツ自体が著作者の許諾条件範囲で製作されていることを誰でも検証できる。 
 (3) コンテンツを正当に編集した編集者も自分が作成したコンテンツに対して編集の許諾を設定でき自分の著作権を明示できる。
 以上を実現するために、編集許可部と編集不許可部に異なる制御コード、すなわち電子署名を用いてコンテンツの編集を制御するシステムを考える。一般的に電子署名はコンテンツへの署名後、コンテンツまたは自分自身に変更が加えられると署名の整合性がとれなくなるため、署名後のコンテンツに対してはいかなる編集も加えることができず、かつ公開鍵暗号をベースとする。しかし、電子署名をそのまま用いると正当に編集されたものも不正と見なされ区別ができない。よって、Aggregate署名を用いる墨塗り署名を拡張することを考える。墨塗り署名は、署名後の電子文書において、部分文書の一部秘匿や削除を行っても修正文書の正真性の確保が実現可能であり、これまでに数多くの提案がなされている(非特許文献1~5)。しかし、それら従来の墨塗り署名は、行政文書等における情報秘匿を想定しているため、データの削除や一部墨塗り(ハッシュ値という特定データへの変更)のみが実現される。そのため、編集制御に対する著作権保護の実現に必要な任意データへの変更・削除・追加に関する事前制御ができていない。ここで、事前制御とは署名入りコンテンツを著作者が作成時に変更・削除・追加してよい部分を予め明示でき、編集者がそれに違反した処理を行えば、そのコンテンツ全体の署名と整合しなくなるように処理を施すことを意味する。よって、従来技術の中に本発明の課題を解決できる技術は存在しない。 
 特に、従来の墨塗り署名は対象とするデータはそのデータのハッシュ値(既定値)と置換することで情報の秘匿を行い、また、そのハッシュ値は署名検証に用いることでデータの正真性を示すことができる。しかし任意データへの変更の場合、対象とするデータはそのデータのハッシュ値とは異なるデータと置換するために、署名検証に用いるハッシュ値を保持できなくなってしまう。すなわち、墨塗り例では墨塗られた部分のハッシュ値を検証でそのまま利用できるのに対し、変更例では保持している署名情報と変更部分のハッシュ値が異なるため検証に失敗する。 
 また、従来方式では墨塗りへの変更や削除は実在する既存データに対して行われるため、そのデータに変更と削除に関する個別署名を直接設定することができる。しかし、追加制御は既存データ間にデータを追加するか否かの制御であり、追加するデータは既存データ中には存在しないため、そのままでは個別署名を設定することができない。そこで、追加したい位置の前後の既存データに追加の可否を示す制御情報を持たせる場合、その前後のデータのどちらか(または両方)が削除されてしまうと、その制御情報も削除されてしまい、追加可否の検証を行えなくなる。 
 また、削除においては削除状態にあるデータは電子署名も削除されるため、削除状態にあるデータに対する制御は不能と言える。よって、削除状態にあるデータ位置に異なるデータを追加することが可能である。すなわち、電子署名によって削除状態にあるデータは制御情報である電子署名も削除されるため、制御状態にないと言える。デジタルコンテンツの編集を考えた場合、削除したデータをそのままにする制御と、削除したデータ位置に新たなデータを挿入する制御が考えられる。よって、これらを制御できる技術が望まれる、 
 よって、以上のような任意のデータへの変更制御や追加制御、削除制御に対応し、かつ事前制御可能な署名方式が必要である、 
 以上の課題を解決するために、本発明ではデジタルコンテンツを制御したい単位に応じて複数の部分データに分割し、著作者が部分データに対する電子署名を生成して、その署名とともにデジタルコンテンツを公開し、編集者が公開されたコンテンツの部分データを編集し、その部分データに対する電子署名を変更して再公開し、検証者が著作者および編集者によって生成されたコンテンツと電子署名の整合性を検証することにより、正当な編集が行われているかを検証でき、正当な編集が行われている場合視聴を許可し、行われていなければ視聴許可しないという制御が実現できる仕組みを提供する。特に、削除を空データへの置き換えとし電子署名を残すことにより、その整合性により削除状態にある部分データが署名の整合性により削除状態を保持することも、再び部分データを挿入可能にすることも選択できるように制御する仕組みを与える。 
 また、著作者が部分データの追加を制御するためのデータに対して電子署名を生成し、編集者がデータの追加に関してその電子署名を変更・追加し、検証者が著作者および編集者によって生成されたコンテンツと電子署名の整合性を検証する場合においても、追加されたデータは他の既存データと同様に電子署名によって編集制御可能である仕組みを与える。 
 ここでは、編集制御はデジタルコンテンツに存在する部分データに対する[変更可・不可][削除可・不可]の制御を指し、追加部分に対しては[追加可・不可]の制御を指す。 
 以上の処理は、正当に行われなければ署名とコンテンツが整合しない。すなわち、編集者が著作者の意図に反する処理を行えば、署名とコンテンツが整合しないため、そのコンテンツは再生不可とすることができる。また、編集者は自分が編集した部分については、自分の電子署名によってその部分の著作権を主張でき、それ以降の編集には編集者の意図も反映される。すなわち、n次著作物の編集者は正当に編集されたn-1次編集物までの著作者・編集者の意図に反する処理を行えば、署名とコンテンツが整合しないため、そのコンテンツは再生不可とすることができる。
 公開されたコンテンツに著作者の編集に関する意思が明示されているので、コンテンツの編集をしようとする編集者は著作者にいちいち許諾を取るという面倒な手続きがなくなり、その範囲内で自由に編集が可能になる。 
 ネットに公開したコンテンツの利用は自由だが、2次著作物以降に利用された場合自分の著作物であるということを明示したいという著作者は、それが可能になる。 
  編集された著作物が正しく(1次著作者の意思に違反せず)生成されていることを検証できるようになり、提案方式を通るコンテンツは正当であり、そうでないコンテンツは不当であることが区別できるようになる、これによって、編集者は自分が作成した2次著作権を正当に主張できる、 
 以上のことがオープンなシステムとして実現でき、誰でもコンテンツ生成に関する正当性を検証できる。 
実施形態のデータ生成編集検証システムのブロック図である。 著作者端末12のブロック図である。 コンテンツの制御データの作成処理ルーチンを示すフローチャートである。 図3における入力処理(ステップ40)のサブルーチンを示すフローチャートである。 図3における制御データの作成処理(ステップ42)のサブルーチンの一部を示すフローチャートである。 図3における制御データの作成処理(ステップ42)のサブルーチンの残りを示すフローチャートである。 制御データ、各種テーブル、アグリゲートを示す図である。 編集者端末14が実行する編集処理ルーチンを示すフローチャートである。 (a)は、制御状態(a)の内容を示し、(b)は、編集対象の制御状態について制御状態(a)が特定された場合(ステップ110が肯定判定)におけるステップ112の処理のサブルーチンを示すフローチャートである。 部分コンテンツiの変更に伴う制御データの変更処理(図9のステップ138)のサブルーチンを示すフローチャートである。 部分コンテンツの変更処理を説明する図である。 部分コンテンツiの削除に伴う制御データの変更処理(図9のステップ144)のサブルーチンを示すフローチャートである。 部分コンテンツの削除処理を説明する図である。 部分コンテンツiを変更も削除もされず、制御状態の変更があった場合の制御データの変更処理(図9のステップ146)のサブルーチンを示すフローチャートである。 制御状態(a)から制御状態(b)、(c)、(d)に変更された場合の変更可能テーブル及び削除可能テーブルの内容を示す図である。 (a)は、制御状態(b)の内容を示し、(b)は、図8におけるステップ114で、編集対象の制御状態について制御状態(b)が特定されたと判断された場合(ステップ114が肯定判定)におけるステップ116の処理のサブルーチンを示すフローチャートである。 部分コンテンツiの変更に伴う制御データの変更処理(図16のステップ244)のサブルーチンを示すフローチャートである。 部分コンテンツの変更処理を説明する図である。 部分コンテンツiの制御状態の変更に伴う制御データの変更処理(図16のステップ246)のサブルーチンを示すフローチャートである。 (a)は、制御状態(c)の内容を示し、(b)は、図8におけるステップ118で、編集対象の制御状態について制御状態(c)が特定されたと判断された場合(ステップ118が肯定判定)におけるステップ120の処理のサブルーチンを示すフローチャートである。 部分コンテンツiの削除に伴う制御データの変更処理(図20のステップ278)のサブルーチンを示すフローチャートである。 部分コンテンツの削除処理を説明する図である。 部分コンテンツiの制御状態の変更に伴う制御データの変更処理(図20のステップ280)のサブルーチンを示すフローチャートである。 (a)は、制御状態(e)の内容を示し、(b)は、図8におけるステップ122で、編集対象の制御状態について制御状態(e)が特定されたと判断された場合(ステップ122が肯定判定)におけるステップ124の処理のサブルーチンを示すフローチャートである。 (a)は、制御状態(g)の内容を示し、(b)は、編集対象の制御状態について制御状態(g)が特定された場合(ステップ122が否定判定)におけるステップ126の処理のサブルーチンを示すフローチャートである。 図25(b)における制御データの変更処理(ステップ318)のサブルーチンを示すフローチャートである。 部分コンテンツの追加処理を説明する図である。 検証者端末16が実行する検証処理ルーチンを示すフローチャートである。 図28のステップ364における部分コンテンツが追加されていない部分の検証処理のサブルーチンを示すフローチャートである。 図28のステップ368における部分コンテンツの並びの検証処理のサブルーチンを示すフローチャートである。 図28のステップ372における削除の検証処理のサブルーチンを示すフローチャートである。 不正削除の判定を説明する図である。 図28におけるステップ376における変更の検証処理のサブルーチンを示すフローチャートである。 不正変更を説明する図である。 図28のステップ380におけるコンテンツの全体の整合性の検証処理のサブルーチンを示すフローチャートである。 各制御状態の内容を示す図である。 部分コンテンツと署名の関係を示す図である。 第2の実施の形態における、図3における制御データの作成処理(ステップ42)のサブルーチンの残りを示すフローチャートである。 第2の実施の形態における、制御データ、各種テーブル、アグリゲートを示す図である。 図39のステップ101のサブルーチンを示すフローチャートである。 第2の実施の形態における編集処理を示すフローチャートである。 第2の実施の形態における検証処理を示すフローチャートである。 図41のステップ542のサブルーチンを示すフローチャートである。 図43のステップ556のサブルーチンを示すフローチャートである。 図43のステップ560のサブルーチンを示すフローチャートである。 図43のステップ562のサブルーチンを示すフローチャートである。 図42のステップ546のサブルーチンを示すフローチャートである。 第3の実施の形態における、図3における制御データの作成処理(ステップ42)のサブルーチンの残りを示すフローチャートである。 第3の実施の形態における、部分コンテンツiの変更に伴う制御データの変更処理(図9のステップ138)のサブルーチンを示すフローチャートである。 第3の実施の形態における、部分コンテンツiの削除に伴う制御データの変更処理(図9のステップ144)のサブルーチンを示すフローチャートである。 第3の実施の形態における、部分コンテンツiの変更に伴う制御データの変更処理(図16のステップ244)のサブルーチンを示すフローチャートである。 第3の実施の形態における、部分コンテンツiの削除に伴う制御データの変更処理(図20のステップ278)のサブルーチンを示すフローチャートである。 第3の実施の形態における、図25(b)における制御データの変更処理(ステップ318)のサブルーチンを示すフローチャートである。
 以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
[第1の実施の形態]
 最初に、本実施形態の原理を説明する。
 本実施形態では、デジタルコンテンツを構成する部分データを実データと空データの2種類で構成する。実データとは実在する部分データであり、再生器が再生対象とするコンテンツの部分(部分コンテンツ)を構成する。空データは再生器が再生対象とはしないデータであり、データの追加や削除を制御するための制御データである。追加制御は再生機器が再生対象としない空データを電子署名で制御することにより実現する。また、削除制御は部分データを実際に削除するのではなく、前記空データに置き換え、そのデータに対する変更の可否を電子署名で制御することにより実現する。また、部分データの別の分類として、既存データと追加データに分ける。既存データとは著作者が最初に設定した部分データであり、それを識別するID番号として整数の値をもつ。基本的に既存データはすべて実データであるが、空データを含んでいてもよい。追加データとは既存データ以外の部分データであり、既存データ間に追加される部分データである。よって、追加データは追加用空データと追加処理によって加わった実データから構成される。また、IDiとIDi+1の既存データ間の追加データはJ個の追加が許される場合、それを識別するID番号として小数点を含む形、すなわちIDi.j(j=1,…,J)という形で与えられる。よって、実データは削除処理されていない既存データと追加処理によって加わった空データでない部分データからなり、空データは削除処理によって変更されたデータとまだ追加されていない制御データからなる。 
 一方,任意のデータへの変更制御はアグリゲート(Aggregate)署名とハッシュ値の差分保持を組み合わせることによって実現する.本実施例は下記に示す実データに対する変更と削除に関する全状態を電子署名によって制御する基本方式を示す。さらに、追加用空データを電子署名の制御により実データとして追加する方式も示す。
 まず、実施形態に係るデータ生成編集検証システムの構成を説明する。
 図1に示すように、データ生成編集検証システムは、データ(例えば、コンテンツ=著作物)を生成するための著作者端末12、コンテンツを編集するための編集者端末14、及びコンテンツの編集を検証するための検証者端末16がネットワーク10を介して相互に接続して構成されている。
 著作者端末12、編集者端末14、及び検証者端末16は同様の構成であるので、以下、著作者端末12の構成を説明して、その他の編集者端末14、及び検証者端末16の構成の説明を省略する。図2に示すように、著作者端末12は、CPU(中央処理装置:Central Processing Unit)20、ROM(Read Only Memory)22、及びRAM(Random Access Memory)24が、バス34を介して相互に接続されている。バス34には更に、記憶装置26、入力装置28、表示装置30、及びインターフェイス32が接続されている。
 著作者端末12のROM22には、図3に示す、コンテンツの制御データの作成処理プログラムが記憶されている。CPU20は、ROM22からコンテンツの制御データの作成処理プログラムを読み出してRAM24に展開し、コンテンツの制御データの作成処理プログラムを実行する。なお、編集者端末14のROM22には、図8に示す、コンテンツの編集処理プログラムが記憶され、検証者端末16のROM22には、図28に示す、コンテンツの編集の検証処理プログラムが記憶されている。
 著作者端末12の記憶装置26には、著作者用の秘密鍵sk0、公開鍵pk0が記憶され、編集者端末14の記憶装置26には、編集者用の秘密鍵sk1、公開鍵pk1が記憶され、検証者端末16は、著著作者端末12及び編集者端末14のそれぞれから、作者用の公開鍵pk0、編集者用の公開鍵pk1を入手することができる。
 次に、実施形態に係るデータ生成編集検証システムの作用を説明する。
 図3に示すように、コンテンツの制御データの作成処理ルーチンは、スタートすると、ステップ40で、表示装置30の画面の表示内容に従った著作者の操作に従って入力装置28が、コンテンツ、及びコンテンツの編集の方法を指定するデータを入力する入力処理を実行する。ステップ42で、CPU20は、後述する制御データの作成処理を実行し、ステップ44で、インターフェイス32は、コンテンツ及び制御データを編集者端末14に送信する。
 図4には、図3における入力処理(ステップ40)のサブルーチンが示されている。ステップ46で、コンテンツを作成し、ステップ48で、図7(d)に示すように、コンテンツをn個の部分コンテンツに分割する。ステップ50で、各部分コンテンツへの変更及び削除の可否を指定する。ステップ52で、各部分コンテンツに対応して新たな部分コンテンツの追加の可否の指定、追加が可能な場合に追加可能な数の指定をする。
 図5には、図3における制御データの作成処理(ステップ42)のサブルーチンが示されている。ステップ54で、図7(a)に示すように、コンテンツに、当該コンテンツを識別する識別子IDを付与する。ステップ56で、各部分コンテンツを識別する変数iを0に初期化し、ステップ58で、変数iを1インクリメントし、ステップ60で、図7(b)に示すように、変数iで識別される部分コンテンツiに、識別子IDiを付与する。
 ステップ62で、コンテンツの識別子ID、部分コンテンツiの識別子IDi、及び部分コンテンツMiを用いて、部分コンテンツiのハッシュ値hi=H(ID||IDi||Mi)を計算する。H()はハッシュ関数を、例えば、(ID||IDi)は識別子IDと識別子IDiを連接させることを意味する。
 ステップ64で、コンテンツの識別子ID、部分コンテンツiの識別子IDi、ハッシュ値hi、0のビット列(公開される)、及び著作者の秘密鍵sk0を用いて、変更用の個別署名
Figure JPOXMLDOC01-appb-M000001
を計算し、ステップ66で、コンテンツの識別子ID、部分コンテンツiの識別子IDi、ハッシュ値hi、1のビット列(公開される)、及び著作者の秘密鍵sk0を用いて、削除用の個別署名
Figure JPOXMLDOC01-appb-M000002
を計算する。
 ステップ68で、図4のステップ50で、部分コンテンツiに対して変更可能が指定されたか否かを判断し、部分コンテンツiに対して変更可能が指定された場合には、本制御データの作成処理は、ステップ70に進む。ステップ70で、部分コンテンツiを変更可能であることを著作者が指定したことを示すため、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに、変更用の個別署名を登録する。ステップ70の後、本制御データの作成処理は、ステップ72に進む。一方、部分コンテンツiに対して変更可能が指定されなかった場合には、本制御データの作成処理は、ステップ70をスキップして、ステップ72に進む。
 このように、変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに、変更用の個別署名が登録されているか否かにより、後の編集の際、部分コンテンツiを変更可能であることを著作者が指定したか否かを判断することができる。
 ステップ72で、図4のステップ50で、部分コンテンツiに対して削除可能が指定されたか否かを判断し、部分コンテンツiに対して削除可能が指定された場合には、本制御データの作成処理は、ステップ74に進む。ステップ74で、部分コンテンツiを削除可能であることを著作者が指定したことを示すため、図7(m)に示す削除可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに、削除用の個別署名を登録する。ステップ74の後、本制御データの作成処理は、ステップ76に進む。一方、部分コンテンツiに対して削除可能が指定されなかった場合には、本制御データの作成処理は、ステップ74をスキップして、ステップ76に進む。ステップ76で、図7(e)に示す制御状態明示テーブルCSにおける部分コンテンツiに対応する位置CSiに、制御状態を示す情報を登録する。
 このように、削除可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに、削除用の個別署名が登録されているか否かにより、後の編集の際、部分コンテンツiを削除可能であることを著作者が指定したか否かを判断することができる。
 図6のステップ78で、部分コンテンツiに対応して新たに部分コンテンツを追加できるように付与する空データを識別する変数jを0に初期化し、ステップ80で、変数jを1インクリメントする。ここで、空データを説明する。図7(d)に示すように、コンテンツがn(例えば、6個)に分割されることにより、部分コンテンツA1~A6が得られる。上記のように、本実施の形態では、部分コンテンツA1~A6のそれぞれに対して更に部分コンテンツが追加可能に著作者は指定することができる。著作者が部分コンテンツA1~A6のそれぞれに対して更に部分コンテンツが追加可能に指定しても、部分コンテンツに新たに部分コンテンツが追加されるまでは、当該追加される部分コンテンツは存在しない。よって、当該追加される部分コンテンツのデータは存在しない。そこで、将来追加されるかも知れない部分コンテンツのデータを代替するデータが、空データdjである。空データdjのデータ内容は予め定められている。
 ステップ82で、図7(c)に示すように、変数jで識別される空データdjに識別子IDijを付与し、ステップ84で、空データdjのハッシュ値hj=H(ID||IDi||dj)を計算し、ステップ86で、コンテンツの識別子ID、空データjの識別子IDij、ハッシュ値hj、0のビット列(公開される)、及び著作者の秘密鍵sk0を用いて、追加用の個別署名
Figure JPOXMLDOC01-appb-M000003
を計算する。
 ステップ88で、図4のステップ52で部分コンテンツdjを追加可能と著作者が指定したか否かを判断し、部分コンテンツdjを追加可能と著作者が指定したと判断された場合には、ステップ90で、図7(n)に示す追加可能指示テーブルGaの空データdjに対応する位置に、個別署名(数3)を登録する。ステップ90の後は、本制御データの作成処理は、ステップ92に進む。一方、部分コンテンツdjを追加可能と著作者が指定しなかったと判断した場合には、本制御データの作成処理は、ステップ90をスキップして、ステップ92に進む。
 このように、追加可能指示テーブルGaにおける部分コンテンツdjに対応する位置Gdjに、追加用の個別署名が登録されているか否かにより、後の編集の際、部分コンテンツdjを削除可能であることを著作者が指定したか否かを判断することができる。
 ステップ92で、変数jが、図4のステップ52で著作者が追加可能と指定した部分コンテンツの個数Jに等しいか否かを判断する。変数jが個数Jに等しいと判断されなかった場合には、著作者が追加可能と指定した部分コンテンツの個数J分、上記処理を実行していないので、ステップ80に戻って、上記処理(ステップ80~92)を実行する。変数jが個数Jに等しいと判断された場合には、著作者が追加可能と指定した部分コンテンツの個数J分、上記処理を実行したので、ステップ94で、変数iが、部分コンテンツの個数nに等しいか否かを判断する。変数iが個数nに等しくない場合には、以上の処理が実行されていない部分コンテンツがあるので、ステップ58に戻って、以上の処理(ステップ58~94)を実行する。一方、変数iが個数nに等しい場合には、全ての部分コンテンツがについて以上の処理が実行されたので、ステップ96に進む。
 ステップ96で、図7(i)に示すように、変更用のアグリゲート署名
Figure JPOXMLDOC01-appb-M000004
を計算し、ステップ98で、図7(j)に示すように、削除用のアグリゲート署名
Figure JPOXMLDOC01-appb-M000005
を計算し、ステップ100で、図7(k)に示すように、追加用のアグリゲート署名
Figure JPOXMLDOC01-appb-M000006
を計算する。
 上記のように著作者は、部分コンテンツの変更や部分コンテンツの削除の可能又は不可能を指定したり、部分コンテンツに対して新たに部分コンテンツの追加の可能又は不可能を指定したりすることができる。
 よって、著作者の上記指定の内容によって、部分コンテンツについては次の種々の制御状態が指定される。即ち、図36に示すように、第1に、部分コンテンツの変更及び削除が可能な制御状態(a)がある。第2に、部分コンテンツの変更が可能であるが削除が禁止の制御状態(b)がある。第3に、部分コンテンツの変更が禁止であるが削除が可能の制御状態(c)がある。第4に、部分コンテンツの変更及び削除が禁止の制御状態(d)がある。第5に、部分コンテンツの変更が可能であり、当該部分コンテンツが削除された状態の制御状態(e)がある。第6に、部分コンテンツの変更が禁止であり、当該部分コンテンツが削除された状態の制御状態(f)がある。第7に、部分コンテンツが追加可能である制御状態 (g)がある。第8に、部分コンテンツが追加禁止である制御状態(h)がある。
 例えば、識別子ID1で識別される部分コンテンツA1に対応して、変更可能指示テーブルGc及び削除可能指示テーブルGdのそれぞれに、個別署名が記憶されている。よって、部分コンテンツA1の制御状態は(a)である。また、識別子ID2で識別される部分コンテンツA2に対応して、変更可能指示テーブルGcのみに個別署名が記憶されている。よって、部分コンテンツA2の制御状態は(b)である。更に、識別子ID1,jで識別される空データに対応して、追加可能指示デーブルGaに個別署名が記憶されている。よって、当該空データの制御状態は(g)である。
 このように、著作者の上記指定の内容によって部分コンテンツや空データの制御状態がどの制御状態なのかを知ることができるが、本実施の形態で、図7(e)に示すように、各部分コンテンツ及び空データに対応して、制御状態を制御状態明示テーブルCS記憶する。
 以上の処理により、図7(a)~(n)に示すように、制御データが作成される。なお、これらのデータの内、図7(f)~(h)に示す、変更用、削除用、追加用の各個別署名は編集者端末14には送信されない。
 図8には、編集者端末14が実行する編集処理ルーチンが示されている。上記のように、著作者端末12から送信(図3のステップ44参照)されたコンテンツ及び制御データを編集者端末14が受信した場合に、編集処理ルーチンがスタートする。
 ステップ102で、編集者端末14の入力装置28からコンテンツ又は部分コンテンツの編集が指示されたか否かを判断する。当該編集が指示されないと判断された場合には、ステップ128で、編集終了が指示されたか否かを判断する。編集終了が指示されなかった場合には、ステップ102に戻る。
 編集が指示された場合には、ステップ104で、表示装置30の画面に表示された内容に従った編集者の操作に従って入力装置28が編集データを入力する。即ち、どの部分コンテンツに対して削除するか変更するか、変更する場合には変更後の部分コンテンツ、部分コンテンツに更に部分コンテンツを追加する場合には、いくつ追加するか、追加する部分コンテンツ、及び、どの制御状態に変更するかを示すデータを入力する。
 ステップ106で、編集データを、図7(u)に示す編集履歴データに記憶する。即ち、だれがどの部分データについてどのような編集指示がされたのかを記憶する。ステップ108で、編集対象(部分データや空データ)の制御状態を、図7(e)に示す制御状態明示テーブルCSを参照して、特定する。例えば、図7(b)に示す識別子ID1で識別される部分コンテンツA1が編集対象として指定された場合には、制御状態明示テーブルCSから、制御状態(a)が特定される。
 ステップ110、114、118、122、125でそれぞれ、制御状態(a)、(b)、(c)、(e)、(g)が特定されたか否か判断し、各制御状態が特定された場合には、ステップ112、116、120、124、126でそれぞれ、制御状態(a)、(b)、(c)、(e)、(g)に対応する編集処理を実行する。ステップ112、116、120、124、126の処理が実行されると、編集処理はステップ128に移行される。
 ステップ128で、編集の終了が指示されたか否かを判断する。編集の終了が指示されなければ、ステップ102に戻って、以上の処理(ステップ102~128)を実行する。ステップ130で、編集履歴データの署名を計算し、ステップ132で、各データを検証者端末16に出力する。
 図9(b)には、編集対象の制御状態について制御状態(a)が特定された場合(ステップ110が肯定判定)におけるステップ112の処理のサブルーチンが示されている。ここで、制御状態(a)は、図9(a)に示すように、部分コンテンツの変更及び削除が可能な制御状態である。そこで、ステップ134で、編集データ(図8のステップ104参照)に基づいて、編集対象である部分コンテンツの変更が指示されたか否かを判断する。なお、編集対象の部分コンテンツをiで識別する。部分コンテンツiの変更が指示されたと判断された場合には、ステップ136で、編集データに基づいて、図11(a)に示すように、部分コンテンツiを変更(A1からA1’)する。なお、変更後の部分コンテンツi′の内容をMi′とする。ステップ138で、部分コンテンツiの変更に伴い、詳細には後述(図10参照)するように、制御データを変更する。
 ステップ134で部分コンテンツiの変更が指示されたと判断されなかった場合、ステップ140で、編集データに基づいて、編集対象である部分コンテンツiの削除が指示されたか否かを判断する。部分コンテンツiの削除が指示されたと判断された場合には、ステップ142で、図13(a)に示すように、部分コンテンツi(A1)を、識別子IDiを含めて削除し、空データを配置し、ステップ144で、部分コンテンツiの削除に伴い、詳細には後述(図12参照)するように、制御データを変更する。
 ステップ140で部分コンテンツiの削除が指示されたと判断されなかった場合、部分コンテンツiに対する制御状態のみの編集が指示されたことになるので、ステップ146で、詳細には後述(図14参照)するように、制御データを変更する。
 図10には、部分コンテンツiの変更に伴う制御データの変更処理(図9のステップ138)のサブルーチンが示されている。
 ステップ148で、コンテンツの識別子ID、部分コンテンツi′の識別子IDi、部分コンテンツi′のデータ内容Mi′を用いて、変更後の部分コンテンツのハッシュ値hi′=H(ID||IDi||Mi')を計算する。ステップ150で、コンテンツの識別子ID、部分コンテンツi′の識別子IDi、ハッシュ値hi′、0のビット列、及び編集者の秘密鍵sk1を用いて、編集者の変更用の個別署名
Figure JPOXMLDOC01-appb-M000007
を計算し、ステップ152で、数4における変更用のアグリゲート署名、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名、及び数7における編集者の変更用の個別署名を用いて、変更用のアグリゲート署名(数4参照)を次のように変更する(図11(b)も参照)。
Figure JPOXMLDOC01-appb-M000008
 ステップ154で、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名を削除する。
 ステップ156で、コンテンツの識別子ID、部分コンテンツi′の識別子IDi、ハッシュ値hi′、1のビット列、及び編集者の秘密鍵sk1を用いて、編集者の削除用の個別署名
Figure JPOXMLDOC01-appb-M000009
を計算し、ステップ158で、数5における削除用のアグリゲート署名、図7(m)に示す削除可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに記憶されている個別署名、及び数9における編集者の削除用の個別署名を用いて、削除用のアグリゲート署名(数5参照)を次のように変更する(図11(c)も参照)。
Figure JPOXMLDOC01-appb-M000010
 ステップ160で、図7(m)に示す変更可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに記憶されている個別署名を削除する。
 本実施の形態では、上記のようにステップ104で部分コンテンツの制御状態を変更することができる。ステップ170で、ステップ104における編集データに基づいて制御状態(a)が指定されたか否かを判断する。制御状態(a)が指定されたと判断された場合には、制御状態(a)は部分コンテンツの変更及び削除が可能であるので、ステップ172で、図7(l)の変更可能指示テーブルGcの部分コンテンツiに対応する位置Gciに、編集者の変更用の個別署名(数7)を格納し、ステップ174で、図7(m)の削除可能指示テーブルGdの部分コンテンツiに対応する位置Gdiに、編集者の削除用の個別署名(数9)を格納する。以上の処理(ステップ172、174)により、図11(e)及び図11(f)に示すように、変更可能指示テーブルGc及び削除可能指示テーブルGdに格納されている著作者の各個別署名が編集者の各個別署名に変更される。よって、図11(g)及び図11(h)に示すように、更に別の編集者は、部分コンテンツを変更及び削除することが可能となる。
 ステップ170で制御状態(a)が指定されたと判断されなかった場合には、ステップ176で、ステップ104における編集データに基づいて制御状態(b)が指定されたか否かを判断する。制御状態(b)が指定されたと判断された場合には、制御状態(b)は部分コンテンツの変更が可能であるが削除が禁止であるので、ステップ178で、図7(l)の変更可能指示テーブルGcの部分コンテンツiに対応する位置Gciに、編集者の変更用の個別署名(数7)を格納し、ステップ180で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(b)を設定する。以上の処理(ステップ178)により、図11(e)及び図11(f)に示すように、変更可能指示テーブルGcに格納されている著作者の個別署名が編集者の個別署名に変更される。よって、図11(g)及び図11(h)に示すように、更に別の編集者は、部分コンテンツを変更のみが可能となる。
 ステップ176で制御状態(b)が指定されたと判断されなかった場合には、ステップ182で、ステップ104における編集データに基づいて制御状態(c)が指定されたか否かを判断する。制御状態(c)が指定されたと判断された場合には、制御状態(c)は部分コンテンツの変更が禁止であるが削除が可能であるので、ステップ184で、図7(m)の削除可能指示テーブルGdの部分コンテンツiに対応する位置Gdiに、編集者の削除用の個別署名(数9)を格納し、ステップ186で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(c)を設定する。以上の処理(ステップ184)により、図11(e)及び図11(f)に示すように、削除可能指示テーブルGdに格納されている著作者の各個別署名が編集者の各個別署名に変更される。よって、図11(g)及び図11(h)に示すように、更に別の編集者は、部分コンテンツの削除のみが可能となる。
 ステップ182で制御状態(c)が指定されたと判断されなかった場合には、制御状態(d)が指定されたことになる。制御状態(d)は、部分コンテンツの変更及び削除が禁止されている。ステップ154、160でそれぞれ、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名が削除され、図7(m)に示す変更可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに記憶されている個別署名が削除されている(図11(e)及び図11(f)参照)。よって、ステップ188で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(d)を設定する。よって、図11(g)及び図11(h)に示すように、更に別の編集者は、部分コンテンツに対し変更も削除もできない。
 図12には、部分コンテンツiの削除に伴う制御データの変更処理(図9のステップ144)のサブルーチンが示されている。
 部分コンテンツiが、識別子IDiを含めて削除されると、代わりに空データが配置される。そこで、ステップ190で、空データに、削除された部分コンテンツiの識別子IDiを付与し、ステップ192で、空データ(di)のハッシュ値hi′=H(ID||IDi||di)を計算する。ステップ194で、コンテンツの識別子ID、空データdiの識別子IDi、ハッシュ値hi′、0のビット列、及び編集者の秘密鍵sk1を用いて、編集者の変更用の個別署名
Figure JPOXMLDOC01-appb-M000011
 
を計算し、ステップ196で、数4における変更用のアグリゲート署名、図7(l)に示す変更可能指示テーブルGcにおける削除された部分コンテンツiに対応する位置Gciに記憶されている個別署名、及び数11における編集者の変更用の個別署名を用いて、変更用のアグリゲート署名(数4参照)を次のように変更する(図13(b)も参照)。
Figure JPOXMLDOC01-appb-M000012
 
 ステップ198で、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名を削除する。
 ステップ200で、コンテンツの識別子ID、空データdiの識別子IDi、ハッシュ値hi′、1のビット列、及び編集者の秘密鍵sk1を用いて、編集者の削除用の個別署名
Figure JPOXMLDOC01-appb-M000013
 
を計算し、ステップ202で、数5における削除用のアグリゲート署名、図7(m)に示す削除可能指示テーブルGdにおける削除された部分コンテンツiに対応する位置Gdiに記憶されている個別署名、及び数13における編集者の変更用の個別署名を用いて、変更用のアグリゲート署名(数5参照)を次のように変更する(図13(c)も参照)。
Figure JPOXMLDOC01-appb-M000014
 ステップ204で、図7(m)に示す削除可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに記憶されている個別署名を削除する。
 本実施の形態では、ステップ104で部分コンテンツの制御状態を変更することができる。特に、部分コンテンツを削除した場合には、制御状態(a)から、制御状態(e)又は制御状態(f)に変更することができる。ステップ214で、制御状態(e)が指定されたか否かを判断する。部分コンテンツが削除されて配置された空データを変更可能と指定する場合には、制御状態(e)の指定となる。この場合には、ステップ214の判定結果が肯定判定となり、ステップ216で、図7(l)の変更可能指示テーブルGcの部分コンテンツiに対応する位置Gciに、編集者の変更用の個別署名(数7)を格納し、ステップ217で、図7(m)の削除可能指示テーブルGdの部分コンテンツiに対応する位置Gdiに、編集者の削除用の個別署名(数9)を格納し、ステップ218で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(e)を設定する。以上の処理(ステップ216)により、図13(e)及び図13(f)に示すように、変更可能指示テーブルGcに格納されている著作者の個別署名が編集者の個別署名に変更される。そして、ステップ204で、削除可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに記憶されている個別署名が削除されているので、図13(g)及び図13(h)に示すように、更に別の編集者は、部分コンテンツを変更のみが可能となる。
 ステップ214で制御状態(e)が指定されたと判断されなかった場合、制御状態(f)が指定されたことになり、制御状態(f)は、部分コンテンツの変更が禁止であり、上記ステップ198で、変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名が削除されているので、ステップ220で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(f)を設定する。上記のように、ステップ198で、変更可能指示テーブルGcにおける個別署名が削除され、ステップ204で、削除可能指示テーブルGdにおける個別署名が削除されている。従って、変更可能指示テーブルGc及び削除可能指示テーブルGdにおける分コンテンツiに対応する位置には、図13(e)及び図13(f)に示すように個別署名は無い。よって、図13(g)及び図13(h)に示すように更に別の編集者は、部分コンテンツを変更も削除もできない。
 図14には、部分コンテンツiを変更も削除もされず、制御状態の変更があった場合の制御データの変更処理(図9のステップ146)のサブルーチンが示されている。
 制御状態(a)からは、制御状態(b)~(d)の何れかに変更が可能である。そこで、まず、ステップ222で、制御状態(b)に変更されたか否かを判断する。制御状態(b)に変更されたと判断された場合には、ステップ224で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(b)を設定する。制御状態(b)は、部分コンテンツの変更が可能であるが削除が禁止であるので、ステップ226で、図7(m)に示す削除可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに記憶されている個別署名を削除する。よって、図15(b)及び図15(c)に示すように、変更可能指示テーブルGcにのみ個別署名が残っている。
 ステップ222で制御状態(b)に変更されたと判断されなかった場合、ステップ228で、制御状態(c)に変更されたか否かを判断する。制御状態(c)に変更されたと判断された場合には、ステップ230で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(c)を設定する。制御状態(c)は、部分コンテンツの変更が禁止であるが削除が可能であるので、ステップ232で、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名を削除する。よって、図15(b)及び図15(c)に示すように、削除可能指示テーブルGdにのみ個別署名が残っている。
 ステップ228で制御状態(c)に変更されたと判断されなかった場合、制御状態(d)が指定されたことになる。制御状態(d)は、部分コンテンツの変更及び削除が禁止であるので、ステップ236で、図7(m)に示す削除可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに記憶されている個別署名を削除し、ステップ238で、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名を削除する。よって、図15(b)及び図15(c)に示すように、削除可能指示テーブルGd及び変更可能指示テーブルGcの対応する位置には個別署名が残っていない。
 図16(b)には、図8におけるステップ114で、編集対象の制御状態について制御状態(b)が特定されたと判断された場合(ステップ114が肯定判定)におけるステップ116の処理のサブルーチンが示されている。ここで、制御状態(b)は、図16(a)に示すように、部分コンテンツの変更が可能であるが削除が禁止された制御状態である。
 ステップ240で、編集データ(図8のステップ104参照)に基づいて、編集対象である部分コンテンツiの変更が指示されたか否かを判断する。部分コンテンツiの変更が指示されたと判断された場合には、ステップ242で、編集データに基づいて、図18(a)に示すように、部分コンテンツi(例えば、i=2)を変更(A2からA2’)する。なお、変更後の部分コンテンツi′の内容をMi′とする。ステップ244で、部分コンテンツiの変更に伴い、詳細には後述(図17参照)するように、制御データを変更する。
 ステップ240で部分コンテンツiの削除が指示されたと判断されなかった場合、部分コンテンツiに対する制御状態のみの編集が指示されたことになるので、ステップ246で、詳細には後述(図19参照)するように、制御データを変更する。
 図17には、部分コンテンツiの変更に伴う制御データの変更処理(図16のステップ244)のサブルーチンが示されている。図17のステップ248~254は、図10のステップ148~154と同様であるので、その説明を省略する。図17のステップ256~262は、図10のステップ162~168と同様であるので、その説明を省略する。
 なお、以上の処理により、i=2を例にとると、変更用のアグリゲート署名は、図18(b)に示すように、
Figure JPOXMLDOC01-appb-M000015
と変更される。
 ステップ256で、変更前の元の部分コンテンツのハッシュ値hi=H(ID||IDi||Mi)を計算し、ステップ258で、ハッシュ値の差分Δh=hi′-hiを計算し、ステップ260で、図7(o)に示す変更用のハッシュ値差分保持テーブルGbcの部分コンテンツiに対応する位置Gbciにハッシュ値の差分Δhを記憶する。ステップ262で、変更用のハッシュ値差分の署名
Figure JPOXMLDOC01-appb-M000016
と、上記変更用のハッシュ値差分の署名(数11)のアグリゲート署名
Figure JPOXMLDOC01-appb-M000017
を計算する。
 制御状態(b)で部分コンテンツiが削除された場合は、制御状態(b)は、制御状態(b)のままか、制御状態(d)に変更される。そこで、ステップ264で、ステップ104における編集データに基づいて制御状態(d)が指定されたか否かを判断する。制御状態(d)が指定されたと判断された場合には、制御状態(d)は部分コンテンツの変更及び削除が禁止であり、ステップ254で、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名が削除されているので、ステップ266で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(d)を設定する。よって、図18(e)及び図18(f)に示すように、変更可能指示テーブルGc及び削除可能指示テーブルGdにおける部分コンテンツiに対応する位置には、各個別署名がない。
 ステップ264で制御状態(d)が指定されたと判断されなかった場合は、制御状態(b)は、制御状態(b)のままであるので、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに、編集者の変更用の個別署名を格納する。よって、図18(e)及び図18(f)に示すように、変更可能指示テーブルGcにおける部分コンテンツiに対応する位置には、編集者の変更用の個別署名が格納され、削除可能指示テーブルGdにおける部分コンテンツiに対応する位置には、個別署名がない。
 図19には、部分コンテンツiの制御状態の変更に伴う制御データの変更処理(図16のステップ246)のサブルーチンが示されている。制御状態(b)は、制御状態(d)に変更される。そこで、ステップ270で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(d)を設定する。制御状態(d)は部分コンテンツの変更及び削除が禁止であり、ステップ272で、図7(l)に示す変更可能指示テーブルGcにおける部分コンテンツiに対応する位置Gciに記憶されている個別署名を削除する。
 図20(b)には、図8におけるステップ118で、編集対象の制御状態について制御状態(c)が特定されたと判断された場合(ステップ118が肯定判定)におけるステップ120の処理のサブルーチンが示されている。ここで、制御状態(c)は、図20(a)に示すように、部分コンテンツの削除が可能であるが変更が禁止された制御状態である。
 ステップ274で、編集データ(図8のステップ104参照)に基づいて、編集対象である部分コンテンツiの削除が指示されたか否かを判断する。部分コンテンツiの削除が指示されたと判断された場合には、ステップ276で、図22(a)に示すように、部分コンテンツi(例えば、i=3)を削除し、空データを配置する。ステップ278で、部分コンテンツiの削除に伴い、詳細には後述(図21参照)するように、制御データを変更する。
 ステップ274で部分コンテンツiの削除が指示されたと判断されなかった場合、部分コンテンツiに対する制御状態のみの編集が指示されたことになるので、ステップ280で、詳細には後述(図23参照)するように、制御データを変更する。
 図21には、部分コンテンツiの削除に伴う制御データの変更処理(図20のステップ278)のサブルーチンが示されている。図21のステップ281、282は、図12のステップ190、192と同様であり、図21のステップ284~296は、図12のステップ200~212と同様であるので、その説明を省略する。
 以上の処理により、i=3を例にとると、図22(c)に示すように、変更用のアグリゲート署名は、
Figure JPOXMLDOC01-appb-M000018
と変更される。
 制御状態(c)で部分コンテンツiが削除された場合は、制御状態(c)は、制御状態(f)に変更される。制御状態(f)は、部分コンテンツの変更が禁止であるが、制御状態(c)は、部分コンテンツの変更が禁止であるが削除が可能であり、また、ステップ288で、削除可能指示テーブルGdの部分コンテンツiに対応する位置の個別署名は削除されているので、ステップ300で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(f)を設定する。よって、図22(e)及び図22(f)に示すように、変更可能指示テーブルGc及び削除可能指示テーブルGdにおける部分コンテンツiに対応する位置には、各個別署名がない。
 図23には、部分コンテンツiの制御状態の変更に伴う制御データの変更処理(図20のステップ280)のサブルーチンが示されている。制御状態(c)は、制御状態(d)に変更される。そこで、ステップ304で、図7(e)の制御状態明示テーブルCSの部分コンテンツiに対応する位置CSiに、制御状態(d)を設定する。制御状態(d)は部分コンテンツの変更及び削除が禁止であり、ステップ272で、図7(m)に示す削除可能指示テーブルGdにおける部分コンテンツiに対応する位置Gdiに記憶されている個別署名を削除する。
 図24(b)には、図8におけるステップ122で、編集対象の制御状態について制御状態(e)が特定されたと判断された場合(ステップ122が肯定判定)におけるステップ124の処理のサブルーチンが示されている。ここで、制御状態(e)は、図24(a)に示すように、既に削除済みの状態であるが部分コンテンツの変更が可能である。なお、図24(b)のステップ308~312は、制御状態(a)の処理における図9のステップ134~138と同様であるので、その説明を省略する。図24(b)のステップ314は、制御状態(a)の処理における図14の処理のステップ222~226、ステップ222が否定判定の場合には直ちにステップ230に進んで、ステップ230、232の処理を実行する。即ち、図24(b)のステップ314は、制御状態(a)の処理における図14の処理のステップ228、234~238が実行されない。
 図25(b)には、編集対象の制御状態について制御状態(g)が特定された場合(ステップ122が否定判定)におけるステップ126の処理のサブルーチンが示されている。ここで、制御状態(g)は、図25(a)に示すように、部分コンテンツが追加可能である。
 図25(b)のステップ315で、部分コンテンツiが追加されたか否かを判断する。図8のステップ104で部分コンテンツが追加された場合には、ステップ315が肯定判定となり、ステップ316で、図27(a)に示すように、追加された位置i,jにおける空データを削除して部分コンテンツdi,j(例えば、A1,1)を追加し、ステップ318で、部分コンテンツの追加に伴う制御データの変更を行う。
 ステップ315で、部分コンテンツiが追加されなかった場合には、ステップ319で、制御情報(h)を設定する。制御状態(h)は、部分コンテンツが追加禁止であるので、変更可能指示テーブルGc及び削除可能指示テーブルGdの位置i,jに対応する位置に各個別署名を格納できない(図27(g)及び図27(h)参照)。そこで、ステップ319で、図7(e)の制御状態明示テーブルCSの位置i,jに対応する位置CSi,jに、制御状態(h)を格納する。
 図26には、図25(b)における制御データの変更処理(ステップ318)のサブルーチンが示されている。図27(a)に示すように、部分コンテンツdi,j(例えば、A1,1)を追加されたことから、当該部分i,jの空データがなくなる。そこで、ステップ320で、追加用のアグリゲート署名を次のように変更する(図27(b)参照)。
Figure JPOXMLDOC01-appb-M000019
 ステップ322で、図7(m)に示す追加可能指示テーブルGaの追加された位置i,jに対応する位置に格納された署名(数3)を削除する(図27(c)参照)。
 ステップ324で、追加後の部分コンテンツi,jのハッシュ値hi,j=H(ID||IDi||Mi,j)を計算し、ステップ326で、編集者の変更用の個別署名
Figure JPOXMLDOC01-appb-M000020
を計算し、ステップ328で、変更用のアグリゲート署名を次のように変更する(図27(d)参照)。
Figure JPOXMLDOC01-appb-M000021
 ステップ330で、編集者の削除用の個別署名
Figure JPOXMLDOC01-appb-M000022
を計算し、ステップ332で、削除用のアグリゲート署名を次のように変更する(図27(e)参照)。
Figure JPOXMLDOC01-appb-M000023
 制御状態(g)において編集者が部分コンテンツを追加した場合、編集者は、制御状態(g)を、制御状態(a)~(d)に変更することができる。
 そこで、ステップ334で、制御状態(g)が制御状態(a)に変更されたか否かを判断する。制御状態(g)が制御状態(a)に変更されたと判断された場合、制御状態(a)は、部分コンテンツの変更及び削除が可能であるので、ステップ336で、図7(l)の変更可能指示テーブルGcの位置i,jに対応する位置にGci,jに、編集者の変更用の個別署名(数18)を格納し、ステップ338で、図7(m)の削除可能指示テーブルGdの位置i,jに対応する位置にGdi,jに、編集者の削除用の個別署名(数20)を格納する(図27(g)及び図27(h)参照)。ステップ340で、図7(e)の制御状態明示テーブルCSの位置i,jに対応する位置CSi,jに、制御状態(a)を格納する。
 ステップ334で制御状態(g)が制御状態(a)に変更されたと判断されなかった場合、ステップ342で、制御状態(g)が制御状態(b)に変更されたか否かを判断する。制御状態(g)が制御状態(b)に変更されたと判断された場合には、制御状態(b)は、部分コンテンツの変更が可能であるが削除が禁止されているので、ステップ344で、図7(l)の変更可能指示テーブルGcの位置i,jに対応する位置にGci,jに、編集者の変更用の個別署名(数18)を格納し(図27(g)及び図27(h)参照)、ステップ346で、図7(e)の制御状態明示テーブルCSの位置i,jに対応する位置CSi,jに、制御状態(b)を格納する。
 ステップ342で制御状態(g)が制御状態(b)に変更されたと判断されなかった場合、ステップ348で、制御状態(g)が制御状態(c)に変更されたか否かを判断する。制御状態(g)が制御状態(c)に変更されたと判断された場合には、制御状態(c)は、部分コンテンツの変更が禁止であるが削除が可能であるので、ステップ350で、図7(m)の削除可能指示テーブルGdの位置i,jに対応する位置にGdi,jに、編集者の削除用の個別署名(数20)を格納し(図27(g)及び図27(h)参照)、ステップ352で、図7(e)の制御状態明示テーブルCSの位置i,jに対応する位置CSi,jに、制御状態(c)を格納する。
 ステップ348で、制御状態(g)が制御状態(c)に変更されたと判断されなかった場合には、制御状態(g)は制御状態(d)に変更されたことになる。制御状態(g)が制御状態(d)に変更された場合には、制御状態(d)は、部分コンテンツの変更及び削除が禁止であるので、変更可能指示テーブルGc及び削除可能指示テーブルGdの位置i,jに対応する位置に各個別署名を格納できない(図27(g)及び図27(h)参照)。そこで、ステップ356で、図7(e)の制御状態明示テーブルCSの位置i,jに対応する位置CSi,jに、制御状態(d)を格納する。
 図28には、検証者端末16が実行する検証処理ルーチンが示されている。本検証処理ルーチンは、図8におけるステップ132で、各データが編集者端末14から出力され、編集者端末14から出力された各データを検証者端末16が受信した場合にスタートする。
 ステップ360で、後述する各検証で不正があったか否かの結論を示すフラグFを0に初期化し、ステップ362で、コンテンツ全体に対する識別子IDを取得する。
 ステップ364で、詳細には後述(図29参照)するコンテンツが追加されていない部分の検証、即ち、部分コンテンツが不正に追加されていないかの検証を行い、ステップ366で、上記検証(364)で、フラグFが0のまま、即ち、不正がなかったか否かを判断する。検証処理は、不正が無かった場合にステップ368に進み、不正があった場合には、ステップ384で、不正があったことを報知、即ち、表示装置30に不正があったことを表示する。
 部分コンテンツが不正に追加されていないと判断された場合でも、部分コンテンツの並びが不正のこともある。そこで、ステップ368で、詳細には後述(図30)するように、部分コンテンツの並びの検証を行い、ステップ370で、不正があったか否かを判断し、不正があった場合には、ステップ384で、不正があったことを報知し、不正がなかった場合に、検証処理はステップ372に進む。
 部分コンテンツの並びに不正がなかった場合でも、部分コンテンツが不正に削除されたり追加されたりされている場合もある。そこで、まず、ステップ372で、詳細には後述(図31参照)するように、削除の検証を行い、ステップ374で、不正があったか否かを判断し、不正があった場合には、ステップ384で、不正があったことを報知し、不正がなかった場合に、ステップ376に進む。ステップ376で、詳細には後述(図31参照)するように、変更の検証を行い、ステップ378で、不正があったか否かを判断し、不正があった場合には、ステップ384で、不正があったことを報知し、不正がなかった場合に、ステップ380に進む。
 ステップ380で、詳細には後述(図35参照)するように、コンテンツの全体の整合性の検証を行い、ステップ378で、不正があったか否かを判断し、不正があった場合には、ステップ384で、不正があったことを報知し、不正がなかった場合には検証処理を終了する。
 以上の例は各検証の何れかで不正があったことが検証された場合には、その旨、報知して、処理を終了しているが、本発明はこれに限定されず、すべての検証が終わった場合に、不正があった部分を報知するようにしてもよい。
 図29には、図28のステップ364におけるコンテンツが追加されていない部分の検証処理のサブルーチンが示されている。ステップ386で、本検証処理で使用する変数i、及び変数iに対応しかつ部分コンテンツが追加されていないために残っている空データを識別する変数pを0に初期化し、Zを1に初期化する。
 ステップ388で、変数iを1インクリメントし、ステップ390で、変数pを1インクリメントし、ステップ392に、空データBi、p*のハッシュ値Zi,p=H(ID||IDi,p||H(Bi,p*)||0^c)を計算する。ステップ394で、空データBi、p*のハッシュ値Zi,pのハッシュ値Z=Z*Zi,pを計算する。
 ステップ396で、変数pが、変数iに対応しかつ部分コンテンツが追加されていないために残っている空データの総数Pか否かを判断する。変数pが総数Pでない場合には、上記処理(ステップ392、394)を実行していない、変数iで識別される部分コンテンツに対応する空データがあるので、ステップ390に戻って、以上の処理(ステップ390~396)を実行する。変数pが総数Pの場合には、変数pで識別される部分コンテンツに対応しかつ残っている空データの全てについて上記処理(ステップ390~396)を実行したので、ステップ398で、変数iが部分コンテンツの総数nに等しいか否かを判断する。変数iが総数nに等しくない場合には、上記処理(ステップ392、394)を実行していない空データが対応する部分コンテンツが存在するので、ステップ388に戻って、異常の処理(ステップ388~398)を実行する。
 ステップ400で、制御データにおける空データのアグリゲート署名(数6)と原始根gとを用いて、ペアリング演算を行い、K1に代入し、ステップ402で、本処理(図29)で計算された空データのアグリゲートハッシュ値Zと著作者の公開鍵pk0とを用いて、ペアリング演算を行い、K2に代入し、ステップ404で、K1とK2が一致するか否かを判断することにより、空データへの部分コンテンツの不正追加を検証する。K1とK2が一致しない場合には、フラグFに1をセットする。
 ここで、空データへの部分コンテンツの不正追加の検証の原理を説明する。
 空データへの部分コンテンツの追加が適正である場合には、図26の制御データ変更処理が実行される。即ち、図7(d)に示すように、例えば、i=1とi=2との間には、部分コンテンツが追加可能となっている(制御状態(g))。即ち、図7(m)の追加可能指示テーブルGaのi=1、j=1には、個別署名が格納されている。従って、この個別署名を用いて追加用のアグリゲート署名が適切に変更される(ステップ320)。即ち、追加用の個別署名が、追加用のアグリゲート署名から除去されている。よって、検証時におけるコンテンツを用いて計算された追加用のアグリゲート署名の値は、制御データにおける追加用のアグリゲート署名の値と一致する。
 一方、例えば、部分コンテンツi=4とi=5との間には、部分コンテンツが追加禁止となっている(制御状態(h))。即ち、図7(m)の追加可能指示テーブルGaのi=4、j=1には、追加用の個別署名が格納されていない。よって、空データに代えて不正に部分コンテンツが追加された場合、当該追加用の個別署名が、追加用のアグリゲート署名に残存している。よって、検証時におけるコンテンツを用いて計算された追加用のアグリゲート署名の値は、制御データにおける追加用のアグリゲート署名の値と一致しない。
 以上のように、制御データにおける追加用のアグリゲート署名の値と、検証時におけるコンテンツを用いて計算された追加用のアグリゲート署名の値とを比較することにより、部分コンテンツの追加が不正か否かを検証することができる。制御データにおける追加用のアグリゲート署名の値はK1に反映され、検証時におけるコンテンツを用いて計算された追加用のアグリゲート署名の値はK2に反映される。よって、K1=K2であれば、部分コンテンツの追加が適正であったと検証することができる。しかし、K1とK2とが一致しない場合には、部分コンテンツの追加が不正であったと検証することができる。
 ここで、ペアリング関数について説明する。暗号において利用されるペアリングには、WeilペアリングとTateペアリングとがある。Tateペアリングのほうが計算コストが小さいので、Tateペアリングを用いる。なお。Weilペアリングを用いてもよい。
 Tateペアリングeは、整数rに対して、
Figure JPOXMLDOC01-appb-M000024
で定義される関数である。ここで、
Figure JPOXMLDOC01-appb-M000025
 
であり、kは、
Figure JPOXMLDOC01-appb-M000026
を満たす最小数で、埋込次数と呼ばれる。
 図30には、図28のステップ368における部分コンテンツの並びの検証処理のサブルーチンが示されている。ステップ408で、部分コンテンツiの識別子IDiに抜けがないか否か判断する。部分コンテンツiが適切に削除された場合には、例えば、図12のステップ190で、空データに識別子IDiが付与されているので、部分データの識別子IDiに抜けが生ずることはない。よって、部分データの識別子IDiに抜けがあると(ステップ408が否定判定)、不正削除があったと判断できる。そこで、ステップ412で、フラグFに1をセットする。
 部分コンテンツiの識別子IDiに抜けがないと判断された場合でも、部分コンテンツiが当初の順番に並んでいない場合もある。そこで、ステップ410で、部分コンテンツの識別子IDiが昇順か否かを判断することにより、部分コンテンツiが当初の順番に並んでいるか否かを判断する。部分コンテンツiの識別子IDiが昇順でない場合(ステップ410が否定判定)には、部分コンテンツiが当初の順番とは異なる順番に変えられている、即ち、不正な編集がされたと判断することができる。そこで、ステップ412で、フラグFに1をセットする。
 図31には、図28のステップ372における削除の検証処理のサブルーチンが示されている。制御状態(b)及び制御状態(d)の部分データは、少なくとも削除が禁止されているので、部分コンテンツiの不正削除があるかを確認する必要がある。そこで、ステップ414で、変数iを0に初期化し、ステップ416で、変数iを1インクリメントする。
 部分コンテンツが正当に削除された場合には、例えば、図21のステップ294で、削除用のハッシュ値差分保持テーブルGbdに差分値Δhiが記憶されている。よって、正当削除の場合には、図32(b)及び図32(c)に示すように、部分コンテンツは存在しないが、削除用のハッシュ値差分保持テーブルGbdに差分値Δhiが記憶されている。なお、この場合には、変更用のハッシュ値差分保持テーブルGbcには差分値Δhiが記憶されていない。
 一方、例えば、図32(a)に示すように、部分コンテンツA2は制御状態(b)であるので、削除が禁止されている。この部分コンテンツA2が不正に削除された場合には、例えば、図21のステップ294の処理を経由しないので、削除用のハッシュ値差分保持テーブルGbdに差分値Δhiが記憶されていない。よって、不正の削除の場合には、図32(b)及び図32(c)に示すように、部分コンテンツは存在せず、かつ、削除用のハッシュ値差分保持テーブルGbdに差分値Δhiが記憶されていない。なお、この場合には、変更用のハッシュ値差分保持テーブルGbcには差分値Δhiが記憶されている。
 以上より、部分コンテンツの存否と削除用のハッシュ値差分保持テーブルGbdにおける差分値Δhiの有無に基づいて、不正削除があったか否かを判断することができる。そこで、ステップ418で、変数iで識別される部分コンテンツiが存在するか否かを判断し、部分コンテンツiが存在しないと判断された場合、ステップ420で、削除用のハッシュ値差分保持テーブルGbdの部分コンテンツiの位置に対応する位置に差分値Δhiが格納されているか否かを判断する。ステップ420が否定判定の場合、ステップ433で、フラグFに1をセットする。ステップ418及びステップ420の何れかが肯定判定の場合、部分コンテンツiについて不正削除はなかったと判断することができる。この場合は、ステップ422で、部分コンテンツiの総数nか否かを判断する。変数iが総数nに等しくない場合には、不正削除が判断されていない部分コンテンツが存在するので、ステップ416に戻って、以上の処理(ステップ416~422)を実行する。変数iが総数nに等しい場合には、不正削除が判断されていない部分コンテンツは存在しないので、検証処理は終了する。
 図33には、図28におけるステップ376における変更の検証処理のサブルーチンが示されている。制御状態(c)、制御状態(d)、及び制御状態(f)の部分データは、少なくとも変更が禁止されているので、制御状態(c)、制御状態(d)、及び制御状態(f)の部分コンテンツiに不正変更がある場合がある。そこで、ステップ434で、変数iを0に初期化し、ステップ436で、変数iを1インクリメントする。
 部分コンテンツiが正当に変更された場合には、例えば、図17のステップ260で、変更用のハッシュ値差分保持テーブルGbcに差分値Δhiが記憶されている。よって、正当変更の場合には、図34(b)及び図34(c)に示すように、部分コンテンツiは存在し、変更用のハッシュ値差分保持テーブルGbcに差分値Δhiが記憶されている。なお、この場合には、削除用のハッシュ値差分保持テーブルGbdには差分値Δhiが記憶されていない。
 一方、例えば、図34(a)に示すように、部分コンテンツA3は制御状態(c)であるので、変更が禁止されている。この部分コンテンツA3が不正に変更された場合には、例えば、図17のステップ260の処理を経由しないので、変更用のハッシュ値差分保持テーブルGbcに差分値Δhiが記憶されていない。よって、不正の変更の場合には、図34(b)及び図32(c)に示すように、部分コンテンツは存在するが、変更用のハッシュ値差分保持テーブルGbcに差分値Δhiが記憶されていない。なお、この場合には、削除用のハッシュ値差分保持テーブルGbdには差分値Δhiが記憶されている。
 以上より、部分コンテンツの存否と変更用のハッシュ値差分保持テーブルGbcにおける差分値Δhiの有無に基づいて、不正変更があったか否かを判断することができる。そこで、ステップ438で、変数iで識別される部分コンテンツiが存在するか否かを判断し、部分コンテンツiが存在しないと判断された場合、ステップ440で、変更用のハッシュ値差分保持テーブルGbcの部分コンテンツiの位置に対応する位置に差分値Δhi′が格納されているか否かを判断する。ステップ440が否定判定された場合、即ち、変更用のハッシュ値差分保持テーブルGbcに差分値Δhiが記憶されていない場合には、部分コンテンツiについて不正変更があったと判断できる。そこで、ステップ454で、フラグFに1をセットする。一方、ステップ438及びステップ440の何れかが肯定判定の場合、部分コンテンツiについて不正変更はなかったと判断することができる。この場合は、ステップ442で、変数iが総数nか否かを判断する。変数iが総数nに等しくない場合には、不正変更が判断されていない部分コンテンツが存在するので、ステップ436に戻って、以上の処理(ステップ436~442)を実行する。変数iが総数nに等しい場合には、不正削除が判断されていない部分コンテンツは存在しないので、検証処理はステップ444に進む。
 ステップ444で、変更された部分コンテンツの各々についてハッシュ値の差分Δh=h′-hを計算し、ステップ446で、ステップ444で計算されたハッシュ値の差分Δhのハッシュ値
Figure JPOXMLDOC01-appb-M000027
を計算し、更に、差分Δhのハッシュ値のアグリゲート
Figure JPOXMLDOC01-appb-M000028
を計算する。
 ステップ448で、編集処理時に計算された図7(s)の変更用ハッシュ値差分の署名のアグリゲート
Figure JPOXMLDOC01-appb-M000029
と、検証処理において計算された変更用ハッシュ値差分のハッシュ値のアグリゲートwcと原始根gを用いて、次のように、ペアリング演算を行い、M1に代入する。
Figure JPOXMLDOC01-appb-M000030
 ステップ450で、上記ステップ446で計算された差分Δhのハッシュ値のアグリゲート(数26)と、公開鍵pk1とを用いて、次のように、ペアリング演算を行い、M2に代入する。
Figure JPOXMLDOC01-appb-M000031
 ステップ452で、M1とM2が一致するか否かを判断し、M1とM2が一致しない場合に、ステップ454で、フラグFに1をセットする。
 図35には、図28のステップ380におけるコンテンツの全体の整合性の検証処理のサブルーチンが示されている。ステップ456で、本サブルーチンで使用する変数X0、X1、Y0、Y1を1に初期化し、ステップ458で、部分コンテンツを識別する変数iを0に初期化し、ステップ460で、変数iを1インクリメントする。
 ステップ462で、図7(p)に示す削除用ハッシュ値差分保持テーブルGbdにおける、変数iで識別される部分コンテンツiに対応する位置Gbdiにハッシュ値の差分Δh(=hi′-hi)があるか否かを判断する。位置Gbdiにハッシュ値の差分Δh(=hi′-hi)があると判断された場合、ステップ464で、識別子ID、IDi、及び、部分コンテンツiの内容Miを用いて、部分コンテンツiのハッシュ値hi′=H(ID||IDi||Mi)を計算する。ステップ466で、ステップ464で計算された部分コンテンツiのハッシュ値hi′から、削除用ハッシュ値差分保持テーブルGbdにおける位置Ggdiにあるハッシュ値の差分Δh(=hi′-hi)を減算することにより、部分コンテンツiの元のハッシュ値hiを計算する。ステップ468で、ステップ466で計算された部分コンテンツiの元のハッシュ値hiのハッシュ値xi==H(ID||IDi||hi||1^c)を計算する。
 ステップ470で、図8のステップ106の処理において記憶された編集履歴データに基づいて、部分コンテンツiは著作者の部分コンテンツか否かを判断する。部分コンテンツiが著作者の部分コンテンツであると判断された場合には、ステップ472で、著作者用にハッシュ値xiの削除用のアグリゲートX0←X0*xiを計算する。部分コンテンツiが著作者の部分コンテンツであると判断されなかった場合には、ステップ474で、編集者用にハッシュ値Xiの削除用のアグリゲートX1←X1*xiを計算する。ただし、編集者が複数いる場合、編集者Xj(jは編集者番号)を用意し、ステップ470で誰の著作物かを判定し、Xj←Xj*xiを計算する。
 ステップ476で、変数iが部分コンテンツの総数nに等しいか否かを判断する。変数iが総数nに等しくなく場合には、ステップ460に戻る。
 ステップ462の判定が否定判定の場合には、ステップ478で、図7(o)に示す変更用ハッシュ値差分保持テーブルGbcにおける、変数iで識別される部分コンテンツiに対応する位置Gbciにハッシュ値の差分Δh(=hi′-hi)があるか否かを判断する。位置Gbciにハッシュ値の差分Δh(=hi′-hi)があると判断された場合には、ステップ480~486の処理を実行する。なお、ステップ480~486の処理は、ステップ464~470と同様であるので、その説明を省略する。なお、ステップ484では、ハッシュ値を、部分コンテンツiの元のハッシュ値hiのハッシュ値yiとして計算する。
 ステップ486で、部分コンテンツiが著作者の部分コンテンツであると判断された場合には、ステップ488で、著作者用にハッシュ値yiの変更用のアグリゲートY0(←Y0*yi)を計算する。部分コンテンツiが著作者の部分コンテンツであると判断されなかった場合には、ステップ490で、編集者用にハッシュ値Xiの変更用のアグリゲートY1(←Y1*yi)を計算する。
 ステップ478で、変更用ハッシュ値差分保持テーブルGbcの位置Gbciにハッシュ値の差分Δh(=hi′-hi)があると判断されなかった場合には、全体の整合性の検証処理はステップ476に進む。ステップ476で、変数iが、部分コンテンツの総数nに等しいと判断された場合には、削除又は変更がされた部分コンテンツの全てについて上記アグリゲートを計算したので、全体の整合性の検証処理はステップ476に進む。
 ステップ492で、制御データにおける図7(i)の削除用アグリゲート(数5)と、原始根gとを用いて、次のように、ペアリング演算をして、P1に代入する。
Figure JPOXMLDOC01-appb-M000032
 ステップ494で、著作者、編集者それぞれに対応して計算した削除用のアグリゲートX0、X1、著作者、編集者それぞれの公開鍵pk0、pk1を用いて、次のように、ペアリング演算をして、P2に代入する。
Figure JPOXMLDOC01-appb-M000033
 ステップ496で、P1とP2とが一致するか否かを判断し、P1とP2とが一致しない場合は、検証時に存在しかつ削除された部分コンテンツの内容と、制御データに基づいて計算されたしかつ削除された部分コンテンツの内容とが整合しないので、不正な削除があったと判断できる。そこで、この場合(ステップ496が否定判定の場合)、ステップ504で、フラグFに1をセットする。
 P1とP2とが一致する場合は、ステップ498で、制御データにおける図7(j)の変更用アグリゲート(数4)と、原始根gとを用いて、次のように、ペアリング演算をして、Q1に代入する。
Figure JPOXMLDOC01-appb-M000034
 ステップ500で、著作者、編集者それぞれに対応して計算した変更用のアグリゲートY0、Y1、著作者、編集者それぞれの公開鍵pk0、pk1を用いて、次のように、ペアリング演算をして、Q2に代入する。
Figure JPOXMLDOC01-appb-M000035
 ステップ502で、Q1とQ2とが一致するか否かを判断し、Q1とQ2とが一致しない場合は、検証時に存在しかつ変更された部分コンテンツの内容と、制御データに基づいて計算されたしかつ変更された部分コンテンツの内容とが整合しないので、不正な変更があったと判断できる。そこで、この場合(ステップ502が否定判定の場合)、ステップ504で、フラグFに1をセットする。
 以上説明した実施形態では、公開されたコンテンツに著作者の編集に関する意思が明示されているので、コンテンツの編集をしようとする編集者は著作者にいちいち許諾を取るという面倒な手続きがなくなり、その範囲内で自由に編集が可能になる。 
 実施形態では、ネットに公開したコンテンツの利用は自由だが、2次著作物以降に利用された場合自分の著作物であるということを明示したいという著作者は、それが可能になる。 
 実施形態では、編集された著作物が正しく(1次著作者の意思に違反せず)生成されていることを検証できるようになり、提案方式を通るコンテンツは正当であり、そうでないコンテンツは不当であることが区別できるようになる、これによって、編集者は自分が作成した2次著作権を正当に主張できる、 
 以上のことがオープンなシステムとして実現でき、誰でもコンテンツ生成に関する正当性を検証できる。 
 以上説明した実施形態では次の変形例が適用できる。
 まず、第1変形例を説明する。コンテンツが2つの部分コンテンツに分割され(n=2)、一方の部分コンテンツが変更可で、他方の部分コンテンツが変更禁止である場合を考える。アグリゲート署名は2つの部分コンテンツの個別署名の積だけによって構成される。この場合、アグリゲート署名を変更可の部分コンテンツの個別署名で除算すると変更禁止の部分コンテンツに対する個別署名が計算され、変更禁止の部分コンテンツの変更が可能になる。
 そこで、第1変形例として、これを防ぐため、例えば、コンテンツ全体を示すID を基に変更用及び削除用それぞれの個別署名
Figure JPOXMLDOC01-appb-M000036
を作成し、変更用及び削除用それぞれの個別署名のアグリゲート
Figure JPOXMLDOC01-appb-M000037
に重畳する。ただし、数35の各個別署名は、変更可能指示テーブルGc、削除可能指示テーブルには記憶させない。これにより、不正変更等の攻撃があった時にも変更禁止の部分コンテンツに対する個別署名が露呈しない。また、アグリゲート署名を残った署名で除算すれば、数34の各個別署名も除算されていることになり,不正があったことが検出できる。 
 また、図7(m)の追加可能指示テーブルGaの個別署名をすべて重畳した値で、アグリゲート署名(数5)を除算すると、追加禁止の空データの位置の個別署名をすべて重畳した値
Figure JPOXMLDOC01-appb-M000038
が生成される。これにより,上記部分コンテンツと同様に追加禁止な空データに対する個別署名の積が露呈し、追加禁止の空データに不正な部分コンテンツを追加することが可能になる。そこで、これを防ぐため、コンテンツ全体を示すIDを基に空データの個別署名
Figure JPOXMLDOC01-appb-M000039
を作成し,アグリゲート署名(数5)に重畳しておく。これにより,上記不正追加があった時には,数36の値と同時に数37の値も除算されていることになり、不正追加があったことを検出できる。 
 次に、第2変形例を説明する。実施形態では部分コンテンツの変更可否と削除可否に関する制御のすべての組合せを実現した。しかし,変更可否と削除可否の全状態ではなく、部分状態を実現可能にすれば、より簡易な制御が可能になる。例えば、削除を変更の1態様と考えれば、変更可能=削除可能であり、変更禁止=削除禁止と考えられる。よって、以下の6状態のみの制御でよくなり、制御用の電子署名は変更制御用の電子署名の組だけとなる。
 第1に、制御状態(a)、即ち、変更可能(かつ削除可能)である。
 第2に、制御状態(d)、即ち、変更禁止(かつ削除禁止)である。
 第3に、制御状態(e)、即ち、変更可能で、削除状態である。
 第4に、制御状態(f)、即ち、変更禁止で、削除状態である。
 第5に、制御状態(g)、即ち、追加可能である。
 第6に、制御状態(h)、即ち、追加禁止である。
 第2変形例における制御データの生成、編集、検証において、実施形態における削除に関する制御データや処理はなく、全てを変更に関する処理として行う。即ち、上記生成の処理において、図5のステップ66、72、74、98の処理は実行されない。上記編集の処理において、図8のステップ114、116、118、120の処理は実行されない。例えば、図9のステップ134、140~146の処理は実行されず、図10のステップ156~160、176~188の処理は実行されない。上記検証の処理において、図28のステップ372、374の処理は実行されない。図35のステップ460の処理の後は直ちにステップ478に進み、ステップ462~474、492~496の処理は実行されない。
 次に、第3変形例を説明する。第2変形例は削除を変更の1態様と考え、処理を簡略化した。さらに、部分コンテンツの削除を、部分コンテンツから空データへの変更、部分コンテンツの追加を空データから部分コンテンツへの変更と考えれば、全ての状態は、制御状態(a)と制御状態(d)だけで表される。よって、追加に関する制御データや処理はなく、追加用の空データも予め設定された既存データとして扱い、全てを変更に関する処理として行う。即ち、第2の変形例において実行されない処理は第3の変形例でも実行されない。更に、上記生成の処理において、図6のステップ78~92、100の処理は実行されない。編集の処理において、図8のステップ122~126の処理は実行されない。例えば、図10のステップ176~188の処理は実行されない。
 次に、第4変形例を説明する。実施形態及び第1~第3変形例では、部分コンテンツの数を表すnや、追加可能な部分コンテンツの数を表すjは公開されているとしたが、著作者の署名をつけてコンテンツと供に編集者端末に出力してもよい。即ち、n及びjには著作者の署名を付けて出力する。
 次に、第5変形例を説明する。実施形態及び第1~第4変形例における部分コンテンツは1つのコンテンツを構成する各部分のデータである。よって、それは種々の設定法が考えられる。例えば、1つのキャラクタは顔、腕、胴、足、服、髪、イメージ色、イメージ音楽、・・・など種々の部分データから構成され、そのキャラクラは1つのコンテンツの1登場人物として構成される場合、部分データは階層的に表示され、1つのコンテンツは多種多様な部分データから構成される。そのため、あるキャラクタの服に関する変更を制御する署名や、髪に関する変更を制御する署名等、変更に関してもその属性ごとに異なる署名によって対応することも考えられる。よって、変更制御用の署名や削除制御用の署名はそれ毎に1つではなく、複数存在する。
 次に、第6変形例を説明する。暗号技術と組み合わせることにより,コンテンツの不正利用防止と不正編集防止の両立も可能である。すなわち、コンテンツは暗号化または半開示状態での暗号化が行われており,そのコンテンツを復元できるのは復号鍵を持つ正当な再生機器または編集機器のみとし、正当に復元されたコンテンツに対して提案方式を用いて編集を行い,その編集結果を外部に出力するときは再び暗号化または半開示状態の暗号化を行い出力すればよい。これによって,正当なユーザでなければコンテンツを復元できず,かつ編集もできないというシステムが実現できる。また、各部分データにコピー回数制限値を設定して、上記暗号化を行い、正当な再生機器または編集機器のみが複復号能とすれば、部分データのコピーに関しても制御可能となる。これらは、従来の視聴制御やコピー制御の手法と提案手法を組み合わせたものである。 
 次に、第7変形例を説明する。上記第6変形例において、暗号技術と組み合わせる際に,編集は正当な再生機器または編集機器によって復元したデータに対して行われるとした。しかし、本提案方式では半開示状態の暗号化またはサムネイルのような解像度の低いデータを用いて、暗号化されたデータに対して直接編集処理を行うことも可能である。まず、署名生成処理において著作者は、コンテンツMを分割したMiを著作者が定めた暗号鍵で暗号化し、それをオリジナルの部分データMiとして署名処理を進める。ただし、空データは暗号化する必要ない。これによって、暗号化部分データに対して署名生成処理が行われ、全コンテンツが生成される。次に、データ更新において編集者は半開示状態またはサムネイルによって把握した部分コンテンツに対して、新たに暗号鍵を定め変更用データNiを暗号化し、編集処理を行う。これは、本提案方式では各部分データは独立に処理が行われるため、半開示状態またはサムネイルなどによって部分コンテンツの内容が把握できれば、暗号化コンテンツを部分コンテンツとしても編集しても問題ないためである。最後に検証者は、暗号化データを部分データとして検証処理を行う。半開示状態またはサムネイルではなく、暗号化していないコンテンツが欲しいユーザは、検証結果が正当であれば、各著作者から復号用の鍵をもらい、各部分データ毎に復元すればよい。このとき、復号鍵に対する課金が行われてもよい。 また、コピー禁止としたい部分データに関しては異なる鍵とし、それを開示せず暗号化を行えば、コピー禁止の部分データは正しく復号されない。 以上によって、視聴制御とコピー制御と、編集制御が同時に実現できる今までにないシステムが構築できる。 
[第2の実施の形態]
 次に、第2の実施の形態を説明する。第2の実施の形態のデータ生成編集検証システムの構成は、前述した第1の実施の形態と同様の構成であるので、その説明を省略する。また、第2の実施の形態のデータ生成編集検証システムの作用は、前述した第1の実施の形態と同様の部分がある。以下、第2の実施の形態の作用と異なる部分について説明する。
 最初に、第2の実施の形態における署名を説明する。
 上記第1の実施の形態及び上記各変形例では、編集の許諾に関する制御を電子署名で行った。本第2の実施の形態では、複数の著作者によって編集処理が階層化されたコンテンツに対してその編集の順序関係を検証する仕組みを導入した。
 図37にデータと署名の関係を示す。上記第1の実施の形態における図7ではコンテンツは階層化されずにオリジナルコンテンツは全て一人の著作者が生成するとした。しかし、大規模なコンテンツは全て一人の著作者によって製作されるより、複数の著作者によって製作される場合が多い。例えば、映画などでは音楽や映像、演出など各々異なる責任者が存在する場合が多い。アニメ映画を例にとると、音楽責任者は多くの作曲家(担当者)から提供された音楽を用いて全体の音楽を構成する。また、映像責任者は多くの製作者(担当者)による絵を組み合わせて全体の映像を作成する。さらに、全体を見る総監督はそれらを組み合わせて1つの映画を完成させていく。よって、図37では、署名の構成が階層化され、それによって編集の順序または前後関係が示される。例えば、部分コンテンツA1~A4を製作者の異なる絵とし、部分コンテンツA5~A6を作曲者が異なる音楽に関する部分コンテンツであるとする。各部分コンテンツA1~A6には各部分の作者の署名δ11~δ16が存在する。各責任者はそれらの部分コンテンツを組み合わせ、組み合わせた部分コンテンツに対する署名δ21やδ22を生成する。すなわち、δ21は部分コンテンツA1~A4を採用して1つの映像とした映像責任者(編集者)の署名であり、δ22はA5、A6を採用して1つの音楽とした音楽責任者の署名である。
 ただし、アグリゲート署名は署名の乗算で構成されるため、署名の順序関係が表現できないので、責任者以降は署名の構成を表せる以下のような順序付き署名(数44参照)を構成する。ただし、第2の実施の形態におけるiは階層を、jは部分コンテンツを識別し、qは階層数、piはi階層の部分コンテンツ数、pijは階層iの部分コンテンツjを構成する下位部分コンテンツの数、sijはi階層にいる部分コンテンツjに対する秘密鍵であるとする。また、各部分コンテンツのハッシュ値を
Figure JPOXMLDOC01-appb-M000040
で表し、それに対して各担当者が生成した第1階層における個別署名を
Figure JPOXMLDOC01-appb-M000041
で表す。ただしここでは簡単のため、
Figure JPOXMLDOC01-appb-M000042
をsij・hijで表す。
 第1階層の各部分コンテンツに対応する順序付き署名用の個別署名は、
Figure JPOXMLDOC01-appb-M000043
である。
 第2階層以降の順序付き署名は、
Figure JPOXMLDOC01-appb-M000044
である。
 図37に示す例ではq=3(担当者:階層1、責任者:階層2、監督:階層3)、piはp1=6、p2=2、p3=1、pijはp21=4、p22=2、p31=2となる。よって、δijは下式で表される。
Figure JPOXMLDOC01-appb-M000045
 
 上式において、sij・hi-1,kを中間署名と呼び、下位部分コンテンツへの上位編集者の署名となっているため、データの階層関係を表現することができる。監督は最終的にσ31を生成する。以降では最終的に得られる順序付き署名をδで表す(ここではδ=δ31)。
 よって、第2の実施の形態における署名生成は、図38に示すように、第1の実施の形態のステップ66(図5)の後において、ステップ67で、順序付き署名用の個別署名δ1jを生成する(数43参照)。
 また、図39に示すように、第1の実施の形態のステップ100(図6)の後において、ステップ101で、順序付き署名δijを生成する(数44)。図40には、上記ステップ101の順序付き署名δijを生成する処理のサブルーチンが示されている。
 図40のステップ520で、階層を識別する変数iを0に初期化し、ステップ522で、変数を1インクリメントし、ステップ524で、部分コンテンツを識別する変数jを0に初期化し、ステップ526で、変数jを1インクリメントする。ステップ528で、順序付き署名δij(数44)を計算する。
 ステップ530で、変数jが、i階層の部分コンテンツ数piに等しいか否かを判断する。変数jがi階層の部分コンテンツ数piに等しくない場合には、本計算処理はステップ526に進み、変数jがi階層の部分コンテンツ数piに等しい場合には、本計算処理はステップ532に進む。
 ステップ532で、変数iが階層数qに等しいか否かを判断する。変数iが階層数qに等しくない場合には、本計算処理はステップ522に進み、変数iが階層数qに等しい場合には、本計算処理は終了する。
 そして、第2の実施の形態におけるステップ44(図3参照)では、最終結果のδがアグリゲート署名などとともに出力される。ただし、編集のために、上記ステップ67(図38)、ステップ101(図39)において計算された順序付き署名用の個別署名と中間署名は全て出力される。
 次に、図41を参照して、第2の実施の形態における編集者端末14が実行する編集処理を説明する。ステップ540で、編集制御用署名の編集を行う。これは第1の実施の形態における処理(図8(図9~図27)と同様であるので、その説明を省略する。ステップ542で、順序付き署名の編集を行う。なお、ステップ542における順序付き署名の編集の具体的内容は後述する。
 次に、図42を参照して、第2の実施の形態における検証者端末16が実行する検証処理を説明する。ステップ544で、編集制御用署名の検証を行う。これは第1の実施の形態における処理(図28(図29~図35)と同様であるので、その説明を省略する。ステップ546で、順序付き署名の検証を行う。なお、ステップ546における順序付き署名の検証の具体的内容は後述する。
 次に、図41のステップ542における順序付き署名の編集の具体的内容を、図43を参照して説明する。第2の実施の形態における順序付き署名は編集に関する制御とは独立しているので、編集処理では、ステップ540の編集の処理後、以下の処理を行う。すなわち、ステップ552で、第1の実施の形態における図28の検証処理を行い、行われた編集制御が正当に終了したか否かを検査する。行われた編集制御が正当に終了していない場合には、本処理を終了する。行われた編集制御が正当に終了した場合、本編集処理がステップ554に進む。
 ステップ554で、行われた編集処理が変更か否かを判断し、編集処理が変更の場合、ステップ556で、後述(図44)の変更に基づく順序付き署名の編集を行う。編集処理が変更でない場合、ステップ558で、編集処理が削除か否かを判断し、編集処理が削除の場合、ステップ560で、後述(図45)の削除に基づく順序付き署名の編集を行う。編集処理が削除でない場合、編集は追加であるので、ステップ562で、後述(図46)する追加に基づく順序付き署名の編集を行う。
 次に、図44を参照して、変更に基づく順序付き署名の編集を説明する。
 ステップ572で、階層ごとに変更前の部分コンテンツに係る署名を削除し、ステップ573で、変更した部分コンテンツに関する個別署名を生成し、ステップ574で、変更した部分コンテンツに関する中間署名を生成し、ステップ575で、階層ごとに変更した部分コンテンツに関する署名を生成する。以上の一連の処理を詳細に説明する。例として、部分コンテンツA2をA2’に変更することを考える。この場合、δから部分コンテンツA2に関連する署名を削除し、変更後の部分コンテンツA2’に関連する署名と置き換えればよい。すなわち、図37の例では部分コンテンツA2に関連するδ12、δ21、δ31、s21・h12、s31・h21を変更後の部分コンテンツA2’に関連するδ12’、 δ21’、 δ31’、s21’・h12’、s31’・h21’ に変更すればよい。ここで、各部分コンテンツに関する順序付き署名の個別署名と中間署名はすべて署名集合に出力されているので、編集者はδからδ12、δ21、δ31、s21・h12、s31・h21を削除し(ステップ572)、個別署名δ12’、 δ21’、 δ31’を生成(ステップ573)し、中間署名s21’・h12’、s31’・h21’を生成(ステップ574)し、δ12’、 δ21’、 δ31’、s21’・h12’、s31’・h21’を追加する(ステップ575)。個別署名δ12’は更後の部分コンテンツA2’を製作した担当者が生成し、δ21’、 δ31’、s21’・h12’、s31’・h21’はその変更を行った編集者の秘密鍵を用いて生成する。これによって、コンテンツの変更が行われても、各部分コンテンツの関係及び順序が検証できるようになる。
 次に、図45を参照して、削除に基づく順序付き署名の編集を説明する。
 ステップ576で、階層ごとに削除した部分コンテンツに関する署名の削除し、ステップ577で、削除した部分を除いた部分コンテンツに関する中間署名を生成し、ステップ578で、階層ごとに削除した部分を除いた部分コンテンツに関する署名を生成する。以上の一連の処理を詳細に説明する。図37の部分コンテンツA2を削除する例では、δ12、δ21、δ31、s21・h12、s31・h21を削除し(ステップ576)、部分コンテンツA2を削除したデータに対して新たにδ21’、δ31’、s31’・h21’を生成し(ステップ577)、δ21’、δ31’、s31’・h21’を追加する(ステップ578)。よって、削除に対しても各部分コンテンツの関係及び順序が検証できるようになる。ただし、データの削除を空データへの置き換えとする場合には、空データをA2’としてδ12’、 δ21’、 δ31’、s21’・h12’、s31’・h21’を追加する。
 次に、図46を参照して、追加に基づく順序付き署名の編集を説明する。
 ステップ580で、追加した部分コンテンツに関する個別署名を生成し、ステップ582で、追加した部分コンテンツに関する中間署名を生成し、ステップ564で、階層ごとに追加した部分コンテンツに関する署名を生成する。以上の一連の処理を詳細に説明する。図37の例で部分コンテンツA1とA2の間にデータを追加する場合、追加データに対してδ1,1.1、δ21’、 δ31’ を生成し(ステップ580)、s21’・h1,1.1、s31’・h21’を生成し(ステップ582)、δ1,1.1、δ21’、 δ31’ を生成し(ステップ580)、s21’・h1,1.1、s31’・h21’をδに追加する(ステップ564)。
 次に、図42のステップ546における順序付き署名の検証の具体的内容を説明する。
 第i階層にいるj番目のユーザuijの秘密鍵をsij、それに対応する公開鍵をvijとし、検証者は順序付き署名に関わったすべてのユーザの検証鍵とそのユーザが生成または編集したデータの全ハッシュ値hijを知っているまたは計算できるとする。ただし、総監督にあたる最上位ユーザの公開鍵をv、ハッシュ値をhとする(図37の例ではv=v31、h=h31)。また、jjは1~pijの全値を指す。
 図47のステップ592で、
Figure JPOXMLDOC01-appb-M000046
を計算する。
i、jは、全階層における全ユーザを指す。
 ステップ594で、e(g,δ)を計算する。ステップ596で、
Figure JPOXMLDOC01-appb-M000047
であるか否かを検査し、ステップ594の判定結果が肯定判定の場合、本検証処理は終了する。ステップ594の判定結果が否定判定の場合、不正な処理が行われので、ステップ598で、不正を報知する。
 以上の処理をより具体的に説明する。図37の例で、e_allは以下のようになる。
Figure JPOXMLDOC01-appb-M000048
 また、e(g,δ)は変形すると下記となり、正しい処理が行われた場合一致する。
Figure JPOXMLDOC01-appb-M000049
[第3の実施の形態]
 次に、第3の実施の形態を説明する。第3の実施の形態のデータ生成編集検証システムの構成は、前述した第2の実施の形態と同様の構成であるので、その説明を省略する。また、第3の実施の形態のデータ生成編集検証システムの作用は、前述した第1及び第2の実施の形態と同様の部分がある。以下、第1及び第2の実施の形態の作用と異なる部分について説明する。
 第2の実施の形態では変更や削除用と異なる署名δijを用いた。この場合、編集制御と編集順序の関係を示すデータ構造の制御は別々に行われる。さらに、変更署名σや削除用署名τに加えて、順序付き署名δの生成・保存が必要である。そこで、第3の実施の形態では、順序付き署名を変更用や削除用の署名を用いて構成する例を示す。よって、第3の実施の形態では、δijに関する生成や保存の必要がなく、さらに、変更や削除などの編集制御と編集順序を含むデータ構造に関する制御の2つが同時に行われる。第3の実施の形態では、第1階層のユーザは自分が作成した部分コンテンツに対する変更や削除用の署名を順序付き署名の個別署名として用いる。第2階層以降の署名生成は第1階層で生成された署名を用いて行われる。各階層における順序付き署名は以下のようにして生成される(数50)。ただし、kは部分コンテンツjを構成する部分コンテンツの最初からpijまでを指すが、部分コンテンツに通し番号がついている場合、部分コンテンツjを構成するデータの通し番号を指す。よって、j=1では1≦k≦pi1であるが、j=2のときpi1+1≦k≦pi1+pi2となる。
Figure JPOXMLDOC01-appb-M000050
よって、図37の例では以下のようになる。ただし、各署名集合は編集制御を行う場合と同じであり、中間署名はここでは簡単のためすべて出力されているとする。ただし、xjとyjは各々変更用と削除用のハッシュ値を表す。
Figure JPOXMLDOC01-appb-M000051
 よって、署名生成処理は、第1の実施の形態における変更用と削除用のアグリゲート署名生成(ステップ96、98(図6参照))に代わって、図48に示すように、ステップ95で、順序付き署名の生成を行い、図3のステップ44で、変更用と削除用のアグリゲート署名出力に代わって順序付き署名を出力する。
 次に、編集について説明する。第3の実施の形態では、編集に関する個別署名の変更は第1の実施例と同様に行われる。即ち、中間署名は第1の実施例にはないが、中間署名の変更も個別署名と同様に行う。
 まず、変更可能・削除可能な部分コンテンツ(制御状態(a))の変更の場合を説明する。ステップ138(図9)は、第3の実施の形態では、図49に示すように、図10のステップ152、158の処理は実行されない。全ての個別署名と関連する中間署名が署名集合にあるため、ステップ158に代えて、ステップ157で、階層ごとに順序付き署名から変更前の部分コンテンツに係る署名を削除し、変更した部分コンテンツに関する新たな署名を追加する。
 例えば、部分コンテンツA1を変更する場合、δ21からσ11+τ11とs21・h21、s21・h11を引いて、担当者が新たに作成した部分コンテンツA1’に対してσ11‘とτ11’を生成し、編集者が新たに構成したデータに対してs21・h21’とs21・h11を生成し追加する。また、第3階層以降の変更は、第1階層部の変更に応じて行われる。すなわち、δ31に対しては部分コンテンツA1の変更に対してδ21とh31が変更されるため、δ21とh31をδ21’とh31’に変更する。よって、順序付き署名は以下のように変化する。
Figure JPOXMLDOC01-appb-M000052
 ただし、変更した部分コンテンツを変更可にする場合、新たに作成したσ11’を署名集合に出力し、削除も可にする場合はτ11’も署名集合に出力する(中間署名は全て署名集合に出力されるとする)。
 また、変更可能・削除可能な部分コンテンツ(制御状態(a))における制御状態のみの変化の場合、署名集合に出力された個別署名を削除することによって実行される。
 更に、変更可能・削除可能な部分コンテンツ(制御状態(a))の削除は、図50に示すように、図12のステップ196、202の処理を実行しない。また、図12におけるステップ202に代えてステップ201で、階層ごとの順序付き署名から削除前お部分コンテンツに係る署名を削除し、削除した部分コンテンツに関する新たな署名を追加する。よって、部分コンテンツA1を削除した場合、署名は以下のように変更される。
Figure JPOXMLDOC01-appb-M000053
 
 次に、変更可能・削除不可(制御状態(b))のデータの変更の場合を説明する。
 図51に示すように、図17のステップ252は実行されない。図17のステップ252に代えて、ステップ251で、階層ごとの順序付き署名から変更前の部分コンテンツに係る署名を削除し、変更した部分コンテンツに関する新たな署名を追加する。
 例えば、部分コンテンツA2の変更に対しては、以下のようになる。
 すなわち、部分コンテンツA2は変更用個別署名のみ公開されているので、それを新たな署名で置き換え、それに伴う中間署名も置き換える。この場合、データが変更されているにも関わらず、削除用のτ12は変更されないが、ハッシュ値の差分データが保存されていることから変更データの差分値から元のハッシュ値に戻して検証を行う。このデータを変更可能にする場合、σ11’を署名集合に出力する。
Figure JPOXMLDOC01-appb-M000054
 次に、変更不可・削除可のデータ(制御状態(c))の削除を説明する。
 図52に示すように、図21のステップ286に代えて、ステップ285で、階層ごとの順序付き署名から削除前の部分コンテンツに係る署名を削除し、削除した部分コンテンツに関する新たな署名を追加する。
 例えば、部分コンテンツA3を削除した場合は、以下のようになる。これは署名の扱いが変更可能・削除不可(制御状態(b))のデータの場合の逆になる。
Figure JPOXMLDOC01-appb-M000055
 
 次に、追加可能(制御状態(g))の場合を説明する。
 図53に示すように、図26のステップ328、332の処理は実行されない。図26のステップ332に代えて、ステップ331で、追加した部分コンテンツに関する新たな署名を階層ごとの順序付き署名に追加する。例えば、部分コンテンツA1と部分コンテンツA2の間にデータを追加する場合を例にとり説明する。追加された部分コンテンツA1.1に対して変更用と削除用の署名が生成され、部分コンテンツA1~部分コンテンツA4のグループで用いられるとすると、δ21とδ31が以下のように変更される。また、追加した部分コンテンツが変更可能であれば署名集合にσ1.1.1を出力し、削除可能であればτ1.1.1が出力される。
Figure JPOXMLDOC01-appb-M000056
 以上のように、編集処理は第1の実施の形態で説明した署名の差し替えという処理をアグリゲート署名の除算と除算に代わって、署名の減算と加算によって実現していると言える。ただし、中間署名に関する処理は第1の実施例にないが、ここではすべての中間署名が出力されているとするので、個別署名と同様の処理によって制御できることは明らかである。また、第3階層以降の順序付き署名も第1の実施例にないが、第3階層以降の署名は第2階層の署名を個別署名とみなして繰り返していくので、容易に実現できることは明らかである。
 よって、第3の実施の形態の編集処理は第1の実施の形態の変更用と削除用のアプリゲート署名の除算と乗算による更新を中間署名も含めた順序付き署名の減算と加算による処理になる。
 次に、検証処理について説明する。第3の実施の形態の検証処理は、第1の実施の形態に示した検証処理のうちアグリゲート署名の検証を順序付き署名の検証に置き換えることによって実現される。また、編集において変更不可、削除不可の部分は署名の差し替えを行っていないが、その部分はハッシュ値差分によって、ハッシュ値を元の部分コンテンツに対するハッシュ値に戻して検証を行う。よって、第3の実施の形態の検証処理は第1の検証処理(図28)のうち、σとτを用いる図35の検証処理を図42に置き換えたものと同様である。
 以上の第3の実施の形態の説明は、第1の実施の形態に対応する例を説明したが、第1の実施の形態の第2の変形例や第3の変形例のように変更と削除を同等にする場合や、追加や削除を空データから実データへの変更または実データから空データへの変更とする場合、上記と同様の変更によって順序付き署名によって、編集の制御と部分コンテンツの順序関係の制御が実現できる。さらに、第4の変形例~第7の変形例に関しても同様に適用できる事は明らかである。
[第4の実施の形態]
 次に、第4の実施の形態を説明する。第3の実施の形態のデータ生成編集検証システムの構成は、前述した第3の実施の形態と同様の構成であるので、その説明を省略する。また、第4の実施の形態のデータ生成編集検証システムの作用は、前述した第1~第3の実施の形態と同様の部分がある。以下、第1~第3の実施の形態の作用と異なる部分について説明する。
 第3の実施の形態では中間署名は全て出力されるとした。これは、第1階層における部分コンテンツ毎の編集制御については問題ない。すなわち、中間署名をすべて出力していても第1の実施例と同様のことが実現できる。しかし、第2の実施の形態以降の著作者が複数で階層化されている場合、第1階層の個別の部分コンテンツの編集ではなく、第2階層以降のデータの編集に関して制御したい場合が生じる。例えば、図37の例では部分コンテンツA1と部分コンテンツA2自体は変更可能であるが、第2階層にあたる責任者が行った部分コンテンツA1~A4の組み合わせからなるデータの変更は不可にしたいという場合である。この場合、責任者は部分コンテンツA1と部分コンテンツA2から変更用の署名を署名集合から削除してもよいが、責任者が生成するs21・h21を出力しないようにすることで対応できる。s21・h21を出力しない場合、部分コンテンツA1と部分コンテンツA2は単独に用いるならば変更可能であるが、部分コンテンツA1~A4からなるデータに対するδ21が変更できないため、責任者が編集したデータは変更できない。また、s21・h11を出力しない場合、部分コンテンツA1に関する変更のみを不可とでき、s21・h21を出力しない場合、部分コンテンツA2に関する変更のみを不可とするなどの制御も可能になる。
 また、総監督にあたる第3階層にいる編集者はs31・h31を出力しなければ、最終コンテンツに関する編集を不可、すなわちコンテンツの完成とすることがとできる。また、s31・h21を出力しなければ映像に関する部分のみの編集を不可とすることができ、s21・h22を出力しなければ音楽に関する部分のみの編集を不可とするなど細かな制御も可能にする。
[第5の実施の形態]
 次に、第5の実施の形態を説明する。第1の実施の形態のデータ生成編集検証システムの構成は、前述した第3の実施の形態と同様の構成であるので、その説明を省略する。また、第5の実施の形態のデータ生成編集検証システムの作用は、前述した第1~第4の実施の形態と同様の部分がある。以下、第1~第4の実施の形態の作用と異なる部分について説明する。
 第1の実施の形態では変更可能・削除可能な部分コンテンツは署名が差し替えられ、その編集履歴が残らない。ただし、変更または削除が不可の部分コンテンツはハッシュ値差分が残るため、そのハッシュ値差分を確認することによって、その部分コンテンツに関する編集履歴を確認することができる。しかし、削除を空データへの変更ではなく、本当に削除してしまうとその署名情報も失われ、編集履歴がわからなくなる場合がある。
よって、編集履歴を残すために、変更可能・削除可能な部分コンテンツについては新たな署名集合を用意する。即ち、新たな署名集合は、変更前後・削除前後のハッシュ値差分の集合である。これは、編集履歴を残すためのものである。すなわち、編集制御や階層構造の制御は第1の実施の形態で実行できるが、編集履歴を残すため、記録としてハッシュ値差分を残すものである。そして、そのハッシュ値の差分を保存する。
 また、削除は本当の削除ではなく、空データへの置き換えとし、それまでのハッシュ値差分などの制御データを残すようにする。これにより、すべてのデータの変更・削除について履歴が保存できる。
 さらに、追加に関しては、追加され実データとなった部分コンテンツについては、最初の空データを起点としてそれ以降の編集に関するすべてのハッシュ値差分を残すことで追加用の部分コンテンツについても編集履歴を残すことができるようになる。
 なお、以上説明した各例では、著作物として、コンテンツを例にとり説明したが、本発明は、コンテンツに限らず、他の著作物にも同様に適用でき、更に、著作物ではないテキスト等のデータにも同様に適用可能である。
 12 著作者端末
 14 編集者端末
 16 検証者端末

Claims (16)

  1.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御する方法であって、
     デジタルデータを複数の部分データに分割する行程と、
     各部分データに対する編集の許諾を明示または/および制御できるように電子署名を生成する工程と、
     を有することを特徴とするデジタルデータ編集制御方法。
  2.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御する方法であって、
     指定した部分データを編集し、その部分データに対する電子署名を変更する工程
     を含むデジタルデータ編集制御方法。
  3.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御する方法であって、
     請求項1に記載のデジタルデータ編集制御方法及び請求項2に記載のデジタルデータ編集制御方法によって生成されたデジタルデータと電子署名との整合性を検証する工程
     を含むデジタルデータ編集制御方法。
  4.  部分データと電子署名の整合性により削除状態を保持するか、再び部分データに置き換え可能であるかを設定できるように電子署名を生成し、
     その部分データと電子署名の整合性によって検証可能とする
     ことを特徴とした請求項1~3の何れか1項に記載のデジタルデータ編集制御方法。
  5.  電子署名は階層的に構成され、編集の制御及びデータ構造の制御可能としたことを特徴とした請求項1~4の何れか1項に記載のデジタルデータ編集制御方法。
  6.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御するデジタルデータ編集制御装置であって、
     デジタルデータを複数の部分データに分割する分割手段と、
     各部分データに対する編集の許諾を明示または/および制御できるように電子署名を生成する生成手段と、
     を有することを特徴とするデジタルデータ編集制御装置。
  7.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御するデジタルデータ編集制御装置であって、
     指定した部分データを編集する編集手段と、
     その部分データに対する電子署名を変更する変更手段と、
     を含むデジタルデータ編集制御装置。
  8.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御するデジタルデータ編集制御装置であって、
     請求項6に記載のデジタルデータ編集制御装置及び請求項7に記載のデジタルデータ編集制御装置によって生成されたデジタルデータと電子署名との整合性を検証する検証手段を含むデジタルデータ編集制御装置。
  9.  部分データと電子署名の整合性により削除状態を保持するか、再び部分データに置き換え可能であるかを設定できるように電子署名を生成する電子署名生成手段を更に備え、
     その部分データと電子署名の整合性によって検証可能とすることを特徴とした請求項6~8何れか1項に記載のデジタルデータ編集制御装置。
  10.  電子署名は、階層的に構成され、編集の制御及びデータ構造の制御可能としたことを特徴とした請求項6~9の何れか1項に記載のデジタルデータ編集制御装置。
  11.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御するデジタルデータ編集制御プログラムであって、
     コンピュータに、
     デジタルデータを複数の部分データに分割する行程と、
     各部分データに対する編集の許諾を明示または/および制御できるように電子署名を生成する工程と、
     を実行させるデジタルデータ編集制御プログラム。
  12.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御するデジタルデータ編集制御プログラムであって、
     コンピュータに、
     指定した部分データを編集し、その部分データに対する電子署名を変更する工程
     を実行させるデジタルデータ編集制御プログラム。
  13.  デジタルデータを分割して得られた複数の部分データ各々に関する編集を電子署名によって制御するデジタルデータ編集制御プログラムであって、
     コンピュータに、
     請求項11に記載のデジタルデータ編集制御方法及び請求項12に記載のデジタルデータ編集制御プログラムによって生成されたデジタルデータと電子署名との整合性を検証する工程
     を実行させるデジタルデータ編集制御プログラム。
  14.  コンピュータに、
     部分データと電子署名の整合性により削除状態を保持するか、再び部分データに置き換え可能であるかを設定できるように電子署名を生成させ、
     その部分データと電子署名の整合性によって検証可能とする
     ことを特徴とした請求項11~13の何れか1項に記載のデジタルデータ編集制御プログラム。
  15.  電子署名は階層的に構成され、編集の制御及びデータ構造の制御可能としたことを特徴とした請求項11~14の何れか1項に記載のデジタルデータ編集制御プログラム。
  16.  請求項11~15の何れか1項に記載のデジタルデータ編集制御プログラムを記憶したコンピュータ可読記憶媒体。
PCT/JP2013/076607 2013-09-30 2013-09-30 デジタルデータ編集制御方法、装置、及びプログラム、及びコンピュータ可読記憶媒体 WO2015045173A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/076607 WO2015045173A1 (ja) 2013-09-30 2013-09-30 デジタルデータ編集制御方法、装置、及びプログラム、及びコンピュータ可読記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/076607 WO2015045173A1 (ja) 2013-09-30 2013-09-30 デジタルデータ編集制御方法、装置、及びプログラム、及びコンピュータ可読記憶媒体

Publications (1)

Publication Number Publication Date
WO2015045173A1 true WO2015045173A1 (ja) 2015-04-02

Family

ID=52742369

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/076607 WO2015045173A1 (ja) 2013-09-30 2013-09-30 デジタルデータ編集制御方法、装置、及びプログラム、及びコンピュータ可読記憶媒体

Country Status (1)

Country Link
WO (1) WO2015045173A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017169183A (ja) * 2016-03-14 2017-09-21 株式会社リコー データ生成装置、データ記録システム及びプログラム
JP2017169184A (ja) * 2016-03-14 2017-09-21 株式会社リコー データ処理装置、データ処理システム及びプログラム
JP2018054841A (ja) * 2016-09-28 2018-04-05 株式会社リコー データ生成装置、データ生成方法、プログラム及びデータ記録システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009508405A (ja) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション デジタル署名ポリシー

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009508405A (ja) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション デジタル署名ポリシー

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
AKIRA SAITO ET AL.: "Contents no Tsuika Seigyo Kano na Denshi Shomei System", 2009 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2009) YOKOSHU CD-ROM, 20 January 2009 (2009-01-20), pages 3B3 - 1 *
MASAKI INAMURA ET AL.: "A Pre-Control System to Edit Contents with an Extended Sanitizable Signature", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRICAL ENGINEERS OF JAPAN C, vol. 133, no. 4, 1 April 2013 (2013-04-01), pages 802 - 815 *
MUNEYUKI KITANO ET AL.: "An Information Hiding System for Word 2003 XML Documents", IPSJ SIG NOTES, vol. 2005, no. 70, 22 July 2005 (2005-07-22), pages 205 - 212 *
TATSUHIKO SANO ET AL., DIGITAL SIGNATURE SCHEME ENABLING PRE-CONTROLOF CONTENT EDITING FOR SECONDARY USE, February 2013 (2013-02-01), Retrieved from the Internet <URL:http://sdiwc.net/digital-library/browse/68> [retrieved on 20131112] *
TATSUHIKO SANO ET AL.: "Contents Junkan ni Tekishita Jizen Seigyo Kano na Contents Henshu System no Jisso to Hyoka", 2013 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY GAIYOSHU CD-ROM, 22 January 2013 (2013-01-22), pages 2C4 - 1 *
TETSUYA IZU ET AL.: "Chushutsu Shomei no Kakucho ni yoru Suminuri Sakujo Shomei no Kosei ni Tsuite", 2009 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2009) YOKOSHU CD-ROM, 20 January 2009 (2009-01-20), pages 3B2 - 1 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017169183A (ja) * 2016-03-14 2017-09-21 株式会社リコー データ生成装置、データ記録システム及びプログラム
JP2017169184A (ja) * 2016-03-14 2017-09-21 株式会社リコー データ処理装置、データ処理システム及びプログラム
JP2018054841A (ja) * 2016-09-28 2018-04-05 株式会社リコー データ生成装置、データ生成方法、プログラム及びデータ記録システム

Similar Documents

Publication Publication Date Title
EP3664399B1 (en) A computer-implemented method, a system, and computer programs for digital files management and preservation in digital licenses
EP1841120B1 (en) Information processing apparatus, information recording medium manufacturing apparatus, and information recording medium
CN103368740B (zh) 绑定内容到智能存储装置的数字版权管理系统、装置和方法
US9225520B2 (en) System and method for deterministic generation of a common content encryption key on distinct encryption units
US11184164B2 (en) Secure crypto system attributes
CN100435135C (zh) 在域管理系统的控制下记录和/或再现数据的方法
JP5461436B2 (ja) 簡易非自律ピアリング環境透かし、認証、及びバインド
US8595492B2 (en) On-demand protection and authorization of playback of media assets
JP2005124149A (ja) デジタルコンテンツのためのアクセス制御
JP2005124147A (ja) デジタルビデオストリームのためのアクセス制御
JP2005124146A (ja) デジタルコンテンツのためのアクセス制御
JP4666302B2 (ja) デジタルコンテンツのためのアクセス制御
CN107273724A (zh) 为白盒实施方案的输入和输出加水印
WO2015045173A1 (ja) デジタルデータ編集制御方法、装置、及びプログラム、及びコンピュータ可読記憶媒体
JP2017118447A (ja) 管理局装置、著作権保護装置、編集装置、検証装置、管理プログラム、著作権保護プログラム、編集プログラム、及び検証プログラム
JP5848685B2 (ja) ストレージシステム
JP5988554B2 (ja) 情報処理装置、情報処理方法及びプログラム
JPH0997175A (ja) ソフトウエア利用制御方法
KR102375394B1 (ko) 컨텐츠의 선택적 구간 설정과 인증 토큰 할당을 통한 디지털 콘텐츠 창설 시스템
JP5350021B2 (ja) ファイル生成装置、ファイル再生装置およびコンピュータプログラム
JP2014041581A (ja) ストレージシステム
JP2014041582A (ja) ストレージシステム
JP2014041583A (ja) ストレージシステム
JP2004240959A (ja) コンテンツ再生装置、ライセンス発行サーバ及びコンテンツ再生システム
JP2008011219A (ja) 電子透かし埋込システム、装置及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13894314

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 28.06.2016)

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 13894314

Country of ref document: EP

Kind code of ref document: A1