WO2023119447A1 - 署名システム、署名方法、及び署名プログラム - Google Patents

署名システム、署名方法、及び署名プログラム Download PDF

Info

Publication number
WO2023119447A1
WO2023119447A1 PCT/JP2021/047410 JP2021047410W WO2023119447A1 WO 2023119447 A1 WO2023119447 A1 WO 2023119447A1 JP 2021047410 W JP2021047410 W JP 2021047410W WO 2023119447 A1 WO2023119447 A1 WO 2023119447A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
signature
verification
tracking
signing
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2021/047410
Other languages
English (en)
French (fr)
Inventor
のん 川名
健 長沼
健太 高橋
渉 中村
志江 本宮
峻行 羽渕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to PCT/JP2021/047410 priority Critical patent/WO2023119447A1/ja
Publication of WO2023119447A1 publication Critical patent/WO2023119447A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/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

Definitions

  • the present invention relates to a signature system, a signature method, and a signature program.
  • biometric authentication the registered biometric information is compared with the authenticator's biometric information, and if the degree of similarity is above a certain level, authentication is successful. Since errors occur every time biometric information is acquired, it is necessary to adopt a method that is not affected by errors when matching.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2013-123142
  • Non-Patent Document 1 are available as the background art of the present invention.
  • Patent Literature 1 describes, “At the time of registration, a predetermined secret key is embedded in the feature amount of the user's biometric information, and a biometric certificate is issued in combination with the corresponding public key.
  • Generate a new temporary private key and temporary public key pair for the feature create a signature for the message using the temporary private key, embed the temporary private key in the signing feature to create a commitment, A combination of the temporary public key, the signature, and the commitment is used as a biometric signature, and when verifying the biometric signature, the signature is verified with the temporary public key, and a difference private key and a difference public key are generated from the biometric certificate, the commitment, and the temporary public key. and verify response.” (see summary).
  • Non-Patent Document 1 discloses a group signature method that is different from the individual signature method described in Patent Document 1.
  • the group signature scheme described in Non-Patent Document 1 is characterized by anonymity in which a verifier cannot recognize who among the members generated the signature.
  • biometric signature system described in Patent Document 1 allows electronic signatures by individuals, signatures do not have anonymity, making it clear who generated the signature.
  • group signature method described in Non-Patent Document 1 maintains the anonymity of the signature creator, but does not support signatures using biometric information.
  • an external verification terminal is notified which signature terminal has generated the personal signature.
  • the objective is to allow a confidential and authorized tracker terminal to identify which signature terminal generated the personal signature.
  • the signing system includes a grouping terminal including a processor and a memory, a verification terminal including a processor and a memory, and a tracking terminal including a processor and a memory, wherein the memory of the grouping terminal includes a plurality of signing terminals.
  • the processor of the verification terminal verifies the group signature and the tracking information received from the grouping terminal based on the group verification key and the zero-knowledge proof received from the grouping terminal;
  • a tracking terminal processor identifies, based on the tracking private key and the tracking information received from the grouping terminal, that the group signature was generated based on the personal signature of the user of the first signing terminal.
  • the present invention while guaranteeing that a personal signature using biometric information has been generated by any of the signature terminals, it is possible to keep secret which signature terminal generated the personal signature from an external verification terminal. , an authorized tracker terminal can identify which signing terminal generated the personal signature.
  • FIG. 1 is a block diagram showing a configuration example of a signature generation/verification system in Example 1;
  • FIG. 3 is a block diagram showing a hardware configuration example of a signer terminal in Example 1;
  • FIG. 5 is a sequence diagram showing an example of pre-processing in Example 1;
  • 7 is a flow chart showing an example of verification key generation processing according to the first embodiment;
  • 4 is a sequence diagram showing an example of signature generation processing in Example 1.
  • FIG. 4 is a flow chart showing an example of electronic signature generation processing in Embodiment 1.
  • FIG. 7 is a flowchart illustrating an example of zero-knowledge proof generation processing according to the first embodiment; 7 is a flow chart showing an example of random permutation verification key generation processing according to the first embodiment; 7 is a flowchart illustrating an example of zero-knowledge proof generation processing according to the first embodiment; 7 is a flow chart showing an example of tracking information generation processing according to the first embodiment; 5 is a flow chart showing an example of signature verification processing in Embodiment 1.
  • FIG. 7 is a flow chart showing an example of zero-knowledge proof ⁇ 0 verification processing according to the first embodiment; 10 is a flowchart illustrating an example of zero-knowledge proof ⁇ 1 verification processing in the first embodiment; 7 is a flow chart showing an example of tracking information verification processing in Embodiment 1.
  • FIG. FIG. 4 is an explanatory diagram showing an example of a use case of the signature generation/verification system in Example 1;
  • a signer terminal gives an electronic signature using biometric information to an in-house document
  • a grouping terminal gives a grouping signature based on the electronic signature.
  • Fig. 1 is a block diagram showing a configuration example of a signature generation/verification system.
  • the signature generation/verification system includes, for example, a signer terminal 100, a signer terminal 200, a grouping executor terminal 300, a verifier terminal 400, and a tracker terminal 500, and these terminals are connected to the Internet or the like. are interconnected by a network 600 .
  • the signer terminal 100 or the signer terminal 200 executes signature generation processing using biometric information.
  • the signer terminal 100 includes a verification key generation unit 101 and an electronic signature generation unit 102, which are functional units.
  • Verification key generation unit 101 generates a verification key for signer terminal 100 .
  • the electronic signature generation unit 102 generates an electronic signature as an individual of the user of the signer terminal 100 .
  • the signer terminal 200 includes a verification key generation unit 201 and an electronic signature generation unit 202, which are functional units.
  • Verification key generation unit 201 generates a verification key for signer terminal 200 .
  • the electronic signature generation unit 202 generates an electronic signature for the user of the signer terminal 200 as an individual.
  • the grouping executor terminal 300 generates a group signature by executing the grouping process of the signatures generated by the signer terminal 100 or the signer terminal 200. In other words, in the grouping process, the grouping executor terminal 300 conceals whether the signer is the user of the signer terminal 100 or the signer terminal 200, and the signer is the user of the signer terminal 100. Alternatively, the process of generating a zero-knowledge proof proving that the user is the user of the signer's terminal 200 is executed.
  • the grouping executor terminal 300 includes a group verification key generation unit 301, a grouping unit 302, and a zero-knowledge proof unit 303, which are functional units.
  • Group verification key generation section 301 generates a group verification key based on the verification key generated by each signer terminal.
  • the grouping unit 302 generates a group electronic signature based on an individual electronic signature generated by one of the signer terminals, and tracking information for tracking which individual has signed.
  • the zero-knowledge proof unit 303 generates a zero-knowledge proof for the verifier terminal 400 to verify the group signature and a zero-knowledge proof for the verifier terminal 400 to verify the tracking information.
  • the grouping process, group signature, and zero-knowledge proof method will be described later, but the grouping executor's terminal 300, which is a terminal different from the signer's terminal 100 with the personal signature, can execute these processes.
  • the verifier terminal 400 verifies the group signature and tracking information generated by the grouping executor terminal 300.
  • Verifier terminal 400 includes electronic signature verification section 401, which is a functional section.
  • the electronic signature verification unit 401 verifies the group signature and tracking information generated by the grouping executor terminal 300 .
  • the tracker terminal 500 executes a tracking process to identify whether the signer of the generated group signature is the user of the signer terminal 100 or the user of the signer terminal 200.
  • Tracker terminal 500 includes signer tracking unit 501, which is a functional unit.
  • the signer tracking unit 501 executes the tracking process described above based on the tracking information.
  • FIG. 2 is a block diagram showing an example hardware configuration of the signer terminal 100.
  • the signer terminal 100 includes, for example, a CPU (Control Processing Unit) 100-1, an auxiliary storage device 100-2, a memory 100-3, an input/output interface 100-5, a communication device 100-6, biometric information
  • An acquisition sensor 100-7 and a computer are connected via an internal signal line 100-4.
  • the CPU 100-1 includes a processor and executes programs stored in the memory 100-3.
  • the memory 100-3 includes ROM, which is a nonvolatile storage element, and RAM, which is a volatile storage element.
  • the ROM stores immutable programs (eg, BIOS) and the like.
  • the RAM is a high-speed and volatile storage device such as a DRAM (Dynamic Random Access Memory), and temporarily stores programs executed by the CPU 100-1 and data used during execution of the programs.
  • the auxiliary storage device 100-2 is, for example, a large-capacity, non-volatile storage device such as a magnetic storage device (HDD) or flash memory (SSD), and is used when the CPU 100-1 executes programs and programs. Store data. That is, the program is read from auxiliary storage device 100-2, loaded into memory 100-3, and executed by CPU 100-1.
  • HDD magnetic storage device
  • SSD flash memory
  • the input/output interface 100-5 is an interface to which a keyboard, a mouse, etc. are connected to receive input from the user, and a display device, a printer, etc. are connected to output the execution result of the program in a form that can be visually recognized by the user. Including interfaces, etc.
  • the communication device 100-6 is a network interface device that controls communication with other devices according to a predetermined protocol.
  • the communication device 100-6 also includes a serial interface such as USB (Universal Serial Bus).
  • the program executed by CPU 100-1 is provided to signer terminal 100 via removable media (CD-ROM, flash memory, etc.) or network 600, and stored in non-volatile auxiliary storage device 100-2, which is a non-temporary storage medium. stored in For this reason, the signer's terminal 100 preferably has an interface for reading data from removable media.
  • the biometric information acquisition sensor 100-7 is a sensor that acquires the user's biometric information.
  • a fingerprint sensor that acquires fingerprints and wrinkles on a hand, a vein sensor that acquires veins on a hand, or the like is an example of the biometric information acquisition sensor 100-7.
  • the hardware configuration of the signer terminal 200 is the same as the hardware configuration of the signer terminal 100, and the hardware configuration of the grouping executor terminal 300, the verifier terminal 400, and the tracker terminal 500 is similar to that of the biometric information acquisition. Since the hardware configuration is the same as that of the signer terminal 100 except that the sensor 100-7 may not be provided, the description is omitted.
  • the CPU 100-1 of the signer terminal 100 operates according to the verification key generation program loaded in the memory 100-3 of the signer terminal 100, thereby functioning as the verification key generation unit 101, and the memory 100-1 of the signer terminal 100 3 functions as an electronic signature generation unit 1020 by operating according to the electronic signature generation program loaded in .
  • the functional units included in the signer terminal 200, the grouping executor terminal 300, the verifier terminal 400, and the tracker terminal 500 also have the same relationship between the programs that implement the functional units and the functional units. omitted.
  • the information used by the signature generation/verification system may be expressed in any data structure without depending on the data structure.
  • a data structure suitably selected from a table, list, database, or queue can store the information.
  • the signer terminal 100 is a computer system configured on one physical computer or on a plurality of computers configured logically or physically, and operates in separate threads on the same computer. Alternatively, it may operate on a virtual computer built on a plurality of physical computer resources. This also applies to other terminals.
  • FIG. 3 is a sequence diagram illustrating an example of preprocessing.
  • verification key generation section 101 of signer terminal 100 generates verification key VK A (S110), and transmits verification key VK A to grouping executor terminal 300 (S115).
  • Verification key generation unit 201 of signer terminal 200 generates verification key VK B (S120), and transmits verification key VK B to grouping executor terminal 300 (S125). Details of the verification key generation processing in steps S110 and S210 will be described later.
  • the signer tracking unit 501 stores the private key Sk as a private key for tracking in the auxiliary storage device 100-2 and/or the memory 100-3 of the tracker terminal 500, and groups the public key Pk as a public key for tracking. is sent to the executor terminal 300 (S135), and the pre-processing ends.
  • f is, for example, a generator of a multiplicative group of a predetermined finite field F, and a base point of the ElGamal cryptosystem.
  • FIG. 4 is a flowchart showing an example of verification key generation processing in step S110.
  • the verification key generation unit 101 of the signer terminal 100 initializes variables (S111). Specifically, the verification key generation unit 101 uses A as the biometric information of the signer himself/herself who is the user of the signer terminal 100, T as a randomly determined real number constant, for example as a multiplicative group of a predetermined finite field F Set the generator g of . For example, the biometric information A of the signer himself/herself is acquired by the biometric information acquisition sensor 100-7 and stored in the auxiliary storage device 100-2 and/or the memory 100-3.
  • the function hz is a function from a vector space over a finite field to a finite field (for example, hz:: ⁇ n ⁇ F).
  • FIG. 5 is a sequence diagram showing an example of signature generation processing.
  • the electronic signature generation unit 102 of the signer terminal 100 generates an electronic signature (personal signature) ⁇ for the message M (S130), and transmits the electronic signature ⁇ to the grouping executor terminal 300 (S135).
  • the details of the process of generating the electronic signature ⁇ in step S130 will be described later.
  • the zero-knowledge proof unit 303 of the grouping executor terminal 300 executes a zero-knowledge proof generation process (S320) to generate a zero-knowledge proof ⁇ 0 or ⁇ 1 (S320).
  • FIG. 6 is a flowchart showing an example of electronic signature generation processing in step S130.
  • the electronic signature generation unit 102 executes signature generation processing (S122).
  • M) to generate s': r+ sk'A ⁇ h'.
  • H different from hz
  • this electronic signature for example, it is possible to verify which user of the signer terminal 100 signed by using the verification method of Fuzzy Signature.
  • FIG. 7 is a flow chart showing an example of the zero-knowledge proof generation process in step S320.
  • the zero-knowledge proof unit 303 of the grouping executor terminal 300 generates a random permutation verification key MVK (S330). The details of the random permutation verification key generation processing in step S330 will be described later.
  • the zero-knowledge proof unit 303 generates a verification random number h (random number of 1 or 0) (S340). Note that the zero-knowledge proof unit 303 may generate the verification random number h by substituting GVK into a predetermined hash function.
  • the zero-knowledge proof unit 303 uses the random number h to generate a zero-knowledge proof ⁇ 0 or ⁇ 1 (S350) and terminates the process. Details of the zero-knowledge proof processing in step S350 will be described later.
  • FIG. 8 is a flow chart showing an example of the random permutation verification key generation process in step S330.
  • the zero-knowledge proof unit 303 of the grouping executor terminal 300 acquires the verification keys VK A and VK B generated by the signer terminal 100 and the signer terminal 200 in the verification key generation process of step S110 (S331).
  • the zero-knowledge proof unit 303 outputs the random permutation verification key MVK (so that it can also be used in other functional units of the grouping executor terminal 300) (S334), and terminates the random permutation verification key generation process.
  • FIG. 9 is a flowchart showing an example of the zero-knowledge proof generation process in step S350.
  • the zero-knowledge proof unit 303 of the grouping executor terminal 300 sets h as the verification random number generated using the random permutation verification key MVK (S351).
  • h is a 1-bit random number that takes a value of either 1 or 0, for example.
  • FIG. 10 is a flow chart showing an example of the tracking information generation process in step S600.
  • this ⁇ e is determined by the signature verifier whether the ElGamal ciphertext Enc (Pk, vk A ⁇ 1 ) of the signer information is correctly encrypted, that is, if the plaintext of the ElGamal ciphertext is vk A ⁇ 1 or vk B Used to verify that it is -1 .
  • the grouping unit 302 generates a zero-knowledge proof ⁇ s proving that the ElGamal ciphertext corresponds to the electronic signature (S630). Specifically, for example, the grouping unit 302 calculates Pk a g a for the random number r used in step S610 and the random number a in the verification mask process (S332). The grouping unit 302 generates random numbers u 1 and u 2 in the finite field F and calculates (Pk ⁇ u 1 )(g ⁇ u 2 ).
  • This ⁇ s is used when the signature verifier verifies whether the ElGamal ciphertext Enc(Pk, vk A ⁇ 1 ) of the signer information corresponds to the electronic signature ⁇ .
  • FIG. 11 is a flowchart showing an example of signature verification processing.
  • the electronic signature verification unit 401 of the verifier terminal 400 executes verification processing of the Schnorr signature Sig(M; sk' A ) (S400).
  • the electronic signature verification unit 401 determines whether verification has succeeded or failed in the verification process in step S400 (S410). When the electronic signature verification unit 401 determines that the verification has failed (S410: verification failure), it outputs [false] (S490) and terminates the signature verification process.
  • the electronic signature verification unit 401 determines that the verification is successful (S410: verification successful), it generates a verification random number h (random number of 1 or 0) (S420).
  • the electronic signature verification unit 401 determines that the zero-knowledge proof ⁇ 0 verification process has succeeded (S460: verification success), it executes the tracking information verification process (S480), and checks whether the tracking information verification process has succeeded. Determine (S500).
  • the electronic signature verification unit 401 outputs [True] when it determines that the tracking information verification process has succeeded (S500: verification success), that is, when the verification of the zero-knowledge proof and the tracking information has succeeded.
  • the electronic signature verification unit 401 determines that the tracking information verification process has failed (S500: verification failure)
  • the process proceeds to step S490.
  • FIG. 12 is a flow chart showing an example of the zero-knowledge proof ⁇ 0 verification process in step S440.
  • Electronic signature verification unit 401 of verifier terminal 400 uses ⁇ 0 , vk A , and vk B to calculate (g ⁇ (a+sk A ), g ⁇ (b+sk B )), and (g ⁇ (a+sk A ), ⁇ (b+sk B )) is replaced with an element of ⁇ , and is generated as I (S441).
  • FIG. 13 is a flow chart showing an example of the zero-knowledge proof ⁇ 1 verification process in step S450.
  • the electronic signature verification unit 401 of the verifier terminal 400 verifies ⁇ e according to, for example, the following procedure (S481).
  • f ⁇ s 1 ((f r ) ⁇ c 1 )*T 11 (1)
  • Pk ⁇ s1 (( Pkr ) ⁇ c1 )* T12 (2)
  • f ⁇ s 2 ((f r ) ⁇ c 2 )*T 21 (3)
  • Pk ⁇ s 2 ((Pk r vk A ⁇ 1 vk B ) ⁇ c 2 )*T 22 (4)
  • c1 + c2 Hash( T11 , T12 , T21 , T22 ) (5)
  • the electronic signature verification unit 401 determines that the verification process of ⁇ e is successful, and at least one of the five equations is unsuccessfully verified. If so, it is determined that the verification process for ⁇ e has failed.
  • the electronic signature verification unit 401 verifies ⁇ s according to the following procedure, for example (S482).
  • the electronic signature verification unit 401 determines that the verification process of ⁇ s is successful, and if the verification of at least one of the two equations fails , it is determined that the verification process of ⁇ s has failed.
  • the electronic signature verification unit 401 determines that the verification of the tracking information T is successful when the verification processing of both ⁇ e and ⁇ s succeeds, and the verification processing of at least one of ⁇ e and ⁇ s fails. If so, it is determined that the verification of the trace information T has failed, and the trace information verification process is terminated.
  • FIG. 15 is an explanatory diagram showing an example of a use case of the signature generation/verification system. Assume that the preprocessing in FIG. 3 has been completed.
  • an EC (Electronic Commerce) mall operator owns a grouping executor terminal 300, each member (purchaser of goods) in the EC mall owns a signer terminal, and a vendor in the EC mall A delivery company that owns the verifier terminal 400 and delivers the merchandise of the store owner to the member owns the tracker terminal 500 .
  • EC Electronic Commerce
  • the signer terminal 100 owned by member A generates member A's personal signature ⁇ and transmits the personal signature ⁇ and product order information to grouping executor terminal 300 .
  • Grouping executor terminal 300 generates group signature ?
  • the store owner delivers the product indicated by the order information to the delivery company.
  • the tracker terminal 500 recognizes the member A based on the tracking information T included in the group signature ⁇ ', and the delivery company delivers the product to the user A.
  • the EC mall store owner cannot use the verifier terminal 400 to know which member has ordered the product, but it is possible to determine whether the product has been ordered by a legitimate member of the EC mall. can be verified. Furthermore, the delivery company can use the tracker terminal 500 to grasp the member of the delivery destination, that is, the member who ordered the product.
  • the grouping terminal 300 executes the grouping process in step S320 and the zero-knowledge proof generation process in step S330.
  • 100 or the signer's terminal 200 That is, signer terminal 100 or signer terminal 200 and grouping executor terminal 300 may be the same terminal.
  • the grouping executor terminal 300 once executes a series of processes from the random permutation verification key generation process in step S330 to the zero-knowledge proof generation process in step S350, and outputs one zero-knowledge proof.
  • the series of processes may be executed multiple times, and multiple zero-knowledge proofs may be output.
  • the grouping executor terminal 300 executes the series of processes a plurality of times, in the verification key masking process in step S332 of FIG. may be newly generated. Accordingly, the series of processes from the verification random number generation process in step S420 to the zero-knowledge proof determination process in step S470 by the verifier terminal 400 of FIG. It only needs to be executed (that is, it does not necessarily have to be executed once).
  • the present invention is not limited to the above-described embodiments, and includes various modifications.
  • the above-described embodiments have been described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the described configurations. It is also possible to replace part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. Moreover, it is possible to add, delete, or replace a part of the configuration of each embodiment with another configuration.
  • each of the above configurations, functions, processing units, processing means, etc. may be realized in hardware, for example, by designing a part or all of them with an integrated circuit.
  • each of the above configurations, functions, etc. may be realized by software by a processor interpreting and executing a program for realizing each function.
  • Information such as programs, tables, and files that implement each function can be stored in a recording device such as a memory, a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.
  • control lines and information lines indicate what is considered necessary for explanation, and not all control lines and information lines are necessarily indicated on the product. In practice, it may be considered that almost all configurations are interconnected.

Landscapes

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

Abstract

グループ化端末は、複数の署名端末に含まれる第1署名端末のユーザの生体情報に基づく個人署名と、複数の署名端末のユーザそれぞれの生体情報に基づく検証鍵と、追跡用公開鍵と、を保持し、複数の署名端末の検証鍵に基づいて、グループ検証鍵を生成し、第1署名端末の検証鍵、個人署名、及び乱数と置換群の元に基づいてグループ署名を生成し、複数の署名端末の検証鍵に基づいてゼロ知識証明を生成し、第1署名端末の検証鍵及び追跡用公開鍵に基づいて追跡情報を生成し、検証端末は、グループ検証鍵及びゼロ知識証明に基づいて、グループ署名及び追跡情報を検証し、追跡者端末は、追跡用公開鍵に対応する追跡用秘密鍵及び追跡情報に基づいて、グループ署名が第1署名端末のユーザの個人署名に基づくことを特定する。

Description

署名システム、署名方法、及び署名プログラム
 本発明は、署名システム、署名方法、及び署名プログラムに関する。
 生体認証では、登録されている生体情報と認証者の生体情報を比較し、類似度が一定以上であれば認証成功とする。生体情報は取得する度に誤差が生じるため、照合の際には誤差の影響を受けない方式を採用する必要がある。
 本発明の背景技術として特許文献1(特開2013-123142号公報)及び非特許文献1がある。特許文献1には、「登録時にユーザの生体情報の特徴量に対して所定の秘密鍵を埋め込み、対応する公開鍵と組にして生体証明書を発行する。署名時にはユーザの生体情報の署名用特徴量に対して、新たに一時秘密鍵と一時公開鍵のペアを生成し、一時秘密鍵を用いてメッセージに対する署名を作成し、署名用特徴量に一時秘密鍵を埋め込んでコミットメントを作成し、前記一時公開鍵と前記署名と前記コミットメントの組を生体署名とし、生体署名検証時には署名を一時公開鍵で検証し、生体証明書とコミットメントと一時公開鍵から差分秘密鍵と差分公開鍵を生成して対応を検証する。」と記載されている(要約参照)。
 非特許文献1には、特許文献1に記載の個人署名方式と異なる、グループ署名方式を開示している。非特許文献1に記載のグループ署名方式では、検証者はメンバ内の誰が署名を生成したのかを認識することができない匿名性を特徴として有する。
特開2013-123142号公報
D.Boneh, X.Boyen, and H.Shacham, "Short Group Signatures, in CRYPTO", 2004
 特許文献1に記載の生体署名システムは個人による電子署名が可能であるが、署名は匿名性を持たず、誰が署名を生成したのかが明らかになる。一方で、非特許文献1に記載のグループ署名方式では、署名生成者の匿名性が保たれているが、生体情報を用いた署名には対応していない。
 そこで、本発明の一態様は、いずれかの署名端末によって生体情報を用いた個人署名が生成されたことを保証しつつ、外部の検証端末には、どの署名端末が個人署名を生成したかを秘匿し、権限を有する追跡者端末はどの署名端末が個人署名を生成したかを特定可能となることを目的とする。
 上記課題を解決するために本発明の一態様は、以下の構成を採用する。署名システムは、プロセッサとメモリとを含むグループ化端末と、プロセッサとメモリとを含む検証端末と、プロセッサとメモリとを含む追跡端末と、を含み、前記グループ化端末のメモリは、複数の署名端末に含まれる第1署名端末のユーザの生体情報に基づく個人署名と、前記複数の署名端末のユーザそれぞれの生体情報に基づく検証鍵と、追跡用公開鍵と、を保持し、前記追跡端末のメモリは、前記追跡用公開鍵に対応する追跡用秘密鍵を保持し、前記グループ化端末のプロセッサは、前記複数の署名端末の検証鍵それぞれに基づいて、グループ検証鍵を生成し、前記第1署名端末の検証鍵、前記個人署名、及び乱数と置換群の元に基づいてグループ署名を生成し、前記複数の署名端末それぞれの検証鍵に基づいてゼロ知識証明を生成し、前記第1署名端末の検証鍵及び前記追跡用公開鍵に基づいて追跡情報を生成し、前記グループ検証鍵、前記グループ署名、前記ゼロ知識証明、及び前記追跡情報を前記検証端末に送信し、前記追跡情報を前記追跡端末に送信し、前記検証端末のプロセッサは、前記グループ化端末から受信した前記グループ検証鍵及び前記ゼロ知識証明に基づいて、前記グループ化端末から受信した前記グループ署名及び前記追跡情報を検証し、前記追跡端末のプロセッサは、前記追跡用秘密鍵及び前記グループ化端末から受信した追跡情報に基づいて、前記グループ署名が前記第1署名端末のユーザの個人署名に基づいて生成されたことを特定する。
 本発明によれば、生いずれかの署名端末によって生体情報を用いた個人署名が生成されたことを保証しつつ、外部の検証端末には、どの署名端末が個人署名を生成したかを秘匿し、権限を有する追跡者端末はどの署名端末が個人署名を生成したかを特定することができる。
実施例1における署名生成/検証システムの構成例を示すブロック図である。 実施例1における署名者端末のハードウェア構成例を示すブロック図である。 実施例1における事前処理の一例を示すシーケンス図である。 実施例1における検証鍵生成処理の一例を示すフローチャートである。 実施例1における署名生成処理の一例を示すシーケンス図である。 実施例1における電子署名生成処理の一例を示すフローチャートである。 実施例1におけるゼロ知識証明生成処理の一例を示すフローチャートである。 実施例1におけるランダム置換検証鍵生成処理の一例を示すフローチャートである。 実施例1におけるゼロ知識証明生成処理の一例を示すフローチャートである。 実施例1における追跡情報生成処理の一例を示すフローチャートである。 実施例1における署名検証処理の一例を示すフローチャートである。 実施例1におけるゼロ知識証明π検証処理の一例を示すフローチャートである。 実施例1におけるゼロ知識証明π検証処理の一例を示すフローチャートである。 実施例1における追跡情報検証処理の一例を示すフローチャートである。 実施例1における署名生成/検証システムのユースケースの一例を示す説明図である。
 以下、本発明の第一の実施形態を添付図面に基づいて説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
 本実施例の署名生成/検証システムは、例えば、社内文書に対して署名者端末が生体情報を用いた電子署名を付与し、グループ化端末が当該電子署名に基づくグループ化署名を付与する。これにより、社内で当該文書を閲覧、及び電子署名の検証をする際には、署名者が確かに電子署名を付与した事を確認しつつ、社外で当該文書を閲覧する際には、署名者が署名処理を行った事を秘匿化し、当該組織に所属するいずれかの人物が電子署名を付与した事実のみを社外の検証者が確認できる。また、どの署名者が署名を行ったかを追跡者端末のみが確認することができる。
 図1は、署名生成/検証システムの構成例を示すブロック図である。署名生成/検証システムは、例えば、署名者端末100と、署名者端末200と、グループ化実行者端末300と、検証者端末400と、追跡者端末500と、を含みこれらの端末はインターネット等のネットワーク600により相互に接続されている。
 図1の例では、署名者端末100又は署名者端末200が生体情報を用いた署名の生成処理を実行する。署名者端末100は、それぞれ機能部である、検証鍵生成部101及び電子署名生成部102を含む。検証鍵生成部101は、検証鍵生成部101は、署名者端末100の検証鍵を生成する。電子署名生成部102は、署名者端末100のユーザの個人としての電子署名を生成する。
 署名者端末200は、それぞれ機能部である、検証鍵生成部201及び電子署名生成部202を含む。検証鍵生成部201は、署名者端末200の検証鍵を生成する。電子署名生成部202は、署名者端末200のユーザの個人としての電子署名を生成する。
 グループ化実行者端末300は、署名者端末100又は署名者端末200が生成した署名のグループ化処理を実行することでグループ署名を生成する。つまり、グループ化実行者端末300は、グループ化処理において、署名者が署名者端末100のユーザであるか署名者端末200のユーザであるかを秘匿化し、かつ署名者が署名者端末100のユーザ又は署名者端末200のユーザであることを証明するゼロ知識証明の生成処理を実行する。
 グループ化実行者端末300は、それぞれ機能部である、グループ検証鍵生成部301、グループ化部302、及びゼロ知識証明部303を含む。グループ検証鍵生成部301は、各署名者端末が生成した検証鍵に基づいて、グループ検証鍵を生成する。グループ化部302は、いずれかの署名者端末が生成した個人としての電子署名に基づいて、グループ電子署名、及びどの個人が署名をしたかを追跡するための追跡情報を生成する。
 ゼロ知識証明部303は、検証者端末400がグループ署名を検証するためのゼロ知識証明、及び検証者端末400が追跡情報を検証するためのゼロ知識証明を生成する。グループ化処理やグループ署名やゼロ知識証明の方法については後述するが、個人署名をした署名者端末100とは異なる端末であるグループ化実行者端末300がこれらの処理を実行することができる。
 検証者端末400は、グループ化実行者端末300が生成したグループ署名及び追跡情報を検証する。検証者端末400は、機能部である電子署名検証部401を含む。電子署名検証部401は、グループ化実行者端末300が生成したグループ署名及び追跡情報を検証する。
 追跡者端末500は、生成されたグループ署名の署名者が、署名者端末100のユーザ又は署名者端末200のユーザのどちらであるかを特定する追跡処理を実行する。追跡者端末500は、機能部である署名者追跡部501を含む。署名者追跡部501は、追跡情報に基づいて、上記した追跡処理を実行する。
 図2は、署名者端末100のハードウェア構成例を示すブロック図である。署名者端末100は、例えば、CPU(Control Processing Unit)100-1と、補助記憶装置100-2と、メモリ100-3と、入出力インターフェース100-5と、通信装置100-6と、生体情報取得センサ100-7と、が内部信号線100-4を介して接続されている計算機によって構成される。
 CPU100-1はプロセッサを含み 、メモリ100-3に格納されたプログラムを実行する。メモリ100-3は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU100-1が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
 補助記憶装置100-2は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、CPU100-1が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置100-2から読み出されて、メモリ100-3にロードされて、CPU100-1によって実行される。
 入出力インターフェース100-5は、キーボードやマウス、などが接続され、ユーザからの入力を受けるインターフェースであり、ディスプレイ装置やプリンタなどが接続され、プログラムの実行結果をユーザが視認可能な形式で出力するインターフェースなどを含む。
 通信装置100-6は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置100-6は、例えば、USB(Univesal Serial Bus)等のシリアルインターフェースを含む。CPU100-1が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワーク600を介して署名者端末100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置100-2に格納される。このため、署名者端末100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
 生体情報取得センサ100-7はユーザの生体情報を取得するセンサである。手の指紋や皺を取得する指紋センサ、又は手の静脈を取得する静脈センサ等は、生体情報取得センサ100-7の一例である。
 なお、署名者端末200のハードウェア構成は署名者端末100のハードウェア構成と同様であり、グループ化実行者端末300、検証者端末400、及び追跡者端末500のハードウェア構成は、生体情報取得センサ100-7を有していなくてもよい点を除いて、署名者端末100のハードウェア構成と同様であるため、説明を省略する。
 署名者端末100のCPU100―1は、署名者端末100のメモリ100-3にロードされた検証鍵生成プログラムに従って動作することで、検証鍵生成部101として機能し、署名者端末100のメモリ100-3にロードされた電子署名生成プログラムに従って動作することで、電子署名生成部1020として機能する。署名者端末200、グループ化実行者端末300、検証者端末400、及び追跡者端末500に含まれる機能部についても、各機能部を実現するプログラムと機能部との関係は同様であるため、説明を省略する。
 なお、本実施形態において、署名生成/検証システムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。署名者端末100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは他の端末についても同様である。
 以下、本実施例における事前処理を図3から図4、署名生成処理を図5から図6、ゼロ知識証明生成処理を図7から図9、追跡情報生成処理を図10、署名検証処理を図11から図13、追跡情報検証処理を図14、を参照しながら説明する。
 図3は、事前処理の一例を示すシーケンス図である。まず、署名者端末100の検証鍵生成部101は、検証鍵VKを生成し(S110)、検証鍵VKをグループ化実行者端末300に送信する(S115)。署名者端末200の検証鍵生成部201は検証鍵VKを生成し(S120)、検証鍵VKをグループ化実行者端末300に送信する(S125)。ステップS110及びステップS210の検証鍵生成処理の詳細は後述する。グループ化実行者端末300のグループ検証鍵生成部301は、グループ検証鍵GVK=(VK,VK)を生成する(S310)。
 追跡者端末500の署名者追跡部501は、追跡用鍵ペアであるエルガマル暗号の公開鍵及び秘密鍵の組(Pk,Sk)=(f,x)を生成する(S500)。署名者追跡部501は、当該秘密鍵Skを追跡用秘密鍵として追跡者端末500の補助記憶装置100-2及び/又はメモリ100-3に保存し、当該公開鍵Pkを追跡用公開鍵としてグループ化実行者端末300に送信し(S135)、事前処理を終了する。ただし、fは、例えば予め定められた有限体Fの乗法群の生成元であり、エルガマル暗号のベースポイントである。
 図4は、ステップS110の検証鍵生成処理の一例を示すフローチャートである。署名者端末100の検証鍵生成部101は、変数の初期設定をする(S111)。具体的には、検証鍵生成部101は、署名者端末100のユーザである署名者本人の生体情報をA、例えばランダムに決定した実数定数をT、例えば予め定められた有限体Fの乗法群の生成元gを設定する。なお、例えば、署名者本人の生体情報Aは、生体情報取得センサ100-7によって取得され、補助記憶装置100-2及び/又はメモリ100-3に格納される。
 検証鍵生成部101は、署名者の鍵生成処理を実行する(S112)。具体的には、例えば、検証鍵生成部101は、有限体F内の乱数skを生成し、例えば予め定められた関数hを用いて、vk:=g^sk、a:=h(sk-1を算出し(但し、「^」はべき乗を表す)、公開テンプレートc:=a+TAを算出する。ただし関数hは有限体上のベクトル空間から有限体への関数である(例えば、hz::Z^n→Fである)。
 検証鍵生成部101は、検証鍵VK:=(vk,c)とし、VKをグループ化実行者端末300に出力して(S113)、検証鍵生成処理終了する。なお、ステップS120の検証鍵生成処理については図4と同様であるため(Aを署名者端末200のユーザの生体情報B、aをb、skを有限体F内の乱数skと読み替えれば、同様の方法でVKが生成される)、説明を省略する。
 図5は署名生成処理の一例を示すシーケンス図である。署名者端末100の電子署名生成部102は、メッセージMに対して電子署名(個人署名)σを生成し(S130)、グループ化実行者端末300に電子署名σを送信する(S135)。ステップS130の電子署名σの生成処理の詳細については後述する。
 次にグループ化実行者端末300のゼロ知識証明部303は、ゼロ知識証明生成処理(S320)を実行し、ゼロ知識証明π又はπを生成する(S320)。グループ化部302は、追跡情報Tと、電子署名(グループ署名)σ’=(M,GVK,π,T) (i=0 or 1)と、を生成して(S600)、署名生成処理を終了する。
 図6は、ステップS130における電子署名生成処理の一例を示すフローチャートである。署名者端末100の電子署名生成部102は、ステップS110の検証鍵生成処理で生成された検証鍵VKA=(vk,c)を取得する(S121)。電子署名生成部102は、署名の生成処理を実行する(S122)。
 電子署名生成部102は、署名生成時の生体情報をA’、メッセージをMとして、F内の乱数sk’を取得し、署名生成時の検証鍵vk’:=g^sk’を生成する。電子署名生成部102は、有限体F内の新たな乱数rと予め定められたハッシュ関数H(hとは異なる)を用いて、R:=g、h’:=H(R||M)を計算し、s’:=r+sk’・h’を生成する。ここで、Sig(M;sk’):=(h’,s’)と表す。電子署名生成部102は、a’:=h(sk’-1を計算し、署名生成時のテンプレートc’:=a’+TA’を生成する。この電子署名は、例えば、Fuzzy Signatureの検証方法を用いて、どの署名者端末100のユーザによって署名がされたかが検証可能である。
 電子署名生成部102は、電子署名(個人署名)σ:=(vk’,h’,s’,c’)をグループ化実行者端末300に出力し(S123)、電子署名生成処理を終了する。
 図7は、ステップS320のゼロ知識証明生成処理の一例を示すフローチャートである。グループ化実行者端末300のゼロ知識証明部303は、ランダム置換検証鍵MVKを生成する(S330)。ステップS330のランダム置換検証鍵生成処理の詳細は後述する。ゼロ知識証明部303は、検証用乱数h(1又は0である乱数)を生成する(S340)。なお、ゼロ知識証明部303は、GVKを予め定められたハッシュ関数に代入することで、検証用乱数hを生成してもよい。ゼロ知識証明部303は、乱数hを用いてゼロ知識証明π又はπを生成して(S350)処理を終了する。ステップS350のゼロ知識証明処理の詳細は後述する。
 図8は、ステップS330のランダム置換検証鍵生成処理の一例を示すフローチャートである。グループ化実行者端末300のゼロ知識証明部303は、署名者端末100及び署名者端末200がステップS110の検証鍵生成処理で生成した検証鍵VK、VKを取得する(S331)。
 ゼロ知識証明部303は、検証鍵のマスク処理を実行する(S332)。具体的には、例えば、ゼロ知識証明部303は、有限体F内の乱数a、bを生成し、(g^(a+sk),g^(b+sk))を計算する。さらに、ゼロ知識証明部303は、例えば予め定められた対称群、の元τを用いた置換を実行することで、MVK:=τ(g^(a+sk),g^(b+sk))を計算する。
 ゼロ知識証明部303は、ランダム置換検証鍵MVKを(グループ化実行者端末300の他の機能部においても利用できるように)出力して(S334)、ランダム置換検証鍵生成処理を終了する。
 図9は、ステップS350のゼロ知識証明生成処理の一例を示すフローチャートである。グループ化実行者端末300のゼロ知識証明部303は、ランダム置換検証鍵MVKを用いて生成した検証用乱数をhとする(S351)。ただし、hは例えば1又は0のいずれかの値をとる1ビット乱数とする。
 ゼロ知識証明部303は、h=0であるかh=1であるか判定する(S352)。ゼロ知識証明部303は、h=0であると判定した場合には(S352:h=0)、ゼロ知識証明π:=(a,b,τ)を生成して(S353)、ゼロ知識証明πを検証者端末400に出力し(S354)、ゼロ知識証明生成処理を終了する。
 ゼロ知識証明部303は、h=1であると判定した場合には(S352:h=1)、Δ:=h(「c’-c」)を計算し(但し、「 」は、例えば、床関数又は天井関数等の所定の端数処理を示す関数である)、ゼロ知識証明π:=(Sig(M;a+sk’-Δ),MVKにおけるMVKの位置)を生成して(S355)、ゼロ知識証明πを検証者端末400に出力して(S356)、ゼロ知識証明処理を終了する。
 図10は、ステップS600の追跡情報生成処理の一例を示すフローチャートである。まず、グループ化実行者端末300のグループ化部302は、署名者情報のエルガマル暗号化処理(署名者情報のエルガマル暗号文を生成)を実行する(S610)。具体的には、例えば、グループ化部302は、署名者Aのvkに対して、vk -1を計算し、追跡用公開鍵Pkを用いてエルガマル暗号文Enc(Pk,vk -1)を生成する。つまり、有限体F内の乱数rに対して、Enc(Pk,vk -1)=(f,PkVk -1)となる。
 グループ化部302は、エルガマル暗号文の正当性を証明するゼロ知識証明πを生成する(S620)。具体的には、例えば、グループ化部302は、有限体F内の乱数tを生成し、T11=f^t、T12=Pk^t、とし、有限体F内の乱数c,sを生成し、T21=f^s、T22=pk^s/(Pkvk -1vk)^cを計算する。さらに、グループ化部302は、c=Hash(T11,T12,T21,T22)を生成し、c:=c-cを算出する。グループ化部302は、s=r*c+tを算出し、π=(T11,T12,T21,T22,c,c,s,s)を算出する。
 なお、このπは、署名検証者が、署名者情報のエルガマル暗号文Enc(Pk,vk -1)が正しく暗号化されているか、つまりエルガマル暗号文の平文がvk -1又はvk -1であることを検証するために利用される。
 次に、グループ化部302は、エルガマル暗号文が電子署名と対応していることを証明するゼロ知識証明πを生成する(S630)。具体的には、例えば、グループ化部302は、ステップS610で利用した乱数rと、検証用マスク処理(S332)の乱数aと、に対して、Pkを計算する。グループ化部302は、有限体F内の乱数u、uを生成し、(Pk^u)(g^u)を計算する。グループ化部302は、v=Hash((Pk^u)(g^u))を計算し、s=r*v+u、s-=a*v+uを計算し、π=((Pk^u)(g^u),v,s,s)を生成する。
 なお、このπは、署名検証者が、署名者情報のエルガマル暗号文Enc(Pk,vk -1)が電子署名σと対応しているかを検証する際に利用される。
 グループ化部302は、追跡情報T=(Enc(Pk,vk -1),π、π)を、検証者端末400に出力して(S640)、追跡情報生成処理を終了する。
 図11は、署名検証処理の一例を示すフローチャートである。検証者端末400の電子署名検証部401は、Schnorr署名Sig(M;sk’)の検証処理を実行する(S400)。電子署名検証部401は、ステップS400における検証処理において、検証に成功したか失敗したかを判定する(S410)。電子署名検証部401は、検証に失敗したと判定した場合には(S410:検証失敗)、[false]を出力して(S490)、署名検証処理を終了する。
 電子署名検証部401は、検証に成功したと判定した場合には(S410:検証成功)検証用乱数h(1又は0である乱数)を生成する(S420)。
 電子署名検証部401は、ステップS420で生成した検証用乱数hがh=0であるかh=1であるかを判定する(S430)。電子署名検証部401は、h=0であると判定した場合には(S430:h=0)、ゼロ知識証明π検証処理を実行し(S440)、ゼロ知識証明π検証処理に成功したかを判定する(S460)。
 電子署名検証部401は、ゼロ知識証明π検証処理に成功したと判定した場合には(S460:検証成功)、追跡情報検証処理を実行し(S480)、追跡情報検証処理に成功したかを判定する(S500)。電子署名検証部401は、追跡情報検証処理に成功したと判定した場合(S500:検証成功)、つまりゼロ知識証明と追跡情報との検証に成功した場合に[True]を出力する。電子署名検証部401は、追跡情報検証処理に失敗したと判定した場合(S500:検証失敗)、ステップS490に遷移する。
 電子署名検証部401は、h=1であると判定した場合には(S430:h=1)、ゼロ知識証明π検証処理を実行し(S450)、ゼロ知識証明π検証処理に成功したかを判定する(S470)。電子署名検証部401は、ゼロ知識証明π検証処理に成功したと判定した場合には(S470:検証成功)、ステップS480に遷移する。
 図12は、ステップS440のゼロ知識証明π検証処理の一例を示すフローチャートである。検証者端末400の電子署名検証部401は、π、vk、及びvkを用いて、(g^(a+sk),g^(b+sk))を計算し、(g^(a+sk),g^(b+sk))をτの元で置換したものをIとして生成する(S441)。
 電子署名検証部401は、I=MVKであるかを判定する(S442)。電子署名検証部401は、I=MVKであると判定した場合には(S442:Yes)、検証に成功したことを示す[True]を出力し(S443)、I=MVKでないと判定した場合には(S442:No)、検証に失敗したことを示す[False]を出力し(S444)、ゼロ知識証明π検証処理を終了する。
 図13は、ステップS450のゼロ知識証明π検証処理の一例を示すフローチャートである。検証者端末400の電子署名検証部401は、πとMVKを用いて、C:=g^(a+sk’-Δ)を計算し、V:=g^(a+sk)を計算する(S451)。ただし、Δ:=h(「c’-c」)とする。
 電子署名検証部401は、C=Vであるかを判定する(S452)。電子署名検証部401は、C=Vであると判定した場合には(S452:Yes)、検証に成功したことを示す[True]を出力し(S453)、C=Vでないと判定した場合には(S452:No)、検証に失敗したことを示す[False]を出力し(S454)、ゼロ知識証明π検証処理を終了する。
 図14は、ステップS480の追跡情報T=(Enc(Pk,vk -1),π,π)の検証処理の一例を示すフローチャートである。検証者端末400の電子署名検証部401は、例えば以下の手順に従いπの検証処理を行う(S481)。
 電子署名検証部401は、追跡情報T=(Enc(Pk,vk -1),π,π)のπとEnc(Pk,vk -1)=(f,Pk,vk -1)に対してvk,vkを利用して、(Pkvk -1)vk=Pk,(Pkvk -1)vkを計算する。電子署名検証部401は、fとfとPkと(Pkvk -1)vkとπ=(T11,T12,T21,T22,c,c,s,s)を用いて以下の5つの等式を検証する。
 f^s=((f)^c)*T11・・・(1)
 Pk^s=((Pk)^c)*T12・・・(2)
 f^s=((f)^c)*T21・・・(3)
 Pk^s=((Pkvk -1vk)^c)*T22・・・(4)
 c+c=Hash(T11,T12,T21,T22)・・・(5)
 電子署名検証部401は、当該5つ全ての等式の検証に成功した場合、πの検証処理に成功したと判定し、当該5つの等式のうち少なくとも1つの等式の検証に失敗した場合には、πの検証処理に失敗したと判定する。
 次に、電子署名検証部401は、例えば以下の手順に従いπの検証処理を行う(S482)。電子署名検証部401は、追跡情報T=(Enc(Pk,vk -1),π,π)のπ=(Pk^u,g^u,v,s,s)と、Enc(Pk,vk -1)=(f,Pk,vk -1)のPkvk -1と、ステップS332のg^(a+sk)=gvkと、に対して、Pkを計算し、以下の2つの等式を検証する。
 v=Hash((Pk^u)(g^u))・・・(1)
 (Pk^s)(g^s)=(Pk)^(v(Pk^u)(g^u))・・・(2)
 電子署名検証部401は、当該2つ全ての等式の検証に成功した場合、πの検証処理に成功したと判定し、当該2つの等式の少なくとも一方の等式の検証に失敗した場合には、πの検証処理に失敗したと判定する。
 次に、電子署名検証部401は、π、πの両方の検証処理が成功した場合に追跡情報Tの検証に成功したと判定し、π、πの少なくとも一方の検証処理が失敗した場合には追跡情報Tの検証に失敗したと判定して、追跡情報検証処理を終了する。
 なお、追跡者端末500の署名者追跡部501は、電子署名(グループ署名)σ’=(M,GVK,π,T)・・・(i=1 or 1)をグループ化実行者端末300から取得し、σ’に含まれる追跡情報T=(Enc(Pk,vk -1),π,π)のエルガマル暗号文Enc(Pk,vk -1)を、追跡用秘密鍵Skを用いて復号化し、vk -1を計算し、さらにvkを計算することで、署名者がAであることを特定することができる。
 図15は、署名生成/検証システムのユースケースの一例を示す説明図である。図3の事前処理が完了済みであるものとする。図15の例では、EC(Electronic Commerce)モール運営者がグループ化実行者端末300を所有し、ECモールでの会員(商品購入者)それぞれが署名者端末を所有し、ECモールにおける出店者が検証者端末400を所有し、出店者の商品を会員に配送する配送業者が追跡者端末500を所有する。
 会員Aが所有する署名者端末100は、会員Aの個人署名σを生成し、個人署名σと商品注文情報をグループ化実行者端末300に送信する。グループ化実行者端末300は、会員Aの個人署名に基づいて、追跡情報Tを含むグループ署名σ’を生成し、検証者端末400及び追跡者端末500に送信する。
 検証者端末400が、グループ署名σ’と、グループ署名σ’に含まれる追跡情報Tと、の検証に成功した場合、出店者は注文情報が示す商品を配送業者に渡す。追跡者端末500は、グループ署名σ’に含まれる追跡情報Tに基づいて会員Aを把握して、配送業者はユーザAの元に商品を配送する。
 図15のユースケースによって、ECモールの出店者は検証者端末400を用いて、どの会員によって商品が発注されたかを把握することはできないが、ECモールの正当な会員によって商品が発注されたかを検証することができる。さらに、宅配業者は追跡者端末500を用いて、配送先の会員、即ち商品を発注した会員を把握することができる。
 なお、本実施例ではステップS320のグループ化処理とステップS330のゼロ知識証明生成処理をグループ化実行者端末300が実行しているが、グループ化実行者端末300に代えて、例えば、署名者端末100又は署名者端末200が実行してもよい。つまり、署名者端末100又は署名者端末200と、グループ化実行者端末300と、は同一の端末であってもよい。
 また、図7において、グループ化実行者端末300が、ステップS330のランダム置換検証鍵生成処理からステップS350のゼロ知識証明生成処理までの一連の処理を1回実行して1つのゼロ知識証明を出力しているが、当該一連の処理を複数回実行してもよいし、複数のゼロ知識証明を出力してもよい。また、グループ化実行者端末300が当該一連の処理を複数回実行する場合には、図8のステップS332の検証鍵のマスク処理において、乱数a,bを新たに生成し、対称群の元τを新たに生成してもよい。これに従い、図11の検証者端末400による、ステップS420の検証用乱数生成処理からステップS470のゼロ知識証明の判定処理までの一連の処理も、署名に含まれるゼロ知識証明の数に応じた回数実行されればよい(つまり必ずしも一回である必要はない)。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (15)

  1.  署名システムであって、
     プロセッサとメモリとを含むグループ化端末と、プロセッサとメモリとを含む検証端末と、プロセッサとメモリとを含む追跡端末と、を含み、
     前記グループ化端末のメモリは、
     複数の署名端末に含まれる第1署名端末のユーザの生体情報に基づく個人署名と、
     前記複数の署名端末のユーザそれぞれの生体情報に基づく検証鍵と、
     追跡用公開鍵と、を保持し、
     前記追跡端末のメモリは、前記追跡用公開鍵に対応する追跡用秘密鍵を保持し、
     前記グループ化端末のプロセッサは、
     前記複数の署名端末の検証鍵それぞれに基づいて、グループ検証鍵を生成し、
     前記第1署名端末の検証鍵、前記個人署名、及び乱数と置換群の元に基づいてグループ署名を生成し、
     前記複数の署名端末それぞれの検証鍵に基づいてゼロ知識証明を生成し、
     前記第1署名端末の検証鍵及び前記追跡用公開鍵に基づいて追跡情報を生成し、
     前記グループ検証鍵、前記グループ署名、前記ゼロ知識証明、及び前記追跡情報を前記検証端末に送信し、
     前記追跡情報を前記追跡端末に送信し、
     前記検証端末のプロセッサは、前記グループ化端末から受信した前記グループ検証鍵及び前記ゼロ知識証明に基づいて、前記グループ化端末から受信した前記グループ署名及び前記追跡情報を検証し、
     前記追跡端末のプロセッサは、前記追跡用秘密鍵及び前記グループ化端末から受信した追跡情報に基づいて、前記グループ署名が前記第1署名端末のユーザの個人署名に基づいて生成されたことを特定する、署名システム。
  2.  請求項1に記載の署名システムであって、
     前記グループ化端末のプロセッサは、
     前記第1署名端末のユーザの生体情報に基づくテンプレートを用いて前記ゼロ知識証明を生成し、
     前記追跡情報を生成する要素を前記グループ署名に含める、署名システム。
  3.  請求項1に記載の署名システムであって、
     前記グループ化端末のプロセッサは、
     前記複数の署名端末それぞれの検証鍵に対して乱数を加え、所定の置換群の元に基づく置換処理によるマスク処理を実行し、
     前記置換処理の実行後のベクトルに基づいて、前記ゼロ知識証明を生成する、署名システム。
  4.  請求項3に記載の署名システムであって、
     前記ゼロ知識証明は、
     前記マスク処理に用いられた乱数、及び前記置換群の元に基づく第1ゼロ知識証明と、
     前記マスク処理後に生成した署名、及び前記置換処理の実行後のベクトルにおける前記第1署名端末の検証鍵を示す要素の位置と、に基づく第2ゼロ知識証明と、の少なくとも一方を含む、署名システム。
  5.  請求項1に記載の署名システムであって、
     前記複数の署名端末は第2署名端末を含み、
     前記第1署名端末の検証鍵VKは、g^skと(但し、gは所定の有限体の元であり、skは前記所定の有限体の乱数である)、前記第1署名端末のユーザの生体情報から生成されたテンプレートcと、を含み、
     前記第2署名端末の検証鍵VKは、g^skと(但し、gは所定の有限体の元であり、skは前記所定の有限体の乱数である)、前記第2署名端末のユーザの生体情報から生成されたテンプレートcと、を含み、
     前記グループ化端末のプロセッサは、
     乱数a及びbに対して、(g^(a+sk),g^(b+sk))を算出し、
     所定の対称群の元τに対して、MVK:=τ(g^(a+sk),g^(b+sk))を算出するマスク処理を実行する、署名システム。
  6.  請求項5に記載の署名システムであって、
     前記ゼロ知識証明は第1ゼロ知識証明と第2ゼロ知識証明とを含み、
     前記グループ化端末のプロセッサは、
     前記第1ゼロ知識証明π:=(a,b,τ)を生成し、
     前記第2ゼロ知識証明π:=(MVKにおけるMVKの位置を示す番号,(Sig(M;a+sk’-h(「c’-c」))))を生成し(但し、sk’は前記所定の有限体の乱数)、
     Mはメッセージであり、
     c’は前記第1署名端末のユーザの生体情報に基づく署名生成時のテンプレートであり、
     所定のハッシュ関数hに対して、a=h^(sk-1、b=h^(sk-1であり、
     Hはハッシュ関数hと異なるハッシュ関数である、署名システム。
  7.  請求項6に記載の署名システムであって、
     前記検証端末のプロセッサは、
     (g^(a+sk),g^(b+sk))をτの前記元で置換したIを算出し、
     I=MVKであるかの判定結果に従って、前記第1ゼロ知識証明πを検証し、
     前記第1ゼロ知識証明πの検証結果に基づいて、前記グループ化端末から受信した前記グループ署名を検証する、署名システム。
  8.  請求項6に記載の署名システムであって、
     前記検証端末のプロセッサは、
     Δ:=h(「c’-c」)に対して、C:=g^(a+sk’-Δ)を算出し、
     V:=g^(a+sk)を算出し、
     C=Vであるかの判定結果に従って、前記第2ゼロ知識証明πを検証し、
     前記第2ゼロ知識証明πの検証結果に基づいて、前記グループ化端末から受信した前記グループ署名を検証する、署名システム。
  9.  請求項1に記載の署名システムであって、
     前記グループ化端末のプロセッサは、
     前記複数の署名端末それぞれの公開鍵に対して前記追跡用公開鍵に基づくエルガマル暗号化処理を行い、
     エルガマル暗号文の正当性証明πと、エルガマル暗号文が電子署名と対応していることを示す対応証明πと、を生成して、前記追跡情報に含める、署名システム。
  10.  請求項9に記載の署名システムであって、
     前記検証端末のプロセッサは、
     前記グループ化端末から受信した追跡情報に含まれる前記正当性証明πと前記対応証明πとを検証し、前記正当性証明πと前記対応証明πとの両方の検証が成功した場合に、前記追跡情報の検証に成功したと判定する、署名システム。
  11.  請求項9に記載の署名システムであって、
     前記追跡端末のプロセッサは、
     前記グループ化端末から受信した電子署名情報σ’に対して、
     追跡情報T=(Enc(Pk,vk -1),π,π)に含まれる前記エルガマル暗号文Enc(Pk,vk -1)を、前記追跡用秘密鍵を用いて復号化し(但し、Pkは前記追跡用公開鍵であり、vkは前記第1署名端末の検証鍵である)、
     vk -1を計算し、さらにvkを計算することで、署名者が前記第1署名端末のユーザであることを特定する、署名システム。
  12.  署名システムによる署名方法であって、
     前記署名システムは、グループ化端末と、検証端末と、追跡端末と、を含み、
     前記グループ化端末は、
     複数の署名端末に含まれる第1署名端末のユーザの生体情報に基づく個人署名と、
     前記複数の署名端末のユーザそれぞれの生体情報に基づく検証鍵と、
     追跡用公開鍵と、を保持し、
     前記追跡者端末は、前記追跡用公開鍵に対応する追跡用秘密鍵を保持し、
     前記署名方法は、
     前記グループ化端末が、前記複数の署名端末の検証鍵それぞれに基づいて、グループ検証鍵を生成し、
     前記グループ化端末が、前記第1署名端末の検証鍵、前記個人署名、及び乱数と置換群の元に基づいてグループ署名を生成し、
     前記グループ化端末が、前記複数の署名端末それぞれの検証鍵に基づいてゼロ知識証明を生成し、
     前記グループ化端末が、前記第1署名端末の検証鍵及び前記追跡用公開鍵に基づいて追跡情報を生成し、
     前記グループ化端末が、前記グループ検証鍵、前記グループ署名、前記ゼロ知識証明、及び前記追跡情報を前記検証端末に送信し、
     前記グループ化端末が、前記追跡情報を前記追跡端末に送信し、
     前記検証端末が、前記グループ化端末から受信した前記グループ検証鍵及び前記ゼロ知識証明に基づいて、前記グループ化端末から受信した前記グループ署名及び前記追跡情報を検証し、
     前記追跡端末が、前記追跡用秘密鍵及び前記グループ化端末から受信した追跡情報に基づいて、前記グループ署名が前記第1署名端末のユーザの個人署名に基づいて生成されたことを特定する、署名方法。
  13.  請求項12に記載の署名方法であって、
     前記グループ化端末が、
     前記第1署名端末のユーザの生体情報に基づくテンプレートを用いて前記ゼロ知識証明を生成し、
     前記追跡情報を生成する要素を前記グループ署名に含める、署名方法。
  14.  請求項12に記載の署名方法であって、
     前記グループ化端末が、
     前記複数の署名端末それぞれの検証鍵に対して乱数を加え、所定の置換群の元に基づく置換処理によるマスク処理を実行し、
     前記置換処理の実行後のベクトルに基づいて、前記ゼロ知識証明を生成する、署名方法。
  15.  グループ化端末に署名を実行させる署名プログラムであって、
     前記グループ化端末は、プロセッサとメモリとを含み、
     前記メモリは、
     複数の署名端末に含まれる第1署名端末のユーザの生体情報に基づく個人署名と、
     前記複数の署名端末のユーザそれぞれの生体情報に基づく検証鍵と、
     追跡用公開鍵と、を保持し、
     前記追跡端末のメモリは、前記追跡用公開鍵に対応する追跡用秘密鍵を保持し、
     前記署名プログラムは、
     前記複数の署名端末の検証鍵それぞれに基づいて、グループ検証鍵を生成する処理と、
     前記第1署名端末の検証鍵、前記個人署名、及び乱数と置換群の元に基づいてグループ署名を生成する処理と、
     前記複数の署名端末それぞれの検証鍵に基づいてゼロ知識証明を生成する処理と、
     前記第1署名端末の検証鍵及び前記追跡用公開鍵に基づいて追跡情報を生成する処理と、
     前記グループ検証鍵、前記グループ署名、前記ゼロ知識証明、及び前記追跡情報を前記検証端末に送信する処理と、
     前記追跡情報を前記追跡端末に送信する処理と、を前記プロセッサに実行させる、署名プログラム。
PCT/JP2021/047410 2021-12-21 2021-12-21 署名システム、署名方法、及び署名プログラム Ceased WO2023119447A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/047410 WO2023119447A1 (ja) 2021-12-21 2021-12-21 署名システム、署名方法、及び署名プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/047410 WO2023119447A1 (ja) 2021-12-21 2021-12-21 署名システム、署名方法、及び署名プログラム

Publications (1)

Publication Number Publication Date
WO2023119447A1 true WO2023119447A1 (ja) 2023-06-29

Family

ID=86901681

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/047410 Ceased WO2023119447A1 (ja) 2021-12-21 2021-12-21 署名システム、署名方法、及び署名プログラム

Country Status (1)

Country Link
WO (1) WO2023119447A1 (ja)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TAKAHASHI KENTA; MATSUDA TAKAHIRO; MURAKAMI TAKAO; HANAOKA GOICHIRO; NISHIGAKI MASAKATSU: "Signature schemes with a fuzzy private key", INTERNATIONAL JOURNAL OF INFORMATION SECURITY (IJIS), SPRINGER, HEIDELBERG, DE, vol. 18, no. 5, 23 February 2019 (2019-02-23), DE , pages 581 - 617, XP036880519, ISSN: 1615-5262, DOI: 10.1007/s10207-019-00428-z *
YUTA YONEYAMA: "Fuzzy Signature scheme for Biometric Digital Signature ", 2012 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY YOKOSHU, 30 January 2012 (2012-01-30), pages 1 - 7, XP055281883, Retrieved from the Internet <URL:http://www.infsoc.org/conference/csiep2012/CSIEP2012.pdf#page=23> [retrieved on 20160620] *

Similar Documents

Publication Publication Date Title
US11329981B2 (en) Issuing, storing and verifying a rich credential
US11481786B2 (en) Genuine instance of digital goods
JP6069852B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN100383694C (zh) 为可被具有安全模块的用户设备执行的事务维护私密
KR102354758B1 (ko) 영지식 증명 기술 기반 분산 디지털 인증 시스템 및 방법
CN109818752B (zh) 信用评分生成方法、装置、计算机设备和存储介质
JP2014068140A (ja) 情報処理装置、情報処理方法及びプログラム
WO2020160391A1 (en) An efficient, environmental and consumer friendly consensus method for cryptographic transactions
JP5327223B2 (ja) 署名システム
JP4818663B2 (ja) 同種写像ベースの署名の生成および検証のためのシステムおよび方法
JP6933290B2 (ja) 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
WO2013129084A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2015513156A (ja) ビザンチン・フォールトトレランス及び閾値コイントス
CN116975937A (zh) 匿名证明方法、匿名验证方法
CN116723026A (zh) 登录验证方法、装置、计算机设备及存储介质
CN114128213B (zh) 用于验证公钥的可靠性的装置、方法以及其程序
WO2023119447A1 (ja) 署名システム、署名方法、及び署名プログラム
CN118378240B (zh) 一种固件安全启动方法和系统
JP2000339153A (ja) プログラム検証方法及び装置及びプログラム検証プログラムを格納した記憶媒体
JP7594986B2 (ja) 生体認証システム、生体認証サーバ、及び生体認証方法
JPWO2020121459A1 (ja) 認証システム、クライアントおよびサーバ
WO2022239647A1 (ja) 署名システム及び署名方法
JP2022022309A5 (ja)
US20260019245A1 (en) Message presentation system, presentation apparatus, and message presentation method
JP7832140B2 (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: 21968884

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21968884

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP