WO2022074773A1 - 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム - Google Patents

識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム Download PDF

Info

Publication number
WO2022074773A1
WO2022074773A1 PCT/JP2020/038039 JP2020038039W WO2022074773A1 WO 2022074773 A1 WO2022074773 A1 WO 2022074773A1 JP 2020038039 W JP2020038039 W JP 2020038039W WO 2022074773 A1 WO2022074773 A1 WO 2022074773A1
Authority
WO
WIPO (PCT)
Prior art keywords
identifier
distributed ledger
identifier change
pairing
signature value
Prior art date
Application number
PCT/JP2020/038039
Other languages
English (en)
French (fr)
Inventor
滋 藤村
盛徳 大橋
篤 中平
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US18/029,315 priority Critical patent/US20230370280A1/en
Priority to EP20956721.3A priority patent/EP4227880A4/en
Priority to JP2022555038A priority patent/JP7468683B2/ja
Priority to PCT/JP2020/038039 priority patent/WO2022074773A1/ja
Publication of WO2022074773A1 publication Critical patent/WO2022074773A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Definitions

  • the present invention relates to an identifier change management device, an identifier change management method, and an identifier change management program.
  • Bitcoin registered trademark
  • blockchain which is a kind of decentralized distributed ledger technology
  • each user terminal participating in the network holds the same distributed ledger.
  • the distributed ledger is characterized by the distribution of authority. Therefore, if a reliable third party is set in the distributed ledger system, some functions will have privileges, and the greatest feature of the distributed ledger will be lost.
  • the present invention has been made by paying attention to the above circumstances, and an object thereof is an identifier change management device capable of changing an identifier without the need for a reliable third party, an identifier change management method, and an identifier change management method. To provide an identifier change control program.
  • the identifier change management device that can be connected to the distributed ledger network of the present invention includes a key management unit that manages a secret key group including a first secret key used when changing an identifier, and the above-mentioned. Issue a transaction that issues an identifier change transaction including a message input unit for accepting a message used when changing an identifier, a hash value of the message, and a first signature value generated from the first private key.
  • a distributed ledger in which an identifier change program that holds a pairing public key used when changing the identifier and a second signature value generated from a randomly generated second private key is registered, and the distributed ledger.
  • the identifier change program calculates the pairing signature value of the first signature value and the second signature value.
  • a program control management unit that changes the identifier, provided that the pairing signature value, the pairing public key, and the hash value satisfy an equation using a predetermined pairing function. It is designed to be equipped with.
  • an identifier change management device it is possible to provide an identifier change management device, an identifier change management method, and an identifier change management program that can change an identifier without the need for a reliable third party.
  • FIG. 1 is a diagram showing an overall configuration of a distributed ledger system including a user terminal operating as an identifier change management device in the embodiment and a distributed ledger network.
  • FIG. 2 is a block diagram showing an example of the hardware configuration of the user terminal.
  • FIG. 3 is a flowchart for setting an identifier change condition of the identifier management program.
  • FIG. 4 is a diagram showing the entire processing flow in the user terminal.
  • FIG. 5 is a diagram showing a data structure of an identifier change transaction.
  • FIG. 6 is a flowchart illustrating step S109 shown in FIG. 4 in more detail.
  • FIG. 1 is a diagram showing an overall configuration of a distributed ledger system including a user terminal 1 operating as an identifier change management device and a distributed ledger network 2 in the present embodiment.
  • the distributed ledger system shown in FIG. 1 includes a user terminal 1 and a distributed ledger network 2.
  • the user terminal 1 is autonomously and decentralizedly connected to the distributed ledger network 2 which is a peer-to-peer (P2P) network.
  • P2P peer-to-peer
  • a plurality of user terminals are connected to the distributed ledger network 2.
  • a plurality of user terminals 1 may be connected.
  • the user terminal 1 includes a key management unit 10, a message input unit 11, an identifier management program setting unit 12, a transaction issuing unit 13, a program control management unit 14, a distributed ledger management unit 15, and a distributed ledger 16. ,including.
  • the user terminal 1 is, for example, a node that uses the distributed ledger network 2.
  • the node has a function of verifying a transaction and updating and holding ledger information.
  • the key management unit 10 manages the private key for issuing a transaction.
  • the private key for issuing this transaction is also a private key for using various functions on the distributed ledger 16.
  • the various functions may be any information stored in the distributed ledger 16 as long as the ownership can be transmitted and received between the user terminals 1. For example, various functions may be functions such as trading of cryptographic assets.
  • the key management unit 10 also holds a secret key group. The secret key group will be described later.
  • the message input unit 11 is an input unit that receives a message a from the user of the user terminal 1.
  • the message a may be arbitrary, but may be, for example, a password.
  • the password may be a fixed password, but may be a disposable password that can be used only once.
  • the password is managed in a storage location different from that of the user terminal 1 such as paper and a dedicated device. That is, the password may be held by a general method that can be securely held by the user terminal 1.
  • the password is managed as a QR code (registered trademark) printed on paper outside the user terminal 1.
  • the private key managed externally may be used for one time, but may be prepared for a plurality of times.
  • the identifier management program setting unit 12 sets various conditions in the identifier management program registered or registered in the distributed ledger 16.
  • the identifier management program setting unit 12 sets a condition for confirming that the transaction is properly issued from the user terminal 1 at the time of normal use.
  • the condition in this embodiment is the success of verification of the electronic signature included in various transactions issued from the user terminal 1. Therefore, the identifier management program holds the public key P1 that is paired with the private key s1 that is held by the key management unit 10 and is used during normal use.
  • s represents a private key and P represents a public key.
  • the identifier management program calculates an identifier that can be used from the public key Pn-1 .
  • the available identifier corresponds to the so-called address or account used by the user terminal 1. The method of calculating the available identifier shall be obtained from the public key by a general method, and detailed description thereof will be omitted here.
  • the identifier change condition for changing the identifier is set by the identifier management program setting unit 12.
  • the setting of the identifier change condition for changing the identifier will be described later.
  • the transaction issuing unit 13 issues a transaction to the distributed ledger network 2 using the private key managed by the key management unit 10. For example, the transaction issuing unit 13 issues a transaction including a transaction of a cryptographic asset. Further, in the present embodiment, the transaction issuing unit 13 is a transaction for registering the identifier management program set in the identifier management program setting unit 12 on the distributed ledger 16 and a transaction for changing the identifier on the distributed ledger 16. Will also be issued. The transaction for changing the identifier on the distributed ledger 16 will be described later.
  • the program control management unit 14 controls and manages programs such as an identifier management program stored in the distributed ledger 16.
  • the program control management unit 14 rewrites the identifier management program in response to the identifier change request from the user terminal 1. Therefore, the program control management unit 14 controls this rewriting and manages the identifier management program.
  • the distributed ledger management unit 15 maintains the distributed ledger network 2 in an autonomous and decentralized manner with other user terminals connected to the distributed ledger network 2.
  • the distributed ledger management unit 15 causes the program control management unit 14 to confirm whether or not the transaction issued by using the identifier management program stored in the distributed ledger 16 is properly issued from the user terminal 1.
  • the program control management unit 14 verifies the signature of the electronic signature given to the transaction with the signature value ⁇ 1 using the public key P 1 .
  • represents a signature value.
  • the signature verification may be performed by a general method using the public key P1, and detailed description thereof will be omitted here.
  • the program control management unit 14 causes the program control management unit 14 to execute a program for verifying and approving the received transaction.
  • a program for verifying and approving the received transaction For example, when a blockchain is used, the program control management unit 14 collectively generates one block by collecting transactions issued on the distributed ledger network 2 within a predetermined time, and mines the block. The program control management unit 14 adds the successfully verified block to the block chain stored in the distributed ledger 16.
  • the technology for maintaining the distributed ledger network 2 is not limited to the blockchain, and any technology for maintaining the distributed ledger network 2 such as a directed acyclic graph (DAG) may be used.
  • DAG directed acyclic graph
  • a method of approving a new block a method other than mining may be used, for example, a distributed consensus algorithm is used.
  • the distributed ledger 16 stores transactions that have been successfully verified by synchronizing with the distributed ledger 16 of all user terminals 1 connected to the distributed ledger network 2 via the distributed ledger management unit 15. For example, when a blockchain is used, the distributed ledger 16 stores the blockchain and the data set managed by the blockchain.
  • the distributed ledger network 2 is a network using a decentralized distributed ledger technology that does not require a specific administrator.
  • the distributed ledger network 2 may be an open type, a private type, or a consortium type.
  • the distributed ledger network 2 is a network that can be managed by the distributed ledger 16 and does not include the process acquired by a specific administrator in the process of transaction verification, execution, and registration in the distributed ledger 16. do.
  • FIG. 2 is a block diagram showing an example of the hardware configuration of the user terminal 1.
  • the user terminal 1 has, for example, a hardware processor 101 such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit).
  • the program memory 102, the data memory 103, the communication interface 104, and the input / output interface 105 are connected to the processor 101 via the bus 106.
  • the program memory 102 is a combination of, for example, a non-volatile memory such as an EPROM (ErasableProgrammableReadOnlyMemory) or a memory card that can be written and read at any time, and a non-volatile memory such as a ROM (ReadOnlyMemory). Can be used.
  • the program memory 102 stores a program necessary for the processor 101 to execute various control processes according to the embodiment. That is, any of the processing function units in each part of the above-mentioned functional configuration can be realized by reading and executing the program stored in the program memory 102 by the processor 101.
  • the data memory 103 is a storage used as a storage medium by combining, for example, a non-volatile memory such as a memory card that can be written and read at any time and a volatile memory such as a RAM (RandomAccessMemory).
  • the data memory 103 is used to store data acquired and created in the process in which the processor 101 executes a program and performs various processes. That is, in the data memory 103, an area for storing various data is appropriately secured in the process of performing various processes.
  • the distributed ledger 16 is composed of a program memory 102 and a data memory 103. That is, the program such as the identifier management program stored on the distributed ledger 16 is stored in the program memory 102, and the data such as the blockchain is stored in the data memory 103.
  • the communication interface 104 includes one or more wireless communication modules.
  • the communication interface 104 includes a wireless communication module utilizing short-range wireless technology such as Bluetooth®.
  • the communication interface 104 includes, for example, a wireless communication module that wirelessly connects to a Wi-Fi access point or a mobile phone base station. Under the control of the processor 101, this wireless communication module connects to the distributed ledger network 2 via a Wi-Fi access point or a mobile phone base station, communicates with other user terminals, and transmits / receives various information. Can be done.
  • the communication interface 104 may include one or more wired communication modules.
  • the input / output interface 105 is an interface of the user interface device 107.
  • the "user interface device” is described as a “user IF device”.
  • the user interface device 107 includes an input device 1071 and an output device 1072.
  • the output device 1072 is a display device using, for example, a liquid crystal display, an organic EL (ElectroLuminescence), or the like, and displays an image corresponding to a signal input from the input / output interface 105.
  • the input device 1071 is an input detection sheet that employs an electrostatic method or a pressure method and is arranged on the display screen of the display device that is the output device 1072, and the user's touch position is set by the processor 101 via the input / output interface 105. Output to.
  • the input device 1071 and the output device 1072 may be configured by independent devices.
  • the input / output interface 105 can input the operation information input in the input device 1071 to the processor 101 and display the display information generated by the processor 101 in the output device 1072.
  • FIG. 3 is a flowchart for setting an identifier change condition of the identifier management program. The operation of this flowchart is realized by the processor 101 of the user terminal 1 reading and executing the program stored in the program memory 102.
  • the identifier management program setting unit 12 calculates the public key P c and the signature value ⁇ c (step S11).
  • c is a subscript indicating that it is a key for performing pairing described later.
  • the identifier management program setting unit 12 acquires the message a corresponding to the password from the user of the user terminal 1 via the input device 1071.
  • the public key P c and the signature value ⁇ c are calculated from this message a and the randomly generated private key s c .
  • H represents a cryptographic hash function
  • Q is a public parameter for calculating the public key in the Blone Lin Shacham (BLS) signature. Therefore, H (a) is a hash value obtained by applying a cryptographic hash function to the message a.
  • the hash function H and the public parameter Q are defined as follows.
  • the map H ⁇ character string of arbitrary length ⁇ ⁇ G1
  • Q is a fixed point of G2. That is, Q is a public parameter that takes an arbitrary value in the additive cyclic group G2.
  • the identifier management program setting unit 12 has a secret key group s2 , s3 , which includes a secret key s2 for changing an identifier. .. .. , S n + 1 are randomly generated (step S12).
  • n is an arbitrary positive integer.
  • the identifier management program setting unit 12 registers the generated private key group in the key management unit 10. By generating the private key group, even if the private key group is leaked or leaked from the key management unit 10, the possibility that the secret key s2 for changing the identifier is specified can be reduced to 1 / n. a. Therefore, as the number of n increases, the possibility that the private key s2 is specified can be reduced.
  • the identifier management program setting unit 12 calculates the public key P 2 and the pairing public key P (step S13).
  • the identifier management program setting unit 12 first calculates the public key P 2 paired with the private key s 2 .
  • the identifier management program setting unit 12 performs pairing of the public key.
  • the identifier management program setting unit 12 discards the message a, the private key s c , the public key P c , and the signature value ⁇ c obtained in the above processing process (step S15). By destroying these private keys, public keys and signature values, they eliminate the risk of leakage or loss. Therefore, it is possible to improve the security regarding which public key is paired with the public key P registered on the distributed ledger 16. On the other hand, the user correctly selects s 2 used for pairing with H (a) calculated from the message a, and obtains the signature value ⁇ 2 , so that the identifier change condition set in the identifier management program It is possible to satisfy.
  • FIG. 4 is a diagram showing the entire processing flow in the user terminal 1.
  • the distributed ledger management unit 15 (and the program control management unit 14) and the distributed ledger 16 shown in FIG. 4 are the distributed ledger management unit 15 (and the program control management unit 14) of all the user terminals 1 in the distributed ledger system.
  • the distributed ledger 16 That is, the distributed ledger management unit 15 (and the program control management unit 14) and the distributed ledger 16 shown in FIG. 3 are the distributed ledger management unit 15 (and the program control management unit 14) of the user terminal 1 shown in FIG.
  • the distributed ledger 16 may be used, or the distributed ledger management unit 15 (and the program control management unit 14) and the distributed ledger 16 of the other user terminal 1 may be used. Further, the operation of this flowchart is realized by the processor 101 of the user terminal 1 reading and executing each program stored in the program memory 102.
  • steps S101 to S104 show steps for preparation for using the identifier management program in the present embodiment
  • steps S105 to S107 are steps for normal use using the identifier management program.
  • steps S108 to S109 show steps for changing the identifier stored in the distributed ledger 16.
  • the transaction issuing unit 13 of the user terminal 1 issues an identifier registration transaction for registering the identifier management program in the distributed ledger 16 on the distributed ledger network 2 (step S101).
  • the identifier management program setting unit 12 sets conditions for confirming that the transaction used is properly issued from the user terminal 1 during normal use, conditions for changing the identifier, and the like.
  • the distributed ledger management unit 15 causes the program control management unit 14 to execute mining of the registration transaction (step S102). For example, when a blockchain is used, mining is executed for a block in which a plurality of transactions including a registration transaction received during a predetermined time interval are combined into one.
  • the distributed ledger management unit 15 causes the program control management unit 14 to register the identifier management program in the distributed ledger 16 according to the identifier registration transaction that has been successfully mined (step S103). When registering this identifier registration program in the distributed ledger 16, the distributed ledger management unit 15 acquires an ID indicating the storage location of the identifier registration program.
  • the user terminal 1 acquires the ID of the identifier management program from the distributed ledger management unit 15 (step S104).
  • the user terminal 1 may also acquire the identifier calculated by the public key P1 held by the identifier management program.
  • the transaction issuing unit 13 of the user terminal 1 issues a usage transaction including a request for using the information stored in the distributed ledger 16 (step S105).
  • the used transaction includes, for example, an identifier of an identifier management program, an available identifier, an instruction regarding a transaction of a cryptographic asset, and a digital signature generated by a private key s1 managed by the key management unit 10. ..
  • the request for using the information stored in the distributed ledger 16 is not limited to the transaction of cryptographic assets, but is the information stored in the distributed ledger 16 and the ownership can be transmitted / received between the user terminals 1. All you need is.
  • the distributed ledger management unit 15 verifies the electronic signature included in the usage transaction, and after the verification is successful, executes the process according to the request included in the usage transaction (step S106). That is, the distributed ledger management unit 15 passes the ID of the identifier management program included in the use transaction to the program control management unit 14, and the program control management unit 14 executes the identifier management program indicated by the ID.
  • the program control management unit 14 verifies the transaction used by the identifier management program. For example, the program control management unit 14 calculates a value obtained by decrypting the signature value ⁇ 1 of the electronic signature included in the use transaction with the public key P 1 held by the identifier management program, and uses the value in the use transaction and the hash function. Compare with the hash value calculated in.
  • the program control management unit 14 determines that the verification is successful as if the transaction used was properly issued from the user terminal 1. That is, it is proved that the electronic signature was made by the user terminal. If the verification is successful, the distributed ledger management unit 15 causes the program control management unit 14 to execute the processing of an arbitrary program according to the usage identifier and the request included in the usage transaction. When the program control management unit 14 determines that the usage transaction is not legitimately issued by the user terminal 1, the distributed ledger management unit 15 discards the usage transaction. Further, the distributed ledger management unit 15 may report to the user terminal 1 about the possibility of an unauthorized use attempt.
  • the distributed ledger management unit 15 transmits the processing execution result confirmation information including the execution result to the user terminal 1 (step S107).
  • the user terminal 1 may display the execution result to the user via the output device 1072 of the user terminal 1.
  • the user terminal 1 When the identifier is changed, the user terminal 1 issues an identifier change transaction including an identifier change request on the distributed ledger network 2 (step S108).
  • the user terminal 1 leaks or loses the private key s1 due to negligence or the like, another terminal can acquire the leaked or lost private key s1.
  • Another terminal that has acquired the leaked or lost private key s 1 can impersonate the user terminal 1 and issue a transaction using the private key s 1 . Therefore, the user terminal 1 needs to change the identifier registered on the distributed ledger 16.
  • the transaction issuing unit 13 of the user terminal 1 issues an identifier change transaction including a request for changing the identifier to the distributed ledger network 2.
  • FIG. 5 is a diagram showing the data structure of the identifier change transaction.
  • the identifier management program ID As shown in FIG. 5, in the identifier change transaction, the identifier management program ID, the function information that specifies the function to be executed by the identifier management program, the hash value H (a) of the message a, the signature value ⁇ 2 , and the signature value ⁇ 2. It includes six elements: the public key P'and the signature value ⁇ c'for setting the next identifier change condition. Further, in the identifier change transaction, the hash value H (m) of the message m when these six elements are used as the message m is digitally signed with the secret key s2 for changing the identifier, and the ⁇ m and the secret key s. Includes the public key P2 paired with 2 .
  • the elements shown in FIG. 5 are generated as follows.
  • the identifier management program setting unit 12 of the user terminal 1 acquires the secret key s2 set for changing the identifier from the secret key group held in the key management unit 10. Furthermore, s 2 , s 3 , ... .. .. , S n , s 2', s 3' ,. .. .. , s n'is generated and s 3'to be used for setting the identifier change condition next time is acquired.
  • the distributed ledger management unit 15 confirms that the program control management unit 14 satisfies the identifier change condition, and causes the program control management unit 14 to execute the change of the identifier (step S109). That is, when the distributed ledger management unit 15 receives the identifier change transaction, it reads out the identifier management program ID included in the identifier change transaction and passes it to the program control management unit 14. The program control management unit 14 reads and executes the identifier management program indicated by the ID, and confirms whether the identifier change condition is satisfied.
  • the program control management unit 14 changes the next identifier change condition in the identifier management program and uses it to calculate the currently available identifier to be held in the separate child management program. Change the public key to be used from P1 to P2 .
  • the program control management unit 14 determines that the identifier change transaction is not legitimately issued by the user terminal 1, and the distributed ledger management unit 15 determines that the transaction is not properly issued. Discard the identifier change transaction. Further, the distributed ledger management unit 15 may report to the user terminal 1 that there is an unauthorized identifier change request.
  • FIG. 6 is a flowchart illustrating step S109 shown in FIG. 4 in more detail.
  • the program control management unit 14 determines whether or not the signature values ⁇ 2 and ⁇ m included in the identifier change transaction can be verified by the public key P 2 (step S201).
  • the terminal capable of generating the identifier change transaction is limited to the one having the private key s 2 . Therefore, when the program control management unit 14 determines that the signature values ⁇ 2 and ⁇ m can be verified by the public key P 2 , it determines that the user has the private key s 2 . Further, the program control management unit 14 also determines that the range of the message m is data created by the user having the private key s2. If the program control management unit 14 determines that these values are not verifiable, the distributed ledger management unit 15 determines that the identifier change transaction has not been properly issued by the user terminal 1, and changes the identifier. Discard the transaction.
  • the program control management unit 14 pairs the signature values and acquires the pairing signature value ⁇ (step S202).
  • the program control management unit 14 calculates the pairing signature value ⁇ from ⁇ c held in the identifier management program and the signature value ⁇ 2 included in the identifier change transaction.
  • the program control management unit 14 uses the hash value H (a) included in the identifier change transaction, the pairing public key P held in the identifier management program, the pairing signature value ⁇ calculated in step S202, and the public parameters. It is determined whether or not the above equation is satisfied based on a certain Q. If the equation is satisfied, the process proceeds to step S204.
  • the distributed ledger management unit 15 determines that the identifier change transaction has not been properly issued from the user terminal 1, and discards the identifier change transaction. do.
  • the identifier management program holds the pairing public key P'and the signature value ⁇ c'as data related to the next identifier change condition.
  • the public key P c for changing the identifier and the signature value ⁇ c will be used only once for changing the identifier. This is done to prevent retransmission attacks.
  • the identifier change transaction is recorded in the distributed ledger 16. Therefore, the identifier change transaction will be widely disclosed to other user terminals. If the public key P'and the signature value ⁇ c'that will be used from the next time onward are not included in the identifier change transaction and the public key for changing the identifier is fixed, the public key that is widely published can be saved and the same content can be obtained. A retransmission attack of resending the change request becomes possible. In order to eliminate this risk, the public key and signature value for changing the identifier must be used only once, and the next public key and signature value must always be specified.
  • the user terminal 1 can change the identifier without the need for a third party.
  • the decentralization of authority which is the greatest feature of the distributed ledger 16, is not lost, and it is possible to prevent the key from being leaked intentionally or accidentally by a third party.
  • the user terminal 1 can realize a method in which a third party cannot illegally use the identifier change function simply by leaking the key for changing the identifier.
  • the present invention is not limited to the above embodiment.
  • the user terminal 1 has been described as functioning as a node.
  • the user terminal 1 does not have to function as a node.
  • the user terminal 1 does not have to have the program control management unit 14, the distributed ledger management unit 15, and the distributed ledger 16.
  • the method described in the above embodiment is, for example, a magnetic disk (floppy (registered trademark) disk, hard disk, etc.) or an optical disk (CD-ROM, DVD) as a program (software means) that can be executed by a computer (computer). , MO, etc.), stored in a recording medium such as a semiconductor memory (ROM, RAM, flash memory, etc.), or transmitted and distributed by a communication medium.
  • the program stored on the medium side also includes a setting program for configuring the software means (including not only the execution program but also the table and the data structure) to be executed by the computer in the computer.
  • a computer that realizes this device reads a program recorded on a recording medium, constructs software means by a setting program in some cases, and executes the above-mentioned processing by controlling the operation by the software means.
  • the recording medium referred to in the present specification is not limited to distribution, and includes storage media such as magnetic disks and semiconductor memories provided in devices connected inside a computer or via a network.
  • the present invention is not limited to the above embodiment, and can be variously modified at the implementation stage without departing from the gist thereof.
  • each embodiment may be carried out in combination as appropriate as possible, in which case the combined effect can be obtained.
  • the above-described embodiment includes inventions at various stages, and various inventions can be extracted by an appropriate combination in a plurality of disclosed constituent requirements.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

