WO2021245807A1 - 署名検証システム、署名装置、署名検証方法、およびプログラム - Google Patents

署名検証システム、署名装置、署名検証方法、およびプログラム Download PDF

Info

Publication number
WO2021245807A1
WO2021245807A1 PCT/JP2020/021825 JP2020021825W WO2021245807A1 WO 2021245807 A1 WO2021245807 A1 WO 2021245807A1 JP 2020021825 W JP2020021825 W JP 2020021825W WO 2021245807 A1 WO2021245807 A1 WO 2021245807A1
Authority
WO
WIPO (PCT)
Prior art keywords
changer
data
public key
signature
contractor
Prior art date
Application number
PCT/JP2020/021825
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 US17/928,233 priority Critical patent/US20230224165A1/en
Priority to JP2022529192A priority patent/JP7405253B2/ja
Priority to PCT/JP2020/021825 priority patent/WO2021245807A1/ja
Publication of WO2021245807A1 publication Critical patent/WO2021245807A1/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Definitions

  • the present invention relates to a signature verification system, a signature device, a signature verification method, and a program.
  • the value of the data to be analyzed is increasing due to the improvement of AI (artificial intelligence) analysis performance in recent years. Therefore, a mechanism is being considered in which an individual provides his / her own data to a company that wants it and receives compensation for it. As one of the mechanisms, information banks that manage and operate personal data are attracting attention.
  • AI artificial intelligence
  • the information provider first creates and signs data about an individual.
  • the signed data is provided to the individual.
  • the individual who receives the signed data deposits the signed data in the information bank.
  • the information bank provides the deposited signed data to the information user.
  • the signature by the information provider is done to clarify the source of the data and maintain the reliability of the data. Therefore, if the data is changed, the signature verification will fail. However, you may want to change some of the data while maintaining the validity of the signature. For example, if the data contains personal health information, the individual may want to hide some of the health information. Specifically, among the health diagnosis information, there may be a case where weight data is passed but blood type data is not desired to be passed.
  • the information bank may change personal data according to the request of the information user and may want to provide the changed data to the information user.
  • the information bank cannot change the data, the individual must be requested to provide the data according to the request of the information user, which is troublesome. Therefore, if an individual designates an information bank and allows the designated information bank to change the data, such trouble can be eliminated. This is also referred to as entrusting the ability to change by an individual (ie, the person who changed the data) who can change the data.
  • the information bank to which the change ability is entrusted is also referred to as a consignee changer.
  • the changer (individual) generates a new signature for the outsourcer in order to outsource the ability to change data to the outsourcer (information bank), and the signer (information provider). ) Can be added to the signature to entrust the ability to change.
  • An object of the present invention is to provide a signature verification system, a signature device, a signature verification method, and a program that can outsource the ability to change data without increasing the signature size or the calculation cost for verification. be.
  • the signature verification system has a first chameleon hash value calculated using the public key of the data changer, the public key of the temporary contractor changer of the data, and the data.
  • the signing device that signs the immutable portion and the second chameleon hash value of the entire data calculated using the changer's public key, and the signed data that has been signed.
  • a change device that changes the public key of the temporary contractor changer to the public key of the actual contractor changer using the changer's private key, and a signature specified by the actual contractor changer.
  • the contractor change device that changes the changeable part of the data and the signed data in which the changeable part of the data is changed are received.
  • the signing device has a first chameleon hash value calculated using the public key of the data changer, the public key of the temporary contractor changer of the data, and the change of the data.
  • the impossible part and the second chameleon hash value of the whole of the data calculated by using the public key of the changer are signed.
  • the signature verification method includes a first chameleon hash value calculated using the public key of the data changer, the public key of the temporary contractor changer of the data, and the data.
  • the signing step of signing the immutable portion and the second chameleon hash value of the entire data calculated using the changer's public key, and the signed signed data Upon receiving the signing step of signing the immutable portion and the second chameleon hash value of the entire data calculated using the changer's public key, and the signed signed data.
  • the first change step of changing the public key of the temporary contractor changer to the public key of the actual contractor changer by using the changer's private key, and the actual contractor changer are designated.
  • the program according to one aspect of the present invention causes a computer to execute the above signature verification method.
  • FIG. 1 is a diagram illustrating an outline of an embodiment of the present invention. As described above, an embodiment of the present invention will be described based on a system including an information bank that manages and operates personal data.
  • the system in one embodiment of the invention includes an information provider 10, an individual 20, an information bank 30, and an information user 40.
  • the information provider 10 generates data about the individual 20, signs the generated data, and provides the signed data to the individual 20.
  • the data includes provisional outsourcer changer information for designating an actual outsourcer changer by the individual 20, as will be described later.
  • the information provider 10 can be the signer of the data in the embodiment of the present invention.
  • the individual 20 changes the temporary contractor changer information included in the received signed data into the actual contractor changer information while maintaining the validity of the signature by the information provider 10, and the contractor changer information. Provides the modified signed data to the information bank 30. Further, the data includes a changeable part and an immutable part, and the individual 20 may change the changeable part of the data.
  • the individual 20 can be the alternator of the data in the embodiments of the present invention.
  • the information bank 30 can change the changeable part of the data while maintaining the validity of the signature by the information provider 10 when it is specified by the contractor changer information, and the changed signature.
  • the attached data is provided to the information user 40.
  • the information bank 30 can be a contractor changer entrusted with the ability to change data in the embodiment of the present invention.
  • the information user 40 verifies the signature of the signed data received from the information bank 30.
  • the information user 40 uses the data when the verification is successful.
  • the information user 40 can be a data verifier in the embodiment of the present invention.
  • the changer (individual 20) and the contractor changer (information bank 30) use a predetermined part of the message (data) as the original signer (data).
  • the changer (individual 20) and the contractor changer (information bank 30) use a predetermined part of the message (data) as the original signer (data).
  • a normal hash function (a hash function that is not a chameleon hash) has the property of compressing an input message to a value (hash value) of a predetermined bit length and not generating the same hash value unless it is the same message. That is, if the message is represented by m and m'and the hash function is represented by H (), then if m ⁇ m', then H (m) ⁇ H (m'). This property is called collision difficulty.
  • a normal hash function has the property that a collision cannot be found from the hash value.
  • FIG. 2 is a diagram illustrating a method of entrusting the changing ability in the embodiment of the present invention.
  • a changer having the ability to change data designates a changer who is a contractor of the change ability while maintaining the validity of the signature by the signer will be described. ..
  • the changer when the changer entrusts the change ability to the plaintext + signature (signer's key) 201, the outsourcer information + signature (changer's key) 202 is added. That is, the contractor changer is designated by adding the contractor information + signature (changer's key) 202 to the plaintext + signature (signer's key) 201. In this method, a new signature is required for the contractor information, so that the signature size and the calculation cost for verification increase.
  • the signature is performed with the signer's key (211).
  • the changer changes the provisional contractor information to the actual contractor information while maintaining the validity of the signature by the signer (212). Since this method does not require a new signature for the contractor information, it is possible to outsource the change capability without increasing the signature size and the calculation cost for verification.
  • FIG. 3 is a block diagram showing a configuration example of the signature verification system according to the first embodiment.
  • the signature verification system 100 includes a key generation device 110, a signature device 120, a change device 130, a contractor change device 140, and a verification device 150. Each component of the signature verification system 100 will be described in detail with reference to FIG.
  • FIG. 4 is a functional block diagram showing a specific configuration example of the signature verification system according to the first embodiment.
  • the key generation device 110 includes a key generation unit 111 and a key providing unit 112.
  • the key generation unit 111 generates a key pair used for signing data.
  • the key generation unit 111 is a pair of a public key pk sign and a private key sk sign for signing and verification, and a public key pk san and a private key sk used when a changer specifies a contractor of change ability.
  • a pair of san and a pair of public key pk dsan and private key sk dsan for data change used by the contractor changer to change data are generated.
  • the key providing unit 112 provides the generated key to the signature device 120, the changing device 130, the contractor changing device 140, and the verification device 150.
  • the key may be provided by any method, may be transmitted via a network, or may be stored in a removable storage device and transported. Further, the key generation in the key generation device 110 may be performed by the signature device 120 or the change device 130.
  • the signature device 120 has a data generation unit 121, a signature unit 122, and a data transmission unit 123.
  • the signature device 120 corresponds to the device used by the information provider 10 described above.
  • the data generation unit 121 generates the target data.
  • the data includes a modifiable part that can be changed and an immutable part that cannot be changed. Data is also referred to as plaintext.
  • the signature unit 122 signs the chameleon hash value using the public key of the changer and the temporary public key of the outsourcee changer, the fixed part (unchangeable part) of the plaintext, and the chameleon hash value of the entire plaintext. do.
  • the data transmission unit 123 transmits the signed data to the change device 130.
  • the change device 130 has a data change unit 131, a signature unit 132, a contractor designation unit 133, and a data transmission unit 134.
  • the changing device 130 corresponds to the device used by the individual 20 described above.
  • the data changing unit 131 changes the changeable part of the plaintext in the signed data.
  • the signature unit 132 signs the changed plaintext with black ink.
  • the outsourcer designation unit 133 designates the actual outsourcer changer by changing the temporary public key of the outsourcer changer to the public key of the actual outsourcer changer.
  • the data transmission unit 134 transmits the changed signed data to the contractor change device 140.
  • the consignee change device 140 has a data change unit 141, a signature unit 142, and a data transmission unit 143.
  • the outsourcer change device 140 corresponds to the device used by the information bank 30 described above.
  • the data change unit 141 changes the changeable part of the plaintext in the signed data.
  • the signature unit 142 makes a sumi-painted signature on the changed plaintext.
  • the data transmission unit 143 transmits the changed signed data to the verification device 150.
  • the verification device 150 has a verification unit 151.
  • the verification device 150 corresponds to the device used by the information user 40 described above.
  • the verification unit 151 verifies the signature of the signed data after the change by using the public key corresponding to the private key for signature, the public key of the changer, and the public key of the contractor changer. If the verification is successful, the information user 40 can use the successfully verified data for a desired purpose.
  • Each processing unit of each of the above-mentioned devices is realized by, for example, a CPU (Central Processing Unit) of a computer that operates according to a program, and a communication interface of the computer.
  • the CPU can read a program from a program recording medium such as a program storage device of the computer, and operate as each processing unit of each of the above-mentioned devices by using a communication interface as necessary according to the program.
  • FIG. 5 is a sequence diagram of the signature verification process in the first embodiment. The details of the matters already explained will be omitted.
  • step S501 the signature device 120 uses a chameleon hash value using the public key of the changer and the temporary public key of the outsourced changer, a fixed part (unchangeable part) of the plaintext, and a chameleon hash of the entire plaintext. Sign against the value.
  • the signature itself is performed by a general method using a private key for signature.
  • the signed signed data is provided to the changing device 130.
  • step S502 the changing device 130 changes the changeable part of the signed data.
  • the data can be changed when the change device 130 has a private key corresponding to the public key for the changer.
  • step S503 the changing device 130 signs the changed data with black ink.
  • step S504 the change device 130 designates the outsourcer changer by changing the public key of the temporary outsourcer changer to the public key of the actual outsourcer changer.
  • the signed modified data is provided to the outsourced altering device 140.
  • step S505 the contractor changing device 140 changes the changeable part of the signed data.
  • the data can be changed when the outsourcee change device 140 has a private key corresponding to the public key for the outsourcer changer.
  • step S506 the contractor changing device 140 signs the changed data with black ink.
  • the signed modified data is provided to the verification device 150.
  • step S507 the verification device 150 verifies the signature of the signed modified data using the public key corresponding to the private key for signature, the public key of the changer, and the public key of the contractor changer. do.
  • the signature verification process in this embodiment is carried out.
  • the two types of chameleon hashes are used.
  • the two types of chameleon hashes are a plaintext modified chameleon hash (also referred to as MCH) and a key and a plaintext modified chameleon hash (also referred to as KMCH).
  • the following equation (1) is used for the public key pk, the unchanged message m, the random number r, and the changed message m'using the private key sk for the public key pk. It is possible to calculate the random number r'to be satisfied.
  • the private key sk'for the public key pk' is used for the public key pk, the message m before the change, the random number r, and the message m'after the change. It is possible to calculate a random number r'that satisfies the equation (2) of.
  • the signer (signature apparatus 120), as shown in the following equation (3), MCH hash value of subcontractor information temporary plaintext m FIX fixed portion, with respect KMCH hash value of the plaintext entire m Full , Sign using a common signing method.
  • a general signature method for example, there is a DSA (Digital Signature Algorithm) method signature method.
  • the second PK san (that is, the public key of the changer) in the MCH is used as the public key of the temporary contractor changer.
  • the changer ( changer 130) discloses the public key PK san of the temporary contractor changer by utilizing the nature of the MCH. Change to the key pk dsan.
  • the contractor changer uses the property of KMCH to change the plaintext other than the fixed part (that is, the changeable part) to the contractor, as shown in the following formula (5). Change using the person's private key.
  • a random number r kmch is changed to a random number r'kmch.
  • m FULL representing the whole plaintext is changed to m'FULL.
  • the verifier reproduces the hash value and verifies the signature by using the random number, the plain text, and the public key of the verifier, the changer, and the contractor changer.
  • Signer (signature apparatus 120), as shown in the following equation (6), with respect to MCH hash value using a public key pk san the changer's fixed part m FIX plaintext entire m FULL plaintext, general
  • the signature is signed using the signer 's private key sk sig.
  • the random number r used for the signature and the hash calculation is passed to the changer (change device 130).
  • the changer (changer 130) creates an MCH random number r'corresponding to the new plaintext m'using the plaintext m, the random number r, and the changer's secret key sk san, as shown in the following equation (7). Then, it is replaced with the random number r used for the hash calculation and passed to the verifier (verification device 150).
  • the verifier (verification device 150) recalculates the MCH hash value and verifies the signature ⁇ using the plaintext m and the random number r, as well as the signer's public key pk sig and the changer's public key pk san.
  • the change person can calculate the random number r'for plaintext m'FULL that by utilizing the secret key sk san, MCH hash value is the same value.
  • the key generation algorithm inputs the security parameter ⁇ and outputs the public key pk and the private key sk.
  • the signature algorithm inputs the secret key sk and the plaintext m, and outputs the signature ⁇ for the plaintext m.
  • the verification algorithm inputs the public key pk, the plaintext m, and the signature ⁇ , and returns True if the signature is valid and False if the signature is invalid.
  • the key generation algorithm inputs the security parameter ⁇ and outputs the public key pk and the private key sk.
  • the hash algorithm outputs the hash value h and the random number r by inputting the public key pk and the plaintext m.
  • the rehash algorithm inputs the public key pk, the plaintext m, and the random number r, and outputs the hash value h.
  • the matching algorithm inputs the secret key sk, the plaintext m, the changed plaintext m', and the random number r, and outputs a new random number r'that satisfies the following equation (15). ..
  • the key generation algorithm inputs the security parameter ⁇ and outputs the public key pk and the private key sk.
  • the hash algorithm outputs the hash value h and the random number r by inputting the public key pk and the plaintext m.
  • the rehash algorithm inputs the public key pk, the plaintext m, and the random number r, and outputs the hash value h.
  • the matching algorithm inputs the secret key sk', the plaintext m, the changed plaintext m', and the random number r, and outputs a new random number r'that satisfies the following equation (20). do.
  • the public key pk sig and the private key sk sig are output with the security parameter ⁇ as an input.
  • the public key pk san and the private key sk san are output with the security parameter ⁇ as an input.
  • the public key pk del and the private key sk del are output by inputting the security parameter ⁇ .
  • the signature ⁇ of the plaintext m is output by inputting the private key sk sig of the signer, the public key pk san of the changer, and the plaintext m.
  • the secret key sk san of the changer, the plaintext m, the changed plaintext m', and the signature ⁇ of the plaintext m are input, and the signature ⁇ 'of the changed plaintext m'is output.
  • the signer's public key pksig, the changer's public key pksan, the plaintext m and the signature ⁇ are input, and True is returned if the signature is valid, and False is returned if the signature is invalid.
  • the public key pksan of the changer, the private key sksan of the changer, the public key pksan of the changer of the consignee, and the signature ⁇ before the consignment are input, and the signature ⁇ 'after the consignment is output.
  • the secret key Skdel plaintext m of the contractor changer, the changed plaintext m', and the signature ⁇ of the plaintext m are input, and the signature ⁇ 'of the changed plaintext m'is output.
  • the signer's public key pksig and the changer's public key pksan, the contractor's changer's public key pkdel, the plaintext m and the signature ⁇ are input, and True is returned if the signature is valid, and True if it is invalid. False is returned.
  • MCH may be replaced with KMCH.
  • FIG. 6 is a schematic block diagram showing an example of a computer hardware configuration according to the present embodiment.
  • the illustrated computer can operate as each device constituting the signature verification system of the present embodiment.
  • the computer 600 includes a CPU 601, a main storage device 602, an auxiliary storage device 603, an interface 604, and a communication interface 605.
  • the operation of the computer 600 is stored in the auxiliary storage device 603 in the form of a program.
  • the CPU 601 reads the program from the auxiliary storage device 603, expands it to the main storage device 602, and executes the operation of each device described in the present embodiment according to the program.
  • Auxiliary storage 603 is an example of a non-temporary tangible medium.
  • Other examples of non-temporary tangible media include magnetic disks, optical magnetic disks, CD-ROMs (Compact Disk Read Only Memory), DVD-ROMs (Digital Versatile Disk Read Only Memory), which are connected via interface 604. Examples include semiconductor memory.
  • the distributed computer 600 may expand the program to the main storage device 602 and operate according to the program.
  • each component of each device may be realized by a general-purpose or dedicated circuitry, a processor, or a combination thereof. These may be composed of a single chip or may be composed of a plurality of chips connected via a bus. A part or all of each component may be realized by the combination of the circuit or the like and the program described above.
  • Second embodiment >> Next, a second embodiment of the present invention will be described with reference to FIG. 7.
  • the first embodiment described above is a specific embodiment, while the second embodiment is a more generalized embodiment.
  • FIG. 7 is a functional block diagram showing a specific configuration example of the signature verification system according to the second embodiment.
  • the signature verification system 700 in the present embodiment includes a signature device 710, a change device 720, a contractor change device 730, and a verification device 740.
  • the number of the signature device 710, the change device 720, the contractor change device 730, and the verification device 740 is not limited to the number shown in the figure. Further, the signature device 710, the change device 720, the contractor change device 730, and the verification device 740 may be connected to each other via a communication network.
  • the signature device 710 has a signature unit 711.
  • the signing unit 711 has a first chameleon hash value calculated using the public key of the data changer and the temporary public key of the contractor changer who is entrusted with the data change, and the unchangeable part of the data. And the second chameleon hash value of the entire data calculated using the changer's public key.
  • the change device 720 has a contractor designation unit 721.
  • the contractor designation unit 721 receives the signed data and uses the changer's private key to change the temporary public key of the contractor changer to the actual public key of the contractor changer.
  • the outsourcer change device 730 has a data change unit 731.
  • the data change unit 731 receives the signed data specified by the actual contractor changer, and changes the changeable part of the data by using the private key of the actual contractor changer.
  • the verification device 740 has a verification unit 741.
  • the verification unit 741 receives the signed data in which the changeable part of the data has been changed, and verifies the signature using the public key of the changer and the public key of the actual contractor changer.
  • Each processing unit of each of the above-mentioned devices is realized by, for example, a CPU (Central Processing Unit) of a computer that operates according to a program, and a communication interface of the computer.
  • the CPU can read a program from a program recording medium such as a program storage device of the computer, and operate as each processing unit of each of the above-mentioned devices by using a communication interface as necessary according to the program.
  • the signature device 710 (signature unit 711) is calculated using the public key of the data changer and the temporary public key of the contractor changer who is entrusted with the data change.
  • the first chameleon hash value, the immutable part of the data, and the second chameleon hash value of the entire data calculated using the changer's public key are signed.
  • the change device 720 (consignee designation unit 721) receives the signed data, and uses the changer's private key to publish the temporary public key of the outsourcer changer to the actual outsourcer changer. Change to a key.
  • the outsourcer change device 730 receives the signed data specified by the actual outsourcer changer, and uses the private key of the actual outsourcer changer to change the changeable part of the data. do.
  • the verification device 740 receives the signed data in which the changeable part of the data is changed, and verifies the signature using the public key of the changer and the public key of the actual contractor changer. ..
  • the signature device 710, the change device 720, the contractor change device 730, and the verification device 740 in the second embodiment are the signature device 120 and the change in the first embodiment, respectively.
  • the description of the first embodiment may also be applied to the second embodiment.
  • the second embodiment is not limited to this example.
  • each process described in the present specification does not necessarily have to be executed in chronological order in the above-mentioned order.
  • each process may be executed in an order different from the above-mentioned order, or may be executed in parallel. Further, a part of each process may not be executed, and further processes may be added.
  • one or more devices (or units) among a plurality of devices (or units) constituting the signature verification system including the components of the signature verification system described in the present specification.
  • Modules for one of the devices (or units) may be provided.
  • a method including the processing of the above components may be provided, and a program for causing the processor to execute the processing of the above components may be provided.
  • a non-transitory computer readable medium may be provided to the computer on which the program is recorded.
  • such devices, modules, methods, programs, and computer-readable non-temporary recording media are also included in the invention.
  • a signing device that signs the second chameleon hash value of the entire data calculated using
  • a change device that receives the signed data and changes the public key of the temporary contractor changer to the public key of the actual contractor changer by using the private key of the changer.
  • An outsourcer change device that receives the signed data specified by the actual outsourcer changer and changes the changeable part of the data using the private key of the actual outsourcer changer.
  • a signature that includes a verification device that receives the signed data in which the modifiable part of the data has been modified and verifies the signature using the changer's public key and the actual outsourced changer's public key. Verification system.
  • Appendix 2 The signature verification system according to Appendix 1, wherein the change device replaces the random number used for calculating the first chameleon hash value with a random number corresponding to the public key of the actual contractor changer. ..
  • the outsourcer change device replaces the random number used in the calculation of the second chameleon hash value with the random number corresponding to the changed data calculated using the private key of the actual outsourcer changer.
  • the verification device reproduces the first chameleon hash value from the public key of the changer, the public key of the actual contractor changer, and the random number corresponding to the public key of the actual contractor changer. Then, the second chameleon hash value is reproduced from the changed data, the public key of the actual contractor changer, and the random number for the changed data, and the reproduced first chameleon hash is reproduced. Described in any one of Supplementary note 1 to 3, wherein the signature is verified using the value, the immutable portion of the data, the second chameleon hash value, and the signer's public key. Signature verification system.
  • a signature verification method including a verification step of receiving signed data in which the content of the data has been changed and verifying the signature using the public key of the changer and the public key of the actual contractor changer. ..
  • Appendix 9 A program for causing a computer to execute the signature verification method described in Appendix 8.
  • the present invention can be suitably applied to a signature verification system that uses a black-painted signature that can specify a person who changes the contractor of data.
  • Signature verification system 110 Key generator 111 Key generator 112 Key provider 120 Signature device 121 Data generator 122 Signature unit 123 Data transmission unit 130 Change device 131 Data change unit 132 Signature unit 133 Contractor designation unit 134 Data transmission unit 150 Verification device 151 Verification unit

Landscapes

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

Abstract

署名検証システム100は、データの変更者の公開鍵と、データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、データの変更不可部分と、変更者の公開鍵を用いて算出されたデータ全体の第2のカメレオンハッシュ値とに対して署名を行う署名装置120と、署名がなされた署名付きデータを受け取って、変更者の秘密鍵を用いて、仮の委託先変更者の公開鍵を実際の委託先変更者の公開鍵に変更する変更装置130と、実際の委託先変更者が指定された署名付きデータを受け取って、実際の委託先変更者の秘密鍵を用いて、データの変更可能部分を変更する委託先変更装置140と、データの変更可能部分が変更された署名付きデータを受け取って、変更者の公開鍵と実際の委託先変更者の公開鍵とを用いて、署名を検証する検証装置150とを含む。

Description

署名検証システム、署名装置、署名検証方法、およびプログラム
 本発明は、署名検証システム、署名装置、署名検証方法、およびプログラムに関する。
 近年のAI(人工知能)分析性能の向上により、分析対象となるデータの価値が向上している。そこで、個人が自分のデータを、それを欲する企業に提供し、その対価を受け取る仕組みが検討されている。その仕組みの一つとして、個人のデータを管理し、運用する情報銀行が注目を集めている。
 情報銀行の仕組みでは、まず、情報提供者が個人に関するデータを作成し、署名する。署名付きデータは、個人に提供される。署名付きデータを受け取った個人は、当該署名付きデータを情報銀行に預託する。情報銀行は、預託された署名付きデータを情報利用者に提供する。
 情報提供者による署名は、データの出所を明らかにし、データの信頼性を保つために行われる。したがって、データが変更されると、署名の検証には失敗してしまう。しかしながら、署名の有効性を維持したまま、データの一部を変更したい場合がある。例えば、データが個人の健康診断情報を含む場合、個人は、健康診断情報の一部を隠したい場合があり得る。具体的には、健康診断情報のうち、体重のデータは渡すが、血液型のデータは渡したくない場合等があり得る。
 さらに、情報銀行は、情報利用者の要望に応じて個人のデータを変更し、変更したデータを情報利用者に提供したい場合があり得る。このような場合に情報銀行がデータを変更できないと、その都度、個人に、情報利用者の要望に応じたデータの提供を依頼しなくてはならず、手間がかかってしまう。したがって、個人が情報銀行を指定し、指定された情報銀行によるデータの変更を許可することで、そのような手間をなくすことができる。これを、データを変更することができる個人(すなわち、変更者)による変更能力の委託とも称する。また、変更能力が委託される情報銀行を、委託先変更者とも称する。
 非特許文献1に記載の技術を利用すると、データの変更能力を委託先(情報銀行)に委託するために、変更者(個人)が委託先に対する署名を新しく生成し、署名者(情報提供者)からの署名に追加することで、変更能力を委託することが可能である。
C. Brzuska, M. Fischlin, A. Lehmann, and D. Schroder, "Santizable signatures: How to partially delegate control for authenticated data", In BIOSIG, pages 117-128, 2009
 しかしながら、非特許文献1に記載の技術では、署名の数が増えることで署名サイズが大きくなり、検証のための計算コストも高くなってしまう。
 本発明の目的は、署名サイズや検証のための計算コストを増加させずに、データの変更能力を委託することが可能な署名検証システム、署名装置、署名検証方法、およびプログラムを提供することにある。
 本発明の一態様による署名検証システムは、データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データ全体の第2のカメレオンハッシュ値とに対して署名を行う署名装置と、前記署名がなされた署名付きデータを受け取って、前記変更者の秘密鍵を用いて、前記仮の委託先変更者の公開鍵を実際の委託先変更者の公開鍵に変更する変更装置と、前記実際の委託先変更者が指定された署名付きデータを受け取って、前記実際の委託先変更者の秘密鍵を用いて、前記データの変更可能部分を変更する委託先変更装置と、前記データの変更可能部分が変更された署名付きデータを受け取って、前記変更者の公開鍵と前記実際の委託先変更者の公開鍵とを用いて、前記署名を検証する検証装置とを含む。
 本発明の一態様による署名装置は、データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データの全体の第2のカメレオンハッシュ値とに対して署名を行う。
 本発明の一態様による署名検証方法は、データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データ全体の第2のカメレオンハッシュ値とに対して署名を行う署名ステップと、前記署名がなされた署名付きデータを受け取って、前記変更者の秘密鍵を用いて、前記仮の委託先変更者の公開鍵を実際の委託先変更者の公開鍵に変更する第1の変更ステップと、前記実際の委託先変更者が指定された署名付きデータを受け取って、前記実際の委託先変更者の秘密鍵を用いて、前記データの変更可能部分を変更する第2の変更ステップと、前記データの内容が変更された署名付きデータを受け取って、前記変更者の公開鍵と前記実際の委託先変更者の公開鍵とを用いて、前記署名を検証する検証ステップとを含む。
 本発明の一態様によるプログラムは、コンピュータに上記署名検証方法を実行させる。
 本発明によれば、署名サイズや検証のための計算コストを増加させずに、データの変更能力を委託することが可能になる。
本発明の実施形態の概要を説明する図である。 本発明の実施形態における変更能力の委託方法を説明する図である。 第1の実施形態における署名検証システムの構成例を示すブロック図である。 第1の実施形態における署名検証システムの具体的な構成例を示す機能ブロック図である。 第1の実施形態における署名検証処理のシーケンス図である。 第1の実施形態におけるコンピュータのハードウェア構成例を示す概略ブロック図である。 第2の実施形態における署名検証システムの具体的な構成例を示す機能ブロック図である。
 以下、本発明の各実施形態を、図面を参照して説明する。なお、本明細書及び図面において、同様に説明されることが可能な要素については、同一の符号を付することにより重複説明が省略され得る。
 説明は、以下の順序で行われる。
 1.本発明の実施形態の概要
 2.第1の実施形態
  2.1.システム構成
  2.2.動作例
  2.3.具体例
  2.4.ハードウェア構成
  2.5.効果の説明
 3.第2の実施形態
  3.1.システム構成
  3.2.動作例
  3.3.効果の説明
 4.他の実施形態
 <<1.本発明の実施形態の概要>>
 図1は、本発明の実施形態の概要を説明する図である。本発明の実施形態は、上述したように、個人のデータを管理し、運用する情報銀行を含むシステムに基づいて説明する。
 図示されるように、本発明の一実施形態におけるシステムは、情報提供者10と、個人20と、情報銀行30と、情報利用者40とを含む。
 情報提供者10は、個人20に関するデータを生成し、生成したデータに対して署名し、署名付きデータを個人20に提供する。データは、後述するように、個人20によって実際の委託先変更者を指定するための仮の委託先変更者情報を含む。情報提供者10は、本発明の実施形態におけるデータの署名者となり得る。
 個人20は、情報提供者10による署名の有効性を維持したまま、受け取った署名付きデータに含まれる仮の委託先変更者情報を実際の委託先変更者情報に変更し、委託先変更者情報が変更された署名付きデータを情報銀行30に提供する。また、データは、変更可能部分と変更不可部分とを含み、個人20は、データの変更可能部分を変更してもよい。個人20は、本発明の実施形態におけるデータの変更者となり得る。
 情報銀行30は、自身が委託先変更者情報によって指定されている場合に、情報提供者10による署名の有効性を維持したまま、データの変更可能部分を変更することができ、変更された署名付きデータを情報利用者40に提供する。情報銀行30は、本発明の実施形態におけるデータの変更能力が委託された委託先変更者となり得る。
 情報利用者40は、情報銀行30から受け取った署名付きデータの署名を検証する。情報利用者40は、検証が成功すると、データを利用する。情報利用者40は、本発明の実施形態におけるデータの検証者となり得る。
 本発明の実施形態では、このようなシステムにおいて、署名サイズや検証のための計算コストを増加させずに、データの変更能力を委託することを可能にする。なお、情報提供者10、個人20、情報銀行30、および情報利用者40の数は、図示された数に限定されない。
 また、本発明の実施形態では、いわゆる墨塗署名(sanitizable signature)として、変更者(個人20)および委託先変更者(情報銀行30)がメッセージ(データ)の所定部分を、元の署名者(情報提供者10)とやり取りせずに変更し、変更されたメッセージに対する有効な署名を生成することができる電子署名を用いる。
 また、本発明の実施形態における墨塗署名は、カメレオンハッシュを用いて実現する。通常のハッシュ関数(カメレオンハッシュでないハッシュ関数)は、入力されたメッセージを所定のビット長の値(ハッシュ値)に圧縮し、同じメッセージでない限り、同じハッシュ値を生成しないという性質を有する。すなわち、メッセージをmおよびm´で表し、ハッシュ関数をH()で表すとすると、m≠m´である場合、H(m)≠H(m´)である。この性質は、衝突困難性と呼ばれる。また、通常のハッシュ関数は、ハッシュ値から衝突を見つけることはできないという性質を有する。つまり、mとH(m)から、H(m´)となるm´は求めることができない。なお、m≠m´である。この性質は、第2原像計算困難性と呼ばれる。一方、カメレオンハッシュは、ある秘密鍵がわかる場合に、衝突を見つけられるハッシュ関数である。
 図2は、本発明の実施形態における変更能力の委託方法を説明する図である。以下では、本発明の実施形態において、データの変更能力を有する変更者が、署名者による署名の有効性を維持したまま、変更能力の委託先である委託先変更者を指定する方法を説明する。
 まず、図2(a)を参照して、上述した非特許文献1に記載の技術を利用した委託先変更者の指定方法を説明する。
 図2(a)では、平文+署名(署名者の鍵)201について、変更者が変更能力を委託する場合、委託先情報+署名(変更者の鍵)202が追加される。すなわち、平文+署名(署名者の鍵)201に、委託先情報+署名(変更者の鍵)202を付与することで、委託先変更者を指定する。この方法では、委託先情報に対して新たな署名が必要となるため、署名サイズや検証のための計算コストが増加してしまう。
 次に、図2(b)を参照して、本発明の実施形態における委託先変更者の指定方法を説明する。
 図2(b)では、まず、平文に仮の委託先情報を加えた状態で、署名者の鍵により署名を行う(211)。委託先変更者を指定する場合、変更者は、署名者による署名の有効性を維持したまま、仮の委託先情報を実際の委託先情報に変更する(212)。この方法では、委託先情報に対して新たな署名を必要としないので、署名サイズや検証のための計算コストを増加させずに、変更能力を委託することが可能になる。
 <<2.第1の実施形態>>
 <2.1.システム構成>
 図3は、第1の実施形態における署名検証システムの構成例を示すブロック図である。署名検証システム100は、鍵生成装置110と、署名装置120と、変更装置130と、委託先変更装置140と、検証装置150とを含む。署名検証システム100の各構成要素については、図4を参照して詳細に説明する。
 図4は、第1の実施形態における署名検証システムの具体的な構成例を示す機能ブロック図である。
 鍵生成装置110は、鍵生成部111と鍵提供部112とを有する。鍵生成部111は、データの署名に用いられる鍵のペアを生成する。具体的には、鍵生成部111は、署名および検証用の公開鍵pksignと秘密鍵sksignのペア、変更者が変更能力の委託先を指定する際に用いる公開鍵pksanと秘密鍵sksanのペア、および、委託先変更者がデータを変更する際に用いるデータ変更用の公開鍵pkdsanと秘密鍵skdsanのペアを生成する。鍵提供部112は、生成された鍵を署名装置120、変更装置130、委託先変更装置140、および検証装置150に提供する。なお、鍵の提供は、任意の方法で行うことができ、ネットワークを介して送信してもよいし、取り外し可能な記憶装置に記憶させて搬送してもよい。また、鍵生成装置110における鍵生成は、署名装置120や変更装置130が行ってもよい。
 署名装置120は、データ生成部121、署名部122、およびデータ送信部123を有する。署名装置120は、上述した情報提供者10が利用する装置に対応する。データ生成部121は、対象のデータを生成する。データは、変更することが可能な変更可能部分と、変更することができない変更不可部分とを含む。データは、平文とも称する。署名部122は、変更者の公開鍵及び委託先変更者の仮の公開鍵を用いたカメレオンハッシュ値と、平文の固定部分(変更不可部分)と、平文全体のカメレオンハッシュ値とに対して署名する。データ送信部123は、署名付きデータを変更装置130に送信する。
 変更装置130は、データ変更部131、署名部132、委託先指定部133、およびデータ送信部134を有する。変更装置130は、上述した個人20が利用する装置に対応する。データ変更部131は、署名付きデータにおける平文の変更可能部分を変更する。署名部132は、変更された平文に対して墨塗署名を行う。委託先指定部133は、委託先変更者の仮の公開鍵を、実際の委託先変更者の公開鍵に変更することで、実際の委託先変更者を指定する。データ送信部134は、変更後の署名付きデータを委託先変更装置140に送信する。
 委託先変更装置140は、データ変更部141、署名部142、およびデータ送信部143を有する。委託先変更装置140は、上述した情報銀行30が利用する装置に対応する。データ変更部141は、署名付きデータにおける平文の変更可能部分を変更する。署名部142は、変更された平文に対して墨塗署名を行う。データ送信部143は、変更後の署名付きデータを検証装置150に送信する。
 検証装置150は、検証部151を有する。検証装置150は、上述した情報利用者40が利用する装置に対応する。検証部151は、署名用の秘密鍵に対応する公開鍵、変更者の公開鍵、および委託先変更者の公開鍵を用いて、変更後の署名付きデータの署名を検証する。検証に成功すると、情報利用者40は、検証に成功したデータを所望の目的に利用することができる。
 上述した各装置の各処理部は、例えば、プログラムに従って動作するコンピュータのCPU(Central Processing Unit)、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、そのコンピュータのプログラム記憶装置等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、必要に応じて通信インタフェースを用いて、上述した各装置の各処理部として動作することができる。
 <2.2.動作例>
 次に、第1の実施形態における動作例について説明する。
 図5は、第1の実施形態における署名検証処理のシーケンス図である。なお、既に説明した事項については、詳細な説明は省略する。
 まず、ステップS501において、署名装置120は、変更者の公開鍵及び委託先変更者の仮の公開鍵を用いたカメレオンハッシュ値と、平文の固定部分(変更不可部分)と、平文全体のカメレオンハッシュ値とに対して署名する。署名自体は、署名用の秘密鍵を用いた一般的な方式で行われる。署名がなされた署名付きデータは、変更装置130へ提供される。
 次いで、ステップS502において、変更装置130は、署名付きデータのうち、変更可能部分を変更する。データの変更は、変更装置130が、変更者用の公開鍵に対応する秘密鍵を有している場合に行うことができる。その後、ステップS503において、変更装置130は、変更後のデータに墨塗署名する。さらに、ステップS504において、変更装置130は、仮の委託先変更者の公開鍵を、実際の委託先変更者の公開鍵に変更することで、委託先変更者を指定する。署名付きの変更後データは、委託先変更装置140へ提供される。
 次いで、ステップS505において、委託先変更装置140は、署名付きデータのうち、変更可能部分を変更する。データの変更は、委託先変更装置140が、委託先変更者用の公開鍵に対応する秘密鍵を有している場合に行うことができる。その後、ステップS506において、委託先変更装置140は、変更後のデータに墨塗署名する。署名付きの変更後データは、検証装置150へ提供される。
 次いで、ステップS507において、検証装置150は、署名用の秘密鍵に対応する公開鍵、変更者の公開鍵、および委託先変更者の公開鍵を用いて、署名付きの変更後データの署名を検証する。
 以上説明したように、本実施形態における署名検証処理は実施される。
 <2.3.具体例>
 次に、本実施形態における署名検証処理の具体例について説明する。
 まず、本実施形態におけるカメレオンハッシュベースの墨塗署名の拡張について説明する。
 本実施形態では、2種類のカメレオンハッシュを用いる。2種類のカメレオンハッシュとは、平文変更カメレオンハッシュ(MCHとも称する)と、鍵及び平文変更カメレオンハッシュ(KMCHとも称する)である。
 平文変更カメレオンハッシュ(MCH)では、公開鍵pk、変更前メッセージm、乱数r、及び変更後メッセージm´に対して、公開鍵pkに対する秘密鍵skを利用して、以下の式(1)を満たす乱数r´を算出することが可能である。
Figure JPOXMLDOC01-appb-M000001
 また、鍵及び平文変更カメレオンハッシュ(KMCH)では、公開鍵pk、変更前メッセージm、乱数r、及び変更後メッセージm´に対して、公開鍵pk´に対する秘密鍵sk´を利用して、以下の式(2)を満たす乱数r´を算出することが可能である。
Figure JPOXMLDOC01-appb-M000002
 次に、上述した2種類のカメレオンハッシュを用いて、署名から検証までの流れを説明する。
 まず、署名者(署名装置120)は、以下の式(3)に示すように、仮の委託先情報のMCHハッシュ値、固定部分の平文mFIX、平文全体mFullのKMCHハッシュ値に対して、一般的な署名方法を利用して署名を行う。一般的な署名方法としては、例えば、DSA(Digital Signature Algorithm)方式の署名方法などがある。
Figure JPOXMLDOC01-appb-M000003
 ここでは、MCHにおける2番目のpksan(すなわち、変更者の公開鍵)が、仮の委託先変更者の公開鍵として用いられている。
 次いで、変更者(変更装置130)は、以下の式(4)に示すように、仮の委託先変更者の公開鍵pksanを、MCHの性質を利用して実際の委託先変更者の公開鍵pkdsanに変更する。
Figure JPOXMLDOC01-appb-M000004
 ここで、実際には、乱数rmchが乱数r´mchに変更される。
 次いで、委託先変更者(委託先変更装置140)は、以下の式(5)に示すように、KMCHの性質を利用して、固定部分以外(すなわち、変更可能部分)の平文を委託先変更者の秘密鍵を使って変更する。
Figure JPOXMLDOC01-appb-M000005
 ここで、実際には、乱数rkmchが乱数r´kmchに変更される。また、平文の全体を表すmFULLが、m´FULLに変更されている。
 次いで、検証者(検証装置150)は、乱数、平文、並びに、検証者、変更者及び委託先変更者の公開鍵を利用して、ハッシュ値を再現して署名を検証する。
 次に、カメレオンハッシュベースの墨塗署名について、より詳細に説明する。
 署名者(署名装置120)は、以下の式(6)に示すように、平文の固定部分mFIXと平文全体mFULLの変更者の公開鍵pksanを用いたMCHハッシュ値に対して、一般的な署名方式で署名者の秘密鍵sksigを用いて署名する。署名とハッシュ計算に利用した乱数rは、変更者(変更装置130)へ渡す。
Figure JPOXMLDOC01-appb-M000006
 変更者(変更装置130)は、以下の式(7)に示すように、平文mと乱数rと変更者の秘密鍵sksanを用いて新しい平文m´に対応するMCHの乱数r´を作成し、ハッシュ計算に利用した乱数rと置き換えて、検証者(検証装置150)へ渡す。
Figure JPOXMLDOC01-appb-M000007
 検証者(検証装置150)は、平文mと乱数r、並びに、署名者の公開鍵pksig及び変更者の公開鍵pksanを用いて、MCHハッシュ値を再計算し、署名σを検証する。
 このように、本実施形態では、MCHの性質により、変更者は秘密鍵sksanを利用して、MCHハッシュ値が同値となる平文m´FULLに対する乱数r´を算出することができる。
 次に、一般的な鍵生成、署名、及び検証アルゴリズムを説明する。
 鍵生成アルゴリズムは、以下の式(8)に示すように、セキュリティパラメータλを入力として、公開鍵pkと秘密鍵skを出力する。
Figure JPOXMLDOC01-appb-M000008
 署名アルゴリズムは、以下の式(9)に示すように、秘密鍵skと平文mを入力として、平文mに対する署名σを出力する。
Figure JPOXMLDOC01-appb-M000009
 検証アルゴリズムは、以下の式(10)に示すように、公開鍵pkと平文m、署名σを入力として、署名が有効な場合はTrueを返し、無効な場合はFalseを返す。
Figure JPOXMLDOC01-appb-M000010
 次に、平文変更カメレオンハッシュ(MCH)における各アルゴリズムを説明する。
 鍵生成アルゴリズムは、以下の式(11)に示すように、セキュリティパラメータλを入力として、公開鍵pkと秘密鍵skを出力する。
Figure JPOXMLDOC01-appb-M000011
 ハッシュアルゴリズムは、以下の式(12)に示すように、公開鍵pkと平文mを入力として、ハッシュ値hと乱数rを出力する。
Figure JPOXMLDOC01-appb-M000012
 再ハッシュアルゴリズムは、以下の式(13)に示すように、公開鍵pkと平文m、乱数rを入力として、ハッシュ値hを出力する。
Figure JPOXMLDOC01-appb-M000013
 適合アルゴリズムは、以下の式(14)に示すように、秘密鍵sk、平文m、変更後の平文m´、乱数rを入力として、以下の式(15)を満たす新しい乱数r´を出力する。
Figure JPOXMLDOC01-appb-M000014
Figure JPOXMLDOC01-appb-M000015
 次に、鍵及び平文変更カメレオンハッシュ(KMCH)における各アルゴリズムを説明する。
 鍵生成アルゴリズムは、以下の式(16)に示すように、セキュリティパラメータλを入力として、公開鍵pkと秘密鍵skを出力する。
Figure JPOXMLDOC01-appb-M000016
 ハッシュアルゴリズムは、以下の式(17)に示すように、公開鍵pkと平文mを入力として、ハッシュ値hと乱数rを出力する。
Figure JPOXMLDOC01-appb-M000017
 再ハッシュアルゴリズムは、以下の式(18)に示すように、公開鍵pkと平文m、乱数rを入力として、ハッシュ値hを出力する。
Figure JPOXMLDOC01-appb-M000018
 適合アルゴリズムは、以下の式(19)に示すように、秘密鍵sk´、平文m、変更後の平文m´、乱数rを入力として、以下の式(20)を満たす新しい乱数r´を出力する。
Figure JPOXMLDOC01-appb-M000019
Figure JPOXMLDOC01-appb-M000020
 以下では、本実施形態における各処理のアルゴリズムについて具体的に説明する。
 下記の表は、署名者、変更者、および委託先変更者の鍵生成アルゴリズムを示す。
Figure JPOXMLDOC01-appb-T000021
 ここでは、署名者の鍵ペアに関して、セキュリティパラメータλを入力として、公開鍵pksigと秘密鍵sksigが出力される。また、変更者の鍵ペアに関して、セキュリティパラメータλを入力として、公開鍵pksanと秘密鍵sksanが出力される。また、委託先変更者の鍵ペアに関して、セキュリティパラメータλを入力として、公開鍵pkdelと秘密鍵skdelが出力される。
 下記の表は、署名者の署名アルゴリズムを示す。
Figure JPOXMLDOC01-appb-T000022
 ここでは、署名者の秘密鍵sksigと変更者の公開鍵pksan、平文mを入力として、平文mの署名σが出力される。
 下記の表は、変更者の墨塗署名アルゴリズムを示す。
Figure JPOXMLDOC01-appb-T000023
 ここでは、変更者の秘密鍵sksanと平文m、変更後の平文m´、平文mの署名σを入力として、変更後の平文m´の署名σ´が出力される。
 下記の表は、検証者の検証アルゴリズムを示す。
Figure JPOXMLDOC01-appb-T000024
 ここでは、署名者の公開鍵pksigと変更者の公開鍵pksan、平文mと署名σを入力として、署名が有効な場合はTrueが返され、無効な場合はFalseが返される。
 下記の表は、変更者の委託アルゴリズムを示す。
Figure JPOXMLDOC01-appb-T000025
 ここでは、変更者の公開鍵pksanと変更者の秘密鍵sksan、委託先変更者の公開鍵pksanと委託前の署名σを入力として、委託後の署名σ´が出力される。
 下記の表は、委託先変更者の墨塗署名アルゴリズムを示す。
Figure JPOXMLDOC01-appb-T000026
 ここでは、委託先変更者の秘密鍵skdel平文m、変更後の平文m´、平文mの署名σを入力として、変更後の平文m´の署名σ´が出力される。
 下記の表は、検証者の委託先検証アルゴリズムを示す。
Figure JPOXMLDOC01-appb-T000027
 ここでは、署名者の公開鍵pksigと変更者の公開鍵pksan、委託先変更者の公開鍵pkdel、平文mと署名σを入力として、署名が有効な場合はTrueが返され、無効な場合はFalseが返される。
 なお、KMCHはMCHを包含するため、MCHをKMCHで置き換えてもよい。
 <2.4.ハードウェア構成>
 図6は、本実施形態におけるコンピュータのハードウェア構成例を示す概略ブロック図である。図示されたコンピュータは、本実施形態の署名検証システムを構成する各装置として動作し得る。
 コンピュータ600は、CPU601と、主記憶装置602と、補助記憶装置603と、インタフェース604と、通信インタフェース605とを備える。
 コンピュータ600の動作は、プログラムの形式で補助記憶装置603に記憶されている。CPU601は、そのプログラムを補助記憶装置603から読み出して主記憶装置602に展開し、そのプログラムに従って、本実施形態で説明した各装置の動作を実行する。
 補助記憶装置603は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース604を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ600に配信される場合、配信を受けたコンピュータ600がそのプログラムを主記憶装置602に展開し、そのプログラムに従って動作してもよい。
 また、各装置の各構成要素の一部または全部は、汎用または専用の回路(circuitry)、プロセッサ等や、これらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
 <2.5.効果の説明>
 本実施形態によると、署名サイズや検証のための計算コストを増加させずに、データの変更能力を委託することが可能になる。
 <<3.第2の実施形態>>
 次に、図7を参照して、本発明の第2の実施形態を説明する。上述した第1の実施形態は具体的な実施形態であるが、第2の実施形態は、より一般化された実施形態である。
 <3.1.システム構成>
 図7は、第2の実施形態における署名検証システムの具体的な構成例を示す機能ブロック図である。本実施形態における署名検証システム700は、署名装置710と、変更装置720と、委託先変更装置730と、検証装置740とを含む。なお、署名装置710、変更装置720、委託先変更装置730、および検証装置740の数は、図示された数に限定されない。また、署名装置710、変更装置720、委託先変更装置730、および検証装置740は、互いに通信ネットワークを介して接続されてもよい。
 署名装置710は、署名部711を有する。署名部711は、データの変更者の公開鍵と、データの変更を委託される委託先変更者の仮の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、データの変更不可部分と、変更者の公開鍵を用いて算出されたデータ全体の第2のカメレオンハッシュ値とに対して署名を行う。
 変更装置720は、委託先指定部721を有する。委託先指定部721は、署名がなされた署名付きデータを受け取って、変更者の秘密鍵を用いて、委託先変更者の仮の公開鍵を実際の委託先変更者の公開鍵に変更する。
 委託先変更装置730は、データ変更部731を有する。データ変更部731は、実際の委託先変更者が指定された署名付きデータを受け取って、実際の委託先変更者の秘密鍵を用いて、データの変更可能部分を変更する。
 検証装置740は、検証部741を有する。検証部741は、データの変更可能部分が変更された署名付きデータを受け取って、変更者の公開鍵と実際の委託先変更者の公開鍵とを用いて、署名を検証する。
 上述した各装置の各処理部は、例えば、プログラムに従って動作するコンピュータのCPU(Central Processing Unit)、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、そのコンピュータのプログラム記憶装置等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、必要に応じて通信インタフェースを用いて、上述した各装置の各処理部として動作することができる。
 <3.2.動作例>
 次に、第2の実施形態における動作例について説明する。
 第2の実施形態によれば、署名装置710(署名部711)は、データの変更者の公開鍵と、データの変更を委託される委託先変更者の仮の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、データの変更不可部分と、変更者の公開鍵を用いて算出されたデータ全体の第2のカメレオンハッシュ値とに対して署名を行う。変更装置720(委託先指定部721)は、署名がなされた署名付きデータを受け取って、変更者の秘密鍵を用いて、委託先変更者の仮の公開鍵を実際の委託先変更者の公開鍵に変更する。委託先変更装置730(データ変更部731)は、実際の委託先変更者が指定された署名付きデータを受け取って、実際の委託先変更者の秘密鍵を用いて、データの変更可能部分を変更する。検証装置740(検証部741)は、データの変更可能部分が変更された署名付きデータを受け取って、変更者の公開鍵と実際の委託先変更者の公開鍵とを用いて、署名を検証する。
 -第1の実施形態との関係
 一例として、第2の実施形態における署名装置710、変更装置720、委託先変更装置730、および検証装置740はそれぞれ、第1の実施形態における署名装置120、変更装置130、委託先変更装置140、及び検証装置150である。この場合に、第1の実施形態についての説明は、第2の実施形態にも適用され得る。
 なお、第2の実施形態は、この例に限定されない。
 <3.3.効果の説明>
 第2の実施形態によれば、署名サイズや検証のための計算コストを増加させずに、データの変更能力を委託することが可能になる。
 <<4.他の実施形態>>
 なお、本発明は上述した実施形態に限定されるものではない。上述した実施形態は例示にすぎないということ、及び、本発明のスコープ及び精神から逸脱することなく様々な変形が可能であるということは、当業者に理解されるであろう。
 例えば、本明細書に記載されている処理は、必ずしも上述した順序に沿って時系列に実行されなくてよい。例えば、各処理は、上述した順序と異なる順序で実行されても、並列的に実行されてもよい。また、各処理の一部が実行されなくてもよく、さらなる処理が追加されてもよい。
 また、本明細書において説明した署名検証システムの構成要素を備える装置(例えば、署名検証システムを構成する複数の装置(又はユニット)のうちの1つ以上の装置(又はユニット)、又は上記複数の装置(又はユニット)のうちの1つのためのモジュール)が提供されてもよい。また、上記構成要素の処理を含む方法が提供されてもよく、上記構成要素の処理をプロセッサに実行させるためのプログラムが提供されてもよい。また、当該プログラムを記録したコンピュータに読み取り可能な非一時的記録媒体(Non-transitory computer readable medium)が提供されてもよい。当然ながら、このような装置、モジュール、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体も本発明に含まれる。
 上記の本発明の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)
 データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データ全体の第2のカメレオンハッシュ値とに対して署名を行う署名装置と、
 前記署名がなされた署名付きデータを受け取って、前記変更者の秘密鍵を用いて、前記仮の委託先変更者の公開鍵を実際の委託先変更者の公開鍵に変更する変更装置と、
 前記実際の委託先変更者が指定された署名付きデータを受け取って、前記実際の委託先変更者の秘密鍵を用いて、前記データの変更可能部分を変更する委託先変更装置と、
 前記データの変更可能部分が変更された署名付きデータを受け取って、前記変更者の公開鍵と前記実際の委託先変更者の公開鍵とを用いて、前記署名を検証する検証装置と
