WO2026028331A1 - 非対話ブラインド署名システム、装置、方法、及びプログラム - Google Patents
非対話ブラインド署名システム、装置、方法、及びプログラムInfo
- Publication number
- WO2026028331A1 WO2026028331A1 PCT/JP2024/027339 JP2024027339W WO2026028331A1 WO 2026028331 A1 WO2026028331 A1 WO 2026028331A1 JP 2024027339 W JP2024027339 W JP 2024027339W WO 2026028331 A1 WO2026028331 A1 WO 2026028331A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- signature
- key
- public key
- interactive
- signer
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
- This disclosure relates to non-interactive blind signature systems, devices, methods, and programs.
- Non-Patent Document 1 One type of digital signature is known as a blind signature, which can generate a signature while keeping the message secret from the signer.
- a blind signature which can generate a signature while keeping the message secret from the signer.
- interactive communication between two parties is essential when generating a blind signature, but there is also a known technique called non-interactive blind signature, which can generate a signature through non-interactive communication if the message to be signed is random (Non-Patent Document 1).
- This disclosure has been made in light of the above points, and aims to realize a non-interactive blind signature system in which anonymity is unconditionally guaranteed as long as it is used within a predetermined number of times.
- a non-interactive blind signature system is a non-interactive blind signature system that includes at least a signer device that generates a pre-signature using non-interactive blind signatures, and a recipient device that generates a message and a signature from the pre-signature, wherein the signer device includes a first key generation unit that generates a public key and a private key of a digital signature scheme as the public key and private key of the signer device in the blind signature, and a first nonce value that is used to generate a digital signature generated by the digital signature scheme based on the private key of the signer device, the public key of the recipient device, and a first nonce value.
- the recipient device has a pre-signature generation unit that generates a digital signature as the pre-signature, and the recipient device has a second key generation unit that generates a private key including a q-wise hash function as the recipient device's private key and a commitment of the q-wise hash function as the recipient device's public key, and a signature generation unit that generates the message using the q-wise hash function and the signature using a dual-mode non-interactive zero-knowledge proof based on the signer device's public key, the recipient device's private key and public key, a second nonce value, and the pre-signature.
- FIG. 1 is a diagram illustrating an example of a conventional blind signature.
- FIG. 1 is a diagram illustrating an example of a conventional non-interactive blind signature scheme.
- 1 is a diagram illustrating an example of the overall configuration of a non-interactive blind signature system according to an embodiment of the present invention.
- FIG. 2 is a diagram illustrating an example of a functional configuration of a receiver device according to the present embodiment.
- FIG. 2 is a diagram illustrating an example of the functional configuration of a signer device according to the present embodiment.
- FIG. 2 is a diagram illustrating an example of a functional configuration of a verifier device according to the present embodiment.
- 10 is a flowchart illustrating an example of a signer's key generation process.
- FIG. 10 is a flowchart illustrating an example of a receiver's key generation process.
- FIG. 10 is a sequence diagram illustrating an example of a signature generation and acquisition process.
- FIG. 10 is a sequence diagram illustrating an example of a signature verification process.
- FIG. 2 illustrates an example of a hardware configuration of a computer.
- a blind signature is a type of anonymous signature that allows a user (hereafter referred to as the recipient) who has the message to be signed to generate a signature while keeping the message confidential from the signer.
- Blind signatures are also a type of digital signature that originated as an application of electronic cash.
- blind signatures A simple application of blind signatures is anonymous authentication. For example, when creating an account for an application, you might want an administrator to generate a signature for your ID. By using blind signatures, you can generate a signature while keeping your ID secret from the administrator. During actual authentication, you simply present your ID and the signature generated using blind signatures.
- Figure 1 is a diagram for explaining an example of a conventional blind signature.
- step S11 to S17 signature generation and verification are achieved through steps S11 to S17 below.
- the signature verifier has obtained the signer's public key pk before executing step S17, which will be described later.
- the recipient, signer, and verifier below more accurately refer to the devices, equipment, terminals, etc. that act as the recipient, signer, and verifier, respectively.
- S11 The recipient generates a secret message M using M ⁇ Mask(m).
- m is the message to be signed
- Mask is an algorithm that takes message m as input and outputs secret message M.
- secret message M is a message in which the contents of message m have been concealed by encryption or other means.
- S13 The signer generates a pre-signed psig by psig ⁇ Issue sk (M), where sk is the signer's private key, and Issue sk is an algorithm that takes the private key sk and the secret message M as input and outputs a pre-signed psig.
- S15 The recipient generates the signature sig using sig ⁇ Obtain(psig).
- Obtain is an algorithm that takes the pre-signature psig as input and outputs the signature sig.
- S17 The verifier verifies the signature sig using 1/0 ⁇ Verify pk (m, sig), where pk is the signer's public key, and Verify pk is an algorithm that takes the public key pk, message m, and signature sig as input and outputs 1 or 0. For example, 1 indicates successful verification, and 0 indicates unsuccessful verification.
- steps S12 and S14 above correspond to interactive communication between the recipient and the signer.
- Non-interactive blind signature Interactive communication between two parties is essential when generating a blind signature, but non-interactive blind signatures (NIBS: Non-interactive Blind Signatures for random messages) are known that can generate a signature through non-interactive communication if the message to be signed is random (Non-Patent Document 1). Considering the application of the above blind signature to anonymous authentication, if it is acceptable for the ID to be a random value, non-interactive blind signatures can be a powerful application technology.
- Figure 2 is a diagram for explaining an example of a conventional non-interactive blind signature.
- signature generation and verification are realized by the following steps S21 to S25.
- the signature verifier has obtained the signer's public key pk before executing step S25, which will be described later. It is also assumed that the signer has obtained the recipient's public key pkr in advance. Note that the recipient, signer, and verifier below more precisely refer to the devices, equipment, terminals, etc. that will serve as the recipient, signer, and verifier, respectively.
- S21 The signer generates a pre-signature psig using psig ⁇ Issue sk (nonce, pk r ), where sk is the signer's private key, nonce is a nonce value, and Issue sk is an algorithm that takes the private key sk, the nonce value nonce, and the public key pk r as inputs and outputs a pre-signature psig.
- S23 The recipient generates a message m and a signature sig by (m, sig) ⁇ Obtain sk_r (nonce, psig).
- sk_r means "sk r " and is the recipient's private key.
- Obtain sk_r is an algorithm that takes the private key sk r , the nonce value nonce, and the pre-signature psig as input and outputs a message m and a signature sig.
- S25 The verifier verifies the signature sig using 1/0 ⁇ Verify pk (m, sig), where pk is the signer's public key, and Verify pk is an algorithm that takes the public key pk, message m, and signature sig as input and outputs 1 or 0. For example, 1 indicates successful verification, and 0 indicates unsuccessful verification.
- non-interactive blind signature method (hereinafter referred to as the "proposed method”, or when explicitly referring to non-interactive blind signatures, as “non-interactive blind signatures related to the proposed method") that unconditionally guarantees anonymity if used within a predetermined number of times.
- the digital signature SIG (SIG.Gen, SIG.Sign, SIG.Verify) is composed of the following three probabilistic polynomial-time algorithms:
- SIG.Gen( ⁇ ) Takes security parameter ⁇ as input and outputs a key pair (pk, sk) consisting of verification key pk and signature key sk.
- verification key pk implicitly defines message space Mpk .
- verification key pk and signature key sk may also be referred to as public key and private key, respectively.
- SIG.Sign(sk, m) A signature key sk and a message m ⁇ M pk are input, and a signature ⁇ is output.
- CMT.Setup( ⁇ ) Takes security parameter ⁇ as input and outputs public parameters pp.
- the public parameters pp implicitly define a message space Mpp and a random number space Rpp .
- pp ⁇ CMT.Setup( ⁇ ); (m,r,m',r') ⁇ A(pp)] negl( ⁇ ). Here, negl( ⁇ ) indicates that the probability is negligible with respect to ⁇ .
- a specific example of a commitment method CMT that satisfies the above-mentioned unconditional confidentiality is the Pedersen commitment method (Reference 1).
- NIZK NIZK. Prove(crs, x, w): Takes common reference information crs, statement x, and evidence w as input and outputs a proof/argument ⁇ .
- the dual-mode non-interactive zero-knowledge proof NIZK satisfies the following properties 2-1 to 2-6.
- the common reference information crs is randomly sampled from the SPACE CRS , it is guaranteed to be in a hiding mode except with negligible probability.
- the q-wise independent hash functions are a family of hash functions that can be used as random functions if they are used within a predetermined number of q times.
- H be a family of hash functions.
- H a family of hash functions.
- element h: ⁇ 0,1 ⁇ a ⁇ 0,1 ⁇ b of the function family H if the following holds, H is called a q-wise independent hash function family.
- a and b are predetermined integers of 1 or more, and q is a predetermined integer of 1 or more.
- Non-Patent Document 1 a special pseudo-random function called a verifiable random function (VRF).
- VRF verifiable random function
- the proposed method avoids the use of a verifiable random function and instead uses a commitment scheme that satisfies unconditional confidentiality, a dual-mode non-interactive zero-knowledge proof, and q-wise independent hash functions.
- the proposed method unconditionally guarantees anonymity as long as it is used within a predetermined number of times (specifically, within q times).
- the non-interactive blind signature method proposed consists of five algorithms (KeyGen, RKeyGen, Issue, Obtain, and Verify).
- KeyGen( ⁇ ) Takes a security parameter ⁇ as input and outputs a key pair (pk, sk) consisting of a signer's public key pk and private key sk.
- pk, sk a key pair consisting of a signer's public key pk and private key sk.
- RKeyGen( ⁇ ) Takes security parameter ⁇ as input and outputs a key pair (rpk, rsk) consisting of the recipient's public key rpk and private key rsk.
- Verify(pk, m, sig) Takes the signer's public key pk, message m, and signature sig as input and outputs 1 or 0. Note that, for example, 1 indicates successful verification and 0 indicates unsuccessful verification.
- H crs be the random oracle from ⁇ 0, 1 ⁇ * to SPACE CRS .
- H pp be the random oracle from ⁇ 0, 1 ⁇ * to the space of security parameters of the commitment method CMT that satisfies unconditional confidentiality.
- the NP relation R is defined below.
- ⁇ KeyGen KeyGen( ⁇ ) Using the security parameter ⁇ as input, generate a key pair (pk, sk) using (pk, sk) ⁇ SIG.Gen( ⁇ ), and output the key pair (pk, sk) as the signer's key pair (pk, sk). Note that this means that the key pair of a regular digital signature SIG is used as the signer's key pair.
- ⁇ RKeyGen RKeyGen( ⁇ ) Using security parameter ⁇ as input, samples hash function h ⁇ H and calculates com ⁇ CMT.Com(H pp (0), h; r).
- r ⁇ R H_pp(0) is a random number.
- H_pp(0) means "H pp (0)”.
- (com, (h, r)) is output as the recipient's key pair (rpk, rsk). Note that this means that the q-wise hash function h and the random number r are the recipient's private key rsk, and the private key rsk is committed to the recipient's public key rpk. This commitment is unconditionally secure due to perfect confidentiality.
- This dual-mode non-interactive zero-knowledge proof is executed in confidential mode and is therefore unconditionally secure.
- Fig. 3 is a diagram showing an example of the overall configuration of the non-interactive blind signature system 1 according to this embodiment.
- the non-interactive blind signature system 1 includes a recipient device 10, a signer device 20, and a verifier device 30.
- the recipient device 10, signer device 20, and verifier device 30 are communicatively connected via a communication network 40, which may include, for example, the Internet.
- the recipient device 10 is any device, equipment, terminal, etc. that acts as a recipient.
- the signer device 20 is any device, equipment, terminal, etc. that acts as a verifier.
- the verifier device 30 is any device, equipment, terminal, etc. that acts as a verifier.
- the recipient device 10, signer device 20, and verifier device 30 can be realized by various devices, equipment, terminals, etc., such as PCs (personal computers), smartphones, tablet devices, wearable devices, general-purpose servers, IoT devices, industrial equipment, etc.
- PCs personal computers
- smartphones smartphones
- tablet devices wearable devices
- general-purpose servers IoT devices
- industrial equipment etc.
- Fig. 4 is a diagram showing an example of the functional configuration of the recipient device 10 according to this embodiment.
- the recipient device 10 has a communication unit 101, a key generation unit 102, and a signature generation unit 103. Each of these units is realized, for example, by one or more programs installed in the recipient device 10, which are executed by a processor such as a CPU (Central Processing Unit).
- the recipient device 10 also has a memory unit 104.
- the memory unit 104 is realized, for example, by the storage area of various storage devices such as an HDD (Hard Disk Drive), SSD (Solid State Drive), and flash memory.
- the communication unit 101 receives a pre-signed psig from the signer device 20 and sends a pair (m, sig) of a message m and a signature sig to the verifier device 30.
- the key generation unit 102 executes RKeyGen, a non-interactive blind signature algorithm related to the proposed method, to generate a key pair (rpk, rsk) consisting of a public key rpk and a private key rsk.
- the signature generation unit 103 executes the non-interactive blind signature Obtain related to the proposed method and generates a pair (m, sig) of a message m and a signature sig.
- the storage unit 104 stores various data (e.g., key pairs (rpk, rsk), pairs of message m and signature sig (m, sig), etc.).
- Fig. 5 is a diagram showing an example of the functional configuration of signer device 20 according to this embodiment.
- the signer device 20 has a communication unit 201, a key generation unit 202, and a pre-signature generation unit 203. Each of these units is realized, for example, by a processor such as a CPU executing one or more programs installed in the signer device 20.
- the signer device 20 according to this embodiment also has a memory unit 204.
- the memory unit 204 is realized, for example, by the storage area of various storage devices such as an HDD, SSD, or flash memory.
- the communication unit 201 sends the pre-signature psig to the recipient device 10.
- the key generation unit 202 executes KeyGen, a non-interactive blind signature algorithm based on the proposed method, to generate a key pair (pk, sk) consisting of a public key pk and a private key sk.
- the pre-signature generation unit 203 executes a non-interactive blind signature issue related to the proposed method and generates a pre-signature psig.
- the storage unit 204 stores various data (e.g., key pairs (pk, sk), recipient public keys rpk, etc.).
- Fig. 6 is a diagram showing an example of the functional configuration of the verifier device 30 according to this embodiment.
- the verifier device 30 has a communication unit 301 and a verification unit 302. These units are realized, for example, by one or more programs installed in the verifier device 30, which are executed by a processor such as a CPU.
- the verifier device 30 according to this embodiment also has a memory unit 303.
- the memory unit 303 is realized, for example, by the storage area of various storage devices such as an HDD, SSD, or flash memory.
- the communication unit 301 receives a pair (m, sig) of a message m and a signature sig from the recipient device 10.
- the verification unit 302 executes the non-interactive blind signature verification according to the proposed method and verifies the signature sig.
- the storage unit 303 stores various data (e.g., the signer's public key pk, etc.).
- Fig. 7 is a flowchart showing an example of a signer's key generation process.
- the key generation unit 202 of the signer device 20 executes KeyGen, a non-interactive blind signature method according to the proposed method, to generate a key pair (pk, sk) consisting of a public key pk and a private key sk (step S101). That is, the key generation unit 202 receives the security parameter ⁇ as input, generates the key pair (pk, sk) using (pk, sk) ⁇ SIG.Gen( ⁇ ), and outputs the key pair (pk, sk) as the signer's key pair (pk, sk).
- KeyGen a non-interactive blind signature method according to the proposed method
- the key generation unit 202 of the signer device 20 stores the key pair (pk, sk) generated in step S101 above in the storage unit 204, and also makes the public key pk public using any method (step S102).
- One method for making the public key pk public is, for example, to register the public key pk on a public server.
- Fig. 8 is a flowchart showing an example of the recipient's key generation process.
- the key generation unit 102 of the recipient device 10 executes RKeyGen, a non-interactive blind signature algorithm according to the proposed method, to generate a key pair (rpk, rsk) of a public key rpk and a private key rsk (step S201). That is, the key generation unit 102 receives a security parameter ⁇ as an input, samples a hash function h ⁇ H, calculates com ⁇ CMT.Com( Hpp (0),h;r), and outputs (com,(h,r)) as the recipient's key pair (rpk,rsk).
- the key generation unit 102 of the recipient device 10 stores the key pair (rpk, rsk) generated in step S101 above in the storage unit 104, and also publishes the public key rpk using any method (step S202).
- One method for publishing the public key rpk is, for example, to register the public key rpk on a public server.
- Fig. 9 is a sequence diagram showing an example of the signature generation and acquisition process.
- the pre-signature generation unit 203 of the signer device 20 executes the non-interactive blind signature issue according to the proposed method to generate a pre-signature psig (step S301). That is, the pre-signature generation unit 203 receives the signer's private key sk, the recipient's public key rpk, and the nonce value nonce ⁇ Npk as input, calculates psig ⁇ SIG.Sign(sk,(nonce,rpk)), and outputs the pre-signature psig.
- the communication unit 201 of the signer device 20 transmits the pre-signature psig generated in step S301 above to the recipient device 10 (step S302).
- the signature generation unit 103 of the recipient device 10 executes Obtain, a non-interactive blind signature according to the proposed method, to generate a pair (m, sig) of a message m and a signature sig (step S303). Specifically, the signature generation unit 103 receives the signer's public key pk, the recipient's key pair (rpk, rsk), the nonce value nonce, and the pre-signature psig as inputs.
- the unit 103 calculates ⁇ ; otherwise, the unit 103 calculates m ⁇ h(nonce, psig) and sig ⁇ NIZK.Prove(H crs (0), (pk, m), (rpk, h, r, nonce, psig)), and outputs (m, sig).
- the signature generation unit 103 terminates the process if the symbol ⁇ , which indicates failure, is output.
- the signature generation unit 103 of the recipient device 10 stores the pair (m, sig) of the message m and signature sig generated in step S303 above in the memory unit 104 (step S304).
- Fig. 10 is a sequence diagram showing an example of the signature verification process.
- the communication unit 101 of the recipient device 10 transmits the pair (m, sig) of the message m and the signature sig to the verifier device 30 (step S401).
- the verification unit 302 of the verifier device 30 executes non-interactive blind signature verification according to the proposed method and verifies the signature sig (step S402). That is, the verification unit 302 receives the signer's public key pk, the message m, and the signature sig as input, and outputs NIZK.Verify(H crs (0), (m, pk), sig). As a result, 1 is output if the verification is successful, and 0 is output if the verification is unsuccessful.
- Fig. 11 is a diagram showing an example of the hardware configuration of the computer 500.
- the computer 500 shown in FIG. 11 has an input device 501, a display device 502, an external I/F 503, a communication I/F 504, a RAM (Random Access Memory) 505, a ROM (Read Only Memory) 506, an auxiliary storage device 507, and a processor 508.
- a processor 508 Each of these pieces of hardware is connected to each other so as to be able to communicate with each other via a bus 509.
- the input device 501 is, for example, a keyboard, a mouse, a touch panel, physical buttons, etc.
- the display device 502 is, for example, a display, a display panel, etc. Note that the computer 500 may not have at least one of the input device 501 and the display device 502, for example.
- the external I/F 503 is an interface with external devices such as a recording medium 503a.
- recording media 503a include a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.
- the communication I/F 504 is an interface for connecting to a communication network.
- the RAM 505 is a volatile semiconductor memory (storage device) that temporarily stores programs and data.
- the ROM 506 is a non-volatile semiconductor memory (storage device) that can store programs and data even when the power is turned off.
- the auxiliary storage device 507 is a non-volatile storage device such as an HDD, SSD, or flash memory.
- the processor 508 is, for example, a CPU or other computing device.
- the hardware configuration shown in FIG. 11 is an example, and the hardware configuration of the computer 500 is not limited to this.
- the computer 500 may have multiple auxiliary storage devices 507 or multiple processors 508, may not have some of the hardware shown in the figure, or may have various types of hardware other than the hardware shown in the figure.
- the non-interactive blind signature system 1 can realize a non-interactive blind signature system in which anonymity is unconditionally guaranteed as long as it is used within a predetermined number of times.
- the non-interactive blind signature system 1 according to this embodiment uses a commitment scheme that ensures unconditional confidentiality, a dual-mode non-interactive zero-knowledge proof, and q-wise independent hash functions, instead of a special pseudo-random function called a verifiable random function. This is because the use of a verifiable random function requires assumptions about the computational complexity. This makes it possible to unconditionally guarantee anonymity, even if, for example, a quantum computer or an even more powerful computer is developed.
- Reference 1 Pedersen, TP: Non-interactive and information-theoretic secure verifiable secret sharing.
- Reference 2 Groth, J., Ostrovsky, R., Sahai, A.: Perfect non-interactive zero knowledge for NP.
- Non-interactive blind signature system 10 Recipient device 20 Signer device 30 Verifier device 40 Communication network 101 Communication unit 102 Key generation unit 103 Signature generation unit 104 Storage unit 201 Communication unit 202 Key generation unit 203 Pre-signature generation unit 204 Storage unit 301 Communication unit 302 Verification unit 303 Storage unit 500 Computer 501 Input device 502 Display device 503 External I/F 503a Recording medium 504 Communication I/F 505 RAM 506 ROM 507 Auxiliary storage device 508 Processor 509 Bus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本開示の一態様による非対話ブラインド署名システムは、署名者装置が、デジタル署名方式の公開鍵及び秘密鍵を、前記ブラインド署名における前記署名者装置の公開鍵及び秘密鍵として生成する第1の鍵生成部と、前記署名者装置の秘密鍵と、前記受領者装置の公開鍵と、第1のナンス値とに基づいて、前記デジタル署名方式により生成されるデジタル署名を事前署名として生成する事前署名生成部と、を有し、前記受領者装置が、q-wiseハッシュ関数が含まれる秘密鍵を前記受領者装置の秘密鍵、前記q-wiseハッシュ関数のコミットメントを前記受領者装置の公開鍵として生成する第2の鍵生成部と、前記署名者装置の公開鍵と、前記受領者装置の秘密鍵及び公開鍵と、第2のナンス値と、前記事前署名とに基づいて、前記q-wiseハッシュ関数によりメッセージと、Dual-mode非対話型ゼロ知識証明により署名とを生成する署名生成部と、を有する。
Description
本開示は、非対話ブラインド署名システム、装置、方法、及びプログラムに関する。
デジタル署名の1つとして、署名者に対してメッセージを秘匿しつつ署名を生成可能なブラインド署名と呼ばれる手法が知られている。一般にブラインド署名を生成する際には2者間の対話通信が不可欠であるが、署名対象のメッセージがランダムであれば非対話による通信で署名を生成することが可能な非対話ブラインド署名と呼ばれる手法も知られている(非特許文献1)。
Lucjan Hanzlik, " Non-interactive blind signatures for random messages, " In Annual International Conference on the Theory and Applications of Cryptographic Techniques, pages 722-752. Springer, 2023.
しかしながら、既存の非対話ブラインド署名では匿名性(blindness)が計算量的仮定の下で保証されているため、その仮定が成り立たなくなった場合には匿名性が破られてしまうという問題点がある。
本開示は、上記の点に鑑みてなされたもので、予め決められた回数以内の使用であれば匿名性が無条件に保証される非対話ブラインド署名を実現することを目的とする。
本開示の一態様による非対話ブラインド署名システムは、非対話型のブラインド署名により事前署名を生成する署名者装置と、前記事前署名からメッセージ及び署名を生成する受領者装置とが少なくとも含まれる非対話ブラインド署名システムであって、前記署名者装置は、デジタル署名方式の公開鍵及び秘密鍵を、前記ブラインド署名における前記署名者装置の公開鍵及び秘密鍵として生成する第1の鍵生成部と、前記署名者装置の秘密鍵と、前記受領者装置の公開鍵と、第1のナンス値とに基づいて、前記デジタル署名方式により生成されるデジタル署名を前記事前署名として生成する事前署名生成部と、を有し、前記受領者装置は、q-wiseハッシュ関数が含まれる秘密鍵を前記受領者装置の秘密鍵、前記q-wiseハッシュ関数のコミットメントを前記受領者装置の公開鍵として生成する第2の鍵生成部と、前記署名者装置の公開鍵と、前記受領者装置の秘密鍵及び公開鍵と、第2のナンス値と、前記事前署名とに基づいて、前記q-wiseハッシュ関数により前記メッセージと、Dual-mode非対話型ゼロ知識証明により前記署名とを生成する署名生成部と、を有する。
予め決められた回数以内の使用であれば匿名性が無条件に保証される非対話ブラインド署名を実現することができる。
以下、本発明の一実施形態について、図面を参照しながら詳細に説明する。
<従来技術>
まず、従来技術であるブラインド署名と非対話ブラインド署名について説明する。
まず、従来技術であるブラインド署名と非対話ブラインド署名について説明する。
≪ブラインド署名≫
ブラインド署名とは、委託型の匿名署名の1つであり、署名対象のメッセージを持つユーザ(以下、受領者と呼ぶ。)はそのメッセージを署名者に対して秘匿しながら署名生成を可能とする方式である。なお、ブラインド署名は電子現金の応用先として生まれた経緯があるデジタル署名でもある。
ブラインド署名とは、委託型の匿名署名の1つであり、署名対象のメッセージを持つユーザ(以下、受領者と呼ぶ。)はそのメッセージを署名者に対して秘匿しながら署名生成を可能とする方式である。なお、ブラインド署名は電子現金の応用先として生まれた経緯があるデジタル署名でもある。
ブラインド署名の簡単な応用例としては、匿名認証が挙げられる。例えば、或るアプリケーションのアカウントを作成した際に、自身のIDに対する署名を管理者に生成してもらいたいとする。このとき、ブラインド署名を用いることにより、自身のIDを管理者に秘匿しながら署名の生成が可能となる。なお、実際の認証時には、自身のIDとブラインド署名で生成された署名とを提示すればよい。
従来のブラインド署名の一例について、図1を参照しながら説明する。図1は、従来のブラインド署名の一例を説明するための図である。
図1に示すように、従来のブラインド署名では、以下のS11~S17により署名生成及びその検証が実現される。以下では、署名の検証者は、後述するS17の実行前に署名者の公開鍵pkを取得しているものとする。なお、以下の受領者、署名者、検証者は、正確には、それぞれ受領者、署名者、検証者となる装置、機器、端末等のことである。
S11:受領者は、M←Mask(m)により秘匿メッセージMを生成する。ここで、mは署名対象のメッセージ、Maskはメッセージmを入力として秘匿メッセージMを出力するアルゴリズムである。なお、秘匿メッセージMは、メッセージmの内容を暗号化等により秘匿したメッセージのことである。
S12:受領者は、秘匿メッセージMを署名者に送信する。
S13:署名者は、psig←Issuesk(M)により事前署名psigを生成する。ここで、skは署名者の秘密鍵、Issueskは秘密鍵skと秘匿メッセージMとを入力として事前署名psigを出力するアルゴリズムである。
S14:署名者は、事前署名psigを受領者に送信する。
S15:受領者は、sig←Obtain(psig)により署名sigを生成する。ここで、Obtainは事前署名psigを入力として署名sigを出力するアルゴリズムである。
S16:受領者は、(m,sig)を検証者に送信する。
S17:検証者は、1/0←Verifypk(m,sig)により署名sigを検証する。ここで、pkは署名者の公開鍵、Verifypkは公開鍵pkとメッセージmと署名sigとを入力として1又は0を出力するアルゴリズムである。なお、例えば、1は検証成功、0は検証失敗を表す。
なお、上記のS12及びS14が受領者と署名者との間の対話通信に相当する。
≪非対話ブラインド署名≫
ブラインド署名を生成する際には2者間の対話通信が不可欠であるが、署名対象のメッセージがランダムであれば非対話による通信で署名を生成することが可能な非対話ブラインド署名(NIBS:Non-interactive Blind Signatures for random messages)が知られている(非特許文献1)。上記のブラインド署名の匿名認証への応用例を考えた場合、IDがランダム値でも構わないとすれば非対話ブラインド署名は強力な応用技術となり得る。
ブラインド署名を生成する際には2者間の対話通信が不可欠であるが、署名対象のメッセージがランダムであれば非対話による通信で署名を生成することが可能な非対話ブラインド署名(NIBS:Non-interactive Blind Signatures for random messages)が知られている(非特許文献1)。上記のブラインド署名の匿名認証への応用例を考えた場合、IDがランダム値でも構わないとすれば非対話ブラインド署名は強力な応用技術となり得る。
従来の非対話ブラインド署名の一例について、図2を参照しながら説明する。図2は、従来の非対話ブラインド署名の一例を説明するための図である。
図2に示すように、従来の非対話ブラインド署名では、以下のS21~S25により署名生成及びその検証が実現される。以下では、署名の検証者は、後述するS25の実行前に署名者の公開鍵pkを取得しているものとする。また、署名者は、受領者の公開鍵pkrを事前に取得しているものとする。なお、以下の受領者、署名者、検証者は、正確には、それぞれ受領者、署名者、検証者となる装置、機器、端末等のことである。
S21:署名者は、psig←Issuesk(nonce,pkr)により事前署名psigを生成する。ここで、skは署名者の秘密鍵、nonceはノンス値、Issueskは秘密鍵skとノンス値nonceと公開鍵pkrとを入力として事前署名psigを出力するアルゴリズムである。
S22:署名者は、事前署名psigを受領者に送信する。
S23:受領者は、(m,sig)←Obtainsk_r(nonce,psig)によりメッセージm及び署名sigを生成する。ここで、sk_rは「skr」を意味し、受領者の秘密鍵である。Obtainsk_rは秘密鍵skrとノンス値nonceと事前署名psigとを入力としてメッセージmと署名sigとを出力するアルゴリズムである。
S24:受領者は、(m,sig)を検証者に送信する。
S25:検証者は、1/0←Verifypk(m,sig)により署名sigを検証する。ここで、pkは署名者の公開鍵、Verifypkは公開鍵pkとメッセージmと署名sigとを入力として1又は0を出力するアルゴリズムである。なお、例えば、1は検証成功、0は検証失敗を表す。
<従来の非対話ブラインド署名の問題点>
上記の非特許文献1に記載されている非対話ブラインド署名では、匿名性(blindness)が計算量的仮定の下で保証されているため、その仮定が成り立たなくなった場合には匿名性が破られてしまう恐れがある。例えば、量子計算機や更に強力な計算機が開発された場合、上記の非特許文献1に記載されている非対話ブラインド署名では、匿名性が破られてしまう恐れがある。
上記の非特許文献1に記載されている非対話ブラインド署名では、匿名性(blindness)が計算量的仮定の下で保証されているため、その仮定が成り立たなくなった場合には匿名性が破られてしまう恐れがある。例えば、量子計算機や更に強力な計算機が開発された場合、上記の非特許文献1に記載されている非対話ブラインド署名では、匿名性が破られてしまう恐れがある。
一方で、既存のブラインド署名には、例えば、RSA型ブラインド署名、schnorr型ブラインド署名等といった無条件に匿名性が保証される方式が多く存在する。
そこで、以下では、予め決められた回数以内の使用であれば匿名性が無条件に保証される非対話ブラインド署名(以下、「提案手法」、又は非対話ブラインド署名であることを明示する場合は「提案手法に係る非対話ブラインド署名」と呼ぶ。)を提案する。
<準備>
まず、提案手法の前提となる技術を準備する。
まず、提案手法の前提となる技術を準備する。
≪デジタル署名≫
デジタル署名SIG=(SIG.Gen,SIG.Sign,SIG.Verify)は、以下の3つの確率的多項式時間アルゴリズムで構成される。
デジタル署名SIG=(SIG.Gen,SIG.Sign,SIG.Verify)は、以下の3つの確率的多項式時間アルゴリズムで構成される。
SIG.Gen(λ):セキュリティパラメータλを入力として、検証鍵pkと署名鍵skとの鍵ペア(pk,sk)を出力する。以下、検証鍵pkは、メッセージ空間Mpkを暗に定義するものと仮定する。なお、検証鍵pk及び署名鍵skはそれぞれ公開鍵及び秘密鍵と呼ばれてもよい。
SIG.Sign(sk,m):署名鍵skとメッセージm∈Mpkとを入力として、署名σを出力する。
SIG.Verify(pk,m,σ):検証鍵pkとメッセージmと署名σとを入力として、1又は0を出力する。なお、例えば、1は検証成功、0は検証失敗を表す。
≪無条件秘匿性を満たすコミットメント方式≫
無条件秘匿性を満たすコミットメント方式CMT=(CMT.Setup,CMT.Com)は、以下の2つの確率的多項式時間アルゴリズムで構成される。
無条件秘匿性を満たすコミットメント方式CMT=(CMT.Setup,CMT.Com)は、以下の2つの確率的多項式時間アルゴリズムで構成される。
CMT.Setup(λ):セキュリティパラメータλを入力として、公開パラメータppを出力する。以下、公開パラメータppは、メッセージ空間Mppと乱数空間Rppとを暗に定義するものと仮定する。
CMT.Com(pp,m;r):公開パラメータppとメッセージm∈Mppと乱数r∈Rppとを入力として、コミットメントcomを出力する。
ここで、無条件秘匿性を満たすコミットメント方式CMTは、以下の性質1-1及び性質1-2を満たすものとする。
性質1-1(計算量的拘束性(Computational Binding)):任意の確率的多項式時間アルゴリズムで表される攻撃者をAとする。このとき、Pr[m≠m'∈Mpp∧CMT.Com(pp,m;r)=CMT.Com(pp,m';r')|pp←CMT.Setup(λ);(m,r,m',r')←A(pp)]=negl(λ)が成り立つ。ここで、negl(λ)はλに関して無視できる確率であることを表す。
性質1-2(完全秘匿性(Perfect Hiding)):任意の攻撃者Aに対して、Pr[b=b'|pp←CMT.Setup(λ);(m0,m1)←A(pp);b←{0,1};r←Rpp;com←CMT.Com(pp,mb;r);b'←A(pp,com)]=1/2が成り立つ。
上記の無条件秘匿性を満たすコミットメント方式CMTの具体例としては、例えば、Pedersenのコミットメント方式(参考文献1)等が挙げられる。
≪Dual-mode非対話型ゼロ知識証明≫
Dual-mode非対話型ゼロ知識証明には、拘束モード(binding mode)と秘匿モード(hiding mode)の2つのモードが存在するものとする。また、NP関係Rに関するNP言語をLRとする。このとき、NP言語LRに対するDual-mode非対話型ゼロ知識証明NIZK=(NIZK.Setup,NIZK.Prove,NIZK.Verify,NIZK.Sim,NIZK.Extract)は、以下の5つのアルゴリズムで構成される。
Dual-mode非対話型ゼロ知識証明には、拘束モード(binding mode)と秘匿モード(hiding mode)の2つのモードが存在するものとする。また、NP関係Rに関するNP言語をLRとする。このとき、NP言語LRに対するDual-mode非対話型ゼロ知識証明NIZK=(NIZK.Setup,NIZK.Prove,NIZK.Verify,NIZK.Sim,NIZK.Extract)は、以下の5つのアルゴリズムで構成される。
NIZK.Setup(λ,binding):セキュリティパラメータλを入力として、共通参照情報crsとNIZK.Sim用のトラップドアζとを出力する。
NIZK.Setup(λ,hiding):セキュリティパラメータλを入力として、共通参照情報crsとNIZK.Extract用のトラップドアξとを出力する。
NIZK.Prove(crs,x,w):共通参照情報crsとステートメントxと証拠wとを入力として、証明/アーギュメントπを出力する。
NIZK.Verify(crs,x,π):共通参照情報crsとステートメントxと証明/アーギュメントπとを入力として、1又は0を出力する。なお、例えば、1は証明/アーギュメントπが正しい、0は証明/アーギュメントπが正しくないことを表す。
NIZK.Sim(crs,ζ,x):共通参照情報crsとトラップドアζとステートメントxとを入力として、シミュレーションされたアーギュメントπ*又は失敗を表す記号⊥を出力する。
NIZK.Extract(crs,ξ,x,π):共通参照情報crsとトラップドアξとステートメントxと証明πとを入力として、証拠wを出力する。
ここで、Dual-mode非対話型ゼロ知識証明NIZKは、以下の性質2-1~性質2-6を満たすものとする。
性質2-1(Mode Indistinguishability):任意のセキュリティパラメータλに対して、モード識別不可能性に対する攻撃者Aのアドバンテージを以下で定義する。
AdvA(λ)=|Pr[mode=mode*|mode←{binding,hiding};(crs,・)←NIZK.Setup(λ,mode);mode*←A(λ,crs)]-1/2|
ここで、modeは{binding,hiding}からランダムに選択され、ランダムな共通参照情報crsが得られる。
ここで、modeは{binding,hiding}からランダムに選択され、ランダムな共通参照情報crsが得られる。
このとき、任意の確率的多項式時間アルゴリズムで表される攻撃者Aに対して、アドバンテージAdvA(λ)が無視できる。
性質2-2(Perfect Completeness in both Modes):任意のセキュリティパラメータλと、任意の(x,w)∈Rと、crs←NIZK.Setup(λ,binding)と、π←NIZK.Prove(crs,x,w)とに対して、NIZK.Verify(crs,x,π)=1が成り立つ。同様に、任意のセキュリティパラメータλと、任意の(x,w)∈Rと、crs←NIZK.Setup(λ,hiding)と、π←NIZK.Prove(crs,x,w)とに対して、NIZK.Verify(crs,x,π)=1が成り立つ。
性質2-3(Perfect Soundness in Binding Mode):任意の攻撃者Aに対して、Pr[NIZK.Verify(crs,x,π)=1∧(xがNP言語LRに含まれない)|(crs,ξ)←NIZK.Setup(λ,binding);(x,π)←A(crs)]=0が成り立つ。
性質2-4(Extractability in Binding Mode):任意の(x,π)に対して、Pr[NIZK.Verify(crs,x,π)=1∧((x,NIZK.Extract(crs,ξ,x,π))がNP関係Rに含まれない)|(crs,ξ)←NIZK.Setup(λ,binding);(x,π)←A(crs)]=0が成り立つ。
性質2-5(Perfect Zero-Knowledge in Hiding Mode):任意の(crs,ξ)←NIZK.Setup(λ,hiding)と、任意の(x,w)∈Rとに対して、{NIZK.Prove(crs,x,w)}の分布と{NIZK.Sim(crs,ζ,x)}の分布とが完全に識別不可能(Perfectly indistinguishable)である。
性質2-6(Setup-Free for Hiding Mode):セキュリティパラメータλによって暗に定義される、共通参照情報(CRS:common random string)の空間をSPACECRSとする。このとき、Pr[crs∈NIZK.Setup(λ,hiding)|crs←SPACECRS]=1-negl(λ)が成り立つ。
上記の性質2-6により、共通参照情報crsがSPACECRSからランダムにサンプリングされた場合、無視できる確率を除いて、秘匿モード(hiding mode)であることが保証される。
上記のDual-mode非対話型ゼロ知識証明の具体例としては、例えば、GOS Proof(参考文献2)等が挙げられる。
≪q-wise independent hash functions≫
q-wise independent hash functionsとは、予め決められたq回以内の使用であればランダム関数として使用できるハッシュ関数の族のことである。
q-wise independent hash functionsとは、予め決められたq回以内の使用であればランダム関数として使用できるハッシュ関数の族のことである。
ハッシュ関数の関数族をHとする。このとき、相異なるq個の元x1,x2,・・・,xq∈{0,1}aと、y1,y2,・・・,yq∈{0,1}bと、関数族Hの元h:{0,1}a→{0,1}bとに対して、以下を満たす場合、Hをq-wise independent hash functionsという。
Pr[h(x1)=y1,h(x2)=y2,・・・,h(xq)=yq|h←H]=(2-b)q
ただし、a及びbは予め決められた1以上の整数である。また、qは予め決められた1以上の整数である。
ただし、a及びbは予め決められた1以上の整数である。また、qは予め決められた1以上の整数である。
<提案手法>
上記の非特許文献1に記載されている非対話ブラインド署名の匿名性が計算量的仮定を置かなければいけない理由は検証可能なランダム関数(VRF:verifiable random function)と呼ばれる特殊な疑似ランダム関数を利用しているためである。このため、提案手法では、検証可能なランダム関数の利用を避け、その代わりに、無条件秘匿性を満たすコミットメント方式と、Dual-mode非対話型ゼロ知識証明と、q-wise independent hash functionsとを用いる。これにより、提案手法では、予め決められた回数以内(具体的にはq回以内)の使用であれば匿名性が無条件に保証される。
上記の非特許文献1に記載されている非対話ブラインド署名の匿名性が計算量的仮定を置かなければいけない理由は検証可能なランダム関数(VRF:verifiable random function)と呼ばれる特殊な疑似ランダム関数を利用しているためである。このため、提案手法では、検証可能なランダム関数の利用を避け、その代わりに、無条件秘匿性を満たすコミットメント方式と、Dual-mode非対話型ゼロ知識証明と、q-wise independent hash functionsとを用いる。これにより、提案手法では、予め決められた回数以内(具体的にはq回以内)の使用であれば匿名性が無条件に保証される。
提案手法に係る非対話ブラインド署名は5つのアルゴリズム(KeyGen,RKeyGen,Issue,Obtain,Verify)で構成される。
KeyGen(λ):セキュリティパラメータλを入力として、署名者の公開鍵pkと秘密鍵skとの鍵ペア(pk,sk)を出力する。以下、公開鍵pkは、ノンス値の空間Npkを暗に定義するものと仮定する。
RKeyGen(λ):セキュリティパラメータλを入力として、受領者の公開鍵rpkと秘密鍵rskとの鍵ペア(rpk,rsk)を出力する。
Issue(sk,rpk,nonce):署名者の秘密鍵skと受領者の公開鍵rpkとノンス値nonce∈Npkとを入力として、事前署名psigを出力する。
Obtain(pk,rpk,rsk,nonce,psig):署名者の公開鍵pkと受領者の鍵ペア(rpk,rsk)とノンス値nonceと事前署名psigとを入力として、メッセージmと署名sigとのペア(m,sig)又は失敗を表す記号⊥を出力する。
Verify(pk,m,sig):署名者の公開鍵pkとメッセージmと署名sigとを入力として、1又は0を出力する。なお、例えば、1は検証成功、0は検証失敗を表す。
≪提案手法に係る非ブラインド署名を構成する各アルゴリズムの詳細≫
デジタル署名をSIG=(SIG.Gen,SIG.Sign,SIG.Verify)、無条件秘匿性を満たすコミットメント方式をCMT=(CMT.Setup,CMT.Com)、(q+2)-wise independent hash functionsをHとする。また、NP言語LRに対するDual-mode非対話型ゼロ知識証明をNIZK=(NIZK.Setup,NIZK.Prove,NIZK.Verify,NIZK.Sim,NIZK.Extract)とする。
デジタル署名をSIG=(SIG.Gen,SIG.Sign,SIG.Verify)、無条件秘匿性を満たすコミットメント方式をCMT=(CMT.Setup,CMT.Com)、(q+2)-wise independent hash functionsをHとする。また、NP言語LRに対するDual-mode非対話型ゼロ知識証明をNIZK=(NIZK.Setup,NIZK.Prove,NIZK.Verify,NIZK.Sim,NIZK.Extract)とする。
{0,1}*からSPACECRSへのランダムオラクルをHcrsとする。同様に、{0,1}*から無条件秘匿性を満たすコミットメント方式CMTのセキュリティパラメータの空間へのランダムオラクルをHppとする。また、NP関係Rを以下で定義する。
((pk,m),(com,h,r,nonce,psig))∈R ⇔ SIG.Verify(pk,(nonce,com),psig)=1∧CMT.Com(Hpp(0),h;r)=com∧h(nonce,psig)=m
ここで、h∈Hである。
ここで、h∈Hである。
このとき、提案手法に係る非ブラインド署名を構成する各アルゴリズム(KeyGen,RKeyGen,Issue,Obtain,Verify)を以下で構成する。
・KeyGen
KeyGen(λ):セキュリティパラメータλを入力として、(pk,sk)←SIG.Gen(λ)により鍵ペア(pk,sk)を生成し、その鍵ペア(pk,sk)を署名者の鍵ペア(pk,sk)として出力する。なお、これは、通常のデジタル署名SIGの鍵ペアを署名者の鍵ペアとすることを意味する。
KeyGen(λ):セキュリティパラメータλを入力として、(pk,sk)←SIG.Gen(λ)により鍵ペア(pk,sk)を生成し、その鍵ペア(pk,sk)を署名者の鍵ペア(pk,sk)として出力する。なお、これは、通常のデジタル署名SIGの鍵ペアを署名者の鍵ペアとすることを意味する。
・RKeyGen
RKeyGen(λ):セキュリティパラメータλを入力として、ハッシュ関数h∈Hをサンプリングすると共に、com←CMT.Com(Hpp(0),h;r)を計算する。ここで、r∈RH_pp(0)は乱数である。なお、H_pp(0)は「Hpp(0)」を意味する。そして、(com,(h,r))を受領者の鍵ペア(rpk,rsk)として出力する。なお、これは、q-wiseハッシュ関数hと乱数rとを受領者の秘密鍵rsk、その秘密鍵rskをコミットしたものを受領者の公開鍵rpkとすることを意味する。このコミットメントは完全秘匿性により無条件に安全である。
RKeyGen(λ):セキュリティパラメータλを入力として、ハッシュ関数h∈Hをサンプリングすると共に、com←CMT.Com(Hpp(0),h;r)を計算する。ここで、r∈RH_pp(0)は乱数である。なお、H_pp(0)は「Hpp(0)」を意味する。そして、(com,(h,r))を受領者の鍵ペア(rpk,rsk)として出力する。なお、これは、q-wiseハッシュ関数hと乱数rとを受領者の秘密鍵rsk、その秘密鍵rskをコミットしたものを受領者の公開鍵rpkとすることを意味する。このコミットメントは完全秘匿性により無条件に安全である。
・Issue
Issue(sk,rpk,nonce):署名者の秘密鍵skと受領者の公開鍵rpkとノンス値nonce∈Npkとを入力として、psig←SIG.Sign(sk,(nonce,rpk))を計算し、事前署名psigを出力する。なお、これは、通常のデジタル署名を事前署名とすることを意味する。
Issue(sk,rpk,nonce):署名者の秘密鍵skと受領者の公開鍵rpkとノンス値nonce∈Npkとを入力として、psig←SIG.Sign(sk,(nonce,rpk))を計算し、事前署名psigを出力する。なお、これは、通常のデジタル署名を事前署名とすることを意味する。
・Obtain
Obtain(pk,rpk,rsk,nonce,psig):署名者の公開鍵pkと受領者の鍵ペア(rpk,rsk)とノンス値nonceと事前署名psigとを入力として、SIG.Verify(pk,(nonce,rpk),psig)=0(つまり、検証失敗)であれば⊥、そうでなければm←h(nonce,psig)及びsig←NIZK.Prove(Hcrs(0),(pk,m),(rpk,h,r,nonce,psig))を計算した上で(m,sig)を出力する。なお、これは、受領者の秘密鍵rskに含まれるq-wiseハッシュ関数hによってメッセージmを生成すると共に、更に正当にメッセージが生成されたことをDual-mode非対話型ゼロ知識証明で証明することを意味する。このDual-mode非対話型ゼロ知識証明は秘匿モードで実行されるため、無条件に安全である。
Obtain(pk,rpk,rsk,nonce,psig):署名者の公開鍵pkと受領者の鍵ペア(rpk,rsk)とノンス値nonceと事前署名psigとを入力として、SIG.Verify(pk,(nonce,rpk),psig)=0(つまり、検証失敗)であれば⊥、そうでなければm←h(nonce,psig)及びsig←NIZK.Prove(Hcrs(0),(pk,m),(rpk,h,r,nonce,psig))を計算した上で(m,sig)を出力する。なお、これは、受領者の秘密鍵rskに含まれるq-wiseハッシュ関数hによってメッセージmを生成すると共に、更に正当にメッセージが生成されたことをDual-mode非対話型ゼロ知識証明で証明することを意味する。このDual-mode非対話型ゼロ知識証明は秘匿モードで実行されるため、無条件に安全である。
・Verify
Verify(pk,m,sig):署名者の公開鍵pkとメッセージmと署名sigとを入力として、NIZK.Verify(Hcrs(0),(m,pk),sig)を出力する。なお、これは、Dual-mode非対話型ゼロ知識証明で証明を検証することを意味する。
Verify(pk,m,sig):署名者の公開鍵pkとメッセージmと署名sigとを入力として、NIZK.Verify(Hcrs(0),(m,pk),sig)を出力する。なお、これは、Dual-mode非対話型ゼロ知識証明で証明を検証することを意味する。
以下、上記の提案手法に係る非対話ブラインド署名を実現する非対話ブラインド署名システム1について説明する。
<全体構成例>
本実施形態に係る非対話ブラインド署名システム1の全体構成例について、図3を参照しながら説明する。図3は、本実施形態に係る非対話ブラインド署名システム1の全体構成の一例を示す図である。
本実施形態に係る非対話ブラインド署名システム1の全体構成例について、図3を参照しながら説明する。図3は、本実施形態に係る非対話ブラインド署名システム1の全体構成の一例を示す図である。
図3に示すように、本実施形態に係る非対話ブラインド署名システム1には、受領者装置10と、署名者装置20と、検証者装置30とが含まれる。受領者装置10と署名者装置20と検証者装置30は、例えば、インターネット等を含む通信ネットワーク40を介して通信可能に接続される。
受領者装置10は、受領者となる各種装置、機器、端末等である。署名者装置20は、検証者となる各種装置、機器、端末等である。検証者装置30は、検証者となる各種装置、機器、端末等である。
なお、受領者装置10、署名者装置20、検証者装置30は、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末、ウェアラブルデバイス、汎用サーバ、IoT機器、産業用機器等といった各種の装置、機器、端末等により実現することができる。
<機能構成例>
≪受領者装置10≫
本実施形態に係る受領者装置10の機能構成例について、図4を参照しながら説明する。図4は、本実施形態に係る受領者装置10の機能構成の一例を示す図である。
≪受領者装置10≫
本実施形態に係る受領者装置10の機能構成例について、図4を参照しながら説明する。図4は、本実施形態に係る受領者装置10の機能構成の一例を示す図である。
図4に示すように、本実施形態に係る受領者装置10は、通信部101と、鍵生成部102と、署名生成部103とを有する。これら各部は、例えば、受領者装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。また、本実施形態に係る受領者装置10は、記憶部104を有する。記憶部104は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等の各種記憶装置の記憶領域により実現される。
通信部101は、署名者装置20から事前署名psigを受信したり、検証者装置30に対してメッセージmと署名sigのペア(m,sig)を送信したりする。
鍵生成部102は、提案手法に係る非対話ブラインド署名のRKeyGenを実行し、公開鍵rpkと秘密鍵rskとの鍵ペア(rpk,rsk)を生成する。
署名生成部103は、提案手法に係る非対話ブラインド署名のObtainを実行し、メッセージmと署名sigのペア(m,sig)を生成する。
記憶部104は、各種データ(例えば、鍵ペア(rpk,rsk)、メッセージmと署名sigのペア(m,sig)等)を記憶する。
≪署名者装置20≫
本実施形態に係る署名者装置20の機能構成例について、図5を参照しながら説明する。図5は、本実施形態に係る署名者装置20の機能構成の一例を示す図である。
本実施形態に係る署名者装置20の機能構成例について、図5を参照しながら説明する。図5は、本実施形態に係る署名者装置20の機能構成の一例を示す図である。
図5に示すように、本実施形態に係る署名者装置20は、通信部201と、鍵生成部202と、事前署名生成部203とを有する。これら各部は、例えば、署名者装置20にインストールされた1以上のプログラムが、CPU等のプロセッサに実行させる処理により実現される。また、本実施形態に係る署名者装置20は、記憶部204を有する。記憶部204は、例えば、HDD、SSD、フラッシュメモリ等の各種記憶装置の記憶領域により実現される。
通信部201は、受領者装置10に対して事前署名psigを送信する。
鍵生成部202は、提案手法に係る非対話ブラインド署名のKeyGenを実行し、公開鍵pkと秘密鍵skとの鍵ペア(pk,sk)を生成する。
事前署名生成部203は、提案手法に係る非対話ブラインド署名のIssueを実行し、事前署名psigを生成する。
記憶部204は、各種データ(例えば、鍵ペア(pk,sk)、受領者の公開鍵rpk等)を記憶する。
≪検証者装置30≫
本実施形態に係る検証者装置30の機能構成例について、図6を参照しながら説明する。図6は、本実施形態に係る検証者装置30の機能構成の一例を示す図である。
本実施形態に係る検証者装置30の機能構成例について、図6を参照しながら説明する。図6は、本実施形態に係る検証者装置30の機能構成の一例を示す図である。
図6に示すように、本実施形態に係る検証者装置30は、通信部301と、検証部302とを有する。これら各部は、例えば、検証者装置30にインストールされた1以上のプログラムが、CPU等のプロセッサに実行させる処理により実現される。また、本実施形態に係る検証者装置30は、記憶部303を有する。記憶部303は、例えば、HDD、SSD、フラッシュメモリ等の各種記憶装置の記憶領域により実現される。
通信部301は、受領者装置10からメッセージmと署名sigのペア(m,sig)を受信する。
検証部302は、提案手法に係る非対話ブラインド署名のVerifyを実行し、署名sigを検証する。
記憶部303は、各種データ(例えば、署名者の公開鍵pk等)を記憶する。
<処理の詳細>
≪署名者の鍵生成処理≫
署名者の公開鍵pkと秘密鍵skとの鍵ペア(pk,sk)を生成する処理について、図7を参照しながら説明する。図7は、署名者の鍵生成処理の一例を示すフローチャートである。
≪署名者の鍵生成処理≫
署名者の公開鍵pkと秘密鍵skとの鍵ペア(pk,sk)を生成する処理について、図7を参照しながら説明する。図7は、署名者の鍵生成処理の一例を示すフローチャートである。
署名者装置20の鍵生成部202は、提案手法に係る非対話ブラインド署名のKeyGenを実行し、公開鍵pkと秘密鍵skとの鍵ペア(pk,sk)を生成する(ステップS101)。すなわち、鍵生成部202は、セキュリティパラメータλを入力として、(pk,sk)←SIG.Gen(λ)により鍵ペア(pk,sk)を生成し、その鍵ペア(pk,sk)を署名者の鍵ペア(pk,sk)として出力する。
署名者装置20の鍵生成部202は、上記のステップS101で生成した鍵ペア(pk,sk)を記憶部204に保存すると共に、公開鍵pkを任意の方法により公開する(ステップS102)。なお、公開鍵pkを公開する方法としては、例えば、公開のサーバに公開鍵pkを登録する方法等が挙げられる。
≪受領者の鍵生成処理≫
受領者の公開鍵rpkと秘密鍵rskとの鍵ペア(rpk,rsk)を生成する処理について、図8を参照しながら説明する。図8は、受領者の鍵生成処理の一例を示すフローチャートである。
受領者の公開鍵rpkと秘密鍵rskとの鍵ペア(rpk,rsk)を生成する処理について、図8を参照しながら説明する。図8は、受領者の鍵生成処理の一例を示すフローチャートである。
受領者装置10の鍵生成部102は、提案手法に係る非対話ブラインド署名のRKeyGenを実行し、公開鍵rpkと秘密鍵rskとの鍵ペア(rpk,rsk)を生成する(ステップS201)。すなわち、鍵生成部102は、セキュリティパラメータλを入力として、ハッシュ関数h∈Hをサンプリングすると共にcom←CMT.Com(Hpp(0),h;r)を計算し、(com,(h,r))を受領者の鍵ペア(rpk,rsk)として出力する。
受領者装置10の鍵生成部102は、上記のステップS101で生成した鍵ペア(rpk,rsk)を記憶部104に保存すると共に、公開鍵rpkを任意の方法により公開する(ステップS202)。なお、公開鍵rpkを公開する方法としては、例えば、公開のサーバに公開鍵rpkを登録する方法等が挙げられる。
≪署名生成及び取得処理≫
署名sigとメッセージmのペア(m,sig)を生成及び取得する処理について、図9を参照しながら説明する。図9は、署名生成及び取得処理の一例を示すシーケンス図である。
署名sigとメッセージmのペア(m,sig)を生成及び取得する処理について、図9を参照しながら説明する。図9は、署名生成及び取得処理の一例を示すシーケンス図である。
署名者装置20の事前署名生成部203は、提案手法に係る非対話ブラインド署名のIssueを実行し、事前署名psigを生成する(ステップS301)。すなわち、事前署名生成部203は、署名者の秘密鍵skと受領者の公開鍵rpkとノンス値nonce∈Npkとを入力として、psig←SIG.Sign(sk,(nonce,rpk))を計算し、事前署名psigを出力する。
署名者装置20の通信部201は、上記のステップS301で生成した事前署名psigを受領者装置10に送信する(ステップS302)。
受領者装置10の署名生成部103は、提案手法に係る非対話ブラインド署名のObtainを実行し、メッセージmと署名sigのペア(m,sig)を生成する(ステップS303)。すなわち、署名生成部103は、署名者の公開鍵pkと受領者の鍵ペア(rpk,rsk)とノンス値nonceと事前署名psigとを入力として、SIG.Verify(pk,(nonce,rpk),psig)=0であれば⊥、そうでなければm←h(nonce,psig)及びsig←NIZK.Prove(Hcrs(0),(pk,m),(rpk,h,r,nonce,psig))を計算した上で(m,sig)を出力する。なお、署名生成部103は、失敗を表す記号⊥が出力された場合は処理を中止する。
受領者装置10の署名生成部103は、上記のステップS303で生成したメッセージmと署名sigのペア(m,sig)を記憶部104に保存する(ステップS304)。
≪署名検証処理≫
署名sigを検証する処理について、図10を参照しながら説明する。図10は、署名検証処理の一例を示すシーケンス図である。
署名sigを検証する処理について、図10を参照しながら説明する。図10は、署名検証処理の一例を示すシーケンス図である。
受領者装置10の通信部101は、メッセージmと署名sigのペア(m,sig)を検証者装置30に送信する(ステップS401)。
検証者装置30の検証部302は、提案手法に係る非対話ブラインド署名のVerifyを実行し、署名sigを検証する(ステップS402)。すなわち、検証部302は、署名者の公開鍵pkとメッセージmと署名sigとを入力として、NIZK.Verify(Hcrs(0),(m,pk),sig)を出力する。これにより、検証が成功した場合は1、検証が失敗した場合は0が出力される。
<ハードウェア構成例>
本実施形態に係る受領者装置10、署名者装置20、及び検証者装置30は、例えば、図11に示すコンピュータ500のハードウェア構成により実現される。図11は、コンピュータ500のハードウェア構成の一例を示す図である。
本実施形態に係る受領者装置10、署名者装置20、及び検証者装置30は、例えば、図11に示すコンピュータ500のハードウェア構成により実現される。図11は、コンピュータ500のハードウェア構成の一例を示す図である。
図11に示すコンピュータ500は、入力装置501と、表示装置502と、外部I/F503と、通信I/F504と、RAM(Random Access Memory)505と、ROM(Read Only Memory)506と、補助記憶装置507と、プロセッサ508とを有する。これらの各ハードウェアは、それぞれがバス509を介して通信可能に接続される。
入力装置501は、例えば、キーボード、マウス、タッチパネル、物理ボタン等である。表示装置502は、例えば、ディスプレイ、表示パネル等である。なお、コンピュータ500は、例えば、入力装置501及び表示装置502のうちの少なくとも一方を有していなくてもよい。
外部I/F503は、記録媒体503a等の外部装置とのインタフェースである。記録媒体503aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
通信I/F504は、通信ネットワークに接続するためのインタフェースである。RAM505は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM506は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。補助記憶装置507は、例えば、HDD、SSD、フラッシュメモリ等の不揮発性の記憶装置である。プロセッサ508は、例えば、CPU等の各種演算装置である。
なお、図11に示すハードウェア構成は一例であって、コンピュータ500のハードウェア構成はこれに限られるものではない。例えば、コンピュータ500は、複数の補助記憶装置507や複数のプロセッサ508を有していてもよいし、図示したハードウェアの一部を有していなくてもよいし、図示したハードウェア以外の種々のハードウェアを有していてもよい。
<まとめ>
以上のように、本実施形態に係る非対話ブラインド署名システム1は、予め決められた回数以内の使用であれば匿名性が無条件に保証される非対話ブラインド署名を実現することができる。このとき、本実施形態に係る非対話ブラインド署名システム1では、検証可能なランダム関数と呼ばれる特殊な疑似ランダム関数の代わりに、無条件秘匿性を満たすコミットメント方式と、Dual-mode非対話型ゼロ知識証明と、q-wise independent hash functionsとを用いている。これは、検証可能なランダム関数を用いる場合、計算量的仮定を置く必要があるためである。これにより、例えば、量子計算機や更に強力な計算機が開発された場合であっても、無条件に匿名性を保証することが可能となる。
以上のように、本実施形態に係る非対話ブラインド署名システム1は、予め決められた回数以内の使用であれば匿名性が無条件に保証される非対話ブラインド署名を実現することができる。このとき、本実施形態に係る非対話ブラインド署名システム1では、検証可能なランダム関数と呼ばれる特殊な疑似ランダム関数の代わりに、無条件秘匿性を満たすコミットメント方式と、Dual-mode非対話型ゼロ知識証明と、q-wise independent hash functionsとを用いている。これは、検証可能なランダム関数を用いる場合、計算量的仮定を置く必要があるためである。これにより、例えば、量子計算機や更に強力な計算機が開発された場合であっても、無条件に匿名性を保証することが可能となる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
[参考文献]
参考文献1:Pedersen, T.P.: Non-interactive and information-theoretic secure verifiable secret sharing. In: Feigenbaum, J. (ed.) Advances in Cryptology - CRYPTO '91, 11th 41 Annual International Cryptology Conference, Santa Barbara, California, USA, August 11-15, 1991, Proceedings. Lecture Notes in Computer Science, vol. 576, pp. 129-140. Springer (1991).
参考文献2:Groth, J., Ostrovsky, R., Sahai, A.: Perfect non-interactive zero knowledge for NP. In: Vaudenay, S. (ed.) Advances in Cryptology - EUROCRYPT 2006, 25th Annual International Conference on the Theory and Applications of Cryptographic Techniques, St. Petersburg, Russia, May 28 - June 1, 2006, Proceedings. Lecture.
参考文献1:Pedersen, T.P.: Non-interactive and information-theoretic secure verifiable secret sharing. In: Feigenbaum, J. (ed.) Advances in Cryptology - CRYPTO '91, 11th 41 Annual International Cryptology Conference, Santa Barbara, California, USA, August 11-15, 1991, Proceedings. Lecture Notes in Computer Science, vol. 576, pp. 129-140. Springer (1991).
参考文献2:Groth, J., Ostrovsky, R., Sahai, A.: Perfect non-interactive zero knowledge for NP. In: Vaudenay, S. (ed.) Advances in Cryptology - EUROCRYPT 2006, 25th Annual International Conference on the Theory and Applications of Cryptographic Techniques, St. Petersburg, Russia, May 28 - June 1, 2006, Proceedings. Lecture.
1 非対話ブラインド署名システム
10 受領者装置
20 署名者装置
30 検証者装置
40 通信ネットワーク
101 通信部
102 鍵生成部
103 署名生成部
104 記憶部
201 通信部
202 鍵生成部
203 事前署名生成部
204 記憶部
301 通信部
302 検証部
303 記憶部
500 コンピュータ
501 入力装置
502 表示装置
503 外部I/F
503a 記録媒体
504 通信I/F
505 RAM
506 ROM
507 補助記憶装置
508 プロセッサ
509 バス
10 受領者装置
20 署名者装置
30 検証者装置
40 通信ネットワーク
101 通信部
102 鍵生成部
103 署名生成部
104 記憶部
201 通信部
202 鍵生成部
203 事前署名生成部
204 記憶部
301 通信部
302 検証部
303 記憶部
500 コンピュータ
501 入力装置
502 表示装置
503 外部I/F
503a 記録媒体
504 通信I/F
505 RAM
506 ROM
507 補助記憶装置
508 プロセッサ
509 バス
Claims (8)
- 非対話型のブラインド署名により事前署名を生成する署名者装置と、前記事前署名からメッセージ及び署名を生成する受領者装置とが少なくとも含まれる非対話ブラインド署名システムであって、
前記署名者装置は、
デジタル署名方式の公開鍵及び秘密鍵を、前記ブラインド署名における前記署名者装置の公開鍵及び秘密鍵として生成する第1の鍵生成部と、
前記署名者装置の秘密鍵と、前記受領者装置の公開鍵と、第1のナンス値とに基づいて、前記デジタル署名方式により生成されるデジタル署名を前記事前署名として生成する事前署名生成部と、を有し、
前記受領者装置は、
q-wiseハッシュ関数が含まれる秘密鍵を前記受領者装置の秘密鍵、前記q-wiseハッシュ関数のコミットメントを前記受領者装置の公開鍵として生成する第2の鍵生成部と、
前記署名者装置の公開鍵と、前記受領者装置の秘密鍵及び公開鍵と、第2のナンス値と、前記事前署名とに基づいて、前記q-wiseハッシュ関数により前記メッセージと、Dual-mode非対話型ゼロ知識証明により前記署名とを生成する署名生成部と、を有する、
非対話ブラインド署名システム。 - 前記第2の鍵生成部は、
前記q-wiseハッシュ関数と乱数とで構成される秘密鍵を前記受領者装置の秘密鍵、前記乱数を用いて無条件秘匿性を満たすコミットメント方式により前記q-wiseハッシュ関数をコミットしたコミットメントを前記受領者装置の公開鍵として生成する、請求項1に記載の非対話ブラインド署名システム。 - 前記署名生成部は、
前記第2のナンス値及び前記事前署名を入力として前記q-wiseハッシュ関数により前記メッセージを生成し、
ランダムにサンプリングされた情報を共通参照情報、前記署名者装置の公開鍵及び前記メッセージをステートメント、前記受領者装置の公開鍵及び秘密鍵と前記第2のナンス値と前記事前署名とを証拠として、前記Dual-mode非対話型ゼロ知識証明により生成された証明を前記署名として生成する、請求項1又は2に記載の非対話ブラインド署名システム。 - 前記Dual-mode非対話型ゼロ知識証明には秘匿モードと拘束モードとが存在し、秘匿モードに関してはセットアップ不要である、請求項3に記載の非対話ブラインド署名システム。
- 非対話型のブラインド署名により事前署名を生成する装置であって、
デジタル署名方式の公開鍵及び秘密鍵を、前記ブラインド署名における前記装置の公開鍵及び秘密鍵として生成する鍵生成部と、
前記装置の秘密鍵と、前記事前署名を受領する受領者装置の公開鍵と、ナンス値とに基づいて、前記受領者装置の公開鍵及び前記ナンス値を署名対象として前記デジタル署名方式により生成されるデジタル署名を前記事前署名として生成する事前署名生成部と、を有する、
装置。 - 非対話型のブラインド署名の事前署名からメッセージ及び署名を生成する装置であって、
q-wiseハッシュ関数が含まれる秘密鍵を前記装置の秘密鍵、前記q-wiseハッシュ関数のコミットメントを前記装置の公開鍵として生成する鍵生成部と、
前記事前署名を生成する署名者装置の公開鍵と、前記装置の秘密鍵及び公開鍵と、ナンス値と、前記事前署名とに基づいて、前記ナンス値及び前記事前署名を入力とする前記q-wiseハッシュ関数により前記メッセージと、秘匿モードで実行されるDual-mode非対話型ゼロ知識証明により前記署名とを生成する署名生成部と、を有する、
装置。 - 非対話型のブラインド署名により事前署名を生成する署名者装置と、前記事前署名からメッセージ及び署名を生成する受領者装置とが少なくとも含まれる非対話ブラインド署名システムに用いられる方法であって、
前記署名者装置が、
デジタル署名方式の公開鍵及び秘密鍵を、前記ブラインド署名における前記署名者装置の公開鍵及び秘密鍵として生成する第1の鍵生成手順と、
前記署名者装置の秘密鍵と、前記受領者装置の公開鍵と、第1のナンス値とに基づいて、前記デジタル署名方式により生成されるデジタル署名を前記事前署名として生成する事前署名生成手順と、を実行し、
前記受領者装置が、
q-wiseハッシュ関数が含まれる秘密鍵を前記受領者装置の秘密鍵、前記q-wiseハッシュ関数のコミットメントを前記受領者装置の公開鍵として生成する第2の鍵生成手順と、
前記署名者装置の公開鍵と、前記受領者装置の秘密鍵及び公開鍵と、第2のナンス値と、前記事前署名とに基づいて、前記q-wiseハッシュ関数により前記メッセージと、Dual-mode非対話型ゼロ知識証明により前記署名とを生成する署名生成手順と、を実行する、
方法。 - コンピュータを、請求項5又は6に記載の装置として機能させるプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/027339 WO2026028331A1 (ja) | 2024-07-31 | 2024-07-31 | 非対話ブラインド署名システム、装置、方法、及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/027339 WO2026028331A1 (ja) | 2024-07-31 | 2024-07-31 | 非対話ブラインド署名システム、装置、方法、及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2026028331A1 true WO2026028331A1 (ja) | 2026-02-05 |
Family
ID=98606367
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/027339 Pending WO2026028331A1 (ja) | 2024-07-31 | 2024-07-31 | 非対話ブラインド署名システム、装置、方法、及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2026028331A1 (ja) |
-
2024
- 2024-07-31 WO PCT/JP2024/027339 patent/WO2026028331A1/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11895248B2 (en) | Method and apparatus for generating blockchain transaction | |
| Bera et al. | Designing blockchain-based access control protocol in IoT-enabled smart-grid system | |
| CN110998581B (zh) | 使用多重密钥对签名的程序执行和数据证明方案 | |
| CN114586313B (zh) | 用于签署一信息的系统及方法 | |
| RU2736447C1 (ru) | Перекрестная торговля активами в сетях блокчейнов | |
| CN110914851A (zh) | 提高区块链网络与外部数据源之间的通信的完整性 | |
| CN111819827A (zh) | 用于控制区块链上的资源的访问和完整性的方法和系统 | |
| CN110612700A (zh) | 基于恢复的公钥进行认证 | |
| US12526132B2 (en) | Computer implemented system and method for sharing a common secret | |
| WO2013031414A1 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
| JP2022549070A (ja) | ブロックチェーン上に認証済みデータを格納するコンピュータにより実施される方法及びシステム | |
| CN112600675B (zh) | 基于群签名的电子投票方法及装置、电子设备、存储介质 | |
| CN113711562B (zh) | 用于区块链交易中的知识证明的计算机实现的方法和系统 | |
| US20070124584A1 (en) | Proving ownership of shared information to a third party | |
| Bagchi et al. | Quantum safe lattice-based single round online collaborative multi-signature scheme for blockchain-enabled IoT applications | |
| Yao et al. | Verifiable secure aggregation scheme for privacy protection in federated learning networks | |
| CN112417489B (zh) | 数字签名的生成方法、装置和服务器 | |
| WO2013129084A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
| WO2022116175A1 (zh) | 数字签名的生成方法、装置和服务器 | |
| Xia et al. | An improved privacy preserving construction for data integrity verification in cloud storage | |
| Prajapat et al. | Blockchain-enabled secure signature scheme with quantum key distribution for IoMT-based healthcare systems | |
| CN117081752B (zh) | 一种基于区块链的数据安全共享方法和系统 | |
| Jin et al. | An efficient blockchain-based authentication scheme with transferability | |
| Far et al. | Zero‐knowledge‐based distributed auditing protocol | |
| Skudnov | Bitcoin clients |
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: 24949619 Country of ref document: EP Kind code of ref document: A1 |