一実施形態に係る識別子変更管理装置は、識別子変更の際に利用する第1の秘密鍵を含む秘密鍵群を管理する鍵管理部と、識別子変更の際に利用するメッセージを受け付けるためのメッセージ入力部と、メッセージのハッシュ値と、第1の秘密鍵から生成した第1の署名値と、を含む識別子変更トランザクションを発行するトランザクション発行部と、識別子変更の際に利用するペアリング公開鍵及び第2の署名値を保持する識別子変更プログラムが登録された分散台帳と、分散台帳を管理する分散台帳管理部と、分散台帳管理部が識別子変更トランザクションを受け取ったとき、識別子変更プログラムにより、第1及び第2の署名値がペアリング署名値を算出し、ペアリング署名値と、ペアリング公開鍵と、ハッシュ値と、が所定のペアリング関数を用いた等式を満たすことを条件に、識別子を変更するプログラム制御管理部と、を備える。

Description

識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム
 この発明は、識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラムに関する。
 ビットコイン(登録商標)に代表される暗号資産の取引においては、非中央集権型の分散型台帳技術の一種であるブロックチェーンが用いられている。分散型台帳技術では、ネットワークに参加する各利用者端末が同一の分散台帳を保持している。
 分散台帳上の識別子(アドレス)を変更する際、信頼のおける第三者の協力を必要とする方法が有る。信頼のおける第三者を利用する方法の一例としては、識別子変更のための条件を予め登録された3つの署名のうち2つの署名が集まることとし、利用者端末が署名のための鍵を2つ、信頼のおける第三者が残りの1つを管理する形態を取る。こうすることで利用者端末の管理する鍵のうちの1つが漏洩又は紛失した場合でも、信頼のおける第三者と協力することで識別子変更の条件を満たし、新たに利用する署名を登録の上、次回識別子変更のための条件の変更が可能となる。こうした管理形態を実現するための方式としてマルチシグネチャという方式がある(例えば、特許文献1を参照)。