を含む署名検証システム。
(付記2)
 前記変更装置は、前記第1のカメレオンハッシュ値の計算に利用された乱数を、前記実際の委託先変更者の公開鍵に対応する乱数に置き換えることを特徴とする付記1に記載の署名検証システム。
(付記3)
 前記委託先変更装置は、前記第2のカメレオンハッシュ値の計算に利用された乱数を、前記実際の委託先変更者の秘密鍵を用いて算出された前記変更されたデータに対応する乱数に置き換えることを特徴とする付記1または2に記載の署名検証システム。
(付記4)
 前記検証装置は、前記変更者の公開鍵と、前記実際の委託先変更者の公開鍵と、前記実際の委託先変更者の公開鍵に対応する乱数とから前記第1のカメレオンハッシュ値を再現し、前記変更されたデータと、前記実際の委託先変更者の公開鍵と、前記変更されたデータに対する乱数とから前記第2のカメレオンハッシュ値を再現し、前記再現された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記第2のカメレオンハッシュ値と、署名者の公開鍵とを用いて前記署名を検証することを特徴とする付記1乃至3のいずれか1項に記載の署名検証システム。
(付記5)
 前記変更装置は、前記変更者の秘密鍵を用いて、前記データの変更可能部分を変更することを特徴とする付記1乃至4のいずれか1項に記載の署名検証システム。