日本国特許第6628188号公報
 信頼のおける第三者が裏切る、もしくは、過失により利用者端末が2つの鍵を漏洩又は紛失してしまった場合、利用者端末は、識別子を変更できない。また、分散台帳は、権限の分散を最大の特徴とするものである。そのため、信頼のおける第三者を分散型台帳システムの系内に設定すると一部機能で特権を有するものが存在することになり、分散台帳の最大の特徴を失う。
 この発明は上記事情に着目してなされたもので、その目的とするところは、信頼のおける第三者を必要とせずに識別子の変更を行うことができる識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラムを提供することにある。
 上記目的を達成するために、この発明の分散台帳ネットワークに接続可能な識別子変更管理装置は、識別子変更の際に利用する第1の秘密鍵を含む秘密鍵群を管理する鍵管理部と、前記識別子変更の際に利用するメッセージを受け付けるためのメッセージ入力部と、前記メッセージのハッシュ値と、前記第1の秘密鍵から生成した第1の署名値と、を含む識別子変更トランザクションを発行するトランザクション発行部と、前記識別子変更の際に利用するペアリング公開鍵及びランダムに生成した第2の秘密鍵から生成した第2の署名値を保持する識別子変更プログラムが登録された分散台帳と、前記分散台帳を管理する分散台帳管理部と、前記分散台帳管理部が前記識別子変更トランザクションを受け取ったとき、前記識別子変更プログラムにより、前記第1の署名値及び前記第2の署名値がペアリング署名値を算出し、前記ペアリング署名値と、前記ペアリング公開鍵と、前記ハッシュ値と、が所定のペアリング関数を用いた等式を満たすことを条件に、前記識別子を変更するプログラム制御管理部と、を備えるようにしたものである。
 この発明の一態様によれば、信頼のおける第三者を必要とせずに識別子の変更を行うことができる識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラムを提供することができる。
図1は、実施形態における識別子変更管理装置として動作する利用者端末と、分散台帳ネットワークと、を含む分散型台帳システムの全体構成を示す図である。 図2は、利用者端末のハードウェア構成の一例を示すブロック図である。 図3は、識別子管理プログラムの識別子変更条件を設定するためのフローチャートである。 図4は、利用者端末における全体の処理フローを示す図である。 図5は、識別子変更トランザクションのデータ構造を示す図である。 図6は、図4に示されたステップS109をより詳細に説明したフローチャートである。
 以下、図面を参照してこの発明に係わる実施形態を説明する。 
 [構成] 
 図1は、本実施形態における識別子変更管理装置として動作する利用者端末1と、分散台帳ネットワーク2と、を含む分散型台帳システムの全体構成を示す図である。図1に記載の分散型台帳システムは、利用者端末1及び分散台帳ネットワーク2を含む。
 利用者端末1は、ピアツーピア(P2P)ネットワークである分散台帳ネットワーク2に自律分散的に接続される。なお、分散台帳ネットワーク2には、図1に示す利用者端末1の他にも、複数の利用者端末が接続される。例えば、複数の利用者端末1が接続されていて良い。
 利用者端末1は、鍵管理部10と、メッセージ入力部11と、識別子管理プログラム設定部12と、トランザクション発行部13と、プログラム制御管理部14と、分散台帳管理部15と、分散台帳16と、を含む。利用者端末1は、例えば、分散台帳ネットワーク2を利用するノードである。ノードは、トランザクションの検証処理、台帳情報の更新及び保持を行なう機能を有する。
 鍵管理部10は、トランザクション発行のための秘密鍵を管理する。このトランザクション発行のための秘密鍵は、分散台帳16上で様々な機能を利用するための秘密鍵でもある。様々な機能は、分散台帳16に記憶された情報であって利用者端末1間で所有権を送受信可能なものであれば良い。例えば、様々な機能は、暗号資産の取引等のような機能であって良い。鍵管理部10はさらに、秘密鍵群も保持する。なお、秘密鍵群については、後述する。
 メッセージ入力部11は、利用者端末1の利用者からメッセージaを受け取る入力部である。メッセージaは、任意のもので良いが、例えば、パスワードであっても良い。なお、このパスワードは、固定されたパスワードでも良いが、1回のみ使用可能な使い捨てのパスワードでも良い。また、パスワードは、紙、専用デバイス等の利用者端末1とは異なる保存場所で管理される。すなわち、パスワードは、利用者端末1がセキュアに保持することが可能な一般的な方法で保持されていれば良い。例えば、パスワードは、利用者端末1の外部で、紙に印刷されたQRコード(登録商標)として管理される。また、外部で管理される秘密鍵は、1回分でも良いが、複数回分用意されていても良い。
 識別子管理プログラム設定部12は、分散台帳16に登録される又は登録された識別子管理プログラムに様々な条件を設定する。識別子管理プログラムは、識別子管理プログラム設定部12により、通常利用時にトランザクションが利用者端末1から正当に発行されたことを確認するための条件が設定されている。本実施形態における条件は、利用者端末1から発行される様々なトランザクションに含まれる電子署名の検証の成功である。そのため、識別子管理プログラムは、鍵管理部10が保持する、通常利用時に使用する秘密鍵sとペアを成す公開鍵Pを保持している。ここで、sは、秘密鍵であることを表し、Pは、公開鍵であることを表す。また、識別子管理プログラムは、公開鍵Pn-1から利用可能な識別子を算出する。利用可能な識別子は、利用者端末1が利用する、いわゆるアドレスもしくはアカウントに相当する。なお、利用可能な識別子の算出方法は、公開鍵から一般的な方法で取得するものとし、ここでの詳細な説明は省略する。
 さらに、識別子管理プログラムは、識別子管理プログラム設定部12により、識別子を変更するための識別子変更条件が設定されている。なお、識別子を変更するための識別子変更条件の設定については後述する。
 トランザクション発行部13は、鍵管理部10で管理された秘密鍵を用いてトランザクションを分散台帳ネットワーク2に発行する。例えば、トランザクション発行部13は、暗号資産の取引等を含むトランザクションを発行する。また、本実施形態では、トランザクション発行部13は、識別子管理プログラム設定部12で設定された識別子管理プログラムを分散台帳16上に登録するためのトランザクション及び分散台帳16上の識別子を変更するためのトランザクションも発行する。なお、分散台帳16上の識別子を変更するためのトランザクションについては後述する。
 プログラム制御管理部14は、分散台帳16上に記憶された識別子管理プログラム等のプログラムを制御及び管理する。本実施形態では、プログラム制御管理部14は、利用者端末1からの識別子変更要求により、識別子管理プログラムの書き換えが行われる。そこで、プログラム制御管理部14は、この書き換えを制御し、識別子管理プログラムを管理する。
 分散台帳管理部15は、分散台帳ネットワーク2に接続された他の利用者端末と自律分散的に協調して分散台帳ネットワーク2を維持する。分散台帳管理部15は、プログラム制御管理部14に、分散台帳16上に記憶された識別子管理プログラムを用いて発行されたトランザクションが利用者端末1から正当に発行されたかいどうか確認させる。例えば、プログラム制御管理部14は、トランザクションに付与された電子署名の署名値σに対して公開鍵Pを用いて署名検証する。ここで、σは、署名値を表す。そして、プログラム制御管理部14は、当該署名検証に成功した場合、トランザクションが利用者端末1から正当に発行されたものであると判定する。なお、署名検証は、公開鍵Pを用いて一般的な方法で行われれば良く、ここでの詳細な説明を省略する。
 また、分散台帳管理部15は、分散台帳ネットワーク2に発行されたトランザクションを受け取ると、プログラム制御管理部14に、受け取ったトランザクションの検証・承認手続きを行うプログラムを実行させる。例えば、ブロックチェーンを用いる場合、プログラム制御管理部14は、所定の時間内に分散台帳ネットワーク2上で発行されたトランザクションをまとめて1つのブロックを生成し、当該ブロックのマイニングを行う。プログラム制御管理部14は、検証に成功したブロックを分散台帳16に記憶されているブロックチェーンに追加する。なお、分散台帳ネットワーク2を維持する技術は、ブロックチェーンに限られず、有向非循環グラフ(DAG)等、分散台帳ネットワーク2を維持するための技術であれば良い。また、新規ブロックを承認する方法として、例えば、分散コンセンサスアルゴリズムを用いるなど、マイニング以外の方法を用いても良い。
 分散台帳16は、分散台帳管理部15を介して、分散台帳ネットワーク2に接続された全ての利用者端末1の分散台帳16と同期することによって、検証が成功したトランザクションを記憶している。例えば、ブロックチェーンを用いる場合、分散台帳16は、ブロックチェーンと、ブロックチェーンで管理されるデータ集合とを記憶している。
 分散台帳ネットワーク2は、特定の管理者を必要としない非中央集権型の分散台帳技術を用いたネットワークである。分散台帳ネットワーク2は、オープン型、プライベート型、コンソーシアム型のいずれでも良い。しかしながら、分散台帳ネットワーク2は、分散台帳16で管理でき、トランザクションの検証、実行、分散台帳16への登録の過程で、特定の管理者により後天的に登録された処理を含まないネットワークであるとする。
 図2は、利用者端末1のハードウェア構成の一例を示すブロック図である。
 利用者端末1は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等のハードウェアプロセッサ101を有する。そして、このプロセッサ101に対し、プログラムメモリ102、データメモリ103、通信インタフェース104及び入出力インタフェース105が、バス106を介して接続されている。
 プログラムメモリ102は、記憶媒体として、例えば、EPROM(Erasable Programmable Read Only Memory)やメモリカード等の随時書込み及び読出しが可能な不揮発性メモリと、ROM(Read Only Memory)等の不揮発性メモリとを組み合わせて使用することができる。このプログラムメモリ102には、プロセッサ101が一実施形態に係る各種制御処理を実行するために必要なプログラムが格納されている。すなわち、前述した機能構成の各部における処理機能部は、いずれも、プログラムメモリ102に格納されたプログラムを上記プロセッサ101により読み出して実行することにより実現され得る。
 データメモリ103は、記憶媒体として、例えば、メモリカード等の随時書込み及び読出しが可能な不揮発性メモリと、RAM(Random Access Memory)等の揮発性メモリとを組み合わせて使用したストレージである。データメモリ103は、プロセッサ101がプログラムを実行して各種処理を行う過程で取得及び作成されたデータを記憶するために用いられる。すなわち、データメモリ103には、各種処理が行われる過程で、適宜、各種データを記憶するための領域が確保される。分散台帳16は、プログラムメモリ102及びデータメモリ103によって構成される。すなわち、分散台帳16上に記憶される識別子管理プログラム等のプログラムは、プログラムメモリ102に記憶され、ブロックチェーン等のデータは、データメモリ103に記憶される。
 通信インタフェース104は、一つ以上の無線の通信モジュールを含む。例えば、通信インタフェース104は、Bluetooth(登録商標)等の近距離無線技術を利用した無線通信モジュールを含む。さらに、通信インタフェース104は、例えば、Wi-Fiアクセスポイントや携帯電話基地局と無線接続する無線通信モジュールを含む。この無線通信モジュールは、プロセッサ101の制御の下、Wi-Fiアクセスポイントや携帯電話基地局を介して分散台帳ネットワーク2に接続し、他の利用者端末と通信を行い、各種情報を送受信することができる。なお、通信インタフェース104は、1つ以上の有線の通信モジュールを含んでも良い。
 入出力インタフェース105は、ユーザインタフェース装置107のインタフェースである。なお、図2では、「ユーザインタフェース装置」を「ユーザIF装置」と記載している。
 ユーザインタフェース装置107は、入力装置1071及び出力装置1072を含む。出力装置1072は、例えば液晶、有機EL(Electro Luminescence)、等を使用した表示デバイスであり、入出力インタフェース105から入力された信号に応じた画像を表示する。入力装置1071は、出力装置1072である表示デバイスの表示画面上に配置された、静電方式又は圧力方式を採用した入力検知シートであり、ユーザのタッチ位置を入出力インタフェース105を介してプロセッサ101に出力する。なお、入力装置1071及び出力装置1072は、独立するデバイスにより構成されてもよい。入出力インタフェース105は、上記入力装置1071において入力された操作情報をプロセッサ101に入力すると共に、プロセッサ101で生成された表示情報を出力装置1072に表示させることができる。
 [動作] 
 図3は、識別子管理プログラムの識別子変更条件を設定するためのフローチャートである。利用者端末1のプロセッサ101がプログラムメモリ102に格納されたプログラムを読み出して実行することにより、このフローチャートの動作が実現される。
 識別子管理プログラム設定部12は、公開鍵P及び署名値σを算出する(ステップS11)。ここで、cは、後述のペアリングを行うための鍵であることを表す添え字である。最初に、識別子管理プログラム設定部12は、利用者端末1の利用者から入力装置1071を介してパスワードに相当するメッセージaを取得する。そして、このメッセージa及びランダムに生成した秘密鍵sから公開鍵P及び署名値σを算出する。例えば、公開鍵Pは、P=sQで算出され、署名値σは、σ=sH(a)で算出することができる。ここで、Hは、暗号学的ハッシュ関数を表し、Qは、ボネ・リン・シャチャム(BLS)署名における公開鍵を算出するための公開パラメータである。そのため、H(a)は、メッセージaに暗号学的ハッシュ関数を適用したハッシュ値となる。なお、ハッシュ関数H及び公開パラメータQは、以下のように定められる。素数位数pの加法巡回群がG1及びG2であるとき、写像H:{任意長の文字列}→G1であり、Qは、G2の固定された点である。すなわち、Qは、加法巡回群G2内の任意の値を取る公開パラメータになる。
 識別子管理プログラム設定部12は、識別子変更用の秘密鍵sを含む秘密鍵群s,s,...,sn+1をランダムに生成する(ステップS12)。ここで、nは、任意の正の整数である。識別子管理プログラム設定部12は、生成した秘密鍵群を鍵管理部10に登録する。秘密鍵群を生成することにより、秘密鍵群が鍵管理部10から漏洩又は流出したとしても、識別子変更用の秘密鍵sを特定される可能性は、1/nまで軽減することが可能とある。そのため、nは、多いほど、秘密鍵sを特定される可能性が低減できる。
 識別子管理プログラム設定部12は、公開鍵P及びペアリング公開鍵Pを算出する(ステップS13)。識別子管理プログラム設定部12は、まず、秘密鍵sとペアを成す公開鍵Pを算出する。Pは、P=sQより算出する。その後、識別子管理プログラム設定部12は、公開鍵のペアリングを行う。識別子管理プログラム設定部12は、ペアリング公開鍵PをP=P+Pにより算出する。
 識別子管理プログラム設定部12は、識別子管理プログラムに識別子変更条件を設定する(ステップS14)。具体的には、識別子変更条件は、ペアリング署名値σ=σ+σとしたとき、ペアリング関数に関する等式e(H(a),P)=e(σ,Q)を満たすH(a)及びσが入力されたときと設定される。また、識別子管理プログラムは、ペアリング公開鍵P及び署名値σを保持するものとする。
 識別子管理プログラム設定部12は、以上の処理過程で得られたメッセージa、秘密鍵s、公開鍵P、及び署名値σを破棄する(ステップS15)。これら秘密鍵、公開鍵及び署名値を破棄することで、これらは、漏洩又は紛失のリスクが無くなる。そのため、分散台帳16上に登録されている公開鍵Pがいずれの公開鍵をペアリングしたものであるかに関してのセキュリティを向上させることができる。一方で、利用者は、メッセージaから算出したH(a)とペアリングの際に用いたsを正しく選択し、署名値σを得ることにより、識別子管理プログラムに設定された識別子変更条件を充足することが可能である。
 図4は、利用者端末1における全体の処理フローを示す図である。
 図4に示される分散台帳管理部15(及びプログラム制御管理部14)及び分散台帳16は、分散型台帳システム内のすべての利用者端末1の分散台帳管理部15(及びプログラム制御管理部14)及び分散台帳16を示すものである。すなわち、図3に示される分散台帳管理部15(及びプログラム制御管理部14)及び分散台帳16は、図1に示される利用者端末1の分散台帳管理部15(及びプログラム制御管理部14)及び分散台帳16であっても良いし、他の利用者端末1の分散台帳管理部15(及びプログラム制御管理部14)及び分散台帳16であっても良い。また、利用者端末1のプロセッサ101がプログラムメモリ102に格納された各プログラムを読み出して実行することにより、このフローチャートの動作が実現される。
 ここでステップS101~ステップS104は、本実施形態における識別子管理プログラムを利用するための事前準備のためのステップを示し、ステップS105~ステップS107は、識別子管理プログラムを利用した通常利用の際のステップを示し、ステップS108~ステップS109は、分散台帳16内に記憶された識別子を変更する際のステップを示す。
 事前準備では、利用者端末1のトランザクション発行部13は、識別子管理プログラムを分散台帳16に登録するための識別子登録トランザクションを分散台帳ネットワーク2上に発行する(ステップS101)。識別子管理プログラムは、識別子管理プログラム設定部12により、通常利用時に利用トランザクションが利用者端末1から正当に発行されたことを確認するための条件及び識別子変更条件等が設定されている。
 分散台帳管理部15は、プログラム制御管理部14に、登録トランザクションのマイニングを実行させる(ステップS102)。例えば、ブロックチェーンを用いる場合、所定の時間間隔の間に受け取った、登録トランザクションを含む複数のトランザクションを1つにまとめたブロックについてマイニングを実行する。
 分散台帳管理部15は、マイニングに成功した識別子登録トランザクションに従って、プログラム制御管理部14に識別子管理プログラムを分散台帳16に登録させる(ステップS103)。分散台帳管理部15は、分散台帳16にこの識別子登録プログラムを登録する際、識別子登録プログラムの格納場所を示すIDを取得する。
 利用者端末1は、識別子管理プログラムのIDを分散台帳管理部15から取得する(ステップS104)。利用者端末1は、識別子管理プログラムが保持する公開鍵Pによって算出された識別子も取得しても良い。
 通常利用時、利用者端末1のトランザクション発行部13は、分散台帳16上に記憶された情報を利用する要求を含む利用トランザクションを発行する(ステップS105)。利用トランザクションは、例えば、識別子管理プログラムのIDと、利用可能な識別子と、暗号資産の取引についての指示と、鍵管理部10によって管理された秘密鍵sによって生成された電子署名と、を含む。なお、分散台帳16上に記憶された情報を利用する要求は、暗号資産の取引に限られず、分散台帳16に記憶された情報であって利用者端末1間で所有権を送受信可能なものであれば良い。
 分散台帳管理部15は、利用トランザクションに含まれる電子署名の検証し、検証成功後、利用トランザクションに含まれる要求に従って処理を実行する(ステップS106)。すなわち、分散台帳管理部15は、利用トランザクションに含まれる識別子管理プログラムのIDをプログラム制御管理部14に渡し、プログラム制御管理部14は、そのIDで示される識別子管理プログラムを実行する。プログラム制御管理部14は、識別子管理プログラムによる利用トランザクションの検証を行う。例えば、プログラム制御管理部14は、利用トランザクションに含まれる電子署名の署名値σを識別子管理プログラムが保持する公開鍵Pで復号した値を算出し、その値を利用トランザクション及びハッシュ関数を用いて算出されたハッシュ値と比較する。プログラム制御管理部14は、比較の結果これらの値が同一であれば、利用トランザクションが利用者端末1から正当に発行されたものとして検証が成功したと判定する。すなわち、電子署名が利用者端末が行ったものであると証明される。検証が成功したならば、分散台帳管理部15は、利用トランザクションに含まれる利用識別子及び要求に従って、プログラム制御管理部14に任意のプログラムの処理を実行させる。利用トランザクションが利用者端末1から正当に発行されたものでないとプログラム制御管理部14が判定した場合には、分散台帳管理部15は、利用トランザクションを破棄する。また、分散台帳管理部15は、利用者端末1に不正利用の試行の可能性について報告するようにしても良い。
 分散台帳管理部15は、実行結果を含む処理実行結果確認情報を利用者端末1に送信する(ステップS107)。利用者端末1は、当該情報を受信すると、利用者端末1の出力装置1072を介して、実行結果を利用者に表示するようにしても良い。
 識別子変更時、利用者端末1は、識別子変更要求を含む識別子変更トランザクションを分散台帳ネットワーク2上に発行する(ステップS108)。利用者端末1が秘密鍵sを過失等により漏洩又は紛失してしまった場合、他の端末が漏洩又は紛失した秘密鍵sを取得可能となる。漏洩又は紛失した秘密鍵sを取得した他の端末は、利用者端末1に成りすまして当該秘密鍵sを使用したトランザクションを発行することが可能となる。そこで、利用者端末1は、分散台帳16上に登録された識別子を変更する必要がある。この場合には、利用者端末1のトランザクション発行部13は、識別子を変更する要求を含む識別子変更トランザクションを分散台帳ネットワーク2に発行する。
 図5は、識別子変更トランザクションのデータ構造を示す図である。
 図5で示されるように、識別子変更トランザクションは、識別子管理プログラムIDと、識別子管理プログラムで実行する関数を指定する関数情報と、メッセージaのハッシュ値H(a)と、署名値σと、次回の識別子変更条件設定のための公開鍵P´及び署名値σc´と、の6つの要素を含む。また、識別子変更トランザクションは、これら6つの要素をメッセージmとした際のメッセージmのハッシュ値H(m)に対して識別子変更用の秘密鍵sで電子署名を行ったσ及び秘密鍵sとペアを成す公開鍵Pを含む。
 なお、図5に示される要素は、以下のように生成される。利用者端末1の識別子管理プログラム設定部12は、鍵管理部10に保持されている秘密鍵群の中から、識別子変更用に設定した秘密鍵sを取得する。さらに、s,s, ... ,sを生成した際と同様に、s2´,s3´, ... ,sn´を生成し次回識別子変更条件設定のために利用するsを取得する。識別子管理プログラム設定部12は、公開鍵Pを秘密鍵sに基づく式P=sQによって算出し、同様に公開鍵P3´を秘密鍵s3´に基づく式P3´=s3´Qによって算出する。さらに、識別子管理プログラム設定部12は、メッセージ入力部11からパスワードであるメッセージa及び次回の識別子変更用のパスワードに相当するメッセージa´を利用者から取得する。次に、識別子管理プログラム設定部12は、上で説明したように、メッセージaのハッシュ値H(a)を取得し、署名値σを式σ=sH(a)により取得する。さらに識別子管理プログラム設定部12は、ランダムに生成した秘密鍵sc´から公開鍵Pc´及び署名値σc´を算出する。さらに、識別子管理プログラム設定部12は、次回の識別子変更条件設定のための公開鍵P´を、式P´=P3´+Pc´により算出し、さらに、次回識別子変更条件設定のための署名値σc´を式σc´=sc´H(a´)により算出する。
 分散台帳管理部15は、プログラム制御管理部14に、識別子変更条件を満たすことを確認し、識別子の変更を実行させる(ステップS109)。すなわち、分散台帳管理部15は、識別子変更トランザクションを受け取ると、識別子変更トランザクションに含まれる識別子管理プログラムIDを読み出し、それをプログラム制御管理部14に渡す。プログラム制御管理部14は、そのIDで示される識別子管理プログラムを読み出して実行し、識別子変更条件を満たすかを確認する。確認の結果、識別子変更条件を満たす場合、プログラム制御管理部14は、識別子管理プログラムにおける次回の識別子変更条件を変更し、別子管理プログラムに保持させる、現在利用可能な識別子を算出するために利用する公開鍵をPからPに変更する。なお、確認の結果、識別子変更条件を満たさない場合、プログラム制御管理部14は、当該識別子変更トランザクションが利用者端末1から正当に発行されたものでないと判定し、分散台帳管理部15は、当該識別子変更トランザクションを破棄する。また、分散台帳管理部15は、不正に識別子変更要求が有った旨を利用者端末1に報告するようにしても良い。
 図6は、図4に示されたステップS109をより詳細に説明したフローチャートである。
 プログラム制御管理部14は、識別子変更トランザクションに含まれる署名値σ及びσが公開鍵Pで検証可能かどうか判定する(ステップS201)。署名値σ及びσが公開鍵Pで検証可能である場合、当該識別子変更トランザクションを生成可能な端末は、秘密鍵sを保有しているものに限られる。そのため、プログラム制御管理部14は、署名値σ及びσが公開鍵Pで検証可能であると判定した場合、利用者が秘密鍵sを有すると判定する。また、プログラム制御管理部14は、メッセージmの範囲については、当該秘密鍵sを有する利用者が作成したデータであるとも判定する。なお、プログラム制御管理部14によってこれらの値が検証可能でないと判定された場合、分散台帳管理部15は、識別子変更トランザクションが利用者端末1から正当に発行されていないと判定し、当該識別子変更トランザクションを破棄する。
 署名値σ及びσが公開鍵Pで検証可能な場合、プログラム制御管理部14は、署名値のペアリングを行い、ペアリング署名値σを取得する(ステップS202)。プログラム制御管理部14は、ペアリング署名値σを、式σ=σ+σにより取得する。プログラム制御管理部14は、識別子管理プログラムに保持されたσ及び識別子変更トランザクションに含まれる署名値σにより、ペアリング署名値σを算出する。
 プログラム制御管理部14は、ペアリング関数に関する等式e(H(a),P)=e(σ,Q)を満たすかどうか判定する(ステップS203)。プログラム制御管理部14は、識別子変更トランザクションに含まれるハッシュ値H(a)と、識別子管理プログラムに保持されたペアリング公開鍵Pと、ステップS202で算出したペアリング署名値σと、公開パラメータであるQとに基づいて上の等式を満たすか否かを判定する。等式を満たす場合、ステップS204に進む。等式を満たさないとプログラム制御管理部14が判断した場合には、分散台帳管理部15は、識別子変更トランザクションが利用者端末1から正当に発行されていないと判定し、当該識別子変更トランザクションを破棄する。
 等式e(H(a),P)=e(σ,Q)を満たす場合、プログラム制御管理部14は、識別子管理プログラムにおける識別子変更条件を変更し、公開鍵Pを公開鍵Pの代わりに識別子管理プログラムに保持させる(ステップS204)。すなわち、公開鍵Pを用いて算出された識別子が現在の利用可能な識別子として分散台帳16に登録されることになる。さらに、識別子変更条件は、具体的に、ペアリング署名値σ=σ3´+σc´としたとき、ペアリング関数に関する等式e(H(a´),P´)=e(σ,Q)を満たすH(a´)及びσ3´が入力されたときと変更される。また、識別子管理プログラムは、次回の識別子変更条件に関わるデータとして、ペアリング公開鍵P´及び署名値σc´を保持する。なお、識別子変更のための公開鍵P及び署名値σは、識別子変更のために1度限り利用することになる。このようにするのは、再送攻撃を防止するためである。識別子変更トランザクションは、分散台帳16に記録されるものである。そのため、識別子変更トランザクションは、他の利用者端末にも広く公開されることになる。もし次回以降に使用する公開鍵P´及び署名値σc´を識別子変更トランザクションに含めず識別子変更用の公開鍵を固定すると、広く公開された公開鍵を保存しておくことにより、同じ内容の変更要求を再送するという再送攻撃が可能となってしまう。このリスクを排除するために、識別子変更のための公開鍵及び署名値の利用回数は1度限りとし、常に次回の公開鍵及び署名値を指定する必要がある。
 [作用効果] 
 上記実施形態によれば、利用者端末1は、第三者を必要とせずに識別子の変更を行うことができる。これにより、分散台帳16の最大の特徴である権限の分散性が失われず、且つ、第三者による故意又は過失による鍵の漏洩を防止することができる。
 さらに、上記実施形態によれば、利用者端末1は、単に識別子変更用の鍵が漏洩しただけでは、第三者が識別子変更機能を不正利用することが不可能な方式を実現できる。
 [他の実施形態] 
 なお、この発明は上記実施形態に限定されるものではない。例えば、上記実施形態では、利用者端末1は、ノードとして機能すると説明した。しかしながら、他の利用者端末がノードとして機能する場合、利用者端末1は、ノードとして機能しなくとも良い。この場合、利用者端末1は、プログラム制御管理部14と、分散台帳管理部15と、分散台帳16と、を有さずとも良い。
 また、前記実施形態に記載した手法は、計算機(コンピュータ)に実行させることができるプログラム(ソフトウェア手段)として、例えば磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD、MO等)、半導体メモリ(ROM、RAM、フラッシュメモリ等)等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウェア手段(実行プログラムのみならずテーブル、データ構造も含む)を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウェア手段を構築し、このソフトウェア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書で言う記録媒体は、頒布用に限らず、計算機内部或いはネットワークを介して接続される機器に設けられた磁気ディスク、半導体メモリ等の記憶媒体を含むものである。
 要するに、この発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。
 1…利用者端末
 2…分散台帳ネットワーク
 10…鍵管理部
 11…メッセージ入力部
 12…識別子管理プログラム設定部
 13…トランザクション発行部
 14…プログラム制御管理部
 15…分散台帳管理部
 16…分散台帳
 101…プロセッサ
 102…プログラムメモリ
 103…データメモリ
 104…通信インタフェース
 105…入出力インタフェース
 106…バス
 107…ユーザインタフェース装置
 1071…入力装置
 1072…出力装置