(付記6)
 前記署名装置は、前記仮の委託先変更者の公開鍵として、前記変更者の公開鍵を用いて前記第1のカメレオンハッシュ値を算出することを特徴とする付記1乃至5のいずれか1項に記載の署名検証システム。
(付記7)
 データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データの全体の第2のカメレオンハッシュ値とに対して署名を行うことを特徴とする署名装置。
(付記8)
 データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データ全体の第2のカメレオンハッシュ値とに対して署名を行う署名ステップと、
 前記署名がなされた署名付きデータを受け取って、前記変更者の秘密鍵を用いて、前記仮の委託先変更者の公開鍵を実際の委託先変更者の公開鍵に変更する第1の変更ステップと、
 前記実際の委託先変更者が指定された署名付きデータを受け取って、前記実際の委託先変更者の秘密鍵を用いて、前記データの変更可能部分を変更する第2の変更ステップと、
 前記データの内容が変更された署名付きデータを受け取って、前記変更者の公開鍵と前記実際の委託先変更者の公開鍵とを用いて、前記署名を検証する検証ステップと
を含む署名検証方法。
(付記9)
 コンピュータに付記8に記載の署名検証方法を実行させるためのプログラム。
産業上の利用の可能性
 本発明は、データの委託先変更者を指定することが可能な墨塗署名を利用する署名検証システムに好適に適用され得る。
 100 署名検証システム
 110 鍵生成装置
 111 鍵生成部
 112 鍵提供部
 120 署名装置
 121 データ生成部
 122 署名部
 123 データ送信部
 130 変更装置
 131 データ変更部
 132 署名部
 133 委託先指定部
 134 データ送信部
 150 検証装置
 151 検証部

 