Claims (8)

  1.  分散台帳ネットワークに接続可能な識別子変更管理装置であって、
     識別子変更の際に利用する第1の秘密鍵を含む秘密鍵群を管理する鍵管理部と、
     前記識別子変更の際に利用するメッセージを受け付けるためのメッセージ入力部と、
     前記メッセージのハッシュ値と、前記第1の秘密鍵から生成した第1の署名値と、を含む識別子変更トランザクションを発行するトランザクション発行部と、
     前記識別子変更の際に利用するペアリング公開鍵及びランダムに生成した第2の秘密鍵から生成した第2の署名値を保持する識別子変更プログラムが登録された分散台帳と、
     前記分散台帳を管理する分散台帳管理部と、
     前記分散台帳管理部が前記識別子変更トランザクションを受け取ったとき、前記識別子変更プログラムにより、前記第1の署名値及び前記第2の署名値を用いてペアリング署名値を算出し、前記ペアリング署名値と、前記ペアリング公開鍵と、前記ハッシュ値と、が所定のペアリング関数を用いた等式を満たすことを条件に、前記識別子を変更するプログラム制御管理部と、
     を備える、識別子変更管理装置。
  2.  前記ペアリング署名値をσ、前記ハッシュ値をH(a)、前記ペアリング公開鍵をP、ペアリング関数をe(x,y)と表したとき、前記等式は、e(H(a),P)=e(σ,Q)であり、Qは、ボネ・リン・シャチャム署名における公開鍵を算出するための公開パラメータである、請求項1に記載の識別子変更管理装置。
  3.  前記ペアリング公開鍵は、前記第1の秘密鍵及び前記公開パラメータにより算出された第1の公開鍵と、前記第2の秘密鍵と前記公開パラメータにより算出された第2の公開鍵とによって算出される、請求項2に記載の識別子変更管理装置。
  4.  前記第2の秘密鍵及び前記第2の公開鍵は、前記ペアリング公開鍵及び前記第2の署名値を生成後、破棄される、請求項3に記載の識別子変更管理装置。
  5.  前記識別子変更トランザクションは、前記分散台帳から前記識別子変更プログラムを識別するための識別子変更プログラムのIDと、識別子管理プログラムで実行する関数を指定する関数情報と、次回識別子変更を行うために用いられる第2のペアリング公開鍵と、ランダムに生成され、前記第2の秘密鍵とは異なる第3の秘密鍵から生成した第3の署名値と、第4の署名値と、前記第1の秘密鍵とペアを成す第1の公開鍵と、をさらに備え、前記第4の署名値は、前記識別子変更プログラムのIDと、前記関数情報と、前記ハッシュ値と、前記第1の署名値と、前記第2のペアリング公開鍵と、前記第3の署名値と、から成るメッセージのハッシュ値に対して、前記第1の秘密鍵で署名した署名値である、請求項1乃至4のいずれか1項に記載の識別子変更管理装置。
  6.  前記秘密鍵群は、ランダムに生成されたn個の秘密鍵であり、nは、任意の正の整数である、請求項1乃至5のいずれか1項に記載の識別子変更管理装置。
  7.  分散台帳ネットワークに接続可能な識別子管理装置によって実行可能な識別子変更管理方法であって、
     識別子変更の際に利用する第1の秘密鍵を含む秘密鍵群を管理することと、
     前記識別子変更の際に利用するメッセージを受け付けることと、
     前記メッセージのハッシュ値と、前記第1の秘密鍵から生成した第1の署名値と、を含む識別子変更トランザクションを発行することと、
     前記識別子変更の際に利用するペアリング公開鍵及びランダムに生成した第2の秘密鍵から生成した第2の署名値を保持する識別子変更プログラムを分散台帳に登録することと
     前記分散台帳を管理することと、
     前記識別子変更トランザクションを受け取ったとき、前記識別子変更プログラムにより、前記第1の署名値及び前記第2の署名値がペアリング署名値を算出し、前記ペアリング署名値と、前記ペアリング公開鍵と、前記ハッシュ値と、が所定のペアリング関数を用いた等式を満たすことを条件に、前記識別子を変更することと、
     を備える、識別子変更管理方法。
  8.  請求項1乃至6のいずれか1項に記載の識別子変更管理装置の前記各部としてプロセッサを機能させる識別子変更管理プログラム。
     