Claims (9)

  1.  データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データ全体の第2のカメレオンハッシュ値とに対して署名を行う署名装置と、
     前記署名がなされた署名付きデータを受け取って、前記変更者の秘密鍵を用いて、前記仮の委託先変更者の公開鍵を実際の委託先変更者の公開鍵に変更する変更装置と、
     前記実際の委託先変更者が指定された署名付きデータを受け取って、前記実際の委託先変更者の秘密鍵を用いて、前記データの変更可能部分を変更する委託先変更装置と、
     前記データの変更可能部分が変更された署名付きデータを受け取って、前記変更者の公開鍵と前記実際の委託先変更者の公開鍵とを用いて、前記署名を検証する検証装置と
    を含む署名検証システム。
  2.  前記変更装置は、前記第1のカメレオンハッシュ値の計算に利用された乱数を、前記実際の委託先変更者の公開鍵に対応する乱数に置き換えることを特徴とする請求項1に記載の署名検証システム。
  3.  前記委託先変更装置は、前記第2のカメレオンハッシュ値の計算に利用された乱数を、前記実際の委託先変更者の秘密鍵を用いて算出された前記変更されたデータに対応する乱数に置き換えることを特徴とする請求項1または2に記載の署名検証システム。
  4.  前記検証装置は、前記変更者の公開鍵と、前記実際の委託先変更者の公開鍵と、前記実際の委託先変更者の公開鍵に対応する乱数とから前記第1のカメレオンハッシュ値を再現し、前記変更されたデータと、前記実際の委託先変更者の公開鍵と、前記変更されたデータに対する乱数とから前記第2のカメレオンハッシュ値を再現し、前記再現された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記第2のカメレオンハッシュ値と、署名者の公開鍵とを用いて前記署名を検証することを特徴とする請求項1乃至3のいずれか1項に記載の署名検証システム。
  5.  前記変更装置は、前記変更者の秘密鍵を用いて、前記データの変更可能部分を変更することを特徴とする請求項1乃至4のいずれか1項に記載の署名検証システム。
  6.  前記署名装置は、前記仮の委託先変更者の公開鍵として、前記変更者の公開鍵を用いて前記第1のカメレオンハッシュ値を算出することを特徴とする請求項1乃至5のいずれか1項に記載の署名検証システム。
  7.  データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データの全体の第2のカメレオンハッシュ値とに対して署名を行うことを特徴とする署名装置。
  8.  データの変更者の公開鍵と、前記データの仮の委託先変更者の公開鍵とを用いて算出された第1のカメレオンハッシュ値と、前記データの変更不可部分と、前記変更者の公開鍵を用いて算出された前記データ全体の第2のカメレオンハッシュ値とに対して署名を行う署名ステップと、
     前記署名がなされた署名付きデータを受け取って、前記変更者の秘密鍵を用いて、前記仮の委託先変更者の公開鍵を実際の委託先変更者の公開鍵に変更する第1の変更ステップと、
     前記実際の委託先変更者が指定された署名付きデータを受け取って、前記実際の委託先変更者の秘密鍵を用いて、前記データの変更可能部分を変更する第2の変更ステップと、
     前記データの内容が変更された署名付きデータを受け取って、前記変更者の公開鍵と前記実際の委託先変更者の公開鍵とを用いて、前記署名を検証する検証ステップと
    を含む署名検証方法。
  9.  コンピュータに請求項8に記載の署名検証方法を実行させるためのプログラム。

     