PCT/JP2020/038039 2020-10-07 2020-10-07 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム WO2022074773A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US18/029,315 US20230370280A1 (en) 2020-10-07 2020-10-07 Identifier change management apparatus, identifier change management method, and identifier change management program
EP20956721.3A EP4227880A4 (en) 2020-10-07 2020-10-07 IDENTIFIER MODIFICATION MANAGEMENT DEVICE, IDENTIFIER MODIFICATION MANAGEMENT METHOD, AND IDENTIFIER MODIFICATION MANAGEMENT PROGRAM
JP2022555038A JP7468683B2 (ja) 2020-10-07 2020-10-07 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム
PCT/JP2020/038039 WO2022074773A1 (ja) 2020-10-07 2020-10-07 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/038039 WO2022074773A1 (ja) 2020-10-07 2020-10-07 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム

Publications (1)

Publication Number Publication Date
WO2022074773A1 true WO2022074773A1 (ja) 2022-04-14

Family

ID=81125773

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/038039 WO2022074773A1 (ja) 2020-10-07 2020-10-07 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム

Country Status (4)

Country Link
US (1) US20230370280A1 (ja)
EP (1) EP4227880A4 (ja)
JP (1) JP7468683B2 (ja)
WO (1) WO2022074773A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0328188B2 (ja) 1982-06-02 1991-04-18 Amano Pharma Co Ltd
JP2018530175A (ja) * 2015-07-02 2018-10-11 ナスダック, インコーポレイテッドNasdaq, Inc. 分散トランザクションデータベースにおける出所保証のシステムおよび方法
WO2020050390A1 (ja) * 2018-09-07 2020-03-12 日本電信電話株式会社 権利者端末、利用者端末、権利者プログラム、利用者プログラム、コンテンツ利用システムおよびコンテンツ利用方法
JP2020129284A (ja) * 2019-02-08 2020-08-27 株式会社メルカリ プログラム、情報処理装置、及び情報処理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9344438B2 (en) 2008-12-22 2016-05-17 Qualcomm Incorporated Secure node identifier assignment in a distributed hash table for peer-to-peer networks
US8619995B2 (en) 2009-01-28 2013-12-31 Qualcomm Incorporated Methods and apparatus related to address generation, communication and/or validation
CA2985040A1 (en) 2014-05-06 2015-12-03 Case Wallet, Inc. Cryptocurrency virtual wallet system and method
JP6628188B2 (ja) * 2016-05-10 2020-01-08 日本電信電話株式会社 決済システム、決済方法、トランザクション生成装置及びトランザクション生成プログラム
US11171791B2 (en) * 2019-01-15 2021-11-09 0Chain, LLC Systems and methods of aggregate signing of digital signatures on multiple messages simultaneously using key splitting
US20190295069A1 (en) 2018-03-20 2019-09-26 Cable Television Laboratories, Inc Systems and methods for integrating cryptocurrency wallet identifiers with digital certificates

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0328188B2 (ja) 1982-06-02 1991-04-18 Amano Pharma Co Ltd
JP2018530175A (ja) * 2015-07-02 2018-10-11 ナスダック, インコーポレイテッドNasdaq, Inc. 分散トランザクションデータベースにおける出所保証のシステムおよび方法
WO2020050390A1 (ja) * 2018-09-07 2020-03-12 日本電信電話株式会社 権利者端末、利用者端末、権利者プログラム、利用者プログラム、コンテンツ利用システムおよびコンテンツ利用方法
JP2020129284A (ja) * 2019-02-08 2020-08-27 株式会社メルカリ プログラム、情報処理装置、及び情報処理方法

Also Published As

Publication number Publication date
EP4227880A1 (en) 2023-08-16
US20230370280A1 (en) 2023-11-16
JPWO2022074773A1 (ja) 2022-04-14
EP4227880A4 (en) 2024-07-10
JP7468683B2 (ja) 2024-04-16

Similar Documents

Publication Publication Date Title
AU2019240671B2 (en) Methods for secure cryptogram generation
US10790976B1 (en) System and method of blockchain wallet recovery
EP2441205B1 (en) Key management in secure network enclaves
EP2441206B1 (en) Discovery of secure network enclaves
US20210049591A1 (en) Cryptocurrency wallet and cryptocurrency account management
CN111107066A (zh) 敏感数据的传输方法和系统、电子设备、存储介质
US8397274B2 (en) Method for authenticating device capabilities to a verified third party
EP2597588A1 (en) Information processing device, controller, certificate issuing authority, method of determining validity of revocation list, and method of issuing certificates
JP2015154491A (ja) リモートアクセス、リモートデジタル署名のためのシステムおよび方法
JP2004280284A (ja) 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
US20100153746A1 (en) Memory controller, secure memory card, and secure memory card system
JP2005260676A (ja) セキュリティ装置、情報処理装置、セキュリティ装置の制御方法、情報処理装置の制御方法、該制御方法を実行させるための装置実行可能なプログラムおよびチケット・システム
CN103269271A (zh) 一种备份电子签名令牌中私钥的方法和系统
CN101997681A (zh) 一种多节点路径的认证方法、系统及相关节点设备
JP6199712B2 (ja) 通信端末装置、通信端末関連付け方法、及びコンピュータプログラム
WO2022074773A1 (ja) 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム
WO2022074772A1 (ja) 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム
WO2022074771A1 (ja) 識別子変更管理装置、識別子変更管理方法及び識別子変更管理プログラム
EP2407904B1 (en) Method for authenticating device capabilities to a verified third party
JP6988525B2 (ja) 登録システムおよび登録方法
US20220067727A1 (en) Method for operating a distributed database system, distributed database system, and industrial automation system
JP2017079419A (ja) サーバ認証システム、端末、サーバ、サーバ認証方法、プログラム
JP2020061727A (ja) 情報処理装置、方法及びプログラム
JP2016201699A (ja) 情報処理装置、認証方法及びプログラム
JP6359188B2 (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: 20956721

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022555038

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020956721

Country of ref document: EP

Effective date: 20230508