PCT/JP2020/021825 2020-06-02 2020-06-02 署名検証システム、署名装置、署名検証方法、およびプログラム WO2021245807A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/928,233 US20230224165A1 (en) 2020-06-02 2020-06-02 Signature verification system, signature apparatus, signature verification method, and program
JP2022529192A JP7405253B2 (ja) 2020-06-02 2020-06-02 署名検証システム、署名装置、署名検証方法、およびプログラム
PCT/JP2020/021825 WO2021245807A1 (ja) 2020-06-02 2020-06-02 署名検証システム、署名装置、署名検証方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/021825 WO2021245807A1 (ja) 2020-06-02 2020-06-02 署名検証システム、署名装置、署名検証方法、およびプログラム

Publications (1)

Publication Number Publication Date
WO2021245807A1 true WO2021245807A1 (ja) 2021-12-09

Family

ID=78831049

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/021825 WO2021245807A1 (ja) 2020-06-02 2020-06-02 署名検証システム、署名装置、署名検証方法、およびプログラム

Country Status (3)

Country Link
US (1) US20230224165A1 (ja)
JP (1) JP7405253B2 (ja)
WO (1) WO2021245807A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009028513A1 (ja) * 2007-08-29 2009-03-05 Nec Corporation コンテンツの公開システム及び該システムにおける公開コンテンツの保証方法
JP2010050760A (ja) * 2008-08-22 2010-03-04 Hitachi Ltd コンテンツ保護装置、および、コンテンツ利用装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2877788B1 (fr) 2004-11-05 2007-01-05 Gemplus Sa Procede de generation de signature avec preuve de securite "tight", procede de verification et schema de signature associes bases sur le modele de diffie-hellman
EP3460700A1 (en) 2017-09-22 2019-03-27 Banco Bilbao Vizcaya Argentaria, S.A. Authentication of software update modules using chameleon hashing.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009028513A1 (ja) * 2007-08-29 2009-03-05 Nec Corporation コンテンツの公開システム及び該システムにおける公開コンテンツの保証方法
JP2010050760A (ja) * 2008-08-22 2010-03-04 Hitachi Ltd コンテンツ保護装置、および、コンテンツ利用装置

Also Published As

Publication number Publication date
US20230224165A1 (en) 2023-07-13
JP7405253B2 (ja) 2023-12-26
JPWO2021245807A1 (ja) 2021-12-09

Similar Documents

Publication Publication Date Title
US10270600B2 (en) Secure revisioning auditing system for electronic document files
Eberhardt et al. Off-chaining models and approaches to off-chain computations
Sutton et al. Blockchain enabled privacy audit logs
JP7499852B2 (ja) 許可型ブロックチェーンのためのランダムなノード選択
US11734259B2 (en) Anonymous database rating update
US11569996B2 (en) Anonymous rating structure for database
US20170237570A1 (en) Method and system for server based secure auditing for revisioning of electronic document files
JP2020511017A (ja) ブロックチェーンベースのデジタル証明書を実装するためのシステム及び方法
CN112166578A (zh) 用于控制对资源的访问的令牌的存储、生成和验证的改进系统和方法
US11949794B2 (en) Data anonymization of blockchain-based processing pipeline
JP2024507908A (ja) Ssiを用いたブロックチェーンネットワークアイデンティティ管理
Xu et al. Broadcasting steganography in the blockchain
US11924342B2 (en) Computer-implemented methods for evidencing the existence of a digital document, anonymously evidencing the existence of a digital document, and verifying the data integrity of a digital document
WO2022193920A1 (en) Blockchain data segregation
US11804950B2 (en) Parallel processing of blockchain procedures
Maple et al. Selecting effective blockchain solutions
US20230179424A1 (en) Compressible blockchains
WO2021245806A1 (ja) 署名検証システム、署名検証方法、およびプログラム
WO2021245807A1 (ja) 署名検証システム、署名装置、署名検証方法、およびプログラム
Kuznetsova et al. Solving blockchain scalability problem using zK-SNARK
CN116263834A (zh) 许可区块链的多发布者匿名证书
WO2023086444A2 (en) Computer-implemented methods for evidencing the existence of a digital document, anonymously evidencing the existence of a digital document, and verifying the data integrity of a digital document
WO2023036812A1 (en) Anonymous private shared partitions in blockchain networks
ur Rehman et al. Blockchain-based approach for proving the source of digital media
Sin et al. Digital identity management system using blockchain technology

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: 20939048

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022529192

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20939048

Country of ref document: EP

Kind code of ref document: A1